Updating minified JavaScript files
authorwoltlab.com <woltlab@woltlab.com>
Thu, 20 Nov 2014 21:26:55 +0000 (22:26 +0100)
committerwoltlab.com <woltlab@woltlab.com>
Thu, 20 Nov 2014 21:26:55 +0000 (22:26 +0100)
wcfsetup/install/files/js/3rdParty/redactor/plugins/wcombined.min.js

index e2ac35942db90ef582859f5afd59339b14aaba22..5709a1e5eeac6282f344e160d8d9a5cc2f1e6dbb 100644 (file)
@@ -1,7 +1,7 @@
 // table.js
 if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.table=function(){return{getTemplate:function(){return String()+'<section id="redactor-modal-table-insert"><label>'+this.lang.get("rows")+'</label><input type="text" size="5" value="2" id="redactor-table-rows" /><label>'+this.lang.get("columns")+'</label><input type="text" size="5" value="3" id="redactor-table-columns" /></section>'},init:function(){var b={};b.insert_table={title:this.lang.get("insert_table"),func:this.table.show};b.insert_row_above={title:this.lang.get("insert_row_above"),func:this.table.addRowAbove};b.insert_row_below={title:this.lang.get("insert_row_below"),func:this.table.addRowBelow};b.insert_column_left={title:this.lang.get("insert_column_left"),func:this.table.addColumnLeft};b.insert_column_right={title:this.lang.get("insert_column_right"),func:this.table.addColumnRight};b.add_head={title:this.lang.get("add_head"),func:this.table.addHead};b.delete_head={title:this.lang.get("delete_head"),func:this.table.deleteHead};b.delete_column={title:this.lang.get("delete_column"),func:this.table.deleteColumn};b.delete_row={title:this.lang.get("delete_row"),func:this.table.deleteRow};b.delete_table={title:this.lang.get("delete_table"),func:this.table.deleteTable};this.observe.addButton("td","table");this.observe.addButton("th","table");var a=this.button.addBefore("link","table",this.lang.get("table"));this.button.addDropdown(a,b)},show:function(){this.modal.addTemplate("table",this.table.getTemplate());this.modal.load("table",this.lang.get("insert_table"),300);this.modal.createCancelButton();var a=this.modal.createActionButton(this.lang.get("insert"));a.on("click",this.table.insert);this.selection.save();this.modal.show();$("#redactor-table-rows").focus()},insert:function(){var n=$("#redactor-table-rows").val(),c=$("#redactor-table-columns").val(),a=$("<div>"),b=Math.floor(Math.random()*99999),l=$('<table id="table'+b+'"><tbody></tbody></table>'),e,h,j,k;for(e=0;e<n;e++){h=$("<tr>");for(j=0;j<c;j++){k=$("<td>"+this.opts.invisibleSpace+"</td>");if(e===0&&j===0){k.append(this.selection.getMarker())}$(h).append(k)}l.append(h)}a.append(l);var f=a.html();this.modal.close();this.selection.restore();if(this.table.getTable()){return}this.buffer.set();var g=this.selection.getBlock()||this.selection.getCurrent();if(g&&g.tagName!="BODY"){if(g.tagName=="LI"){g=$(g).closest("ul, ol")}$(g).after(f)}else{this.insert.html(f)}this.selection.restore();var m=this.$editor.find("#table"+b);if(!this.opts.linebreaks&&(this.utils.browser("mozilla")||this.utils.browser("msie"))){var d=m.next();if(d.length===0){m.after(this.opts.emptyHtml)}}this.observe.buttons();m.find("span.redactor-selection-marker").remove();m.removeAttr("id");this.code.sync();this.core.setCallback("insertedTable",m)},getTable:function(){var a=$(this.selection.getParent()).closest("table");if(!this.utils.isRedactorParent(a)){return false}if(a.size()===0){return false}return a},restoreAfterDelete:function(a){this.selection.restore();a.find("span.redactor-selection-marker").remove();this.code.sync()},deleteTable:function(){var b=this.table.getTable();if(!b){return}this.buffer.set();var a=b.next();if(!this.opts.linebreaks&&a.length!==0){this.caret.setStart(a)}else{this.caret.setAfter(b)}b.remove();this.code.sync()},deleteRow:function(){var a=this.table.getTable();if(!a){return}var c=$(this.selection.getCurrent());this.buffer.set();var e=c.closest("tr");var b=e.prev().length?e.prev():e.next();if(b.length){var d=b.children("td, th").first();if(d.length){d.prepend(this.selection.getMarker())}}e.remove();this.table.restoreAfterDelete(a)},deleteColumn:function(){var c=this.table.getTable();if(!c){return}this.buffer.set();var d=$(this.selection.getCurrent());var a=d.closest("td, th");var b=a[0].cellIndex;c.find("tr").each($.proxy(function(f,g){var e=$(g);var h=b-1<0?b+1:b-1;if(f===0){e.find("td, th").eq(h).prepend(this.selection.getMarker())}e.find("td, th").eq(b).remove()},this));this.table.restoreAfterDelete(c)},addHead:function(){var a=this.table.getTable();if(!a){return}this.buffer.set();if(a.find("thead").size()!==0){this.table.deleteHead();return}var b=a.find("tr").first().clone();b.find("td").html(this.opts.invisibleSpace);$thead=$("<thead></thead>").append(b);a.prepend($thead);this.code.sync()},deleteHead:function(){var a=this.table.getTable();if(!a){return}var b=a.find("thead");if(b.size()===0){return}this.buffer.set();b.remove();this.code.sync()},addRowAbove:function(){this.table.addRow("before")},addRowBelow:function(){this.table.addRow("after")},addColumnLeft:function(){this.table.addColumn("before")},addColumnRight:function(){this.table.addColumn("after")},addRow:function(c){var a=this.table.getTable();if(!a){return}this.buffer.set();var b=$(this.selection.getCurrent());var d=b.closest("tr");var e=d.clone();e.find("th").replaceWith(function(){var f=$("<td>");f[0].attributes=this.attributes;return f.append($(this).contents())});e.find("td").html(this.opts.invisibleSpace);if(c=="after"){d.after(e)}else{d.before(e)}this.code.sync()},addColumn:function(d){var c=this.table.getTable();if(!c){return}var b=0;var e=$(this.selection.getCurrent());this.buffer.set();var f=e.closest("tr");var a=e.closest("td, th");f.find("td, th").each($.proxy(function(g,h){if($(h)[0]===a[0]){b=g}},this));c.find("tr").each($.proxy(function(g,j){var h=$(j).find("td, th").eq(b);var k=h.clone();k.html(this.opts.invisibleSpace);if(d=="after"){h.after(k)}else{h.before(k)}},this));this.code.sync()}}};
 // wbbcode.js
