diff --git a/CHANGELOG.textile b/CHANGELOG.textile
index 66f1b5c..e7593fb 100644
--- a/CHANGELOG.textile
+++ b/CHANGELOG.textile
@@ -1,3 +1,6 @@
+*wysihtml5x 0.5.0-beta10* (June 4, 2015)
+* Fixes issue where block level elements can be inserted into inline elements on some cases
+
*wysihtml5x 0.5.0-beta9* (June 2, 2015)
* New formatInline logic (and syntax). Fixes most current inline formating issues (bold/italic/colors/etc.)
diff --git a/bower.json b/bower.json
index 12fee3e..b7e67d3 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "wysihtml",
- "version": "0.5.0-beta9",
+ "version": "0.5.0-beta10",
"main": "dist/wysihtml-toolbar.js",
"dependencies": {
},
diff --git a/dist/wysihtml-toolbar.js b/dist/wysihtml-toolbar.js
index c62bde4..f1aa8c7 100644
--- a/dist/wysihtml-toolbar.js
+++ b/dist/wysihtml-toolbar.js
@@ -1,5 +1,5 @@
/**
- * @license wysihtml v0.5.0-beta9
+ * @license wysihtml v0.5.0-beta10
* https://github.com/Voog/wysihtml
*
* Author: Christopher Blum (https://github.com/tiff)
@@ -10,7 +10,7 @@
*
*/
var wysihtml5 = {
- version: "0.5.0-beta9",
+ version: "0.5.0-beta10",
// namespaces
commands: {},
@@ -5898,6 +5898,17 @@ wysihtml5.dom.copyAttributes = function(attributesToCopy) {
emptyTextNode: function(ignoreWhitespace) {
var regx = ignoreWhitespace ? (/^\s*$/g) : (/^[\r\n]*$/g);
return node.nodeType === wysihtml5.TEXT_NODE && (regx).test(node.data);
+ },
+
+ visible: function() {
+ var isVisible = !(/^\s*$/g).test(wysihtml5.dom.getTextContent(node));
+
+ if (!isVisible) {
+ if (node.nodeType === 1 && node.querySelector('img, br, hr, object, embed, canvas, input, textarea')) {
+ isVisible = true;
+ }
+ }
+ return isVisible;
}
},
@@ -10213,7 +10224,7 @@ wysihtml5.quirks.ensureProperClearing = (function() {
// Empty elements are cleaned up from extracted content
for (var i = childNodes.length; i --;) {
- if (childNodes[i].nodeType === 1 && (/^\s*$/).test(childNodes[i].innerHTML)) {
+ if (!wysihtml5.dom.domNode(childNodes[i]).is.visible()) {
contentAfterRangeStart.removeChild(childNodes[i]);
}
}
@@ -10237,11 +10248,11 @@ wysihtml5.quirks.ensureProperClearing = (function() {
range.setEndAfter(element);
}
- if ((/^\s*$/).test(element.innerHTML)) {
- if (element.innerHTML === '') {
+ if (!wysihtml5.dom.domNode(element).is.visible()) {
+ if (wysihtml5.dom.getTextContent(element) === '') {
element.parentNode.removeChild(element);
} else {
- wysihtml5.dom.unwrap(element);
+ element.parentNode.replaceChild(this.doc.createTextNode(" "), element);
}
}
@@ -11651,8 +11662,10 @@ wysihtml5.Commands = Base.extend(
var dom = wysihtml5.dom,
// When the caret is within a H1 and the H4 is invoked, the H1 should turn into H4
// instead of creating a H4 within a H1 which would result in semantically invalid html
- UNNESTABLE_BLOCK_ELEMENTS = "h1, h2, h3, h4, h5, h6, p, pre";
- BLOCK_ELEMENTS = "h1, h2, h3, h4, h5, h6, p, pre, div, blockquote";
+ UNNESTABLE_BLOCK_ELEMENTS = "h1, h2, h3, h4, h5, h6, p, pre",
+ BLOCK_ELEMENTS = "h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",
+ INLINE_ELEMENTS = "b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u";
+
// Removes empty block level elements
function cleanup(composer) {
@@ -11687,6 +11700,35 @@ wysihtml5.Commands = Base.extend(
return block;
}
+ function cloneOuterInlines(node, container) {
+ var n = node,
+ innerNode,
+ parentNode,
+ el = null,
+ el2;
+
+ while (n && container && n !== container) {
+ if (n.nodeType === 1 && n.matches(INLINE_ELEMENTS)) {
+ parentNode = n;
+ if (el === null) {
+ el = n.cloneNode(false);
+ innerNode = el;
+ } else {
+ el2 = n.cloneNode(false);
+ el2.appendChild(el);
+ el = el2;
+ }
+ }
+ n = n.parentNode;
+ }
+
+ return {
+ parent: parentNode,
+ outerNode: el,
+ innerNode: innerNode
+ };
+ }
+
// Formats an element according to options nodeName, className, styleProperty, styleValue
// If element is not defined, creates new element
// if opotions is null, remove format instead
@@ -11892,13 +11934,24 @@ wysihtml5.Commands = Base.extend(
blocks = wysihtml5.lang.array(fragment.childNodes).get();
}
-
if (firstOuterBlock) {
// If selection starts inside un-nestable block, split-escape the unnestable point and insert node between
composer.selection.splitElementAtCaret(firstOuterBlock, fragment);
} else {
- // Otherwise just insert
- r.insertNode(fragment);
+ // Ensure node does not get inserted into an inline where it is not allowed
+ var outerInlines = cloneOuterInlines(rangeStartContainer, composer.element);
+ if (outerInlines.outerNode && outerInlines.innerNode && outerInlines.parent) {
+ if (fragment.childNodes.length === 1) {
+ while(fragment.firstChild.firstChild) {
+ outerInlines.innerNode.appendChild(fragment.firstChild.firstChild);
+ }
+ fragment.firstChild.appendChild(outerInlines.outerNode);
+ }
+ composer.selection.splitElementAtCaret(outerInlines.parent, fragment);
+ } else {
+ // Otherwise just insert
+ r.insertNode(fragment);
+ }
}
return blocks;
@@ -12067,7 +12120,7 @@ wysihtml5.Commands = Base.extend(
(function(wysihtml5) {
var defaultTag = "SPAN",
- INLINE_ELEMENTS = "b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select",
+ INLINE_ELEMENTS = "b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u",
queryAliasMap = {
"b": "b, strong",
"strong": "b, strong",
@@ -15569,7 +15622,7 @@ wysihtml5.views.View = Base.extend(
this.elementToChange = null;
dom.removeClass(this.link, CLASS_NAME_OPENED);
this.container.style.display = "none";
- this.fire("hide");
+ this.fire("cancel");
}
});
})(wysihtml5);
diff --git a/dist/wysihtml-toolbar.min.js b/dist/wysihtml-toolbar.min.js
index 0a4ca68..eda3671 100644
--- a/dist/wysihtml-toolbar.min.js
+++ b/dist/wysihtml-toolbar.min.js
@@ -1,10 +1,10 @@
-/*! wysihtml - v0.5.0-beta9 (2015-06-02) */
+/*! wysihtml - v0.5.0-beta10 (2015-06-04) */
-var wysihtml5={version:"0.5.0-beta9",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"\ufeff",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),a.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++cg||c!==f&&c.compareDocumentPosition(f)&Node.DOCUMENT_POSITION_PRECEDING)&&(f=[c,c=f][0],g=[e,e=g][0]);i&&j;)j.previousSibling&&j.previousSibling===i?(c===j&&(c=i,e=i.nodeValue.length+e),f===j&&(f=i,g=i.nodeValue.length+g),i.nodeValue=i.nodeValue+j.nodeValue,j.parentNode.removeChild(j),j=a.shift()):(i=j,j=a.shift());c&&c.parentNode&&f&&f.parentNode&&(h.setStart(c,e),h.setEnd(f,g),b.removeAllRanges(),b.addRange(h))});Node.prototype.normalize=a};"Node"in window&&"normalize"in Node.prototype&&c()&&e()},wysihtml5.polyfills(window,document),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.warn("DEPRECATED: "+a+" in module "+this.name+" is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(K(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=F)return a.ownerDocument;if(typeof a.document!=F)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},D.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},E.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f0&&d=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((W(b)!=W(e)||1==R(b,c,e,f))&&(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((W(b)!=W(e)||-1==R(b,c,e,f))&&(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(cx",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return z(this),n(this,a,b)},getDocument:function(){return d(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var c=d(this),e=a.createRange(c);b=b||J.getBody(c),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);
+var wysihtml5={version:"0.5.0-beta10",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"\ufeff",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),a.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++cg||c!==f&&c.compareDocumentPosition(f)&Node.DOCUMENT_POSITION_PRECEDING)&&(f=[c,c=f][0],g=[e,e=g][0]);i&&j;)j.previousSibling&&j.previousSibling===i?(c===j&&(c=i,e=i.nodeValue.length+e),f===j&&(f=i,g=i.nodeValue.length+g),i.nodeValue=i.nodeValue+j.nodeValue,j.parentNode.removeChild(j),j=a.shift()):(i=j,j=a.shift());c&&c.parentNode&&f&&f.parentNode&&(h.setStart(c,e),h.setEnd(f,g),b.removeAllRanges(),b.addRange(h))});Node.prototype.normalize=a};"Node"in window&&"normalize"in Node.prototype&&c()&&e()},wysihtml5.polyfills(window,document),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.warn("DEPRECATED: "+a+" in module "+this.name+" is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(K(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=F)return a.ownerDocument;if(typeof a.document!=F)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},D.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},E.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f0&&d=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((W(b)!=W(e)||1==R(b,c,e,f))&&(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((W(b)!=W(e)||-1==R(b,c,e,f))&&(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(cx",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return z(this),n(this,a,b)},getDocument:function(){return d(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var c=d(this),e=a.createRange(c);b=b||J.getBody(c),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);
for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return I.rangesEqual(this,a)},isValid:function(){return y(this)},inspect:function(){return o(this)},detach:function(){}}),F(I,H),K.extend(I,{rangeProperties:ja,RangeIterator:p,copyComparisonConstants:D,createPrototypeRange:F,inspect:o,toHtml:B,getRangeDocument:d,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=I}),H.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?k.compareBoundaryPoints=function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:k.compareBoundaryPoints=function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&e.removeNode(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return e.removeNode(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=ba.length;e--;)if(c=ba[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(ba.splice(e,1),!0):d;return"deleteAll"==b&&(ba.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);if(Q)y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b};else{if(!O)return b.fail("Neither document.selection or window.getSelection() detected."),!1;y=e,a.isSelectionValid=function(){return!0}}a.getNativeSelection=y;var R=y();if(!R)return b.fail("Native selection was null (possibly issue 138?)"),!1;var S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=C.createTestElement(document,"",!1),j=i.appendChild(document.createTextNode("Â Â Â ")),k=document.createRange();if(k.setStart(j,1),k.collapse(!0),b.removeAllRanges(),b.addRange(k),Y=1==b.rangeCount,b.removeAllRanges(),!d){var l=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(l&&parseInt(l[1])>=36)X=!1;else{var m=k.cloneRange();k.setStart(j,0),m.setEnd(j,3),m.setStart(j,2),b.addRange(k),b.addRange(m),X=2==b.rangeCount}}for(C.removeNode(i),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var aa;E(R,"getRangeAt")?aa=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(aa=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var ba=[],ca=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),ba.push({win:a,selection:b})),b};a.getSelection=ca,D.createAliasForDeprecatedMethod(a,"getIframeSelection","getSelection");var da=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){da.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var ea=function(a,b){Z(a.nativeSelection,b),a.refresh()};W?da.addRange=function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)ea(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=aa(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,ha(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:da.addRange=function(a,b){c(b)&&V?ea(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},da.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;da.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},da.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},da.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}da.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fa;if(Q)fa=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fa=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],ha(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fa=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=aa(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}da.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fa(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var ga=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};_&&P?da.removeRange=function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else ga(this,a)}:da.removeRange=function(a){ga(this,a)};var ha;!Q&&U&&J.implementsDomRange?(ha=g,da.isBackward=function(){return ha(this)}):ha=da.isBackward=function(){return!1},da.isBackwards=da.isBackward,da.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},da.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},da.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},da.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},da.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},da.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),C.removeNode(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},da.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},da.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},da.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},da.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b||[]))}),c},da.setStart=w(!0),da.setEnd=w(!1),a.rangePrototype.select=function(a){ca(this.getDocument()).setSingleRange(this,a)},da.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},da.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},da.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},da.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},da.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}},da.restoreRanges=function(a){this.removeAllRanges();for(var b,c=0;b=a.ranges[c];++c)this.addRange(b,a.backward&&0==c)},da.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(da.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),da.getName=function(){return"WrappedSelection"},da.inspect=function(){return x(this)},da.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=da,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return ca(a)}),a=null})});var M=!1,N=function(a){M||(M=!0,!H.initialized&&H.config.autoInitialize&&l())};return F&&("complete"==document.readyState?N():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",N,!1),J(window,"load",N))),H},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(r)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),p(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString(),i=q(c);return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:i,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(p(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),p(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[],j=q(d);b=b.slice(0),b.sort(f);for(var k=0,l=b.length;l>k;++k)i[k]=g(b[k],j);for(k=l-1;k>=0;--k)e=b[k],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[k].markerId,h)):(e.setEndBefore(c(i[k].endMarkerId,h)),e.setStartAfter(c(i[k].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],f):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&p(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p=o.removeNode,q=a.Selection.isDirectionBackward,r="\ufeff";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})}),a},this);var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;aa:">"===b?a>d:"<="===b?d>=a:">="===b?a>=d:void 0:a===d:!0}var d=navigator.userAgent,e=document.createElement("div"),f=-1!==d.indexOf("Gecko")&&-1===d.indexOf("KHTML"),g=-1!==d.indexOf("AppleWebKit/"),h=-1!==d.indexOf("Chrome/"),i=-1!==d.indexOf("Opera/");return{USER_AGENT:d,supported:function(){var c=this.USER_AGENT.toLowerCase(),d="contentEditable"in e,f=document.execCommand&&document.queryCommandSupported&&document.queryCommandState,g=document.querySelector&&document.querySelectorAll,h=this.isIos()&&a(c)<5||this.isAndroid()&&b(c)<4||-1!==c.indexOf("opera mobi")||-1!==c.indexOf("hpwos/");return d&&f&&g&&!h},isTouchDevice:function(){return this.supportsEvent("touchmove")},isIos:function(){return/ipad|iphone|ipod/i.test(this.USER_AGENT)},isAndroid:function(){return-1!==this.USER_AGENT.indexOf("Android")},supportsSandboxedIframes:function(){return c()},throwsMixedContentWarningWhenIframeSrcIsEmpty:function(){return!("querySelector"in document)},displaysCaretInEmptyContentEditableCorrectly:function(){return c()},hasCurrentStyleProperty:function(){return"currentStyle"in e},insertsLineBreaksOnReturn:function(){return f},supportsPlaceholderAttributeOn:function(a){return"placeholder"in a},supportsEvent:function(a){return"on"+a in e||function(){return e.setAttribute("on"+a,"return;"),"function"==typeof e["on"+a]}()},supportsEventsInIframeCorrectly:function(){return!i},supportsHTML5Tags:function(a){var b=a.createElement("div"),c="foo";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:c(10,"<="),insertUnorderedList:c(9,">="),insertOrderedList:c(9,">=")},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return c()},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||c()||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=e.cloneNode(!1);return c.innerHTML="",b=c.innerHTML.toLowerCase(),a=""===b||"
"===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=d.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return c(9)&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return c()},hasProblemsSettingCaretAfterImg:function(){return c()},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return c()},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window},supportsModenPaste:function(){return!("clipboardData"in window)},fixStyleKey:function(a){return"cssFloat"===a?"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat":a}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":" "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi," ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b);for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){if(b.nodeType!==wysihtml5.ELEMENT_NODE){if(b.parentNode===a)return!0;b=b.parentNode}return a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(c){var d=c?/^\s*$/g:/^[\r\n]*$/g;return b.nodeType===a.TEXT_NODE&&d.test(b.data)}},prev:function(d){var e=b.previousSibling,f=d&&d.nodeTypes?d.nodeTypes:c;return e?!a.lang.array(f).contains(e.nodeType)||d&&d.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(d):e:null},next:function(d){var e=b.nextSibling,f=d&&d.nodeTypes?d.nodeTypes:c;return e?!a.lang.array(f).contains(e.nodeType)||d&&d.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(d):e:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},escapeParent:function(c,d){var e,f,g,h=b;if(!a.dom.contains(c,b))throw new Error("Child is not a descendant of node.");do{for(e=h.parentNode,f=e.cloneNode(!1);e.lastChild&&e.lastChild!==h;)f.insertBefore(e.lastChild,f.firstChild);if(e!==c&&(g=e.cloneNode(!1),g.appendChild(h),h=g),e.parentNode.insertBefore(h,e.nextSibling),""!==f.innerHTML)if(/^\s+$/.test(f.innerHTML))for(;f.lastChild;)e.parentNode.insertBefore(f.lastChild,h.nextSibling);else e.parentNode.insertBefore(f,h.nextSibling);if(""===e.innerHTML)e.parentNode.removeChild(e);else if(/^\s+$/.test(e.innerHTML)){for(;e.firstChild;)e.parentNode.insertBefore(e.firstChild,e);e.parentNode.removeChild(e)}}while(e&&e!==c);d&&h&&(h.parentNode.insertBefore(d,h),d.appendChild(h))},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(c.attribute){var j=a.dom.getAttributes(b),k=[],l=!1;Array.isArray(c.attribute)?k=c.attribute:k[c.attribute]=c.attributeValue;for(var m in k)if(k.hasOwnProperty(m))if("undefined"==typeof k[m]){if("undefined"!=typeof j[m]){l=!0;break}}else if(j[m]===k[m]){l=!0;break}if(!l)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(c){var e=b.ownerDocument,f=a.dom.domNode(b).next({ignoreBlankTexts:!0}),g=a.dom.domNode(b).prev({ignoreBlankTexts:!0});f&&!d(f)&&a.dom.insert(e.createElement("br")).after(b),g&&!d(g)&&a.dom.insert(e.createElement("br")).before(b)},remove:function(d){var e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&c(e)&&e.parentNode.removeChild(e),f&&c(f)&&f.parentNode.removeChild(f)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||""===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=wysihtml5.lang.object(c).isFunction()?c:v[c];return f&&(e=f(b,d),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b,c){return b?b.replace(a,""):"IMG"===c?"":null}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a?a:null}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode&&a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l,m=a.ownerDocument,n=m.createDocumentFragment(),o=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0}),p=wysihtml5.dom.domNode(a).next({ignoreBlankTexts:!0}),q=a.lastElementChild||a.lastChild;if(e)for(!o||b(o)||c(o)||d(n);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild,l=k===q;f=k.firstChild;)h=f===g,i=(!l||p&&!b(p))&&h&&!b(f)&&!c(f),n.appendChild(f),i&&d(n);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)n.appendChild(f);else{for(j=m.createElement("p");f=k.firstChild;)j.appendChild(f);n.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(n,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.config.className||(this.config.className="wysihtml5-sandbox"),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className=this.config.className,a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}a.polyfills&&a.polyfills(h,i),this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView||this.element.ownerDocument.parentWindow},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.config.className||(this.config.className="wysihtml5-sandbox"),d?this.element=this._bindElement(d):this.element=this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className=this.config.className,this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!==a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(a){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d,e){var f=e||"wysihtml5-placeholder",g=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,f)},h=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,f))};b.on("set_placeholder",h).on("unset_placeholder",g).on("focus:composer",g).on("paste:composer",g).on("blur:composer",h),h()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e
-};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode("Â ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^
$/i.test(d.trim())&&(d=!1),b(d),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"},!1,a),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==d&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(c){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(c,d){l.start=c,l.end=d,l.table=k.getParentElement(l.start,{query:"table"},!1,a),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(b){var c=wysihtml5.dom.getParentElement(b.target,{query:"td, th"},!1,a);c&&d(c)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"},!1,a)!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(b){var d;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(d=c.lastChild,a.dom.unwrap(c),this.setAfter(d)):c.parentNode.removeChild(c))}.bind(this),f=function(a){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.className="_wysihtml5-temp-caret-fix",c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c,d){var e,f=this.win,g=rangy.createRange(this.doc),h=function(){var d=b.parentNode,g=d?d.childNodes[d.childNodes.length-1]:null;if(!e||g===b&&1===b.nodeType&&"block"===f.getComputedStyle(b).display)if(c){var h=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(h,b.nextSibling),this.selectNode(h),setTimeout(function(){h&&h.parentNode&&h.parentNode.removeChild(h)},0)}else this.createTemporaryCaretSpaceAfter(b)}.bind(this);if(g.setStartAfter(b),g.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(g),h(),d&&d(e);else{var i=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(i),setTimeout(function(){e=this.setSelection(g),h(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(a){for(var b=this.getOwnRanges(),c=[],d=0,e=b.length;e>d;d++)c.push(b[d].commonAncestorContainer||this.doc.body);return c},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(b){for(var c,d=this.getSelectedOwnNodes(),e=[],f=0,g=d.length;g>f;f++)c=d[f].nodeName&&"LI"===d[f].nodeName?d[f]:a.dom.getParentElement(d[f],{query:"li"},!1,this.contain),c&&e.push(c);return e.length?e:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode():null;if(j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},executeAndRestoreRangy:function(a,b){var c=rangy.saveSelection(this.win);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(b,c){var d,e,f,g,h,i=this.getSelection();if(i.rangeCount>0){d=i.getRangeAt(0).cloneRange(),d.setEndAfter(b),e=d.extractContents(),h=e.childNodes;for(var j=h.length;j--;)1===h[j].nodeType&&/^\s*$/.test(h[j].innerHTML)&&e.removeChild(h[j]);b.parentNode.insertBefore(e,b.nextSibling),c?(f=c.firstChild||c,g=c.lastChild||c,b.parentNode.insertBefore(c,b.nextSibling),f&&g&&(d.setStartBefore(f),d.setEndAfter(g),this.setSelection(d))):(d.setStartAfter(b),d.setEndAfter(b)),/^\s*$/.test(b.innerHTML)&&(""===b.innerHTML?b.parentNode.removeChild(b):a.dom.unwrap(b))}},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.win.getSelection();a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},getOwnNodes:function(a,b,c){for(var d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)d[f]&&(c&&d[f].splitBoundaries(),e=e.concat(d[f].getNodes(Array.isArray(a)?a:[a],b)));return e},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);
-return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},remove:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.remove;return e?(d.unshift(this.composer),e.apply(c,d)):void 0},state:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.state;if(e)return d.unshift(this.composer),e.apply(c,d);try{return this.doc.queryCommandState(a)}catch(f){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),function(a){var b={nodeName:"B",toggle:!0};a.commands.bold={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){function b(b){return a.lang.object({}).merge(c).merge({attribute:b}).get()}var c={nodeName:"A",toggle:!1};a.commands.createLink={exec:function(c,d,e){var f=b(e);if(c.selection.isCollapsed()&&!this.state(c,d)){var g=c.doc.createTextNode(f.attribute.href);c.selection.insertNode(g),c.selection.selectNode(g)}a.commands.formatInline.exec(c,d,f)},state:function(b,d){return a.commands.formatInline.state(b,d,c)}}}(wysihtml5),function(a){var b={nodeName:"A"};a.commands.removeLink={exec:function(c,d){a.commands.formatInline.remove(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-font-size-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-font-size-"+d})}}}(wysihtml5),function(a){a.commands.fontSizeStyle={exec:function(b,c,d){d=d.size||d,/^\s*$/.test(d)||a.commands.formatInline.exec(b,c,{styleProperty:"fontSize",styleValue:d,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"fontSize"})},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-color-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-color-"+d})}}}(wysihtml5),function(a){a.commands.foreColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"color",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"color"})},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){a.commands.bgColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"backgroundColor",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"backgroundColor",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"backgroundColor"})},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.win);for(var o=0,p=m.length;p>o;o++)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.win),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.win),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var q=g.length;q--;)n=n.concat(i(g[q],e,j(g[q].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b);h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c=b.selection.getSelectedNode();return c&&c.nodeName&&"PRE"==c.nodeName&&c.firstChild&&c.firstChild.nodeName&&"CODE"==c.firstChild.nodeName?c:a.dom.getParentElement(c,{query:"pre code"})}}}(wysihtml5),function(a){function b(a){return/^\s*$/.test(a.className)}function c(a){return!a.getAttribute("style")||/^\s*$/.test(a.getAttribute("style"))}function d(b){var c=a.dom.getAttributes(b);return a.lang.object(c).isEmpty()}function e(b,c){var d,e,f,g;return 1!==b.nodeType||1!==c.nodeType?!1:b.nodeName!==c.nodeName?!1:(d=b.className.trim().replace(/\s+/g," ").split(" "),e=c.className.trim().replace(/\s+/g," ").split(" "),a.lang.array(d).without(e).length>0?!1:(f=a.dom.getAttributes(b),g=a.dom.getAttributes(c),f.length===g.length&&a.lang.object(a.lang.object(f).difference(g)).isEmpty()?!0:!1))}function f(b,c){var d=c&&c.nodeName||F,e=b.ownerDocument.createElement(d);if(c.classRegExp&&(e.className=e.className.replace(c.classRegExp,"")),c.className&&e.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(e.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),c.attribute)if("object"==typeof c.attribute)for(var f in c.attribute)c.attribute.hasOwnProperty(f)&&e.setAttribute(f,c.attribute[f]);else"undefined"!=typeof c.attributeValue&&e.setAttribute(c.attribute,c.attributeValue);return e}function g(a,b){for(var c in a)if(a.hasOwnProperty(c)&&(void 0===typeof b[c]||b[c]!==a[c]))return!1;return!0}function h(b,c,d){var e,f=a.dom.getAttributes(b),h=g(c,f);a.lang.object(f).difference(c);if(h&&d!==!1)for(e in c)c.hasOwnProperty(e)&&b.removeAttribute(e);else for(e in c)c.hasOwnProperty(e)&&b.setAttribute(e,c[e])}function i(e,f){var g,i,j,k,l;if(f.className&&(f.toggle!==!1&&e.classList.contains(f.className)?e.classList.remove(f.className):e.classList.add(f.className),b(e)&&e.removeAttribute("class")),f.styleProperty&&(f.toggle!==!1&&e.style[a.browser.fixStyleKey(f.styleProperty)].trim().replace(/, /g,",")===f.styleValue?e.style[a.browser.fixStyleKey(f.styleProperty)]="":e.style[a.browser.fixStyleKey(f.styleProperty)]=f.styleValue),c(e)&&e.removeAttribute("style"),f.attribute&&("object"==typeof f.attribute?k=f.attribute:(k={},k[f.attribute]=f.attributeValue||""),h(e,k,f.toggle)),l=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,f.nodeName&&a.dom.domNode(e).test({query:l})||!f.nodeName&&e.nodeName===F)if(b(e)&&c(e)&&d(e))a.dom.unwrap(e);else if(!f.nodeName){i=e.ownerDocument.createElement(F),g=a.dom.getAttributes(e);for(j in g)g.hasOwnProperty(j)&&i.setAttribute(j,g[j]);for(;e.firstChild;)i.appendChild(e.firstChild);e.parentNode.insertBefore(i,e),e.parentNode.removeChild(e)}}function j(b,c){var d=[];return b.isCollapsed()||(d=d.concat(b.getOwnNodes([3],function(b){return!a.dom.domNode(b).is.emptyTextNode()},c))),d}function k(a,b,c,d){var e=a,f=d?b:l(b);do{if(1===e.nodeType&&m(e,f))return e;e=e.parentNode}while(e&&e!==c);return null}function l(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function m(b,c){var d;if(c.nodeName){var e=H[c.nodeName.toLowerCase()]||c.nodeName.toLowerCase();return a.dom.domNode(b).test({query:e})}return d=a.lang.object(c).clone(),d.query=G,a.dom.domNode(b).test(d)}function n(b,c){var d=document.documentElement||document.body,e=d.scrollTop,f=d.scrollLeft;rangy.getSelection(b.win);rangy.getSelection(b.win).removeAllRanges();try{rangy.getSelection(b.win).addRange(c)}catch(g){}b.doc.activeElement&&a.dom.contains(b.element,b.doc.activeElement)||(b.element.focus(),d.scrollTop=e,d.scrollLeft=f,rangy.getSelection(b.win).addRange(c))}function o(a,b){var c=rangy.createRange(b.doc),d=a[a.length-1];a[0]&&d&&(c.setStart(a[0],0),c.setEnd(d,d.length),n(b,c))}function p(a,b,c,d){var e=rangy.createRange(a.doc);b&&(e.setStart(b,c),e.setEnd(b,"undefined"!=typeof d?d:c),n(a,e))}function q(a,b,c){var d,e,f,g=j(a.selection),h=[],i=!1;if(0===g.length&&a.selection.isCollapsed()){if(f=a.selection.getSelection().anchorNode,!f)return{nodes:[],partial:!1};3===f.nodeType&&(g=[f])}g.length||(e=a.selection.getOwnRanges()[0],e&&(g=[e.endContainer]));for(var l=0,m=g.length;m>l;l++)d=k(g[l],b,a.element,c),d?h.push(d):i=!0;return{nodes:h,partial:i}}function r(a){var b,c,d,e;return a&&(b=a.anchorNode,c=a.anchorOffset,b&&3===b.nodeType&&c>0&&c0&&/\w/.test(c.data[g-1]);)g--;for(;h0&&o(b,a),u(q(a,c).nodes),b.length>0&&o(b,a)}function w(a,b,c,d){p(a,b,c),u(q(a,d).nodes),p(a,b,c)}function x(a,b){var c=f(a,b);a.parentNode.insertBefore(c,a),c.appendChild(a)}function y(b,c,d){var e,f=c.element,g=k(b,d,f);g&&(e=g.cloneNode(!1),a.dom.domNode(b).escapeParent(g,e),i(e,d))}function z(b,c,d){var e=c.element,f=k(b,d,e);f&&a.dom.domNode(b).escapeParent(f)}function A(a,b,c){var d=f(a.endContainer,c);a.surroundContents(d),b.selection.selectNode(d)}function B(b,c,d,e){var f,g,h,j,l=q(b,e,!0),m=b.selection.getSelection();if(c.length){if(l.partial||e.toggle===!1)for(j=c.length;j--;)k(c[j],e,b.element)&&y(c[j],b,e),k(c[j],e,b.element)||x(c[j],e);else for(j=c.length;j--;)y(c[j],b,e);v(b,c,e)}else if(e.toggle!==!1)if(r(m))f=s(m),g=f.textNode,y(f.textNode,b,e),w(b,f.textNode,f.wordOffset,e);else{g=b.doc.createTextNode(a.INVISIBLE_SPACE),h=d.nodes[0].cloneNode(!1),h.appendChild(g),b.selection.splitElementAtCaret(d.nodes[0],h),i(h,e),v(b,[g],e);var n=b.selection.getSelection();if(n.anchorNode&&n.focusNode)try{n.collapseToEnd()}catch(o){}}else for(j=d.nodes.length;j--;)i(d.nodes[j],e)}function C(b,c,d,e){var f,g,h,i=b.selection.getSelection();if(c.length){for(h=c.length;h--;)z(c[h],b,e);v(b,c,e)}else{for(f=i.anchorNode,g=i.anchorOffset,h=d.nodes.length;h--;)a.dom.unwrap(d.nodes[h]);w(b,f,g,e)}}function D(a,b,c){var d,e,f=a.selection.getSelection();if(b.length){for(e=b.length;e--;)x(b[e],c);v(a,b,c)}else if(r(f))d=s(f),x(d.textNode,c),w(a,d.textNode,d.wordOffset,c);else{var g=a.selection.getOwnRanges()[0];g&&A(g,a,c)}}function E(a){return a="string"==typeof a?{nodeName:a}:a,a.nodeName&&(a.nodeName=a.nodeName.toUpperCase()),a}var F="SPAN",G="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select",H={b:"b, strong",strong:"b, strong",em:"em, i",i:"em, i"};a.commands.formatInline={exec:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0?B(a,d,e,c):D(a,d,c),a.element.normalize()},remove:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0&&C(a,d,e,c),a.element.normalize()},state:function(a,b,c){c=E(c);var d=q(a,c,!0).nodes;return 0===d.length?!1:d}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"},!1,e.element),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g,h="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){if(e=f(h,d),e.length)for(var i=e.length;i--;)a.dom.renameElement(e[i],c.toLowerCase());else{
-g=f(["OL","UL"],d);for(var j=g.length;j--;)a.dom.resolveList(g[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.classNames.uneditableContainer),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),function(a){var b={nodeName:"I",toggle:!0};a.commands.italic={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(a){return!1}}}(wysihtml5),function(a){var b={nodeName:"U",toggle:!0};a.commands.underline={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(a){return!1}}}(wysihtml5),function(a){a.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d
";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b,c){if(b.tableSelection){var d=b.tableSelection.start,e=b.tableSelection.end;if(d&&e&&d==e&&(a.dom.getAttribute(d,"colspan")&&parseInt(a.dom.getAttribute(d,"colspan"),10)>1||a.dom.getAttribute(d,"rowspan")&&parseInt(a.dom.getAttribute(d,"rowspan"),10)>1))return[d]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.indentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPushLiLevel(d,a.selection):!1},state:function(a,b){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPullLiLevel(d,a):!1},state:function(a,b){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){var b={nodeName:"SUB",toggle:!0};a.commands.subscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={nodeName:"SUP",toggle:!0};a.commands.superscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){var a,f=this;this.composer.sandbox.getDocument();i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.win)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getScrollPos:function(){if(this.doc&&this.win){var a={};return"undefined"!=typeof this.win.pageYOffset?a.y=this.win.pageYOffset:a.y=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,"undefined"!=typeof this.win.pageXOffset?a.x=this.win.pageXOffset:a.x=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>||<\/p>)*$/i.test(a)||""===a||"
"===a||"
"===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets,className:this.config.classNames.sandbox}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.win=this.sandbox.getWindow(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.classNames.uneditableContainer),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.classNames.composer),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f,this.config.classNames.placeholder),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.classNames.uneditableContainer),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.classNames.uneditableContainer])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.classNames.uneditableContainer])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(b,c){if(b.selection.caretIsLastInSelection()){var d=b.selection.getSelection(),e=d.anchorNode;if(e&&1===e.nodeType&&(a.dom.getParentElement(e,{query:"td, th"},!1,b.element)||c)){var f=e.childNodes[d.anchorOffset];if(f&&1===f.nodeType&"BR"===f.nodeName)return f.parentNode.removeChild(f),!0}}return!1},h=function(a){var b=a.selection.getBeforeSelection(!0);if(b&&("element"===b.type||"leafnode"===b.type)&&1===b.node.nodeType&&b.node.classList.contains(a.config.classNames.uneditableContainer)){if(g(a,!0))return!0;try{var c=new CustomEvent("wysihtml5:uneditable:delete");b.node.dispatchEvent(c)}catch(d){}return b.node.parentNode.removeChild(b.node),!0}return!1},i=function(b){var c=b.selection;if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=a.dom.getParentElement(c.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,b.element);if(d){if(f){for(;f.firstChild;)d.appendChild(f.firstChild);return c.setAfter(e),!0}if(3===c.getSelectedNode().nodeType)return d.appendChild(c.getSelectedNode()),c.setAfter(e),!0}}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else{if(i(b))return void a.preventDefault();if(g(b))return void a.preventDefault();if(h(b))return void a.preventDefault()}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},k=function(a,b){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},l=function(a){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},m=function(a){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},n=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},o=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},p=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},q=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},r=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},s=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.classNames.uneditableContainer+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},t=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},u=function(b){if(this.config.classNames.uneditableContainer){var c=a.dom.getParentElement(b.target,{query:"."+this.config.classNames.uneditableContainer},!1,this.element);c&&this.selection.setAfter(c)}},v=function(a){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(b){var c,e,f=b.keyCode,g=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&g&&(this.commands.exec(g),b.preventDefault()),f===a.BACKSPACE_KEY&&j(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),k(this,this.element))},x=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],l.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||l.call(this)},250)),this.config.handleTables&&x.call(this),e(d,["drop","paste","mouseup","focus","keyup"],m.bind(this)),d.addEventListener("focus",n.bind(this),!1),d.addEventListener("blur",o.bind(this),!1),e(this.element,["drop","paste","beforepaste"],p.bind(this),!1),this.element.addEventListener("copy",q.bind(this),!1),this.element.addEventListener("mousedown",s.bind(this),!1),this.element.addEventListener("mouseover",t.bind(this),!1),this.element.addEventListener("click",u.bind(this),!1),this.element.addEventListener("drop",v.bind(this),!1),this.element.addEventListener("keyup",r.bind(this),!1),this.element.addEventListener("keydown",w.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1)}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),function(a){a.views.SourceView=Base.extend({constructor:function(a,b){this.editor=a,this.composer=b,this._observe()},switchToTextarea:function(a){var b=this.composer.win.getComputedStyle(this.composer.element),c=parseFloat(b.width),d=Math.max(parseFloat(b.height),100);this.textarea||(this.textarea=this.composer.doc.createElement("textarea"),this.textarea.className="wysihtml5-source-view"),this.textarea.style.width=c+"px",this.textarea.style.height=d+"px",this.textarea.value=this.editor.getValue(a,!0),this.composer.element.parentNode.insertBefore(this.textarea,this.composer.element),this.editor.currentView="source",this.composer.element.style.display="none"},switchToComposer:function(a){var b=this.textarea.value;b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder")),this.textarea.parentNode.removeChild(this.textarea),this.editor.currentView=this.composer,this.composer.element.style.display="";
-},_observe:function(){this.editor.on("change_view",function(a){"composer"===a?this.switchToComposer(!0):"textarea"===a&&this.switchToTextarea(!0)}.bind(this))}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,classNames:{composer:"wysihtml5-editor",body:"wysihtml5-supported",sandbox:"wysihtml5-sandbox",placeholder:"wysihtml5-placeholder",uneditableContainer:"wysihtml5-uneditable-container"},copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),d&&d.classNames&&a.lang.object(this.config.classNames).merge(d.classNames),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.classNames.body),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea?this.sourceView=new a.views.SourceView(this,this.composer):this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.classNames.uneditableContainer,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b;a.browser.supportsModenPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.classNames.uneditableContainer});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5),function(a){var b=a.dom,c="wysihtml5-command-dialog-opened",d="input, select, textarea",e="[data-wysihtml5-dialog-field]",f="data-wysihtml5-dialog-field";a.toolbar.Dialog=a.lang.Dispatcher.extend({constructor:function(a,b){this.link=a,this.container=b},_observe:function(){if(!this._observed){var e=this,f=function(a){var b=e._serialize();e.fire("save",b),e.hide(),a.preventDefault(),a.stopPropagation()};b.observe(e.link,"click",function(){b.hasClass(e.link,c)&&setTimeout(function(){e.hide()},0)}),b.observe(this.container,"keydown",function(b){var c=b.keyCode;c===a.ENTER_KEY&&f(b),c===a.ESCAPE_KEY&&(e.fire("cancel"),e.hide())}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",f),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){e.fire("cancel"),e.hide(),a.preventDefault(),a.stopPropagation()});for(var g=this.container.querySelectorAll(d),h=0,i=g.length,j=function(){clearInterval(e.interval)};i>h;h++)b.observe(g[h],"change",j);this._observed=!0}},_serialize:function(){for(var a={},b=this.container.querySelectorAll(e),c=b.length,d=0;c>d;d++)a[b[d].getAttribute(f)]=b[d].value;return a},_interpolate:function(a){for(var b,c,d,g=document.querySelector(":focus"),h=this.container.querySelectorAll(e),i=h.length,j=0;i>j;j++)b=h[j],b!==g&&(a&&"hidden"===b.type||(c=b.getAttribute(f),d=this.elementToChange&&"boolean"!=typeof this.elementToChange?this.elementToChange.getAttribute(c)||"":b.defaultValue,b.value=d))},show:function(a){if(!b.hasClass(this.link,c)){var e=this,f=this.container.querySelector(d);if(this.elementToChange=a,this._observe(),this._interpolate(),a&&(this.interval=setInterval(function(){e._interpolate(!0)},500)),b.addClass(this.link,c),this.container.style.display="",this.fire("show"),f&&!a)try{f.focus()}catch(g){}}},hide:function(){clearInterval(this.interval),this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.fire("hide")}})}(wysihtml5),function(a){var b=a.dom,c={position:"relative"},d={left:0,margin:0,opacity:0,overflow:"hidden",padding:0,position:"absolute",top:0,zIndex:1},e={cursor:"inherit",fontSize:"50px",height:"50px",marginTop:"-25px",outline:0,padding:0,position:"absolute",right:"-4px",top:"50%"},f={"x-webkit-speech":"",speech:""};a.toolbar.Speech=function(g,h){var i=document.createElement("input");if(!a.browser.supportsSpeechApiOn(i))return void(h.style.display="none");var j=g.editor.textarea.element.getAttribute("lang");j&&(f.lang=j);var k=document.createElement("div");a.lang.object(d).merge({width:h.offsetWidth+"px",height:h.offsetHeight+"px"}),b.insert(i).into(k),b.insert(k).into(h),b.setStyles(e).on(i),b.setAttributes(f).on(i),b.setStyles(d).on(k),b.setStyles(c).on(h);var l="onwebkitspeechchange"in i?"webkitspeechchange":"speechchange";b.observe(i,l,function(){g.execCommand("insertText",i.value),i.value=""}),b.observe(i,"click",function(a){b.hasClass(h,"wysihtml5-command-disabled")&&a.preventDefault(),a.stopPropagation()})}}(wysihtml5),function(a){var b="wysihtml5-command-disabled",c="wysihtml5-commands-disabled",d="wysihtml5-command-active",e="wysihtml5-action-active",f=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(f,g,h){this.editor=f,this.container="string"==typeof g?document.getElementById(g):g,this.composer=f.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),h&&this.show(),null!=f.config.classNameCommandDisabled&&(b=f.config.classNameCommandDisabled),null!=f.config.classNameCommandsDisabled&&(c=f.config.classNameCommandsDisabled),null!=f.config.classNameCommandActive&&(d=f.config.classNameCommandActive),null!=f.config.classNameActionActive&&(e=f.config.classNameActionActive);for(var i=this.container.querySelectorAll("[data-wysihtml5-command=insertSpeech]"),j=i.length,k=0;j>k;k++)new a.toolbar.Speech(this,i[k])},_getLinks:function(b){for(var c,d,e,f,g,h,i=this[b+"Links"]=a.lang.array(this.container.querySelectorAll("[data-wysihtml5-"+b+"]")).get(),j=i.length,k=0,l=this[b+"Mapping"]={};j>k;k++)c=i[k],e=c.getAttribute("data-wysihtml5-"+b),f=c.getAttribute("data-wysihtml5-"+b+"-value"),h=c.getAttribute("data-wysihtml5-"+b+"-blank-value"),d=this.container.querySelector("[data-wysihtml5-"+b+"-group='"+e+"']"),g=this._getDialog(c,e),l[e+":"+f]={link:c,group:d,name:e,value:f,tracksBlankValue:h,dialog:g,state:!1}},_getDialog:function(b,c){var d,e,f=this,g=this.container.querySelector("[data-wysihtml5-dialog='"+c+"']");return g&&(d=a.toolbar["Dialog_"+c]?new a.toolbar["Dialog_"+c](b,g):new a.toolbar.Dialog(b,g),d.on("show",function(){e=f.composer.selection.getBookmark(),f.editor.fire("show:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("save",function(a){e&&f.composer.selection.setBookmark(e),f._execCommand(c,a),f.editor.fire("save:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("cancel",function(){f.editor.focus(!1),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b})})),d},execCommand:function(a,b){if(!this.commandsDisabled){var c=this.commandMapping[a+":"+b];c&&c.dialog&&!c.state?c.dialog.show():this._execCommand(a,b)}},_execCommand:function(a,b){this.editor.focus(!1),this.composer.commands.exec(a,b),this._updateLinkStates()},execAction:function(a){var b=this.editor;"change_view"===a&&(b.currentView===b.textarea||"source"===b.currentView?b.fire("change_view","composer"):b.fire("change_view","textarea")),"showSource"==a&&b.fire("showSource")},_observe:function(){for(var a=this,b=this.editor,d=this.container,e=this.commandLinks.concat(this.actionLinks),g=e.length,h=0;g>h;h++)"A"===e[h].nodeName?f.setAttributes({href:"javascript:;",unselectable:"on"}).on(e[h]):f.setAttributes({unselectable:"on"}).on(e[h]);f.delegate(d,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),f.delegate(d,"[data-wysihtml5-command]","click",function(b){var c=this,d=c.getAttribute("data-wysihtml5-command"),e=c.getAttribute("data-wysihtml5-command-value");a.execCommand(d,e),b.preventDefault()}),f.delegate(d,"[data-wysihtml5-action]","click",function(b){var c=this.getAttribute("data-wysihtml5-action");a.execAction(c),b.preventDefault()}),b.on("interaction:composer",function(){a._updateLinkStates()}),b.on("focus:composer",function(){a.bookmark=null}),this.editor.config.handleTables&&(b.on("tableselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),b.on("tableunselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),b.on("change_view",function(b){setTimeout(function(){a.commandsDisabled="composer"!==b,a._updateLinkStates(),a.commandsDisabled?f.addClass(d,c):f.removeClass(d,c)},0)})},_updateLinkStates:function(){var c,g,h,i,j=this.commandMapping,k=(this.commandblankMapping,this.actionMapping);for(c in j)i=j[c],this.commandsDisabled?(g=!1,f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()):(g=this.composer.commands.state(i.name,i.value),f.removeClass(i.link,b),i.group&&f.removeClass(i.group,b)),(i.state!==g||i.tracksBlankValue)&&(i.state=g,g?i.tracksBlankValue?f.removeClass(i.link,d):(f.addClass(i.link,d),i.group&&f.addClass(i.group,d),i.dialog&&("object"==typeof g||a.lang.object(g).isArray()?(!i.dialog.multiselect&&a.lang.object(g).isArray()&&(g=1===g.length?g[0]:!0,i.state=g),i.dialog.show(g)):i.dialog.hide())):i.tracksBlankValue?f.addClass(i.link,d):(f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()));for(c in k)h=k[c],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea||"source"===this.editor.currentView,h.state?f.addClass(h.link,e):f.removeClass(h.link,e))},show:function(){this.container.style.display=""},hide:function(){this.container.style.display="none"}})}(wysihtml5),function(a){a.toolbar.Dialog_createTable=a.toolbar.Dialog.extend({show:function(a){this.base(a)}})}(wysihtml5),function(a){var b=(a.dom,"[data-wysihtml5-dialog-field]"),c="data-wysihtml5-dialog-field";a.toolbar.Dialog_foreColorStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){for(var a={},d=this.container.querySelectorAll(b),e=d.length,f=0;e>f;f++)a[d[f].getAttribute(c)]=d[f].value;return a},_interpolate:function(d){for(var e,f=document.querySelector(":focus"),g=this.container.querySelectorAll(b),h=g.length,i=0,j=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,k=j?j.getAttribute("style"):null,l=k?a.quirks.styleParser.parseColor(k,"color"):null;h>i;i++)e=g[i],e!==f&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(l?l[3]&&1!=l[3]?e.value="rgba("+l[0]+","+l[1]+","+l[2]+","+l[3]+");":e.value="rgb("+l[0]+","+l[1]+","+l[2]+");":e.value="rgb(0,0,0);"))}})}(wysihtml5),function(a){a.dom;a.toolbar.Dialog_fontSizeStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){return{size:this.container.querySelector('[data-wysihtml5-dialog-field="size"]').value}},_interpolate:function(b){var c=document.querySelector(":focus"),d=this.container.querySelector("[data-wysihtml5-dialog-field='size']"),e=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,f=e?e.getAttribute("style"):null,g=f?a.quirks.styleParser.parseFontSize(f):null;d&&d!==c&&g&&!/^\s*$/.test(g)&&(d.value=g)}})}(wysihtml5);
+return this},difference:function(b){var c={};for(var d in a)a.hasOwnProperty(d)&&(b.hasOwnProperty(d)||(c[d]=a[d]));for(var e in b)b.hasOwnProperty(e)&&(a.hasOwnProperty(e)&&a[e]===b[e]||(c[0]=a[0]));return c},get:function(){return a},clone:function(b){var c,d={};if(null===a||!wysihtml5.lang.object(a).isPlainObject())return a;for(c in a)a.hasOwnProperty(c)&&(b?d[c]=wysihtml5.lang.object(a[c]).clone(b):d[c]=a[c]);return d},isArray:function(){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(){return"[object Function]"===Object.prototype.toString.call(a)},isPlainObject:function(){return a&&"[object Object]"===Object.prototype.toString.call(a)&&!("Node"in window?a instanceof Node:a instanceof Element||a instanceof Text)},isEmpty:function(){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}}},function(){var a=/^\s+/,b=/\s+$/,c=/[&<>\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":" "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi," ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b);for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){if(b.nodeType!==wysihtml5.ELEMENT_NODE){if(b.parentNode===a)return!0;b=b.parentNode}return a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(c){var d=c?/^\s*$/g:/^[\r\n]*$/g;return b.nodeType===a.TEXT_NODE&&d.test(b.data)},visible:function(){var c=!/^\s*$/g.test(a.dom.getTextContent(b));return c||1===b.nodeType&&b.querySelector("img, br, hr, object, embed, canvas, input, textarea")&&(c=!0),c}},prev:function(d){var e=b.previousSibling,f=d&&d.nodeTypes?d.nodeTypes:c;return e?!a.lang.array(f).contains(e.nodeType)||d&&d.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(d):e:null},next:function(d){var e=b.nextSibling,f=d&&d.nodeTypes?d.nodeTypes:c;return e?!a.lang.array(f).contains(e.nodeType)||d&&d.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(d):e:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},escapeParent:function(c,d){var e,f,g,h=b;if(!a.dom.contains(c,b))throw new Error("Child is not a descendant of node.");do{for(e=h.parentNode,f=e.cloneNode(!1);e.lastChild&&e.lastChild!==h;)f.insertBefore(e.lastChild,f.firstChild);if(e!==c&&(g=e.cloneNode(!1),g.appendChild(h),h=g),e.parentNode.insertBefore(h,e.nextSibling),""!==f.innerHTML)if(/^\s+$/.test(f.innerHTML))for(;f.lastChild;)e.parentNode.insertBefore(f.lastChild,h.nextSibling);else e.parentNode.insertBefore(f,h.nextSibling);if(""===e.innerHTML)e.parentNode.removeChild(e);else if(/^\s+$/.test(e.innerHTML)){for(;e.firstChild;)e.parentNode.insertBefore(e.firstChild,e);e.parentNode.removeChild(e)}}while(e&&e!==c);d&&h&&(h.parentNode.insertBefore(d,h),d.appendChild(h))},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(c.attribute){var j=a.dom.getAttributes(b),k=[],l=!1;Array.isArray(c.attribute)?k=c.attribute:k[c.attribute]=c.attributeValue;for(var m in k)if(k.hasOwnProperty(m))if("undefined"==typeof k[m]){if("undefined"!=typeof j[m]){l=!0;break}}else if(j[m]===k[m]){l=!0;break}if(!l)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(c){var e=b.ownerDocument,f=a.dom.domNode(b).next({ignoreBlankTexts:!0}),g=a.dom.domNode(b).prev({ignoreBlankTexts:!0});f&&!d(f)&&a.dom.insert(e.createElement("br")).after(b),g&&!d(g)&&a.dom.insert(e.createElement("br")).before(b)},remove:function(d){var e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&c(e)&&e.parentNode.removeChild(e),f&&c(f)&&f.parentNode.removeChild(f)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||""===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=wysihtml5.lang.object(c).isFunction()?c:v[c];return f&&(e=f(b,d),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b,c){return b?b.replace(a,""):"IMG"===c?"":null}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a?a:null}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode&&a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l,m=a.ownerDocument,n=m.createDocumentFragment(),o=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0}),p=wysihtml5.dom.domNode(a).next({ignoreBlankTexts:!0}),q=a.lastElementChild||a.lastChild;if(e)for(!o||b(o)||c(o)||d(n);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild,l=k===q;f=k.firstChild;)h=f===g,i=(!l||p&&!b(p))&&h&&!b(f)&&!c(f),n.appendChild(f),i&&d(n);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)n.appendChild(f);else{for(j=m.createElement("p");f=k.firstChild;)j.appendChild(f);n.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(n,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.config.className||(this.config.className="wysihtml5-sandbox"),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className=this.config.className,a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}a.polyfills&&a.polyfills(h,i),this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView||this.element.ownerDocument.parentWindow},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.config.className||(this.config.className="wysihtml5-sandbox"),d?this.element=this._bindElement(d):this.element=this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className=this.config.className,this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!==a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(a){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d,e){var f=e||"wysihtml5-placeholder",g=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,f)},h=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,f))};b.on("set_placeholder",h).on("unset_placeholder",g).on("focus:composer",g).on("paste:composer",g).on("blur:composer",h),h()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f;
+},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode("Â ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^
$/i.test(d.trim())&&(d=!1),b(d),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"},!1,a),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==d&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(c){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(c,d){l.start=c,l.end=d,l.table=k.getParentElement(l.start,{query:"table"},!1,a),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(b){var c=wysihtml5.dom.getParentElement(b.target,{query:"td, th"},!1,a);c&&d(c)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"},!1,a)!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(b){var d;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(d=c.lastChild,a.dom.unwrap(c),this.setAfter(d)):c.parentNode.removeChild(c))}.bind(this),f=function(a){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.className="_wysihtml5-temp-caret-fix",c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c,d){var e,f=this.win,g=rangy.createRange(this.doc),h=function(){var d=b.parentNode,g=d?d.childNodes[d.childNodes.length-1]:null;if(!e||g===b&&1===b.nodeType&&"block"===f.getComputedStyle(b).display)if(c){var h=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(h,b.nextSibling),this.selectNode(h),setTimeout(function(){h&&h.parentNode&&h.parentNode.removeChild(h)},0)}else this.createTemporaryCaretSpaceAfter(b)}.bind(this);if(g.setStartAfter(b),g.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(g),h(),d&&d(e);else{var i=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(i),setTimeout(function(){e=this.setSelection(g),h(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(a){for(var b=this.getOwnRanges(),c=[],d=0,e=b.length;e>d;d++)c.push(b[d].commonAncestorContainer||this.doc.body);return c},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(b){for(var c,d=this.getSelectedOwnNodes(),e=[],f=0,g=d.length;g>f;f++)c=d[f].nodeName&&"LI"===d[f].nodeName?d[f]:a.dom.getParentElement(d[f],{query:"li"},!1,this.contain),c&&e.push(c);return e.length?e:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode():null;if(j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},executeAndRestoreRangy:function(a,b){var c=rangy.saveSelection(this.win);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(b,c){var d,e,f,g,h,i=this.getSelection();if(i.rangeCount>0){d=i.getRangeAt(0).cloneRange(),d.setEndAfter(b),e=d.extractContents(),h=e.childNodes;for(var j=h.length;j--;)a.dom.domNode(h[j]).is.visible()||e.removeChild(h[j]);b.parentNode.insertBefore(e,b.nextSibling),c?(f=c.firstChild||c,g=c.lastChild||c,b.parentNode.insertBefore(c,b.nextSibling),f&&g&&(d.setStartBefore(f),d.setEndAfter(g),this.setSelection(d))):(d.setStartAfter(b),d.setEndAfter(b)),a.dom.domNode(b).is.visible()||(""===a.dom.getTextContent(b)?b.parentNode.removeChild(b):b.parentNode.replaceChild(this.doc.createTextNode(" "),b))}},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.win.getSelection();a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},getOwnNodes:function(a,b,c){for(var d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)d[f]&&(c&&d[f].splitBoundaries(),e=e.concat(d[f].getNodes(Array.isArray(a)?a:[a],b)));return e},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;
+c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},remove:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.remove;return e?(d.unshift(this.composer),e.apply(c,d)):void 0},state:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.state;if(e)return d.unshift(this.composer),e.apply(c,d);try{return this.doc.queryCommandState(a)}catch(f){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),function(a){var b={nodeName:"B",toggle:!0};a.commands.bold={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){function b(b){return a.lang.object({}).merge(c).merge({attribute:b}).get()}var c={nodeName:"A",toggle:!1};a.commands.createLink={exec:function(c,d,e){var f=b(e);if(c.selection.isCollapsed()&&!this.state(c,d)){var g=c.doc.createTextNode(f.attribute.href);c.selection.insertNode(g),c.selection.selectNode(g)}a.commands.formatInline.exec(c,d,f)},state:function(b,d){return a.commands.formatInline.state(b,d,c)}}}(wysihtml5),function(a){var b={nodeName:"A"};a.commands.removeLink={exec:function(c,d){a.commands.formatInline.remove(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-font-size-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-font-size-"+d})}}}(wysihtml5),function(a){a.commands.fontSizeStyle={exec:function(b,c,d){d=d.size||d,/^\s*$/.test(d)||a.commands.formatInline.exec(b,c,{styleProperty:"fontSize",styleValue:d,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"fontSize"})},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-color-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-color-"+d})}}}(wysihtml5),function(a){a.commands.foreColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"color",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"color"})},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){a.commands.bgColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"backgroundColor",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"backgroundColor",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"backgroundColor"})},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(n),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?n:m)&&(e=d),d=d.parentNode;return e}function e(a,b){for(var c,d,e,f=a,g=null;f&&b&&f!==b;)1===f.nodeType&&f.matches(o)&&(d=f,null===g?(g=f.cloneNode(!1),c=g):(e=f.cloneNode(!1),e.appendChild(g),g=e)),f=f.parentNode;return{parent:d,outerNode:g,innerNode:c}}function f(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=l.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function g(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=l.renameElement(b,c(e)):l.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function h(b){for(var c=b.querySelectorAll(n)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function i(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function j(b,g,j,k){var l=g?a.lang.object(g).clone(!0):null;l&&(l.nodeName=l.nodeName||j||c(k)),i(b,k);var o,p,q,r=b.cloneRange(),s=r.startContainer,t=r.extractContents(),u=k.doc.createDocumentFragment(),v=!l||"BLOCKQUOTE"===j&&l.nodeName&&"BLOCKQUOTE"===l.nodeName,w=d(s,k.element,v);if(g&&g.nodeName&&"BLOCKQUOTE"===g.nodeName){var x=f(null,g,k);x.appendChild(t),u.appendChild(x),p=[x]}else{if(t.firstChild)for(;t.firstChild;)if(1==t.firstChild.nodeType&&t.firstChild.matches(n))if(g)f(t.firstChild,g,k),t.firstChild.matches(m)&&h(t.firstChild),u.appendChild(t.firstChild);else{h(t.firstChild),q=a.dom.unwrap(t.firstChild);for(var y=0,z=q.length;z>y;y++)u.appendChild(q[y]);u.childNodes.length>0&&u.appendChild(k.doc.createElement("BR"))}else if(g){for(o=f(null,l,k);t.firstChild&&(1!==t.firstChild.nodeType||!t.firstChild.matches(n));)1==t.firstChild.nodeType&&o.matches(m)&&h(t.firstChild),o.appendChild(t.firstChild);u.appendChild(o)}else 1==t.firstChild.nodeType&&h(t.firstChild),u.appendChild(t.firstChild);else u.appendChild(f(null,g,k));p=a.lang.array(u.childNodes).get()}if(w)k.selection.splitElementAtCaret(w,u);else{var A=e(s,k.element);if(A.outerNode&&A.innerNode&&A.parent){if(1===u.childNodes.length){for(;u.firstChild.firstChild;)A.innerNode.appendChild(u.firstChild.firstChild);u.firstChild.appendChild(A.outerNode)}k.selection.splitElementAtCaret(A.parent,u)}else r.insertNode(u)}return p}function k(b,c){var d=a.dom.getParentElement(b,{query:n},null,c.element);return d?d.nodeName:null}var l=a.dom,m="h1, h2, h3, h4, h5, h6, p, pre",n="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",o="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u";a.commands.formatBlock={exec:function(c,d,e){var f,h,i,l,m,o=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.win);for(var p=0,q=m.length;q>p;p++)g(m[p],e,c)}if(!m){c.selection.isCollapsed()&&(i=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:n},null,c.element),i?(l=rangy.saveSelection(c.win),h=c.selection.createRange(),h.selectNode(i),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.win),c.selection.selectLine())),f=c.selection.getOwnRanges();for(var r=f.length;r--;)o=o.concat(j(f[r],e,k(f[r].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(o[0]),h.setEndAfter(o[o.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:n})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=l.getParentElement(g[h],d||{query:n},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b);h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c=b.selection.getSelectedNode();return c&&c.nodeName&&"PRE"==c.nodeName&&c.firstChild&&c.firstChild.nodeName&&"CODE"==c.firstChild.nodeName?c:a.dom.getParentElement(c,{query:"pre code"})}}}(wysihtml5),function(a){function b(a){return/^\s*$/.test(a.className)}function c(a){return!a.getAttribute("style")||/^\s*$/.test(a.getAttribute("style"))}function d(b){var c=a.dom.getAttributes(b);return a.lang.object(c).isEmpty()}function e(b,c){var d,e,f,g;return 1!==b.nodeType||1!==c.nodeType?!1:b.nodeName!==c.nodeName?!1:(d=b.className.trim().replace(/\s+/g," ").split(" "),e=c.className.trim().replace(/\s+/g," ").split(" "),a.lang.array(d).without(e).length>0?!1:(f=a.dom.getAttributes(b),g=a.dom.getAttributes(c),f.length===g.length&&a.lang.object(a.lang.object(f).difference(g)).isEmpty()?!0:!1))}function f(b,c){var d=c&&c.nodeName||F,e=b.ownerDocument.createElement(d);if(c.classRegExp&&(e.className=e.className.replace(c.classRegExp,"")),c.className&&e.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(e.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),c.attribute)if("object"==typeof c.attribute)for(var f in c.attribute)c.attribute.hasOwnProperty(f)&&e.setAttribute(f,c.attribute[f]);else"undefined"!=typeof c.attributeValue&&e.setAttribute(c.attribute,c.attributeValue);return e}function g(a,b){for(var c in a)if(a.hasOwnProperty(c)&&(void 0===typeof b[c]||b[c]!==a[c]))return!1;return!0}function h(b,c,d){var e,f=a.dom.getAttributes(b),h=g(c,f);a.lang.object(f).difference(c);if(h&&d!==!1)for(e in c)c.hasOwnProperty(e)&&b.removeAttribute(e);else for(e in c)c.hasOwnProperty(e)&&b.setAttribute(e,c[e])}function i(e,f){var g,i,j,k,l;if(f.className&&(f.toggle!==!1&&e.classList.contains(f.className)?e.classList.remove(f.className):e.classList.add(f.className),b(e)&&e.removeAttribute("class")),f.styleProperty&&(f.toggle!==!1&&e.style[a.browser.fixStyleKey(f.styleProperty)].trim().replace(/, /g,",")===f.styleValue?e.style[a.browser.fixStyleKey(f.styleProperty)]="":e.style[a.browser.fixStyleKey(f.styleProperty)]=f.styleValue),c(e)&&e.removeAttribute("style"),f.attribute&&("object"==typeof f.attribute?k=f.attribute:(k={},k[f.attribute]=f.attributeValue||""),h(e,k,f.toggle)),l=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,f.nodeName&&a.dom.domNode(e).test({query:l})||!f.nodeName&&e.nodeName===F)if(b(e)&&c(e)&&d(e))a.dom.unwrap(e);else if(!f.nodeName){i=e.ownerDocument.createElement(F),g=a.dom.getAttributes(e);for(j in g)g.hasOwnProperty(j)&&i.setAttribute(j,g[j]);for(;e.firstChild;)i.appendChild(e.firstChild);e.parentNode.insertBefore(i,e),e.parentNode.removeChild(e)}}function j(b,c){var d=[];return b.isCollapsed()||(d=d.concat(b.getOwnNodes([3],function(b){return!a.dom.domNode(b).is.emptyTextNode()},c))),d}function k(a,b,c,d){var e=a,f=d?b:l(b);do{if(1===e.nodeType&&m(e,f))return e;e=e.parentNode}while(e&&e!==c);return null}function l(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function m(b,c){var d;if(c.nodeName){var e=H[c.nodeName.toLowerCase()]||c.nodeName.toLowerCase();return a.dom.domNode(b).test({query:e})}return d=a.lang.object(c).clone(),d.query=G,a.dom.domNode(b).test(d)}function n(b,c){var d=document.documentElement||document.body,e=d.scrollTop,f=d.scrollLeft;rangy.getSelection(b.win);rangy.getSelection(b.win).removeAllRanges();try{rangy.getSelection(b.win).addRange(c)}catch(g){}b.doc.activeElement&&a.dom.contains(b.element,b.doc.activeElement)||(b.element.focus(),d.scrollTop=e,d.scrollLeft=f,rangy.getSelection(b.win).addRange(c))}function o(a,b){var c=rangy.createRange(b.doc),d=a[a.length-1];a[0]&&d&&(c.setStart(a[0],0),c.setEnd(d,d.length),n(b,c))}function p(a,b,c,d){var e=rangy.createRange(a.doc);b&&(e.setStart(b,c),e.setEnd(b,"undefined"!=typeof d?d:c),n(a,e))}function q(a,b,c){var d,e,f,g=j(a.selection),h=[],i=!1;if(0===g.length&&a.selection.isCollapsed()){if(f=a.selection.getSelection().anchorNode,!f)return{nodes:[],partial:!1};3===f.nodeType&&(g=[f])}g.length||(e=a.selection.getOwnRanges()[0],e&&(g=[e.endContainer]));for(var l=0,m=g.length;m>l;l++)d=k(g[l],b,a.element,c),d?h.push(d):i=!0;return{nodes:h,partial:i}}function r(a){var b,c,d,e;return a&&(b=a.anchorNode,c=a.anchorOffset,b&&3===b.nodeType&&c>0&&c0&&/\w/.test(c.data[g-1]);)g--;for(;h0&&o(b,a),u(q(a,c).nodes),b.length>0&&o(b,a)}function w(a,b,c,d){p(a,b,c),u(q(a,d).nodes),p(a,b,c)}function x(a,b){var c=f(a,b);a.parentNode.insertBefore(c,a),c.appendChild(a)}function y(b,c,d){var e,f=c.element,g=k(b,d,f);g&&(e=g.cloneNode(!1),a.dom.domNode(b).escapeParent(g,e),i(e,d))}function z(b,c,d){var e=c.element,f=k(b,d,e);f&&a.dom.domNode(b).escapeParent(f)}function A(a,b,c){var d=f(a.endContainer,c);a.surroundContents(d),b.selection.selectNode(d)}function B(b,c,d,e){var f,g,h,j,l=q(b,e,!0),m=b.selection.getSelection();if(c.length){if(l.partial||e.toggle===!1)for(j=c.length;j--;)k(c[j],e,b.element)&&y(c[j],b,e),k(c[j],e,b.element)||x(c[j],e);else for(j=c.length;j--;)y(c[j],b,e);v(b,c,e)}else if(e.toggle!==!1)if(r(m))f=s(m),g=f.textNode,y(f.textNode,b,e),w(b,f.textNode,f.wordOffset,e);else{g=b.doc.createTextNode(a.INVISIBLE_SPACE),h=d.nodes[0].cloneNode(!1),h.appendChild(g),b.selection.splitElementAtCaret(d.nodes[0],h),i(h,e),v(b,[g],e);var n=b.selection.getSelection();if(n.anchorNode&&n.focusNode)try{n.collapseToEnd()}catch(o){}}else for(j=d.nodes.length;j--;)i(d.nodes[j],e)}function C(b,c,d,e){var f,g,h,i=b.selection.getSelection();if(c.length){for(h=c.length;h--;)z(c[h],b,e);v(b,c,e)}else{for(f=i.anchorNode,g=i.anchorOffset,h=d.nodes.length;h--;)a.dom.unwrap(d.nodes[h]);w(b,f,g,e)}}function D(a,b,c){var d,e,f=a.selection.getSelection();if(b.length){for(e=b.length;e--;)x(b[e],c);v(a,b,c)}else if(r(f))d=s(f),x(d.textNode,c),w(a,d.textNode,d.wordOffset,c);else{var g=a.selection.getOwnRanges()[0];g&&A(g,a,c)}}function E(a){return a="string"==typeof a?{nodeName:a}:a,a.nodeName&&(a.nodeName=a.nodeName.toUpperCase()),a}var F="SPAN",G="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u",H={b:"b, strong",strong:"b, strong",em:"em, i",i:"em, i"};a.commands.formatInline={exec:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0?B(a,d,e,c):D(a,d,c),a.element.normalize()},remove:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0&&C(a,d,e,c),a.element.normalize()},state:function(a,b,c){c=E(c);var d=q(a,c,!0).nodes;return 0===d.length?!1:d}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){
+a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"},!1,e.element),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g,h="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){if(e=f(h,d),e.length)for(var i=e.length;i--;)a.dom.renameElement(e[i],c.toLowerCase());else{g=f(["OL","UL"],d);for(var j=g.length;j--;)a.dom.resolveList(g[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.classNames.uneditableContainer),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),function(a){var b={nodeName:"I",toggle:!0};a.commands.italic={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(a){return!1}}}(wysihtml5),function(a){var b={nodeName:"U",toggle:!0};a.commands.underline={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(a){return!1}}}(wysihtml5),function(a){a.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d
";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b,c){if(b.tableSelection){var d=b.tableSelection.start,e=b.tableSelection.end;if(d&&e&&d==e&&(a.dom.getAttribute(d,"colspan")&&parseInt(a.dom.getAttribute(d,"colspan"),10)>1||a.dom.getAttribute(d,"rowspan")&&parseInt(a.dom.getAttribute(d,"rowspan"),10)>1))return[d]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.indentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPushLiLevel(d,a.selection):!1},state:function(a,b){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPullLiLevel(d,a):!1},state:function(a,b){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){var b={nodeName:"SUB",toggle:!0};a.commands.subscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={nodeName:"SUP",toggle:!0};a.commands.superscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){var a,f=this;this.composer.sandbox.getDocument();i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.win)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getScrollPos:function(){if(this.doc&&this.win){var a={};return"undefined"!=typeof this.win.pageYOffset?a.y=this.win.pageYOffset:a.y=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,"undefined"!=typeof this.win.pageXOffset?a.x=this.win.pageXOffset:a.x=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>||<\/p>)*$/i.test(a)||""===a||"
"===a||"
"===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets,className:this.config.classNames.sandbox}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.win=this.sandbox.getWindow(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.classNames.uneditableContainer),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.classNames.composer),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f,this.config.classNames.placeholder),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.classNames.uneditableContainer),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.classNames.uneditableContainer])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.classNames.uneditableContainer])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(b,c){if(b.selection.caretIsLastInSelection()){var d=b.selection.getSelection(),e=d.anchorNode;if(e&&1===e.nodeType&&(a.dom.getParentElement(e,{query:"td, th"},!1,b.element)||c)){var f=e.childNodes[d.anchorOffset];if(f&&1===f.nodeType&"BR"===f.nodeName)return f.parentNode.removeChild(f),!0}}return!1},h=function(a){var b=a.selection.getBeforeSelection(!0);if(b&&("element"===b.type||"leafnode"===b.type)&&1===b.node.nodeType&&b.node.classList.contains(a.config.classNames.uneditableContainer)){if(g(a,!0))return!0;try{var c=new CustomEvent("wysihtml5:uneditable:delete");b.node.dispatchEvent(c)}catch(d){}return b.node.parentNode.removeChild(b.node),!0}return!1},i=function(b){var c=b.selection;if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=a.dom.getParentElement(c.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,b.element);if(d){if(f){for(;f.firstChild;)d.appendChild(f.firstChild);return c.setAfter(e),!0}if(3===c.getSelectedNode().nodeType)return d.appendChild(c.getSelectedNode()),c.setAfter(e),!0}}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else{if(i(b))return void a.preventDefault();if(g(b))return void a.preventDefault();if(h(b))return void a.preventDefault()}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},k=function(a,b){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},l=function(a){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},m=function(a){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},n=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},o=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},p=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},q=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},r=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},s=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.classNames.uneditableContainer+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},t=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},u=function(b){if(this.config.classNames.uneditableContainer){var c=a.dom.getParentElement(b.target,{query:"."+this.config.classNames.uneditableContainer},!1,this.element);c&&this.selection.setAfter(c)}},v=function(a){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(b){var c,e,f=b.keyCode,g=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&g&&(this.commands.exec(g),b.preventDefault()),f===a.BACKSPACE_KEY&&j(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),k(this,this.element))},x=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],l.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||l.call(this)},250)),this.config.handleTables&&x.call(this),e(d,["drop","paste","mouseup","focus","keyup"],m.bind(this)),d.addEventListener("focus",n.bind(this),!1),d.addEventListener("blur",o.bind(this),!1),e(this.element,["drop","paste","beforepaste"],p.bind(this),!1),this.element.addEventListener("copy",q.bind(this),!1),this.element.addEventListener("mousedown",s.bind(this),!1),this.element.addEventListener("mouseover",t.bind(this),!1),this.element.addEventListener("click",u.bind(this),!1),this.element.addEventListener("drop",v.bind(this),!1),this.element.addEventListener("keyup",r.bind(this),!1),this.element.addEventListener("keydown",w.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1)}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),function(a){a.views.SourceView=Base.extend({constructor:function(a,b){this.editor=a,this.composer=b,this._observe()},switchToTextarea:function(a){var b=this.composer.win.getComputedStyle(this.composer.element),c=parseFloat(b.width),d=Math.max(parseFloat(b.height),100);
+this.textarea||(this.textarea=this.composer.doc.createElement("textarea"),this.textarea.className="wysihtml5-source-view"),this.textarea.style.width=c+"px",this.textarea.style.height=d+"px",this.textarea.value=this.editor.getValue(a,!0),this.composer.element.parentNode.insertBefore(this.textarea,this.composer.element),this.editor.currentView="source",this.composer.element.style.display="none"},switchToComposer:function(a){var b=this.textarea.value;b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder")),this.textarea.parentNode.removeChild(this.textarea),this.editor.currentView=this.composer,this.composer.element.style.display=""},_observe:function(){this.editor.on("change_view",function(a){"composer"===a?this.switchToComposer(!0):"textarea"===a&&this.switchToTextarea(!0)}.bind(this))}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,classNames:{composer:"wysihtml5-editor",body:"wysihtml5-supported",sandbox:"wysihtml5-sandbox",placeholder:"wysihtml5-placeholder",uneditableContainer:"wysihtml5-uneditable-container"},copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),d&&d.classNames&&a.lang.object(this.config.classNames).merge(d.classNames),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.classNames.body),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea?this.sourceView=new a.views.SourceView(this,this.composer):this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.classNames.uneditableContainer,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b;a.browser.supportsModenPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.classNames.uneditableContainer});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5),function(a){var b=a.dom,c="wysihtml5-command-dialog-opened",d="input, select, textarea",e="[data-wysihtml5-dialog-field]",f="data-wysihtml5-dialog-field";a.toolbar.Dialog=a.lang.Dispatcher.extend({constructor:function(a,b){this.link=a,this.container=b},_observe:function(){if(!this._observed){var e=this,f=function(a){var b=e._serialize();e.fire("save",b),e.hide(),a.preventDefault(),a.stopPropagation()};b.observe(e.link,"click",function(){b.hasClass(e.link,c)&&setTimeout(function(){e.hide()},0)}),b.observe(this.container,"keydown",function(b){var c=b.keyCode;c===a.ENTER_KEY&&f(b),c===a.ESCAPE_KEY&&(e.fire("cancel"),e.hide())}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",f),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){e.fire("cancel"),e.hide(),a.preventDefault(),a.stopPropagation()});for(var g=this.container.querySelectorAll(d),h=0,i=g.length,j=function(){clearInterval(e.interval)};i>h;h++)b.observe(g[h],"change",j);this._observed=!0}},_serialize:function(){for(var a={},b=this.container.querySelectorAll(e),c=b.length,d=0;c>d;d++)a[b[d].getAttribute(f)]=b[d].value;return a},_interpolate:function(a){for(var b,c,d,g=document.querySelector(":focus"),h=this.container.querySelectorAll(e),i=h.length,j=0;i>j;j++)b=h[j],b!==g&&(a&&"hidden"===b.type||(c=b.getAttribute(f),d=this.elementToChange&&"boolean"!=typeof this.elementToChange?this.elementToChange.getAttribute(c)||"":b.defaultValue,b.value=d))},show:function(a){if(!b.hasClass(this.link,c)){var e=this,f=this.container.querySelector(d);if(this.elementToChange=a,this._observe(),this._interpolate(),a&&(this.interval=setInterval(function(){e._interpolate(!0)},500)),b.addClass(this.link,c),this.container.style.display="",this.fire("show"),f&&!a)try{f.focus()}catch(g){}}},hide:function(){clearInterval(this.interval),this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.fire("cancel")}})}(wysihtml5),function(a){var b=a.dom,c={position:"relative"},d={left:0,margin:0,opacity:0,overflow:"hidden",padding:0,position:"absolute",top:0,zIndex:1},e={cursor:"inherit",fontSize:"50px",height:"50px",marginTop:"-25px",outline:0,padding:0,position:"absolute",right:"-4px",top:"50%"},f={"x-webkit-speech":"",speech:""};a.toolbar.Speech=function(g,h){var i=document.createElement("input");if(!a.browser.supportsSpeechApiOn(i))return void(h.style.display="none");var j=g.editor.textarea.element.getAttribute("lang");j&&(f.lang=j);var k=document.createElement("div");a.lang.object(d).merge({width:h.offsetWidth+"px",height:h.offsetHeight+"px"}),b.insert(i).into(k),b.insert(k).into(h),b.setStyles(e).on(i),b.setAttributes(f).on(i),b.setStyles(d).on(k),b.setStyles(c).on(h);var l="onwebkitspeechchange"in i?"webkitspeechchange":"speechchange";b.observe(i,l,function(){g.execCommand("insertText",i.value),i.value=""}),b.observe(i,"click",function(a){b.hasClass(h,"wysihtml5-command-disabled")&&a.preventDefault(),a.stopPropagation()})}}(wysihtml5),function(a){var b="wysihtml5-command-disabled",c="wysihtml5-commands-disabled",d="wysihtml5-command-active",e="wysihtml5-action-active",f=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(f,g,h){this.editor=f,this.container="string"==typeof g?document.getElementById(g):g,this.composer=f.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),h&&this.show(),null!=f.config.classNameCommandDisabled&&(b=f.config.classNameCommandDisabled),null!=f.config.classNameCommandsDisabled&&(c=f.config.classNameCommandsDisabled),null!=f.config.classNameCommandActive&&(d=f.config.classNameCommandActive),null!=f.config.classNameActionActive&&(e=f.config.classNameActionActive);for(var i=this.container.querySelectorAll("[data-wysihtml5-command=insertSpeech]"),j=i.length,k=0;j>k;k++)new a.toolbar.Speech(this,i[k])},_getLinks:function(b){for(var c,d,e,f,g,h,i=this[b+"Links"]=a.lang.array(this.container.querySelectorAll("[data-wysihtml5-"+b+"]")).get(),j=i.length,k=0,l=this[b+"Mapping"]={};j>k;k++)c=i[k],e=c.getAttribute("data-wysihtml5-"+b),f=c.getAttribute("data-wysihtml5-"+b+"-value"),h=c.getAttribute("data-wysihtml5-"+b+"-blank-value"),d=this.container.querySelector("[data-wysihtml5-"+b+"-group='"+e+"']"),g=this._getDialog(c,e),l[e+":"+f]={link:c,group:d,name:e,value:f,tracksBlankValue:h,dialog:g,state:!1}},_getDialog:function(b,c){var d,e,f=this,g=this.container.querySelector("[data-wysihtml5-dialog='"+c+"']");return g&&(d=a.toolbar["Dialog_"+c]?new a.toolbar["Dialog_"+c](b,g):new a.toolbar.Dialog(b,g),d.on("show",function(){e=f.composer.selection.getBookmark(),f.editor.fire("show:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("save",function(a){e&&f.composer.selection.setBookmark(e),f._execCommand(c,a),f.editor.fire("save:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("cancel",function(){f.editor.focus(!1),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b})})),d},execCommand:function(a,b){if(!this.commandsDisabled){var c=this.commandMapping[a+":"+b];c&&c.dialog&&!c.state?c.dialog.show():this._execCommand(a,b)}},_execCommand:function(a,b){this.editor.focus(!1),this.composer.commands.exec(a,b),this._updateLinkStates()},execAction:function(a){var b=this.editor;"change_view"===a&&(b.currentView===b.textarea||"source"===b.currentView?b.fire("change_view","composer"):b.fire("change_view","textarea")),"showSource"==a&&b.fire("showSource")},_observe:function(){for(var a=this,b=this.editor,d=this.container,e=this.commandLinks.concat(this.actionLinks),g=e.length,h=0;g>h;h++)"A"===e[h].nodeName?f.setAttributes({href:"javascript:;",unselectable:"on"}).on(e[h]):f.setAttributes({unselectable:"on"}).on(e[h]);f.delegate(d,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),f.delegate(d,"[data-wysihtml5-command]","click",function(b){var c=this,d=c.getAttribute("data-wysihtml5-command"),e=c.getAttribute("data-wysihtml5-command-value");a.execCommand(d,e),b.preventDefault()}),f.delegate(d,"[data-wysihtml5-action]","click",function(b){var c=this.getAttribute("data-wysihtml5-action");a.execAction(c),b.preventDefault()}),b.on("interaction:composer",function(){a._updateLinkStates()}),b.on("focus:composer",function(){a.bookmark=null}),this.editor.config.handleTables&&(b.on("tableselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),b.on("tableunselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),b.on("change_view",function(b){setTimeout(function(){a.commandsDisabled="composer"!==b,a._updateLinkStates(),a.commandsDisabled?f.addClass(d,c):f.removeClass(d,c)},0)})},_updateLinkStates:function(){var c,g,h,i,j=this.commandMapping,k=(this.commandblankMapping,this.actionMapping);for(c in j)i=j[c],this.commandsDisabled?(g=!1,f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()):(g=this.composer.commands.state(i.name,i.value),f.removeClass(i.link,b),i.group&&f.removeClass(i.group,b)),(i.state!==g||i.tracksBlankValue)&&(i.state=g,g?i.tracksBlankValue?f.removeClass(i.link,d):(f.addClass(i.link,d),i.group&&f.addClass(i.group,d),i.dialog&&("object"==typeof g||a.lang.object(g).isArray()?(!i.dialog.multiselect&&a.lang.object(g).isArray()&&(g=1===g.length?g[0]:!0,i.state=g),i.dialog.show(g)):i.dialog.hide())):i.tracksBlankValue?f.addClass(i.link,d):(f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()));for(c in k)h=k[c],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea||"source"===this.editor.currentView,h.state?f.addClass(h.link,e):f.removeClass(h.link,e))},show:function(){this.container.style.display=""},hide:function(){this.container.style.display="none"}})}(wysihtml5),function(a){a.toolbar.Dialog_createTable=a.toolbar.Dialog.extend({show:function(a){this.base(a)}})}(wysihtml5),function(a){var b=(a.dom,"[data-wysihtml5-dialog-field]"),c="data-wysihtml5-dialog-field";a.toolbar.Dialog_foreColorStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){for(var a={},d=this.container.querySelectorAll(b),e=d.length,f=0;e>f;f++)a[d[f].getAttribute(c)]=d[f].value;return a},_interpolate:function(d){for(var e,f=document.querySelector(":focus"),g=this.container.querySelectorAll(b),h=g.length,i=0,j=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,k=j?j.getAttribute("style"):null,l=k?a.quirks.styleParser.parseColor(k,"color"):null;h>i;i++)e=g[i],e!==f&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(l?l[3]&&1!=l[3]?e.value="rgba("+l[0]+","+l[1]+","+l[2]+","+l[3]+");":e.value="rgb("+l[0]+","+l[1]+","+l[2]+");":e.value="rgb(0,0,0);"))}})}(wysihtml5),function(a){a.dom;a.toolbar.Dialog_fontSizeStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){return{size:this.container.querySelector('[data-wysihtml5-dialog-field="size"]').value}},_interpolate:function(b){var c=document.querySelector(":focus"),d=this.container.querySelector("[data-wysihtml5-dialog-field='size']"),e=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,f=e?e.getAttribute("style"):null,g=f?a.quirks.styleParser.parseFontSize(f):null;d&&d!==c&&g&&!/^\s*$/.test(g)&&(d.value=g)}})}(wysihtml5);
//# sourceMappingURL=wysihtml-toolbar.min.map
\ No newline at end of file
diff --git a/dist/wysihtml-toolbar.min.map b/dist/wysihtml-toolbar.min.map
index 8e3eb74..b2d33f6 100644
--- a/dist/wysihtml-toolbar.min.map
+++ b/dist/wysihtml-toolbar.min.map
@@ -1 +1 @@
-{"version":3,"file":"wysihtml-toolbar.min.js","sources":["wysihtml-toolbar.js"],"names":["wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","document","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","normalizeHasCaretError","window","ret","t1","createTextNode","t2","t3","createRange","appendChild","body","setStart","setEnd","getSelection","removeAllRanges","addRange","normalize","childNodes","anchorNode","firstChild","anchorOffset","removeChild","getTextNodes","all","nextSibling","nodeType","normalizeFix","nf","Node","texts","ownerDocument","defaultView","anode","aoffset","fnode","focusNode","foffset","focusOffset","prevTxt","shift","curText","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","previousSibling","nodeValue","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","deprecationNotice","deprecated","replacement","createAliasForDeprecatedMethod","owner","util","toArray","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","forEach","arr","func","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","el","arrayLike","addListener","eventType","listener","addEventListener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","getWindow","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","createTestElement","html","contentEditable","bodyFirstChild","removeNode","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getRangeRoot","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","rootContainerNodeTypes","setRangeStart","setRangeEnd","F","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","sibling","mergeForward","appendData","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getDocSelection","winSelectionIsBackward","sel","backward","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","saveRanges","restoreRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","readyState","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","rangeInfos","sort","saveSelection","restored","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","implement","valueOf","source","value","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","isPlainObject","difference","diffObj","newObj","isFunction","Text","isEmpty","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","removeEventListener","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","escapeParent","newWrapper","split2","nodeWrap","curNode","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","attr","getAttributes","attrList","hasOneAttribute","attributeValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","ingoreEmpty","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","isLastItem","lastListItem","lastElementChild","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","innerHtml","simulatePlaceholder","editor","placeholderText","placeholderClassName","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","unparseColor","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","ctrlKey","metaKey","minWidth","zIndex","notVisual","fixWebkitSelection","lastSibling","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","prevLeaf","executeAndRestoreRangy","restoreScrollPosition","executeAndRestore","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","getOwnNodes","splitBounds","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","commandValue","state","stateValue","bold","formatInline","getOptions","createLink","opts","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","classNames","uneditableContainer","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","wrapper","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","hasNoClass","hasNoStyle","hasNoAttributes","isSameNode","element1","element2","classes1","classes2","createWrapNode","defaultTag","containsSameAttributes","updateElementAttributes","newAttributes","fullContain","updateFormatOfElement","nodeNameQuery","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","similarOptions","correctOptionsForSimilarityCheck","isSimilarNode","INLINE_ELEMENTS","selectRange","selectTextNodes","lastText","selectTextNode","getState","caretNode","searchNodes","partial","caretIsInsideWord","beforeChar","afterChar","getRangeForWord","offsetStart","offsetEnd","txtNodes","wordOffset","mergeContents","mergeConsequentSimilarElements","cleanupAndSetSelection","cleanupAndSetCaret","formatTextNode","wrapNode","unformatTextNode","newWrapNode","removeFormatFromTextNode","formatTextRange","updateFormat","wordObj","exactState","removeFormat","textOffset","applyFormat","fixOptions","b","strong","em","insertBlockQuote","NODE_NAME","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","otherLists","innerLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","handleDeleteKeyPress","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","undef","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","formElements","_clearInterval","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","firstField","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","dialog","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","commandsDisabled","commandObj","commandMapping","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","actionMapping","commandblankMapping","multiselect","Dialog_createTable","Dialog_foreColorStyle","firstElement","Dialog_fontSizeStyle"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"wysihtml-toolbar.min.js","sources":["wysihtml-toolbar.js"],"names":["wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","document","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","normalizeHasCaretError","window","ret","t1","createTextNode","t2","t3","createRange","appendChild","body","setStart","setEnd","getSelection","removeAllRanges","addRange","normalize","childNodes","anchorNode","firstChild","anchorOffset","removeChild","getTextNodes","all","nextSibling","nodeType","normalizeFix","nf","Node","texts","ownerDocument","defaultView","anode","aoffset","fnode","focusNode","foffset","focusOffset","prevTxt","shift","curText","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","previousSibling","nodeValue","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","deprecationNotice","deprecated","replacement","createAliasForDeprecatedMethod","owner","util","toArray","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","forEach","arr","func","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","el","arrayLike","addListener","eventType","listener","addEventListener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","getWindow","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","createTestElement","html","contentEditable","bodyFirstChild","removeNode","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getRangeRoot","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","rootContainerNodeTypes","setRangeStart","setRangeEnd","F","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","sibling","mergeForward","appendData","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getDocSelection","winSelectionIsBackward","sel","backward","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","saveRanges","restoreRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","readyState","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","rangeInfos","sort","saveSelection","restored","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","implement","valueOf","source","value","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","isPlainObject","difference","diffObj","newObj","isFunction","Text","isEmpty","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","removeEventListener","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","escapeParent","newWrapper","split2","nodeWrap","curNode","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","attr","getAttributes","attrList","hasOneAttribute","attributeValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","ingoreEmpty","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","isLastItem","lastListItem","lastElementChild","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","innerHtml","simulatePlaceholder","editor","placeholderText","placeholderClassName","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","setValue","setTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","unparseColor","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","ctrlKey","metaKey","minWidth","zIndex","notVisual","fixWebkitSelection","lastSibling","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","prevLeaf","executeAndRestoreRangy","restoreScrollPosition","executeAndRestore","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","getOwnNodes","splitBounds","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","commandValue","state","stateValue","bold","formatInline","getOptions","createLink","opts","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","classNames","uneditableContainer","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","cloneOuterInlines","innerNode","INLINE_ELEMENTS","outerNode","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","wrapper","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","outerInlines","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","hasNoClass","hasNoStyle","hasNoAttributes","isSameNode","element1","element2","classes1","classes2","createWrapNode","defaultTag","containsSameAttributes","updateElementAttributes","newAttributes","fullContain","updateFormatOfElement","nodeNameQuery","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","similarOptions","correctOptionsForSimilarityCheck","isSimilarNode","selectRange","selectTextNodes","lastText","selectTextNode","getState","caretNode","searchNodes","partial","caretIsInsideWord","beforeChar","afterChar","getRangeForWord","offsetStart","offsetEnd","txtNodes","wordOffset","mergeContents","mergeConsequentSimilarElements","cleanupAndSetSelection","cleanupAndSetCaret","formatTextNode","wrapNode","unformatTextNode","newWrapNode","removeFormatFromTextNode","formatTextRange","updateFormat","wordObj","exactState","removeFormat","textOffset","applyFormat","fixOptions","b","strong","em","insertBlockQuote","NODE_NAME","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","otherLists","innerLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","handleDeleteKeyPress","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","undef","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","formElements","_clearInterval","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","firstField","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","dialog","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","commandsDisabled","commandObj","commandMapping","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","actionMapping","commandblankMapping","multiselect","Dialog_createTable","Dialog_foreColorStyle","firstElement","Dialog_fontSizeStyle"],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/wysihtml.js b/dist/wysihtml.js
index 35dc0ff..2e88c3c 100644
--- a/dist/wysihtml.js
+++ b/dist/wysihtml.js
@@ -1,5 +1,5 @@
/**
- * @license wysihtml v0.5.0-beta9
+ * @license wysihtml v0.5.0-beta10
* https://github.com/Voog/wysihtml
*
* Author: Christopher Blum (https://github.com/tiff)
@@ -10,7 +10,7 @@
*
*/
var wysihtml5 = {
- version: "0.5.0-beta9",
+ version: "0.5.0-beta10",
// namespaces
commands: {},
@@ -5898,6 +5898,17 @@ wysihtml5.dom.copyAttributes = function(attributesToCopy) {
emptyTextNode: function(ignoreWhitespace) {
var regx = ignoreWhitespace ? (/^\s*$/g) : (/^[\r\n]*$/g);
return node.nodeType === wysihtml5.TEXT_NODE && (regx).test(node.data);
+ },
+
+ visible: function() {
+ var isVisible = !(/^\s*$/g).test(wysihtml5.dom.getTextContent(node));
+
+ if (!isVisible) {
+ if (node.nodeType === 1 && node.querySelector('img, br, hr, object, embed, canvas, input, textarea')) {
+ isVisible = true;
+ }
+ }
+ return isVisible;
}
},
@@ -10213,7 +10224,7 @@ wysihtml5.quirks.ensureProperClearing = (function() {
// Empty elements are cleaned up from extracted content
for (var i = childNodes.length; i --;) {
- if (childNodes[i].nodeType === 1 && (/^\s*$/).test(childNodes[i].innerHTML)) {
+ if (!wysihtml5.dom.domNode(childNodes[i]).is.visible()) {
contentAfterRangeStart.removeChild(childNodes[i]);
}
}
@@ -10237,11 +10248,11 @@ wysihtml5.quirks.ensureProperClearing = (function() {
range.setEndAfter(element);
}
- if ((/^\s*$/).test(element.innerHTML)) {
- if (element.innerHTML === '') {
+ if (!wysihtml5.dom.domNode(element).is.visible()) {
+ if (wysihtml5.dom.getTextContent(element) === '') {
element.parentNode.removeChild(element);
} else {
- wysihtml5.dom.unwrap(element);
+ element.parentNode.replaceChild(this.doc.createTextNode(" "), element);
}
}
@@ -11651,8 +11662,10 @@ wysihtml5.Commands = Base.extend(
var dom = wysihtml5.dom,
// When the caret is within a H1 and the H4 is invoked, the H1 should turn into H4
// instead of creating a H4 within a H1 which would result in semantically invalid html
- UNNESTABLE_BLOCK_ELEMENTS = "h1, h2, h3, h4, h5, h6, p, pre";
- BLOCK_ELEMENTS = "h1, h2, h3, h4, h5, h6, p, pre, div, blockquote";
+ UNNESTABLE_BLOCK_ELEMENTS = "h1, h2, h3, h4, h5, h6, p, pre",
+ BLOCK_ELEMENTS = "h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",
+ INLINE_ELEMENTS = "b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u";
+
// Removes empty block level elements
function cleanup(composer) {
@@ -11687,6 +11700,35 @@ wysihtml5.Commands = Base.extend(
return block;
}
+ function cloneOuterInlines(node, container) {
+ var n = node,
+ innerNode,
+ parentNode,
+ el = null,
+ el2;
+
+ while (n && container && n !== container) {
+ if (n.nodeType === 1 && n.matches(INLINE_ELEMENTS)) {
+ parentNode = n;
+ if (el === null) {
+ el = n.cloneNode(false);
+ innerNode = el;
+ } else {
+ el2 = n.cloneNode(false);
+ el2.appendChild(el);
+ el = el2;
+ }
+ }
+ n = n.parentNode;
+ }
+
+ return {
+ parent: parentNode,
+ outerNode: el,
+ innerNode: innerNode
+ };
+ }
+
// Formats an element according to options nodeName, className, styleProperty, styleValue
// If element is not defined, creates new element
// if opotions is null, remove format instead
@@ -11892,13 +11934,24 @@ wysihtml5.Commands = Base.extend(
blocks = wysihtml5.lang.array(fragment.childNodes).get();
}
-
if (firstOuterBlock) {
// If selection starts inside un-nestable block, split-escape the unnestable point and insert node between
composer.selection.splitElementAtCaret(firstOuterBlock, fragment);
} else {
- // Otherwise just insert
- r.insertNode(fragment);
+ // Ensure node does not get inserted into an inline where it is not allowed
+ var outerInlines = cloneOuterInlines(rangeStartContainer, composer.element);
+ if (outerInlines.outerNode && outerInlines.innerNode && outerInlines.parent) {
+ if (fragment.childNodes.length === 1) {
+ while(fragment.firstChild.firstChild) {
+ outerInlines.innerNode.appendChild(fragment.firstChild.firstChild);
+ }
+ fragment.firstChild.appendChild(outerInlines.outerNode);
+ }
+ composer.selection.splitElementAtCaret(outerInlines.parent, fragment);
+ } else {
+ // Otherwise just insert
+ r.insertNode(fragment);
+ }
}
return blocks;
@@ -12067,7 +12120,7 @@ wysihtml5.Commands = Base.extend(
(function(wysihtml5) {
var defaultTag = "SPAN",
- INLINE_ELEMENTS = "b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select",
+ INLINE_ELEMENTS = "b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u",
queryAliasMap = {
"b": "b, strong",
"strong": "b, strong",
diff --git a/dist/wysihtml.min.js b/dist/wysihtml.min.js
index 59947c5..9d7006a 100644
--- a/dist/wysihtml.min.js
+++ b/dist/wysihtml.min.js
@@ -1,10 +1,10 @@
-/*! wysihtml - v0.5.0-beta9 (2015-06-02) */
+/*! wysihtml - v0.5.0-beta10 (2015-06-04) */
-var wysihtml5={version:"0.5.0-beta9",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"\ufeff",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),a.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++cg||c!==f&&c.compareDocumentPosition(f)&Node.DOCUMENT_POSITION_PRECEDING)&&(f=[c,c=f][0],g=[e,e=g][0]);i&&j;)j.previousSibling&&j.previousSibling===i?(c===j&&(c=i,e=i.nodeValue.length+e),f===j&&(f=i,g=i.nodeValue.length+g),i.nodeValue=i.nodeValue+j.nodeValue,j.parentNode.removeChild(j),j=a.shift()):(i=j,j=a.shift());c&&c.parentNode&&f&&f.parentNode&&(h.setStart(c,e),h.setEnd(f,g),b.removeAllRanges(),b.addRange(h))});Node.prototype.normalize=a};"Node"in window&&"normalize"in Node.prototype&&c()&&e()},wysihtml5.polyfills(window,document),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.warn("DEPRECATED: "+a+" in module "+this.name+" is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(K(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=F)return a.ownerDocument;if(typeof a.document!=F)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},D.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},E.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f0&&d=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((W(b)!=W(e)||1==R(b,c,e,f))&&(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((W(b)!=W(e)||-1==R(b,c,e,f))&&(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(cx",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return z(this),n(this,a,b)},getDocument:function(){return d(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var c=d(this),e=a.createRange(c);b=b||J.getBody(c),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);
+var wysihtml5={version:"0.5.0-beta10",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"\ufeff",INVISIBLE_SPACE_REG_EXP:/\uFEFF/g,EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,TAB_KEY:9,DELETE_KEY:46};wysihtml5.polyfills=function(a,b){String.prototype.trim||!function(){var a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(a,"")}}(),function(){var c="addEventListener",d="removeEventListener";b[c]||(a.Element.prototype[c]=a[c]=b[c]=function(b,c,d){return(d=this).attachEvent("on"+b,function(b){var b=b||a.event;b.target=b.target||b.srcElement,b.preventDefault=b.preventDefault||function(){b.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0},b.which=b.button?2===b.button?3:4===b.button?2:b.button:b.keyCode,c.call(d,b)})},a.Element.prototype[d]=a[d]=b[d]=function(a,b){return this.detachEvent("on"+a,b)})}(),Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(a.Element.prototype,"textContent").get&&!function(){var b=Object.getOwnPropertyDescriptor(a.Element.prototype,"innerText");Object.defineProperty(a.Element.prototype,"textContent",{get:function(){return b.get.call(this)},set:function(a){return b.set.call(this,a)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){for(var c=this.length,d=-1,e=b>>>0;~(c-e);d=this[--c]===a?c:d);return d}),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),a.Element&&function(a){a.matches=a.matches||a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector||function(a){for(var b=this,c=(b.parentNode||b.document).querySelectorAll(a),d=-1;c[++d]&&c[d]!=b;);return!!c[d]}}(a.Element.prototype),"document"in a&&("classList"in b.createElement("_")?"DOMTokenList"in a&&!function(){"use strict";var c=b.createElement("_");if(c.classList.add("c1","c2"),!c.classList.contains("c2")){var d=function(b){var c=a.DOMTokenList.prototype[b];a.DOMTokenList.prototype[b]=function(a){var b,d=arguments.length;for(b=0;d>b;b++)a=arguments[b],c.call(this,a)}};d("add"),d("remove")}if(c.classList.toggle("c3",!1),c.classList.contains("c3")){var e=a.DOMTokenList.prototype.toggle;a.DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:e.call(this,a)}}c=null}():!function(a){"use strict";if("Element"in a){var b="classList",c="prototype",d=a.Element[c],e=Object,f=String[c].trim||function(){return this.replace(/^\s+|\s+$/g,"")},g=Array[c].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},h=function(a,b){this.name=a,this.code=DOMException[a],this.message=b},i=function(a,b){if(""===b)throw new h("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(b))throw new h("INVALID_CHARACTER_ERR","String contains an invalid character");return g.call(a,b)},j=function(a){for(var b=f.call(a.getAttribute("class")||""),c=b?b.split(/\s+/):[],d=0,e=c.length;e>d;d++)this.push(c[d]);this._updateClassName=function(){a.setAttribute("class",this.toString())}},k=j[c]=[],l=function(){return new j(this)};if(h[c]=Error[c],k.item=function(a){return this[a]||null},k.contains=function(a){return a+="",-1!==i(this,a)},k.add=function(){var a,b=arguments,c=0,d=b.length,e=!1;do a=b[c]+"",-1===i(this,a)&&(this.push(a),e=!0);while(++cg||c!==f&&c.compareDocumentPosition(f)&Node.DOCUMENT_POSITION_PRECEDING)&&(f=[c,c=f][0],g=[e,e=g][0]);i&&j;)j.previousSibling&&j.previousSibling===i?(c===j&&(c=i,e=i.nodeValue.length+e),f===j&&(f=i,g=i.nodeValue.length+g),i.nodeValue=i.nodeValue+j.nodeValue,j.parentNode.removeChild(j),j=a.shift()):(i=j,j=a.shift());c&&c.parentNode&&f&&f.parentNode&&(h.setStart(c,e),h.setEnd(f,g),b.removeAllRanges(),b.addRange(h))});Node.prototype.normalize=a};"Node"in window&&"normalize"in Node.prototype&&c()&&e()},wysihtml5.polyfills(window,document),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.warn("DEPRECATED: "+a+" in module "+this.name+" is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(K(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=F)return a.ownerDocument;if(typeof a.document!=F)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},D.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},E.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f0&&d=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((W(b)!=W(e)||1==R(b,c,e,f))&&(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((W(b)!=W(e)||-1==R(b,c,e,f))&&(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(cx",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return z(this),n(this,a,b)},getDocument:function(){return d(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var c=d(this),e=a.createRange(c);b=b||J.getBody(c),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);
for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return I.rangesEqual(this,a)},isValid:function(){return y(this)},inspect:function(){return o(this)},detach:function(){}}),F(I,H),K.extend(I,{rangeProperties:ja,RangeIterator:p,copyComparisonConstants:D,createPrototypeRange:F,inspect:o,toHtml:B,getRangeDocument:d,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=I}),H.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?k.compareBoundaryPoints=function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:k.compareBoundaryPoints=function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&e.removeNode(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return e.removeNode(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=ba.length;e--;)if(c=ba[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(ba.splice(e,1),!0):d;return"deleteAll"==b&&(ba.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);if(Q)y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b};else{if(!O)return b.fail("Neither document.selection or window.getSelection() detected."),!1;y=e,a.isSelectionValid=function(){return!0}}a.getNativeSelection=y;var R=y();if(!R)return b.fail("Native selection was null (possibly issue 138?)"),!1;var S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=C.createTestElement(document,"",!1),j=i.appendChild(document.createTextNode("Â Â Â ")),k=document.createRange();if(k.setStart(j,1),k.collapse(!0),b.removeAllRanges(),b.addRange(k),Y=1==b.rangeCount,b.removeAllRanges(),!d){var l=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(l&&parseInt(l[1])>=36)X=!1;else{var m=k.cloneRange();k.setStart(j,0),m.setEnd(j,3),m.setStart(j,2),b.addRange(k),b.addRange(m),X=2==b.rangeCount}}for(C.removeNode(i),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var aa;E(R,"getRangeAt")?aa=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(aa=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var ba=[],ca=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),ba.push({win:a,selection:b})),b};a.getSelection=ca,D.createAliasForDeprecatedMethod(a,"getIframeSelection","getSelection");var da=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){da.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var ea=function(a,b){Z(a.nativeSelection,b),a.refresh()};W?da.addRange=function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)ea(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=aa(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,ha(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:da.addRange=function(a,b){c(b)&&V?ea(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},da.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;da.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},da.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},da.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}da.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fa;if(Q)fa=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fa=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],ha(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fa=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=aa(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}da.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fa(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var ga=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};_&&P?da.removeRange=function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else ga(this,a)}:da.removeRange=function(a){ga(this,a)};var ha;!Q&&U&&J.implementsDomRange?(ha=g,da.isBackward=function(){return ha(this)}):ha=da.isBackward=function(){return!1},da.isBackwards=da.isBackward,da.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},da.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},da.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},da.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},da.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},da.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),C.removeNode(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},da.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},da.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},da.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},da.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b||[]))}),c},da.setStart=w(!0),da.setEnd=w(!1),a.rangePrototype.select=function(a){ca(this.getDocument()).setSingleRange(this,a)},da.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},da.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},da.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},da.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},da.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}},da.restoreRanges=function(a){this.removeAllRanges();for(var b,c=0;b=a.ranges[c];++c)this.addRange(b,a.backward&&0==c)},da.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(da.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),da.getName=function(){return"WrappedSelection"},da.inspect=function(){return x(this)},da.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=da,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return ca(a)}),a=null})});var M=!1,N=function(a){M||(M=!0,!H.initialized&&H.config.autoInitialize&&l())};return F&&("complete"==document.readyState?N():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",N,!1),J(window,"load",N))),H},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(r)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),p(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString(),i=q(c);return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:i,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(p(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),p(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[],j=q(d);b=b.slice(0),b.sort(f);for(var k=0,l=b.length;l>k;++k)i[k]=g(b[k],j);for(k=l-1;k>=0;--k)e=b[k],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[k].markerId,h)):(e.setEndBefore(c(i[k].endMarkerId,h)),e.setStartAfter(c(i[k].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],f):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&p(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p=o.removeNode,q=a.Selection.isDirectionBackward,r="\ufeff";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})}),a},this);var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;aa:">"===b?a>d:"<="===b?d>=a:">="===b?a>=d:void 0:a===d:!0}var d=navigator.userAgent,e=document.createElement("div"),f=-1!==d.indexOf("Gecko")&&-1===d.indexOf("KHTML"),g=-1!==d.indexOf("AppleWebKit/"),h=-1!==d.indexOf("Chrome/"),i=-1!==d.indexOf("Opera/");return{USER_AGENT:d,supported:function(){var c=this.USER_AGENT.toLowerCase(),d="contentEditable"in e,f=document.execCommand&&document.queryCommandSupported&&document.queryCommandState,g=document.querySelector&&document.querySelectorAll,h=this.isIos()&&a(c)<5||this.isAndroid()&&b(c)<4||-1!==c.indexOf("opera mobi")||-1!==c.indexOf("hpwos/");return d&&f&&g&&!h},isTouchDevice:function(){return this.supportsEvent("touchmove")},isIos:function(){return/ipad|iphone|ipod/i.test(this.USER_AGENT)},isAndroid:function(){return-1!==this.USER_AGENT.indexOf("Android")},supportsSandboxedIframes:function(){return c()},throwsMixedContentWarningWhenIframeSrcIsEmpty:function(){return!("querySelector"in document)},displaysCaretInEmptyContentEditableCorrectly:function(){return c()},hasCurrentStyleProperty:function(){return"currentStyle"in e},insertsLineBreaksOnReturn:function(){return f},supportsPlaceholderAttributeOn:function(a){return"placeholder"in a},supportsEvent:function(a){return"on"+a in e||function(){return e.setAttribute("on"+a,"return;"),"function"==typeof e["on"+a]}()},supportsEventsInIframeCorrectly:function(){return!i},supportsHTML5Tags:function(a){var b=a.createElement("div"),c="foo";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:c(10,"<="),insertUnorderedList:c(9,">="),insertOrderedList:c(9,">=")},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return c()},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||c()||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=e.cloneNode(!1);return c.innerHTML="",b=c.innerHTML.toLowerCase(),a=""===b||""===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=d.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return c(9)&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return c()},hasProblemsSettingCaretAfterImg:function(){return c()},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return c()},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window},supportsModenPaste:function(){return!("clipboardData"in window)},fixStyleKey:function(a){return"cssFloat"===a?"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat":a}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":" "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi," ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b);for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){if(b.nodeType!==wysihtml5.ELEMENT_NODE){if(b.parentNode===a)return!0;b=b.parentNode}return a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(c){var d=c?/^\s*$/g:/^[\r\n]*$/g;return b.nodeType===a.TEXT_NODE&&d.test(b.data)}},prev:function(d){var e=b.previousSibling,f=d&&d.nodeTypes?d.nodeTypes:c;return e?!a.lang.array(f).contains(e.nodeType)||d&&d.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(d):e:null},next:function(d){var e=b.nextSibling,f=d&&d.nodeTypes?d.nodeTypes:c;return e?!a.lang.array(f).contains(e.nodeType)||d&&d.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(d):e:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},escapeParent:function(c,d){var e,f,g,h=b;if(!a.dom.contains(c,b))throw new Error("Child is not a descendant of node.");do{for(e=h.parentNode,f=e.cloneNode(!1);e.lastChild&&e.lastChild!==h;)f.insertBefore(e.lastChild,f.firstChild);if(e!==c&&(g=e.cloneNode(!1),g.appendChild(h),h=g),e.parentNode.insertBefore(h,e.nextSibling),""!==f.innerHTML)if(/^\s+$/.test(f.innerHTML))for(;f.lastChild;)e.parentNode.insertBefore(f.lastChild,h.nextSibling);else e.parentNode.insertBefore(f,h.nextSibling);if(""===e.innerHTML)e.parentNode.removeChild(e);else if(/^\s+$/.test(e.innerHTML)){for(;e.firstChild;)e.parentNode.insertBefore(e.firstChild,e);e.parentNode.removeChild(e)}}while(e&&e!==c);d&&h&&(h.parentNode.insertBefore(d,h),d.appendChild(h))},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(c.attribute){var j=a.dom.getAttributes(b),k=[],l=!1;Array.isArray(c.attribute)?k=c.attribute:k[c.attribute]=c.attributeValue;for(var m in k)if(k.hasOwnProperty(m))if("undefined"==typeof k[m]){if("undefined"!=typeof j[m]){l=!0;break}}else if(j[m]===k[m]){l=!0;break}if(!l)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(c){var e=b.ownerDocument,f=a.dom.domNode(b).next({ignoreBlankTexts:!0}),g=a.dom.domNode(b).prev({ignoreBlankTexts:!0});f&&!d(f)&&a.dom.insert(e.createElement("br")).after(b),g&&!d(g)&&a.dom.insert(e.createElement("br")).before(b)},remove:function(d){var e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&c(e)&&e.parentNode.removeChild(e),f&&c(f)&&f.parentNode.removeChild(f)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||""===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=wysihtml5.lang.object(c).isFunction()?c:v[c];return f&&(e=f(b,d),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b,c){return b?b.replace(a,""):"IMG"===c?"":null}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a?a:null}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode&&a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l,m=a.ownerDocument,n=m.createDocumentFragment(),o=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0}),p=wysihtml5.dom.domNode(a).next({ignoreBlankTexts:!0}),q=a.lastElementChild||a.lastChild;if(e)for(!o||b(o)||c(o)||d(n);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild,l=k===q;f=k.firstChild;)h=f===g,i=(!l||p&&!b(p))&&h&&!b(f)&&!c(f),n.appendChild(f),i&&d(n);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)n.appendChild(f);else{for(j=m.createElement("p");f=k.firstChild;)j.appendChild(f);n.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(n,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.config.className||(this.config.className="wysihtml5-sandbox"),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className=this.config.className,a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}a.polyfills&&a.polyfills(h,i),this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView||this.element.ownerDocument.parentWindow},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.config.className||(this.config.className="wysihtml5-sandbox"),d?this.element=this._bindElement(d):this.element=this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className=this.config.className,this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!==a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(a){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d,e){var f=e||"wysihtml5-placeholder",g=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,f)},h=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,f))};b.on("set_placeholder",h).on("unset_placeholder",g).on("focus:composer",g).on("paste:composer",g).on("blur:composer",h),h()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e
-};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode("Â ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^
$/i.test(d.trim())&&(d=!1),b(d),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"},!1,a),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==d&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(c){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(c,d){l.start=c,l.end=d,l.table=k.getParentElement(l.start,{query:"table"},!1,a),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(b){var c=wysihtml5.dom.getParentElement(b.target,{query:"td, th"},!1,a);c&&d(c)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"},!1,a)!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(b){var d;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(d=c.lastChild,a.dom.unwrap(c),this.setAfter(d)):c.parentNode.removeChild(c))}.bind(this),f=function(a){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.className="_wysihtml5-temp-caret-fix",c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c,d){var e,f=this.win,g=rangy.createRange(this.doc),h=function(){var d=b.parentNode,g=d?d.childNodes[d.childNodes.length-1]:null;if(!e||g===b&&1===b.nodeType&&"block"===f.getComputedStyle(b).display)if(c){var h=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(h,b.nextSibling),this.selectNode(h),setTimeout(function(){h&&h.parentNode&&h.parentNode.removeChild(h)},0)}else this.createTemporaryCaretSpaceAfter(b)}.bind(this);if(g.setStartAfter(b),g.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(g),h(),d&&d(e);else{var i=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(i),setTimeout(function(){e=this.setSelection(g),h(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(a){for(var b=this.getOwnRanges(),c=[],d=0,e=b.length;e>d;d++)c.push(b[d].commonAncestorContainer||this.doc.body);return c},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(b){for(var c,d=this.getSelectedOwnNodes(),e=[],f=0,g=d.length;g>f;f++)c=d[f].nodeName&&"LI"===d[f].nodeName?d[f]:a.dom.getParentElement(d[f],{query:"li"},!1,this.contain),c&&e.push(c);return e.length?e:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode():null;if(j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},executeAndRestoreRangy:function(a,b){var c=rangy.saveSelection(this.win);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(b,c){var d,e,f,g,h,i=this.getSelection();if(i.rangeCount>0){d=i.getRangeAt(0).cloneRange(),d.setEndAfter(b),e=d.extractContents(),h=e.childNodes;for(var j=h.length;j--;)1===h[j].nodeType&&/^\s*$/.test(h[j].innerHTML)&&e.removeChild(h[j]);b.parentNode.insertBefore(e,b.nextSibling),c?(f=c.firstChild||c,g=c.lastChild||c,b.parentNode.insertBefore(c,b.nextSibling),f&&g&&(d.setStartBefore(f),d.setEndAfter(g),this.setSelection(d))):(d.setStartAfter(b),d.setEndAfter(b)),/^\s*$/.test(b.innerHTML)&&(""===b.innerHTML?b.parentNode.removeChild(b):a.dom.unwrap(b))}},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.win.getSelection();a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},getOwnNodes:function(a,b,c){for(var d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)d[f]&&(c&&d[f].splitBoundaries(),e=e.concat(d[f].getNodes(Array.isArray(a)?a:[a],b)));return e},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);
-return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},remove:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.remove;return e?(d.unshift(this.composer),e.apply(c,d)):void 0},state:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.state;if(e)return d.unshift(this.composer),e.apply(c,d);try{return this.doc.queryCommandState(a)}catch(f){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),function(a){var b={nodeName:"B",toggle:!0};a.commands.bold={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){function b(b){return a.lang.object({}).merge(c).merge({attribute:b}).get()}var c={nodeName:"A",toggle:!1};a.commands.createLink={exec:function(c,d,e){var f=b(e);if(c.selection.isCollapsed()&&!this.state(c,d)){var g=c.doc.createTextNode(f.attribute.href);c.selection.insertNode(g),c.selection.selectNode(g)}a.commands.formatInline.exec(c,d,f)},state:function(b,d){return a.commands.formatInline.state(b,d,c)}}}(wysihtml5),function(a){var b={nodeName:"A"};a.commands.removeLink={exec:function(c,d){a.commands.formatInline.remove(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-font-size-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-font-size-"+d})}}}(wysihtml5),function(a){a.commands.fontSizeStyle={exec:function(b,c,d){d=d.size||d,/^\s*$/.test(d)||a.commands.formatInline.exec(b,c,{styleProperty:"fontSize",styleValue:d,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"fontSize"})},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-color-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-color-"+d})}}}(wysihtml5),function(a){a.commands.foreColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"color",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"color"})},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){a.commands.bgColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"backgroundColor",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"backgroundColor",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"backgroundColor"})},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(BLOCK_ELEMENTS),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?BLOCK_ELEMENTS:l)&&(e=d),d=d.parentNode;return e}function e(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=k.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function f(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=k.renameElement(b,c(e)):k.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function g(b){for(var c=b.querySelectorAll(BLOCK_ELEMENTS)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function h(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function i(b,f,i,j){var k=f?a.lang.object(f).clone(!0):null;k&&(k.nodeName=k.nodeName||i||c(j)),h(b,j);var m,n,o,p=b.cloneRange(),q=p.startContainer,r=p.extractContents(),s=j.doc.createDocumentFragment(),t=!k||"BLOCKQUOTE"===i&&k.nodeName&&"BLOCKQUOTE"===k.nodeName,u=d(q,j.element,t);if(f&&f.nodeName&&"BLOCKQUOTE"===f.nodeName){var v=e(null,f,j);v.appendChild(r),s.appendChild(v),n=[v]}else{if(r.firstChild)for(;r.firstChild;)if(1==r.firstChild.nodeType&&r.firstChild.matches(BLOCK_ELEMENTS))if(f)e(r.firstChild,f,j),r.firstChild.matches(l)&&g(r.firstChild),s.appendChild(r.firstChild);else{g(r.firstChild),o=a.dom.unwrap(r.firstChild);for(var w=0,x=o.length;x>w;w++)s.appendChild(o[w]);s.childNodes.length>0&&s.appendChild(j.doc.createElement("BR"))}else if(f){for(m=e(null,k,j);r.firstChild&&(1!==r.firstChild.nodeType||!r.firstChild.matches(BLOCK_ELEMENTS));)1==r.firstChild.nodeType&&m.matches(l)&&g(r.firstChild),m.appendChild(r.firstChild);s.appendChild(m)}else 1==r.firstChild.nodeType&&g(r.firstChild),s.appendChild(r.firstChild);else s.appendChild(e(null,f,j));n=a.lang.array(s.childNodes).get()}return u?j.selection.splitElementAtCaret(u,s):p.insertNode(s),n}function j(b,c){var d=a.dom.getParentElement(b,{query:BLOCK_ELEMENTS},null,c.element);return d?d.nodeName:null}var k=a.dom,l="h1, h2, h3, h4, h5, h6, p, pre";BLOCK_ELEMENTS="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",a.commands.formatBlock={exec:function(c,d,e){var g,h,k,l,m,n=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.win);for(var o=0,p=m.length;p>o;o++)f(m[o],e,c)}if(!m){c.selection.isCollapsed()&&(k=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:BLOCK_ELEMENTS},null,c.element),k?(l=rangy.saveSelection(c.win),h=c.selection.createRange(),h.selectNode(k),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.win),c.selection.selectLine())),g=c.selection.getOwnRanges();for(var q=g.length;q--;)n=n.concat(i(g[q],e,j(g[q].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(n[0]),h.setEndAfter(n[n.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:BLOCK_ELEMENTS})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=k.getParentElement(g[h],d||{query:BLOCK_ELEMENTS},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b);h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c=b.selection.getSelectedNode();return c&&c.nodeName&&"PRE"==c.nodeName&&c.firstChild&&c.firstChild.nodeName&&"CODE"==c.firstChild.nodeName?c:a.dom.getParentElement(c,{query:"pre code"})}}}(wysihtml5),function(a){function b(a){return/^\s*$/.test(a.className)}function c(a){return!a.getAttribute("style")||/^\s*$/.test(a.getAttribute("style"))}function d(b){var c=a.dom.getAttributes(b);return a.lang.object(c).isEmpty()}function e(b,c){var d,e,f,g;return 1!==b.nodeType||1!==c.nodeType?!1:b.nodeName!==c.nodeName?!1:(d=b.className.trim().replace(/\s+/g," ").split(" "),e=c.className.trim().replace(/\s+/g," ").split(" "),a.lang.array(d).without(e).length>0?!1:(f=a.dom.getAttributes(b),g=a.dom.getAttributes(c),f.length===g.length&&a.lang.object(a.lang.object(f).difference(g)).isEmpty()?!0:!1))}function f(b,c){var d=c&&c.nodeName||F,e=b.ownerDocument.createElement(d);if(c.classRegExp&&(e.className=e.className.replace(c.classRegExp,"")),c.className&&e.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(e.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),c.attribute)if("object"==typeof c.attribute)for(var f in c.attribute)c.attribute.hasOwnProperty(f)&&e.setAttribute(f,c.attribute[f]);else"undefined"!=typeof c.attributeValue&&e.setAttribute(c.attribute,c.attributeValue);return e}function g(a,b){for(var c in a)if(a.hasOwnProperty(c)&&(void 0===typeof b[c]||b[c]!==a[c]))return!1;return!0}function h(b,c,d){var e,f=a.dom.getAttributes(b),h=g(c,f);a.lang.object(f).difference(c);if(h&&d!==!1)for(e in c)c.hasOwnProperty(e)&&b.removeAttribute(e);else for(e in c)c.hasOwnProperty(e)&&b.setAttribute(e,c[e])}function i(e,f){var g,i,j,k,l;if(f.className&&(f.toggle!==!1&&e.classList.contains(f.className)?e.classList.remove(f.className):e.classList.add(f.className),b(e)&&e.removeAttribute("class")),f.styleProperty&&(f.toggle!==!1&&e.style[a.browser.fixStyleKey(f.styleProperty)].trim().replace(/, /g,",")===f.styleValue?e.style[a.browser.fixStyleKey(f.styleProperty)]="":e.style[a.browser.fixStyleKey(f.styleProperty)]=f.styleValue),c(e)&&e.removeAttribute("style"),f.attribute&&("object"==typeof f.attribute?k=f.attribute:(k={},k[f.attribute]=f.attributeValue||""),h(e,k,f.toggle)),l=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,f.nodeName&&a.dom.domNode(e).test({query:l})||!f.nodeName&&e.nodeName===F)if(b(e)&&c(e)&&d(e))a.dom.unwrap(e);else if(!f.nodeName){i=e.ownerDocument.createElement(F),g=a.dom.getAttributes(e);for(j in g)g.hasOwnProperty(j)&&i.setAttribute(j,g[j]);for(;e.firstChild;)i.appendChild(e.firstChild);e.parentNode.insertBefore(i,e),e.parentNode.removeChild(e)}}function j(b,c){var d=[];return b.isCollapsed()||(d=d.concat(b.getOwnNodes([3],function(b){return!a.dom.domNode(b).is.emptyTextNode()},c))),d}function k(a,b,c,d){var e=a,f=d?b:l(b);do{if(1===e.nodeType&&m(e,f))return e;e=e.parentNode}while(e&&e!==c);return null}function l(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function m(b,c){var d;if(c.nodeName){var e=H[c.nodeName.toLowerCase()]||c.nodeName.toLowerCase();return a.dom.domNode(b).test({query:e})}return d=a.lang.object(c).clone(),d.query=G,a.dom.domNode(b).test(d)}function n(b,c){var d=document.documentElement||document.body,e=d.scrollTop,f=d.scrollLeft;rangy.getSelection(b.win);rangy.getSelection(b.win).removeAllRanges();try{rangy.getSelection(b.win).addRange(c)}catch(g){}b.doc.activeElement&&a.dom.contains(b.element,b.doc.activeElement)||(b.element.focus(),d.scrollTop=e,d.scrollLeft=f,rangy.getSelection(b.win).addRange(c))}function o(a,b){var c=rangy.createRange(b.doc),d=a[a.length-1];a[0]&&d&&(c.setStart(a[0],0),c.setEnd(d,d.length),n(b,c))}function p(a,b,c,d){var e=rangy.createRange(a.doc);b&&(e.setStart(b,c),e.setEnd(b,"undefined"!=typeof d?d:c),n(a,e))}function q(a,b,c){var d,e,f,g=j(a.selection),h=[],i=!1;if(0===g.length&&a.selection.isCollapsed()){if(f=a.selection.getSelection().anchorNode,!f)return{nodes:[],partial:!1};3===f.nodeType&&(g=[f])}g.length||(e=a.selection.getOwnRanges()[0],e&&(g=[e.endContainer]));for(var l=0,m=g.length;m>l;l++)d=k(g[l],b,a.element,c),d?h.push(d):i=!0;return{nodes:h,partial:i}}function r(a){var b,c,d,e;return a&&(b=a.anchorNode,c=a.anchorOffset,b&&3===b.nodeType&&c>0&&c0&&/\w/.test(c.data[g-1]);)g--;for(;h0&&o(b,a),u(q(a,c).nodes),b.length>0&&o(b,a)}function w(a,b,c,d){p(a,b,c),u(q(a,d).nodes),p(a,b,c)}function x(a,b){var c=f(a,b);a.parentNode.insertBefore(c,a),c.appendChild(a)}function y(b,c,d){var e,f=c.element,g=k(b,d,f);g&&(e=g.cloneNode(!1),a.dom.domNode(b).escapeParent(g,e),i(e,d))}function z(b,c,d){var e=c.element,f=k(b,d,e);f&&a.dom.domNode(b).escapeParent(f)}function A(a,b,c){var d=f(a.endContainer,c);a.surroundContents(d),b.selection.selectNode(d)}function B(b,c,d,e){var f,g,h,j,l=q(b,e,!0),m=b.selection.getSelection();if(c.length){if(l.partial||e.toggle===!1)for(j=c.length;j--;)k(c[j],e,b.element)&&y(c[j],b,e),k(c[j],e,b.element)||x(c[j],e);else for(j=c.length;j--;)y(c[j],b,e);v(b,c,e)}else if(e.toggle!==!1)if(r(m))f=s(m),g=f.textNode,y(f.textNode,b,e),w(b,f.textNode,f.wordOffset,e);else{g=b.doc.createTextNode(a.INVISIBLE_SPACE),h=d.nodes[0].cloneNode(!1),h.appendChild(g),b.selection.splitElementAtCaret(d.nodes[0],h),i(h,e),v(b,[g],e);var n=b.selection.getSelection();if(n.anchorNode&&n.focusNode)try{n.collapseToEnd()}catch(o){}}else for(j=d.nodes.length;j--;)i(d.nodes[j],e)}function C(b,c,d,e){var f,g,h,i=b.selection.getSelection();if(c.length){for(h=c.length;h--;)z(c[h],b,e);v(b,c,e)}else{for(f=i.anchorNode,g=i.anchorOffset,h=d.nodes.length;h--;)a.dom.unwrap(d.nodes[h]);w(b,f,g,e)}}function D(a,b,c){var d,e,f=a.selection.getSelection();if(b.length){for(e=b.length;e--;)x(b[e],c);v(a,b,c)}else if(r(f))d=s(f),x(d.textNode,c),w(a,d.textNode,d.wordOffset,c);else{var g=a.selection.getOwnRanges()[0];g&&A(g,a,c)}}function E(a){return a="string"==typeof a?{nodeName:a}:a,a.nodeName&&(a.nodeName=a.nodeName.toUpperCase()),a}var F="SPAN",G="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select",H={b:"b, strong",strong:"b, strong",em:"em, i",i:"em, i"};a.commands.formatInline={exec:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0?B(a,d,e,c):D(a,d,c),a.element.normalize()},remove:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0&&C(a,d,e,c),a.element.normalize()},state:function(a,b,c){c=E(c);var d=q(a,c,!0).nodes;return 0===d.length?!1:d}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"},!1,e.element),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g,h="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){if(e=f(h,d),e.length)for(var i=e.length;i--;)a.dom.renameElement(e[i],c.toLowerCase());else{
-g=f(["OL","UL"],d);for(var j=g.length;j--;)a.dom.resolveList(g[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.classNames.uneditableContainer),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),function(a){var b={nodeName:"I",toggle:!0};a.commands.italic={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(a){return!1}}}(wysihtml5),function(a){var b={nodeName:"U",toggle:!0};a.commands.underline={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(a){return!1}}}(wysihtml5),function(a){a.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d
";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b,c){if(b.tableSelection){var d=b.tableSelection.start,e=b.tableSelection.end;if(d&&e&&d==e&&(a.dom.getAttribute(d,"colspan")&&parseInt(a.dom.getAttribute(d,"colspan"),10)>1||a.dom.getAttribute(d,"rowspan")&&parseInt(a.dom.getAttribute(d,"rowspan"),10)>1))return[d]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.indentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPushLiLevel(d,a.selection):!1},state:function(a,b){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPullLiLevel(d,a):!1},state:function(a,b){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){var b={nodeName:"SUB",toggle:!0};a.commands.subscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={nodeName:"SUP",toggle:!0};a.commands.superscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){var a,f=this;this.composer.sandbox.getDocument();i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.win)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getScrollPos:function(){if(this.doc&&this.win){var a={};return"undefined"!=typeof this.win.pageYOffset?a.y=this.win.pageYOffset:a.y=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,"undefined"!=typeof this.win.pageXOffset?a.x=this.win.pageXOffset:a.x=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>||<\/p>)*$/i.test(a)||""===a||"
"===a||"
"===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets,className:this.config.classNames.sandbox}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.win=this.sandbox.getWindow(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.classNames.uneditableContainer),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.classNames.composer),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f,this.config.classNames.placeholder),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.classNames.uneditableContainer),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.classNames.uneditableContainer])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.classNames.uneditableContainer])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(b,c){if(b.selection.caretIsLastInSelection()){var d=b.selection.getSelection(),e=d.anchorNode;if(e&&1===e.nodeType&&(a.dom.getParentElement(e,{query:"td, th"},!1,b.element)||c)){var f=e.childNodes[d.anchorOffset];if(f&&1===f.nodeType&"BR"===f.nodeName)return f.parentNode.removeChild(f),!0}}return!1},h=function(a){var b=a.selection.getBeforeSelection(!0);if(b&&("element"===b.type||"leafnode"===b.type)&&1===b.node.nodeType&&b.node.classList.contains(a.config.classNames.uneditableContainer)){if(g(a,!0))return!0;try{var c=new CustomEvent("wysihtml5:uneditable:delete");b.node.dispatchEvent(c)}catch(d){}return b.node.parentNode.removeChild(b.node),!0}return!1},i=function(b){var c=b.selection;if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=a.dom.getParentElement(c.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,b.element);if(d){if(f){for(;f.firstChild;)d.appendChild(f.firstChild);return c.setAfter(e),!0}if(3===c.getSelectedNode().nodeType)return d.appendChild(c.getSelectedNode()),c.setAfter(e),!0}}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else{if(i(b))return void a.preventDefault();if(g(b))return void a.preventDefault();if(h(b))return void a.preventDefault()}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},k=function(a,b){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},l=function(a){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},m=function(a){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},n=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},o=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},p=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},q=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},r=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},s=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.classNames.uneditableContainer+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},t=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},u=function(b){if(this.config.classNames.uneditableContainer){var c=a.dom.getParentElement(b.target,{query:"."+this.config.classNames.uneditableContainer},!1,this.element);c&&this.selection.setAfter(c)}},v=function(a){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(b){var c,e,f=b.keyCode,g=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&g&&(this.commands.exec(g),b.preventDefault()),f===a.BACKSPACE_KEY&&j(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),k(this,this.element))},x=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],l.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||l.call(this)},250)),this.config.handleTables&&x.call(this),e(d,["drop","paste","mouseup","focus","keyup"],m.bind(this)),d.addEventListener("focus",n.bind(this),!1),d.addEventListener("blur",o.bind(this),!1),e(this.element,["drop","paste","beforepaste"],p.bind(this),!1),this.element.addEventListener("copy",q.bind(this),!1),this.element.addEventListener("mousedown",s.bind(this),!1),this.element.addEventListener("mouseover",t.bind(this),!1),this.element.addEventListener("click",u.bind(this),!1),this.element.addEventListener("drop",v.bind(this),!1),this.element.addEventListener("keyup",r.bind(this),!1),this.element.addEventListener("keydown",w.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1)}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),function(a){a.views.SourceView=Base.extend({constructor:function(a,b){this.editor=a,this.composer=b,this._observe()},switchToTextarea:function(a){var b=this.composer.win.getComputedStyle(this.composer.element),c=parseFloat(b.width),d=Math.max(parseFloat(b.height),100);this.textarea||(this.textarea=this.composer.doc.createElement("textarea"),this.textarea.className="wysihtml5-source-view"),this.textarea.style.width=c+"px",this.textarea.style.height=d+"px",this.textarea.value=this.editor.getValue(a,!0),this.composer.element.parentNode.insertBefore(this.textarea,this.composer.element),this.editor.currentView="source",this.composer.element.style.display="none"},switchToComposer:function(a){var b=this.textarea.value;b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder")),this.textarea.parentNode.removeChild(this.textarea),this.editor.currentView=this.composer,this.composer.element.style.display="";
-},_observe:function(){this.editor.on("change_view",function(a){"composer"===a?this.switchToComposer(!0):"textarea"===a&&this.switchToTextarea(!0)}.bind(this))}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,classNames:{composer:"wysihtml5-editor",body:"wysihtml5-supported",sandbox:"wysihtml5-sandbox",placeholder:"wysihtml5-placeholder",uneditableContainer:"wysihtml5-uneditable-container"},copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),d&&d.classNames&&a.lang.object(this.config.classNames).merge(d.classNames),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.classNames.body),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea?this.sourceView=new a.views.SourceView(this,this.composer):this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.classNames.uneditableContainer,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b;a.browser.supportsModenPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.classNames.uneditableContainer});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5);
+return this},difference:function(b){var c={};for(var d in a)a.hasOwnProperty(d)&&(b.hasOwnProperty(d)||(c[d]=a[d]));for(var e in b)b.hasOwnProperty(e)&&(a.hasOwnProperty(e)&&a[e]===b[e]||(c[0]=a[0]));return c},get:function(){return a},clone:function(b){var c,d={};if(null===a||!wysihtml5.lang.object(a).isPlainObject())return a;for(c in a)a.hasOwnProperty(c)&&(b?d[c]=wysihtml5.lang.object(a[c]).clone(b):d[c]=a[c]);return d},isArray:function(){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(){return"[object Function]"===Object.prototype.toString.call(a)},isPlainObject:function(){return a&&"[object Object]"===Object.prototype.toString.call(a)&&!("Node"in window?a instanceof Node:a instanceof Element||a instanceof Text)},isEmpty:function(){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}}},function(){var a=/^\s+/,b=/\s+$/,c=/[&<>\t"]/g,d={"&":"&","<":"<",">":">",'"':"""," ":" "};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(a,b){var f=e.replace(c,function(a){return d[a]});return a&&(f=f.replace(/(?:\r\n|\r|\n)/g,"
")),b&&(f=f.replace(/ /gi," ")),f}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return void e(b);for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){if(b.nodeType!==wysihtml5.ELEMENT_NODE){if(b.parentNode===a)return!0;b=b.parentNode}return a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(a,b,c,d){var e=function(c){for(var e=c.target,f=3===e.nodeType?e.parentNode:e,g=a.querySelectorAll(b),h=0,i=g.length;i>h;h++)g[h].contains(f)&&d.call(g[h],c)};return a.addEventListener(c,e,!1),{stop:function(){a.removeEventListener(c,e,!1)}}}}(wysihtml5),function(a){a.dom.domNode=function(b){var c=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(c){var d=c?/^\s*$/g:/^[\r\n]*$/g;return b.nodeType===a.TEXT_NODE&&d.test(b.data)},visible:function(){var c=!/^\s*$/g.test(a.dom.getTextContent(b));return c||1===b.nodeType&&b.querySelector("img, br, hr, object, embed, canvas, input, textarea")&&(c=!0),c}},prev:function(d){var e=b.previousSibling,f=d&&d.nodeTypes?d.nodeTypes:c;return e?!a.lang.array(f).contains(e.nodeType)||d&&d.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(d):e:null},next:function(d){var e=b.nextSibling,f=d&&d.nodeTypes?d.nodeTypes:c;return e?!a.lang.array(f).contains(e.nodeType)||d&&d.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(d):e:null},lastLeafNode:function(c){var d;if(1!==b.nodeType)return b;if(d=b.lastChild,!d)return b;if(c&&c.leafClasses)for(var e=c.leafClasses.length;e--;)if(a.dom.hasClass(b,c.leafClasses[e]))return b;return a.dom.domNode(d).lastLeafNode(c)},escapeParent:function(c,d){var e,f,g,h=b;if(!a.dom.contains(c,b))throw new Error("Child is not a descendant of node.");do{for(e=h.parentNode,f=e.cloneNode(!1);e.lastChild&&e.lastChild!==h;)f.insertBefore(e.lastChild,f.firstChild);if(e!==c&&(g=e.cloneNode(!1),g.appendChild(h),h=g),e.parentNode.insertBefore(h,e.nextSibling),""!==f.innerHTML)if(/^\s+$/.test(f.innerHTML))for(;f.lastChild;)e.parentNode.insertBefore(f.lastChild,h.nextSibling);else e.parentNode.insertBefore(f,h.nextSibling);if(""===e.innerHTML)e.parentNode.removeChild(e);else if(/^\s+$/.test(e.innerHTML)){for(;e.firstChild;)e.parentNode.insertBefore(e.firstChild,e);e.parentNode.removeChild(e)}}while(e&&e!==c);d&&h&&(h.parentNode.insertBefore(d,h),d.appendChild(h))},test:function(c){var d;if(!c)return!1;if(1!==b.nodeType)return!1;if(c.query&&!b.matches(c.query))return!1;if(c.nodeName&&b.nodeName!==c.nodeName)return!1;if(c.className&&!b.classList.contains(c.className))return!1;if(c.classRegExp){var e=(b.className||"").match(c.classRegExp)||[];if(0===e.length)return!1}if(c.styleProperty&&c.styleProperty.length>0)for(var f=!1,g=Array.isArray(c.styleProperty)?c.styleProperty:[c.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),b.style[d]){if(!c.styleValue){f=!0;break}if(c.styleValue instanceof RegExp){if(b.style[d].trim().match(c.styleValue).length>0){f=!0;break}}else if(Array.isArray(c.styleValue)){if(c.styleValue.indexOf(b.style[d].trim())){f=!0;break}}else if(c.styleValue===b.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(c.attribute){var j=a.dom.getAttributes(b),k=[],l=!1;Array.isArray(c.attribute)?k=c.attribute:k[c.attribute]=c.attributeValue;for(var m in k)if(k.hasOwnProperty(m))if("undefined"==typeof k[m]){if("undefined"!=typeof j[m]){l=!0;break}}else if(j[m]===k[m]){l=!0;break}if(!l)return!1}return!0}}}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){return function(a,b,c,d){for(c=c||50;c--&&a&&"BODY"!==a.nodeName&&(!d||a!==d);){if(wysihtml5.dom.domNode(a).test(b))return a;a=a.parentNode}return null}}(),wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a,b){var c=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b&&/^\s*$/.test(a.innerText||a.textContent)||c.push(a):c=c.concat(wysihtml5.dom.getTextNodes(a,b));return c},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},function(a){a.dom.lineBreaks=function(b){function c(a){return"BR"===a.nodeName}function d(b){return c(b)?!0:"block"===a.dom.getStyle("display").from(b)?!0:!1}return{add:function(c){var e=b.ownerDocument,f=a.dom.domNode(b).next({ignoreBlankTexts:!0}),g=a.dom.domNode(b).prev({ignoreBlankTexts:!0});f&&!d(f)&&a.dom.insert(e.createElement("br")).after(b),g&&!d(g)&&a.dom.insert(e.createElement("br")).before(b)},remove:function(d){var e=a.dom.domNode(b).next({ignoreBlankTexts:!0}),f=a.dom.domNode(b).prev({ignoreBlankTexts:!0});e&&c(e)&&e.parentNode.removeChild(e),f&&c(f)&&f.parentNode.removeChild(f)}}}}(wysihtml5),wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(a,b){function c(a,b){wysihtml5.lang.object(t).merge(s).merge(b.rules).get();var c,f,g,h=b.context||a.ownerDocument||document,i=h.createDocumentFragment(),j="string"==typeof a,k=!1;for(b.clearInternals===!0&&(k=!0),c=j?wysihtml5.dom.getAsDom(a,h):a,t.selectors&&e(c,t.selectors);c.firstChild;)g=c.firstChild,f=d(g,b.cleanUp,k,b.uneditableClass),f&&i.appendChild(f),g!==f&&c.removeChild(g);if(b.unjoinNbsps)for(var l=wysihtml5.dom.getTextNodes(i),m=l.length;m--;)l[m].nodeValue=l[m].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return c.innerHTML="",c.appendChild(i),j?wysihtml5.quirks.getCorrectInnerHTML(c):c}function d(a,b,c,e){var f,g,h,i,j=a.nodeType,k=a.childNodes,l=k.length,m=p[j],n=0;if(e&&1===j&&wysihtml5.dom.hasClass(a,e))return a;if(g=m&&m(a,c),!g){if(g===!1){for(f=a.ownerDocument.createDocumentFragment(),n=l;n--;)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,f.insertBefore(h,f.firstChild)));return i=wysihtml5.dom.getStyle("display").from(a),""===i&&(i=wysihtml5.lang.array(u).contains(a.tagName)?"block":""),wysihtml5.lang.array(["block","flex","table"]).contains(i)&&f.appendChild(a.ownerDocument.createElement("br")),wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||f.appendChild(a.ownerDocument.createTextNode(" "))),f.normalize&&f.normalize(),f}return null}for(n=0;l>n;n++)k[n]&&(h=d(k[n],b,c,e),h&&(k[n]===h&&n--,g.appendChild(h)));if(b&&g.nodeName.toLowerCase()===q&&(!g.childNodes.length||/^\s*$/gi.test(g.innerHTML)&&(c||"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className)||!g.attributes.length)){for(f=g.ownerDocument.createDocumentFragment();g.firstChild;)f.appendChild(g.firstChild);return f.normalize&&f.normalize(),f}return g.normalize&&g.normalize(),g}function e(a,b){var c,d,e;for(c in b)if(b.hasOwnProperty(c)){wysihtml5.lang.object(b[c]).isFunction()?d=b[c]:"string"==typeof b[c]&&z[b[c]]&&(d=z[b[c]]),e=a.querySelectorAll(c);for(var f=e.length;f--;)d(e[f])}}function f(a,b){var c,d,e,f=t.tags,h=a.nodeName.toLowerCase(),j=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(j&&"HTML"!=j&&(h=j+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||""===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in f){if(c=f[h],!c||c.remove)return null;if(c.unwrap)return!1;c="string"==typeof c?{rename_tag:c}:c}else{if(!a.firstChild)return null;c={rename_tag:q}}if(c.one_of_type&&!g(a,t,c.one_of_type,b)){if(!c.remove_action)return null;if("unwrap"===c.remove_action)return!1;if("rename"!==c.remove_action)return null;e=c.remove_action_rename_to||q}return d=a.ownerDocument.createElement(e||c.rename_tag||h),m(a,d,c,b),i(a,d,c),a=null,d.normalize&&d.normalize(),d}function g(a,b,c,d){var e,f;if("SPAN"===a.nodeName&&!d&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(e=b.type_definitions[f],h(a,e)))return!0;return!1}function h(a,b){var c,d,e,f,g,h=a.getAttribute("class"),i=a.getAttribute("style");if(b.methods)for(var j in b.methods)if(b.methods.hasOwnProperty(j)&&y[j]&&y[j](a))return!0;if(h&&b.classes){h=h.replace(/^\s+/g,"").replace(/\s+$/g,"").split(r),c=h.length;for(var k=0;c>k;k++)if(b.classes[h[k]])return!0}if(i&&b.styles){i=i.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var l=i.length;l--;)if(g=i[l].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=wysihtml5.dom.getAttribute(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function i(a,b,c){var d,e;if(c&&c.keep_styles)for(d in c.keep_styles)if(c.keep_styles.hasOwnProperty(d)){if(e="float"===d?a.style.styleFloat||a.style.cssFloat:a.style[d],c.keep_styles[d]instanceof RegExp&&!c.keep_styles[d].test(e))continue;"float"===d?b.style[a.style.styleFloat?"styleFloat":"cssFloat"]=e:a.style[d]&&(b.style[d]=e)}}function j(a,b){var c=[];for(var d in b)b.hasOwnProperty(d)&&0===d.indexOf(a)&&c.push(d);return c}function k(a,b,c,d){var e,f=wysihtml5.lang.object(c).isFunction()?c:v[c];return f&&(e=f(b,d),"string"==typeof e)?e:!1}function l(a,b){var c,d,e,f=wysihtml5.lang.object(t.attributes||{}).clone(),g=wysihtml5.lang.object(f).merge(wysihtml5.lang.object(b||{}).clone()).get(),h={},i=wysihtml5.dom.getAttributes(a);for(c in g)if(/\*$/.test(c)){e=j(c.slice(0,-1),i);for(var l=0,m=e.length;m>l;l++)d=k(e[l],i[e[l]],g[c],a.nodeName),d!==!1&&(h[e[l]]=d)}else d=k(c,i[c],g[c],a.nodeName),d!==!1&&(h[c]=d);return h}function m(a,b,c,d){var e,f,g,h,i,j={},k=c.set_class,m=c.add_class,n=c.add_style,o=c.set_attributes,p=t.classes,q=0,s=[],u=[],v=[],y=[];if(o&&(j=wysihtml5.lang.object(o).clone()),j=wysihtml5.lang.object(j).merge(l(a,c.check_attributes)).get(),k&&s.push(k),m)for(h in m)i=x[m[h]],i&&(g=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof g&&s.push(g));if(n)for(h in n)i=w[n[h]],i&&(newStyle=i(wysihtml5.dom.getAttribute(a,h)),"string"==typeof newStyle&&u.push(newStyle));if("string"==typeof p&&"any"===p&&a.getAttribute("class"))if(t.classes_blacklist){for(y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],t.classes_blacklist[f]||v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}else j["class"]=a.getAttribute("class");else{for(d||(p["_wysihtml5-temp-placeholder"]=1,p._rangySelectionBoundary=1,p["wysiwyg-tmp-selected-cell"]=1),y=a.getAttribute("class"),y&&(s=s.concat(y.split(r))),e=s.length;e>q;q++)f=s[q],p[f]&&v.push(f);v.length&&(j["class"]=wysihtml5.lang.array(v).unique().join(" "))}j["class"]&&d&&(j["class"]=j["class"].replace("wysiwyg-tmp-selected-cell",""),/^\s*$/g.test(j["class"])&&delete j["class"]),u.length&&(j.style=wysihtml5.lang.array(u).unique().join(" "));for(h in j)try{b.setAttribute(h,j[h])}catch(z){}j.src&&("undefined"!=typeof j.width&&b.setAttribute("width",j.width),"undefined"!=typeof j.height&&b.setAttribute("height",j.height))}function n(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")+b.data.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")}function o(a){return t.comments?a.ownerDocument.createComment(a.nodeValue):void 0}var p={1:f,3:n,8:o},q="span",r=/\s+/,s={tags:{},classes:{}},t={},u=["ADDRESS","BLOCKQUOTE","CENTER","DIR","DIV","DL","FIELDSET","FORM","H1","H2","H3","H4","H5","H6","ISINDEX","MENU","NOFRAMES","NOSCRIPT","OL","P","PRE","TABLE","UL"],v={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:|tel:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b,c){return b?b.replace(a,""):"IMG"===c?"":null}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),dimension:function(){var a=/\D*(\d+)(\.\d+)?\s?(%)?\D*/;return function(b){return b=(b||"").replace(a,"$1$2$3"),b||null}}(),any:function(){return function(a){return a?a:null}}()},w={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},x={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},y={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()},z={unwrap:function(a){wysihtml5.dom.unwrap(a)},remove:function(a){a.parentNode.removeChild(a)}};return c(a,b)},wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode&&a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l,m=a.ownerDocument,n=m.createDocumentFragment(),o=wysihtml5.dom.domNode(a).prev({ignoreBlankTexts:!0}),p=wysihtml5.dom.domNode(a).next({ignoreBlankTexts:!0}),q=a.lastElementChild||a.lastChild;if(e)for(!o||b(o)||c(o)||d(n);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild,l=k===q;f=k.firstChild;)h=f===g,i=(!l||p&&!b(p))&&h&&!b(f)&&!c(f),n.appendChild(f),i&&d(n);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)n.appendChild(f);else{for(j=m.createElement("p");f=k.firstChild;)j.appendChild(f);n.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(n,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.config.className||(this.config.className="wysihtml5-sandbox"),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className=this.config.className,a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}a.polyfills&&a.polyfills(h,i),this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView||this.element.ownerDocument.parentWindow},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.config.className||(this.config.className="wysihtml5-sandbox"),d?this.element=this._bindElement(d):this.element=this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className=this.config.className,this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!==a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(a){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d,e){var f=e||"wysihtml5-placeholder",g=function(){var b=c.element.offsetWidth>0&&c.element.offsetHeight>0;c.hasPlaceholderSet()&&(c.clear(),c.element.focus(),b&&setTimeout(function(){var a=c.selection.getSelection();a.focusNode&&a.anchorNode||c.selection.selectNode(c.element.firstChild||c.element)},0)),c.placeholderSet=!1,a.removeClass(c.element,f)},h=function(){c.isEmpty()&&!c.placeholderSet&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,f))};b.on("set_placeholder",h).on("unset_placeholder",g).on("focus:composer",g).on("paste:composer",g).on("blur:composer",h),h()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&wysihtml5.dom.isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},wysihtml5.dom.getAttributes=function(a){var b,c=!wysihtml5.browser.supportsGetAttributeCorrectly(),d=a.nodeName,e=[];for(b in a.attributes)(a.attributes.hasOwnProperty&&a.attributes.hasOwnProperty(b)||!a.attributes.hasOwnProperty&&Object.prototype.hasOwnProperty.call(a.attributes,b))&&a.attributes[b].specified&&("IMG"==d&&"src"==a.attributes[b].name.toLowerCase()&&wysihtml5.dom.isLoadedImage(a)===!0?e.src=a.src:wysihtml5.lang.array(["rowspan","colspan"]).contains(a.attributes[b].name.toLowerCase())&&c?1!==a.attributes[b].value&&(e[a.attributes[b].name]=a.attributes[b].value):e[a.attributes[b].name]=a.attributes[b].value);return e},wysihtml5.dom.isLoadedImage=function(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{query:"table"})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f;
+},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode("Â ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{query:"tr"})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{query:"tr"})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{query:"tr"}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{query:"tr"});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{query:"tr"});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{query:"tr"}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.dom.unwrap=function(a){var b=[];if(a.parentNode){for(;a.lastChild;)b.unshift(a.lastChild),wysihtml5.dom.insert(a.lastChild).after(a);a.parentNode.removeChild(a)}return b},wysihtml5.dom.getPastedHtml=function(a){var b;return a.clipboardData&&(wysihtml5.lang.array(a.clipboardData.types).contains("text/html")?b=a.clipboardData.getData("text/html"):wysihtml5.lang.array(a.clipboardData.types).contains("text/plain")&&(b=wysihtml5.lang.string(a.clipboardData.getData("text/plain")).escapeHTML(!0,!0))),b},wysihtml5.dom.getPastedHtmlWithDiv=function(a,b){var c=a.selection.getBookmark(),d=a.element.ownerDocument,e=d.createElement("DIV"),f=a.getScrollPos();d.body.appendChild(e),e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.position="absolute",e.style.top=f.y+"px",e.style.left=f.x+"px",e.setAttribute("contenteditable","true"),e.focus(),setTimeout(function(){var d;a.selection.setBookmark(c),d=e.innerHTML,d&&/^
$/i.test(d.trim())&&(d=!1),b(d),e.parentNode.removeChild(e)},0)},wysihtml5.dom.removeInvisibleSpaces=function(a){for(var b=wysihtml5.dom.getTextNodes(a),c=b.length;c--;)b[c].nodeValue=b[c].nodeValue.replace(wysihtml5.INVISIBLE_SPACE_REG_EXP,"")},wysihtml5.quirks.cleanPastedHTML=function(){var a=function(a){var b=wysihtml5.lang.string(a).trim(),c=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");return new RegExp("^((?!^"+c+"$).)*$","i")},b=function(b,c){var d,e,f=wysihtml5.lang.object(b).clone(!0);for(d in f.tags)if(f.tags.hasOwnProperty(d)&&f.tags[d].keep_styles)for(e in f.tags[d].keep_styles)f.tags[d].keep_styles.hasOwnProperty(e)&&c[e]&&(f.tags[d].keep_styles[e]=a(c[e]));return f},c=function(a,b){var c;if(!a)return null;for(var d=0,e=a.length;e>d;d++)if(a[d].condition||(c=a[d].set),a[d].condition&&a[d].condition.test(b))return a[d].set;return c};return function(a,d){var e,f={color:wysihtml5.dom.getStyle("color").from(d.referenceNode),fontSize:wysihtml5.dom.getStyle("font-size").from(d.referenceNode)},g=b(c(d.rules,a)||{},f);return e=wysihtml5.dom.parse(a,{rules:g,cleanUp:!0,context:d.referenceNode.ownerDocument,uneditableClass:d.uneditableClass,clearInternals:!0,unjoinNbsps:!0})}}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return a.addEventListener("mousedown",n),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{query:"table"},!1,a),l.table&&(e(),k.addClass(c,m),a.addEventListener("mousemove",g),a.addEventListener("mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==d&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(c){a.removeEventListener("mousemove",g),a.removeEventListener("mouseup",h),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){a.ownerDocument.addEventListener("click",o)}function j(c,d){l.start=c,l.end=d,l.table=k.getParentElement(l.start,{query:"table"},!1,a),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=function(b){var c=wysihtml5.dom.getParentElement(b.target,{query:"td, th"},!1,a);c&&d(c)},o=function(c){a.ownerDocument.removeEventListener("click",o),k.getParentElement(c.target,{query:"table"},!1,a)!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))};return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.win=this.composer.win,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},createTemporaryCaretSpaceAfter:function(b){var c=this.doc.createElement("span"),d=this.doc.createTextNode(a.INVISIBLE_SPACE),e=function(b){var d;this.contain.removeEventListener("mouseup",e),this.contain.removeEventListener("keydown",g),this.contain.removeEventListener("touchstart",e),this.contain.removeEventListener("focus",e),this.contain.removeEventListener("blur",e),this.contain.removeEventListener("paste",f),this.contain.removeEventListener("drop",f),this.contain.removeEventListener("beforepaste",f),c&&c.parentNode&&(c.innerHTML=c.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),/[^\s]+/.test(c.innerHTML)?(d=c.lastChild,a.dom.unwrap(c),this.setAfter(d)):c.parentNode.removeChild(c))}.bind(this),f=function(a){c&&c.parentNode&&setTimeout(e,0)},g=function(a){8===a.which||91===a.which||17===a.which||86===a.which&&(a.ctrlKey||a.metaKey)||e()};return c.className="_wysihtml5-temp-caret-fix",c.style.position="absolute",c.style.display="block",c.style.minWidth="1px",c.style.zIndex="99999",c.appendChild(d),b.parentNode.insertBefore(c,b.nextSibling),this.setBefore(d),this.contain.addEventListener("mouseup",e),this.contain.addEventListener("keydown",g),this.contain.addEventListener("touchstart",e),this.contain.addEventListener("focus",e),this.contain.addEventListener("blur",e),this.contain.addEventListener("paste",f),this.contain.addEventListener("drop",f),this.contain.addEventListener("beforepaste",f),c},setAfter:function(b,c,d){var e,f=this.win,g=rangy.createRange(this.doc),h=function(){var d=b.parentNode,g=d?d.childNodes[d.childNodes.length-1]:null;if(!e||g===b&&1===b.nodeType&&"block"===f.getComputedStyle(b).display)if(c){var h=this.doc.createTextNode(a.INVISIBLE_SPACE);b.parentNode.insertBefore(h,b.nextSibling),this.selectNode(h),setTimeout(function(){h&&h.parentNode&&h.parentNode.removeChild(h)},0)}else this.createTemporaryCaretSpaceAfter(b)}.bind(this);if(g.setStartAfter(b),g.setEndAfter(b),document.activeElement&&document.activeElement===this.composer.element)e=this.setSelection(g),h(),d&&d(e);else{var i=this.composer.getScrollPos();this.composer.element.focus(),this.composer.setScrollPos(i),setTimeout(function(){e=this.setSelection(g),h(),d&&d(e)}.bind(this),0)}},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},fixSelBorders:function(){var a=this.getRange();d(a),this.setSelection(a)},getSelectedOwnNodes:function(a){for(var b=this.getOwnRanges(),c=[],d=0,e=b.length;e>d;d++)c.push(b[d].commonAncestorContainer||this.doc.body);return c},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},filterElements:function(a){for(var b,c=this.getOwnRanges(),d=[],e=0,f=c.length;f>e;e++)b=c[e].getNodes([1],function(b){return a(b,c[e])}),d=d.concat(b);return d},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){var b,c,d,e,f=this.getRange();if(this.unselectableClass){(b=a.dom.getParentElement(f.startContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setStartBefore(b),(c=a.dom.getParentElement(f.endContainer,{query:"."+this.unselectableClass},!1,this.contain))&&f.setEndAfter(c),d=f.getNodes([1],function(b){return a.dom.hasClass(b,this.unselectableClass)}.bind(this));for(var g=d.length;g--;)try{e=new CustomEvent("wysihtml5:uneditable:delete"),d[g].dispatchEvent(e)}catch(h){}}f.deleteContents(),this.setSelection(f)},getPreviousNode:function(b,c){var d;if(!b){var e=this.getSelection();b=e.anchorNode}if(b===this.contain)return!1;var f,g=b.previousSibling;return g===this.contain?!1:(g&&3!==g.nodeType&&1!==g.nodeType?g=this.getPreviousNode(g,c):g&&3===g.nodeType&&/^\s*$/.test(g.textContent)?g=this.getPreviousNode(g,c):c&&g&&1===g.nodeType?(d=a.dom.getStyle("display").from(g),a.lang.array(["BR","HR","IMG"]).contains(g.nodeName)||a.lang.array(["block","inline-block","flex","list-item","table"]).contains(d)||!/^[\s]*$/.test(g.innerHTML)||(g=this.getPreviousNode(g,c))):g||b===this.contain||(f=b.parentNode,f!==this.contain&&(g=this.getPreviousNode(f,c))),g!==this.contain?g:!1)},getSelectionParentsByTag:function(b){for(var c,d=this.getSelectedOwnNodes(),e=[],f=0,g=d.length;g>f;f++)c=d[f].nodeName&&"LI"===d[f].nodeName?d[f]:a.dom.getParentElement(d[f],{query:"li"},!1,this.contain),c&&e.push(c);return e.length?e:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var b=rangy.createRange(this.doc),c=this.getSelection(),d=this.getRange(),e=d.startContainer;return e?e.nodeType===a.TEXT_NODE?this.isCollapsed()&&e.nodeType===a.TEXT_NODE&&/^\s*$/.test(e.data.substr(0,d.startOffset)):(b.selectNodeContents(this.getRange().commonAncestorContainer),b.collapse(!0),this.isCollapsed()&&(b.startContainer===c.anchorNode||b.endContainer===c.anchorNode)&&b.startOffset===c.anchorOffset):void 0},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b&&d?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{query:b},1)):d?0===e&&!this.getPreviousNode(d,!0):void 0},getBeforeSelection:function(b){var c,d,e=this.getSelection(),f=e.isBackwards()?e.focusNode:e.anchorNode,g=e.isBackwards()?e.focusOffset:e.anchorOffset,h=this.createRange();if(d=a.dom.getParentElement(f,{query:"._wysihtml5-temp-caret-fix"},1),d&&(f=d.parentNode,g=Array.prototype.indexOf.call(f.childNodes,d)),f){if(g>0)return 3===f.nodeType?(h.setStart(f,0),h.setEnd(f,g),{type:"text",range:h,offset:g,node:f}):(h.setStartBefore(f.childNodes[0]),c=f.childNodes[g-1],h.setEndAfter(c),{type:"element",range:h,offset:g,node:c});if(h.setStartAndEnd(f,0),b){var i=this.getPreviousNode(f,!0),j=i?a.dom.domNode(i).lastLeafNode():null;if(j)return{type:"leafnode",range:h,offset:g,node:j}}return{type:"none",range:h,offset:g,node:f}}return null},executeAndRestoreRangy:function(a,b){var c=rangy.saveSelection(this.win);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b,c=(rangy.createRange(this.doc),this.doc.createElement("DIV")),d=this.doc.createDocumentFragment();for(c.innerHTML=a,b=c.lastChild;c.firstChild;)d.appendChild(c.firstChild);this.insertNode(d),b&&this.setAfter(b)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},splitElementAtCaret:function(b,c){var d,e,f,g,h,i=this.getSelection();if(i.rangeCount>0){d=i.getRangeAt(0).cloneRange(),d.setEndAfter(b),e=d.extractContents(),h=e.childNodes;for(var j=h.length;j--;)a.dom.domNode(h[j]).is.visible()||e.removeChild(h[j]);b.parentNode.insertBefore(e,b.nextSibling),c?(f=c.firstChild||c,g=c.lastChild||c,b.parentNode.insertBefore(c,b.nextSibling),f&&g&&(d.setStartBefore(f),d.setEndAfter(g),this.setSelection(d))):(d.setStartAfter(b),d.setEndAfter(b)),a.dom.domNode(b).is.visible()||(""===a.dom.getTextContent(b)?b.parentNode.removeChild(b):b.parentNode.replaceChild(this.doc.createTextNode(" "),b))}},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.win.getSelection();a.modify("move","left","lineboundary"),a.modify("extend","right","lineboundary")},toLineBoundary:function(b,c){if(c="undefined"==typeof c?!1:c,a.browser.supportsSelectionModify()){var d=this.win.getSelection();d.modify("extend",b,"lineboundary"),c&&("left"===b?d.collapseToStart():"right"===b&&d.collapseToEnd())}},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes(Array.isArray(a)?a:[a],b):[]},getOwnNodes:function(a,b,c){for(var d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)d[f]&&(c&&d[f].splitBoundaries(),e=e.concat(d[f].getNodes(Array.isArray(a)?a:[a],b)));return e},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;
+c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){var b=e.compareDocumentPosition(a.startContainer,a.endContainer);return 0==a.endOffset&&4&b},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.win)},setSelection:function(a){var b=rangy.getSelection(this.win);return b.setSingleRange(a),b&&b.anchorNode&&b.focusNode?b:null},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},getHtml:function(){return this.getSelection().toHtml()},getPlainText:function(){return this.getSelection().toString()},isEndToEndInNode:function(b){var c=this.getRange(),d=c.commonAncestorContainer,e=c.startContainer,f=c.endContainer;if(d.nodeType===a.TEXT_NODE&&(d=d.parentNode),e.nodeType===a.TEXT_NODE&&!/^\s*$/.test(e.data.substr(c.startOffset)))return!1;if(f.nodeType===a.TEXT_NODE&&!/^\s*$/.test(f.data.substr(c.endOffset)))return!1;for(;e&&e!==d;){if(e.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,e))return!1;if(a.dom.domNode(e).prev({ignoreBlankTexts:!0}))return!1;e=e.parentNode}for(;f&&f!==d;){if(f.nodeType!==a.TEXT_NODE&&!a.dom.contains(d,f))return!1;if(a.dom.domNode(f).next({ignoreBlankTexts:!0}))return!1;f=f.parentNode}return a.lang.array(b).contains(d.nodeName)?d:!1},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(c,d,e,f){return e?i(c,e):f?a.dom.hasClass(c,f):b.dom.arrayContains(d,c.tagName.toLowerCase())}function k(a,b,c,d){for(var e=a.length;e--;)if(!j(a[e],b,c,d))return!1;return a.length?!0:!1}function l(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function m(a,b){return a.className.replace(u," ")==b.className.replace(u," ")}function n(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}function o(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function p(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},s.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},getMatchingAncestor:function(a){var b=this.getAncestorWithClass(a),c=!1;return b?this.cssStyle&&(c="class"):(b=this.getAncestorWithStyle(a),b&&(c="style")),{element:b,type:c}},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new r(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new r(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&m(a,c)&&o(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&p(b.endContainer,b.endOffset)&&(q(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&p(b.startContainer,b.startOffset)&&(f=q(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===l(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&n(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getMatchingAncestor(g).element||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f=b.length;f--;){if(c=b[f].getNodes([a.TEXT_NODE]),c.length)b[f].splitBoundaries(),c=b[f].getNodes([a.TEXT_NODE]);else{var g=b[f].endContainer.ownerDocument,h=g.createTextNode(a.INVISIBLE_SPACE);b[f].insertNode(h),b[f].selectNode(h),c=[h]}for(var i=0,j=c.length;j>i;++i)b[f].isValid()&&(d=c[i],e=this.getMatchingAncestor(d),"style"===e.type?this.undoToTextNode(d,b[f],!1,e.element):e.element&&this.undoToTextNode(d,b[f],e.element));1==j?this.selectNode(b[f],c[0]):(b[f].setStart(c[0],0),d=c[c.length-1],b[f].setEnd(d,d.length),this.normalize&&this.postApply(c,b[f]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f="full",g=b.length;g--;){if(d=b[g].getNodes([a.TEXT_NODE]),!d.length)return c=this.getMatchingAncestor(b[g].startContainer).element,c?{elements:[c],coverage:f}:!1;for(var h,i=0,j=d.length;j>i;++i)h=this.getTextSelectedByRange(d[i],b[g]),c=this.getMatchingAncestor(d[i]).element,c&&""!=h?(e.push(c),1===a.dom.getTextNodes(c,!0).length?f="full":"full"===f&&(f="inline")):c||(f="partial")}return e.length?{elements:e,coverage:f}:!1},toggleRange:function(a){var b,c=this.isAppliedToRange(a);c?"full"===c.coverage?this.undoToRange(a):"inline"===c.coverage?(b=k(c.elements,this.tagNames,this.cssStyle,this.cssClass),this.undoToRange(a),b||this.applyToRange(a)):(k(c.elements,this.tagNames,this.cssStyle,this.cssClass)||this.undoToRange(a),this.applyToRange(a)):this.applyToRange(a)}},a.selection.HTMLApplier=s}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.composer.hasPlaceholderSet()&&!wysihtml5.lang.array(["styleWithCSS","enableObjectResizing","enableInlineTableEditing"]).contains(a)&&(this.composer.element.innerHTML="",this.composer.selection.selectNode(this.composer.element)),this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},remove:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.remove;return e?(d.unshift(this.composer),e.apply(c,d)):void 0},state:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.state;if(e)return d.unshift(this.composer),e.apply(c,d);try{return this.doc.queryCommandState(a)}catch(f){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),function(a){var b={nodeName:"B",toggle:!0};a.commands.bold={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){function b(b){return a.lang.object({}).merge(c).merge({attribute:b}).get()}var c={nodeName:"A",toggle:!1};a.commands.createLink={exec:function(c,d,e){var f=b(e);if(c.selection.isCollapsed()&&!this.state(c,d)){var g=c.doc.createTextNode(f.attribute.href);c.selection.insertNode(g),c.selection.selectNode(g)}a.commands.formatInline.exec(c,d,f)},state:function(b,d){return a.commands.formatInline.state(b,d,c)}}}(wysihtml5),function(a){var b={nodeName:"A"};a.commands.removeLink={exec:function(c,d){a.commands.formatInline.remove(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-font-size-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-font-size-"+d})}}}(wysihtml5),function(a){a.commands.fontSizeStyle={exec:function(b,c,d){d=d.size||d,/^\s*$/.test(d)||a.commands.formatInline.exec(b,c,{styleProperty:"fontSize",styleValue:d,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"fontSize"})},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.exec(c,d,{className:"wysiwyg-color-"+e,classRegExp:b,toggle:!0})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{className:"wysiwyg-color-"+d})}}}(wysihtml5),function(a){a.commands.foreColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"color",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"color"})},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){a.commands.bgColorStyle={exec:function(b,c,d){var e,f=a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color");f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"backgroundColor",styleValue:e}))},state:function(b,c,d){var e,f=d?a.quirks.styleParser.parseColor("background-color:"+(d.color||d),"background-color"):null;return f&&(e=(1===f[3]?"rgb("+[f[0],f[1],f[2]].join(", "):"rgba("+f.join(", "))+")"),a.commands.formatInline.state(b,c,{styleProperty:"backgroundColor",styleValue:e})},remove:function(b,c){return a.commands.formatInline.remove(b,c,{styleProperty:"backgroundColor"})},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b){for(var c=b.element,d=c.querySelectorAll(n),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML&&f[g].parentNode.removeChild(f[g])}function c(a){return a.config.useLineBreaks?"DIV":"P"}function d(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?n:m)&&(e=d),d=d.parentNode;return e}function e(a,b){for(var c,d,e,f=a,g=null;f&&b&&f!==b;)1===f.nodeType&&f.matches(o)&&(d=f,null===g?(g=f.cloneNode(!1),c=g):(e=f.cloneNode(!1),e.appendChild(g),g=e)),f=f.parentNode;return{parent:d,outerNode:g,innerNode:c}}function f(b,d,e){return b||(b=e.doc.createElement(d.nodeName||c(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),d.nodeName&&b.nodeName!==d.nodeName&&(b=l.renameElement(b,d.nodeName)),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),d.className&&b.classList.add(d.className),d.styleProperty&&"undefined"!=typeof d.styleValue&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=d.styleValue),b}function g(b,d,e){var f;d.styleProperty&&(b.style[a.browser.fixStyleKey(d.styleProperty)]=""),d.className&&b.classList.remove(d.className),d.classRegExp&&(b.className=b.className.replace(d.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),d.nodeName&&b.nodeName===d.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=l.renameElement(b,c(e)):l.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function h(b){for(var c=b.querySelectorAll(n)||[],d=c.length;d--;)c[d].nextSibling&&1===c[d].nextSibling.nodeType&&"BR"===c[d].nextSibling.nodeName||""!==(c[d].innerHTML||c[d].nodeValue).trim()&&c[d].parentNode.insertBefore(c[d].ownerDocument.createElement("BR"),c[d].nextSibling),a.dom.unwrap(c[d])}function i(a,b){var c;return a.startContainer&&1===a.startContainer.nodeType&&a.startContainer===a.endContainer?void(a.startContainer.firstChild===a.startContainer.lastChild&&1===a.endOffset&&a.startContainer!==b.element&&(a.setStartBefore(a.startContainer),a.setEndAfter(a.endContainer))):a.startContainer&&1===a.startContainer.nodeType&&3===a.endContainer.nodeType?void(a.startContainer.firstChild===a.endContainer&&1===a.endOffset&&a.startContainer!==b.element&&a.setEndAfter(a.startContainer)):a.endContainer&&1===a.endContainer.nodeType&&3===a.startContainer.nodeType?void(a.endContainer.firstChild===a.startContainer&&1===a.endOffset&&a.endContainer!==b.element&&a.setStartBefore(a.endContainer)):a.startContainer&&3===a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.startContainer.parentNode?void(a.startContainer.parentNode.firstChild===a.startContainer&&a.endOffset==a.endContainer.length&&0===a.startOffset&&(c=a.startContainer.parentNode,c!==b.element&&(a.setStartBefore(c),a.setEndAfter(c)))):void 0}function j(b,g,j,k){var l=g?a.lang.object(g).clone(!0):null;l&&(l.nodeName=l.nodeName||j||c(k)),i(b,k);var o,p,q,r=b.cloneRange(),s=r.startContainer,t=r.extractContents(),u=k.doc.createDocumentFragment(),v=!l||"BLOCKQUOTE"===j&&l.nodeName&&"BLOCKQUOTE"===l.nodeName,w=d(s,k.element,v);if(g&&g.nodeName&&"BLOCKQUOTE"===g.nodeName){var x=f(null,g,k);x.appendChild(t),u.appendChild(x),p=[x]}else{if(t.firstChild)for(;t.firstChild;)if(1==t.firstChild.nodeType&&t.firstChild.matches(n))if(g)f(t.firstChild,g,k),t.firstChild.matches(m)&&h(t.firstChild),u.appendChild(t.firstChild);else{h(t.firstChild),q=a.dom.unwrap(t.firstChild);for(var y=0,z=q.length;z>y;y++)u.appendChild(q[y]);u.childNodes.length>0&&u.appendChild(k.doc.createElement("BR"))}else if(g){for(o=f(null,l,k);t.firstChild&&(1!==t.firstChild.nodeType||!t.firstChild.matches(n));)1==t.firstChild.nodeType&&o.matches(m)&&h(t.firstChild),o.appendChild(t.firstChild);u.appendChild(o)}else 1==t.firstChild.nodeType&&h(t.firstChild),u.appendChild(t.firstChild);else u.appendChild(f(null,g,k));p=a.lang.array(u.childNodes).get()}if(w)k.selection.splitElementAtCaret(w,u);else{var A=e(s,k.element);if(A.outerNode&&A.innerNode&&A.parent){if(1===u.childNodes.length){for(;u.firstChild.firstChild;)A.innerNode.appendChild(u.firstChild.firstChild);u.firstChild.appendChild(A.outerNode)}k.selection.splitElementAtCaret(A.parent,u)}else r.insertNode(u)}return p}function k(b,c){var d=a.dom.getParentElement(b,{query:n},null,c.element);return d?d.nodeName:null}var l=a.dom,m="h1, h2, h3, h4, h5, h6, p, pre",n="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",o="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u";a.commands.formatBlock={exec:function(c,d,e){var f,h,i,l,m,o=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(c,d,e))){l=rangy.saveSelection(c.win);for(var p=0,q=m.length;q>p;p++)g(m[p],e,c)}if(!m){c.selection.isCollapsed()&&(i=a.dom.getParentElement(c.selection.getOwnRanges()[0].startContainer,{query:n},null,c.element),i?(l=rangy.saveSelection(c.win),h=c.selection.createRange(),h.selectNode(i),c.selection.setSelection(h)):c.isEmpty()||(l=rangy.saveSelection(c.win),c.selection.selectLine())),f=c.selection.getOwnRanges();for(var r=f.length;r--;)o=o.concat(j(f[r],e,k(f[r].startContainer,c),c))}b(c),l?rangy.restoreSelection(l):(h=c.selection.createRange(),h.setStartBefore(o[0]),h.setEndAfter(o[o.length-1]),c.selection.setSelection(h)),a.dom.removeInvisibleSpaces(c.element)},state:function(b,c,d){"string"==typeof d&&(d={query:d});for(var e,f=b.selection.filterElements(function(b){return a.dom.domNode(b).test(d||{query:n})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=l.getParentElement(g[h],d||{query:n},null,b.element),e&&-1===f.indexOf(e)&&f.push(e);return 0===f.length?!1:f}}}(wysihtml5),function(a){a.commands.formatCode={exec:function(b,c,d){var e,f,g,h=this.state(b);h?b.selection.executeAndRestore(function(){e=h.querySelector("code"),a.dom.replaceWithChildNodes(h),e&&a.dom.replaceWithChildNodes(e)}):(f=b.selection.getRange(),g=f.extractContents(),h=b.doc.createElement("pre"),e=b.doc.createElement("code"),d&&(e.className=d),h.appendChild(e),e.appendChild(g),f.insertNode(h),b.selection.selectNode(h))},state:function(b){var c=b.selection.getSelectedNode();return c&&c.nodeName&&"PRE"==c.nodeName&&c.firstChild&&c.firstChild.nodeName&&"CODE"==c.firstChild.nodeName?c:a.dom.getParentElement(c,{query:"pre code"})}}}(wysihtml5),function(a){function b(a){return/^\s*$/.test(a.className)}function c(a){return!a.getAttribute("style")||/^\s*$/.test(a.getAttribute("style"))}function d(b){var c=a.dom.getAttributes(b);return a.lang.object(c).isEmpty()}function e(b,c){var d,e,f,g;return 1!==b.nodeType||1!==c.nodeType?!1:b.nodeName!==c.nodeName?!1:(d=b.className.trim().replace(/\s+/g," ").split(" "),e=c.className.trim().replace(/\s+/g," ").split(" "),a.lang.array(d).without(e).length>0?!1:(f=a.dom.getAttributes(b),g=a.dom.getAttributes(c),f.length===g.length&&a.lang.object(a.lang.object(f).difference(g)).isEmpty()?!0:!1))}function f(b,c){var d=c&&c.nodeName||F,e=b.ownerDocument.createElement(d);if(c.classRegExp&&(e.className=e.className.replace(c.classRegExp,"")),c.className&&e.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(e.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),c.attribute)if("object"==typeof c.attribute)for(var f in c.attribute)c.attribute.hasOwnProperty(f)&&e.setAttribute(f,c.attribute[f]);else"undefined"!=typeof c.attributeValue&&e.setAttribute(c.attribute,c.attributeValue);return e}function g(a,b){for(var c in a)if(a.hasOwnProperty(c)&&(void 0===typeof b[c]||b[c]!==a[c]))return!1;return!0}function h(b,c,d){var e,f=a.dom.getAttributes(b),h=g(c,f);a.lang.object(f).difference(c);if(h&&d!==!1)for(e in c)c.hasOwnProperty(e)&&b.removeAttribute(e);else for(e in c)c.hasOwnProperty(e)&&b.setAttribute(e,c[e])}function i(e,f){var g,i,j,k,l;if(f.className&&(f.toggle!==!1&&e.classList.contains(f.className)?e.classList.remove(f.className):e.classList.add(f.className),b(e)&&e.removeAttribute("class")),f.styleProperty&&(f.toggle!==!1&&e.style[a.browser.fixStyleKey(f.styleProperty)].trim().replace(/, /g,",")===f.styleValue?e.style[a.browser.fixStyleKey(f.styleProperty)]="":e.style[a.browser.fixStyleKey(f.styleProperty)]=f.styleValue),c(e)&&e.removeAttribute("style"),f.attribute&&("object"==typeof f.attribute?k=f.attribute:(k={},k[f.attribute]=f.attributeValue||""),h(e,k,f.toggle)),l=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,f.nodeName&&a.dom.domNode(e).test({query:l})||!f.nodeName&&e.nodeName===F)if(b(e)&&c(e)&&d(e))a.dom.unwrap(e);else if(!f.nodeName){i=e.ownerDocument.createElement(F),g=a.dom.getAttributes(e);for(j in g)g.hasOwnProperty(j)&&i.setAttribute(j,g[j]);for(;e.firstChild;)i.appendChild(e.firstChild);e.parentNode.insertBefore(i,e),e.parentNode.removeChild(e)}}function j(b,c){var d=[];return b.isCollapsed()||(d=d.concat(b.getOwnNodes([3],function(b){return!a.dom.domNode(b).is.emptyTextNode()},c))),d}function k(a,b,c,d){var e=a,f=d?b:l(b);do{if(1===e.nodeType&&m(e,f))return e;e=e.parentNode}while(e&&e!==c);return null}function l(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function m(b,c){var d;if(c.nodeName){var e=H[c.nodeName.toLowerCase()]||c.nodeName.toLowerCase();return a.dom.domNode(b).test({query:e})}return d=a.lang.object(c).clone(),d.query=G,a.dom.domNode(b).test(d)}function n(b,c){var d=document.documentElement||document.body,e=d.scrollTop,f=d.scrollLeft;rangy.getSelection(b.win);rangy.getSelection(b.win).removeAllRanges();try{rangy.getSelection(b.win).addRange(c)}catch(g){}b.doc.activeElement&&a.dom.contains(b.element,b.doc.activeElement)||(b.element.focus(),d.scrollTop=e,d.scrollLeft=f,rangy.getSelection(b.win).addRange(c))}function o(a,b){var c=rangy.createRange(b.doc),d=a[a.length-1];a[0]&&d&&(c.setStart(a[0],0),c.setEnd(d,d.length),n(b,c))}function p(a,b,c,d){var e=rangy.createRange(a.doc);b&&(e.setStart(b,c),e.setEnd(b,"undefined"!=typeof d?d:c),n(a,e))}function q(a,b,c){var d,e,f,g=j(a.selection),h=[],i=!1;if(0===g.length&&a.selection.isCollapsed()){if(f=a.selection.getSelection().anchorNode,!f)return{nodes:[],partial:!1};3===f.nodeType&&(g=[f])}g.length||(e=a.selection.getOwnRanges()[0],e&&(g=[e.endContainer]));for(var l=0,m=g.length;m>l;l++)d=k(g[l],b,a.element,c),d?h.push(d):i=!0;return{nodes:h,partial:i}}function r(a){var b,c,d,e;return a&&(b=a.anchorNode,c=a.anchorOffset,b&&3===b.nodeType&&c>0&&c0&&/\w/.test(c.data[g-1]);)g--;for(;h0&&o(b,a),u(q(a,c).nodes),b.length>0&&o(b,a)}function w(a,b,c,d){p(a,b,c),u(q(a,d).nodes),p(a,b,c)}function x(a,b){var c=f(a,b);a.parentNode.insertBefore(c,a),c.appendChild(a)}function y(b,c,d){var e,f=c.element,g=k(b,d,f);g&&(e=g.cloneNode(!1),a.dom.domNode(b).escapeParent(g,e),i(e,d))}function z(b,c,d){var e=c.element,f=k(b,d,e);f&&a.dom.domNode(b).escapeParent(f)}function A(a,b,c){var d=f(a.endContainer,c);a.surroundContents(d),b.selection.selectNode(d)}function B(b,c,d,e){var f,g,h,j,l=q(b,e,!0),m=b.selection.getSelection();if(c.length){if(l.partial||e.toggle===!1)for(j=c.length;j--;)k(c[j],e,b.element)&&y(c[j],b,e),k(c[j],e,b.element)||x(c[j],e);else for(j=c.length;j--;)y(c[j],b,e);v(b,c,e)}else if(e.toggle!==!1)if(r(m))f=s(m),g=f.textNode,y(f.textNode,b,e),w(b,f.textNode,f.wordOffset,e);else{g=b.doc.createTextNode(a.INVISIBLE_SPACE),h=d.nodes[0].cloneNode(!1),h.appendChild(g),b.selection.splitElementAtCaret(d.nodes[0],h),i(h,e),v(b,[g],e);var n=b.selection.getSelection();if(n.anchorNode&&n.focusNode)try{n.collapseToEnd()}catch(o){}}else for(j=d.nodes.length;j--;)i(d.nodes[j],e)}function C(b,c,d,e){var f,g,h,i=b.selection.getSelection();if(c.length){for(h=c.length;h--;)z(c[h],b,e);v(b,c,e)}else{for(f=i.anchorNode,g=i.anchorOffset,h=d.nodes.length;h--;)a.dom.unwrap(d.nodes[h]);w(b,f,g,e)}}function D(a,b,c){var d,e,f=a.selection.getSelection();if(b.length){for(e=b.length;e--;)x(b[e],c);v(a,b,c)}else if(r(f))d=s(f),x(d.textNode,c),w(a,d.textNode,d.wordOffset,c);else{var g=a.selection.getOwnRanges()[0];g&&A(g,a,c)}}function E(a){return a="string"==typeof a?{nodeName:a}:a,a.nodeName&&(a.nodeName=a.nodeName.toUpperCase()),a}var F="SPAN",G="b, big, i, small, tt, abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var, a, bdo, br, q, span, sub, sup, button, label, textarea, input, select, u",H={b:"b, strong",strong:"b, strong",em:"em, i",i:"em, i"};a.commands.formatInline={exec:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0?B(a,d,e,c):D(a,d,c),a.element.normalize()},remove:function(a,b,c){c=E(c),a.element.normalize();var d=j(a.selection,!0),e=q(a,c);e.nodes.length>0&&C(a,d,e,c),a.element.normalize()},state:function(a,b,c){c=E(c);var d=q(a,c,!0).nodes;return 0===d.length?!1:d}}}(wysihtml5),function(a){var b={nodeName:"BLOCKQUOTE",toggle:!0};a.commands.insertBlockQuote={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}}}(wysihtml5),function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i&&!e.src)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);if(i)for(var j in e)e.hasOwnProperty(j)&&i.setAttribute("className"===j?"class":j,e[j]);else{i=h.createElement(b);for(var k in e)i.setAttribute("className"===k?"class":k,e[k]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)}},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),function(a){a.commands.insertOrderedList={exec:function(b,c){a.commands.insertList.exec(b,c,"OL")},state:function(b,c){return a.commands.insertList.state(b,c,"OL")}}}(wysihtml5),function(a){a.commands.insertUnorderedList={exec:function(b,c){
+a.commands.insertList.exec(b,c,"UL")},state:function(b,c){return a.commands.insertList.state(b,c,"UL")}}}(wysihtml5),wysihtml5.commands.insertList=function(a){var b=function(a,b){if(a&&a.nodeName){"string"==typeof b&&(b=[b]);for(var c=b.length;c--;)if(a.nodeName===b[c])return!0}return!1},c=function(c,d,e){var f={el:null,other:!1};if(c){var g=a.dom.getParentElement(c,{query:"li"},!1,e.element),h="UL"===d?"OL":"UL";b(c,d)?f.el=c:b(c,h)?f={el:c,other:!0}:g&&(b(g.parentNode,d)?f.el=g.parentNode:b(g.parentNode,h)&&(f={el:g.parentNode,other:!0}))}return f.el&&!e.element.contains(f.el)&&(f.el=null),f},d=function(b,c,d){var e,g,h="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){if(e=f(h,d),e.length)for(var i=e.length;i--;)a.dom.renameElement(e[i],c.toLowerCase());else{g=f(["OL","UL"],d);for(var j=g.length;j--;)a.dom.resolveList(g[j],d.config.useLineBreaks);a.dom.resolveList(b,d.config.useLineBreaks)}})},e=function(b,c,d){var e="UL"===c?"OL":"UL";d.selection.executeAndRestoreRangy(function(){for(var g=[b].concat(f(e,d)),h=g.length;h--;)a.dom.renameElement(g[h],c.toLowerCase())})},f=function(a,c){for(var d=c.selection.getOwnRanges(),e=[],f=d.length;f--;)e=e.concat(d[f].getNodes([1],function(c){return b(c,a)}));return e},g=function(b,c){c.selection.executeAndRestoreRangy(function(){var d,e,f="_wysihtml5-temp-"+(new Date).getTime(),g=c.selection.deblockAndSurround({nodeName:"div",className:f});g.innerHTML=g.innerHTML.replace(a.INVISIBLE_SPACE_REG_EXP,""),g&&(d=a.lang.array(["","
",a.INVISIBLE_SPACE]).contains(g.innerHTML),e=a.dom.convertToList(g,b.toLowerCase(),c.parent.config.classNames.uneditableContainer),d&&c.selection.selectNode(e.querySelector("li"),!0))})};return{exec:function(a,b,f){var h=a.doc,i="OL"===f?"insertOrderedList":"insertUnorderedList",j=a.selection.getSelectedNode(),k=c(j,f,a);k.el?k.other?e(k.el,f,a):d(k.el,f,a):a.commands.support(i)?h.execCommand(i,!1,null):g(f,a)},state:function(a,b,d){var e=a.selection.getSelectedNode(),f=c(e,d,a);return f.el&&!f.other?f.el:!1}}}(wysihtml5),function(a){var b={nodeName:"I",toggle:!0};a.commands.italic={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-center",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyCenter={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-left",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyLeft={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-right",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyRight={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={className:"wysiwyg-text-align-justify",classRegExp:/wysiwyg-text-align-[0-9a-z]+/g,toggle:!0};a.commands.justifyFull={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"right",toggle:!0};a.commands.alignRightStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"left",toggle:!0};a.commands.alignLeftStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){var b={styleProperty:"textAlign",styleValue:"center",toggle:!0};a.commands.alignCenterStyle={exec:function(c,d){return a.commands.formatBlock.exec(c,"formatBlock",b)},state:function(c,d){return a.commands.formatBlock.state(c,"formatBlock",b)}}}(wysihtml5),function(a){a.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(a){return!1}}}(wysihtml5),function(a){var b={nodeName:"U",toggle:!0};a.commands.underline={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){a.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(a){return!1}}}(wysihtml5),function(a){a.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d
";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.mergeTableCells={exec:function(b,c){b.tableSelection&&b.tableSelection.start&&b.tableSelection.end&&(this.state(b,c)?a.dom.table.unmergeCell(b.tableSelection.start):a.dom.table.mergeCellsBetween(b.tableSelection.start,b.tableSelection.end))},state:function(b,c){if(b.tableSelection){var d=b.tableSelection.start,e=b.tableSelection.end;if(d&&e&&d==e&&(a.dom.getAttribute(d,"colspan")&&parseInt(a.dom.getAttribute(d,"colspan"),10)>1||a.dom.getAttribute(d,"rowspan")&&parseInt(a.dom.getAttribute(d,"rowspan"),10)>1))return[d]}return!1}}}(wysihtml5),function(a){a.commands.addTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end);"before"==d||"above"==d?a.dom.table.addCells(e.start,d):("after"==d||"below"==d)&&a.dom.table.addCells(e.end,d),setTimeout(function(){b.tableSelection.select(e.start,e.end)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.deleteTableCells={exec:function(b,c,d){if(b.tableSelection&&b.tableSelection.start&&b.tableSelection.end){var e,f=a.dom.table.orderSelectionEnds(b.tableSelection.start,b.tableSelection.end),g=a.dom.table.indexOf(f.start),h=b.tableSelection.table;a.dom.table.removeCells(f.start,d),setTimeout(function(){e=a.dom.table.findCell(h,g),e||("row"==d&&(e=a.dom.table.findCell(h,{row:g.row-1,col:g.col})),"column"==d&&(e=a.dom.table.findCell(h,{row:g.row,col:g.col-1}))),e&&b.tableSelection.select(e,e)},0)}},state:function(a,b){return!1}}}(wysihtml5),function(a){a.commands.indentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPushLiLevel(d,a.selection):!1},state:function(a,b){return!1},tryToPushLiLevel:function(b,c){var d,e,f,g,h,i=!1;return c.executeAndRestoreRangy(function(){for(var c=b.length;c--;)g=b[c],d="OL"===g.parentNode.nodeName?"OL":"UL",e=g.ownerDocument.createElement(d),f=a.dom.domNode(g).prev({nodeTypes:[a.ELEMENT_NODE]}),h=f?f.querySelector("ul, ol"):null,f&&(h?h.appendChild(g):(e.appendChild(g),f.appendChild(e)),i=!0)}),i}}}(wysihtml5),function(a){a.commands.outdentList={exec:function(a,b,c){var d=a.selection.getSelectionParentsByTag("LI");return d?this.tryToPullLiLevel(d,a):!1},state:function(a,b){return!1},tryToPullLiLevel:function(b,c){var d,e,f,g,h,i=!1,j=this;return c.selection.executeAndRestoreRangy(function(){for(var k=b.length;k--;)if(g=b[k],g.parentNode&&(d=g.parentNode,"OL"===d.tagName||"UL"===d.tagName)){if(i=!0,e=a.dom.getParentElement(d.parentNode,{query:"ol, ul"},!1,c.element),f=a.dom.getParentElement(d.parentNode,{query:"li"},!1,c.element),e&&f)g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h)),e.insertBefore(g,f.nextSibling);else{g.nextSibling&&(h=j.getAfterList(d,g),g.appendChild(h));for(var l=g.childNodes.length;l--;)d.parentNode.insertBefore(g.childNodes[l],d.nextSibling);d.parentNode.insertBefore(document.createElement("br"),d.nextSibling),g.parentNode.removeChild(g)}0===d.childNodes.length&&d.parentNode.removeChild(d)}}),i},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}}}(wysihtml5),function(a){var b={nodeName:"SUB",toggle:!0};a.commands.subscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b={nodeName:"SUP",toggle:!0};a.commands.superscript={exec:function(c,d){a.commands.formatInline.exec(c,d,b)},state:function(c,d){return a.commands.formatInline.state(c,d,b)}}}(wysihtml5),function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){var a,f=this;this.composer.sandbox.getDocument();i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b,c,d,e,i,j=this.historyStr[this.position-1],k=this.composer.getValue(!1,!1),l=this.element.offsetWidth>0&&this.element.offsetHeight>0;if(k!==j){var m=this.historyStr.length=this.historyDom.length=this.position;m>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++,l&&(b=this.composer.selection.getRange(),c=b&&b.startContainer?b.startContainer:this.element,d=b&&b.startOffset?b.startOffset:0,c.nodeType===a.ELEMENT_NODE?e=c:(e=c.parentNode,i=this.getChildNodeIndex(e,c)),e.setAttribute(h,d),"undefined"!=typeof i&&e.setAttribute(g,i));var n=this.element.cloneNode(!!k);this.historyDom.push(n),this.historyStr.push(k),e&&(e.removeAttribute(h),e.removeAttribute(g))}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(!this.element||!this.element.ownerDocument||this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element&&this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b,c){var d=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b!==!1&&(d=this.parent.parse(d,c===!1?!1:!0)),d},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){var a;this.selection&&(a=rangy.saveSelection(this.win)),this.parent.parse(this.element),a&&rangy.restoreSelection(a)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getScrollPos:function(){if(this.doc&&this.win){var a={};return"undefined"!=typeof this.win.pageYOffset?a.y=this.win.pageYOffset:a.y=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollTop,"undefined"!=typeof this.win.pageXOffset?a.x=this.win.pageXOffset:a.x=(this.doc.documentElement||this.doc.body.parentNode||this.doc.body).scrollLeft,a}},setScrollPos:function(a){a&&"undefined"!=typeof a.x&&"undefined"!=typeof a.y&&this.win.scrollTo(a.x,a.y)},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return/^(\s|
|<\/br>||<\/p>)*$/i.test(a)||""===a||"
"===a||"
"===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()},{className:this.config.classNames.sandbox}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets,className:this.config.classNames.sandbox}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.win=this.sandbox.getWindow(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0,!1)),this.selection=new a.Selection(this.parent,this.element,this.config.classNames.uneditableContainer),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.classNames.composer),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f,this.config.classNames.placeholder),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){if(b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)){for(var c=d.selection.getSelectedNode(),e=d.element.querySelectorAll("."+d.config.classNames.uneditableContainer),f=!1,g=e.length;g--;)a.dom.contains(e[g],c)&&(f=!0);f||b.autoLink(c,[d.config.classNames.uneditableContainer])}}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.classNames.uneditableContainer])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{query:"a"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{query:"p, div"},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f="li, p, h1, h2, h3, h4, h5, h6",g="ul, ol, menu";this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{query:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{query:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.addEventListener(b[d],c,!1)},f=function(a,b,c){for(var d=0,e=b.length;e>d;d++)a.removeEventListener(b[d],c,!1)},g=function(b,c){if(b.selection.caretIsLastInSelection()){var d=b.selection.getSelection(),e=d.anchorNode;if(e&&1===e.nodeType&&(a.dom.getParentElement(e,{query:"td, th"},!1,b.element)||c)){var f=e.childNodes[d.anchorOffset];if(f&&1===f.nodeType&"BR"===f.nodeName)return f.parentNode.removeChild(f),!0}}return!1},h=function(a){var b=a.selection.getBeforeSelection(!0);if(b&&("element"===b.type||"leafnode"===b.type)&&1===b.node.nodeType&&b.node.classList.contains(a.config.classNames.uneditableContainer)){if(g(a,!0))return!0;try{var c=new CustomEvent("wysihtml5:uneditable:delete");b.node.dispatchEvent(c)}catch(d){}return b.node.parentNode.removeChild(b.node),!0}return!1},i=function(b){var c=b.selection;if(c.caretIsFirstInSelection()&&c.getPreviousNode()&&c.getPreviousNode().nodeName&&/^H\d$/gi.test(c.getPreviousNode().nodeName)){var d=c.getPreviousNode();if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=a.dom.getParentElement(c.getSelectedNode(),{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,b.element);if(d){if(f){for(;f.firstChild;)d.appendChild(f.firstChild);return c.setAfter(e),!0}if(3===c.getSelectedNode().nodeType)return d.appendChild(c.getSelectedNode()),c.setAfter(e),!0}}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed())if(c.caretIsInTheBeginnig("li"))a.preventDefault(),b.commands.exec("outdentList");else{if(i(b))return void a.preventDefault();if(g(b))return void a.preventDefault();if(h(b))return void a.preventDefault()}else c.containsUneditable()&&(a.preventDefault(),c.deleteContents())},k=function(a,b){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")},l=function(a){this.domNodeRemovedInterval&&clearInterval(domNodeRemovedInterval),this.parent.fire("destroy:composer")},m=function(a){this.parent.fire("beforeinteraction").fire("beforeinteraction:composer"),setTimeout(function(){this.parent.fire("interaction").fire("interaction:composer")}.bind(this),0)},n=function(a){this.parent.fire("focus",a).fire("focus:composer",a),setTimeout(function(){this.focusState=this.getValue(!1,!1)}.bind(this),0)},o=function(a){if(this.focusState!==this.getValue(!1,!1)){var b=a;"function"==typeof Object.create&&(b=Object.create(a,{type:{value:"change"}})),this.parent.fire("change",b).fire("change:composer",b)}this.parent.fire("blur",a).fire("blur:composer",a)},p=function(a){this.parent.fire(a.type,a).fire(a.type+":composer",a),"paste"===a.type&&setTimeout(function(){this.parent.fire("newword:composer")}.bind(this),0)},q=function(a){this.config.copyedFromMarking&&(a.clipboardData&&(a.clipboardData.setData("text/html",this.config.copyedFromMarking+this.selection.getHtml()),a.clipboardData.setData("text/plain",this.selection.getPlainText()),a.preventDefault()),this.parent.fire(a.type,a).fire(a.type+":composer",a))},r=function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&this.parent.fire("newword:composer")},s=function(b){if(!c.canSelectImagesInContentEditable()){var d=b.target,e=this.element.querySelectorAll("img"),f=this.element.querySelectorAll("."+this.config.classNames.uneditableContainer+" img"),g=a.lang.array(e).without(f);"IMG"===d.nodeName&&a.lang.array(g).contains(d)&&this.selection.selectNode(d)}},t=function(a){var b,c={IMG:"Image: ",A:"Link: "},d=a.target,e=d.nodeName;("A"===e||"IMG"===e)&&(d.hasAttribute("title")||(b=c[e]+(d.getAttribute("href")||d.getAttribute("src")),d.setAttribute("title",b)))},u=function(b){if(this.config.classNames.uneditableContainer){var c=a.dom.getParentElement(b.target,{query:"."+this.config.classNames.uneditableContainer},!1,this.element);c&&this.selection.setAfter(c)}},v=function(a){c.canSelectImagesInContentEditable()||setTimeout(function(){this.selection.getSelection().removeAllRanges()}.bind(this),0)},w=function(b){var c,e,f=b.keyCode,g=d[f];(b.ctrlKey||b.metaKey)&&!b.altKey&&g&&(this.commands.exec(g),b.preventDefault()),f===a.BACKSPACE_KEY&&j(b,this),(f===a.BACKSPACE_KEY||f===a.DELETE_KEY)&&(c=this.selection.getSelectedNode(!0),c&&"IMG"===c.nodeName&&(b.preventDefault(),e=c.parentNode,e.removeChild(c),"A"!==e.nodeName||e.firstChild||e.parentNode.removeChild(e),setTimeout(function(){a.quirks.redraw(this.element)},0))),this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),k(this,this.element))},x=function(){var b=function(){this.doc.execCommand("enableObjectResizing",!1,"false"),this.doc.execCommand("enableInlineTableEditing",!1,"false")},c=function(){b.call(this),f(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c)}.bind(this);this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&(this.sandbox.getIframe?e(this.sandbox.getIframe(),["focus","mouseup","mouseover"],c):setTimeout(function(){b.call(this)}.bind(this),0)),this.tableSelection=a.quirks.tableCellsSelection(this.element,this.parent)};a.views.Composer.prototype.observe=function(){var a=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),d=(this.element,c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?this.element:this.sandbox.getWindow());this.focusState=this.getValue(!1,!1),a.addEventListener(["DOMNodeRemoved"],l.bind(this),!1),c.supportsMutationEvents()||(this.domNodeRemovedInterval=setInterval(function(){b.contains(document.documentElement,a)||l.call(this)},250)),this.config.handleTables&&x.call(this),e(d,["drop","paste","mouseup","focus","keyup"],m.bind(this)),d.addEventListener("focus",n.bind(this),!1),d.addEventListener("blur",o.bind(this),!1),e(this.element,["drop","paste","beforepaste"],p.bind(this),!1),this.element.addEventListener("copy",q.bind(this),!1),this.element.addEventListener("mousedown",s.bind(this),!1),this.element.addEventListener("mouseover",t.bind(this),!1),this.element.addEventListener("click",u.bind(this),!1),this.element.addEventListener("drop",v.bind(this),!1),this.element.addEventListener("keyup",r.bind(this),!1),this.element.addEventListener("keydown",w.bind(this),!1),this.element.addEventListener("dragenter",function(){this.parent.fire("unset_placeholder")}.bind(this),!1)}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue(!1,!1)).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue(!1,!1);b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),function(a){a.views.SourceView=Base.extend({constructor:function(a,b){this.editor=a,this.composer=b,this._observe()},switchToTextarea:function(a){var b=this.composer.win.getComputedStyle(this.composer.element),c=parseFloat(b.width),d=Math.max(parseFloat(b.height),100);
+this.textarea||(this.textarea=this.composer.doc.createElement("textarea"),this.textarea.className="wysihtml5-source-view"),this.textarea.style.width=c+"px",this.textarea.style.height=d+"px",this.textarea.value=this.editor.getValue(a,!0),this.composer.element.parentNode.insertBefore(this.textarea,this.composer.element),this.editor.currentView="source",this.composer.element.style.display="none"},switchToComposer:function(a){var b=this.textarea.value;b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder")),this.textarea.parentNode.removeChild(this.textarea),this.editor.currentView=this.composer,this.composer.element.style.display=""},_observe:function(){this.editor.on("change_view",function(a){"composer"===a?this.switchToComposer(!0):"textarea"===a&&this.switchToTextarea(!0)}.bind(this))}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a!==!1&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},pasteParserRulesets:null,parser:a.dom.parse,useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,classNames:{composer:"wysihtml5-editor",body:"wysihtml5-supported",sandbox:"wysihtml5-sandbox",placeholder:"wysihtml5-placeholder",uneditableContainer:"wysihtml5-uneditable-container"},copyedFromMarking:''};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),d&&d.classNames&&a.lang.object(this.config.classNames).merge(d.classNames),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.classNames.body),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea?this.sourceView=new a.views.SourceView(this,this.composer):this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a,b){return this.currentView.getValue(a,b)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b,c){var d=this.config.contentEditableMode?document:this.composer?this.composer.sandbox.getDocument():null,e=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:d,uneditableClass:this.config.classNames.uneditableContainer,clearInternals:c});return"object"==typeof b&&a.quirks.redraw(b),e},_initParser:function(){var b;a.browser.supportsModenPaste()?this.on("paste:composer",function(c){c.preventDefault(),b=a.dom.getPastedHtml(c),b&&this._cleanAndPaste(b)}.bind(this)):this.on("beforepaste:composer",function(b){b.preventDefault();var c=this.composer.getScrollPos();a.dom.getPastedHtmlWithDiv(this.composer,function(a){a&&this._cleanAndPaste(a),this.composer.setScrollPos(c)}.bind(this))}.bind(this))},_cleanAndPaste:function(b){var c=a.quirks.cleanPastedHTML(b,{referenceNode:this.composer.element,rules:this.config.pasteParserRulesets||[{set:this.config.parserRules}],uneditableClass:this.config.classNames.uneditableContainer});this.composer.selection.deleteContents(),this.composer.selection.insertHTML(c)}})}(wysihtml5);
//# sourceMappingURL=wysihtml.min.map
\ No newline at end of file
diff --git a/dist/wysihtml.min.map b/dist/wysihtml.min.map
index 21a3ab9..8faff1b 100644
--- a/dist/wysihtml.min.map
+++ b/dist/wysihtml.min.map
@@ -1 +1 @@
-{"version":3,"file":"wysihtml.min.js","sources":["wysihtml.js"],"names":["wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","document","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","normalizeHasCaretError","window","ret","t1","createTextNode","t2","t3","createRange","appendChild","body","setStart","setEnd","getSelection","removeAllRanges","addRange","normalize","childNodes","anchorNode","firstChild","anchorOffset","removeChild","getTextNodes","all","nextSibling","nodeType","normalizeFix","nf","Node","texts","ownerDocument","defaultView","anode","aoffset","fnode","focusNode","foffset","focusOffset","prevTxt","shift","curText","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","previousSibling","nodeValue","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","deprecationNotice","deprecated","replacement","createAliasForDeprecatedMethod","owner","util","toArray","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","forEach","arr","func","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","el","arrayLike","addListener","eventType","listener","addEventListener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","getWindow","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","createTestElement","html","contentEditable","bodyFirstChild","removeNode","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getRangeRoot","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","rootContainerNodeTypes","setRangeStart","setRangeEnd","F","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","sibling","mergeForward","appendData","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getDocSelection","winSelectionIsBackward","sel","backward","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","saveRanges","restoreRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","readyState","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","rangeInfos","sort","saveSelection","restored","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","implement","valueOf","source","value","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","isPlainObject","difference","diffObj","newObj","isFunction","Text","isEmpty","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","removeEventListener","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","escapeParent","newWrapper","split2","nodeWrap","curNode","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","attr","getAttributes","attrList","hasOneAttribute","attributeValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","ingoreEmpty","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","isLastItem","lastListItem","lastElementChild","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","innerHtml","simulatePlaceholder","editor","placeholderText","placeholderClassName","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","setValue","setTextContent","getTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","unparseColor","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","ctrlKey","metaKey","minWidth","zIndex","notVisual","fixWebkitSelection","lastSibling","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","prevLeaf","executeAndRestoreRangy","restoreScrollPosition","executeAndRestore","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","getOwnNodes","splitBounds","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","commandValue","state","stateValue","bold","formatInline","getOptions","createLink","opts","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","classNames","uneditableContainer","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","wrapper","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","hasNoClass","hasNoStyle","hasNoAttributes","isSameNode","element1","element2","classes1","classes2","createWrapNode","defaultTag","containsSameAttributes","updateElementAttributes","newAttributes","fullContain","updateFormatOfElement","nodeNameQuery","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","similarOptions","correctOptionsForSimilarityCheck","isSimilarNode","INLINE_ELEMENTS","selectRange","selectTextNodes","lastText","selectTextNode","getState","caretNode","searchNodes","partial","caretIsInsideWord","beforeChar","afterChar","getRangeForWord","offsetStart","offsetEnd","txtNodes","wordOffset","mergeContents","mergeConsequentSimilarElements","cleanupAndSetSelection","cleanupAndSetCaret","formatTextNode","wrapNode","unformatTextNode","newWrapNode","removeFormatFromTextNode","formatTextRange","updateFormat","wordObj","exactState","removeFormat","textOffset","applyFormat","fixOptions","b","strong","em","insertBlockQuote","NODE_NAME","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","otherLists","innerLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","handleDeleteKeyPress","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","undef","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"wysihtml.min.js","sources":["wysihtml.js"],"names":["wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","INVISIBLE_SPACE_REG_EXP","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","DELETE_KEY","polyfills","win","doc","String","prototype","trim","rtrim","this","replace","s_add","s_rem","Element","on","fn","self","attachEvent","e","event","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","which","button","keyCode","call","detachEvent","Object","defineProperty","getOwnPropertyDescriptor","get","innerText","set","s","Array","isArray","arg","toString","indexOf","a","f","c","length","r","d","Function","bind","oThis","TypeError","aArgs","slice","arguments","fToBind","fNOP","fBound","apply","concat","ElementPrototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","node","nodes","parentNode","document","querySelectorAll","i","createElement","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","token","len","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","objCtr","strTrim","arrIndexOf","item","DOMEx","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","classListPropDesc","enumerable","configurable","ex","number","__defineGetter__","normalizeHasCaretError","window","ret","t1","createTextNode","t2","t3","createRange","appendChild","body","setStart","setEnd","getSelection","removeAllRanges","addRange","normalize","childNodes","anchorNode","firstChild","anchorOffset","removeChild","getTextNodes","all","nextSibling","nodeType","normalizeFix","nf","Node","texts","ownerDocument","defaultView","anode","aoffset","fnode","focusNode","foffset","focusOffset","prevTxt","shift","curText","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","previousSibling","nodeValue","factory","root","define","amd","module","exports","rangy","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","getElementsByTagName","consoleLog","msg","console","log","alertOrLog","shouldAlert","isBrowser","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","description","init","testRange","implementsDomRange","implementsTextRange","domRangeMethods","domRangeProperties","nodeName","toLowerCase","createTextRange","features","errorMessage","moduleName","modules","Module","initListeners","deprecationNotice","deprecated","replacement","createAliasForDeprecatedMethod","owner","util","toArray","shim","shimListeners","dependencies","initializer","createModule","initFunc","newModule","stack","RangePrototype","SelectionPrototype","areHostObjects","forEach","arr","func","preferTextRange","autoInitialize","rangyAutoInitialize","extend","hasOwnProperty","obj","deep","createOptions","optionsParam","defaults","options","el","arrayLike","addListener","eventType","listener","addEventListener","addInitListener","addShimListener","createMissingNativeApi","requiredModule","requiredModuleNames","createError","createCoreModule","rangePrototype","selectionPrototype","isHtmlNamespace","ns","namespaceURI","UNDEF","parentElement","parent","getNodeIndex","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","insertBefore","splitDataNode","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","getWindow","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","createTestElement","html","contentEditable","bodyFirstChild","removeNode","NodeIterator","_next","createIterator","DomPosition","codeName","textNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","detach","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getRangeRoot","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","iteratorState","it","stop","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","RangeIterator","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","container","cloneContents","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","rootContainerNodeTypes","setRangeStart","setRangeEnd","F","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","sibling","mergeForward","appendData","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","rangeProto","refresh","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getDocSelection","winSelectionIsBackward","sel","backward","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","select","deleteProperties","detached","actOnCachedSelection","action","cached","cachedRangySelections","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","chromeMatch","navigator","appVersion","match","parseInt","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","selProto","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","saveRanges","restoreRanges","rangeHtmls","getNativeTextRange","detachAll","Selection","docReady","loadHandler","readyState","require","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","rangeInfos","sort","saveSelection","restored","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","implement","valueOf","source","value","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","androidVersion","isIE","equation","re","rv","appName","exec","parseFloat","$1","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","supportsModenPaste","fixStyleKey","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","isPlainObject","difference","diffObj","newObj","isFunction","Text","isEmpty","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","\t","string","str","interpolate","vars","by","search","escapeHTML","linebreaks","convertSpaces","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","substr","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","hasClass","removeClass","elementClassName","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","removeEventListener","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","lastLeafNode","leafClasses","escapeParent","newWrapper","split2","nodeWrap","curNode","properties","query","classRegExp","styleProperty","hasOneStyle","styles","j","maxStyleP","styleValue","attr","getAttributes","attrList","hasOneAttribute","attributeValue","getAsDom","_innerHTMLShiv","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","levels","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","originalOverflow","needsOverflowReset","overflow","getPropertyValue","ingoreEmpty","textContent","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","_isLineBreak","_isLineBreakOrBlockElement","eventNames","handlerWrapper","parse","elementOrHtml_current","config_current","elementOrHtml","currentRules","defaultRules","isString","clearInternals","selectors","_applySelectorRules","_convert","cleanUp","unjoinNbsps","txtnodes","getCorrectInnerHTML","oldNode","newChild","nodeDisplay","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","blockElements","DEFAULT_NODE_NAME","attributes","selectorRules","els","elementHandlingMethods","_handleElement","rule","renameTag","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","one_of_type","_testTypes","remove_action","remove_action_rename_to","_handleAttributes","_handleStyles","definition","type_definitions","_testType","classesLength","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","WHITE_SPACE_REG_EXP","sp","attrs","v","keep_styles","styleFloat","cssFloat","_getAttributesBeginningWith","beginning","returnAttributes","_checkAttribute","attributeName","newAttributeValue","attributeCheckMethods","_checkAttributes","local_attributes","newValue","matchingAttributes","globalAttributes","checkAttributes","oldAttributes","imax","currentClass","newClass","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","allowedClasses","newClasses","oldClasses","check_attributes","addClassMethods","addStyleMethods","newStyle","classes_blacklist","src","width","height","_handleText","_handleComment","comments","createComment","1","3","8","REG_EXP","href","alt","numbers","dimension","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","isLastItem","lastListItem","lastElementChild","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","innerHtml","simulatePlaceholder","editor","placeholderText","placeholderClassName","CLASS_NAME","unset","composerIsVisible","hasPlaceholderSet","clear","placeholderSet","setValue","setTextContent","HAS_GET_ATTRIBUTE_BUG","isLoadedImage","hasAttribute","specified","complete","queryInList","q","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","children","getPastedHtml","clipboardData","getData","getPastedHtmlWithDiv","composer","selBookmark","cleanerDiv","scrollPos","getScrollPos","top","y","x","setBookmark","removeInvisibleSpaces","cleanPastedHTML","styleToRegex","styleStr","trimmedStr","escapedStr","extendRulesWithStyleExceptions","exceptStyles","newRules","pickRuleset","ruleset","defaultSet","condition","newHtml","color","fontSize","ensureProperClearing","clearIfNecessary","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleMouseDown","handleSelectionMousedown","removeCellSelections","selection_class","handleMouseMove","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","unparseColor","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","placeholderRemover","keyDownHandler","delayedPlaceholderRemover","setAfter","ctrlKey","metaKey","minWidth","zIndex","notVisual","fixWebkitSelection","lastSibling","activeElement","setScrollPos","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","fixSelBorders","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","filterElements","containsUneditable","uneditables","getOwnUneditables","startParent","endParent","ev","CustomEvent","dispatchEvent","err","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","getBeforeSelection","includePrevLeaves","inTmpCaret","rng","prevLeaf","executeAndRestoreRangy","restoreScrollPosition","executeAndRestore","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","splitElementAtCaret","contentAfterRangeStart","surround","nodeOptions","cssStyle","deblockAndSurround","tempDivElements","tempElements","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","toLineBoundary","location","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","getOwnNodes","splitBounds","fixRangeOverflow","containment","_detectInlineRangeProblems","previousElementSibling","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","jmax","getHtml","getPlainText","isEndToEndInNode","nodeNames","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","isMatchingAllready","areMatchingAllready","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","getMatchingAncestor","matchType","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","appliedType","coverage","selectedText","toggleRange","parentsExactMatch","isApplied","Commands","support","commandValue","state","stateValue","bold","formatInline","getOptions","createLink","opts","removeLink","size","fontSizeStyle","st","foreColor","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","cleanup","allElements","BLOCK_ELEMENTS","classNames","uneditableContainer","defaultNodeName","findOuterBlock","allBlocks","UNNESTABLE_BLOCK_ELEMENTS","cloneOuterInlines","innerNode","INLINE_ELEMENTS","outerNode","applyOptionsToElement","removeOptionsFromElement","unwrapBlocksFromContent","contentBlocks","fixRangeCoverage","wrapRangeWithElement","defaultName","defaultOptions","wrapper","blocks","rangeStartContainer","splitAllBlocks","firstOuterBlock","tmpEl","outerInlines","getParentBlockNodeName","newBlockElements","parentNodes","formatCode","classname","selectedNodes","pre","selectedNode","hasNoClass","hasNoStyle","hasNoAttributes","isSameNode","element1","element2","classes1","classes2","createWrapNode","defaultTag","containsSameAttributes","updateElementAttributes","newAttributes","fullContain","updateFormatOfElement","nodeNameQuery","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","similarOptions","correctOptionsForSimilarityCheck","isSimilarNode","selectRange","selectTextNodes","lastText","selectTextNode","getState","caretNode","searchNodes","partial","caretIsInsideWord","beforeChar","afterChar","getRangeForWord","offsetStart","offsetEnd","txtNodes","wordOffset","mergeContents","mergeConsequentSimilarElements","cleanupAndSetSelection","cleanupAndSetCaret","formatTextNode","wrapNode","unformatTextNode","newWrapNode","removeFormatFromTextNode","formatTextRange","updateFormat","wordObj","exactState","removeFormat","textOffset","applyFormat","fixOptions","b","strong","em","insertBlockQuote","NODE_NAME","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","insertList","isNode","findListEl","other","parentLi","otherNodeName","handleSameTypeList","otherLists","innerLists","getListsInSelection","handleOtherTypeList","renameLists","createListFallback","tempClassName","getTime","cmd","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","subscript","superscript","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","pageYOffset","pageXOffset","scrollTo","_create","_createWysiwygFormField","form","hiddenField","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","nodeWithSelection","isInUneditable","links","urlRegExp","newTextContent","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","blockElement","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","addListeners","removeListeners","fixLastBrDeletionInTable","aNode","handleUneditableDeletion","fixDeleteInTheBeginnigOfHeading","selNode","handleDeleteKeyPress","handleTabKeyDown","handleDomNodeRemoved","domNodeRemovedInterval","clearInterval","handleUserInteraction","handleFocus","focusState","handleBlur","changeevent","create","handlePaste","handleCopy","copyedFromMarking","setData","handleKeyUp","allImages","notMyImages","myImages","handleMouseOver","title","titlePrefixes","IMG","handleClick","uneditable","handleDrop","handleKeyDown","handleTabKey","initTableHandling","hideHandlers","iframeInitiator","focusBlurElement","setInterval","handleTables","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","SourceView","switchToTextarea","composerStyles","switchToComposer","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","undef","defaultConfig","showToolbarAfterInit","parserRules","br","div","pasteParserRulesets","parser","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","sourceView","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","oldHtml","_cleanAndPaste","pastedHTML","cleanHtml"],"mappings":"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"}
\ No newline at end of file
diff --git a/package.json b/package.json
index 74845b2..a3f4520 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wysihtml",
- "version": "0.5.0-beta9",
+ "version": "0.5.0-beta10",
"devDependencies": {
"grunt": "~0.4.4",
"grunt-contrib-concat": "~0.4.0",
@@ -15,7 +15,7 @@
"dependencies": {
"rangy": "1.3.0"
},
- "description": "h1. wysihtml 0.5.0-beta9",
+ "description": "h1. wysihtml 0.5.0-beta10",
"main": "Gruntfile.js",
"directories": {
"example": "examples",