diff --git a/CHANGELOG.textile b/CHANGELOG.textile index cb4eaa8..8c4720c 100644 --- a/CHANGELOG.textile +++ b/CHANGELOG.textile @@ -1,3 +1,6 @@ +* wysihtml5x 0.5.0-beta13* (August 18, 2015) +* Fixes node.normalize polyfill failing to restore cursor in some cases + * wysihtml5x 0.5.0-beta12* (July 31, 2015) * Fixes a many toolbar handling errors * Fixes formatBlock misbehaviours: in Safari selected content can be lost in some cases, acting on outer div if heading and paragraph elements are contained in div. diff --git a/dist/wysihtml-toolbar.js b/dist/wysihtml-toolbar.js index a456bea..ef0551b 100644 --- a/dist/wysihtml-toolbar.js +++ b/dist/wysihtml-toolbar.js @@ -1,5 +1,5 @@ /** - * @license wysihtml v0.5.0-beta12 + * @license wysihtml v0.5.0-beta13 * https://github.com/Voog/wysihtml * * Author: Christopher Blum (https://github.com/tiff) @@ -10,7 +10,7 @@ * */ var wysihtml5 = { - version: "0.5.0-beta12", + version: "0.5.0-beta13", // namespaces commands: {}, @@ -405,6 +405,8 @@ var wysihtml5 = { return all; }; + + var normalizeFix = function() { var f = Node.prototype.normalize; var nf = function() { @@ -412,13 +414,15 @@ var wysihtml5 = { s = this.ownerDocument.defaultView.getSelection(), anode = s.anchorNode, aoffset = s.anchorOffset, + aelement = anode && anode.nodeType === 1 && anode.childNodes.length > 0 ? anode.childNodes[aoffset] : undefined, fnode = s.focusNode, foffset = s.focusOffset, + felement = fnode && fnode.nodeType === 1 && foffset > 0 ? fnode.childNodes[foffset -1] : undefined, r = this.ownerDocument.createRange(), prevTxt = texts.shift(), curText = prevTxt ? texts.shift() : null; - if ((anode === fnode && foffset < aoffset) || (anode !== fnode && (anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_PRECEDING))) { + if ((anode === fnode && foffset < aoffset) || (anode !== fnode && (anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_PRECEDING) && !(anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_CONTAINS))) { fnode = [anode, anode = fnode][0]; foffset = [aoffset, aoffset = foffset][0]; } @@ -442,13 +446,20 @@ var wysihtml5 = { } } + if (felement) { + foffset = Array.prototype.indexOf.call(felement.parentNode.childNodes, felement) + 1; + } + + if (aelement) { + aoffset = Array.prototype.indexOf.call(aelement.parentNode.childNodes, aelement); + } + if (anode && anode.parentNode && fnode && fnode.parentNode) { r.setStart(anode, aoffset); r.setEnd(fnode, foffset); s.removeAllRanges(); s.addRange(r); } - }; Node.prototype.normalize = nf; }; diff --git a/dist/wysihtml-toolbar.min.js b/dist/wysihtml-toolbar.min.js index 691ff17..9c841de 100644 --- a/dist/wysihtml-toolbar.min.js +++ b/dist/wysihtml-toolbar.min.js @@ -1,10 +1,10 @@ -/*! wysihtml - v0.5.0-beta12 (2015-07-31) */ +/*! wysihtml - v0.5.0-beta13 (2015-08-18) */ -var wysihtml5={version:"0.5.0-beta12",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},supportsModernPaste: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){function b(a,b){for(var c=[a],d=a;b&&d&&d!==b||!b&&d;)c.unshift(d),d=d.parentNode;return c}a.dom.domNode=function(c){var d=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(b){var d=b?/^\s*$/g:/^[\r\n]*$/g;return c.nodeType===a.TEXT_NODE&&d.test(c.data)},visible:function(){var b=!/^\s*$/g.test(a.dom.getTextContent(c));return b||1===c.nodeType&&c.querySelector("img, br, hr, object, embed, canvas, input, textarea")&&(b=!0),b}},prev:function(b){var e=c.previousSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(b):e:null},next:function(b){var e=c.nextSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(b):e:null},commonAncestor:function(a,d){var e=b(c,d),f=b(a,d);if(e[0]!=f[0])return null;for(var g=0;g0)for(var f=!1,g=Array.isArray(b.styleProperty)?b.styleProperty:[b.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),c.style[d]){if(!b.styleValue){f=!0;break}if(b.styleValue instanceof RegExp){if(c.style[d].trim().match(b.styleValue).length>0){f=!0;break}}else if(Array.isArray(b.styleValue)){if(b.styleValue.indexOf(c.style[d].trim())){f=!0;break}}else if(b.styleValue===c.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(b.attribute){var j=a.dom.getAttributes(c),k=[],l=!1;Array.isArray(b.attribute)?k=b.attribute:k[b.attribute]=b.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&&/^[\n\r]*$/.test(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+" 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){function b(a){var b,c;for(b in d)if(d.hasOwnProperty(b)&&(c=d[b],c.regex.test(a)))return c}function c(a){var c=b(a);return c?c.name:void 0}var d={rgba:{regex:/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,name:"rgba"},rgb:{regex:/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,name:"rgb"},hex6:{regex:/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,name:"hex",radix:16},hex3:{regex:/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,name:"hex",radix:16}},e=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={getColorParseMethod:b,getColorFormat:c,parseColor:function(c,f){var g,h,i,j,k,l=c;if(f){if(g=e(f),!(h=c.match(g)))return!1;h=h.pop().split(":")[1],l=a.lang.string(h).trim()}return(i=b(l))&&(j=l.match(i.regex))?(k=i.radix||10,i===d.hex3?(j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k)*k+parseInt(a,k):parseFloat(a)})):(j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k):parseFloat(a)}))):!1},unparseColor:function(a,b){var c=16;return"hex"===b?(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"hash"===b?"#"+(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"rgb"===b?"rgb("+a[0]+","+a[1]+","+a[2]+")":"rgba"===b?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"csv"===b?a[0]+","+a[1]+","+a[2]+","+a[3]: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(e("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(b){var c=document.createElement("span"),d=function(a){b.removeEventListener("mouseup",d),b.removeEventListener("keydown",d),b.removeEventListener("touchstart",d),b.removeEventListener("focus",d),b.removeEventListener("blur",d),b.removeEventListener("paste",e),b.removeEventListener("drop",e),b.removeEventListener("beforepaste",e),c&&c.parentNode&&c.parentNode.removeChild(c)},e=function(a){c&&c.parentNode&&setTimeout(d,0)};return c.appendChild(document.createTextNode(a.INVISIBLE_SPACE)),c.className="_wysihtml5-temp-caret-fix",c.style.display="block",c.style.minWidth="1px",c.style.height="0px",b.addEventListener("mouseup",d),b.addEventListener("keydown",d),b.addEventListener("touchstart",d),b.addEventListener("focus",d),b.addEventListener("blur",d),b.addEventListener("paste",e),b.addEventListener("drop",e),b.addEventListener("beforepaste",e),c}function e(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 f=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),e=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=e?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=f.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&e&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&e?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();e(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=null;if(i&&(j=1===i.nodeType&&a.dom.hasClass(i,this.unselectableClass)?i:a.dom.domNode(i).lastLeafNode()),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,e,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)):(e=this.doc.createTextNode(a.INVISIBLE_SPACE),f.insert(e).after(d[0]),l.setStartBefore(e),l.setEndAfter(e)),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)},canAppendChild:function(a){var b,c,d=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],e=this.getRange();return b=a||e.startContainer,b&&(c=(b.tagName||b.nodeName).toLowerCase()),-1===d.indexOf(c)},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=f.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=f.query(this.contain,"."+this.unselectableClass),c=f.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},selectAll:function(){var b,c=this.createRange(),e=this.composer,f=this,g=d(this.composer.element),h=d(this.composer.element),i=function(){c.setStart(e.element,0),c.setEnd(e.element,e.element.childNodes.length),b=f.setSelection(c)},j=function(){return!b||b.nativeSelection&&b.nativeSelection.type&&("Caret"===b.nativeSelection.type||"None"===b.nativeSelection.type)};a.dom.removeInvisibleSpaces(this.composer.element),i(),this.composer.element.firstChild&&j()&&(this.composer.element.appendChild(g),i(),j()&&(g.parentNode.removeChild(g),this.composer.element.insertBefore(h,this.composer.element.firstChild),i(),j()&&(this.composer.element.appendChild(g),i())))},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},isInThisEditable:function(){var b=this.getSelection(),c=b.focusNode,d=b.anchorNode;return c&&1!==c.nodeType&&(c=c.parentNode),d&&1!==d.nodeType&&(d=d.parentNode),d&&c&&(a.dom.contains(this.composer.element,c)||this.composer.element===c)&&(a.dom.contains(this.composer.element,d)||this.composer.element===d)},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:!1})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d||void 0})},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;d&&(e=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"),e&&(f=(1===e[3]?"rgb("+[e[0],e[1],e[2]].join(", "):"rgba("+e.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:f})))},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(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function c(b){for(var c=b.element,d=c.querySelectorAll(o),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML.replace(/[\uFEFF]/g,"")&&f[g].parentNode.removeChild(f[g])}function d(a){return a.config.useLineBreaks?"DIV":"P"}function e(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?o:n)&&(e=d),d=d.parentNode;return e}function f(a,b){for(var c,d,e,f=a,g=null;f&&b&&f!==b;)1===f.nodeType&&f.matches(p)&&(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 g(b,c,e){return b||(b=e.doc.createElement(c.nodeName||d(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),c.nodeName&&b.nodeName!==c.nodeName&&(b=m.renameElement(b,c.nodeName)),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),c.className&&b.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),b}function h(b,c,e){var f;c.styleProperty&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=""),c.className&&b.classList.remove(c.className),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),c.nodeName&&b.nodeName===c.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=m.renameElement(b,d(e)):m.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function i(b){for(var c=b.querySelectorAll(o)||[],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 j(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 k(c,h,k,l){var m=h?a.lang.object(h).clone(!0):null;m&&(m.nodeName=m.nodeName||k||d(l)),j(c,l);var p,q,r,s=c.cloneRange(),t=s.startContainer,u=s.extractContents(),v=l.doc.createDocumentFragment(),w=m?b(m):null,x=w?a.dom.getParentElement(t,w,null,l.element):null,y=!m||"BLOCKQUOTE"===k&&m.nodeName&&"BLOCKQUOTE"===m.nodeName,z=x||e(t,l.element,y);if(h&&h.nodeName&&"BLOCKQUOTE"===h.nodeName){var A=g(null,h,l);A.appendChild(u),v.appendChild(A),q=[A]}else{if(u.firstChild)for(;u.firstChild;)if(1==u.firstChild.nodeType&&u.firstChild.matches(o))if(h)g(u.firstChild,h,l),u.firstChild.matches(n)&&i(u.firstChild),v.appendChild(u.firstChild);else{i(u.firstChild),r=a.dom.unwrap(u.firstChild);for(var B=0,C=r.length;C>B;B++)v.appendChild(r[B]);v.childNodes.length>0&&v.appendChild(l.doc.createElement("BR"))}else if(h){for(p=g(null,m,l);u.firstChild&&(1!==u.firstChild.nodeType||!u.firstChild.matches(o));)1==u.firstChild.nodeType&&p.matches(n)&&i(u.firstChild),p.appendChild(u.firstChild);v.appendChild(p)}else 1==u.firstChild.nodeType&&i(u.firstChild),v.appendChild(u.firstChild);else v.appendChild(g(null,h,l));q=a.lang.array(v.childNodes).get()}if(z)l.selection.splitElementAtCaret(z,v);else{var D=f(t,l.element);if(D.outerNode&&D.innerNode&&D.parent){if(1===v.childNodes.length){for(;v.firstChild.firstChild;)D.innerNode.appendChild(v.firstChild.firstChild);v.firstChild.appendChild(D.outerNode)}l.selection.splitElementAtCaret(D.parent,v)}else s.insertNode(v)}return q}function l(b,c){var d=a.dom.getParentElement(b,{query:o},null,c.element);return d?d.nodeName:null}var m=a.dom,n="h1, h2, h3, h4, h5, h6, p, pre",o="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",p="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(b,d,e){var f,g,i,j,m,o=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(b,d,e))){j=rangy.saveSelection(b.win);for(var p=0,q=m.length;q>p;p++)h(m[p],e,b)}if(!m){b.selection.isCollapsed()&&(i=a.dom.getParentElement(b.selection.getOwnRanges()[0].startContainer,{query:n+", "+(e&&e.nodeName?e.nodeName.toLowerCase():"div")},null,b.element),i?(j=rangy.saveSelection(b.win),g=b.selection.createRange(),g.selectNode(i),b.selection.setSelection(g)):b.isEmpty()||(j=rangy.saveSelection(b.win),b.selection.selectLine())),f=b.selection.getOwnRanges();for(var r=f.length;r--;)o=o.concat(k(f[r],e,l(f[r].startContainer,b),b))}c(b);for(var s=o.length;s--;)o[s].parentNode||o.splice(s,1);j?rangy.restoreSelection(j):(g=b.selection.createRange(),g.setStartBefore(o[0]),g.setEndAfter(o[o.length-1]),b.selection.setSelection(g)),a.dom.removeInvisibleSpaces(b.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:o})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=m.getParentElement(g[h],d||{query:o},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)[0];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,d=b.selection.getSelectedNode();return d&&d.nodeName&&"PRE"==d.nodeName&&d.firstChild&&d.firstChild.nodeName&&"CODE"==d.firstChild.nodeName?[d]:(c=a.dom.getParentElement(d,{query:"pre code"}),c?[c.parentNode]:!1)}}}(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;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?g=f.attribute:(g={},g[f.attribute]=f.attributeValue||""),h(e,g,f.toggle)),i=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,j=i?a.dom.domNode(e).test({query:i}):!1,(!f.nodeName||f.nodeName===F||j)&&(f.toggle!==!1&&j||!f.nodeName&&e.nodeName===F)&&b(e)&&c(e)&&d(e)&&a.dom.unwrap(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(a.selection.isInThisEditable()){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,d=c.getPreviousNode();if(c.caretIsFirstInSelection()&&d&&1===d.nodeType&&/block/.test(b.win.getComputedStyle(d).display)){if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=c.getSelectedNode(),g=a.dom.domNode(d).commonAncestor(f,b.element);if(curNode=g?a.dom.getParentElement(f,{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,g):null,curNode){for(;curNode.firstChild;)d.appendChild(curNode.firstChild);return c.setAfter(e),!0}if(3===f.nodeType)return d.appendChild(f),c.setAfter(e),!0}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed()){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,c){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li"))if(c){if(a.commands.exec("outdentList"))return}else if(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",a).fire("beforeinteraction:composer",a),setTimeout(function(){this.parent.fire("interaction",a).fire("interaction:composer",a)}.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];return(b.ctrlKey||b.metaKey)&&65===f?(this.selection.selectAll(),void b.preventDefault()):((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)}.bind(this),0))),void(this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),k(this,this.element,b.shiftKey))))},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,showToolbarDialogsOnSelection:!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.supportsModernPaste()?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 d=this,e=function(a){var b=d._serialize();d.fire("save",b),d.hide(),a.preventDefault(),a.stopPropagation()};b.observe(d.link,"click",function(){b.hasClass(d.link,c)&&setTimeout(function(){d.hide()},0)}),b.observe(this.container,"keydown",function(b){var c=b.keyCode;c===a.ENTER_KEY&&e(b),c===a.ESCAPE_KEY&&d.cancel()}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",e),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){d.cancel(),a.preventDefault(),a.stopPropagation()}),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))},update:function(a){this.elementToChange=a?a:this.elementToChange,this._interpolate()},show:function(a){var e=this.container.querySelector(d);if(this._observe(),this.update(a),b.addClass(this.link,c),this.container.style.display="",this.isOpen=!0,this.fire("show"),e&&!a)try{e.focus()}catch(f){}},_hide:function(a){this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.isOpen=!1},hide:function(){this._hide(),this.fire("hide")},cancel:function(){this._hide(),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){function b(b,c){var d=b.commands.state(c.name,c.value);return!c.dialog.multiselect&&a.lang.object(d).isArray()&&(d=1===d.length?d[0]:!0),d}var c="wysihtml5-command-disabled",d="wysihtml5-commands-disabled",e="wysihtml5-command-active",f="wysihtml5-action-active",g=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(b,g,h){this.editor=b,this.container="string"==typeof g?document.getElementById(g):g,this.composer=b.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),h&&this.show(),null!=b.config.classNameCommandDisabled&&(c=b.config.classNameCommandDisabled),null!=b.config.classNameCommandsDisabled&&(d=b.config.classNameCommandsDisabled),null!=b.config.classNameCommandActive&&(e=b.config.classNameCommandActive),null!=b.config.classNameActionActive&&(f=b.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}),f._hideAllDialogs(),f._preventInstantFocus(),e=void 0}),d.on("cancel",function(){e&&f.composer.selection.setBookmark(e),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b}),e=void 0,f._preventInstantFocus()}),d.on("hide",function(){f.editor.fire("hide:dialog",{command:c,dialogContainer:g,commandLink:b}),e=void 0})),d},execCommand:function(a,b){this.commandsDisabled||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 c=this,e=this.editor,f=this.container,h=this.commandLinks.concat(this.actionLinks),i=h.length,j=0;i>j;j++)"A"===h[j].nodeName?g.setAttributes({href:"javascript:;",unselectable:"on"}).on(h[j]):g.setAttributes({unselectable:"on"}).on(h[j]);g.delegate(f,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),g.delegate(f,"[data-wysihtml5-command]","click",function(a){var d,e=this,f=e.getAttribute("data-wysihtml5-command"),g=e.getAttribute("data-wysihtml5-command-value"),h=c.commandMapping[f+":"+g];g||!h.dialog?c.execCommand(f,g):(d=b(c.composer,h),h.dialog.show(d)),a.preventDefault()}),g.delegate(f,"[data-wysihtml5-action]","click",function(a){var b=this.getAttribute("data-wysihtml5-action");c.execAction(b),a.preventDefault()}),e.on("interaction:composer",function(a){c.preventFocus||c._updateLinkStates()}),this.container.ownerDocument.addEventListener("click",function(b){a.dom.contains(c.container,b.target)||a.dom.contains(c.composer.element,b.target)||(c._updateLinkStates(),c._preventInstantFocus())},!1),this.editor.config.handleTables&&(e.on("tableselect:composer",function(){c.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),e.on("tableunselect:composer",function(){c.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),e.on("change_view",function(a){setTimeout(function(){c.commandsDisabled="composer"!==a,c._updateLinkStates(),c.commandsDisabled?g.addClass(f,d):g.removeClass(f,d)},0)})},_hideAllDialogs:function(){var a=this.commandMapping;for(var b in a)a[b].dialog&&a[b].dialog.hide()},_preventInstantFocus:function(){this.preventFocus=!0,setTimeout(function(){this.preventFocus=!1}.bind(this),0)},_updateLinkStates:function(){var a,d,h,i,j,k=this.commandMapping,l=this.composer,m=this.actionMapping;for(a in k)i=k[a],this.commandsDisabled?(d=!1,g.removeClass(i.link,e),i.group&&g.removeClass(i.group,e),i.dialog&&i.dialog.hide()):(d=this.composer.commands.state(i.name,i.value),g.removeClass(i.link,c),i.group&&g.removeClass(i.group,c)),(i.state!==d||i.tracksBlankValue)&&(i.state=d,d?i.tracksBlankValue?g.removeClass(i.link,e):(g.addClass(i.link,e),i.group&&g.addClass(i.group,e),!i.dialog||"undefined"!=typeof i.value&&null!==i.value||(d&&"object"==typeof d?(d=b(l,i),i.state=d,j=i.dialog.container.dataset?i.dialog.container.dataset.showdialogonselection:!1,l.config.showToolbarDialogsOnSelection||j?i.dialog.show(d):i.dialog.update(d)):i.dialog.hide())):i.tracksBlankValue?g.addClass(i.link,e):(g.removeClass(i.link,e),i.group&&g.removeClass(i.group,e),i.dialog&&!i.value&&i.dialog.hide()));for(a in m)h=m[a],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea||"source"===this.editor.currentView,h.state?g.addClass(h.link,f):g.removeClass(h.link,f))},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="[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,g=a.quirks.styleParser,h=document.querySelector(":focus"),i=this.container.querySelectorAll(b),j=i.length,k=0,l=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,m=l?l.getAttribute("style"):null,n=m?g.parseColor(m,"color"):null;j>k;k++)e=i[k],e!==h&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(f=(e.dataset.colormode||"rgb").toLowerCase(),f="hex"===f?"hash":f,n?e.value=g.unparseColor(n,f):e.value=g.unparseColor([0,0,0],f)))}})}(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); +var wysihtml5={version:"0.5.0-beta13",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(++c0?c.childNodes[e]:void 0,g=b.focusNode,h=b.focusOffset,i=g&&1===g.nodeType&&h>0?g.childNodes[h-1]:void 0,j=this.ownerDocument.createRange(),k=a.shift(),l=k?a.shift():null;for((c===g&&e>h||c!==g&&c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_PRECEDING&&!(c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_CONTAINS))&&(g=[c,c=g][0],h=[e,e=h][0]);k&&l;)l.previousSibling&&l.previousSibling===k?(c===l&&(c=k,e=k.nodeValue.length+e),g===l&&(g=k,h=k.nodeValue.length+h),k.nodeValue=k.nodeValue+l.nodeValue,l.parentNode.removeChild(l),l=a.shift()):(k=l,l=a.shift());i&&(h=Array.prototype.indexOf.call(i.parentNode.childNodes,i)+1),f&&(e=Array.prototype.indexOf.call(f.parentNode.childNodes,f)),c&&c.parentNode&&g&&g.parentNode&&(j.setStart(c,e),j.setEnd(g,h),b.removeAllRanges(),b.addRange(j))});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},supportsModernPaste: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){function b(a,b){for(var c=[a],d=a;b&&d&&d!==b||!b&&d;)c.unshift(d),d=d.parentNode;return c}a.dom.domNode=function(c){var d=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(b){var d=b?/^\s*$/g:/^[\r\n]*$/g;return c.nodeType===a.TEXT_NODE&&d.test(c.data)},visible:function(){var b=!/^\s*$/g.test(a.dom.getTextContent(c));return b||1===c.nodeType&&c.querySelector("img, br, hr, object, embed, canvas, input, textarea")&&(b=!0),b}},prev:function(b){var e=c.previousSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(b):e:null},next:function(b){var e=c.nextSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(b):e:null},commonAncestor:function(a,d){var e=b(c,d),f=b(a,d);if(e[0]!=f[0])return null;for(var g=0;g0)for(var f=!1,g=Array.isArray(b.styleProperty)?b.styleProperty:[b.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),c.style[d]){if(!b.styleValue){f=!0;break}if(b.styleValue instanceof RegExp){if(c.style[d].trim().match(b.styleValue).length>0){f=!0;break}}else if(Array.isArray(b.styleValue)){if(b.styleValue.indexOf(c.style[d].trim())){f=!0;break}}else if(b.styleValue===c.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(b.attribute){var j=a.dom.getAttributes(c),k=[],l=!1;Array.isArray(b.attribute)?k=b.attribute:k[b.attribute]=b.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&&/^[\n\r]*$/.test(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+" 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){function b(a){var b,c;for(b in d)if(d.hasOwnProperty(b)&&(c=d[b],c.regex.test(a)))return c}function c(a){var c=b(a);return c?c.name:void 0}var d={rgba:{regex:/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,name:"rgba"},rgb:{regex:/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,name:"rgb"},hex6:{regex:/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,name:"hex",radix:16},hex3:{regex:/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,name:"hex",radix:16}},e=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={getColorParseMethod:b,getColorFormat:c,parseColor:function(c,f){var g,h,i,j,k,l=c;if(f){if(g=e(f),!(h=c.match(g)))return!1;h=h.pop().split(":")[1],l=a.lang.string(h).trim()}return(i=b(l))&&(j=l.match(i.regex))?(k=i.radix||10,i===d.hex3?(j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k)*k+parseInt(a,k):parseFloat(a)})):(j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k):parseFloat(a)}))):!1},unparseColor:function(a,b){var c=16;return"hex"===b?(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"hash"===b?"#"+(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"rgb"===b?"rgb("+a[0]+","+a[1]+","+a[2]+")":"rgba"===b?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"csv"===b?a[0]+","+a[1]+","+a[2]+","+a[3]: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(e("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(b){var c=document.createElement("span"),d=function(a){b.removeEventListener("mouseup",d),b.removeEventListener("keydown",d),b.removeEventListener("touchstart",d),b.removeEventListener("focus",d),b.removeEventListener("blur",d),b.removeEventListener("paste",e),b.removeEventListener("drop",e),b.removeEventListener("beforepaste",e),c&&c.parentNode&&c.parentNode.removeChild(c)},e=function(a){c&&c.parentNode&&setTimeout(d,0)};return c.appendChild(document.createTextNode(a.INVISIBLE_SPACE)),c.className="_wysihtml5-temp-caret-fix",c.style.display="block",c.style.minWidth="1px",c.style.height="0px",b.addEventListener("mouseup",d),b.addEventListener("keydown",d),b.addEventListener("touchstart",d),b.addEventListener("focus",d),b.addEventListener("blur",d),b.addEventListener("paste",e),b.addEventListener("drop",e),b.addEventListener("beforepaste",e),c}function e(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 f=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),e=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=e?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=f.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&e&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&e?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();e(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=null;if(i&&(j=1===i.nodeType&&a.dom.hasClass(i,this.unselectableClass)?i:a.dom.domNode(i).lastLeafNode()),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,e,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)):(e=this.doc.createTextNode(a.INVISIBLE_SPACE),f.insert(e).after(d[0]),l.setStartBefore(e),l.setEndAfter(e)),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)},canAppendChild:function(a){var b,c,d=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],e=this.getRange();return b=a||e.startContainer,b&&(c=(b.tagName||b.nodeName).toLowerCase()),-1===d.indexOf(c)},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=f.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=f.query(this.contain,"."+this.unselectableClass),c=f.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},selectAll:function(){var b,c=this.createRange(),e=this.composer,f=this,g=d(this.composer.element),h=d(this.composer.element),i=function(){c.setStart(e.element,0),c.setEnd(e.element,e.element.childNodes.length),b=f.setSelection(c)},j=function(){return!b||b.nativeSelection&&b.nativeSelection.type&&("Caret"===b.nativeSelection.type||"None"===b.nativeSelection.type)};a.dom.removeInvisibleSpaces(this.composer.element),i(),this.composer.element.firstChild&&j()&&(this.composer.element.appendChild(g),i(),j()&&(g.parentNode.removeChild(g),this.composer.element.insertBefore(h,this.composer.element.firstChild),i(),j()&&(this.composer.element.appendChild(g),i())))},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},isInThisEditable:function(){var b=this.getSelection(),c=b.focusNode,d=b.anchorNode;return c&&1!==c.nodeType&&(c=c.parentNode),d&&1!==d.nodeType&&(d=d.parentNode),d&&c&&(a.dom.contains(this.composer.element,c)||this.composer.element===c)&&(a.dom.contains(this.composer.element,d)||this.composer.element===d)},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:!1})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d||void 0})},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;d&&(e=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"),e&&(f=(1===e[3]?"rgb("+[e[0],e[1],e[2]].join(", "):"rgba("+e.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:f})))},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(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function c(b){for(var c=b.element,d=c.querySelectorAll(o),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML.replace(/[\uFEFF]/g,"")&&f[g].parentNode.removeChild(f[g])}function d(a){return a.config.useLineBreaks?"DIV":"P"}function e(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?o:n)&&(e=d),d=d.parentNode;return e}function f(a,b){for(var c,d,e,f=a,g=null;f&&b&&f!==b;)1===f.nodeType&&f.matches(p)&&(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 g(b,c,e){return b||(b=e.doc.createElement(c.nodeName||d(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),c.nodeName&&b.nodeName!==c.nodeName&&(b=m.renameElement(b,c.nodeName)),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),c.className&&b.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),b}function h(b,c,e){var f;c.styleProperty&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=""),c.className&&b.classList.remove(c.className),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),c.nodeName&&b.nodeName===c.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=m.renameElement(b,d(e)):m.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function i(b){for(var c=b.querySelectorAll(o)||[],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 j(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 k(c,h,k,l){var m=h?a.lang.object(h).clone(!0):null;m&&(m.nodeName=m.nodeName||k||d(l)),j(c,l);var p,q,r,s=c.cloneRange(),t=s.startContainer,u=s.extractContents(),v=l.doc.createDocumentFragment(),w=m?b(m):null,x=w?a.dom.getParentElement(t,w,null,l.element):null,y=!m||"BLOCKQUOTE"===k&&m.nodeName&&"BLOCKQUOTE"===m.nodeName,z=x||e(t,l.element,y);if(h&&h.nodeName&&"BLOCKQUOTE"===h.nodeName){var A=g(null,h,l);A.appendChild(u),v.appendChild(A),q=[A]}else{if(u.firstChild)for(;u.firstChild;)if(1==u.firstChild.nodeType&&u.firstChild.matches(o))if(h)g(u.firstChild,h,l),u.firstChild.matches(n)&&i(u.firstChild),v.appendChild(u.firstChild);else{i(u.firstChild),r=a.dom.unwrap(u.firstChild);for(var B=0,C=r.length;C>B;B++)v.appendChild(r[B]);v.childNodes.length>0&&v.appendChild(l.doc.createElement("BR"))}else if(h){for(p=g(null,m,l);u.firstChild&&(1!==u.firstChild.nodeType||!u.firstChild.matches(o));)1==u.firstChild.nodeType&&p.matches(n)&&i(u.firstChild),p.appendChild(u.firstChild);v.appendChild(p)}else 1==u.firstChild.nodeType&&i(u.firstChild),v.appendChild(u.firstChild);else v.appendChild(g(null,h,l));q=a.lang.array(v.childNodes).get()}if(z)l.selection.splitElementAtCaret(z,v);else{var D=f(t,l.element);if(D.outerNode&&D.innerNode&&D.parent){if(1===v.childNodes.length){for(;v.firstChild.firstChild;)D.innerNode.appendChild(v.firstChild.firstChild);v.firstChild.appendChild(D.outerNode)}l.selection.splitElementAtCaret(D.parent,v)}else s.insertNode(v)}return q}function l(b,c){var d=a.dom.getParentElement(b,{query:o},null,c.element);return d?d.nodeName:null}var m=a.dom,n="h1, h2, h3, h4, h5, h6, p, pre",o="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",p="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(b,d,e){var f,g,i,j,m,o=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(b,d,e))){j=rangy.saveSelection(b.win);for(var p=0,q=m.length;q>p;p++)h(m[p],e,b)}if(!m){b.selection.isCollapsed()&&(i=a.dom.getParentElement(b.selection.getOwnRanges()[0].startContainer,{query:n+", "+(e&&e.nodeName?e.nodeName.toLowerCase():"div")},null,b.element),i?(j=rangy.saveSelection(b.win),g=b.selection.createRange(),g.selectNode(i),b.selection.setSelection(g)):b.isEmpty()||(j=rangy.saveSelection(b.win),b.selection.selectLine())),f=b.selection.getOwnRanges();for(var r=f.length;r--;)o=o.concat(k(f[r],e,l(f[r].startContainer,b),b))}c(b);for(var s=o.length;s--;)o[s].parentNode||o.splice(s,1);j?rangy.restoreSelection(j):(g=b.selection.createRange(),g.setStartBefore(o[0]),g.setEndAfter(o[o.length-1]),b.selection.setSelection(g)),a.dom.removeInvisibleSpaces(b.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:o})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=m.getParentElement(g[h],d||{query:o},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)[0];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,d=b.selection.getSelectedNode();return d&&d.nodeName&&"PRE"==d.nodeName&&d.firstChild&&d.firstChild.nodeName&&"CODE"==d.firstChild.nodeName?[d]:(c=a.dom.getParentElement(d,{query:"pre code"}),c?[c.parentNode]:!1)}}}(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;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?g=f.attribute:(g={},g[f.attribute]=f.attributeValue||""),h(e,g,f.toggle)),i=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,j=i?a.dom.domNode(e).test({query:i}):!1,(!f.nodeName||f.nodeName===F||j)&&(f.toggle!==!1&&j||!f.nodeName&&e.nodeName===F)&&b(e)&&c(e)&&d(e)&&a.dom.unwrap(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(a.selection.isInThisEditable()){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,d=c.getPreviousNode();if(c.caretIsFirstInSelection()&&d&&1===d.nodeType&&/block/.test(b.win.getComputedStyle(d).display)){if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=c.getSelectedNode(),g=a.dom.domNode(d).commonAncestor(f,b.element);if(curNode=g?a.dom.getParentElement(f,{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,g):null,curNode){for(;curNode.firstChild;)d.appendChild(curNode.firstChild);return c.setAfter(e),!0}if(3===f.nodeType)return d.appendChild(f),c.setAfter(e),!0}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed()){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,c){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li"))if(c){if(a.commands.exec("outdentList"))return}else if(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",a).fire("beforeinteraction:composer",a),setTimeout(function(){this.parent.fire("interaction",a).fire("interaction:composer",a)}.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];return(b.ctrlKey||b.metaKey)&&65===f?(this.selection.selectAll(),void b.preventDefault()):((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)}.bind(this),0))),void(this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(), +k(this,this.element,b.shiftKey))))},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,showToolbarDialogsOnSelection:!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.supportsModernPaste()?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 d=this,e=function(a){var b=d._serialize();d.fire("save",b),d.hide(),a.preventDefault(),a.stopPropagation()};b.observe(d.link,"click",function(){b.hasClass(d.link,c)&&setTimeout(function(){d.hide()},0)}),b.observe(this.container,"keydown",function(b){var c=b.keyCode;c===a.ENTER_KEY&&e(b),c===a.ESCAPE_KEY&&d.cancel()}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",e),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){d.cancel(),a.preventDefault(),a.stopPropagation()}),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))},update:function(a){this.elementToChange=a?a:this.elementToChange,this._interpolate()},show:function(a){var e=this.container.querySelector(d);if(this._observe(),this.update(a),b.addClass(this.link,c),this.container.style.display="",this.isOpen=!0,this.fire("show"),e&&!a)try{e.focus()}catch(f){}},_hide:function(a){this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.isOpen=!1},hide:function(){this._hide(),this.fire("hide")},cancel:function(){this._hide(),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){function b(b,c){var d=b.commands.state(c.name,c.value);return!c.dialog.multiselect&&a.lang.object(d).isArray()&&(d=1===d.length?d[0]:!0),d}var c="wysihtml5-command-disabled",d="wysihtml5-commands-disabled",e="wysihtml5-command-active",f="wysihtml5-action-active",g=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(b,g,h){this.editor=b,this.container="string"==typeof g?document.getElementById(g):g,this.composer=b.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),h&&this.show(),null!=b.config.classNameCommandDisabled&&(c=b.config.classNameCommandDisabled),null!=b.config.classNameCommandsDisabled&&(d=b.config.classNameCommandsDisabled),null!=b.config.classNameCommandActive&&(e=b.config.classNameCommandActive),null!=b.config.classNameActionActive&&(f=b.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}),f._hideAllDialogs(),f._preventInstantFocus(),e=void 0}),d.on("cancel",function(){e&&f.composer.selection.setBookmark(e),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b}),e=void 0,f._preventInstantFocus()}),d.on("hide",function(){f.editor.fire("hide:dialog",{command:c,dialogContainer:g,commandLink:b}),e=void 0})),d},execCommand:function(a,b){this.commandsDisabled||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 c=this,e=this.editor,f=this.container,h=this.commandLinks.concat(this.actionLinks),i=h.length,j=0;i>j;j++)"A"===h[j].nodeName?g.setAttributes({href:"javascript:;",unselectable:"on"}).on(h[j]):g.setAttributes({unselectable:"on"}).on(h[j]);g.delegate(f,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),g.delegate(f,"[data-wysihtml5-command]","click",function(a){var d,e=this,f=e.getAttribute("data-wysihtml5-command"),g=e.getAttribute("data-wysihtml5-command-value"),h=c.commandMapping[f+":"+g];g||!h.dialog?c.execCommand(f,g):(d=b(c.composer,h),h.dialog.show(d)),a.preventDefault()}),g.delegate(f,"[data-wysihtml5-action]","click",function(a){var b=this.getAttribute("data-wysihtml5-action");c.execAction(b),a.preventDefault()}),e.on("interaction:composer",function(a){c.preventFocus||c._updateLinkStates()}),this.container.ownerDocument.addEventListener("click",function(b){a.dom.contains(c.container,b.target)||a.dom.contains(c.composer.element,b.target)||(c._updateLinkStates(),c._preventInstantFocus())},!1),this.editor.config.handleTables&&(e.on("tableselect:composer",function(){c.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),e.on("tableunselect:composer",function(){c.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),e.on("change_view",function(a){setTimeout(function(){c.commandsDisabled="composer"!==a,c._updateLinkStates(),c.commandsDisabled?g.addClass(f,d):g.removeClass(f,d)},0)})},_hideAllDialogs:function(){var a=this.commandMapping;for(var b in a)a[b].dialog&&a[b].dialog.hide()},_preventInstantFocus:function(){this.preventFocus=!0,setTimeout(function(){this.preventFocus=!1}.bind(this),0)},_updateLinkStates:function(){var a,d,h,i,j,k=this.commandMapping,l=this.composer,m=this.actionMapping;for(a in k)i=k[a],this.commandsDisabled?(d=!1,g.removeClass(i.link,e),i.group&&g.removeClass(i.group,e),i.dialog&&i.dialog.hide()):(d=this.composer.commands.state(i.name,i.value),g.removeClass(i.link,c),i.group&&g.removeClass(i.group,c)),(i.state!==d||i.tracksBlankValue)&&(i.state=d,d?i.tracksBlankValue?g.removeClass(i.link,e):(g.addClass(i.link,e),i.group&&g.addClass(i.group,e),!i.dialog||"undefined"!=typeof i.value&&null!==i.value||(d&&"object"==typeof d?(d=b(l,i),i.state=d,j=i.dialog.container.dataset?i.dialog.container.dataset.showdialogonselection:!1,l.config.showToolbarDialogsOnSelection||j?i.dialog.show(d):i.dialog.update(d)):i.dialog.hide())):i.tracksBlankValue?g.addClass(i.link,e):(g.removeClass(i.link,e),i.group&&g.removeClass(i.group,e),i.dialog&&!i.value&&i.dialog.hide()));for(a in m)h=m[a],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea||"source"===this.editor.currentView,h.state?g.addClass(h.link,f):g.removeClass(h.link,f))},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="[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,g=a.quirks.styleParser,h=document.querySelector(":focus"),i=this.container.querySelectorAll(b),j=i.length,k=0,l=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,m=l?l.getAttribute("style"):null,n=m?g.parseColor(m,"color"):null;j>k;k++)e=i[k],e!==h&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(f=(e.dataset.colormode||"rgb").toLowerCase(),f="hex"===f?"hash":f,n?e.value=g.unparseColor(n,f):e.value=g.unparseColor([0,0,0],f)))}})}(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 53265cb..375fb1e 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","supportsModernPaste","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","parents","unshift","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","commonAncestor","parents1","parents2","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","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","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","getColorParseMethod","colorStr","colorTypeConf","colorParseMethods","getColorFormat","rgba","rgb","hex6","radix","hex3","makeParamRegExp","styleParser","parseColor","stylesStr","paramName","paramsRegex","colorType","colorMatch","unparseColor","colorFormat","hexRadix","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","getWebkitSelectionFixNode","blankNode","placeholderRemover","delayedPlaceholderRemover","minWidth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","keyDownHandler","setAfter","ctrlKey","metaKey","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","canAppendChild","anchorNodeTagNameLower","voidElements","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","selectAll","blankEndNode","blankStartNode","doSelect","notSelected","getHtml","getPlainText","isEndToEndInNode","nodeNames","isInThisEditable","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","colorVals","colString","bgColorStyle","correctOptionsForSimilarityCheck","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","similarOptions","similarOuterBlock","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","nodeQueryMatch","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","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","commonAncestorNode","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","showToolbarDialogsOnSelection","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","cancel","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","update","firstField","isOpen","_hide","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","getCommandState","dialog","multiselect","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","_hideAllDialogs","_preventInstantFocus","commandsDisabled","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","commandObj","commandMapping","preventFocus","displayDialogAttributeValue","actionMapping","dataset","showdialogonselection","Dialog_createTable","Dialog_foreColorStyle","colourMode","firstElement","colourStr","colour","colormode","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","aelement","undefined","fnode","focusNode","foffset","focusOffset","felement","prevTxt","shift","curText","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","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","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","supportsModernPaste","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","parents","unshift","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","commonAncestor","parents1","parents2","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","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","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","getColorParseMethod","colorStr","colorTypeConf","colorParseMethods","getColorFormat","rgba","rgb","hex6","radix","hex3","makeParamRegExp","styleParser","parseColor","stylesStr","paramName","paramsRegex","colorType","colorMatch","unparseColor","colorFormat","hexRadix","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","getWebkitSelectionFixNode","blankNode","placeholderRemover","delayedPlaceholderRemover","minWidth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","keyDownHandler","setAfter","ctrlKey","metaKey","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","canAppendChild","anchorNodeTagNameLower","voidElements","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","selectAll","blankEndNode","blankStartNode","doSelect","notSelected","getHtml","getPlainText","isEndToEndInNode","nodeNames","isInThisEditable","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","colorVals","colString","bgColorStyle","correctOptionsForSimilarityCheck","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","similarOptions","similarOuterBlock","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","nodeQueryMatch","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","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","commonAncestorNode","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","showToolbarDialogsOnSelection","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","cancel","fields","_interpolate","avoidHiddenFields","field","fieldName","focusedElement","elementToChange","defaultValue","update","firstField","isOpen","_hide","linkStyles","wrapperStyles","margin","opacity","padding","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","getCommandState","dialog","multiselect","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","classNameCommandDisabled","classNameCommandsDisabled","classNameCommandActive","classNameActionActive","speechInputLinks","group","tracksBlankValue","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","_hideAllDialogs","_preventInstantFocus","commandsDisabled","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","commandObj","commandMapping","preventFocus","displayDialogAttributeValue","actionMapping","dataset","showdialogonselection","Dialog_createTable","Dialog_foreColorStyle","colourMode","firstElement","colourStr","colour","colormode","Dialog_fontSizeStyle"],"mappings":"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"} \ No newline at end of file diff --git a/dist/wysihtml.js b/dist/wysihtml.js index d386cb2..33f147c 100644 --- a/dist/wysihtml.js +++ b/dist/wysihtml.js @@ -1,5 +1,5 @@ /** - * @license wysihtml v0.5.0-beta12 + * @license wysihtml v0.5.0-beta13 * https://github.com/Voog/wysihtml * * Author: Christopher Blum (https://github.com/tiff) @@ -10,7 +10,7 @@ * */ var wysihtml5 = { - version: "0.5.0-beta12", + version: "0.5.0-beta13", // namespaces commands: {}, @@ -405,6 +405,8 @@ var wysihtml5 = { return all; }; + + var normalizeFix = function() { var f = Node.prototype.normalize; var nf = function() { @@ -412,13 +414,15 @@ var wysihtml5 = { s = this.ownerDocument.defaultView.getSelection(), anode = s.anchorNode, aoffset = s.anchorOffset, + aelement = anode && anode.nodeType === 1 && anode.childNodes.length > 0 ? anode.childNodes[aoffset] : undefined, fnode = s.focusNode, foffset = s.focusOffset, + felement = fnode && fnode.nodeType === 1 && foffset > 0 ? fnode.childNodes[foffset -1] : undefined, r = this.ownerDocument.createRange(), prevTxt = texts.shift(), curText = prevTxt ? texts.shift() : null; - if ((anode === fnode && foffset < aoffset) || (anode !== fnode && (anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_PRECEDING))) { + if ((anode === fnode && foffset < aoffset) || (anode !== fnode && (anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_PRECEDING) && !(anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_CONTAINS))) { fnode = [anode, anode = fnode][0]; foffset = [aoffset, aoffset = foffset][0]; } @@ -442,13 +446,20 @@ var wysihtml5 = { } } + if (felement) { + foffset = Array.prototype.indexOf.call(felement.parentNode.childNodes, felement) + 1; + } + + if (aelement) { + aoffset = Array.prototype.indexOf.call(aelement.parentNode.childNodes, aelement); + } + if (anode && anode.parentNode && fnode && fnode.parentNode) { r.setStart(anode, aoffset); r.setEnd(fnode, foffset); s.removeAllRanges(); s.addRange(r); } - }; Node.prototype.normalize = nf; }; diff --git a/dist/wysihtml.min.js b/dist/wysihtml.min.js index eb8648e..3d05b83 100644 --- a/dist/wysihtml.min.js +++ b/dist/wysihtml.min.js @@ -1,10 +1,10 @@ -/*! wysihtml - v0.5.0-beta12 (2015-07-31) */ +/*! wysihtml - v0.5.0-beta13 (2015-08-18) */ -var wysihtml5={version:"0.5.0-beta12",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},supportsModernPaste: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){function b(a,b){for(var c=[a],d=a;b&&d&&d!==b||!b&&d;)c.unshift(d),d=d.parentNode;return c}a.dom.domNode=function(c){var d=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(b){var d=b?/^\s*$/g:/^[\r\n]*$/g;return c.nodeType===a.TEXT_NODE&&d.test(c.data)},visible:function(){var b=!/^\s*$/g.test(a.dom.getTextContent(c));return b||1===c.nodeType&&c.querySelector("img, br, hr, object, embed, canvas, input, textarea")&&(b=!0),b}},prev:function(b){var e=c.previousSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(b):e:null},next:function(b){var e=c.nextSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(b):e:null},commonAncestor:function(a,d){var e=b(c,d),f=b(a,d);if(e[0]!=f[0])return null;for(var g=0;g0)for(var f=!1,g=Array.isArray(b.styleProperty)?b.styleProperty:[b.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),c.style[d]){if(!b.styleValue){f=!0;break}if(b.styleValue instanceof RegExp){if(c.style[d].trim().match(b.styleValue).length>0){f=!0;break}}else if(Array.isArray(b.styleValue)){if(b.styleValue.indexOf(c.style[d].trim())){f=!0;break}}else if(b.styleValue===c.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(b.attribute){var j=a.dom.getAttributes(c),k=[],l=!1;Array.isArray(b.attribute)?k=b.attribute:k[b.attribute]=b.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&&/^[\n\r]*$/.test(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+" 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){function b(a){var b,c;for(b in d)if(d.hasOwnProperty(b)&&(c=d[b],c.regex.test(a)))return c}function c(a){var c=b(a);return c?c.name:void 0}var d={rgba:{regex:/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,name:"rgba"},rgb:{regex:/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,name:"rgb"},hex6:{regex:/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,name:"hex",radix:16},hex3:{regex:/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,name:"hex",radix:16}},e=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={getColorParseMethod:b,getColorFormat:c,parseColor:function(c,f){var g,h,i,j,k,l=c;if(f){if(g=e(f),!(h=c.match(g)))return!1;h=h.pop().split(":")[1],l=a.lang.string(h).trim()}return(i=b(l))&&(j=l.match(i.regex))?(k=i.radix||10,i===d.hex3?(j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k)*k+parseInt(a,k):parseFloat(a)})):(j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k):parseFloat(a)}))):!1},unparseColor:function(a,b){var c=16;return"hex"===b?(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"hash"===b?"#"+(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"rgb"===b?"rgb("+a[0]+","+a[1]+","+a[2]+")":"rgba"===b?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"csv"===b?a[0]+","+a[1]+","+a[2]+","+a[3]: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(e("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(b){var c=document.createElement("span"),d=function(a){b.removeEventListener("mouseup",d),b.removeEventListener("keydown",d),b.removeEventListener("touchstart",d),b.removeEventListener("focus",d),b.removeEventListener("blur",d),b.removeEventListener("paste",e),b.removeEventListener("drop",e),b.removeEventListener("beforepaste",e),c&&c.parentNode&&c.parentNode.removeChild(c)},e=function(a){c&&c.parentNode&&setTimeout(d,0)};return c.appendChild(document.createTextNode(a.INVISIBLE_SPACE)),c.className="_wysihtml5-temp-caret-fix",c.style.display="block",c.style.minWidth="1px",c.style.height="0px",b.addEventListener("mouseup",d),b.addEventListener("keydown",d),b.addEventListener("touchstart",d),b.addEventListener("focus",d),b.addEventListener("blur",d),b.addEventListener("paste",e),b.addEventListener("drop",e),b.addEventListener("beforepaste",e),c}function e(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 f=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),e=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=e?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=f.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&e&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&e?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();e(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=null;if(i&&(j=1===i.nodeType&&a.dom.hasClass(i,this.unselectableClass)?i:a.dom.domNode(i).lastLeafNode()),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,e,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)):(e=this.doc.createTextNode(a.INVISIBLE_SPACE),f.insert(e).after(d[0]),l.setStartBefore(e),l.setEndAfter(e)),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)},canAppendChild:function(a){var b,c,d=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],e=this.getRange();return b=a||e.startContainer,b&&(c=(b.tagName||b.nodeName).toLowerCase()),-1===d.indexOf(c)},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=f.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=f.query(this.contain,"."+this.unselectableClass),c=f.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},selectAll:function(){var b,c=this.createRange(),e=this.composer,f=this,g=d(this.composer.element),h=d(this.composer.element),i=function(){c.setStart(e.element,0),c.setEnd(e.element,e.element.childNodes.length),b=f.setSelection(c)},j=function(){return!b||b.nativeSelection&&b.nativeSelection.type&&("Caret"===b.nativeSelection.type||"None"===b.nativeSelection.type)};a.dom.removeInvisibleSpaces(this.composer.element),i(),this.composer.element.firstChild&&j()&&(this.composer.element.appendChild(g),i(),j()&&(g.parentNode.removeChild(g),this.composer.element.insertBefore(h,this.composer.element.firstChild),i(),j()&&(this.composer.element.appendChild(g),i())))},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},isInThisEditable:function(){var b=this.getSelection(),c=b.focusNode,d=b.anchorNode;return c&&1!==c.nodeType&&(c=c.parentNode),d&&1!==d.nodeType&&(d=d.parentNode),d&&c&&(a.dom.contains(this.composer.element,c)||this.composer.element===c)&&(a.dom.contains(this.composer.element,d)||this.composer.element===d)},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:!1})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d||void 0})},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;d&&(e=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"),e&&(f=(1===e[3]?"rgb("+[e[0],e[1],e[2]].join(", "):"rgba("+e.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:f})))},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(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function c(b){for(var c=b.element,d=c.querySelectorAll(o),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML.replace(/[\uFEFF]/g,"")&&f[g].parentNode.removeChild(f[g])}function d(a){return a.config.useLineBreaks?"DIV":"P"}function e(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?o:n)&&(e=d),d=d.parentNode;return e}function f(a,b){for(var c,d,e,f=a,g=null;f&&b&&f!==b;)1===f.nodeType&&f.matches(p)&&(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 g(b,c,e){return b||(b=e.doc.createElement(c.nodeName||d(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),c.nodeName&&b.nodeName!==c.nodeName&&(b=m.renameElement(b,c.nodeName)),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),c.className&&b.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),b}function h(b,c,e){var f;c.styleProperty&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=""),c.className&&b.classList.remove(c.className),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),c.nodeName&&b.nodeName===c.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=m.renameElement(b,d(e)):m.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function i(b){for(var c=b.querySelectorAll(o)||[],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 j(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 k(c,h,k,l){var m=h?a.lang.object(h).clone(!0):null;m&&(m.nodeName=m.nodeName||k||d(l)),j(c,l);var p,q,r,s=c.cloneRange(),t=s.startContainer,u=s.extractContents(),v=l.doc.createDocumentFragment(),w=m?b(m):null,x=w?a.dom.getParentElement(t,w,null,l.element):null,y=!m||"BLOCKQUOTE"===k&&m.nodeName&&"BLOCKQUOTE"===m.nodeName,z=x||e(t,l.element,y);if(h&&h.nodeName&&"BLOCKQUOTE"===h.nodeName){var A=g(null,h,l);A.appendChild(u),v.appendChild(A),q=[A]}else{if(u.firstChild)for(;u.firstChild;)if(1==u.firstChild.nodeType&&u.firstChild.matches(o))if(h)g(u.firstChild,h,l),u.firstChild.matches(n)&&i(u.firstChild),v.appendChild(u.firstChild);else{i(u.firstChild),r=a.dom.unwrap(u.firstChild);for(var B=0,C=r.length;C>B;B++)v.appendChild(r[B]);v.childNodes.length>0&&v.appendChild(l.doc.createElement("BR"))}else if(h){for(p=g(null,m,l);u.firstChild&&(1!==u.firstChild.nodeType||!u.firstChild.matches(o));)1==u.firstChild.nodeType&&p.matches(n)&&i(u.firstChild),p.appendChild(u.firstChild);v.appendChild(p)}else 1==u.firstChild.nodeType&&i(u.firstChild),v.appendChild(u.firstChild);else v.appendChild(g(null,h,l));q=a.lang.array(v.childNodes).get()}if(z)l.selection.splitElementAtCaret(z,v);else{var D=f(t,l.element);if(D.outerNode&&D.innerNode&&D.parent){if(1===v.childNodes.length){for(;v.firstChild.firstChild;)D.innerNode.appendChild(v.firstChild.firstChild);v.firstChild.appendChild(D.outerNode)}l.selection.splitElementAtCaret(D.parent,v)}else s.insertNode(v)}return q}function l(b,c){var d=a.dom.getParentElement(b,{query:o},null,c.element);return d?d.nodeName:null}var m=a.dom,n="h1, h2, h3, h4, h5, h6, p, pre",o="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",p="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(b,d,e){var f,g,i,j,m,o=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(b,d,e))){j=rangy.saveSelection(b.win);for(var p=0,q=m.length;q>p;p++)h(m[p],e,b)}if(!m){b.selection.isCollapsed()&&(i=a.dom.getParentElement(b.selection.getOwnRanges()[0].startContainer,{query:n+", "+(e&&e.nodeName?e.nodeName.toLowerCase():"div")},null,b.element),i?(j=rangy.saveSelection(b.win),g=b.selection.createRange(),g.selectNode(i),b.selection.setSelection(g)):b.isEmpty()||(j=rangy.saveSelection(b.win),b.selection.selectLine())),f=b.selection.getOwnRanges();for(var r=f.length;r--;)o=o.concat(k(f[r],e,l(f[r].startContainer,b),b))}c(b);for(var s=o.length;s--;)o[s].parentNode||o.splice(s,1);j?rangy.restoreSelection(j):(g=b.selection.createRange(),g.setStartBefore(o[0]),g.setEndAfter(o[o.length-1]),b.selection.setSelection(g)),a.dom.removeInvisibleSpaces(b.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:o})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=m.getParentElement(g[h],d||{query:o},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)[0];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,d=b.selection.getSelectedNode();return d&&d.nodeName&&"PRE"==d.nodeName&&d.firstChild&&d.firstChild.nodeName&&"CODE"==d.firstChild.nodeName?[d]:(c=a.dom.getParentElement(d,{query:"pre code"}),c?[c.parentNode]:!1)}}}(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;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?g=f.attribute:(g={},g[f.attribute]=f.attributeValue||""),h(e,g,f.toggle)),i=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,j=i?a.dom.domNode(e).test({query:i}):!1,(!f.nodeName||f.nodeName===F||j)&&(f.toggle!==!1&&j||!f.nodeName&&e.nodeName===F)&&b(e)&&c(e)&&d(e)&&a.dom.unwrap(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(a.selection.isInThisEditable()){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,d=c.getPreviousNode();if(c.caretIsFirstInSelection()&&d&&1===d.nodeType&&/block/.test(b.win.getComputedStyle(d).display)){if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=c.getSelectedNode(),g=a.dom.domNode(d).commonAncestor(f,b.element);if(curNode=g?a.dom.getParentElement(f,{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,g):null,curNode){for(;curNode.firstChild;)d.appendChild(curNode.firstChild);return c.setAfter(e),!0}if(3===f.nodeType)return d.appendChild(f),c.setAfter(e),!0}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed()){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,c){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li"))if(c){if(a.commands.exec("outdentList"))return}else if(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",a).fire("beforeinteraction:composer",a),setTimeout(function(){this.parent.fire("interaction",a).fire("interaction:composer",a)}.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];return(b.ctrlKey||b.metaKey)&&65===f?(this.selection.selectAll(),void b.preventDefault()):((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)}.bind(this),0))),void(this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(),k(this,this.element,b.shiftKey))))},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,showToolbarDialogsOnSelection:!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.supportsModernPaste()?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); +var wysihtml5={version:"0.5.0-beta13",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(++c0?c.childNodes[e]:void 0,g=b.focusNode,h=b.focusOffset,i=g&&1===g.nodeType&&h>0?g.childNodes[h-1]:void 0,j=this.ownerDocument.createRange(),k=a.shift(),l=k?a.shift():null;for((c===g&&e>h||c!==g&&c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_PRECEDING&&!(c.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_CONTAINS))&&(g=[c,c=g][0],h=[e,e=h][0]);k&&l;)l.previousSibling&&l.previousSibling===k?(c===l&&(c=k,e=k.nodeValue.length+e),g===l&&(g=k,h=k.nodeValue.length+h),k.nodeValue=k.nodeValue+l.nodeValue,l.parentNode.removeChild(l),l=a.shift()):(k=l,l=a.shift());i&&(h=Array.prototype.indexOf.call(i.parentNode.childNodes,i)+1),f&&(e=Array.prototype.indexOf.call(f.parentNode.childNodes,f)),c&&c.parentNode&&g&&g.parentNode&&(j.setStart(c,e),j.setEnd(g,h),b.removeAllRanges(),b.addRange(j))});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},supportsModernPaste: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){function b(a,b){for(var c=[a],d=a;b&&d&&d!==b||!b&&d;)c.unshift(d),d=d.parentNode;return c}a.dom.domNode=function(c){var d=[a.ELEMENT_NODE,a.TEXT_NODE];return{is:{emptyTextNode:function(b){var d=b?/^\s*$/g:/^[\r\n]*$/g;return c.nodeType===a.TEXT_NODE&&d.test(c.data)},visible:function(){var b=!/^\s*$/g.test(a.dom.getTextContent(c));return b||1===c.nodeType&&c.querySelector("img, br, hr, object, embed, canvas, input, textarea")&&(b=!0),b}},prev:function(b){var e=c.previousSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).prev(b):e:null},next:function(b){var e=c.nextSibling,f=b&&b.nodeTypes?b.nodeTypes:d;return e?!a.lang.array(f).contains(e.nodeType)||b&&b.ignoreBlankTexts&&a.dom.domNode(e).is.emptyTextNode(!0)?a.dom.domNode(e).next(b):e:null},commonAncestor:function(a,d){var e=b(c,d),f=b(a,d);if(e[0]!=f[0])return null;for(var g=0;g0)for(var f=!1,g=Array.isArray(b.styleProperty)?b.styleProperty:[b.styleProperty],h=0,i=g.length;i>h;h++){if(d=a.browser.fixStyleKey(g[h]),c.style[d]){if(!b.styleValue){f=!0;break}if(b.styleValue instanceof RegExp){if(c.style[d].trim().match(b.styleValue).length>0){f=!0;break}}else if(Array.isArray(b.styleValue)){if(b.styleValue.indexOf(c.style[d].trim())){f=!0;break}}else if(b.styleValue===c.style[d].trim().replace(/, /g,",")){f=!0;break}}if(!f)return!1}if(b.attribute){var j=a.dom.getAttributes(c),k=[],l=!1;Array.isArray(b.attribute)?k=b.attribute:k[b.attribute]=b.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&&/^[\n\r]*$/.test(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+" 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){function b(a){var b,c;for(b in d)if(d.hasOwnProperty(b)&&(c=d[b],c.regex.test(a)))return c}function c(a){var c=b(a);return c?c.name:void 0}var d={rgba:{regex:/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,name:"rgba"},rgb:{regex:/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,name:"rgb"},hex6:{regex:/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,name:"hex",radix:16},hex3:{regex:/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,name:"hex",radix:16}},e=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={getColorParseMethod:b,getColorFormat:c,parseColor:function(c,f){var g,h,i,j,k,l=c;if(f){if(g=e(f),!(h=c.match(g)))return!1;h=h.pop().split(":")[1],l=a.lang.string(h).trim()}return(i=b(l))&&(j=l.match(i.regex))?(k=i.radix||10,i===d.hex3?(j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k)*k+parseInt(a,k):parseFloat(a)})):(j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,k):parseFloat(a)}))):!1},unparseColor:function(a,b){var c=16;return"hex"===b?(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"hash"===b?"#"+(a[0].toString(c)+a[1].toString(c)+a[2].toString(c)).toUpperCase():"rgb"===b?"rgb("+a[0]+","+a[1]+","+a[2]+")":"rgba"===b?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"csv"===b?a[0]+","+a[1]+","+a[2]+","+a[3]: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(e("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(b){var c=document.createElement("span"),d=function(a){b.removeEventListener("mouseup",d),b.removeEventListener("keydown",d),b.removeEventListener("touchstart",d),b.removeEventListener("focus",d),b.removeEventListener("blur",d),b.removeEventListener("paste",e),b.removeEventListener("drop",e),b.removeEventListener("beforepaste",e),c&&c.parentNode&&c.parentNode.removeChild(c)},e=function(a){c&&c.parentNode&&setTimeout(d,0)};return c.appendChild(document.createTextNode(a.INVISIBLE_SPACE)),c.className="_wysihtml5-temp-caret-fix",c.style.display="block",c.style.minWidth="1px",c.style.height="0px",b.addEventListener("mouseup",d),b.addEventListener("keydown",d),b.addEventListener("touchstart",d),b.addEventListener("focus",d),b.addEventListener("blur",d),b.addEventListener("paste",e),b.addEventListener("drop",e),b.addEventListener("beforepaste",e),c}function e(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 f=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),e=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=e?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=f.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&e&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&e?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();e(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=null;if(i&&(j=1===i.nodeType&&a.dom.hasClass(i,this.unselectableClass)?i:a.dom.domNode(i).lastLeafNode()),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,e,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)):(e=this.doc.createTextNode(a.INVISIBLE_SPACE),f.insert(e).after(d[0]),l.setStartBefore(e),l.setEndAfter(e)),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)},canAppendChild:function(a){var b,c,d=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],e=this.getRange();return b=a||e.startContainer,b&&(c=(b.tagName||b.nodeName).toLowerCase()),-1===d.indexOf(c)},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=f.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=f.query(this.contain,"."+this.unselectableClass),c=f.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},selectAll:function(){var b,c=this.createRange(),e=this.composer,f=this,g=d(this.composer.element),h=d(this.composer.element),i=function(){c.setStart(e.element,0),c.setEnd(e.element,e.element.childNodes.length),b=f.setSelection(c)},j=function(){return!b||b.nativeSelection&&b.nativeSelection.type&&("Caret"===b.nativeSelection.type||"None"===b.nativeSelection.type)};a.dom.removeInvisibleSpaces(this.composer.element),i(),this.composer.element.firstChild&&j()&&(this.composer.element.appendChild(g),i(),j()&&(g.parentNode.removeChild(g),this.composer.element.insertBefore(h,this.composer.element.firstChild),i(),j()&&(this.composer.element.appendChild(g),i())))},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},isInThisEditable:function(){var b=this.getSelection(),c=b.focusNode,d=b.anchorNode;return c&&1!==c.nodeType&&(c=c.parentNode),d&&1!==d.nodeType&&(d=d.parentNode),d&&c&&(a.dom.contains(this.composer.element,c)||this.composer.element===c)&&(a.dom.contains(this.composer.element,d)||this.composer.element===d)},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:!1})},state:function(b,c,d){return a.commands.formatInline.state(b,c,{styleProperty:"fontSize",styleValue:d||void 0})},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;d&&(e=a.quirks.styleParser.parseColor("color:"+(d.color||d),"color"),e&&(f=(1===e[3]?"rgb("+[e[0],e[1],e[2]].join(", "):"rgba("+e.join(", "))+")",a.commands.formatInline.exec(b,c,{styleProperty:"color",styleValue:f})))},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(a){return{nodeName:a.nodeName||null,className:a.classRegExp?null:a.className||null,classRegExp:a.classRegExp||null,styleProperty:a.styleProperty||null}}function c(b){for(var c=b.element,d=c.querySelectorAll(o),e=c.querySelectorAll(b.config.classNames.uneditableContainer),f=a.lang.array(d).without(e),g=f.length;g--;)""===f[g].innerHTML.replace(/[\uFEFF]/g,"")&&f[g].parentNode.removeChild(f[g])}function d(a){return a.config.useLineBreaks?"DIV":"P"}function e(a,b,c){for(var d=a,e=null;d&&b&&d!==b;)1===d.nodeType&&d.matches(c?o:n)&&(e=d),d=d.parentNode;return e}function f(a,b){for(var c,d,e,f=a,g=null;f&&b&&f!==b;)1===f.nodeType&&f.matches(p)&&(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 g(b,c,e){return b||(b=e.doc.createElement(c.nodeName||d(e)),b.appendChild(e.doc.createTextNode(a.INVISIBLE_SPACE))),c.nodeName&&b.nodeName!==c.nodeName&&(b=m.renameElement(b,c.nodeName)),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),c.className&&b.classList.add(c.className),c.styleProperty&&"undefined"!=typeof c.styleValue&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=c.styleValue),b}function h(b,c,e){var f;c.styleProperty&&(b.style[a.browser.fixStyleKey(c.styleProperty)]=""),c.className&&b.classList.remove(c.className),c.classRegExp&&(b.className=b.className.replace(c.classRegExp,"")),null!==b.getAttribute("class")&&""===b.getAttribute("class").trim()&&b.removeAttribute("class"),c.nodeName&&b.nodeName===c.nodeName&&(f=b.getAttribute("style"),f&&""!==f.trim()?b=m.renameElement(b,d(e)):m.unwrap(b)),null!==b.getAttribute("style")&&""===b.getAttribute("style").trim()&&b.removeAttribute("style")}function i(b){for(var c=b.querySelectorAll(o)||[],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 j(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 k(c,h,k,l){var m=h?a.lang.object(h).clone(!0):null;m&&(m.nodeName=m.nodeName||k||d(l)),j(c,l);var p,q,r,s=c.cloneRange(),t=s.startContainer,u=s.extractContents(),v=l.doc.createDocumentFragment(),w=m?b(m):null,x=w?a.dom.getParentElement(t,w,null,l.element):null,y=!m||"BLOCKQUOTE"===k&&m.nodeName&&"BLOCKQUOTE"===m.nodeName,z=x||e(t,l.element,y);if(h&&h.nodeName&&"BLOCKQUOTE"===h.nodeName){var A=g(null,h,l);A.appendChild(u),v.appendChild(A),q=[A]}else{if(u.firstChild)for(;u.firstChild;)if(1==u.firstChild.nodeType&&u.firstChild.matches(o))if(h)g(u.firstChild,h,l),u.firstChild.matches(n)&&i(u.firstChild),v.appendChild(u.firstChild);else{i(u.firstChild),r=a.dom.unwrap(u.firstChild);for(var B=0,C=r.length;C>B;B++)v.appendChild(r[B]);v.childNodes.length>0&&v.appendChild(l.doc.createElement("BR"))}else if(h){for(p=g(null,m,l);u.firstChild&&(1!==u.firstChild.nodeType||!u.firstChild.matches(o));)1==u.firstChild.nodeType&&p.matches(n)&&i(u.firstChild),p.appendChild(u.firstChild);v.appendChild(p)}else 1==u.firstChild.nodeType&&i(u.firstChild),v.appendChild(u.firstChild);else v.appendChild(g(null,h,l));q=a.lang.array(v.childNodes).get()}if(z)l.selection.splitElementAtCaret(z,v);else{var D=f(t,l.element);if(D.outerNode&&D.innerNode&&D.parent){if(1===v.childNodes.length){for(;v.firstChild.firstChild;)D.innerNode.appendChild(v.firstChild.firstChild);v.firstChild.appendChild(D.outerNode)}l.selection.splitElementAtCaret(D.parent,v)}else s.insertNode(v)}return q}function l(b,c){var d=a.dom.getParentElement(b,{query:o},null,c.element);return d?d.nodeName:null}var m=a.dom,n="h1, h2, h3, h4, h5, h6, p, pre",o="h1, h2, h3, h4, h5, h6, p, pre, div, blockquote",p="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(b,d,e){var f,g,i,j,m,o=[];if("string"==typeof e&&(e={nodeName:e.toUpperCase()}),e&&e.toggle&&(m=this.state(b,d,e))){j=rangy.saveSelection(b.win);for(var p=0,q=m.length;q>p;p++)h(m[p],e,b)}if(!m){b.selection.isCollapsed()&&(i=a.dom.getParentElement(b.selection.getOwnRanges()[0].startContainer,{query:n+", "+(e&&e.nodeName?e.nodeName.toLowerCase():"div")},null,b.element),i?(j=rangy.saveSelection(b.win),g=b.selection.createRange(),g.selectNode(i),b.selection.setSelection(g)):b.isEmpty()||(j=rangy.saveSelection(b.win),b.selection.selectLine())),f=b.selection.getOwnRanges();for(var r=f.length;r--;)o=o.concat(k(f[r],e,l(f[r].startContainer,b),b))}c(b);for(var s=o.length;s--;)o[s].parentNode||o.splice(s,1);j?rangy.restoreSelection(j):(g=b.selection.createRange(),g.setStartBefore(o[0]),g.setEndAfter(o[o.length-1]),b.selection.setSelection(g)),a.dom.removeInvisibleSpaces(b.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:o})}.bind(this)),g=b.selection.getSelectedOwnNodes(),h=0,i=g.length;i>h;h++)e=m.getParentElement(g[h],d||{query:o},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)[0];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,d=b.selection.getSelectedNode();return d&&d.nodeName&&"PRE"==d.nodeName&&d.firstChild&&d.firstChild.nodeName&&"CODE"==d.firstChild.nodeName?[d]:(c=a.dom.getParentElement(d,{query:"pre code"}),c?[c.parentNode]:!1)}}}(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;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?g=f.attribute:(g={},g[f.attribute]=f.attributeValue||""),h(e,g,f.toggle)),i=f.nodeName?H[f.nodeName.toLowerCase()]||f.nodeName.toLowerCase():null,j=i?a.dom.domNode(e).test({query:i}):!1,(!f.nodeName||f.nodeName===F||j)&&(f.toggle!==!1&&j||!f.nodeName&&e.nodeName===F)&&b(e)&&c(e)&&d(e)&&a.dom.unwrap(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(a.selection.isInThisEditable()){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,d=c.getPreviousNode();if(c.caretIsFirstInSelection()&&d&&1===d.nodeType&&/block/.test(b.win.getComputedStyle(d).display)){if(/^\s*$/.test(d.textContent||d.innerText))return d.parentNode.removeChild(d),!0;if(d.lastChild){var e=d.lastChild,f=c.getSelectedNode(),g=a.dom.domNode(d).commonAncestor(f,b.element);if(curNode=g?a.dom.getParentElement(f,{query:"h1, h2, h3, h4, h5, h6, p, pre, div, blockquote"},!1,g):null,curNode){for(;curNode.firstChild;)d.appendChild(curNode.firstChild);return c.setAfter(e),!0}if(3===f.nodeType)return d.appendChild(f),c.setAfter(e),!0}}return!1},j=function(a,b){var c=b.selection;b.element;if(c.isCollapsed()){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,c){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("li"))if(c){if(a.commands.exec("outdentList"))return}else if(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",a).fire("beforeinteraction:composer",a),setTimeout(function(){this.parent.fire("interaction",a).fire("interaction:composer",a)}.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];return(b.ctrlKey||b.metaKey)&&65===f?(this.selection.selectAll(),void b.preventDefault()):((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)}.bind(this),0))),void(this.config.handleTabKey&&f===a.TAB_KEY&&(b.preventDefault(), +k(this,this.element,b.shiftKey))))},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,showToolbarDialogsOnSelection:!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.supportsModernPaste()?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 be89c48..166520c 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","supportsModernPaste","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","parents","unshift","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","commonAncestor","parents1","parents2","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","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","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","getColorParseMethod","colorStr","colorTypeConf","colorParseMethods","getColorFormat","rgba","rgb","hex6","radix","hex3","makeParamRegExp","styleParser","parseColor","stylesStr","paramName","paramsRegex","colorType","colorMatch","unparseColor","colorFormat","hexRadix","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","getWebkitSelectionFixNode","blankNode","placeholderRemover","delayedPlaceholderRemover","minWidth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","keyDownHandler","setAfter","ctrlKey","metaKey","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","canAppendChild","anchorNodeTagNameLower","voidElements","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","selectAll","blankEndNode","blankStartNode","doSelect","notSelected","getHtml","getPlainText","isEndToEndInNode","nodeNames","isInThisEditable","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","colorVals","colString","bgColorStyle","correctOptionsForSimilarityCheck","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","similarOptions","similarOuterBlock","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","nodeQueryMatch","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","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","commonAncestorNode","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","showToolbarDialogsOnSelection","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","aelement","undefined","fnode","focusNode","foffset","focusOffset","felement","prevTxt","shift","curText","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","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","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","supportsModernPaste","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","parents","unshift","domNode","defaultNodeTypes","is","emptyTextNode","ignoreWhitespace","regx","visible","isVisible","getTextContent","prev","prevNode","types","ignoreBlankTexts","commonAncestor","parents1","parents2","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","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","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","getColorParseMethod","colorStr","colorTypeConf","colorParseMethods","getColorFormat","rgba","rgb","hex6","radix","hex3","makeParamRegExp","styleParser","parseColor","stylesStr","paramName","paramsRegex","colorType","colorMatch","unparseColor","colorFormat","hexRadix","parseFontSize","_getCumulativeOffsetTop","offsetTop","offsetParent","getDepth","getWebkitSelectionFixNode","blankNode","placeholderRemover","delayedPlaceholderRemover","minWidth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setSelection","setBefore","createTemporaryCaretSpaceAfter","caretPlaceholder","caretPlaceholderText","keyDownHandler","setAfter","ctrlKey","metaKey","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","canAppendChild","anchorNodeTagNameLower","voidElements","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","selectAll","blankEndNode","blankStartNode","doSelect","notSelected","getHtml","getPlainText","isEndToEndInNode","nodeNames","isInThisEditable","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","colorVals","colString","bgColorStyle","correctOptionsForSimilarityCheck","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","similarOptions","similarOuterBlock","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","nodeQueryMatch","queryAliasMap","getSelectedTextNodes","findSimilarTextNodeWrapper","exact","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","commonAncestorNode","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","showToolbarDialogsOnSelection","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 13d511f..ddca69e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wysihtml", - "version": "0.5.0-beta12", + "version": "0.5.0-beta13", "devDependencies": { "grunt": "~0.4.4", "grunt-contrib-concat": "~0.4.0",