-if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wbbcode=function(){return{init:function(){var c=this.$textarea.wcfIdentify();this.opts.initCallback=$.proxy(function(){var f=$.trim(this.wutil.getOption("woltlab.originalValue"));if(f.length){this.wutil.replaceText(f);this.wutil.selectionEndOfEditor()}delete this.opts.woltlab.originalValue;$(document).trigger("resize")},this);this.opts.pasteBeforeCallback=$.proxy(this.wbbcode._pasteBeforeCallback,this);this.opts.pasteCallback=$.proxy(this.wbbcode._pasteCallback,this);var b=this.clean.onSync;this.clean.onSync=function(f){f=f.replace(/<p><br([^>]+)?><\/p>/g,"<p>@@@wcf_empty_line@@@</p>");return b.call(self,f)};if(this.wutil.getOption("woltlab.autosaveOnce")){this.wutil.saveTextToStorage();delete this.opts.woltlab.autosaveOnce}var a=this.button.get("table");if(a.length){var e=a.data("dropdown");e.find(".redactor-dropdown-add_head").parent().remove();e.find(".redactor-dropdown-delete_head").parent().remove();$('<li class="dropdownDivider" />').insertBefore(e.find(".redactor-dropdown-delete_table").parent());a.click($.proxy(this.wbbcode._tableButtonClick,this))}WCF.System.Event.addListener("com.woltlab.wcf.redactor","insertBBCode_quote_"+c,$.proxy(function(f){f.cancel=true;this.wbbcode._handleInsertQuote()},this));WCF.System.Event.addListener("com.woltlab.wcf.redactor","keydown_"+c,$.proxy(this.wbbcode._keydownCallback,this));WCF.System.Event.addListener("com.woltlab.wcf.redactor","keyup_"+c,$.proxy(this.wbbcode._keyupCallback,this));this.code.sync=function(){};var d=$(".redactor-toolbar-tooltip-html:not(.jsWbbcode)").addClass("jsWbbcode").text(WCF.Language.get("wcf.bbcode.button.toggleBBCode"));this.code.toggle=(function(){if(this.opts.visual){this.code.startSync();this.code.showCode();this.$textarea.val(this.wbbcode.convertFromHtml(this.$textarea.val()));this.button.get("html").children("i").removeClass("fa-square-o").addClass("fa-square");d.text(WCF.Language.get("wcf.bbcode.button.toggleHTML"))}else{this.$textarea.val(this.wbbcode.convertToHtml(this.$textarea.val()));this.code.offset=this.$textarea.val().length;this.code.showVisual();this.wbbcode._fixQuotes();this.wutil.selectionEndOfEditor();this.wbbcode._observeQuotes();this.button.get("html").children("i").removeClass("fa-square").addClass("fa-square-o");d.text(WCF.Language.get("wcf.bbcode.button.toggleBBCode"))}}).bind(this);this.wutil.setOption("clickCallback",(function(f){if(f.target===this.$editor[0]){if(this.$editor[0].lastElementChild&&this.$editor[0].lastElementChild.tagName==="BLOCKQUOTE"){this.wutil.setCaretAfter($(this.$editor[0].lastElementChild))}}}).bind(this))},_tableButtonClick:function(b){var c=$(b.currentTarget);if(!c.hasClass("dropact")){return}var a=this.selection.getBlock()||this.selection.getCurrent();var d=c.data("dropdown");d.children("li").show();var e=d.find("> li > .redactor-dropdown-insert_table").parent();if(a.tagName=="TD"){e.hide()}else{e.nextAll().hide()}},insertSmiley:function(a,b,c){if(c){this.wbbcode.registerSmiley(a,b)}if(this.opts.visual){this.insert.html('&nbsp;<img src="'+b+'" class="smiley" alt="'+a+'" />&nbsp;',false)}else{this.wutil.insertAtCaret(" "+a+" ")}},registerSmiley:function(a,b){if(__REDACTOR_SMILIES[a]){return false}__REDACTOR_SMILIES[a]=b;return true},convertFromHtml:function(o){WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","beforeConvertFromHtml",{html:o});o=o.replace(/(<[^>]+?) data-redactor-tag="[^"]+"/g,"$1");o=o.replace(/&#(8203|x200b);/g,"");o=o.replace(/&trade;/gi,"\u2122");o=o.replace(/&copy;/gi,"\u00a9");o=o.replace(/&hellip;/gi,"\u2026");o=o.replace(/&mdash;/gi,"\u2014");o=o.replace(/&dash;/gi,"\u2010");var m={};o=o.replace(/<pre>[\s\S]+?<\/pre>/g,function(C){var B=WCF.getUUID();m[B]=C;return"@@@"+B+"@@@"});o=o.replace(/\r?\n/g,"");if($.getLength(m)){$.each(m,function(B,C){o=o.replace("@@@"+B+"@@@",C)})}o=o.replace(/<a[^>]*?><\/a>/g,"");o=o.replace(/<p><\/p>/g,"");o=o.replace(/<br( \/)?><\/p>/g,"</p>");var g=o.split(/(<\/?(?:div|p)>)/);var h="";var z="";for(var a=0;a<g.length;a++){var A=g[a];if(A=="<p>"||A=="<div>"){continue}else{if(A=="</p>"||A=="</div>"){z=$.trim(z);if(z!="@@@wcf_empty_line@@@"){z+="\n"}h+=z;z=""}else{if(a==0||a+1==g.length){h+=A}else{z+=A}}}}if(z){h+=z;z=""}o=h;o=o.replace(/@@@wcf_empty_line@@@/g,"\n");o=o.replace(/\n\n$/,"\n");o=o.replace(/<br>$/,"");o=o.replace(/<br>/g,"\n");o=o.replace(/<br>/g,"");o=o.replace(/&nbsp;/gi," ");o=o.replace(/<blockquote class="quoteBox" cite="([^"]+)?" data-author="([^"]+)?"[^>]*?>\n?<div[^>]+>\n?<header[^>]*?>[\s\S]*?<\/header>/gi,function(B,D,C,E){var F;if(C){C=WCF.String.unescapeHTML(C)}if(D){D=WCF.String.unescapeHTML(D)}if(D){F="[quote='"+C+"','"+D+"']"}else{if(C){F="[quote='"+C+"']"}else{F="[quote]"}}return F});o=o.replace(/(?:\n*)<\/blockquote>\n?/gi,"[/quote]\n");o=o.replace(/<a [^>]*?href=(["'])mailto:(.+?)\1.*?>([\s\S]+?)<\/a>/gi,"[email=$2]$3[/email]");o=o.replace(/<a[^>]+><\/a>/,"");o=o.replace(/<a [^>]*?href=(["'])(.+?)\1.*?>([\s\S]+?)<\/a>/gi,function(D,B,C,E){if(C==E){return"[url]"+C+"[/url]"}return"[url='"+C+"']"+E+"[/url]"});o=o.replace(/<(?:b|strong)>/gi,"[b]");o=o.replace(/<\/(?:b|strong)>/gi,"[/b]");o=o.replace(/<(?:i|em)>/gi,"[i]");o=o.replace(/<\/(?:i|em)>/gi,"[/i]");o=o.replace(/<u>/gi,"[u]");o=o.replace(/<\/u>/gi,"[/u]");o=o.replace(/<sub>/gi,"[sub]");o=o.replace(/<\/sub>/gi,"[/sub]");o=o.replace(/<sup>/gi,"[sup]");o=o.replace(/<\/sup>/gi,"[/sup]");o=o.replace(/<(?:s(trike)?|del)>/gi,"[s]");o=o.replace(/<\/(?:s(trike)?|del)>/gi,"[/s]");o=o.replace(/<img [^>]*?alt="([^"]+?)" class="smiley".*?> ?/gi,"$1 ");o=o.replace(/<img [^>]*?class="smiley" alt="([^"]+?)".*?> ?/gi,"$1 ");o=o.replace(/<img [^>]*?class="redactorEmbeddedAttachment[^"]*" data-attachment-id="(\d+)"( style="([^"]+)")?>/gi,function(E,H,B,F){var G="none";var D=null;if(F){F=F.split(";");for(var I=0;I<F.length;I++){var C=$.trim(F[I]);if(C.match(/^float: (left|right)$/)){G=RegExp.$1}else{if(C.match(/^width: (\d+)px$/)){D=RegExp.$1}}}if(D!==null){return"[attach="+H+","+G+","+D+"][/attach]"}else{if(G!=="none"){return"[attach="+H+","+G+"][/attach]"}}}return"[attach="+H+"][/attach]"});o=o.replace(/<img [^>]*?src=(["'])([^"']+?)\1 style="([^"]+)".*?>/gi,function(G,J,C,D){var F="none";var E=0;var H=D.split(";");for(var I=0;I<H.length;I++){var B=H[I];if(B.match(/float: (left|right|none)/)){F=RegExp.$1}else{if(B.match(/width: (\d+)px/)){E=parseInt(RegExp.$1)}}}if(E){return"[img='"+C+"',"+F+","+E+"][/img]"}else{if(F!=="none"){return"[img='"+C+"',"+F+"][/img]"}}return"[img]"+C+"[/img]"});o=o.replace(/<img [^>]*?src=(["'])([^"']+?)\1.*?>/gi,"[img]$2[/img]");var e=o.split(/(<\/?span[^>]*>)/);var z=[];var r=[];var s="";var c={11:8,13:10,16:12,19:14,24:18,29:22,32:24,48:36};for(var a=0;a<e.length;a++){var i=e[a];if(i=="</span>"){var d=r.pop();var h=d.start+z.pop()+d.end;if(z.length){z[z.length-1]+=h}else{s+=h}}else{if(i.match(/^<span/)){if(i.match(/^<span(?:.*?)style="([^"]+)"(?:[^>]*?)>/)){var l=RegExp.$1;var x;var p;if(l.match(/color: ?rgb\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\);?/i)){var w=RegExp.$1;var b=RegExp.$2;var f=RegExp.$3;var u=("0123456789ABCDEF".charAt((w-w%16)/16)+""+"0123456789ABCDEF".charAt(w%16))+""+("0123456789ABCDEF".charAt((b-b%16)/16)+""+"0123456789ABCDEF".charAt(b%16))+""+("0123456789ABCDEF".charAt((f-f%16)/16)+""+"0123456789ABCDEF".charAt(f%16));x="[color=#"+u+"]";p="[/color]"}else{if(l.match(/color: ?([^;]+);?/i)){x="[color="+RegExp.$1+"]";p="[/color]"}else{if(l.match(/font-size: ?(\d+)(pt|px);?/i)){if(RegExp.$2=="pt"){x="[size="+RegExp.$1+"]";p="[/size]"}else{if(c[RegExp.$1]){x="[size="+c[RegExp.$1]+"]";p="[/size]"}else{x="";p=""}}}else{if(l.match(/font-family: ?([^;]+);?/)){x="[font='"+RegExp.$1.replace(/'/g,"")+"']";p="[/font]"}else{x='<span style="'+l+'">';p="</span>"}}}}z[z.length]="";r[z.length]={start:x,end:p}}else{if(i.match(/^<span class="inlineCode">/)){z[z.length]="";r[z.length]={start:"[tt]",end:"[/tt]"}}else{z[z.length]="";r[z.length]={start:"",end:""}}}}else{if(z.length){z[z.length-1]+=i}else{s+=i}}}}o=s;o=o.replace(/<(div|p) style="text-align: ?(left|center|right|justify);? ?">([\s\S]*?)\n/gi,function(C,B,E,D){return"[align="+E+"]"+$.trim(D)+"[/align]"});o=o.replace(/<li>/gi,"[*]");o=o.replace(/<\/li>/gi,"");o=o.replace(/<ul>/gi,"[list]");o=o.replace(/<(ol|ul style="list-style-type: decimal")>/gi,"[list=1]");o=o.replace(/<ul style="list-style-type: (none|circle|square|disc|decimal|lower-roman|upper-roman|decimal-leading-zero|lower-greek|lower-latin|upper-latin|armenian|georgian)">/gi,"[list=$1]");o=o.replace(/<\/(ul|ol)>/gi,"[/list]");o=o.replace(/<table[^>]*>/gi,"[table]\n");o=o.replace(/<\/table>/gi,"[/table]\n");o=o.replace(/<tbody>([\s\S]*?)<\/tbody>/,function(B,C){return $.trim(C)});o=o.replace(/<tr><\/tr>/gi,"");o=o.replace(/<tr>/gi,"[tr]\n");o=o.replace(/<\/tr>/gi,"[/tr]\n");o=o.replace(/<td style="text-align: ?(left|center|right|justify);? ?">([\s\S]*?)<\/td>/gi,"[td][align=$1]$2[/align][/td]");o=o.replace(/(\t)*<td>(\t)*/gi,"[td]");o=o.replace(/(\t)*<\/td>/gi,"[/td]\n");var y={};o.replace(/<span id="selection-marker-\d+" class="redactor-selection-marker"><\/span>/,function(B){var C=B.hashCode();y[C]=B.replace(/\$/g,"$$$$");return"@@"+C+"@@"});WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","convertFromHtml",{html:o});o=o.replace(/<[^(<|>)]+>/g,"");if($.getLength(y)){for(var k in y){var v=new RegExp("@@"+k+"@@","g");data=data.replace(v,y[k])}}o=o.replace(/&lt;/g,"<");o=o.replace(/&gt;/g,">");o=o.replace(/&amp;/g,"&");o=o.replace(/%28/g,"(");o=o.replace(/%29/g,")");var t={};for(var a=0,j=__REDACTOR_SOURCE_BBCODES.length;a<j;a++){var q=__REDACTOR_SOURCE_BBCODES[a];var n=new RegExp("\\["+q+"([\\S\\s]+?)\\[\\/"+q+"\\]","gi");o=o.replace(n,function(B){var C=B.hashCode();t[C]=B.replace(/\$/g,"$$$$");return"@@"+C+"@@"})}WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","afterConvertFromHtml",{html:o});if($.getLength(t)){for(var k in t){var v=new RegExp("@@"+k+"@@","g");o=o.replace(v,t[k])}}o=$.trim(o);if(o.length){o+="\n"}return o},convertToHtml:function(D){WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","beforeConvertToHtml",{data:D});D=this.wutil.removeZeroWidthSpace(D);D=D.replace(/&/g,"&amp;");D=D.replace(/</g,"&lt;");D=D.replace(/>/g,"&gt;");var s={};for(var a=0,k=__REDACTOR_SOURCE_BBCODES.length;a<k;a++){var q=__REDACTOR_SOURCE_BBCODES[a];var m=new RegExp("\\["+q+"([\\S\\s]+?)\\[\\/"+q+"\\]","gi");D=D.replace(m,function(E){var F=E.hashCode();s[F]=E.replace(/\$/g,"$$$$");return"@@"+F+"@@"})}D=D.replace(/\[url\]([^"]+?)\[\/url]/gi,'<a href="$1">$1</a>'+this.opts.invisibleSpace);D=D.replace(/\[url\='([^'"]+)']([\s\S]+?)\[\/url]/gi,'<a href="$1">$2</a>'+this.opts.invisibleSpace);D=D.replace(/\[url\=([^'"\]]+)]([\s\S]+?)\[\/url]/gi,'<a href="$1">$2</a>'+this.opts.invisibleSpace);D=D.replace(/\[email\]([^"]+?)\[\/email]/gi,'<a href="mailto:$1">$1</a>'+this.opts.invisibleSpace);D=D.replace(/\[email\=([^"\]]+)](.+?)\[\/email]/gi,'<a href="mailto:$1">$2</a>'+this.opts.invisibleSpace);D=D.replace(/\[b\]([\s\S]*?)\[\/b]/gi,"<b>$1</b>");D=D.replace(/\[i\]([\s\S]*?)\[\/i]/gi,"<i>$1</i>");D=D.replace(/\[u\]([\s\S]*?)\[\/u]/gi,"<u>$1</u>");D=D.replace(/\[s\]([\s\S]*?)\[\/s]/gi,"<strike>$1</strike>");D=D.replace(/\[sub\]([\s\S]*?)\[\/sub]/gi,"<sub>$1</sub>");D=D.replace(/\[sup\]([\s\S]*?)\[\/sup]/gi,"<sup>$1</sup>");D=D.replace(/\[img\]([^"]+?)\[\/img\]/gi,'<img src="$1" />');D=D.replace(/\[img='?([^"]*?)'?,'?(left|right)'?\]\[\/img\]/gi,'<img src="$1" style="float: $2" />');D=D.replace(/\[img='?([^"]*?)'?,'?(left|right|none)'?,'?(\d+)'?\]\[\/img\]/gi,'<img src="$1" style="float: $2; width: $3px" />');D=D.replace(/\[img='?([^"]*?)'?\]\[\/img\]/gi,'<img src="$1" />');D=D.replace(/\[size=(\d+)\]([\s\S]*?)\[\/size\]/gi,'<span style="font-size: $1pt">$2</span>');D=D.replace(/\[color=([#a-z0-9]*?)\]([\s\S]*?)\[\/color\]/gi,'<span style="color: $1">$2</span>');D=D.replace(/\[font='?([a-z,\- ]*?)'?\]([\s\S]*?)\[\/font\]/gi,'<span style="font-family: $1">$2</span>');D=D.replace(/\[align=(left|right|center|justify)\]([\s\S]*?)\[\/align\]/gi,'<div style="text-align: $1">$2</div>');D=D.replace(/\[\*\](.*?)(?=\[\*\]|\[\/list\])/gi,"<li>$1</li>");D=D.replace(/\[list\]/gi,"<ul>");D=D.replace(/\[list=1\]/gi,'<ul style="list-style-type: decimal">');D=D.replace(/\[list=a\]/gi,'<ul style="list-style-type: lower-latin">');D=D.replace(/\[list=(none|circle|square|disc|decimal|lower-roman|upper-roman|decimal-leading-zero|lower-greek|lower-latin|upper-latin|armenian|georgian)\]/gi,'<ul style="list-style-type: $1">');D=D.replace(/\[\/list]\n?/gi,"</ul>\n");D=D.replace(/\[table\]([\S\s]*?)\[\/table\]/gi,function(E,F){return"[table]"+$.trim(F)+"[/table]"});D=D.replace(/\[table\]\n*/gi,'<table border="1" cellspacing="1" cellpadding="1" style="width: 500px;">');D=D.replace(/\[\/table\](\n*)?/gi,function(E,F){if(F){if(F.match(/\n/g).length>2){F=F.replace(/^\n/,"")}return"</table>"+F}return"</table>"});D=D.replace(/\[tr\]\n*/gi,"<tr>");D=D.replace(/\[\/tr\]\n*/gi,"</tr>");D=D.replace(/\[td\]\n*/gi,"<td>");D=D.replace(/\[\/td\]\n*/gi,"</td>");D=D.replace(/<td>([\S\s]*?)<\/td>/gi,function(E,G){var F=$.trim(G);if(!F.length){F="&#8203;"}return"<td>"+F+"</td>"});var c=this.wutil.getOption("woltlab.attachmentUrl");var C=this.wutil.getOption("woltlab.attachmentThumbnailUrl");if(c){var A=this.wbbcode._getImageAttachments();D=D.replace(/\[attach=(\d+)\]\[\/attach\]/g,function(E,F,G){F=parseInt(F);if(A[F]!==undefined){return'<img src="'+C.replace(/987654321/,F)+'" class="redactorEmbeddedAttachment redactorDisableResize" data-attachment-id="'+F+'" />'}return E});D=D.replace(/\[attach=(\d+),(left|right|none)\]\[\/attach\]/g,function(F,G,H){G=parseInt(G);if(A[G]!==undefined){var E="";if(H==="left"||H==="right"){E="float: "+H+";"}E=' style="'+E+'"';return'<img src="'+C.replace(/987654321/,G)+'" class="redactorEmbeddedAttachment redactorDisableResize" data-attachment-id="'+G+'"'+E+" />"}return F});D=D.replace(/\[attach=(\d+),(left|right|none),(\d+)\]\[\/attach\]/g,function(F,H,I,G){H=parseInt(H);if(A[H]!==undefined){var E="width: "+G+"px; max-height: "+A[H].height+"px; max-width: "+A[H].width+"px;";if(I==="left"||I==="right"){E+="float: "+I+";"}E=' style="'+E+'"';return'<img src="'+c.replace(/987654321/,H)+'" class="redactorEmbeddedAttachment" data-attachment-id="'+H+'"'+E+" />"}return F})}for(var u in __REDACTOR_SMILIES){var i=u.replace(/</g,"&lt;").replace(/>/g,"&gt;");var h=new RegExp("(\\s|>|^)"+WCF.String.escapeRegExp(i)+"(?=\\s|<|$)","gi");D=D.replace(h,'$1<img src="'+__REDACTOR_SMILIES[u]+'" class="smiley" alt="'+i+'" />')}D=D.replace(/(javascript):/gi,"$1<span></span>:");D=D.replace(/(\r|\r\n)/g,"\n");var w=[];var z=[];var g=D.split(/(\[(?:\/quote|quote|quote='[^']*?'(?:,'[^']*?')?|quote="[^"]*?"(?:,"[^"]*?")?)\])/);var d=WCF.getUUID();while(true){var n=false;for(var a=0;a<g.length;a++){var y=g[a];if(y==="[/quote]"){n=true;var e="";var l=g.slice(0,a);var b=false;while(l.length){var x=l.pop();e=x+e;if(x.match(/^\[quote/)){y=e+y;var j=WCF.getUUID();w.push({hashCode:j,content:y.replace(/\$/g,"$$$$")});z.push(j);y="@@"+j+"@@";b=true;break}}if(!b){l=g.slice(0,a);y=d}g=l.concat(y,g.slice(a+1));break}}if(!n){break}}D=g.join("");D=D.replace(new RegExp(d,"g"),"[/quote]");D=D.replace(/\n*$/,"");var f=D.split("\n");D="";for(var a=0,k=f.length;a<k;a++){var r=$.trim(f[a]);if(r.match(/^<([a-z]+)/)){if(!this.reIsBlock.test(RegExp.$1.toUpperCase())){r="<p>"+r+"</p>"}D+=r}else{if(!r){r="<br>"}else{if(r.match(/^@@([0-9\-]+)@@$/)){if(WCF.inArray(RegExp.$1,z)){D+=r;continue}}}D+="<p>"+r+"</p>"}}if(w.length){var B=function(E){return E.replace(/^['"]/,"").replace(/['"]$/,"")};var p=this;var o=function(E){return E.replace(/\[quote(=['"].+['"])?\]([\S\s]*)\[\/quote\]/gi,function(H,G,J){var N="";var I="";if(G){G=G.substr(1);G=G.split(",");switch(G.length){case 1:N=G[0];break;case 2:N=G[0];I=G[1];break}N=WCF.String.escapeHTML(B($.trim(N)));I=WCF.String.escapeHTML(B($.trim(I)))}var O='<blockquote class="quoteBox" cite="'+I+'" data-author="'+N+'"><div class="container containerPadding"><header contenteditable="false"><h3>'+p.wbbcode._buildQuoteHeader(N,I)+'</h3><a class="redactorQuoteEdit"></a></header>';J=$.trim(J);var F="";if(J.length){var M=J.split("\n");for(var L=0;L<M.length;L++){var K=M[L];if(K.length===0){K=p.opts.invisibleSpace}else{if(K.match(/^@@([0-9\-]+)@@$/)){if(WCF.inArray(RegExp.$1,z)){F+=K;continue}}}F+="<div>"+K+"</div>"}}else{F="<div>"+p.opts.invisibleSpace+"</div>"}O+=F;O+="</div></blockquote>";return O})};for(var a=w.length-1;a>=0;a--){var t=w[a];var v=new RegExp("@@"+t.hashCode+"@@","g");D=D.replace(v,o(t.content))}}if($.getLength(s)){for(var j in s){var v=new RegExp("@@"+j+"@@","g");D=D.replace(v,s[j])}D=D.replace(/\[tt\](.*?)\[\/tt\]/gi,'<span class="inlineCode">$1</span>')}D=D.replace(/\[code\][\S\s]*?\[\/code\]/,"<pre>$&</pre>");WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","afterConvertToHtml",{data:D});return D},_pasteBeforeCallback:function(a){var b={1:24,2:22,3:18,4:14,5:12,6:10};a=a.replace(/<h([1-6])[^>]+>/g,function(c,d){return"[size="+b[d]+"]"});a=a.replace(/<\/h[1-6]>/g,"[/size]");a=a.replace(/<(article|header)[^>]+>/g,"<div>");a=a.replace(/<\/(article|header)>/g,"</div>");a=a.replace(/<(div|p)([^>]+)?><(div|p)([^>]+)?>/g,"<p>");a=a.replace(/<\/(div|p)><\/(div|p)>/g,"</p>");a=a.replace(/<(div|p)><br><\/(div|p)>/g,"<p>");WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","beforePaste",{html:a});return a},_pasteCallback:function(a){a=a.replace(/<br[^>]*>(<br[^>]*>)+/g,"$1");a=a.replace(/\[size=(\d+)\]/g,'<p><span style="font-size: $1pt">');a=a.replace(/\[\/size\]/g,"</span></p>");WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","afterPaste",{html:a});return a;a=a.replace(/<img([^>]+)>/g,function(b,c){b=b.replace(/data-mozilla-paste-image="0"/,'data-mozilla-paste-image="0" style="display:none"');return b});return a},insertAttachment:function(e,c){e=parseInt(e);var a=this.wutil.getOption("woltlab.attachment"+(!c?"Thumbnail":"")+"Url");var d=this.wbbcode._getImageAttachments();if(a&&d[e]!==undefined){var b="";if(c){b=' style="width: '+d[e].width+"px; max-height: "+d[e].height+"px; max-width: "+d[e].width+'px;"'}this.wutil.insertDynamic('<img src="'+a.replace(/987654321/,e)+'" class="redactorEmbeddedAttachment'+(!c?" redactorDisableResize":"")+'" data-attachment-id="'+e+'"'+b+" />","[attach="+e+(c?",none,"+d[e].width:"")+"][/attach]")}else{this.wutil.insertDynamic("[attach="+e+"][/attach]")}},_getImageAttachments:function(){var b=this.wutil.getOption("woltlab.attachmentImages")||[];if(b.length){delete this.opts.attachmentImages;return b}var a={imageAttachments:{}};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","getImageAttachments_"+this.$textarea.wcfIdentify(),a);return a.imageAttachments},_keydownCallback:function(g){switch(g.event.which){case $.ui.keyCode.BACKSPACE:case $.ui.keyCode.DELETE:case $.ui.keyCode.DOWN:case $.ui.keyCode.ENTER:case $.ui.keyCode.UP:case 83:break;default:return;break}this.selection.get();var a=$(this.selection.getCurrent());var f=this.selection.getParent();f=(f)?$(f):f;var l=(f)?f.closest("blockquote.quoteBox",this.$editor.get()[0]):{length:0};switch(g.event.which){case $.ui.keyCode.BACKSPACE:if(this.wutil.isCaret()){if(l.length){var c=true;l.find("div > div").each(function(){if($(this).text().replace(/\u200B/,"").length){c=false;return false}});if(c){var h=window.getSelection();if(h.rangeCount){h.removeAllRanges()}var i=document.createRange();i.selectNode(l[0]);h.addRange(i);g.cancel=true}}}break;case $.ui.keyCode.DELETE:if(this.wutil.isCaret()){if(this.wutil.isEndOfElement(a[0])&&a.next("blockquote").length){var h=window.getSelection();if(h.rangeCount){h.removeAllRanges()}var i=document.createRange();i.selectNode(a.next()[0]);h.addRange(i);g.cancel=true}}break;case $.ui.keyCode.DOWN:if(a.next("blockquote").length){this.caret.setStart(a.next().find("> div > div:first"));g.cancel=true}else{if(f){if(f.next("blockquote").length){this.caret.setStart(f.next().find("> div > div:first"));g.cancel=true}else{if(l.length){var k=a.closest("div",l[0]);if(!k.next().length){if(l.next().length){this.caret.setStart(l.next())}else{this.wutil.setCaretAfter(l)}g.cancel=true}}}}}break;case $.ui.keyCode.ENTER:if(l.length){this.keydown.blockquote=false;this.keydown.enterWithinBlockquote=true}break;case $.ui.keyCode.UP:if(!f||!l.length){return}var k=a.closest("div",l[0]);var b=k.prev();if(b[0].tagName==="DIV"){return}else{if(b[0].tagName==="BLOCKQUOTE"){return}}var j=l.prev();if(j.length===0){this.wutil.setCaretBefore(l)}else{if(j[0].tagName==="BLOCKQUOTE"){this.caret.sendEnd(j.find("> div > div:last"))}else{if($.trim(j.html())==""){j.html(this.opts.invisibleSpace)}this.caret.setEnd(j)}}g.cancel=true;break;case 83:var e=false;if(navigator.platform.match(/^Mac/)){if(g.event.ctrlKey&&g.event.altKey){e=true}}else{if(g.event.altKey){e=true}}if(e){var d={cancel:false};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","submitEditor_"+this.$textarea.wcfIdentify(),d);if(d.cancel){g.cancel=true}}break}},_keyupCallback:function(a){if(a.event.which!==$.ui.keyCode.BACKSPACE&&a.event.which!==$.ui.keyCode.DELETE){return}this.$editor.find("blockquote").each(function(b,d){var c=$(d);if(!c.find("> div > header").length){c.remove()}})},_observeQuotes:function(){this.$editor.find(".redactorQuoteEdit:not(.jsRedactorQuoteEdit)").addClass("jsRedactorQuoteEdit").click($.proxy(this.wbbcode._observeQuotesClick,this))},_observeQuotesClick:function(d){var b=$(d.currentTarget).closest("header");var c=$('<span class="redactor-link-tooltip" />');$('<a href="#">'+WCF.Language.get("wcf.bbcode.quote.edit")+"</a>").click($.proxy(function(f){f.preventDefault();this.wbbcode._openQuoteEditOverlay($(d.currentTarget).closest("blockquote.quoteBox"),false);$(".redactor-link-tooltip").remove()},this)).appendTo(c);var a=b.offset();c.css({left:a.left+"px",top:(a.top+20)+"px"});$(".redactor-link-tooltip").remove();c.appendTo(document.body);$('<div contenteditable="true" />').appendTo(document.body).focus().remove()},_openQuoteEditOverlay:function(a,c){this.modal.load("quote",WCF.Language.get("wcf.bbcode.quote."+(c?"insert":"edit")),400);var b=this.modal.createActionButton(this.lang.get("save"));if(c){b.click($.proxy(function(){var e=$("#redactorQuoteAuthor").val();var d=WCF.String.escapeHTML($("#redactorQuoteLink").val());var f=this.wbbcode.insertQuoteBBCode(e,d);if(f!==null){this.caret.setStart(f.find("> div > div")[0])}this.modal.close()},this))}else{$("#redactorQuoteAuthor").val(a.data("author"));$("#redactorQuoteLink").val(WCF.String.unescapeHTML(a.attr("cite")));b.click($.proxy(function(){var d=$("#redactorQuoteAuthor").val();a.data("author",d);a.attr("data-author",d);a.prop("cite",WCF.String.escapeHTML($("#redactorQuoteLink").val()));this.wbbcode._updateQuoteHeader(a);this.modal.close()},this))}this.modal.show()},_updateQuoteHeader:function(b){var c=b.data("author");var a=b.attr("cite");if(a){a=WCF.String.escapeHTML(a)}b.find("> div > header > h3").empty().append(this.wbbcode._buildQuoteHeader(c,a))},insertQuoteBBCode:function(c,h,d,e){var g="[quote]";var a="[/quote]";if(c){if(h){g="[quote='"+c+"','"+h+"']"}else{g="[quote='"+c+"']"}}var l=null;if(this.wutil.inWysiwygMode()){var f=(e)?this.wbbcode.convertToHtml(e):"";var k=WCF.getUUID();var b=this.wbbcode.convertToHtml(g+k+a);b=b.replace(k,f.replace(/^<p>/,"").replace(/<\/p>$/,""));b=b.replace(/^<p>/,"").replace(/<\/p>$/,"");b=b.replace(/<blockquote/,'<blockquote id="'+k+'"');this.insert.html(b,false);l=this.$editor.find("#"+k);if(l.length){var j=l.find("> div > div");if(j.length==1){if(j[0].innerHTML===""){j[0].innerHTML=this.opts.invisibleSpace}}else{if($.browser.mozilla){var i=l.find("> div > br[type=_moz]");if(i.length){$("<div>"+this.opts.invisibleSpace+"</div>").insertBefore(i);i.remove()}}}l.removeAttr("id");this.wutil.setCaretAfter(l[0])}this.wbbcode._observeQuotes();this.wbbcode._fixQuotes();this.$toolbar.find("a.re-__wcf_quote").removeClass("redactor-button-disabled")}else{this.wutil.insertAtCaret(g+e+a)}return l},_buildQuoteHeader:function(b,c){var a="";if(!b&&c){b=c;c=""}if(b){if(c){a+='<a href="'+c+'">'}a+=WCF.Language.get("wcf.bbcode.quote.title.javascript",{quoteAuthor:WCF.String.unescapeHTML(b)});if(c){a+="</a>"}}else{a="<small>"+WCF.Language.get("wcf.bbcode.quote.title.clickToSet")+"</small>"}return a},_handleInsertQuote:function(){this.wbbcode._openQuoteEditOverlay(null,true)},_fixQuotes:function(){var a=(function(d,c){var b="P";if(d.parentElement.tagName==="DIV"&&d.parentElement!==this.$editor[0]){d=d.parentElement;b="DIV"}if(d[c]===null||d[c].tagName!==b){$("<"+b+">"+this.opts.invisibleSpace+"</"+b+">")[(c==="previousElementSibling"?"insertBefore":"insertAfter")](d)}else{if(d.previousElementSibling.tagName===b){if(!d[c].innerHTML.length||d[c].innerHTML.toLowerCase()==="<p></p>"){$(d[c]).html(this.opts.invisibleSpace)}}}}).bind(this);this.$editor.find("blockquote").each((function(b,c){a(c,"previousElementSibling");a(c,"nextElementSibling")}).bind(this))}}};
+if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wbbcode=function(){return{init:function(){var c=this.$textarea.wcfIdentify();this.opts.initCallback=$.proxy(function(){var f=$.trim(this.wutil.getOption("woltlab.originalValue"));if(f.length){this.wutil.replaceText(f);this.wutil.selectionEndOfEditor()}delete this.opts.woltlab.originalValue;$(document).trigger("resize")},this);this.opts.pasteBeforeCallback=$.proxy(this.wbbcode._pasteBeforeCallback,this);this.opts.pasteCallback=$.proxy(this.wbbcode._pasteCallback,this);var b=this.clean.onSync;this.clean.onSync=function(f){f=f.replace(/<p><br([^>]+)?><\/p>/g,"<p>@@@wcf_empty_line@@@</p>");return b.call(self,f)};if(this.wutil.getOption("woltlab.autosaveOnce")){this.wutil.saveTextToStorage();delete this.opts.woltlab.autosaveOnce}var a=this.button.get("table");if(a.length){var e=a.data("dropdown");e.find(".redactor-dropdown-add_head").parent().remove();e.find(".redactor-dropdown-delete_head").parent().remove();$('<li class="dropdownDivider" />').insertBefore(e.find(".redactor-dropdown-delete_table").parent());a.click($.proxy(this.wbbcode._tableButtonClick,this))}WCF.System.Event.addListener("com.woltlab.wcf.redactor","insertBBCode_quote_"+c,$.proxy(function(f){f.cancel=true;this.wbbcode._handleInsertQuote()},this));WCF.System.Event.addListener("com.woltlab.wcf.redactor","keydown_"+c,$.proxy(this.wbbcode._keydownCallback,this));WCF.System.Event.addListener("com.woltlab.wcf.redactor","keyup_"+c,$.proxy(this.wbbcode._keyupCallback,this));this.code.sync=function(){};var d=$(".redactor-toolbar-tooltip-html:not(.jsWbbcode)").addClass("jsWbbcode").text(WCF.Language.get("wcf.bbcode.button.toggleBBCode"));this.code.toggle=(function(){if(this.opts.visual){this.code.startSync();this.code.showCode();this.$textarea.val(this.wbbcode.convertFromHtml(this.$textarea.val()));this.button.get("html").children("i").removeClass("fa-square-o").addClass("fa-square");d.text(WCF.Language.get("wcf.bbcode.button.toggleHTML"))}else{this.$textarea.val(this.wbbcode.convertToHtml(this.$textarea.val()));this.code.offset=this.$textarea.val().length;this.code.showVisual();this.wbbcode._fixQuotes();this.wutil.selectionEndOfEditor();this.wbbcode._observeQuotes();this.button.get("html").children("i").removeClass("fa-square").addClass("fa-square-o");d.text(WCF.Language.get("wcf.bbcode.button.toggleBBCode"))}}).bind(this);this.wutil.setOption("clickCallback",(function(f){if(f.target===this.$editor[0]){if(this.$editor[0].lastElementChild&&this.$editor[0].lastElementChild.tagName==="BLOCKQUOTE"){this.wutil.setCaretAfter($(this.$editor[0].lastElementChild))}}}).bind(this))},_tableButtonClick:function(b){var c=$(b.currentTarget);if(!c.hasClass("dropact")){return}var a=this.selection.getBlock()||this.selection.getCurrent();var d=c.data("dropdown");d.children("li").show();var e=d.find("> li > .redactor-dropdown-insert_table").parent();if(a.tagName=="TD"){e.hide()}else{e.nextAll().hide()}},insertSmiley:function(a,b,c){if(c){this.wbbcode.registerSmiley(a,b)}if(this.opts.visual){this.insert.html('&nbsp;<img src="'+b+'" class="smiley" alt="'+a+'" />&nbsp;',false)}else{this.wutil.insertAtCaret(" "+a+" ")}},registerSmiley:function(a,b){if(__REDACTOR_SMILIES[a]){return false}__REDACTOR_SMILIES[a]=b;return true},convertFromHtml:function(o){WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","beforeConvertFromHtml",{html:o});o=o.replace(/(<[^>]+?) data-redactor-tag="[^"]+"/g,"$1");o=o.replace(/&#(8203|x200b);/g,"");o=o.replace(/&trade;/gi,"\u2122");o=o.replace(/&copy;/gi,"\u00a9");o=o.replace(/&hellip;/gi,"\u2026");o=o.replace(/&mdash;/gi,"\u2014");o=o.replace(/&dash;/gi,"\u2010");var m={};o=o.replace(/<pre>[\s\S]+?<\/pre>/g,function(C){var B=WCF.getUUID();m[B]=C;return"@@@"+B+"@@@"});o=o.replace(/\r?\n/g,"");if($.getLength(m)){$.each(m,function(B,C){o=o.replace("@@@"+B+"@@@",C)})}o=o.replace(/<a[^>]*?><\/a>/g,"");o=o.replace(/<p><\/p>/g,"");o=o.replace(/<br( \/)?><\/p>/g,"</p>");var g=o.split(/(<\/?(?:div|p)>)/);var h="";var z="";for(var a=0;a<g.length;a++){var A=g[a];if(A=="<p>"||A=="<div>"){continue}else{if(A=="</p>"||A=="</div>"){z=$.trim(z);if(z!="@@@wcf_empty_line@@@"){z+="\n"}h+=z;z=""}else{if(a==0||a+1==g.length){h+=A}else{z+=A}}}}if(z){h+=z;z=""}o=h;o=o.replace(/@@@wcf_empty_line@@@/g,"\n");o=o.replace(/\n\n$/,"\n");o=o.replace(/<br>$/,"");o=o.replace(/<br>/g,"\n");o=o.replace(/<br>/g,"");o=o.replace(/&nbsp;/gi," ");o=o.replace(/<blockquote class="quoteBox" cite="([^"]+)?" data-author="([^"]+)?"[^>]*?>\n?<div[^>]+>\n?<header[^>]*?>[\s\S]*?<\/header>/gi,function(B,D,C,E){var F;if(C){C=WCF.String.unescapeHTML(C)}if(D){D=WCF.String.unescapeHTML(D)}if(D){F="[quote='"+C+"','"+D+"']"}else{if(C){F="[quote='"+C+"']"}else{F="[quote]"}}return F});o=o.replace(/(?:\n*)<\/blockquote>\n?/gi,"[/quote]\n");o=o.replace(/<a [^>]*?href=(["'])mailto:(.+?)\1.*?>([\s\S]+?)<\/a>/gi,"[email=$2]$3[/email]");o=o.replace(/<a[^>]+><\/a>/,"");o=o.replace(/<a [^>]*?href=(["'])(.+?)\1.*?>([\s\S]+?)<\/a>/gi,function(D,B,C,E){if(C==E){return"[url]"+C+"[/url]"}return"[url='"+C+"']"+E+"[/url]"});o=o.replace(/<(?:b|strong)>/gi,"[b]");o=o.replace(/<\/(?:b|strong)>/gi,"[/b]");o=o.replace(/<(?:i|em)>/gi,"[i]");o=o.replace(/<\/(?:i|em)>/gi,"[/i]");o=o.replace(/<u>/gi,"[u]");o=o.replace(/<\/u>/gi,"[/u]");o=o.replace(/<sub>/gi,"[sub]");o=o.replace(/<\/sub>/gi,"[/sub]");o=o.replace(/<sup>/gi,"[sup]");o=o.replace(/<\/sup>/gi,"[/sup]");o=o.replace(/<(?:s(trike)?|del)>/gi,"[s]");o=o.replace(/<\/(?:s(trike)?|del)>/gi,"[/s]");o=o.replace(/<img [^>]*?alt="([^"]+?)" class="smiley".*?> ?/gi,"$1 ");o=o.replace(/<img [^>]*?class="smiley" alt="([^"]+?)".*?> ?/gi,"$1 ");o=o.replace(/<img [^>]*?class="redactorEmbeddedAttachment[^"]*" data-attachment-id="(\d+)"( style="([^"]+)")?>/gi,function(E,H,B,F){var G="none";var D=null;if(F){F=F.split(";");for(var I=0;I<F.length;I++){var C=$.trim(F[I]);if(C.match(/^float: (left|right)$/)){G=RegExp.$1}else{if(C.match(/^width: (\d+)px$/)){D=RegExp.$1}}}if(D!==null){return"[attach="+H+","+G+","+D+"][/attach]"}else{if(G!=="none"){return"[attach="+H+","+G+"][/attach]"}}}return"[attach="+H+"][/attach]"});o=o.replace(/<img [^>]*?src=(["'])([^"']+?)\1 style="([^"]+)".*?>/gi,function(G,J,C,D){var F="none";var E=0;var H=D.split(";");for(var I=0;I<H.length;I++){var B=H[I];if(B.match(/float: (left|right|none)/)){F=RegExp.$1}else{if(B.match(/width: (\d+)px/)){E=parseInt(RegExp.$1)}}}if(E){return"[img='"+C+"',"+F+","+E+"][/img]"}else{if(F!=="none"){return"[img='"+C+"',"+F+"][/img]"}}return"[img]"+C+"[/img]"});o=o.replace(/<img [^>]*?src=(["'])([^"']+?)\1.*?>/gi,"[img]$2[/img]");var e=o.split(/(<\/?span[^>]*>)/);var z=[];var r=[];var s="";var c={11:8,13:10,16:12,19:14,24:18,29:22,32:24,48:36};for(var a=0;a<e.length;a++){var i=e[a];if(i=="</span>"){var d=r.pop();var h=d.start+z.pop()+d.end;if(z.length){z[z.length-1]+=h}else{s+=h}}else{if(i.match(/^<span/)){if(i.match(/^<span(?:.*?)style="([^"]+)"(?:[^>]*?)>/)){var l=RegExp.$1;var x;var p;if(l.match(/color: ?rgb\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\);?/i)){var w=RegExp.$1;var b=RegExp.$2;var f=RegExp.$3;var u=("0123456789ABCDEF".charAt((w-w%16)/16)+""+"0123456789ABCDEF".charAt(w%16))+""+("0123456789ABCDEF".charAt((b-b%16)/16)+""+"0123456789ABCDEF".charAt(b%16))+""+("0123456789ABCDEF".charAt((f-f%16)/16)+""+"0123456789ABCDEF".charAt(f%16));x="[color=#"+u+"]";p="[/color]"}else{if(l.match(/color: ?([^;]+);?/i)){x="[color="+RegExp.$1+"]";p="[/color]"}else{if(l.match(/font-size: ?(\d+)(pt|px);?/i)){if(RegExp.$2=="pt"){x="[size="+RegExp.$1+"]";p="[/size]"}else{if(c[RegExp.$1]){x="[size="+c[RegExp.$1]+"]";p="[/size]"}else{x="";p=""}}}else{if(l.match(/font-family: ?([^;]+);?/)){x="[font='"+RegExp.$1.replace(/'/g,"")+"']";p="[/font]"}else{x='<span style="'+l+'">';p="</span>"}}}}z[z.length]="";r[z.length]={start:x,end:p}}else{if(i.match(/^<span class="inlineCode">/)){z[z.length]="";r[z.length]={start:"[tt]",end:"[/tt]"}}else{z[z.length]="";r[z.length]={start:"",end:""}}}}else{if(z.length){z[z.length-1]+=i}else{s+=i}}}}o=s;o=o.replace(/<(div|p) style="text-align: ?(left|center|right|justify);? ?">([\s\S]*?)\n/gi,function(C,B,E,D){return"[align="+E+"]"+$.trim(D)+"[/align]"});o=o.replace(/<li>/gi,"[*]");o=o.replace(/<\/li>/gi,"");o=o.replace(/<ul>/gi,"[list]");o=o.replace(/<(ol|ul style="list-style-type: decimal")>/gi,"[list=1]");o=o.replace(/<ul style="list-style-type: (none|circle|square|disc|decimal|lower-roman|upper-roman|decimal-leading-zero|lower-greek|lower-latin|upper-latin|armenian|georgian)">/gi,"[list=$1]");o=o.replace(/<\/(ul|ol)>/gi,"[/list]");o=o.replace(/<table[^>]*>/gi,"[table]\n");o=o.replace(/<\/table>/gi,"[/table]\n");o=o.replace(/<tbody>([\s\S]*?)<\/tbody>/,function(B,C){return $.trim(C)});o=o.replace(/<tr><\/tr>/gi,"");o=o.replace(/<tr>/gi,"[tr]\n");o=o.replace(/<\/tr>/gi,"[/tr]\n");o=o.replace(/<td style="text-align: ?(left|center|right|justify);? ?">([\s\S]*?)<\/td>/gi,"[td][align=$1]$2[/align][/td]");o=o.replace(/(\t)*<td>(\t)*/gi,"[td]");o=o.replace(/(\t)*<\/td>/gi,"[/td]\n");var y={};o.replace(/<span id="selection-marker-\d+" class="redactor-selection-marker"><\/span>/,function(B){var C=B.hashCode();y[C]=B.replace(/\$/g,"$$$$");return"@@"+C+"@@"});WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","convertFromHtml",{html:o});o=o.replace(/<[^(<|>)]+>/g,"");if($.getLength(y)){for(var k in y){var v=new RegExp("@@"+k+"@@","g");data=data.replace(v,y[k])}}o=o.replace(/&lt;/g,"<");o=o.replace(/&gt;/g,">");o=o.replace(/&amp;/g,"&");o=o.replace(/%28/g,"(");o=o.replace(/%29/g,")");var t={};for(var a=0,j=__REDACTOR_SOURCE_BBCODES.length;a<j;a++){var q=__REDACTOR_SOURCE_BBCODES[a];var n=new RegExp("\\["+q+"([\\S\\s]+?)\\[\\/"+q+"\\]","gi");o=o.replace(n,function(B){var C=B.hashCode();t[C]=B.replace(/\$/g,"$$$$");return"@@"+C+"@@"})}WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","afterConvertFromHtml",{html:o});if($.getLength(t)){for(var k in t){var v=new RegExp("@@"+k+"@@","g");o=o.replace(v,t[k])}}o=$.trim(o);if(o.length){o+="\n"}return o},convertToHtml:function(D){WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","beforeConvertToHtml",{data:D});D=this.wutil.removeZeroWidthSpace(D);D=D.replace(/&/g,"&amp;");D=D.replace(/</g,"&lt;");D=D.replace(/>/g,"&gt;");var s={};for(var a=0,k=__REDACTOR_SOURCE_BBCODES.length;a<k;a++){var q=__REDACTOR_SOURCE_BBCODES[a];var m=new RegExp("\\["+q+"([\\S\\s]+?)\\[\\/"+q+"\\]","gi");D=D.replace(m,function(E){var F=E.hashCode();s[F]=E.replace(/\$/g,"$$$$");return"@@"+F+"@@"})}D=D.replace(/\[url\]([^"]+?)\[\/url]/gi,'<a href="$1">$1</a>'+this.opts.invisibleSpace);D=D.replace(/\[url\='([^'"]+)']([\s\S]+?)\[\/url]/gi,'<a href="$1">$2</a>'+this.opts.invisibleSpace);D=D.replace(/\[url\=([^'"\]]+)]([\s\S]+?)\[\/url]/gi,'<a href="$1">$2</a>'+this.opts.invisibleSpace);D=D.replace(/\[email\]([^"]+?)\[\/email]/gi,'<a href="mailto:$1">$1</a>'+this.opts.invisibleSpace);D=D.replace(/\[email\=([^"\]]+)](.+?)\[\/email]/gi,'<a href="mailto:$1">$2</a>'+this.opts.invisibleSpace);D=D.replace(/\[b\]([\s\S]*?)\[\/b]/gi,"<b>$1</b>");D=D.replace(/\[i\]([\s\S]*?)\[\/i]/gi,"<i>$1</i>");D=D.replace(/\[u\]([\s\S]*?)\[\/u]/gi,"<u>$1</u>");D=D.replace(/\[s\]([\s\S]*?)\[\/s]/gi,"<strike>$1</strike>");D=D.replace(/\[sub\]([\s\S]*?)\[\/sub]/gi,"<sub>$1</sub>");D=D.replace(/\[sup\]([\s\S]*?)\[\/sup]/gi,"<sup>$1</sup>");D=D.replace(/\[img\]([^"]+?)\[\/img\]/gi,'<img src="$1" />');D=D.replace(/\[img='?([^"]*?)'?,'?(left|right)'?\]\[\/img\]/gi,'<img src="$1" style="float: $2" />');D=D.replace(/\[img='?([^"]*?)'?,'?(left|right|none)'?,'?(\d+)'?\]\[\/img\]/gi,'<img src="$1" style="float: $2; width: $3px" />');D=D.replace(/\[img='?([^"]*?)'?\]\[\/img\]/gi,'<img src="$1" />');D=D.replace(/\[size=(\d+)\]([\s\S]*?)\[\/size\]/gi,'<span style="font-size: $1pt">$2</span>');D=D.replace(/\[color=([#a-z0-9]*?)\]([\s\S]*?)\[\/color\]/gi,'<span style="color: $1">$2</span>');D=D.replace(/\[font='?([a-z,\- ]*?)'?\]([\s\S]*?)\[\/font\]/gi,'<span style="font-family: $1">$2</span>');D=D.replace(/\[align=(left|right|center|justify)\]([\s\S]*?)\[\/align\]/gi,'<div style="text-align: $1">$2</div>');D=D.replace(/\[\*\](.*?)(?=\[\*\]|\[\/list\])/gi,"<li>$1</li>");D=D.replace(/\[list\]/gi,"<ul>");D=D.replace(/\[list=1\]/gi,'<ul style="list-style-type: decimal">');D=D.replace(/\[list=a\]/gi,'<ul style="list-style-type: lower-latin">');D=D.replace(/\[list=(none|circle|square|disc|decimal|lower-roman|upper-roman|decimal-leading-zero|lower-greek|lower-latin|upper-latin|armenian|georgian)\]/gi,'<ul style="list-style-type: $1">');D=D.replace(/\[\/list]\n?/gi,"</ul>\n");D=D.replace(/\[table\]([\S\s]*?)\[\/table\]/gi,function(E,F){return"[table]"+$.trim(F)+"[/table]"});D=D.replace(/\[table\]\n*/gi,'<table border="1" cellspacing="1" cellpadding="1" style="width: 500px;">');D=D.replace(/\[\/table\](\n*)?/gi,function(E,F){if(F){if(F.match(/\n/g).length>2){F=F.replace(/^\n/,"")}return"</table>"+F}return"</table>"});D=D.replace(/\[tr\]\n*/gi,"<tr>");D=D.replace(/\[\/tr\]\n*/gi,"</tr>");D=D.replace(/\[td\]\n*/gi,"<td>");D=D.replace(/\[\/td\]\n*/gi,"</td>");D=D.replace(/<td>([\S\s]*?)<\/td>/gi,function(E,G){var F=$.trim(G);if(!F.length){F="&#8203;"}return"<td>"+F+"</td>"});var c=this.wutil.getOption("woltlab.attachmentUrl");var C=this.wutil.getOption("woltlab.attachmentThumbnailUrl");if(c){var A=this.wbbcode._getImageAttachments();D=D.replace(/\[attach=(\d+)\]\[\/attach\]/g,function(E,F,G){F=parseInt(F);if(A[F]!==undefined){return'<img src="'+C.replace(/987654321/,F)+'" class="redactorEmbeddedAttachment redactorDisableResize" data-attachment-id="'+F+'" />'}return E});D=D.replace(/\[attach=(\d+),(left|right|none)\]\[\/attach\]/g,function(F,G,H){G=parseInt(G);if(A[G]!==undefined){var E="";if(H==="left"||H==="right"){E="float: "+H+";"}E=' style="'+E+'"';return'<img src="'+C.replace(/987654321/,G)+'" class="redactorEmbeddedAttachment redactorDisableResize" data-attachment-id="'+G+'"'+E+" />"}return F});D=D.replace(/\[attach=(\d+),(left|right|none),(\d+)\]\[\/attach\]/g,function(F,H,I,G){H=parseInt(H);if(A[H]!==undefined){var E="width: "+G+"px; max-height: "+A[H].height+"px; max-width: "+A[H].width+"px;";if(I==="left"||I==="right"){E+="float: "+I+";"}E=' style="'+E+'"';return'<img src="'+c.replace(/987654321/,H)+'" class="redactorEmbeddedAttachment" data-attachment-id="'+H+'"'+E+" />"}return F})}for(var u in __REDACTOR_SMILIES){var i=u.replace(/</g,"&lt;").replace(/>/g,"&gt;");var h=new RegExp("(\\s|>|^)"+WCF.String.escapeRegExp(i)+"(?=\\s|<|$)","gi");D=D.replace(h,'$1<img src="'+__REDACTOR_SMILIES[u]+'" class="smiley" alt="'+i+'" />')}D=D.replace(/(javascript):/gi,"$1<span></span>:");D=D.replace(/(\r|\r\n)/g,"\n");var w=[];var z=[];var g=D.split(/(\[(?:\/quote|quote|quote='[^']*?'(?:,'[^']*?')?|quote="[^"]*?"(?:,"[^"]*?")?)\])/);var d=WCF.getUUID();while(true){var n=false;for(var a=0;a<g.length;a++){var y=g[a];if(y==="[/quote]"){n=true;var e="";var l=g.slice(0,a);var b=false;while(l.length){var x=l.pop();e=x+e;if(x.match(/^\[quote/)){y=e+y;var j=WCF.getUUID();w.push({hashCode:j,content:y.replace(/\$/g,"$$$$")});z.push(j);y="@@"+j+"@@";b=true;break}}if(!b){l=g.slice(0,a);y=d}g=l.concat(y,g.slice(a+1));break}}if(!n){break}}D=g.join("");D=D.replace(new RegExp(d,"g"),"[/quote]");D=D.replace(/\n*$/,"");var f=D.split("\n");D="";for(var a=0,k=f.length;a<k;a++){var r=$.trim(f[a]);if(r.match(/^<([a-z]+)/)){if(!this.reIsBlock.test(RegExp.$1.toUpperCase())){r="<p>"+r+"</p>"}D+=r}else{if(!r){r="<br>"}else{if(r.match(/^@@([0-9\-]+)@@$/)){if(WCF.inArray(RegExp.$1,z)){D+=r;continue}}}D+="<p>"+r+"</p>"}}if(w.length){var B=function(E){return E.replace(/^['"]/,"").replace(/['"]$/,"")};var p=this;var o=function(E){return E.replace(/\[quote(=['"].+['"])?\]([\S\s]*)\[\/quote\]/gi,function(H,G,J){var N="";var I="";if(G){G=G.substr(1);G=G.split(",");switch(G.length){case 1:N=G[0];break;case 2:N=G[0];I=G[1];break}N=WCF.String.escapeHTML(B($.trim(N)));I=WCF.String.escapeHTML(B($.trim(I)))}var O='<blockquote class="quoteBox" cite="'+I+'" data-author="'+N+'"><div class="container containerPadding"><header contenteditable="false"><h3>'+p.wbbcode._buildQuoteHeader(N,I)+'</h3><a class="redactorQuoteEdit"></a></header>';J=$.trim(J);var F="";if(J.length){var M=J.split("\n");for(var L=0;L<M.length;L++){var K=M[L];if(K.length===0){K=p.opts.invisibleSpace}else{if(K.match(/^@@([0-9\-]+)@@$/)){if(WCF.inArray(RegExp.$1,z)){F+=K;continue}}}F+="<div>"+K+"</div>"}}else{F="<div>"+p.opts.invisibleSpace+"</div>"}O+=F;O+="</div></blockquote>";return O})};for(var a=w.length-1;a>=0;a--){var t=w[a];var v=new RegExp("@@"+t.hashCode+"@@","g");D=D.replace(v,o(t.content))}}if($.getLength(s)){for(var j in s){var v=new RegExp("@@"+j+"@@","g");D=D.replace(v,s[j])}D=D.replace(/\[tt\](.*?)\[\/tt\]/gi,'<span class="inlineCode">$1</span>')}D=D.replace(/\[code\][\S\s]*?\[\/code\]/g,"<pre>$&</pre>");WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","afterConvertToHtml",{data:D});return D},_pasteBeforeCallback:function(a){var b={1:24,2:22,3:18,4:14,5:12,6:10};a=a.replace(/<h([1-6])[^>]+>/g,function(c,d){return"[size="+b[d]+"]"});a=a.replace(/<\/h[1-6]>/g,"[/size]");a=a.replace(/<(article|header)[^>]+>/g,"<div>");a=a.replace(/<\/(article|header)>/g,"</div>");a=a.replace(/<(div|p)([^>]+)?><(div|p)([^>]+)?>/g,"<p>");a=a.replace(/<\/(div|p)><\/(div|p)>/g,"</p>");a=a.replace(/<(div|p)><br><\/(div|p)>/g,"<p>");WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","beforePaste",{html:a});return a},_pasteCallback:function(a){a=a.replace(/<br[^>]*>(<br[^>]*>)+/g,"$1");a=a.replace(/\[size=(\d+)\]/g,'<p><span style="font-size: $1pt">');a=a.replace(/\[\/size\]/g,"</span></p>");WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","afterPaste",{html:a});return a;a=a.replace(/<img([^>]+)>/g,function(b,c){b=b.replace(/data-mozilla-paste-image="0"/,'data-mozilla-paste-image="0" style="display:none"');return b});return a},insertAttachment:function(e,c){e=parseInt(e);var a=this.wutil.getOption("woltlab.attachment"+(!c?"Thumbnail":"")+"Url");var d=this.wbbcode._getImageAttachments();if(a&&d[e]!==undefined){var b="";if(c){b=' style="width: '+d[e].width+"px; max-height: "+d[e].height+"px; max-width: "+d[e].width+'px;"'}this.wutil.insertDynamic('<img src="'+a.replace(/987654321/,e)+'" class="redactorEmbeddedAttachment'+(!c?" redactorDisableResize":"")+'" data-attachment-id="'+e+'"'+b+" />","[attach="+e+(c?",none,"+d[e].width:"")+"][/attach]")}else{this.wutil.insertDynamic("[attach="+e+"][/attach]")}},_getImageAttachments:function(){var b=this.wutil.getOption("woltlab.attachmentImages")||[];if(b.length){delete this.opts.attachmentImages;return b}var a={imageAttachments:{}};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","getImageAttachments_"+this.$textarea.wcfIdentify(),a);return a.imageAttachments},_keydownCallback:function(g){switch(g.event.which){case $.ui.keyCode.BACKSPACE:case $.ui.keyCode.DELETE:case $.ui.keyCode.DOWN:case $.ui.keyCode.ENTER:case $.ui.keyCode.UP:case 83:break;default:return;break}this.selection.get();var a=$(this.selection.getCurrent());var f=this.selection.getParent();f=(f)?$(f):f;var l=(f)?f.closest("blockquote.quoteBox",this.$editor.get()[0]):{length:0};switch(g.event.which){case $.ui.keyCode.BACKSPACE:if(this.wutil.isCaret()){if(l.length){var c=true;l.find("div > div").each(function(){if($(this).text().replace(/\u200B/,"").length){c=false;return false}});if(c){var h=window.getSelection();if(h.rangeCount){h.removeAllRanges()}var i=document.createRange();i.selectNode(l[0]);h.addRange(i);g.cancel=true}}}break;case $.ui.keyCode.DELETE:if(this.wutil.isCaret()){if(this.wutil.isEndOfElement(a[0])&&a.next("blockquote").length){var h=window.getSelection();if(h.rangeCount){h.removeAllRanges()}var i=document.createRange();i.selectNode(a.next()[0]);h.addRange(i);g.cancel=true}}break;case $.ui.keyCode.DOWN:if(a.next("blockquote").length){this.caret.setStart(a.next().find("> div > div:first"));g.cancel=true}else{if(f){if(f.next("blockquote").length){this.caret.setStart(f.next().find("> div > div:first"));g.cancel=true}else{if(l.length){var k=a.closest("div",l[0]);if(!k.next().length){if(l.next().length){this.caret.setStart(l.next())}else{this.wutil.setCaretAfter(l)}g.cancel=true}}}}}break;case $.ui.keyCode.ENTER:if(l.length){this.keydown.blockquote=false;this.keydown.enterWithinBlockquote=true}break;case $.ui.keyCode.UP:if(!f||!l.length){return}var k=a.closest("div",l[0]);var b=k.prev();if(b[0].tagName==="DIV"){return}else{if(b[0].tagName==="BLOCKQUOTE"){return}}var j=l.prev();if(j.length===0){this.wutil.setCaretBefore(l)}else{if(j[0].tagName==="BLOCKQUOTE"){this.caret.sendEnd(j.find("> div > div:last"))}else{if($.trim(j.html())==""){j.html(this.opts.invisibleSpace)}this.caret.setEnd(j)}}g.cancel=true;break;case 83:var e=false;if(navigator.platform.match(/^Mac/)){if(g.event.ctrlKey&&g.event.altKey){e=true}}else{if(g.event.altKey){e=true}}if(e){var d={cancel:false};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","submitEditor_"+this.$textarea.wcfIdentify(),d);if(d.cancel){g.cancel=true}}break}},_keyupCallback:function(a){if(a.event.which!==$.ui.keyCode.BACKSPACE&&a.event.which!==$.ui.keyCode.DELETE){return}this.$editor.find("blockquote").each(function(b,d){var c=$(d);if(!c.find("> div > header").length){c.remove()}})},_observeQuotes:function(){this.$editor.find(".redactorQuoteEdit:not(.jsRedactorQuoteEdit)").addClass("jsRedactorQuoteEdit").click($.proxy(this.wbbcode._observeQuotesClick,this))},_observeQuotesClick:function(d){var b=$(d.currentTarget).closest("header");var c=$('<span class="redactor-link-tooltip" />');$('<a href="#">'+WCF.Language.get("wcf.bbcode.quote.edit")+"</a>").click($.proxy(function(f){f.preventDefault();this.wbbcode._openQuoteEditOverlay($(d.currentTarget).closest("blockquote.quoteBox"),false);$(".redactor-link-tooltip").remove()},this)).appendTo(c);var a=b.offset();c.css({left:a.left+"px",top:(a.top+20)+"px"});$(".redactor-link-tooltip").remove();c.appendTo(document.body);$('<div contenteditable="true" />').appendTo(document.body).focus().remove()},_openQuoteEditOverlay:function(a,c){this.modal.load("quote",WCF.Language.get("wcf.bbcode.quote."+(c?"insert":"edit")),400);var b=this.modal.createActionButton(this.lang.get("save"));if(c){b.click($.proxy(function(){var e=$("#redactorQuoteAuthor").val();var d=WCF.String.escapeHTML($("#redactorQuoteLink").val());var f=this.wbbcode.insertQuoteBBCode(e,d);if(f!==null){this.caret.setStart(f.find("> div > div")[0])}this.modal.close()},this))}else{$("#redactorQuoteAuthor").val(a.data("author"));$("#redactorQuoteLink").val(WCF.String.unescapeHTML(a.attr("cite")));b.click($.proxy(function(){var d=$("#redactorQuoteAuthor").val();a.data("author",d);a.attr("data-author",d);a.prop("cite",WCF.String.escapeHTML($("#redactorQuoteLink").val()));this.wbbcode._updateQuoteHeader(a);this.modal.close()},this))}this.modal.show()},_updateQuoteHeader:function(b){var c=b.data("author");var a=b.attr("cite");if(a){a=WCF.String.escapeHTML(a)}b.find("> div > header > h3").empty().append(this.wbbcode._buildQuoteHeader(c,a))},insertQuoteBBCode:function(c,h,d,e){var g="[quote]";var a="[/quote]";if(c){if(h){g="[quote='"+c+"','"+h+"']"}else{g="[quote='"+c+"']"}}var l=null;if(this.wutil.inWysiwygMode()){var f=(e)?this.wbbcode.convertToHtml(e):"";var k=WCF.getUUID();var b=this.wbbcode.convertToHtml(g+k+a);b=b.replace(k,f.replace(/^<p>/,"").replace(/<\/p>$/,""));b=b.replace(/^<p>/,"").replace(/<\/p>$/,"");b=b.replace(/<blockquote/,'<blockquote id="'+k+'"');this.insert.html(b,false);l=this.$editor.find("#"+k);if(l.length){var j=l.find("> div > div");if(j.length==1){if(j[0].innerHTML===""){j[0].innerHTML=this.opts.invisibleSpace}}else{if($.browser.mozilla){var i=l.find("> div > br[type=_moz]");if(i.length){$("<div>"+this.opts.invisibleSpace+"</div>").insertBefore(i);i.remove()}}}l.removeAttr("id");this.wutil.setCaretAfter(l[0])}this.wbbcode._observeQuotes();this.wbbcode._fixQuotes();this.$toolbar.find("a.re-__wcf_quote").removeClass("redactor-button-disabled")}else{this.wutil.insertAtCaret(g+e+a)}return l},_buildQuoteHeader:function(b,c){var a="";if(!b&&c){b=c;c=""}if(b){if(c){a+='<a href="'+c+'">'}a+=WCF.Language.get("wcf.bbcode.quote.title.javascript",{quoteAuthor:WCF.String.unescapeHTML(b)});if(c){a+="</a>"}}else{a="<small>"+WCF.Language.get("wcf.bbcode.quote.title.clickToSet")+"</small>"}return a},_handleInsertQuote:function(){this.wbbcode._openQuoteEditOverlay(null,true)},_fixQuotes:function(){var a=(function(d,c){var b="P";if(d.parentElement.tagName==="DIV"&&d.parentElement!==this.$editor[0]){d=d.parentElement;b="DIV"}if(d[c]===null||d[c].tagName!==b){$("<"+b+">"+this.opts.invisibleSpace+"</"+b+">")[(c==="previousElementSibling"?"insertBefore":"insertAfter")](d)}else{if(d.previousElementSibling.tagName===b){if(!d[c].innerHTML.length||d[c].innerHTML.toLowerCase()==="<p></p>"){$(d[c]).html(this.opts.invisibleSpace)}}}}).bind(this);this.$editor.find("blockquote").each((function(b,c){a(c,"previousElementSibling");a(c,"nextElementSibling")}).bind(this))}}};
 // wbutton.js
 if(!RedactorPlugins){var RedactorPlugins={}}RedactorPlugins.wbutton=function(){return{_bbcodes:{},init:function(){this._bbcodes={};for(var h=0,e=__REDACTOR_BUTTONS.length;h<e;h++){this.wbutton._addBBCodeButton(__REDACTOR_BUTTONS[h])}var a={html:"fa-square-o",bold:"fa-bold",italic:"fa-italic",underline:"fa-underline",deleted:"fa-strikethrough",subscript:"fa-subscript",superscript:"fa-superscript",orderedlist:"fa-list-ol",unorderedlist:"fa-list-ul",outdent:"fa-outdent",indent:"fa-indent",link:"fa-link",alignment:"fa-align-left",table:"fa-table"};var d={fontcolor:WCF.Language.get("wcf.bbcode.button.fontColor"),fontfamily:WCF.Language.get("wcf.bbcode.button.fontFamily"),fontsize:WCF.Language.get("wcf.bbcode.button.fontSize"),image:WCF.Language.get("wcf.bbcode.button.image"),subscript:WCF.Language.get("wcf.bbcode.button.subscript"),superscript:WCF.Language.get("wcf.bbcode.button.superscript")};var b=this.wutil.getOption("buttons");var g="";for(var h=0,e=b.length;h<e;h++){var c=b[h];if(c=="separator"){this.button.get(g).parent().addClass("separator");continue}var f=this.button.get(c);if(f.length){if(a[c]){this.button.setAwesome(c,a[c])}if(c==="table"&&g){f.parent().insertAfter(this.button.get(g).parent())}}else{this.wbutton._addCoreButton(c,(d[c]?d[c]:null),(a[c]?a[c]:null),g)}g=c}this.button.addCallback(this.button.get("image"),$.proxy(this.wbutton.insertImage,this))},_addCoreButton:function(b,c,a,d){var f={title:(c===null?b:c)};if(b==="subscript"||b==="superscript"){f.command=b}var e=this.button.build(b,f);$("<li />").append(e).insertAfter(this.button.get(d).parent());if(a!==null){this.button.setAwesome(b,a)}},_addBBCodeButton:function(b){var c="__wcf_"+b.name;var a=this.button.add(c,b.label);this.button.addCallback(a,this.wbutton._insertBBCode);this._bbcodes[c]=b.name;if(b.icon.match(/^fa\-[a-z\-]+$/)){this.button.setAwesome(c,b.icon)}else{a.css("background-image","url("+__REDACTOR_ICON_PATH+b.icon+")")}},_insertBBCode:function(a){var d=this._bbcodes[a];var b={buttonName:a,cancel:false};WCF.System.Event.fireEvent("com.woltlab.wcf.redactor","insertBBCode_"+d+"_"+this.$textarea.wcfIdentify(),b);if(b.cancel===false){var c=this.selection.getHtml();if(false&&d==="tt"){var e=(this.selection.getParent())?$(this.selection.getParent()):null;if(e&&e.closest("inline.inlineCode",this.$editor.get()[0]).length){this.inline.toggleClass("inlineCode")}else{this.inline.toggleClass("inlineCode")}}else{this.insert.html("["+d+"]"+c+this.selection.getMarkerAsHtml()+"[/"+d+"]",false);this.selection.restore()}}event.preventDefault();return false},insertImage:function(){this.image.show()},_insertImage:function(){var d=$("#redactor-image-link-source");var b=d.val().trim();if(b.length){this.buffer.set();var c=$("#redactor-image-align").val();var a="";if(c==="left"||c==="right"){a=' style="float: '+c+'"'}this.insert.html('<img src="'+b+'"'+a+">",false);this.modal.close();this.observe.images()}else{if(!d.next("small.innerError")){$('<small class="innerError">'+WCF.Language.get("wcf.global.form.error.empty")+"</small>").insertAfter(d)}}}}};
 // wfontcolor.js