<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/tiny_mce/plugins/autoresize/editor_plugin.js</filename>
    </added>
    <added>
      <filename>lib/tiny_mce/plugins/autoresize/editor_plugin_src.js</filename>
    </added>
    <added>
      <filename>lib/tiny_mce/plugins/wordcount/editor_plugin.js</filename>
    </added>
    <added>
      <filename>lib/tiny_mce/plugins/wordcount/editor_plugin_src.js</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -123,7 +123,7 @@ function init() {
 	// Parse xml and doctype
 	xmlVer = getReItem(/&lt;\?\s*?xml.*?version\s*?=\s*?&quot;(.*?)&quot;.*?\?&gt;/gi, h, 1);
 	xmlEnc = getReItem(/&lt;\?\s*?xml.*?encoding\s*?=\s*?&quot;(.*?)&quot;.*?\?&gt;/gi, h, 1);
-	docType = getReItem(/&lt;\!DOCTYPE.*?&gt;/gi, h, 0);
+	docType = getReItem(/&lt;\!DOCTYPE.*?&gt;/gi, h.replace(/\n/g, ''), 0).replace(/ +/g, ' ');
 	f.langcode.value = getReItem(/lang=&quot;(.*?)&quot;/gi, h, 1);
 
 	// Parse title</diff>
      <filename>lib/tiny_mce/plugins/fullpage/js/fullpage.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var d=tinymce.DOM,b=tinymce.dom.Element,a=tinymce.dom.Event,e=tinymce.each,c=tinymce.is;tinymce.create(&quot;tinymce.plugins.InlinePopups&quot;,{init:function(f,g){f.onBeforeRenderUI.add(function(){f.windowManager=new tinymce.InlineWindowManager(f);d.loadCSS(g+&quot;/skins/&quot;+(f.settings.inlinepopups_skin||&quot;clearlooks2&quot;)+&quot;/window.css&quot;)})},getInfo:function(){return{longname:&quot;InlinePopups&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.create(&quot;tinymce.InlineWindowManager:tinymce.WindowManager&quot;,{InlineWindowManager:function(f){var g=this;g.parent(f);g.zIndex=300000;g.count=0;g.windows={}},open:function(r,j){var y=this,i,k=&quot;&quot;,q=y.editor,g=0,s=0,h,m,n,o,l,v,x;r=r||{};j=j||{};if(!r.inline){return y.parent(r,j)}if(!r.type){y.bookmark=q.selection.getBookmark(&quot;simple&quot;)}i=d.uniqueId();h=d.getViewPort();r.width=parseInt(r.width||320);r.height=parseInt(r.height||240)+(tinymce.isIE?8:0);r.min_width=parseInt(r.min_width||150);r.min_height=parseInt(r.min_height||100);r.max_width=parseInt(r.max_width||2000);r.max_height=parseInt(r.max_height||2000);r.left=r.left||Math.round(Math.max(h.x,h.x+(h.w/2)-(r.width/2)));r.top=r.top||Math.round(Math.max(h.y,h.y+(h.h/2)-(r.height/2)));r.movable=r.resizable=true;j.mce_width=r.width;j.mce_height=r.height;j.mce_inline=true;j.mce_window_id=i;j.mce_auto_focus=r.auto_focus;y.features=r;y.params=j;y.onOpen.dispatch(y,r,j);if(r.type){k+=&quot; mceModal&quot;;if(r.type){k+=&quot; mce&quot;+r.type.substring(0,1).toUpperCase()+r.type.substring(1)}r.resizable=false}if(r.statusbar){k+=&quot; mceStatusbar&quot;}if(r.resizable){k+=&quot; mceResizable&quot;}if(r.minimizable){k+=&quot; mceMinimizable&quot;}if(r.maximizable){k+=&quot; mceMaximizable&quot;}if(r.movable){k+=&quot; mceMovable&quot;}y._addAll(d.doc.body,[&quot;div&quot;,{id:i,&quot;class&quot;:q.settings.inlinepopups_skin||&quot;clearlooks2&quot;,style:&quot;width:100px;height:100px&quot;},[&quot;div&quot;,{id:i+&quot;_wrapper&quot;,&quot;class&quot;:&quot;mceWrapper&quot;+k},[&quot;div&quot;,{id:i+&quot;_top&quot;,&quot;class&quot;:&quot;mceTop&quot;},[&quot;div&quot;,{&quot;class&quot;:&quot;mceLeft&quot;}],[&quot;div&quot;,{&quot;class&quot;:&quot;mceCenter&quot;}],[&quot;div&quot;,{&quot;class&quot;:&quot;mceRight&quot;}],[&quot;span&quot;,{id:i+&quot;_title&quot;},r.title||&quot;&quot;]],[&quot;div&quot;,{id:i+&quot;_middle&quot;,&quot;class&quot;:&quot;mceMiddle&quot;},[&quot;div&quot;,{id:i+&quot;_left&quot;,&quot;class&quot;:&quot;mceLeft&quot;}],[&quot;span&quot;,{id:i+&quot;_content&quot;}],[&quot;div&quot;,{id:i+&quot;_right&quot;,&quot;class&quot;:&quot;mceRight&quot;}]],[&quot;div&quot;,{id:i+&quot;_bottom&quot;,&quot;class&quot;:&quot;mceBottom&quot;},[&quot;div&quot;,{&quot;class&quot;:&quot;mceLeft&quot;}],[&quot;div&quot;,{&quot;class&quot;:&quot;mceCenter&quot;}],[&quot;div&quot;,{&quot;class&quot;:&quot;mceRight&quot;}],[&quot;span&quot;,{id:i+&quot;_status&quot;},&quot;Content&quot;]],[&quot;a&quot;,{&quot;class&quot;:&quot;mceMove&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{&quot;class&quot;:&quot;mceMin&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;}],[&quot;a&quot;,{&quot;class&quot;:&quot;mceMax&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;}],[&quot;a&quot;,{&quot;class&quot;:&quot;mceMed&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;}],[&quot;a&quot;,{&quot;class&quot;:&quot;mceClose&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_n&quot;,&quot;class&quot;:&quot;mceResize mceResizeN&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_s&quot;,&quot;class&quot;:&quot;mceResize mceResizeS&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_w&quot;,&quot;class&quot;:&quot;mceResize mceResizeW&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_e&quot;,&quot;class&quot;:&quot;mceResize mceResizeE&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_nw&quot;,&quot;class&quot;:&quot;mceResize mceResizeNW&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_ne&quot;,&quot;class&quot;:&quot;mceResize mceResizeNE&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_sw&quot;,&quot;class&quot;:&quot;mceResize mceResizeSW&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_se&quot;,&quot;class&quot;:&quot;mceResize mceResizeSE&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}]]]);d.setStyles(i,{top:-10000,left:-10000});if(tinymce.isGecko){d.setStyle(i,&quot;overflow&quot;,&quot;auto&quot;)}if(!r.type){g+=d.get(i+&quot;_left&quot;).clientWidth;g+=d.get(i+&quot;_right&quot;).clientWidth;s+=d.get(i+&quot;_top&quot;).clientHeight;s+=d.get(i+&quot;_bottom&quot;).clientHeight}d.setStyles(i,{top:r.top,left:r.left,width:r.width+g,height:r.height+s});x=r.url||r.file;if(x){if(tinymce.relaxedDomain){x+=(x.indexOf(&quot;?&quot;)==-1?&quot;?&quot;:&quot;&amp;&quot;)+&quot;mce_rdomain=&quot;+tinymce.relaxedDomain}x=tinymce._addVer(x)}if(!r.type){d.add(i+&quot;_content&quot;,&quot;iframe&quot;,{id:i+&quot;_ifr&quot;,src:'javascript:&quot;&quot;',frameBorder:0,style:&quot;border:0;width:10px;height:10px&quot;});d.setStyles(i+&quot;_ifr&quot;,{width:r.width,height:r.height});d.setAttrib(i+&quot;_ifr&quot;,&quot;src&quot;,x)}else{d.add(i+&quot;_wrapper&quot;,&quot;a&quot;,{id:i+&quot;_ok&quot;,&quot;class&quot;:&quot;mceButton mceOk&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;},&quot;Ok&quot;);if(r.type==&quot;confirm&quot;){d.add(i+&quot;_wrapper&quot;,&quot;a&quot;,{&quot;class&quot;:&quot;mceButton mceCancel&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;},&quot;Cancel&quot;)}d.add(i+&quot;_middle&quot;,&quot;div&quot;,{&quot;class&quot;:&quot;mceIcon&quot;});d.setHTML(i+&quot;_content&quot;,r.content.replace(&quot;\n&quot;,&quot;&lt;br /&gt;&quot;))}n=a.add(i,&quot;mousedown&quot;,function(t){var u=t.target,f,p;f=y.windows[i];y.focus(i);if(u.nodeName==&quot;A&quot;||u.nodeName==&quot;a&quot;){if(u.className==&quot;mceMax&quot;){f.oldPos=f.element.getXY();f.oldSize=f.element.getSize();p=d.getViewPort();p.w-=2;p.h-=2;f.element.moveTo(p.x,p.y);f.element.resizeTo(p.w,p.h);d.setStyles(i+&quot;_ifr&quot;,{width:p.w-f.deltaWidth,height:p.h-f.deltaHeight});d.addClass(i+&quot;_wrapper&quot;,&quot;mceMaximized&quot;)}else{if(u.className==&quot;mceMed&quot;){f.element.moveTo(f.oldPos.x,f.oldPos.y);f.element.resizeTo(f.oldSize.w,f.oldSize.h);f.iframeElement.resizeTo(f.oldSize.w-f.deltaWidth,f.oldSize.h-f.deltaHeight);d.removeClass(i+&quot;_wrapper&quot;,&quot;mceMaximized&quot;)}else{if(u.className==&quot;mceMove&quot;){return y._startDrag(i,t,u.className)}else{if(d.hasClass(u,&quot;mceResize&quot;)){return y._startDrag(i,t,u.className.substring(13))}}}}}});o=a.add(i,&quot;click&quot;,function(f){var p=f.target;y.focus(i);if(p.nodeName==&quot;A&quot;||p.nodeName==&quot;a&quot;){switch(p.className){case&quot;mceClose&quot;:y.close(null,i);return a.cancel(f);case&quot;mceButton mceOk&quot;:case&quot;mceButton mceCancel&quot;:r.button_func(p.className==&quot;mceButton mceOk&quot;);return a.cancel(f)}}});v=y.windows[i]={id:i,mousedown_func:n,click_func:o,element:new b(i,{blocker:1,container:q.getContainer()}),iframeElement:new b(i+&quot;_ifr&quot;),features:r,deltaWidth:g,deltaHeight:s};v.iframeElement.on(&quot;focus&quot;,function(){y.focus(i)});if(y.count==0&amp;&amp;y.editor.getParam(&quot;dialog_type&quot;,&quot;modal&quot;)==&quot;modal&quot;){d.add(d.doc.body,&quot;div&quot;,{id:&quot;mceModalBlocker&quot;,&quot;class&quot;:(y.editor.settings.inlinepopups_skin||&quot;clearlooks2&quot;)+&quot;_modalBlocker&quot;,style:{zIndex:y.zIndex-1}});d.show(&quot;mceModalBlocker&quot;)}else{d.setStyle(&quot;mceModalBlocker&quot;,&quot;z-index&quot;,y.zIndex-1)}if(tinymce.isIE6||/Firefox\/2\./.test(navigator.userAgent)||(tinymce.isIE&amp;&amp;!d.boxModel)){d.setStyles(&quot;mceModalBlocker&quot;,{position:&quot;absolute&quot;,left:h.x,top:h.y,width:h.w-2,height:h.h-2})}y.focus(i);y._fixIELayout(i,1);if(d.get(i+&quot;_ok&quot;)){d.get(i+&quot;_ok&quot;).focus()}y.count++;return v},focus:function(h){var g=this,f;if(f=g.windows[h]){f.zIndex=this.zIndex++;f.element.setStyle(&quot;zIndex&quot;,f.zIndex);f.element.update();h=h+&quot;_wrapper&quot;;d.removeClass(g.lastId,&quot;mceFocus&quot;);d.addClass(h,&quot;mceFocus&quot;);g.lastId=h}},_addAll:function(k,h){var g,l,f=this,j=tinymce.DOM;if(c(h,&quot;string&quot;)){k.appendChild(j.doc.createTextNode(h))}else{if(h.length){k=k.appendChild(j.create(h[0],h[1]));for(g=2;g&lt;h.length;g++){f._addAll(k,h[g])}}}},_startDrag:function(v,G,E){var o=this,u,z,C=d.doc,f,l=o.windows[v],h=l.element,y=h.getXY(),x,q,F,g,A,s,r,j,i,m,k,n,B;g={x:0,y:0};A=d.getViewPort();A.w-=2;A.h-=2;j=G.screenX;i=G.screenY;m=k=n=B=0;u=a.add(C,&quot;mouseup&quot;,function(p){a.remove(C,&quot;mouseup&quot;,u);a.remove(C,&quot;mousemove&quot;,z);if(f){f.remove()}h.moveBy(m,k);h.resizeBy(n,B);q=h.getSize();d.setStyles(v+&quot;_ifr&quot;,{width:q.w-l.deltaWidth,height:q.h-l.deltaHeight});o._fixIELayout(v,1);return a.cancel(p)});if(E!=&quot;Move&quot;){D()}function D(){if(f){return}o._fixIELayout(v,0);d.add(C.body,&quot;div&quot;,{id:&quot;mceEventBlocker&quot;,&quot;class&quot;:&quot;mceEventBlocker &quot;+(o.editor.settings.inlinepopups_skin||&quot;clearlooks2&quot;),style:{zIndex:o.zIndex+1}});if(tinymce.isIE6||(tinymce.isIE&amp;&amp;!d.boxModel)){d.setStyles(&quot;mceEventBlocker&quot;,{position:&quot;absolute&quot;,left:A.x,top:A.y,width:A.w-2,height:A.h-2})}f=new b(&quot;mceEventBlocker&quot;);f.update();x=h.getXY();q=h.getSize();s=g.x+x.x-A.x;r=g.y+x.y-A.y;d.add(f.get(),&quot;div&quot;,{id:&quot;mcePlaceHolder&quot;,&quot;class&quot;:&quot;mcePlaceHolder&quot;,style:{left:s,top:r,width:q.w,height:q.h}});F=new b(&quot;mcePlaceHolder&quot;)}z=a.add(C,&quot;mousemove&quot;,function(w){var p,H,t;D();p=w.screenX-j;H=w.screenY-i;switch(E){case&quot;ResizeW&quot;:m=p;n=0-p;break;case&quot;ResizeE&quot;:n=p;break;case&quot;ResizeN&quot;:case&quot;ResizeNW&quot;:case&quot;ResizeNE&quot;:if(E==&quot;ResizeNW&quot;){m=p;n=0-p}else{if(E==&quot;ResizeNE&quot;){n=p}}k=H;B=0-H;break;case&quot;ResizeS&quot;:case&quot;ResizeSW&quot;:case&quot;ResizeSE&quot;:if(E==&quot;ResizeSW&quot;){m=p;n=0-p}else{if(E==&quot;ResizeSE&quot;){n=p}}B=H;break;case&quot;mceMove&quot;:m=p;k=H;break}if(n&lt;(t=l.features.min_width-q.w)){if(m!==0){m+=n-t}n=t}if(B&lt;(t=l.features.min_height-q.h)){if(k!==0){k+=B-t}B=t}n=Math.min(n,l.features.max_width-q.w);B=Math.min(B,l.features.max_height-q.h);m=Math.max(m,A.x-(s+A.x));k=Math.max(k,A.y-(r+A.y));m=Math.min(m,(A.w+A.x)-(s+q.w+A.x));k=Math.min(k,(A.h+A.y)-(r+q.h+A.y));if(m+k!==0){if(s+m&lt;0){m=0}if(r+k&lt;0){k=0}F.moveTo(s+m,r+k)}if(n+B!==0){F.resizeTo(q.w+n,q.h+B)}return a.cancel(w)});return a.cancel(G)},resizeBy:function(g,h,i){var f=this.windows[i];if(f){f.element.resizeBy(g,h);f.iframeElement.resizeBy(g,h)}},close:function(j,l){var h=this,g,k=d.doc,f=0,i,l;l=h._findId(l||j);if(!h.windows[l]){h.parent(j);return}h.count--;if(h.count==0){d.remove(&quot;mceModalBlocker&quot;)}if(g=h.windows[l]){h.onClose.dispatch(h);a.remove(k,&quot;mousedown&quot;,g.mousedownFunc);a.remove(k,&quot;click&quot;,g.clickFunc);a.clear(l);a.clear(l+&quot;_ifr&quot;);d.setAttrib(l+&quot;_ifr&quot;,&quot;src&quot;,'javascript:&quot;&quot;');g.element.remove();delete h.windows[l];e(h.windows,function(m){if(m.zIndex&gt;f){i=m;f=m.zIndex}});if(i){h.focus(i.id)}}},setTitle:function(f,g){var h;f=this._findId(f);if(h=d.get(f+&quot;_title&quot;)){h.innerHTML=d.encode(g)}},alert:function(g,f,j){var i=this,h;h=i.open({title:i,type:&quot;alert&quot;,button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},confirm:function(g,f,j){var i=this,h;h=i.open({title:i,type:&quot;confirm&quot;,button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},_findId:function(f){var g=this;if(typeof(f)==&quot;string&quot;){return f}e(g.windows,function(h){var i=d.get(h.id+&quot;_ifr&quot;);if(i&amp;&amp;f==i.contentWindow){f=h.id;return false}});return f},_fixIELayout:function(i,h){var f,g;if(!tinymce.isIE6){return}e([&quot;n&quot;,&quot;s&quot;,&quot;w&quot;,&quot;e&quot;,&quot;nw&quot;,&quot;ne&quot;,&quot;sw&quot;,&quot;se&quot;],function(j){var k=d.get(i+&quot;_resize_&quot;+j);d.setStyles(k,{width:h?k.clientWidth:&quot;&quot;,height:h?k.clientHeight:&quot;&quot;,cursor:d.getStyle(k,&quot;cursor&quot;,1)});d.setStyle(i+&quot;_bottom&quot;,&quot;bottom&quot;,&quot;-1px&quot;);k=0});if(f=this.windows[i]){f.element.hide();f.element.show();e(d.select(&quot;div,a&quot;,i),function(k,j){if(k.currentStyle.backgroundImage!=&quot;none&quot;){g=new Image();g.src=k.currentStyle.backgroundImage.replace(/url\(\&quot;(.+)\&quot;\)/,&quot;$1&quot;)}});d.get(i).style.filter=&quot;&quot;}}});tinymce.PluginManager.add(&quot;inlinepopups&quot;,tinymce.plugins.InlinePopups)})();
\ No newline at end of file
+(function(){var d=tinymce.DOM,b=tinymce.dom.Element,a=tinymce.dom.Event,e=tinymce.each,c=tinymce.is;tinymce.create(&quot;tinymce.plugins.InlinePopups&quot;,{init:function(f,g){f.onBeforeRenderUI.add(function(){f.windowManager=new tinymce.InlineWindowManager(f);d.loadCSS(g+&quot;/skins/&quot;+(f.settings.inlinepopups_skin||&quot;clearlooks2&quot;)+&quot;/window.css&quot;)})},getInfo:function(){return{longname:&quot;InlinePopups&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.create(&quot;tinymce.InlineWindowManager:tinymce.WindowManager&quot;,{InlineWindowManager:function(f){var g=this;g.parent(f);g.zIndex=300000;g.count=0;g.windows={}},open:function(r,j){var y=this,i,k=&quot;&quot;,q=y.editor,g=0,s=0,h,m,n,o,l,v,x;r=r||{};j=j||{};if(!r.inline){return y.parent(r,j)}if(!r.type){y.bookmark=q.selection.getBookmark(1)}i=d.uniqueId();h=d.getViewPort();r.width=parseInt(r.width||320);r.height=parseInt(r.height||240)+(tinymce.isIE?8:0);r.min_width=parseInt(r.min_width||150);r.min_height=parseInt(r.min_height||100);r.max_width=parseInt(r.max_width||2000);r.max_height=parseInt(r.max_height||2000);r.left=r.left||Math.round(Math.max(h.x,h.x+(h.w/2)-(r.width/2)));r.top=r.top||Math.round(Math.max(h.y,h.y+(h.h/2)-(r.height/2)));r.movable=r.resizable=true;j.mce_width=r.width;j.mce_height=r.height;j.mce_inline=true;j.mce_window_id=i;j.mce_auto_focus=r.auto_focus;y.features=r;y.params=j;y.onOpen.dispatch(y,r,j);if(r.type){k+=&quot; mceModal&quot;;if(r.type){k+=&quot; mce&quot;+r.type.substring(0,1).toUpperCase()+r.type.substring(1)}r.resizable=false}if(r.statusbar){k+=&quot; mceStatusbar&quot;}if(r.resizable){k+=&quot; mceResizable&quot;}if(r.minimizable){k+=&quot; mceMinimizable&quot;}if(r.maximizable){k+=&quot; mceMaximizable&quot;}if(r.movable){k+=&quot; mceMovable&quot;}y._addAll(d.doc.body,[&quot;div&quot;,{id:i,&quot;class&quot;:q.settings.inlinepopups_skin||&quot;clearlooks2&quot;,style:&quot;width:100px;height:100px&quot;},[&quot;div&quot;,{id:i+&quot;_wrapper&quot;,&quot;class&quot;:&quot;mceWrapper&quot;+k},[&quot;div&quot;,{id:i+&quot;_top&quot;,&quot;class&quot;:&quot;mceTop&quot;},[&quot;div&quot;,{&quot;class&quot;:&quot;mceLeft&quot;}],[&quot;div&quot;,{&quot;class&quot;:&quot;mceCenter&quot;}],[&quot;div&quot;,{&quot;class&quot;:&quot;mceRight&quot;}],[&quot;span&quot;,{id:i+&quot;_title&quot;},r.title||&quot;&quot;]],[&quot;div&quot;,{id:i+&quot;_middle&quot;,&quot;class&quot;:&quot;mceMiddle&quot;},[&quot;div&quot;,{id:i+&quot;_left&quot;,&quot;class&quot;:&quot;mceLeft&quot;}],[&quot;span&quot;,{id:i+&quot;_content&quot;}],[&quot;div&quot;,{id:i+&quot;_right&quot;,&quot;class&quot;:&quot;mceRight&quot;}]],[&quot;div&quot;,{id:i+&quot;_bottom&quot;,&quot;class&quot;:&quot;mceBottom&quot;},[&quot;div&quot;,{&quot;class&quot;:&quot;mceLeft&quot;}],[&quot;div&quot;,{&quot;class&quot;:&quot;mceCenter&quot;}],[&quot;div&quot;,{&quot;class&quot;:&quot;mceRight&quot;}],[&quot;span&quot;,{id:i+&quot;_status&quot;},&quot;Content&quot;]],[&quot;a&quot;,{&quot;class&quot;:&quot;mceMove&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{&quot;class&quot;:&quot;mceMin&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;}],[&quot;a&quot;,{&quot;class&quot;:&quot;mceMax&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;}],[&quot;a&quot;,{&quot;class&quot;:&quot;mceMed&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;}],[&quot;a&quot;,{&quot;class&quot;:&quot;mceClose&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_n&quot;,&quot;class&quot;:&quot;mceResize mceResizeN&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_s&quot;,&quot;class&quot;:&quot;mceResize mceResizeS&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_w&quot;,&quot;class&quot;:&quot;mceResize mceResizeW&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_e&quot;,&quot;class&quot;:&quot;mceResize mceResizeE&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_nw&quot;,&quot;class&quot;:&quot;mceResize mceResizeNW&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_ne&quot;,&quot;class&quot;:&quot;mceResize mceResizeNE&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_sw&quot;,&quot;class&quot;:&quot;mceResize mceResizeSW&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}],[&quot;a&quot;,{id:i+&quot;_resize_se&quot;,&quot;class&quot;:&quot;mceResize mceResizeSE&quot;,tabindex:&quot;-1&quot;,href:&quot;javascript:;&quot;}]]]);d.setStyles(i,{top:-10000,left:-10000});if(tinymce.isGecko){d.setStyle(i,&quot;overflow&quot;,&quot;auto&quot;)}if(!r.type){g+=d.get(i+&quot;_left&quot;).clientWidth;g+=d.get(i+&quot;_right&quot;).clientWidth;s+=d.get(i+&quot;_top&quot;).clientHeight;s+=d.get(i+&quot;_bottom&quot;).clientHeight}d.setStyles(i,{top:r.top,left:r.left,width:r.width+g,height:r.height+s});x=r.url||r.file;if(x){if(tinymce.relaxedDomain){x+=(x.indexOf(&quot;?&quot;)==-1?&quot;?&quot;:&quot;&amp;&quot;)+&quot;mce_rdomain=&quot;+tinymce.relaxedDomain}x=tinymce._addVer(x)}if(!r.type){d.add(i+&quot;_content&quot;,&quot;iframe&quot;,{id:i+&quot;_ifr&quot;,src:'javascript:&quot;&quot;',frameBorder:0,style:&quot;border:0;width:10px;height:10px&quot;});d.setStyles(i+&quot;_ifr&quot;,{width:r.width,height:r.height});d.setAttrib(i+&quot;_ifr&quot;,&quot;src&quot;,x)}else{d.add(i+&quot;_wrapper&quot;,&quot;a&quot;,{id:i+&quot;_ok&quot;,&quot;class&quot;:&quot;mceButton mceOk&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;},&quot;Ok&quot;);if(r.type==&quot;confirm&quot;){d.add(i+&quot;_wrapper&quot;,&quot;a&quot;,{&quot;class&quot;:&quot;mceButton mceCancel&quot;,href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;},&quot;Cancel&quot;)}d.add(i+&quot;_middle&quot;,&quot;div&quot;,{&quot;class&quot;:&quot;mceIcon&quot;});d.setHTML(i+&quot;_content&quot;,r.content.replace(&quot;\n&quot;,&quot;&lt;br /&gt;&quot;))}n=a.add(i,&quot;mousedown&quot;,function(t){var u=t.target,f,p;f=y.windows[i];y.focus(i);if(u.nodeName==&quot;A&quot;||u.nodeName==&quot;a&quot;){if(u.className==&quot;mceMax&quot;){f.oldPos=f.element.getXY();f.oldSize=f.element.getSize();p=d.getViewPort();p.w-=2;p.h-=2;f.element.moveTo(p.x,p.y);f.element.resizeTo(p.w,p.h);d.setStyles(i+&quot;_ifr&quot;,{width:p.w-f.deltaWidth,height:p.h-f.deltaHeight});d.addClass(i+&quot;_wrapper&quot;,&quot;mceMaximized&quot;)}else{if(u.className==&quot;mceMed&quot;){f.element.moveTo(f.oldPos.x,f.oldPos.y);f.element.resizeTo(f.oldSize.w,f.oldSize.h);f.iframeElement.resizeTo(f.oldSize.w-f.deltaWidth,f.oldSize.h-f.deltaHeight);d.removeClass(i+&quot;_wrapper&quot;,&quot;mceMaximized&quot;)}else{if(u.className==&quot;mceMove&quot;){return y._startDrag(i,t,u.className)}else{if(d.hasClass(u,&quot;mceResize&quot;)){return y._startDrag(i,t,u.className.substring(13))}}}}}});o=a.add(i,&quot;click&quot;,function(f){var p=f.target;y.focus(i);if(p.nodeName==&quot;A&quot;||p.nodeName==&quot;a&quot;){switch(p.className){case&quot;mceClose&quot;:y.close(null,i);return a.cancel(f);case&quot;mceButton mceOk&quot;:case&quot;mceButton mceCancel&quot;:r.button_func(p.className==&quot;mceButton mceOk&quot;);return a.cancel(f)}}});v=y.windows[i]={id:i,mousedown_func:n,click_func:o,element:new b(i,{blocker:1,container:q.getContainer()}),iframeElement:new b(i+&quot;_ifr&quot;),features:r,deltaWidth:g,deltaHeight:s};v.iframeElement.on(&quot;focus&quot;,function(){y.focus(i)});if(y.count==0&amp;&amp;y.editor.getParam(&quot;dialog_type&quot;,&quot;modal&quot;)==&quot;modal&quot;){d.add(d.doc.body,&quot;div&quot;,{id:&quot;mceModalBlocker&quot;,&quot;class&quot;:(y.editor.settings.inlinepopups_skin||&quot;clearlooks2&quot;)+&quot;_modalBlocker&quot;,style:{zIndex:y.zIndex-1}});d.show(&quot;mceModalBlocker&quot;)}else{d.setStyle(&quot;mceModalBlocker&quot;,&quot;z-index&quot;,y.zIndex-1)}if(tinymce.isIE6||/Firefox\/2\./.test(navigator.userAgent)||(tinymce.isIE&amp;&amp;!d.boxModel)){d.setStyles(&quot;mceModalBlocker&quot;,{position:&quot;absolute&quot;,left:h.x,top:h.y,width:h.w-2,height:h.h-2})}y.focus(i);y._fixIELayout(i,1);if(d.get(i+&quot;_ok&quot;)){d.get(i+&quot;_ok&quot;).focus()}y.count++;return v},focus:function(h){var g=this,f;if(f=g.windows[h]){f.zIndex=this.zIndex++;f.element.setStyle(&quot;zIndex&quot;,f.zIndex);f.element.update();h=h+&quot;_wrapper&quot;;d.removeClass(g.lastId,&quot;mceFocus&quot;);d.addClass(h,&quot;mceFocus&quot;);g.lastId=h}},_addAll:function(k,h){var g,l,f=this,j=tinymce.DOM;if(c(h,&quot;string&quot;)){k.appendChild(j.doc.createTextNode(h))}else{if(h.length){k=k.appendChild(j.create(h[0],h[1]));for(g=2;g&lt;h.length;g++){f._addAll(k,h[g])}}}},_startDrag:function(v,G,E){var o=this,u,z,C=d.doc,f,l=o.windows[v],h=l.element,y=h.getXY(),x,q,F,g,A,s,r,j,i,m,k,n,B;g={x:0,y:0};A=d.getViewPort();A.w-=2;A.h-=2;j=G.screenX;i=G.screenY;m=k=n=B=0;u=a.add(C,&quot;mouseup&quot;,function(p){a.remove(C,&quot;mouseup&quot;,u);a.remove(C,&quot;mousemove&quot;,z);if(f){f.remove()}h.moveBy(m,k);h.resizeBy(n,B);q=h.getSize();d.setStyles(v+&quot;_ifr&quot;,{width:q.w-l.deltaWidth,height:q.h-l.deltaHeight});o._fixIELayout(v,1);return a.cancel(p)});if(E!=&quot;Move&quot;){D()}function D(){if(f){return}o._fixIELayout(v,0);d.add(C.body,&quot;div&quot;,{id:&quot;mceEventBlocker&quot;,&quot;class&quot;:&quot;mceEventBlocker &quot;+(o.editor.settings.inlinepopups_skin||&quot;clearlooks2&quot;),style:{zIndex:o.zIndex+1}});if(tinymce.isIE6||(tinymce.isIE&amp;&amp;!d.boxModel)){d.setStyles(&quot;mceEventBlocker&quot;,{position:&quot;absolute&quot;,left:A.x,top:A.y,width:A.w-2,height:A.h-2})}f=new b(&quot;mceEventBlocker&quot;);f.update();x=h.getXY();q=h.getSize();s=g.x+x.x-A.x;r=g.y+x.y-A.y;d.add(f.get(),&quot;div&quot;,{id:&quot;mcePlaceHolder&quot;,&quot;class&quot;:&quot;mcePlaceHolder&quot;,style:{left:s,top:r,width:q.w,height:q.h}});F=new b(&quot;mcePlaceHolder&quot;)}z=a.add(C,&quot;mousemove&quot;,function(w){var p,H,t;D();p=w.screenX-j;H=w.screenY-i;switch(E){case&quot;ResizeW&quot;:m=p;n=0-p;break;case&quot;ResizeE&quot;:n=p;break;case&quot;ResizeN&quot;:case&quot;ResizeNW&quot;:case&quot;ResizeNE&quot;:if(E==&quot;ResizeNW&quot;){m=p;n=0-p}else{if(E==&quot;ResizeNE&quot;){n=p}}k=H;B=0-H;break;case&quot;ResizeS&quot;:case&quot;ResizeSW&quot;:case&quot;ResizeSE&quot;:if(E==&quot;ResizeSW&quot;){m=p;n=0-p}else{if(E==&quot;ResizeSE&quot;){n=p}}B=H;break;case&quot;mceMove&quot;:m=p;k=H;break}if(n&lt;(t=l.features.min_width-q.w)){if(m!==0){m+=n-t}n=t}if(B&lt;(t=l.features.min_height-q.h)){if(k!==0){k+=B-t}B=t}n=Math.min(n,l.features.max_width-q.w);B=Math.min(B,l.features.max_height-q.h);m=Math.max(m,A.x-(s+A.x));k=Math.max(k,A.y-(r+A.y));m=Math.min(m,(A.w+A.x)-(s+q.w+A.x));k=Math.min(k,(A.h+A.y)-(r+q.h+A.y));if(m+k!==0){if(s+m&lt;0){m=0}if(r+k&lt;0){k=0}F.moveTo(s+m,r+k)}if(n+B!==0){F.resizeTo(q.w+n,q.h+B)}return a.cancel(w)});return a.cancel(G)},resizeBy:function(g,h,i){var f=this.windows[i];if(f){f.element.resizeBy(g,h);f.iframeElement.resizeBy(g,h)}},close:function(j,l){var h=this,g,k=d.doc,f=0,i,l;l=h._findId(l||j);if(!h.windows[l]){h.parent(j);return}h.count--;if(h.count==0){d.remove(&quot;mceModalBlocker&quot;)}if(g=h.windows[l]){h.onClose.dispatch(h);a.remove(k,&quot;mousedown&quot;,g.mousedownFunc);a.remove(k,&quot;click&quot;,g.clickFunc);a.clear(l);a.clear(l+&quot;_ifr&quot;);d.setAttrib(l+&quot;_ifr&quot;,&quot;src&quot;,'javascript:&quot;&quot;');g.element.remove();delete h.windows[l];e(h.windows,function(m){if(m.zIndex&gt;f){i=m;f=m.zIndex}});if(i){h.focus(i.id)}}},setTitle:function(f,g){var h;f=this._findId(f);if(h=d.get(f+&quot;_title&quot;)){h.innerHTML=d.encode(g)}},alert:function(g,f,j){var i=this,h;h=i.open({title:i,type:&quot;alert&quot;,button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},confirm:function(g,f,j){var i=this,h;h=i.open({title:i,type:&quot;confirm&quot;,button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},_findId:function(f){var g=this;if(typeof(f)==&quot;string&quot;){return f}e(g.windows,function(h){var i=d.get(h.id+&quot;_ifr&quot;);if(i&amp;&amp;f==i.contentWindow){f=h.id;return false}});return f},_fixIELayout:function(i,h){var f,g;if(!tinymce.isIE6){return}e([&quot;n&quot;,&quot;s&quot;,&quot;w&quot;,&quot;e&quot;,&quot;nw&quot;,&quot;ne&quot;,&quot;sw&quot;,&quot;se&quot;],function(j){var k=d.get(i+&quot;_resize_&quot;+j);d.setStyles(k,{width:h?k.clientWidth:&quot;&quot;,height:h?k.clientHeight:&quot;&quot;,cursor:d.getStyle(k,&quot;cursor&quot;,1)});d.setStyle(i+&quot;_bottom&quot;,&quot;bottom&quot;,&quot;-1px&quot;);k=0});if(f=this.windows[i]){f.element.hide();f.element.show();e(d.select(&quot;div,a&quot;,i),function(k,j){if(k.currentStyle.backgroundImage!=&quot;none&quot;){g=new Image();g.src=k.currentStyle.backgroundImage.replace(/url\(\&quot;(.+)\&quot;\)/,&quot;$1&quot;)}});d.get(i).style.filter=&quot;&quot;}}});tinymce.PluginManager.add(&quot;inlinepopups&quot;,tinymce.plugins.InlinePopups)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/inlinepopups/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 999 2009-02-10 17:42:58Z spocke $
+ * $Id: editor_plugin_src.js 1150 2009-06-01 11:50:46Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -50,7 +50,7 @@
 
 			// Only store selection if the type is a normal window
 			if (!f.type)
-				t.bookmark = ed.selection.getBookmark('simple');
+				t.bookmark = ed.selection.getBookmark(1);
 
 			id = DOM.uniqueId();
 			vp = DOM.getViewPort();</diff>
      <filename>lib/tiny_mce/plugins/inlinepopups/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var a=tinymce.each;tinymce.create(&quot;tinymce.plugins.MediaPlugin&quot;,{init:function(b,c){var e=this;e.editor=b;e.url=c;function f(g){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(g.className)}b.onPreInit.add(function(){b.serializer.addRules(&quot;param[name|value|_mce_value]&quot;)});b.addCommand(&quot;mceMedia&quot;,function(){b.windowManager.open({file:c+&quot;/media.htm&quot;,width:430+parseInt(b.getLang(&quot;media.delta_width&quot;,0)),height:470+parseInt(b.getLang(&quot;media.delta_height&quot;,0)),inline:1},{plugin_url:c})});b.addButton(&quot;media&quot;,{title:&quot;media.desc&quot;,cmd:&quot;mceMedia&quot;});b.onNodeChange.add(function(h,g,i){g.setActive(&quot;media&quot;,i.nodeName==&quot;IMG&quot;&amp;&amp;f(i))});b.onInit.add(function(){var g={mceItemFlash:&quot;flash&quot;,mceItemShockWave:&quot;shockwave&quot;,mceItemWindowsMedia:&quot;windowsmedia&quot;,mceItemQuickTime:&quot;quicktime&quot;,mceItemRealMedia:&quot;realmedia&quot;};b.selection.onSetContent.add(function(){e._spansToImgs(b.getBody())});b.selection.onBeforeSetContent.add(e._objectsToSpans,e);if(b.settings.content_css!==false){b.dom.loadCSS(c+&quot;/css/content.css&quot;)}if(b.theme.onResolveName){b.theme.onResolveName.add(function(h,i){if(i.name==&quot;img&quot;){a(g,function(l,j){if(b.dom.hasClass(i.node,j)){i.name=l;i.title=b.dom.getAttrib(i.node,&quot;title&quot;);return false}})}})}if(b&amp;&amp;b.plugins.contextmenu){b.plugins.contextmenu.onContextMenu.add(function(i,h,j){if(j.nodeName==&quot;IMG&quot;&amp;&amp;/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(j.className)){h.add({title:&quot;media.edit&quot;,icon:&quot;media&quot;,cmd:&quot;mceMedia&quot;})}})}});b.onBeforeSetContent.add(e._objectsToSpans,e);b.onSetContent.add(function(){e._spansToImgs(b.getBody())});b.onPreProcess.add(function(g,i){var h=g.dom;if(i.set){e._spansToImgs(i.node);a(h.select(&quot;IMG&quot;,i.node),function(k){var j;if(f(k)){j=e._parse(k.title);h.setAttrib(k,&quot;width&quot;,h.getAttrib(k,&quot;width&quot;,j.width||100));h.setAttrib(k,&quot;height&quot;,h.getAttrib(k,&quot;height&quot;,j.height||100))}})}if(i.get){a(h.select(&quot;IMG&quot;,i.node),function(m){var l,j,k;if(g.getParam(&quot;media_use_script&quot;)){if(f(m)){m.className=m.className.replace(/mceItem/g,&quot;mceTemp&quot;)}return}switch(m.className){case&quot;mceItemFlash&quot;:l=&quot;d27cdb6e-ae6d-11cf-96b8-444553540000&quot;;j=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;;k=&quot;application/x-shockwave-flash&quot;;break;case&quot;mceItemShockWave&quot;:l=&quot;166b1bca-3f9c-11cf-8075-444553540000&quot;;j=&quot;http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0&quot;;k=&quot;application/x-director&quot;;break;case&quot;mceItemWindowsMedia&quot;:l=g.getParam(&quot;media_wmp6_compatible&quot;)?&quot;05589fa1-c356-11ce-bf01-00aa0055595a&quot;:&quot;6bf52a52-394a-11d3-b153-00c04f79faa6&quot;;j=&quot;http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701&quot;;k=&quot;application/x-mplayer2&quot;;break;case&quot;mceItemQuickTime&quot;:l=&quot;02bf25d5-8c17-4b23-bc80-d3488abddc6b&quot;;j=&quot;http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0&quot;;k=&quot;video/quicktime&quot;;break;case&quot;mceItemRealMedia&quot;:l=&quot;cfcdaa03-8be4-11cf-b84b-0020afbbccfa&quot;;j=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;;k=&quot;audio/x-pn-realaudio-plugin&quot;;break}if(l){h.replace(e._buildObj({classid:l,codebase:j,type:k},m),m)}})}});b.onPostProcess.add(function(g,h){h.content=h.content.replace(/_mce_value=/g,&quot;value=&quot;)});function d(g,h){h=new RegExp(h+'=&quot;([^&quot;]+)&quot;',&quot;g&quot;).exec(g);return h?b.dom.decode(h[1]):&quot;&quot;}b.onPostProcess.add(function(g,h){if(g.getParam(&quot;media_use_script&quot;)){h.content=h.content.replace(/&lt;img[^&gt;]+&gt;/g,function(j){var i=d(j,&quot;class&quot;);if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(i)){at=e._parse(d(j,&quot;title&quot;));at.width=d(j,&quot;width&quot;);at.height=d(j,&quot;height&quot;);j='&lt;script type=&quot;text/javascript&quot;&gt;write'+i.substring(7)+&quot;({&quot;+e._serialize(at)+&quot;});&lt;\/script&gt;&quot;}return j})}})},getInfo:function(){return{longname:&quot;Media&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_objectsToSpans:function(b,e){var c=this,d=e.content;d=d.replace(/&lt;script[^&gt;]*&gt;\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*&lt;\/script&gt;/gi,function(g,f,i){var h=c._parse(i);return'&lt;img class=&quot;mceItem'+f+'&quot; title=&quot;'+b.dom.encode(i)+'&quot; src=&quot;'+c.url+'/img/trans.gif&quot; width=&quot;'+h.width+'&quot; height=&quot;'+h.height+'&quot; /&gt;'});d=d.replace(/&lt;object([^&gt;]*)&gt;/gi,'&lt;span class=&quot;mceItemObject&quot; $1&gt;');d=d.replace(/&lt;embed([^&gt;]*)\/?&gt;/gi,'&lt;span class=&quot;mceItemEmbed&quot; $1&gt;&lt;/span&gt;');d=d.replace(/&lt;embed([^&gt;]*)&gt;/gi,'&lt;span class=&quot;mceItemEmbed&quot; $1&gt;');d=d.replace(/&lt;\/(object)([^&gt;]*)&gt;/gi,&quot;&lt;/span&gt;&quot;);d=d.replace(/&lt;\/embed&gt;/gi,&quot;&quot;);d=d.replace(/&lt;param([^&gt;]*)&gt;/gi,function(g,f){return&quot;&lt;span &quot;+f.replace(/value=/gi,&quot;_mce_value=&quot;)+' class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;'});d=d.replace(/\/ class=\&quot;mceItemParam\&quot;&gt;&lt;\/span&gt;/gi,'class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;');e.content=d},_buildObj:function(g,h){var d,c=this.editor,f=c.dom,e=this._parse(h.title),b;b=c.getParam(&quot;media_strict&quot;,true)&amp;&amp;g.type==&quot;application/x-shockwave-flash&quot;;e.width=g.width=f.getAttrib(h,&quot;width&quot;)||100;e.height=g.height=f.getAttrib(h,&quot;height&quot;)||100;if(e.src){e.src=c.convertURL(e.src,&quot;src&quot;,h)}if(b){d=f.create(&quot;span&quot;,{id:e.id,mce_name:&quot;object&quot;,type:&quot;application/x-shockwave-flash&quot;,data:e.src,style:f.getAttrib(h,&quot;style&quot;),width:g.width,height:g.height})}else{d=f.create(&quot;span&quot;,{id:e.id,mce_name:&quot;object&quot;,classid:&quot;clsid:&quot;+g.classid,style:f.getAttrib(h,&quot;style&quot;),codebase:g.codebase,width:g.width,height:g.height})}a(e,function(j,i){if(!/^(width|height|codebase|classid|id|_cx|_cy)$/.test(i)){if(g.type==&quot;application/x-mplayer2&quot;&amp;&amp;i==&quot;src&quot;&amp;&amp;!e.url){i=&quot;url&quot;}if(j){f.add(d,&quot;span&quot;,{mce_name:&quot;param&quot;,name:i,_mce_value:j})}}});if(!b){f.add(d,&quot;span&quot;,tinymce.extend({mce_name:&quot;embed&quot;,type:g.type,style:f.getAttrib(h,&quot;style&quot;)},e))}return d},_spansToImgs:function(e){var d=this,f=d.editor.dom,b,c;a(f.select(&quot;span&quot;,e),function(g){if(f.getAttrib(g,&quot;class&quot;)==&quot;mceItemObject&quot;){c=f.getAttrib(g,&quot;classid&quot;).toLowerCase().replace(/\s+/g,&quot;&quot;);switch(c){case&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot;:f.replace(d._createImg(&quot;mceItemFlash&quot;,g),g);break;case&quot;clsid:166b1bca-3f9c-11cf-8075-444553540000&quot;:f.replace(d._createImg(&quot;mceItemShockWave&quot;,g),g);break;case&quot;clsid:6bf52a52-394a-11d3-b153-00c04f79faa6&quot;:case&quot;clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95&quot;:case&quot;clsid:05589fa1-c356-11ce-bf01-00aa0055595a&quot;:f.replace(d._createImg(&quot;mceItemWindowsMedia&quot;,g),g);break;case&quot;clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b&quot;:f.replace(d._createImg(&quot;mceItemQuickTime&quot;,g),g);break;case&quot;clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa&quot;:f.replace(d._createImg(&quot;mceItemRealMedia&quot;,g),g);break;default:f.replace(d._createImg(&quot;mceItemFlash&quot;,g),g)}return}if(f.getAttrib(g,&quot;class&quot;)==&quot;mceItemEmbed&quot;){switch(f.getAttrib(g,&quot;type&quot;)){case&quot;application/x-shockwave-flash&quot;:f.replace(d._createImg(&quot;mceItemFlash&quot;,g),g);break;case&quot;application/x-director&quot;:f.replace(d._createImg(&quot;mceItemShockWave&quot;,g),g);break;case&quot;application/x-mplayer2&quot;:f.replace(d._createImg(&quot;mceItemWindowsMedia&quot;,g),g);break;case&quot;video/quicktime&quot;:f.replace(d._createImg(&quot;mceItemQuickTime&quot;,g),g);break;case&quot;audio/x-pn-realaudio-plugin&quot;:f.replace(d._createImg(&quot;mceItemRealMedia&quot;,g),g);break;default:f.replace(d._createImg(&quot;mceItemFlash&quot;,g),g)}}})},_createImg:function(c,h){var b,g=this.editor.dom,f={},e=&quot;&quot;,d;d=[&quot;id&quot;,&quot;name&quot;,&quot;width&quot;,&quot;height&quot;,&quot;bgcolor&quot;,&quot;align&quot;,&quot;flashvars&quot;,&quot;src&quot;,&quot;wmode&quot;,&quot;allowfullscreen&quot;,&quot;quality&quot;];b=g.create(&quot;img&quot;,{src:this.url+&quot;/img/trans.gif&quot;,width:g.getAttrib(h,&quot;width&quot;)||100,height:g.getAttrib(h,&quot;height&quot;)||100,style:g.getAttrib(h,&quot;style&quot;),&quot;class&quot;:c});a(d,function(i){var j=g.getAttrib(h,i);if(j){f[i]=j}});a(g.select(&quot;span&quot;,h),function(i){if(g.hasClass(i,&quot;mceItemParam&quot;)){f[g.getAttrib(i,&quot;name&quot;)]=g.getAttrib(i,&quot;_mce_value&quot;)}});if(f.movie){f.src=f.movie;delete f.movie}h=g.select(&quot;.mceItemEmbed&quot;,h)[0];if(h){a(d,function(i){var j=g.getAttrib(h,i);if(j&amp;&amp;!f[i]){f[i]=j}})}delete f.width;delete f.height;b.title=this._serialize(f);return b},_parse:function(b){return tinymce.util.JSON.parse(&quot;{&quot;+b+&quot;}&quot;)},_serialize:function(b){return tinymce.util.JSON.serialize(b).replace(/[{}]/g,&quot;&quot;)}});tinymce.PluginManager.add(&quot;media&quot;,tinymce.plugins.MediaPlugin)})();
\ No newline at end of file
+(function(){var a=tinymce.each;tinymce.create(&quot;tinymce.plugins.MediaPlugin&quot;,{init:function(b,c){var e=this;e.editor=b;e.url=c;function f(g){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(g.className)}b.onPreInit.add(function(){b.serializer.addRules(&quot;param[name|value|_mce_value]&quot;)});b.addCommand(&quot;mceMedia&quot;,function(){b.windowManager.open({file:c+&quot;/media.htm&quot;,width:430+parseInt(b.getLang(&quot;media.delta_width&quot;,0)),height:470+parseInt(b.getLang(&quot;media.delta_height&quot;,0)),inline:1},{plugin_url:c})});b.addButton(&quot;media&quot;,{title:&quot;media.desc&quot;,cmd:&quot;mceMedia&quot;});b.onNodeChange.add(function(h,g,i){g.setActive(&quot;media&quot;,i.nodeName==&quot;IMG&quot;&amp;&amp;f(i))});b.onInit.add(function(){var g={mceItemFlash:&quot;flash&quot;,mceItemShockWave:&quot;shockwave&quot;,mceItemWindowsMedia:&quot;windowsmedia&quot;,mceItemQuickTime:&quot;quicktime&quot;,mceItemRealMedia:&quot;realmedia&quot;};b.selection.onSetContent.add(function(){e._spansToImgs(b.getBody())});b.selection.onBeforeSetContent.add(e._objectsToSpans,e);if(b.settings.content_css!==false){b.dom.loadCSS(c+&quot;/css/content.css&quot;)}if(b.theme&amp;&amp;b.theme.onResolveName){b.theme.onResolveName.add(function(h,i){if(i.name==&quot;img&quot;){a(g,function(l,j){if(b.dom.hasClass(i.node,j)){i.name=l;i.title=b.dom.getAttrib(i.node,&quot;title&quot;);return false}})}})}if(b&amp;&amp;b.plugins.contextmenu){b.plugins.contextmenu.onContextMenu.add(function(i,h,j){if(j.nodeName==&quot;IMG&quot;&amp;&amp;/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(j.className)){h.add({title:&quot;media.edit&quot;,icon:&quot;media&quot;,cmd:&quot;mceMedia&quot;})}})}});b.onBeforeSetContent.add(e._objectsToSpans,e);b.onSetContent.add(function(){e._spansToImgs(b.getBody())});b.onPreProcess.add(function(g,i){var h=g.dom;if(i.set){e._spansToImgs(i.node);a(h.select(&quot;IMG&quot;,i.node),function(k){var j;if(f(k)){j=e._parse(k.title);h.setAttrib(k,&quot;width&quot;,h.getAttrib(k,&quot;width&quot;,j.width||100));h.setAttrib(k,&quot;height&quot;,h.getAttrib(k,&quot;height&quot;,j.height||100))}})}if(i.get){a(h.select(&quot;IMG&quot;,i.node),function(m){var l,j,k;if(g.getParam(&quot;media_use_script&quot;)){if(f(m)){m.className=m.className.replace(/mceItem/g,&quot;mceTemp&quot;)}return}switch(m.className){case&quot;mceItemFlash&quot;:l=&quot;d27cdb6e-ae6d-11cf-96b8-444553540000&quot;;j=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;;k=&quot;application/x-shockwave-flash&quot;;break;case&quot;mceItemShockWave&quot;:l=&quot;166b1bca-3f9c-11cf-8075-444553540000&quot;;j=&quot;http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0&quot;;k=&quot;application/x-director&quot;;break;case&quot;mceItemWindowsMedia&quot;:l=g.getParam(&quot;media_wmp6_compatible&quot;)?&quot;05589fa1-c356-11ce-bf01-00aa0055595a&quot;:&quot;6bf52a52-394a-11d3-b153-00c04f79faa6&quot;;j=&quot;http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701&quot;;k=&quot;application/x-mplayer2&quot;;break;case&quot;mceItemQuickTime&quot;:l=&quot;02bf25d5-8c17-4b23-bc80-d3488abddc6b&quot;;j=&quot;http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0&quot;;k=&quot;video/quicktime&quot;;break;case&quot;mceItemRealMedia&quot;:l=&quot;cfcdaa03-8be4-11cf-b84b-0020afbbccfa&quot;;j=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;;k=&quot;audio/x-pn-realaudio-plugin&quot;;break}if(l){h.replace(e._buildObj({classid:l,codebase:j,type:k},m),m)}})}});b.onPostProcess.add(function(g,h){h.content=h.content.replace(/_mce_value=/g,&quot;value=&quot;)});function d(g,h){h=new RegExp(h+'=&quot;([^&quot;]+)&quot;',&quot;g&quot;).exec(g);return h?b.dom.decode(h[1]):&quot;&quot;}b.onPostProcess.add(function(g,h){if(g.getParam(&quot;media_use_script&quot;)){h.content=h.content.replace(/&lt;img[^&gt;]+&gt;/g,function(j){var i=d(j,&quot;class&quot;);if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(i)){at=e._parse(d(j,&quot;title&quot;));at.width=d(j,&quot;width&quot;);at.height=d(j,&quot;height&quot;);j='&lt;script type=&quot;text/javascript&quot;&gt;write'+i.substring(7)+&quot;({&quot;+e._serialize(at)+&quot;});&lt;\/script&gt;&quot;}return j})}})},getInfo:function(){return{longname:&quot;Media&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_objectsToSpans:function(b,e){var c=this,d=e.content;d=d.replace(/&lt;script[^&gt;]*&gt;\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*&lt;\/script&gt;/gi,function(g,f,i){var h=c._parse(i);return'&lt;img class=&quot;mceItem'+f+'&quot; title=&quot;'+b.dom.encode(i)+'&quot; src=&quot;'+c.url+'/img/trans.gif&quot; width=&quot;'+h.width+'&quot; height=&quot;'+h.height+'&quot; /&gt;'});d=d.replace(/&lt;object([^&gt;]*)&gt;/gi,'&lt;span class=&quot;mceItemObject&quot; $1&gt;');d=d.replace(/&lt;embed([^&gt;]*)\/?&gt;/gi,'&lt;span class=&quot;mceItemEmbed&quot; $1&gt;&lt;/span&gt;');d=d.replace(/&lt;embed([^&gt;]*)&gt;/gi,'&lt;span class=&quot;mceItemEmbed&quot; $1&gt;');d=d.replace(/&lt;\/(object)([^&gt;]*)&gt;/gi,&quot;&lt;/span&gt;&quot;);d=d.replace(/&lt;\/embed&gt;/gi,&quot;&quot;);d=d.replace(/&lt;param([^&gt;]*)&gt;/gi,function(g,f){return&quot;&lt;span &quot;+f.replace(/value=/gi,&quot;_mce_value=&quot;)+' class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;'});d=d.replace(/\/ class=\&quot;mceItemParam\&quot;&gt;&lt;\/span&gt;/gi,'class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;');e.content=d},_buildObj:function(g,h){var d,c=this.editor,f=c.dom,e=this._parse(h.title),b;b=c.getParam(&quot;media_strict&quot;,true)&amp;&amp;g.type==&quot;application/x-shockwave-flash&quot;;e.width=g.width=f.getAttrib(h,&quot;width&quot;)||100;e.height=g.height=f.getAttrib(h,&quot;height&quot;)||100;if(e.src){e.src=c.convertURL(e.src,&quot;src&quot;,h)}if(b){d=f.create(&quot;span&quot;,{id:e.id,mce_name:&quot;object&quot;,type:&quot;application/x-shockwave-flash&quot;,data:e.src,style:f.getAttrib(h,&quot;style&quot;),width:g.width,height:g.height})}else{d=f.create(&quot;span&quot;,{id:e.id,mce_name:&quot;object&quot;,classid:&quot;clsid:&quot;+g.classid,style:f.getAttrib(h,&quot;style&quot;),codebase:g.codebase,width:g.width,height:g.height})}a(e,function(j,i){if(!/^(width|height|codebase|classid|id|_cx|_cy)$/.test(i)){if(g.type==&quot;application/x-mplayer2&quot;&amp;&amp;i==&quot;src&quot;&amp;&amp;!e.url){i=&quot;url&quot;}if(j){f.add(d,&quot;span&quot;,{mce_name:&quot;param&quot;,name:i,_mce_value:j})}}});if(!b){f.add(d,&quot;span&quot;,tinymce.extend({mce_name:&quot;embed&quot;,type:g.type,style:f.getAttrib(h,&quot;style&quot;)},e))}return d},_spansToImgs:function(e){var d=this,f=d.editor.dom,b,c;a(f.select(&quot;span&quot;,e),function(g){if(f.getAttrib(g,&quot;class&quot;)==&quot;mceItemObject&quot;){c=f.getAttrib(g,&quot;classid&quot;).toLowerCase().replace(/\s+/g,&quot;&quot;);switch(c){case&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot;:f.replace(d._createImg(&quot;mceItemFlash&quot;,g),g);break;case&quot;clsid:166b1bca-3f9c-11cf-8075-444553540000&quot;:f.replace(d._createImg(&quot;mceItemShockWave&quot;,g),g);break;case&quot;clsid:6bf52a52-394a-11d3-b153-00c04f79faa6&quot;:case&quot;clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95&quot;:case&quot;clsid:05589fa1-c356-11ce-bf01-00aa0055595a&quot;:f.replace(d._createImg(&quot;mceItemWindowsMedia&quot;,g),g);break;case&quot;clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b&quot;:f.replace(d._createImg(&quot;mceItemQuickTime&quot;,g),g);break;case&quot;clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa&quot;:f.replace(d._createImg(&quot;mceItemRealMedia&quot;,g),g);break;default:f.replace(d._createImg(&quot;mceItemFlash&quot;,g),g)}return}if(f.getAttrib(g,&quot;class&quot;)==&quot;mceItemEmbed&quot;){switch(f.getAttrib(g,&quot;type&quot;)){case&quot;application/x-shockwave-flash&quot;:f.replace(d._createImg(&quot;mceItemFlash&quot;,g),g);break;case&quot;application/x-director&quot;:f.replace(d._createImg(&quot;mceItemShockWave&quot;,g),g);break;case&quot;application/x-mplayer2&quot;:f.replace(d._createImg(&quot;mceItemWindowsMedia&quot;,g),g);break;case&quot;video/quicktime&quot;:f.replace(d._createImg(&quot;mceItemQuickTime&quot;,g),g);break;case&quot;audio/x-pn-realaudio-plugin&quot;:f.replace(d._createImg(&quot;mceItemRealMedia&quot;,g),g);break;default:f.replace(d._createImg(&quot;mceItemFlash&quot;,g),g)}}})},_createImg:function(c,h){var b,g=this.editor.dom,f={},e=&quot;&quot;,d;d=[&quot;id&quot;,&quot;name&quot;,&quot;width&quot;,&quot;height&quot;,&quot;bgcolor&quot;,&quot;align&quot;,&quot;flashvars&quot;,&quot;src&quot;,&quot;wmode&quot;,&quot;allowfullscreen&quot;,&quot;quality&quot;,&quot;data&quot;];b=g.create(&quot;img&quot;,{src:this.url+&quot;/img/trans.gif&quot;,width:g.getAttrib(h,&quot;width&quot;)||100,height:g.getAttrib(h,&quot;height&quot;)||100,style:g.getAttrib(h,&quot;style&quot;),&quot;class&quot;:c});a(d,function(i){var j=g.getAttrib(h,i);if(j){f[i]=j}});a(g.select(&quot;span&quot;,h),function(i){if(g.hasClass(i,&quot;mceItemParam&quot;)){f[g.getAttrib(i,&quot;name&quot;)]=g.getAttrib(i,&quot;_mce_value&quot;)}});if(f.movie){f.src=f.movie;delete f.movie}if(!f.src){f.src=f.data;delete f.data}h=g.select(&quot;.mceItemEmbed&quot;,h)[0];if(h){a(d,function(i){var j=g.getAttrib(h,i);if(j&amp;&amp;!f[i]){f[i]=j}})}delete f.width;delete f.height;b.title=this._serialize(f);return b},_parse:function(b){return tinymce.util.JSON.parse(&quot;{&quot;+b+&quot;}&quot;)},_serialize:function(b){return tinymce.util.JSON.serialize(b).replace(/[{}]/g,&quot;&quot;)}});tinymce.PluginManager.add(&quot;media&quot;,tinymce.plugins.MediaPlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/media/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 1037 2009-03-02 16:41:15Z spocke $
+ * $Id: editor_plugin_src.js 1222 2009-09-03 17:26:47Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -61,7 +61,7 @@
 				if (ed.settings.content_css !== false)
 					ed.dom.loadCSS(url + &quot;/css/content.css&quot;);
 
-				if (ed.theme.onResolveName) {
+				if (ed.theme &amp;&amp; ed.theme.onResolveName) {
 					ed.theme.onResolveName.add(function(th, o) {
 						if (o.name == 'img') {
 							each(lo, function(v, k) {
@@ -341,7 +341,7 @@
 		_createImg : function(cl, n) {
 			var im, dom = this.editor.dom, pa = {}, ti = '', args;
 
-			args = ['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode', 'allowfullscreen', 'quality'];	
+			args = ['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode', 'allowfullscreen', 'quality', 'data'];	
 
 			// Create image
 			im = dom.create('img', {
@@ -372,6 +372,12 @@
 				delete pa.movie;
 			}
 
+			// No src try data
+			if (!pa.src) {
+				pa.src = pa.data;
+				delete pa.data;
+			}
+
 			// Merge with embed args
 			n = dom.select('.mceItemEmbed', n)[0];
 			if (n) {</diff>
      <filename>lib/tiny_mce/plugins/media/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var Event=tinymce.dom.Event;tinymce.create(&quot;tinymce.plugins.PastePlugin&quot;,{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand(&quot;mcePasteText&quot;,function(ui,v){if(ui){if((ed.getParam(&quot;paste_use_dialog&quot;,true))||(!tinymce.isIE)){ed.windowManager.open({file:url+&quot;/pastetext.htm&quot;,width:450,height:400,inline:1},{plugin_url:url})}else{t._insertText(clipboardData.getData(&quot;Text&quot;),true)}}else{t._insertText(v.html,v.linebreaks)}});ed.addCommand(&quot;mcePasteWord&quot;,function(ui,v){if(ui){if((ed.getParam(&quot;paste_use_dialog&quot;,true))||(!tinymce.isIE)){ed.windowManager.open({file:url+&quot;/pasteword.htm&quot;,width:450,height:400,inline:1},{plugin_url:url})}else{t._insertText(t._clipboardHTML())}}else{t._insertWordContent(v)}});ed.addCommand(&quot;mceSelectAll&quot;,function(){ed.execCommand(&quot;selectall&quot;)});ed.addButton(&quot;pastetext&quot;,{title:&quot;paste.paste_text_desc&quot;,cmd:&quot;mcePasteText&quot;,ui:true});ed.addButton(&quot;pasteword&quot;,{title:&quot;paste.paste_word_desc&quot;,cmd:&quot;mcePasteWord&quot;,ui:true});ed.addButton(&quot;selectall&quot;,{title:&quot;paste.selectall_desc&quot;,cmd:&quot;mceSelectAll&quot;});if(ed.getParam(&quot;paste_auto_cleanup_on_paste&quot;,false)){ed.onPaste.add(function(ed,e){return t._handlePasteEvent(e)})}if(!tinymce.isIE&amp;&amp;ed.getParam(&quot;paste_auto_cleanup_on_paste&quot;,false)){ed.onKeyDown.add(function(ed,e){if(e.ctrlKey&amp;&amp;e.keyCode==86){window.setTimeout(function(){ed.execCommand(&quot;mcePasteText&quot;,true)},1);Event.cancel(e)}})}},getInfo:function(){return{longname:&quot;Paste text/word&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_handlePasteEvent:function(e){var html=this._clipboardHTML(),ed=this.editor,sel=ed.selection,r;if(ed&amp;&amp;(r=sel.getRng())&amp;&amp;r.text.length&gt;0){ed.execCommand(&quot;delete&quot;)}if(html&amp;&amp;html.length&gt;0){ed.execCommand(&quot;mcePasteWord&quot;,false,html)}return Event.cancel(e)},_insertText:function(content,bLinebreaks){content=this.editor.dom.encode(content);if(content&amp;&amp;content.length&gt;0){if(!this.editor.selection.isCollapsed()){this.editor.execCommand(&quot;Delete&quot;)}if(bLinebreaks){if(this.editor.getParam(&quot;paste_create_paragraphs&quot;,true)){var rl=this.editor.getParam(&quot;paste_replace_list&quot;,&quot;\u2122,&lt;sup&gt;TM&lt;/sup&gt;,\u2026,...,\u201c|\u201d,\&quot;,\u2019,',\u2013|\u2014|\u2015|\u2212,-&quot;).split(&quot;,&quot;);for(var i=0;i&lt;rl.length;i+=2){content=content.replace(new RegExp(rl[i],&quot;gi&quot;),rl[i+1])}content=content.replace(/\r\n\r\n/g,&quot;&lt;/p&gt;&lt;p&gt;&quot;);content=content.replace(/\r\r/g,&quot;&lt;/p&gt;&lt;p&gt;&quot;);content=content.replace(/\n\n/g,&quot;&lt;/p&gt;&lt;p&gt;&quot;);if((pos=content.indexOf(&quot;&lt;/p&gt;&lt;p&gt;&quot;))!=-1){this.editor.execCommand(&quot;Delete&quot;);var node=this.editor.selection.getNode();var breakElms=[];do{if(node.nodeType==1){if(node.nodeName==&quot;TD&quot;||node.nodeName==&quot;BODY&quot;){break}breakElms[breakElms.length]=node}}while(node=node.parentNode);var before=&quot;&quot;,after=&quot;&lt;/p&gt;&quot;;before+=content.substring(0,pos);for(var i=0;i&lt;breakElms.length;i++){before+=&quot;&lt;/&quot;+breakElms[i].nodeName+&quot;&gt;&quot;;after+=&quot;&lt;&quot;+breakElms[(breakElms.length-1)-i].nodeName+&quot;&gt;&quot;}before+=&quot;&lt;p&gt;&quot;;content=before+content.substring(pos+7)+after}}if(this.editor.getParam(&quot;paste_create_linebreaks&quot;,true)){content=content.replace(/\r\n/g,&quot;&lt;br /&gt;&quot;);content=content.replace(/\r/g,&quot;&lt;br /&gt;&quot;);content=content.replace(/\n/g,&quot;&lt;br /&gt;&quot;)}}this.editor.execCommand(&quot;mceInsertRawHTML&quot;,false,content)}},_insertWordContent:function(content){var t=this,ed=t.editor;if(content&amp;&amp;content.length&gt;0){var bull=String.fromCharCode(8226);var middot=String.fromCharCode(183);if(ed.getParam(&quot;paste_insert_word_content_callback&quot;)){content=ed.execCallback(&quot;paste_insert_word_content_callback&quot;,&quot;before&quot;,content)}var rl=ed.getParam(&quot;paste_replace_list&quot;,&quot;\u2122,&lt;sup&gt;TM&lt;/sup&gt;,\u2026,...,\x93|\x94|\u201c|\u201d,\&quot;,\x60|\x91|\x92|\u2018|\u2019,',\u2013|\u2014|\u2015|\u2212,-&quot;).split(&quot;,&quot;);for(var i=0;i&lt;rl.length;i+=2){content=content.replace(new RegExp(rl[i],&quot;gi&quot;),rl[i+1])}if(this.editor.getParam(&quot;paste_convert_headers_to_strong&quot;,false)){content=content.replace(new RegExp(&quot;&lt;p class=MsoHeading.*?&gt;(.*?)&lt;/p&gt;&quot;,&quot;gi&quot;),&quot;&lt;p&gt;&lt;b&gt;$1&lt;/b&gt;&lt;/p&gt;&quot;)}content=content.replace(new RegExp('tab-stops: list [0-9]+.0pt&quot;&gt;',&quot;gi&quot;),'&quot;&gt;--list--');content=content.replace(new RegExp(bull+&quot;(.*?)&lt;BR&gt;&quot;,&quot;gi&quot;),&quot;&lt;p&gt;&quot;+middot+&quot;$1&lt;/p&gt;&quot;);content=content.replace(new RegExp('&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;',&quot;gi&quot;),&quot;&lt;span&gt;&quot;+bull);content=content.replace(/&lt;o:p&gt;&lt;\/o:p&gt;/gi,&quot;&quot;);content=content.replace(new RegExp('&lt;br style=&quot;page-break-before: always;.*&gt;',&quot;gi&quot;),&quot;-- page break --&quot;);content=content.replace(/&lt;!--([\s\S]*?)--&gt;|&lt;style&gt;[\s\S]*?&lt;\/style&gt;/g,&quot;&quot;);content=content.replace(/&lt;(meta|link)[^&gt;]+&gt;/g,&quot;&quot;);if(this.editor.getParam(&quot;paste_remove_spans&quot;,true)){content=content.replace(/&lt;\/?span[^&gt;]*&gt;/gi,&quot;&quot;)}if(this.editor.getParam(&quot;paste_remove_styles&quot;,true)){content=content.replace(new RegExp('&lt;(\\w[^&gt;]*) style=&quot;([^&quot;]*)&quot;([^&gt;]*)',&quot;gi&quot;),&quot;&lt;$1$3&quot;)}content=content.replace(/&lt;\/?font[^&gt;]*&gt;/gi,&quot;&quot;);switch(this.editor.getParam(&quot;paste_strip_class_attributes&quot;,&quot;all&quot;)){case&quot;all&quot;:content=content.replace(/&lt;(\w[^&gt;]*) class=([^ |&gt;]*)([^&gt;]*)/gi,&quot;&lt;$1$3&quot;);break;case&quot;mso&quot;:content=content.replace(new RegExp('&lt;(\\w[^&gt;]*) class=&quot;?mso([^ |&gt;]*)([^&gt;]*)',&quot;gi&quot;),&quot;&lt;$1$3&quot;);break}content=content.replace(new RegExp('href=&quot;?'+this._reEscape(&quot;&quot;+document.location)+&quot;&quot;,&quot;gi&quot;),'href=&quot;'+this.editor.documentBaseURI.getURI());content=content.replace(/&lt;(\w[^&gt;]*) lang=([^ |&gt;]*)([^&gt;]*)/gi,&quot;&lt;$1$3&quot;);content=content.replace(/&lt;\\?\?xml[^&gt;]*&gt;/gi,&quot;&quot;);content=content.replace(/&lt;\/?\w+:[^&gt;]*&gt;/gi,&quot;&quot;);content=content.replace(/-- page break --\s*&lt;p&gt;&amp;nbsp;&lt;\/p&gt;/gi,&quot;&quot;);content=content.replace(/-- page break --/gi,&quot;&quot;);if(!this.editor.getParam(&quot;force_p_newlines&quot;)){content=content.replace(&quot;&quot;,&quot;&quot;,&quot;gi&quot;);content=content.replace(&quot;&lt;/p&gt;&quot;,&quot;&lt;br /&gt;&lt;br /&gt;&quot;,&quot;gi&quot;)}if(!tinymce.isIE&amp;&amp;!this.editor.getParam(&quot;force_p_newlines&quot;)){content=content.replace(/&lt;\/?p[^&gt;]*&gt;/gi,&quot;&quot;)}content=content.replace(/&lt;\/?div[^&gt;]*&gt;/gi,&quot;&quot;);if(this.editor.getParam(&quot;paste_convert_middot_lists&quot;,true)){var div=ed.dom.create(&quot;div&quot;,null,content);var className=this.editor.getParam(&quot;paste_unindented_list_class&quot;,&quot;unIndentedList&quot;);while(this._convertMiddots(div,&quot;--list--&quot;)){}while(this._convertMiddots(div,middot,className)){}while(this._convertMiddots(div,bull)){}content=div.innerHTML}if(this.editor.getParam(&quot;paste_convert_headers_to_strong&quot;,false)){content=content.replace(/&lt;h[1-6]&gt;&amp;nbsp;&lt;\/h[1-6]&gt;/gi,&quot;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&quot;);content=content.replace(/&lt;h[1-6]&gt;/gi,&quot;&lt;p&gt;&lt;b&gt;&quot;);content=content.replace(/&lt;\/h[1-6]&gt;/gi,&quot;&lt;/b&gt;&lt;/p&gt;&quot;);content=content.replace(/&lt;b&gt;&amp;nbsp;&lt;\/b&gt;/gi,&quot;&lt;b&gt;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&quot;);content=content.replace(/^(&amp;nbsp;)*/gi,&quot;&quot;)}content=content.replace(/--list--/gi,&quot;&quot;);if(ed.getParam(&quot;paste_insert_word_content_callback&quot;)){content=ed.execCallback(&quot;paste_insert_word_content_callback&quot;,&quot;after&quot;,content)}this.editor.execCommand(&quot;mceInsertContent&quot;,false,content);if(this.editor.getParam(&quot;paste_force_cleanup_wordpaste&quot;,true)){var ed=this.editor;window.setTimeout(function(){ed.execCommand(&quot;mceCleanup&quot;)},1)}}},_reEscape:function(s){var l=&quot;?.\\*[](){}+^$:&quot;;var o=&quot;&quot;;for(var i=0;i&lt;s.length;i++){var c=s.charAt(i);if(l.indexOf(c)!=-1){o+=&quot;\\&quot;+c}else{o+=c}}return o},_convertMiddots:function(div,search,class_name){var ed=this.editor,mdot=String.fromCharCode(183),bull=String.fromCharCode(8226);var nodes,prevul,i,p,ul,li,np,cp,li;nodes=div.getElementsByTagName(&quot;p&quot;);for(i=0;i&lt;nodes.length;i++){p=nodes[i];if(p.innerHTML.indexOf(search)==0){ul=ed.dom.create(&quot;ul&quot;);if(class_name){ul.className=class_name}li=ed.dom.create(&quot;li&quot;);li.innerHTML=p.innerHTML.replace(new RegExp(&quot;&quot;+mdot+&quot;|&quot;+bull+&quot;|--list--|&amp;nbsp;&quot;,&quot;gi&quot;),&quot;&quot;);ul.appendChild(li);np=p.nextSibling;while(np){if(np.nodeType==3&amp;&amp;new RegExp(&quot;^\\s$&quot;,&quot;m&quot;).test(np.nodeValue)){np=np.nextSibling;continue}if(search==mdot){if(np.nodeType==1&amp;&amp;new RegExp(&quot;^o(\\s+|&amp;nbsp;)&quot;).test(np.innerHTML)){if(!prevul){prevul=ul;ul=ed.dom.create(&quot;ul&quot;);prevul.appendChild(ul)}np.innerHTML=np.innerHTML.replace(/^o/,&quot;&quot;)}else{if(prevul){ul=prevul;prevul=null}if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0){break}}}else{if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0){break}}cp=np.nextSibling;li=ed.dom.create(&quot;li&quot;);li.innerHTML=np.innerHTML.replace(new RegExp(&quot;&quot;+mdot+&quot;|&quot;+bull+&quot;|--list--|&amp;nbsp;&quot;,&quot;gi&quot;),&quot;&quot;);np.parentNode.removeChild(np);ul.appendChild(li);np=cp}p.parentNode.replaceChild(ul,p);return true}}return false},_clipboardHTML:function(){var div=document.getElementById(&quot;_TinyMCE_clipboardHTML&quot;);if(!div){var div=document.createElement(&quot;DIV&quot;);div.id=&quot;_TinyMCE_clipboardHTML&quot;;with(div.style){visibility=&quot;hidden&quot;;overflow=&quot;hidden&quot;;position=&quot;absolute&quot;;width=1;height=1}document.body.appendChild(div)}div.innerHTML=&quot;&quot;;var rng=document.body.createTextRange();rng.moveToElementText(div);rng.execCommand(&quot;Paste&quot;);var html=div.innerHTML;div.innerHTML=&quot;&quot;;return html}});tinymce.PluginManager.add(&quot;paste&quot;,tinymce.plugins.PastePlugin)})();
\ No newline at end of file
+(function(){var a=tinymce.each;tinymce.create(&quot;tinymce.plugins.PastePlugin&quot;,{init:function(c,d){var e=this,b;e.editor=c;e.url=d;e.onPreProcess=new tinymce.util.Dispatcher(e);e.onPostProcess=new tinymce.util.Dispatcher(e);e.onPreProcess.add(e._preProcess);e.onPostProcess.add(e._postProcess);e.onPreProcess.add(function(h,i){c.execCallback(&quot;paste_preprocess&quot;,h,i)});e.onPostProcess.add(function(h,i){c.execCallback(&quot;paste_postprocess&quot;,h,i)});function g(i){var h=c.dom;e.onPreProcess.dispatch(e,i);i.node=h.create(&quot;div&quot;,0,i.content);e.onPostProcess.dispatch(e,i);i.content=c.serializer.serialize(i.node,{getInner:1});if(/&lt;(p|h[1-6]|ul|ol)/.test(i.content)){e._insertBlockContent(c,h,i.content)}else{e._insert(i.content)}}c.addCommand(&quot;mceInsertClipboardContent&quot;,function(h,i){g(i)});function f(l){var p,k,i,j=c.selection,o=c.dom,h=c.getBody(),m;if(o.get(&quot;_mcePaste&quot;)){return}p=o.add(h,&quot;div&quot;,{id:&quot;_mcePaste&quot;},&quot;\uFEFF&quot;);if(h!=c.getDoc().body){m=o.getPos(c.selection.getStart(),h).y}else{m=h.scrollTop}o.setStyles(p,{position:&quot;absolute&quot;,left:-10000,top:m,width:1,height:1,overflow:&quot;hidden&quot;});if(tinymce.isIE){i=o.doc.body.createTextRange();i.moveToElementText(p);i.execCommand(&quot;Paste&quot;);o.remove(p);if(p.innerHTML===&quot;\uFEFF&quot;){c.execCommand(&quot;mcePasteWord&quot;);l.preventDefault();return}g({content:p.innerHTML});return tinymce.dom.Event.cancel(l)}else{k=c.selection.getRng();p=p.firstChild;i=c.getDoc().createRange();i.setStart(p,0);i.setEnd(p,1);j.setRng(i);window.setTimeout(function(){var q=&quot;&quot;,n=o.select(&quot;div[id=_mcePaste]&quot;);a(n,function(r){q+=(o.select(&quot;&gt; span.Apple-style-span div&quot;,r)[0]||o.select(&quot;&gt; span.Apple-style-span&quot;,r)[0]||r).innerHTML});a(n,function(r){o.remove(r)});if(k){j.setRng(k)}g({content:q})},0)}}if(c.getParam(&quot;paste_auto_cleanup_on_paste&quot;,true)){if(tinymce.isOpera||/Firefox\/2/.test(navigator.userAgent)){c.onKeyDown.add(function(h,i){if(((tinymce.isMac?i.metaKey:i.ctrlKey)&amp;&amp;i.keyCode==86)||(i.shiftKey&amp;&amp;i.keyCode==45)){f(i)}})}else{c.onPaste.addToTop(function(h,i){return f(i)})}}if(c.getParam(&quot;paste_block_drop&quot;)){c.onInit.add(function(){c.dom.bind(c.getBody(),[&quot;dragend&quot;,&quot;dragover&quot;,&quot;draggesture&quot;,&quot;dragdrop&quot;,&quot;drop&quot;,&quot;drag&quot;],function(h){h.preventDefault();h.stopPropagation();return false})})}e._legacySupport()},getInfo:function(){return{longname:&quot;Paste text/word&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_preProcess:function(d,i){var b=this.editor,c=i.content,g,f;function g(h){a(h,function(j){if(j.constructor==RegExp){c=c.replace(j,&quot;&quot;)}else{c=c.replace(j[0],j[1])}})}if(/(class=\&quot;?Mso|style=\&quot;[^\&quot;]*\bmso\-|w:WordDocument)/.test(c)||i.wordContent){i.wordContent=true;g([/^\s*(&amp;nbsp;)+/g,/(&amp;nbsp;|&lt;br[^&gt;]*&gt;)+\s*$/g]);if(b.getParam(&quot;paste_convert_middot_lists&quot;,true)){g([[/&lt;!--\[if !supportLists\]--&gt;/gi,&quot;$&amp;__MCE_ITEM__&quot;],[/(&lt;span[^&gt;]+:\s*symbol[^&gt;]+&gt;)/gi,&quot;$1__MCE_ITEM__&quot;],[/(&lt;span[^&gt;]+mso-list:[^&gt;]+&gt;)/gi,&quot;$1__MCE_ITEM__&quot;]])}g([/&lt;!--[\s\S]+?--&gt;/gi,/&lt;\/?(img|font|meta|link|style|div|v:\w+)[^&gt;]*&gt;/gi,/&lt;\\?\?xml[^&gt;]*&gt;/gi,/&lt;\/?o:[^&gt;]*&gt;/gi,/ (id|name|language|type|on\w+|v:\w+)=\&quot;([^\&quot;]*)\&quot;/gi,/ (id|name|language|type|on\w+|v:\w+)=(\w+)/gi,[/&lt;(\/?)s&gt;/gi,&quot;&lt;$1strike&gt;&quot;],/&lt;script[^&gt;]+&gt;[\s\S]*?&lt;\/script&gt;/gi,[/&amp;nbsp;/g,&quot;\u00a0&quot;]]);if(!b.getParam(&quot;paste_retain_style_properties&quot;)){g([/&lt;\/?(span)[^&gt;]*&gt;/gi])}}f=b.getParam(&quot;paste_strip_class_attributes&quot;);if(f!=&quot;none&quot;){function e(l,h){var k,j=&quot;&quot;;if(f==&quot;all&quot;){return&quot;&quot;}h=tinymce.explode(h,&quot; &quot;);for(k=h.length-1;k&gt;=0;k--){if(!/^(Mso)/i.test(h[k])){j+=(!j?&quot;&quot;:&quot; &quot;)+h[k]}}return' class=&quot;'+j+'&quot;'}g([[/ class=\&quot;([^\&quot;]*)\&quot;/gi,e],[/ class=(\w+)/gi,e]])}if(b.getParam(&quot;paste_remove_spans&quot;)){g([/&lt;\/?(span)[^&gt;]*&gt;/gi])}i.content=c},_postProcess:function(e,g){var d=this,c=d.editor,f=c.dom,b;if(g.wordContent){a(f.select(&quot;a&quot;,g.node),function(h){if(!h.href||h.href.indexOf(&quot;#_Toc&quot;)!=-1){f.remove(h,1)}});if(d.editor.getParam(&quot;paste_convert_middot_lists&quot;,true)){d._convertLists(e,g)}b=c.getParam(&quot;paste_retain_style_properties&quot;);if(tinymce.is(b,&quot;string&quot;)){b=tinymce.explode(b)}a(f.select(&quot;*&quot;,g.node),function(l){var m={},j=0,k,n,h;if(b){for(k=0;k&lt;b.length;k++){n=b[k];h=f.getStyle(l,n);if(h){m[n]=h;j++}}}f.setAttrib(l,&quot;style&quot;,&quot;&quot;);if(b&amp;&amp;j&gt;0){f.setStyles(l,m)}else{if(l.nodeName==&quot;SPAN&quot;&amp;&amp;!l.className){f.remove(l,true)}}})}if(c.getParam(&quot;paste_remove_styles&quot;)||(c.getParam(&quot;paste_remove_styles_if_webkit&quot;)&amp;&amp;tinymce.isWebKit)){a(f.select(&quot;*[style]&quot;,g.node),function(h){h.removeAttribute(&quot;style&quot;);h.removeAttribute(&quot;mce_style&quot;)})}else{if(tinymce.isWebKit){a(f.select(&quot;*&quot;,g.node),function(h){h.removeAttribute(&quot;mce_style&quot;)})}}},_convertLists:function(e,c){var g=e.editor.dom,f,j,b=-1,d,k=[],i,h;a(g.select(&quot;p&quot;,c.node),function(r){var n,s=&quot;&quot;,q,o,l,m;for(n=r.firstChild;n&amp;&amp;n.nodeType==3;n=n.nextSibling){s+=n.nodeValue}s=r.innerHTML.replace(/&lt;\/?\w+[^&gt;]*&gt;/gi,&quot;&quot;).replace(/&amp;nbsp;/g,&quot;\u00a0&quot;);if(/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o]\s*\u00a0*/.test(s)){q=&quot;ul&quot;}if(/^__MCE_ITEM__\s*\w+\.\s*\u00a0{2,}/.test(s)){q=&quot;ol&quot;}if(q){d=parseFloat(r.style.marginLeft||0);if(d&gt;b){k.push(d)}if(!f||q!=i){f=g.create(q);g.insertAfter(f,r)}else{if(d&gt;b){f=j.appendChild(g.create(q))}else{if(d&lt;b){l=tinymce.inArray(k,d);m=g.getParents(f.parentNode,q);f=m[m.length-1-l]||f}}}a(g.select(&quot;span&quot;,r),function(t){var p=t.innerHTML.replace(/&lt;\/?\w+[^&gt;]*&gt;/gi,&quot;&quot;);if(q==&quot;ul&quot;&amp;&amp;/^[\u2022\u00b7\u00a7\u00d8o]/.test(p)){g.remove(t)}else{if(/^[\s\S]*\w+\.(&amp;nbsp;|\u00a0)*\s*/.test(p)){g.remove(t)}}});o=r.innerHTML;if(q==&quot;ul&quot;){o=r.innerHTML.replace(/__MCE_ITEM__/g,&quot;&quot;).replace(/^[\u2022\u00b7\u00a7\u00d8o]\s*(&amp;nbsp;|\u00a0)+\s*/,&quot;&quot;)}else{o=r.innerHTML.replace(/__MCE_ITEM__/g,&quot;&quot;).replace(/^\s*\w+\.(&amp;nbsp;|\u00a0)+\s*/,&quot;&quot;)}j=f.appendChild(g.create(&quot;li&quot;,0,o));g.remove(r);b=d;i=q}else{f=b=0}});h=c.node.innerHTML;if(h.indexOf(&quot;__MCE_ITEM__&quot;)!=-1){c.node.innerHTML=h.replace(/__MCE_ITEM__/g,&quot;&quot;)}},_insertBlockContent:function(h,e,i){var c,g,d=h.selection,m,j,b,k,f;function l(p){var o;if(tinymce.isIE){o=h.getDoc().body.createTextRange();o.moveToElementText(p);o.collapse(false);o.select()}else{d.select(p,1);d.collapse(false)}}this._insert('&lt;span id=&quot;_marker&quot;&gt;&amp;nbsp;&lt;/span&gt;',1);g=e.get(&quot;_marker&quot;);c=e.getParent(g,&quot;p,h1,h2,h3,h4,h5,h6,ul,ol,th,td&quot;);if(c&amp;&amp;!/TD|TH/.test(c.nodeName)){g=e.split(c,g);a(e.create(&quot;div&quot;,0,i).childNodes,function(o){m=g.parentNode.insertBefore(o.cloneNode(true),g)});l(m)}else{e.setOuterHTML(g,i);d.select(h.getBody(),1);d.collapse(0)}e.remove(&quot;_marker&quot;);j=d.getStart();b=e.getViewPort(h.getWin());k=h.dom.getPos(j).y;f=j.clientHeight;if(k&lt;b.y||k+f&gt;b.y+b.h){h.getDoc().body.scrollTop=k&lt;b.y?k:k-b.h+25}},_insert:function(d,b){var c=this.editor;if(!c.selection.isCollapsed()){c.getDoc().execCommand(&quot;Delete&quot;,false,null)}c.execCommand(tinymce.isGecko?&quot;insertHTML&quot;:&quot;mceInsertContent&quot;,false,d,{skip_undo:b})},_legacySupport:function(){var c=this,b=c.editor;a([&quot;mcePasteText&quot;,&quot;mcePasteWord&quot;],function(d){b.addCommand(d,function(){b.windowManager.open({file:c.url+(d==&quot;mcePasteText&quot;?&quot;/pastetext.htm&quot;:&quot;/pasteword.htm&quot;),width:parseInt(b.getParam(&quot;paste_dialog_width&quot;,&quot;450&quot;)),height:parseInt(b.getParam(&quot;paste_dialog_height&quot;,&quot;400&quot;)),inline:1})})});b.addButton(&quot;pastetext&quot;,{title:&quot;paste.paste_text_desc&quot;,cmd:&quot;mcePasteText&quot;});b.addButton(&quot;pasteword&quot;,{title:&quot;paste.paste_word_desc&quot;,cmd:&quot;mcePasteWord&quot;});b.addButton(&quot;selectall&quot;,{title:&quot;paste.selectall_desc&quot;,cmd:&quot;selectall&quot;})}});tinymce.PluginManager.add(&quot;paste&quot;,tinymce.plugins.PastePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/paste/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,81 +1,179 @@
 /**
- * $Id: editor_plugin_src.js 919 2008-09-08 20:31:23Z spocke $
+ * $Id: editor_plugin_src.js 1225 2009-09-07 19:06:19Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
  */
 
 (function() {
-	var Event = tinymce.dom.Event;
+	var each = tinymce.each;
 
 	tinymce.create('tinymce.plugins.PastePlugin', {
 		init : function(ed, url) {
-			var t = this;
-
-			t.editor = ed; 
-
-			// Register commands
-			ed.addCommand('mcePasteText', function(ui, v) {
-				if (ui) {
-					if ((ed.getParam('paste_use_dialog', true)) || (!tinymce.isIE)) {
-						ed.windowManager.open({
-							file : url + '/pastetext.htm',
-							width : 450,
-							height : 400,
-							inline : 1
-						}, {
-							plugin_url : url
-						});
-					} else
-						t._insertText(clipboardData.getData(&quot;Text&quot;), true);
-				} else
-					t._insertText(v.html, v.linebreaks);
+			var t = this, cb;
+
+			t.editor = ed;
+			t.url = url;
+
+			// Setup plugin events
+			t.onPreProcess = new tinymce.util.Dispatcher(t);
+			t.onPostProcess = new tinymce.util.Dispatcher(t);
+
+			// Register default handlers
+			t.onPreProcess.add(t._preProcess);
+			t.onPostProcess.add(t._postProcess);
+
+			// Register optional preprocess handler
+			t.onPreProcess.add(function(pl, o) {
+				ed.execCallback('paste_preprocess', pl, o);
 			});
 
-			ed.addCommand('mcePasteWord', function(ui, v) {
-				if (ui) {
-					if ((ed.getParam('paste_use_dialog', true)) || (!tinymce.isIE)) {
-						ed.windowManager.open({
-							file : url + '/pasteword.htm',
-							width : 450,
-							height : 400,
-							inline : 1
-						}, {
-							plugin_url : url
-						});
-					} else
-						t._insertText(t._clipboardHTML());
-				} else
-					t._insertWordContent(v);
+			// Register optional postprocess
+			t.onPostProcess.add(function(pl, o) {
+				ed.execCallback('paste_postprocess', pl, o);
 			});
 
-			ed.addCommand('mceSelectAll', function() {
-				ed.execCommand('selectall'); 
+			// This function executes the process handlers and inserts the contents
+			function process(o) {
+				var dom = ed.dom;
+
+				// Execute pre process handlers
+				t.onPreProcess.dispatch(t, o);
+
+				// Create DOM structure
+				o.node = dom.create('div', 0, o.content);
+
+				// Execute post process handlers
+				t.onPostProcess.dispatch(t, o);
+
+				// Serialize content
+				o.content = ed.serializer.serialize(o.node, {getInner : 1});
+
+				//  Insert cleaned content. We need to handle insertion of contents containing block elements separately
+				if (/&lt;(p|h[1-6]|ul|ol)/.test(o.content))
+					t._insertBlockContent(ed, dom, o.content);
+				else
+					t._insert(o.content);
+			};
+
+			// Add command for external usage
+			ed.addCommand('mceInsertClipboardContent', function(u, o) {
+				process(o);
 			});
 
-			// Register buttons
-			ed.addButton('pastetext', {title : 'paste.paste_text_desc', cmd : 'mcePasteText', ui : true});
-			ed.addButton('pasteword', {title : 'paste.paste_word_desc', cmd : 'mcePasteWord', ui : true});
-			ed.addButton('selectall', {title : 'paste.selectall_desc', cmd : 'mceSelectAll'});
+			// This function grabs the contents from the clipboard by adding a
+			// hidden div and placing the caret inside it and after the browser paste
+			// is done it grabs that contents and processes that
+			function grabContent(e) {
+				var n, or, rng, sel = ed.selection, dom = ed.dom, body = ed.getBody(), posY;
+
+				if (dom.get('_mcePaste'))
+					return;
+
+				// Create container to paste into
+				n = dom.add(body, 'div', {id : '_mcePaste'}, '\uFEFF');
 
-			if (ed.getParam(&quot;paste_auto_cleanup_on_paste&quot;, false)) {
-				ed.onPaste.add(function(ed, e) {
-					return t._handlePasteEvent(e)
+				// If contentEditable mode we need to find out the position of the closest element
+				if (body != ed.getDoc().body)
+					posY = dom.getPos(ed.selection.getStart(), body).y;
+				else
+					posY = body.scrollTop;
+
+				// Styles needs to be applied after the element is added to the document since WebKit will otherwise remove all styles
+				dom.setStyles(n, {
+					position : 'absolute',
+					left : -10000,
+					top : posY,
+					width : 1,
+					height : 1,
+					overflow : 'hidden'
 				});
+
+				if (tinymce.isIE) {
+					// Select the container
+					rng = dom.doc.body.createTextRange();
+					rng.moveToElementText(n);
+					rng.execCommand('Paste');
+
+					// Remove container
+					dom.remove(n);
+
+					// Check if the contents was changed, if it wasn't then clipboard extraction failed probably due
+					// to IE security settings so we pass the junk though better than nothing right
+					if (n.innerHTML === '\uFEFF') {
+						ed.execCommand('mcePasteWord');
+						e.preventDefault();
+						return;
+					}
+
+					// Process contents
+					process({content : n.innerHTML});
+
+					// Block the real paste event
+					return tinymce.dom.Event.cancel(e);
+				} else {
+					or = ed.selection.getRng();
+
+					// Move caret into hidden div
+					n = n.firstChild;
+					rng = ed.getDoc().createRange();
+					rng.setStart(n, 0);
+					rng.setEnd(n, 1);
+					sel.setRng(rng);
+
+					// Wait a while and grab the pasted contents
+					window.setTimeout(function() {
+						var h = '', nl = dom.select('div[id=_mcePaste]');
+
+						// WebKit will split the div into multiple ones so this will loop through then all and join them to get the whole HTML string
+						each(nl, function(n) {
+							h += (dom.select('&gt; span.Apple-style-span div', n)[0] || dom.select('&gt; span.Apple-style-span', n)[0] || n).innerHTML;
+						});
+
+						// Remove the nodes
+						each(nl, function(n) {
+							dom.remove(n);
+						});
+
+						// Restore the old selection
+						if (or)
+							sel.setRng(or);
+
+						process({content : h});
+					}, 0);
+				}
+			};
+
+			// Check if we should use the new auto process method			
+			if (ed.getParam('paste_auto_cleanup_on_paste', true)) {
+				// Is it's Opera or older FF use key handler
+				if (tinymce.isOpera || /Firefox\/2/.test(navigator.userAgent)) {
+					ed.onKeyDown.add(function(ed, e) {
+						if (((tinymce.isMac ? e.metaKey : e.ctrlKey) &amp;&amp; e.keyCode == 86) || (e.shiftKey &amp;&amp; e.keyCode == 45))
+							grabContent(e);
+					});
+				} else {
+					// Grab contents on paste event on Gecko and WebKit
+					ed.onPaste.addToTop(function(ed, e) {
+						return grabContent(e);
+					});
+				}
 			}
 
-			if (!tinymce.isIE &amp;&amp; ed.getParam(&quot;paste_auto_cleanup_on_paste&quot;, false)) {
-				// Force paste dialog if non IE browser
-				ed.onKeyDown.add(function(ed, e) {
-					if (e.ctrlKey &amp;&amp; e.keyCode == 86) {
-						window.setTimeout(function() {
-							ed.execCommand(&quot;mcePasteText&quot;, true);
-						}, 1);
+			// Block all drag/drop events
+			if (ed.getParam('paste_block_drop')) {
+				ed.onInit.add(function() {
+					ed.dom.bind(ed.getBody(), ['dragend', 'dragover', 'draggesture', 'dragdrop', 'drop', 'drag'], function(e) {
+						e.preventDefault();
+						e.stopPropagation();
 
-						Event.cancel(e);
-					}
+						return false;
+					});
 				});
 			}
+
+			// Add legacy support
+			t._legacySupport();
 		},
 
 		getInfo : function() {
@@ -88,304 +186,343 @@
 			};
 		},
 
-		// Private methods
-
-		_handlePasteEvent : function(e) {
-			var html = this._clipboardHTML(), ed = this.editor, sel = ed.selection, r;
+		_preProcess : function(pl, o) {
+			var ed = this.editor, h = o.content, process, stripClass;
 
-			// Removes italic, strong etc, the if was needed due to bug #1437114
-			if (ed &amp;&amp; (r = sel.getRng()) &amp;&amp; r.text.length &gt; 0)
-				ed.execCommand('delete');
+			//console.log('Before preprocess:' + o.content);
 
-			if (html &amp;&amp; html.length &gt; 0)
-				ed.execCommand('mcePasteWord', false, html);
-
-			return Event.cancel(e);
-		},
+			function process(items) {
+				each(items, function(v) {
+					// Remove or replace
+					if (v.constructor == RegExp)
+						h = h.replace(v, '');
+					else
+						h = h.replace(v[0], v[1]);
+				});
+			};
 
-		_insertText : function(content, bLinebreaks) {
-			content = this.editor.dom.encode(content);
-
-			if (content &amp;&amp; content.length &gt; 0) {
-				// Delete any highlighted text before pasting
-				if (!this.editor.selection.isCollapsed())
-					this.editor.execCommand(&quot;Delete&quot;); 
-
-				if (bLinebreaks) { 
-					// Special paragraph treatment 
-					if (this.editor.getParam(&quot;paste_create_paragraphs&quot;, true)) {
-						var rl = this.editor.getParam(&quot;paste_replace_list&quot;, '\u2122,&lt;sup&gt;TM&lt;/sup&gt;,\u2026,...,\u201c|\u201d,&quot;,\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
-						for (var i=0; i&lt;rl.length; i+=2)
-							content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
-
-						content = content.replace(/\r\n\r\n/g, '&lt;/p&gt;&lt;p&gt;');
-						content = content.replace(/\r\r/g, '&lt;/p&gt;&lt;p&gt;');
-						content = content.replace(/\n\n/g, '&lt;/p&gt;&lt;p&gt;');
-
-						// Has paragraphs 
-						if ((pos = content.indexOf('&lt;/p&gt;&lt;p&gt;')) != -1) { 
-							this.editor.execCommand(&quot;Delete&quot;); 
-
-							var node = this.editor.selection.getNode(); 
-
-							// Get list of elements to break 
-							var breakElms = [];
-
-							do { 
-								if (node.nodeType == 1) { 
-									// Don't break tables and break at body 
-									if (node.nodeName == &quot;TD&quot; || node.nodeName == &quot;BODY&quot;) 
-										break; 
-			
-									breakElms[breakElms.length] = node; 
-								} 
-							} while(node = node.parentNode); 
-
-							var before = &quot;&quot;, after = &quot;&lt;/p&gt;&quot;; 
-							before += content.substring(0, pos); 
-
-							for (var i=0; i&lt;breakElms.length; i++) { 
-								before += &quot;&lt;/&quot; + breakElms[i].nodeName + &quot;&gt;&quot;; 
-								after += &quot;&lt;&quot; + breakElms[(breakElms.length-1)-i].nodeName + &quot;&gt;&quot;; 
-							} 
-
-							before += &quot;&lt;p&gt;&quot;; 
-							content = before + content.substring(pos+7) + after; 
-						} 
-					} 
-
-					if (this.editor.getParam(&quot;paste_create_linebreaks&quot;, true)) {
-						content = content.replace(/\r\n/g, '&lt;br /&gt;');
-						content = content.replace(/\r/g, '&lt;br /&gt;');
-						content = content.replace(/\n/g, '&lt;br /&gt;');
-					}
-				} 
+			// Detect Word content and process it more aggressive
+			if (/(class=\&quot;?Mso|style=\&quot;[^\&quot;]*\bmso\-|w:WordDocument)/.test(h) || o.wordContent) {
+				o.wordContent = true; // Mark the pasted contents as word specific content
+				//console.log('Word contents detected.');
+
+				// Process away some basic content
+				process([
+					/^\s*(&amp;nbsp;)+/g,											// nbsp entities at the start of contents
+					/(&amp;nbsp;|&lt;br[^&gt;]*&gt;)+\s*$/g									// nbsp entities at the end of contents
+				]);
+
+				if (ed.getParam('paste_convert_middot_lists', true)) {
+					process([
+						[/&lt;!--\[if !supportLists\]--&gt;/gi, '$&amp;__MCE_ITEM__'],			// Convert supportLists to a list item marker
+						[/(&lt;span[^&gt;]+:\s*symbol[^&gt;]+&gt;)/gi, '$1__MCE_ITEM__'],				// Convert symbol spans to list items
+						[/(&lt;span[^&gt;]+mso-list:[^&gt;]+&gt;)/gi, '$1__MCE_ITEM__']				// Convert mso-list to item marker
+					]);
+				}
 
-				this.editor.execCommand(&quot;mceInsertRawHTML&quot;, false, content); 
+				process([
+					/&lt;!--[\s\S]+?--&gt;/gi,												// Word comments
+					/&lt;\/?(img|font|meta|link|style|div|v:\w+)[^&gt;]*&gt;/gi,					// Remove some tags including VML content
+					/&lt;\\?\?xml[^&gt;]*&gt;/gi,												// XML namespace declarations
+					/&lt;\/?o:[^&gt;]*&gt;/gi,													// MS namespaced elements &lt;o:tag&gt;
+					/ (id|name|language|type|on\w+|v:\w+)=\&quot;([^\&quot;]*)\&quot;/gi,				// on.., class, style and language attributes with quotes
+					/ (id|name|language|type|on\w+|v:\w+)=(\w+)/gi,						// on.., class, style and language attributes without quotes (IE)
+					[/&lt;(\/?)s&gt;/gi, '&lt;$1strike&gt;'],										// Convert &lt;s&gt; into &lt;strike&gt; for line-though
+					/&lt;script[^&gt;]+&gt;[\s\S]*?&lt;\/script&gt;/gi,								// All scripts elements for msoShowComment for example
+					[/&amp;nbsp;/g, '\u00a0']												// Replace nsbp entites to char since it's easier to handle
+				]);
+
+				// Remove all spans if no styles is to be retained
+				if (!ed.getParam('paste_retain_style_properties')) {
+					process([
+						/&lt;\/?(span)[^&gt;]*&gt;/gi
+					]);
+				}
 			}
-		},
 
-		_insertWordContent : function(content) { 
-			var t = this, ed = t.editor;
+			// Allow for class names to be retained if desired; either all, or just the ones from Word
+			// Note that the paste_strip_class_attributes: 'none, verify_css_classes: true is also a good variation.
+			stripClass = ed.getParam('paste_strip_class_attributes');
+			if (stripClass != 'none') {
+				// Cleans everything but mceItem... classes
+				function cleanClasses(str, cls) {
+					var i, out = '';
 
-			if (content &amp;&amp; content.length &gt; 0) {
-				// Cleanup Word content
-				var bull = String.fromCharCode(8226);
-				var middot = String.fromCharCode(183);
+					// Remove all classes
+					if (stripClass == 'all')
+						return '';
 
-				if (ed.getParam('paste_insert_word_content_callback'))
-					content = ed.execCallback('paste_insert_word_content_callback', 'before', content);
+					cls = tinymce.explode(cls, ' ');
 
-				var rl = ed.getParam(&quot;paste_replace_list&quot;, '\u2122,&lt;sup&gt;TM&lt;/sup&gt;,\u2026,...,\x93|\x94|\u201c|\u201d,&quot;,\x60|\x91|\x92|\u2018|\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
-				for (var i=0; i&lt;rl.length; i+=2)
-					content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
-
-				if (this.editor.getParam(&quot;paste_convert_headers_to_strong&quot;, false)) {
-					content = content.replace(new RegExp('&lt;p class=MsoHeading.*?&gt;(.*?)&lt;\/p&gt;', 'gi'), '&lt;p&gt;&lt;b&gt;$1&lt;/b&gt;&lt;/p&gt;');
-				}
+					for (i = cls.length - 1; i &gt;= 0; i--) {
+						// Remove Mso classes
+						if (!/^(Mso)/i.test(cls[i]))
+							out += (!out ? '' : ' ') + cls[i];
+					}
 
-				content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt&quot;&gt;', 'gi'), '&quot;&gt;' + &quot;--list--&quot;);
-				content = content.replace(new RegExp(bull + &quot;(.*?)&lt;BR&gt;&quot;, &quot;gi&quot;), &quot;&lt;p&gt;&quot; + middot + &quot;$1&lt;/p&gt;&quot;);
-				content = content.replace(new RegExp('&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;', 'gi'), &quot;&lt;span&gt;&quot; + bull); // Covert to bull list
-				content = content.replace(/&lt;o:p&gt;&lt;\/o:p&gt;/gi, &quot;&quot;);
-				content = content.replace(new RegExp('&lt;br style=&quot;page-break-before: always;.*&gt;', 'gi'), '-- page break --'); // Replace pagebreaks
-				content = content.replace(/&lt;!--([\s\S]*?)--&gt;|&lt;style&gt;[\s\S]*?&lt;\/style&gt;/g, &quot;&quot;);  // Word comments
-				content = content.replace(/&lt;(meta|link)[^&gt;]+&gt;/g, &quot;&quot;); // Header elements
+					return ' class=&quot;' + out + '&quot;';
+				};
 
-				if (this.editor.getParam(&quot;paste_remove_spans&quot;, true))
-					content = content.replace(/&lt;\/?span[^&gt;]*&gt;/gi, &quot;&quot;);
+				process([
+					[/ class=\&quot;([^\&quot;]*)\&quot;/gi, cleanClasses],	// class attributes with quotes
+					[/ class=(\w+)/gi, cleanClasses]			// class attributes without quotes (IE)
+				]);
+			}
 
-				if (this.editor.getParam(&quot;paste_remove_styles&quot;, true))
-					content = content.replace(new RegExp('&lt;(\\w[^&gt;]*) style=&quot;([^&quot;]*)&quot;([^&gt;]*)', 'gi'), &quot;&lt;$1$3&quot;);
+			// Remove spans option
+			if (ed.getParam('paste_remove_spans')) {
+				process([
+					/&lt;\/?(span)[^&gt;]*&gt;/gi
+				]);
+			}
 
-				content = content.replace(/&lt;\/?font[^&gt;]*&gt;/gi, &quot;&quot;);
+			//console.log('After preprocess:' + h);
 
-				// Strips class attributes.
-				switch (this.editor.getParam(&quot;paste_strip_class_attributes&quot;, &quot;all&quot;)) {
-					case &quot;all&quot;:
-						content = content.replace(/&lt;(\w[^&gt;]*) class=([^ |&gt;]*)([^&gt;]*)/gi, &quot;&lt;$1$3&quot;);
-						break;
+			o.content = h;
+		},
 
-					case &quot;mso&quot;:
-						content = content.replace(new RegExp('&lt;(\\w[^&gt;]*) class=&quot;?mso([^ |&gt;]*)([^&gt;]*)', 'gi'), &quot;&lt;$1$3&quot;);
-						break;
-				}
+		/**
+		 * Various post process items.
+		 */
+		_postProcess : function(pl, o) {
+			var t = this, ed = t.editor, dom = ed.dom, styleProps;
+
+			if (o.wordContent) {
+				// Remove named anchors or TOC links
+				each(dom.select('a', o.node), function(a) {
+					if (!a.href || a.href.indexOf('#_Toc') != -1)
+						dom.remove(a, 1);
+				});
 
-				content = content.replace(new RegExp('href=&quot;?' + this._reEscape(&quot;&quot; + document.location) + '', 'gi'), 'href=&quot;' + this.editor.documentBaseURI.getURI());
-				content = content.replace(/&lt;(\w[^&gt;]*) lang=([^ |&gt;]*)([^&gt;]*)/gi, &quot;&lt;$1$3&quot;);
-				content = content.replace(/&lt;\\?\?xml[^&gt;]*&gt;/gi, &quot;&quot;);
-				content = content.replace(/&lt;\/?\w+:[^&gt;]*&gt;/gi, &quot;&quot;);
-				content = content.replace(/-- page break --\s*&lt;p&gt;&amp;nbsp;&lt;\/p&gt;/gi, &quot;&quot;); // Remove pagebreaks
-				content = content.replace(/-- page break --/gi, &quot;&quot;); // Remove pagebreaks
+				if (t.editor.getParam('paste_convert_middot_lists', true))
+					t._convertLists(pl, o);
 
-		//		content = content.replace(/\/?&amp;nbsp;*/gi, &quot;&quot;); &amp;nbsp;
-		//		content = content.replace(/&lt;p&gt;&amp;nbsp;&lt;\/p&gt;/gi, '');
+				// Process styles
+				styleProps = ed.getParam('paste_retain_style_properties'); // retained properties
 
-				if (!this.editor.getParam('force_p_newlines')) {
-					content = content.replace('', '' ,'gi');
-					content = content.replace('&lt;/p&gt;', '&lt;br /&gt;&lt;br /&gt;' ,'gi');
-				}
+				// If string property then split it
+				if (tinymce.is(styleProps, 'string'))
+					styleProps = tinymce.explode(styleProps);
 
-				if (!tinymce.isIE &amp;&amp; !this.editor.getParam('force_p_newlines')) {
-					content = content.replace(/&lt;\/?p[^&gt;]*&gt;/gi, &quot;&quot;);
-				}
+				// Retains some style properties
+				each(dom.select('*', o.node), function(el) {
+					var newStyle = {}, npc = 0, i, sp, sv;
 
-				content = content.replace(/&lt;\/?div[^&gt;]*&gt;/gi, &quot;&quot;);
+					// Store a subset of the existing styles
+					if (styleProps) {
+						for (i = 0; i &lt; styleProps.length; i++) {
+							sp = styleProps[i];
+							sv = dom.getStyle(el, sp);
 
-				// Convert all middlot lists to UL lists
-				if (this.editor.getParam(&quot;paste_convert_middot_lists&quot;, true)) {
-					var div = ed.dom.create(&quot;div&quot;, null, content);
+							if (sv) {
+								newStyle[sp] = sv;
+								npc++;
+							}
+						}
+					}
 
-					// Convert all middot paragraphs to li elements
-					var className = this.editor.getParam(&quot;paste_unindented_list_class&quot;, &quot;unIndentedList&quot;);
+					// Remove all of the existing styles
+					dom.setAttrib(el, 'style', '');
 
-					while (this._convertMiddots(div, &quot;--list--&quot;)) ; // bull
-					while (this._convertMiddots(div, middot, className)) ; // Middot
-					while (this._convertMiddots(div, bull)) ; // bull
+					if (styleProps &amp;&amp; npc &gt; 0)
+						dom.setStyles(el, newStyle); // Add back the stored subset of styles
+					else // Remove empty span tags that do not have class attributes
+						if (el.nodeName == 'SPAN' &amp;&amp; !el.className)
+							dom.remove(el, true);
+				});
+			}
 
-					content = div.innerHTML;
+			// Remove all style information or only specifically on WebKit to avoid the style bug on that browser
+			if (ed.getParam(&quot;paste_remove_styles&quot;) || (ed.getParam(&quot;paste_remove_styles_if_webkit&quot;) &amp;&amp; tinymce.isWebKit)) {
+				each(dom.select('*[style]', o.node), function(el) {
+					el.removeAttribute('style');
+					el.removeAttribute('mce_style');
+				});
+			} else {
+				if (tinymce.isWebKit) {
+					// We need to compress the styles on WebKit since if you paste &lt;img border=&quot;0&quot; /&gt; it will become &lt;img border=&quot;0&quot; style=&quot;... lots of junk ...&quot; /&gt;
+					// Removing the mce_style that contains the real value will force the Serializer engine to compress the styles
+					each(dom.select('*', o.node), function(el) {
+						el.removeAttribute('mce_style');
+					});
 				}
+			}
+		},
 
-				// Replace all headers with strong and fix some other issues
-				if (this.editor.getParam(&quot;paste_convert_headers_to_strong&quot;, false)) {
-					content = content.replace(/&lt;h[1-6]&gt;&amp;nbsp;&lt;\/h[1-6]&gt;/gi, '&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;');
-					content = content.replace(/&lt;h[1-6]&gt;/gi, '&lt;p&gt;&lt;b&gt;');
-					content = content.replace(/&lt;\/h[1-6]&gt;/gi, '&lt;/b&gt;&lt;/p&gt;');
-					content = content.replace(/&lt;b&gt;&amp;nbsp;&lt;\/b&gt;/gi, '&lt;b&gt;&amp;nbsp;&amp;nbsp;&lt;/b&gt;');
-					content = content.replace(/^(&amp;nbsp;)*/gi, '');
-				}
+		/**
+		 * Converts the most common bullet and number formats in Office into a real semantic UL/LI list.
+		 */
+		_convertLists : function(pl, o) {
+			var dom = pl.editor.dom, listElm, li, lastMargin = -1, margin, levels = [], lastType, html;
+
+			// Convert middot lists into real semantic lists
+			each(dom.select('p', o.node), function(p) {
+				var sib, val = '', type, html, idx, parents;
+
+				// Get text node value at beginning of paragraph
+				for (sib = p.firstChild; sib &amp;&amp; sib.nodeType == 3; sib = sib.nextSibling)
+					val += sib.nodeValue;
+
+				val = p.innerHTML.replace(/&lt;\/?\w+[^&gt;]*&gt;/gi, '').replace(/&amp;nbsp;/g, '\u00a0');
+
+				// Detect unordered lists look for bullets
+				if (/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o]\s*\u00a0*/.test(val))
+					type = 'ul';
+
+				// Detect ordered lists 1., a. or ixv.
+				if (/^__MCE_ITEM__\s*\w+\.\s*\u00a0{2,}/.test(val))
+					type = 'ol';
+
+				// Check if node value matches the list pattern: o&amp;nbsp;&amp;nbsp;
+				if (type) {
+					margin = parseFloat(p.style.marginLeft || 0);
+
+					if (margin &gt; lastMargin)
+						levels.push(margin);
+
+					if (!listElm || type != lastType) {
+						listElm = dom.create(type);
+						dom.insertAfter(listElm, p);
+					} else {
+						// Nested list element
+						if (margin &gt; lastMargin) {
+							listElm = li.appendChild(dom.create(type));
+						} else if (margin &lt; lastMargin) {
+							// Find parent level based on margin value
+							idx = tinymce.inArray(levels, margin);
+							parents = dom.getParents(listElm.parentNode, type);
+							listElm = parents[parents.length - 1 - idx] || listElm;
+						}
+					}
 
-				content = content.replace(/--list--/gi, &quot;&quot;); // Remove --list--
+					// Remove middot or number spans if they exists
+					each(dom.select('span', p), function(span) {
+						var html = span.innerHTML.replace(/&lt;\/?\w+[^&gt;]*&gt;/gi, '');
 
-				if (ed.getParam('paste_insert_word_content_callback'))
-					content = ed.execCallback('paste_insert_word_content_callback', 'after', content);
+						// Remove span with the middot or the number
+						if (type == 'ul' &amp;&amp; /^[\u2022\u00b7\u00a7\u00d8o]/.test(html))
+							dom.remove(span);
+						else if (/^[\s\S]*\w+\.(&amp;nbsp;|\u00a0)*\s*/.test(html))
+							dom.remove(span);
+					});
 
-				// Insert cleaned content
-				this.editor.execCommand(&quot;mceInsertContent&quot;, false, content);
+					html = p.innerHTML;
 
-				if (this.editor.getParam('paste_force_cleanup_wordpaste', true)) {
-					var ed = this.editor;
+					// Remove middot/list items
+					if (type == 'ul')
+						html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^[\u2022\u00b7\u00a7\u00d8o]\s*(&amp;nbsp;|\u00a0)+\s*/, '');
+					else
+						html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^\s*\w+\.(&amp;nbsp;|\u00a0)+\s*/, '');
 
-					window.setTimeout(function() {
-						ed.execCommand(&quot;mceCleanup&quot;);
-					}, 1); // Do normal cleanup detached from this thread
-				}
-			}
-		},
-
-		_reEscape : function(s) {
-			var l = &quot;?.\\*[](){}+^$:&quot;;
-			var o = &quot;&quot;;
-
-			for (var i=0; i&lt;s.length; i++) {
-				var c = s.charAt(i);
+					// Create li and add paragraph data into the new li
+					li = listElm.appendChild(dom.create('li', 0, html));
+					dom.remove(p);
 
-				if (l.indexOf(c) != -1)
-					o += '\\' + c;
-				else
-					o += c;
-			}
+					lastMargin = margin;
+					lastType = type;
+				} else
+					listElm = lastMargin = 0; // End list element
+			});
 
-			return o;
+			// Remove any left over makers
+			html = o.node.innerHTML;
+			if (html.indexOf('__MCE_ITEM__') != -1)
+				o.node.innerHTML = html.replace(/__MCE_ITEM__/g, '');
 		},
 
-		_convertMiddots : function(div, search, class_name) {
-			var ed = this.editor, mdot = String.fromCharCode(183), bull = String.fromCharCode(8226);
-			var nodes, prevul, i, p, ul, li, np, cp, li;
-
-			nodes = div.getElementsByTagName(&quot;p&quot;);
-			for (i=0; i&lt;nodes.length; i++) {
-				p = nodes[i];
-
-				// Is middot
-				if (p.innerHTML.indexOf(search) == 0) {
-					ul = ed.dom.create(&quot;ul&quot;);
-
-					if (class_name)
-						ul.className = class_name;
-
-					// Add the first one
-					li = ed.dom.create(&quot;li&quot;);
-					li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&amp;nbsp;', &quot;gi&quot;), '');
-					ul.appendChild(li);
-
-					// Add the rest
-					np = p.nextSibling;
-					while (np) {
-						// If the node is whitespace, then
-						// ignore it and continue on.
-						if (np.nodeType == 3 &amp;&amp; new RegExp('^\\s$', 'm').test(np.nodeValue)) {
-								np = np.nextSibling;
-								continue;
-						}
+		/**
+		 * This method will split the current block parent and insert the contents inside the split position.
+		 * This logic can be improved so text nodes at the start/end remain in the start/end block elements
+		 */
+		_insertBlockContent : function(ed, dom, content) {
+			var parentBlock, marker, sel = ed.selection, last, elm, vp, y, elmHeight;
+
+			function select(n) {
+				var r;
+
+				if (tinymce.isIE) {
+					r = ed.getDoc().body.createTextRange();
+					r.moveToElementText(n);
+					r.collapse(false);
+					r.select();
+				} else {
+					sel.select(n, 1);
+					sel.collapse(false);
+				}
+			};
 
-						if (search == mdot) {
-								if (np.nodeType == 1 &amp;&amp; new RegExp('^o(\\s+|&amp;nbsp;)').test(np.innerHTML)) {
-										// Second level of nesting
-										if (!prevul) {
-												prevul = ul;
-												ul = ed.dom.create(&quot;ul&quot;);
-												prevul.appendChild(ul);
-										}
-										np.innerHTML = np.innerHTML.replace(/^o/, '');
-								} else {
-										// Pop the stack if we're going back up to the first level
-										if (prevul) {
-												ul = prevul;
-												prevul = null;
-										}
-										// Not element or middot paragraph
-										if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
-												break;
-								}
-						} else {
-								// Not element or middot paragraph
-								if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
-										break;
-							}
+			// Insert a marker for the caret position
+			this._insert('&lt;span id=&quot;_marker&quot;&gt;&amp;nbsp;&lt;/span&gt;', 1);
+			marker = dom.get('_marker');
+			parentBlock = dom.getParent(marker, 'p,h1,h2,h3,h4,h5,h6,ul,ol,th,td');
 
-						cp = np.nextSibling;
-						li = ed.dom.create(&quot;li&quot;);
-						li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&amp;nbsp;', &quot;gi&quot;), '');
-						np.parentNode.removeChild(np);
-						ul.appendChild(li);
-						np = cp;
-					}
+			// If it's a parent block but not a table cell
+			if (parentBlock &amp;&amp; !/TD|TH/.test(parentBlock.nodeName)) {
+				// Split parent block
+				marker = dom.split(parentBlock, marker);
 
-					p.parentNode.replaceChild(ul, p);
+				// Insert nodes before the marker
+				each(dom.create('div', 0, content).childNodes, function(n) {
+					last = marker.parentNode.insertBefore(n.cloneNode(true), marker);
+				});
 
-					return true;
-				}
+				// Move caret after marker
+				select(last);
+			} else {
+				dom.setOuterHTML(marker, content);
+				sel.select(ed.getBody(), 1);
+				sel.collapse(0);
 			}
 
-			return false;
+			dom.remove('_marker'); // Remove marker if it's left
+
+			// Get element, position and height
+			elm = sel.getStart();
+			vp = dom.getViewPort(ed.getWin());
+			y = ed.dom.getPos(elm).y;
+			elmHeight = elm.clientHeight;
+
+			// Is element within viewport if not then scroll it into view
+			if (y &lt; vp.y || y + elmHeight &gt; vp.y + vp.h)
+				ed.getDoc().body.scrollTop = y &lt; vp.y ? y : y - vp.h + 25;
 		},
 
-		_clipboardHTML : function() {
-			var div = document.getElementById('_TinyMCE_clipboardHTML');
+		/**
+		 * Inserts the specified contents at the caret position.
+		 */
+		_insert : function(h, skip_undo) {
+			var ed = this.editor;
 
-			if (!div) {
-				var div = document.createElement('DIV');
-				div.id = '_TinyMCE_clipboardHTML';
+			// First delete the contents seems to work better on WebKit
+			if (!ed.selection.isCollapsed())
+				ed.getDoc().execCommand('Delete', false, null);
 
-				with (div.style) {
-					visibility = 'hidden';
-					overflow = 'hidden';
-					position = 'absolute';
-					width = 1;
-					height = 1;
-				}
+			// It's better to use the insertHTML method on Gecko since it will combine paragraphs correctly before inserting the contents
+			ed.execCommand(tinymce.isGecko ? 'insertHTML' : 'mceInsertContent', false, h, {skip_undo : skip_undo});
+		},
 
-				document.body.appendChild(div);
-			}
+		/**
+		 * This method will open the old style paste dialogs. Some users might want the old behavior but still use the new cleanup engine.
+		 */
+		_legacySupport : function() {
+			var t = this, ed = t.editor;
+
+			// Register commands for backwards compatibility
+			each(['mcePasteText', 'mcePasteWord'], function(cmd) {
+				ed.addCommand(cmd, function() {
+					ed.windowManager.open({
+						file : t.url + (cmd == 'mcePasteText' ? '/pastetext.htm' : '/pasteword.htm'),
+						width : parseInt(ed.getParam(&quot;paste_dialog_width&quot;, &quot;450&quot;)),
+						height : parseInt(ed.getParam(&quot;paste_dialog_height&quot;, &quot;400&quot;)),
+						inline : 1
+					});
+				});
+			});
 
-			div.innerHTML = '';
-			var rng = document.body.createTextRange();
-			rng.moveToElementText(div);
-			rng.execCommand('Paste');
-			var html = div.innerHTML;
-			div.innerHTML = '';
-			return html;
+			// Register buttons for backwards compatibility
+			ed.addButton('pastetext', {title : 'paste.paste_text_desc', cmd : 'mcePasteText'});
+			ed.addButton('pasteword', {title : 'paste.paste_word_desc', cmd : 'mcePasteWord'});
+			ed.addButton('selectall', {title : 'paste.selectall_desc', cmd : 'selectall'});
 		}
 	});
 </diff>
      <filename>lib/tiny_mce/plugins/paste/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,42 +1,36 @@
 tinyMCEPopup.requireLangPack();
 
-function saveContent() {
-	if (document.forms[0].htmlSource.value == '') {
+var PasteTextDialog = {
+	init : function() {
+		this.resize();
+	},
+
+	insert : function() {
+		var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines;
+
+		// Convert linebreaks into paragraphs
+		if (document.getElementById('linebreaks').checked) {
+			lines = h.split(/\r?\n/);
+			if (lines.length &gt; 1) {
+				h = '';
+				tinymce.each(lines, function(row) {
+					h += '&lt;p&gt;' + row + '&lt;/p&gt;';
+				});
+			}
+		}
+
+		tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h});
 		tinyMCEPopup.close();
-		return false;
-	}
-
-	tinyMCEPopup.execCommand('mcePasteText', false, {
-		html : document.forms[0].htmlSource.value,
-		linebreaks : document.forms[0].linebreaks.checked
-	});
-
-	tinyMCEPopup.close();
-}
+	},
 
-function onLoadInit() {
-	tinyMCEPopup.resizeToInnerSize();
+	resize : function() {
+		var vp = tinyMCEPopup.dom.getViewPort(window), el;
 
-	// Remove Gecko spellchecking
-	if (tinymce.isGecko)
-		document.body.spellcheck = tinyMCEPopup.getParam(&quot;gecko_spellcheck&quot;);
+		el = document.getElementById('content');
 
-	resizeInputs();
-}
-
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
-
-function resizeInputs() {
-	if (!tinymce.isIE) {
-		wHeight = self.innerHeight-80;
-		wWidth = self.innerWidth-17;
-	} else {
-		wHeight = document.body.clientHeight-80;
-		wWidth = document.body.clientWidth-17;
+		el.style.width  = (vp.w - 20) + 'px';
+		el.style.height = (vp.h - 90) + 'px';
 	}
+};
 
-	document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';
-	document.forms[0].htmlSource.style.width  = Math.abs(wWidth) + 'px';
-}
-
-tinyMCEPopup.onInit.add(onLoadInit);
\ No newline at end of file
+tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog);</diff>
      <filename>lib/tiny_mce/plugins/paste/js/pastetext.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,56 +1,51 @@
 tinyMCEPopup.requireLangPack();
 
-function saveContent() {
-	var html = document.getElementById(&quot;frmData&quot;).contentWindow.document.body.innerHTML;
-
-	if (html == ''){
+var PasteWordDialog = {
+	init : function() {
+		var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = '';
+
+		// Create iframe
+		el.innerHTML = '&lt;iframe id=&quot;iframe&quot; src=&quot;javascript:\'\';&quot; frameBorder=&quot;0&quot; style=&quot;border: 1px solid gray&quot;&gt;&lt;/iframe&gt;';
+		ifr = document.getElementById('iframe');
+		doc = ifr.contentWindow.document;
+
+		// Force absolute CSS urls
+		css = [ed.baseURI.toAbsolute(&quot;themes/&quot; + ed.settings.theme + &quot;/skins/&quot; + ed.settings.skin + &quot;/content.css&quot;)];
+		css = css.concat(tinymce.explode(ed.settings.content_css) || []);
+		tinymce.each(css, function(u) {
+			cssHTML += '&lt;link href=&quot;' + ed.documentBaseURI.toAbsolute('' + u) + '&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;';
+		});
+
+		// Write content into iframe
+		doc.open();
+		doc.write('&lt;html&gt;&lt;head&gt;' + cssHTML + '&lt;/head&gt;&lt;body class=&quot;mceContentBody&quot; spellcheck=&quot;false&quot;&gt;&lt;/body&gt;&lt;/html&gt;');
+		doc.close();
+
+		doc.designMode = 'on';
+		this.resize();
+
+		window.setTimeout(function() {
+			ifr.contentWindow.focus();
+		}, 10);
+	},
+
+	insert : function() {
+		var h = document.getElementById('iframe').contentWindow.document.body.innerHTML;
+
+		tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true});
 		tinyMCEPopup.close();
-		return false;
-	}
-
-	tinyMCEPopup.execCommand('mcePasteWord', false, html);
-	tinyMCEPopup.close();
-}
-
-function onLoadInit() {
-	tinyMCEPopup.resizeToInnerSize();
-
-	// Fix for endless reloading in FF
-	window.setTimeout(createIFrame, 10);
-}
-
-function createIFrame() {
-	document.getElementById('iframecontainer').innerHTML = '&lt;iframe id=&quot;frmData&quot; name=&quot;frmData&quot; class=&quot;sourceIframe&quot; src=&quot;blank.htm&quot; height=&quot;280&quot; width=&quot;400&quot; frameborder=&quot;0&quot; style=&quot;background-color:#FFFFFF; width:100%;&quot; dir=&quot;ltr&quot; wrap=&quot;soft&quot;&gt;&lt;/iframe&gt;';
-}
+	},
 
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+	resize : function() {
+		var vp = tinyMCEPopup.dom.getViewPort(window), el;
 
-function initIframe(doc) {
-	var dir = tinyMCEPopup.editor.settings.directionality;
-
-	doc.body.dir = dir;
-
-	// Remove Gecko spellchecking
-	if (tinymce.isGecko)
-		doc.body.spellcheck = tinyMCEPopup.getParam(&quot;gecko_spellcheck&quot;);
-
-	resizeInputs();
-}
-
-function resizeInputs() {
-	if (!tinymce.isIE) {
-		wHeight = self.innerHeight - 80;
-		wWidth = self.innerWidth - 18;
-	} else {
-		wHeight = document.body.clientHeight - 80;
-		wWidth = document.body.clientWidth - 18;
-	}
+		el = document.getElementById('iframe');
 
-	var elm = document.getElementById('frmData');
-	if (elm) {
-		elm.style.height = Math.abs(wHeight) + 'px';
-		elm.style.width  = Math.abs(wWidth) + 'px';
+		if (el) {
+			el.style.width  = (vp.w - 20) + 'px';
+			el.style.height = (vp.h - 90) + 'px';
+		}
 	}
-}
+};
 
-tinyMCEPopup.onInit.add(onLoadInit);
+tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog);</diff>
      <filename>lib/tiny_mce/plugins/paste/js/pasteword.js</filename>
    </modified>
    <modified>
      <diff>@@ -5,29 +5,29 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../tiny_mce_popup.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/pastetext.js&quot;&gt;&lt;/script&gt;
 &lt;/head&gt;
-&lt;body onresize=&quot;resizeInputs();&quot; style=&quot;display:none; overflow:hidden;&quot;&gt;
-&lt;form name=&quot;source&quot; onsubmit=&quot;saveContent();return false;&quot; action=&quot;#&quot;&gt;
-	&lt;div style=&quot;float: left&quot; class=&quot;title&quot;&gt;{#paste.paste_text_desc}&lt;/div&gt;
+&lt;body onresize=&quot;PasteTextDialog.resize();&quot; style=&quot;display:none; overflow:hidden;&quot;&gt;
+	&lt;form name=&quot;source&quot; onsubmit=&quot;return PasteTextDialog.insert();&quot; action=&quot;#&quot;&gt;
+		&lt;div style=&quot;float: left&quot; class=&quot;title&quot;&gt;{#paste.paste_text_desc}&lt;/div&gt;
 
-	&lt;div style=&quot;float: right&quot;&gt;
-		&lt;input type=&quot;checkbox&quot; name=&quot;linebreaks&quot; id=&quot;linebreaks&quot; class=&quot;wordWrapCode&quot; checked=&quot;checked&quot; /&gt;&lt;label for=&quot;linebreaks&quot;&gt;{#paste_dlg.text_linebreaks}&lt;/label&gt;
-	&lt;/div&gt;
+		&lt;div style=&quot;float: right&quot;&gt;
+			&lt;input type=&quot;checkbox&quot; name=&quot;linebreaks&quot; id=&quot;linebreaks&quot; class=&quot;wordWrapCode&quot; checked=&quot;checked&quot; /&gt;&lt;label for=&quot;linebreaks&quot;&gt;{#paste_dlg.text_linebreaks}&lt;/label&gt;
+		&lt;/div&gt;
 
-	&lt;br style=&quot;clear: both&quot; /&gt;
+		&lt;br style=&quot;clear: both&quot; /&gt;
 
-	&lt;div&gt;{#paste_dlg.text_title}&lt;/div&gt;
+		&lt;div&gt;{#paste_dlg.text_title}&lt;/div&gt;
 
-	&lt;textarea name=&quot;htmlSource&quot; id=&quot;htmlSource&quot; rows=&quot;15&quot; cols=&quot;100&quot; style=&quot;width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;&quot; dir=&quot;ltr&quot; wrap=&quot;soft&quot; class=&quot;mceFocus&quot;&gt;&lt;/textarea&gt;
+		&lt;textarea id=&quot;content&quot; name=&quot;content&quot; rows=&quot;15&quot; cols=&quot;100&quot; style=&quot;width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;&quot; dir=&quot;ltr&quot; wrap=&quot;soft&quot; class=&quot;mceFocus&quot;&gt;&lt;/textarea&gt;
 
-	&lt;div class=&quot;mceActionPanel&quot;&gt;
-		&lt;div style=&quot;float: left&quot;&gt;
-			&lt;input type=&quot;submit&quot; name=&quot;insert&quot; value=&quot;{#insert}&quot; id=&quot;insert&quot; /&gt;
-		&lt;/div&gt;
+		&lt;div class=&quot;mceActionPanel&quot;&gt;
+			&lt;div style=&quot;float: left&quot;&gt;
+				&lt;input type=&quot;submit&quot; name=&quot;insert&quot; value=&quot;{#insert}&quot; id=&quot;insert&quot; /&gt;
+			&lt;/div&gt;
 
-		&lt;div style=&quot;float: right&quot;&gt;
-			&lt;input type=&quot;button&quot; name=&quot;cancel&quot; value=&quot;{#cancel}&quot; onclick=&quot;tinyMCEPopup.close();&quot; id=&quot;cancel&quot; /&gt;
+			&lt;div style=&quot;float: right&quot;&gt;
+				&lt;input type=&quot;button&quot; name=&quot;cancel&quot; value=&quot;{#cancel}&quot; onclick=&quot;tinyMCEPopup.close();&quot; id=&quot;cancel&quot; /&gt;
+			&lt;/div&gt;
 		&lt;/div&gt;
-	&lt;/div&gt;
-&lt;/form&gt;
+	&lt;/form&gt;
 &lt;/body&gt; 
 &lt;/html&gt;
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/paste/pastetext.htm</filename>
    </modified>
    <modified>
      <diff>@@ -4,10 +4,9 @@
 	&lt;title&gt;{#paste.paste_word_desc}&lt;/title&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../tiny_mce_popup.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/pasteword.js&quot;&gt;&lt;/script&gt;
-	&lt;link href=&quot;css/pasteword.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
 &lt;/head&gt;
-&lt;body onresize=&quot;resizeInputs();&quot; style=&quot;display:none; overflow:hidden;&quot;&gt;
-	&lt;form name=&quot;source&quot; onsubmit=&quot;saveContent();&quot; action=&quot;#&quot;&gt;
+&lt;body onresize=&quot;PasteWordDialog.resize();&quot; style=&quot;display:none; overflow:hidden;&quot;&gt;
+	&lt;form name=&quot;source&quot; onsubmit=&quot;return PasteWordDialog.insert();&quot; action=&quot;#&quot;&gt;
 		&lt;div class=&quot;title&quot;&gt;{#paste.paste_word_desc}&lt;/div&gt;
 
 		&lt;div&gt;{#paste_dlg.word_title}&lt;/div&gt;
@@ -16,7 +15,7 @@
 
 		&lt;div class=&quot;mceActionPanel&quot;&gt;
 			&lt;div style=&quot;float: left&quot;&gt;
-				&lt;input type=&quot;button&quot; id=&quot;insert&quot; name=&quot;insert&quot; value=&quot;{#insert}&quot; onclick=&quot;saveContent();&quot; /&gt;
+				&lt;input type=&quot;submit&quot; id=&quot;insert&quot; name=&quot;insert&quot; value=&quot;{#insert}&quot; /&gt;
 			&lt;/div&gt;
 
 			&lt;div style=&quot;float: right&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/paste/pasteword.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var a=tinymce.dom.Event,c=tinymce.grep,d=tinymce.each,b=tinymce.inArray;function e(j,i,h){var g,k;g=j.createTreeWalker(i,NodeFilter.SHOW_ALL,null,false);while(k=g.nextNode()){if(h){if(!h(k)){return false}}if(k.nodeType==3&amp;&amp;k.nodeValue&amp;&amp;/[^\s\u00a0]+/.test(k.nodeValue)){return false}if(k.nodeType==1&amp;&amp;/^(HR|IMG|TABLE)$/.test(k.nodeName)){return false}}return true}tinymce.create(&quot;tinymce.plugins.Safari&quot;,{init:function(f){var g=this,h;if(!tinymce.isWebKit){return}g.editor=f;g.webKitFontSizes=[&quot;x-small&quot;,&quot;small&quot;,&quot;medium&quot;,&quot;large&quot;,&quot;x-large&quot;,&quot;xx-large&quot;,&quot;-webkit-xxx-large&quot;];g.namedFontSizes=[&quot;xx-small&quot;,&quot;x-small&quot;,&quot;small&quot;,&quot;medium&quot;,&quot;large&quot;,&quot;x-large&quot;,&quot;xx-large&quot;];f.addCommand(&quot;CreateLink&quot;,function(k,j){var m=f.selection.getNode(),l=f.dom,i;if(m&amp;&amp;(/^(left|right)$/i.test(l.getStyle(m,&quot;float&quot;,1))||/^(left|right)$/i.test(l.getAttrib(m,&quot;align&quot;)))){i=l.create(&quot;a&quot;,{href:j},m.cloneNode());m.parentNode.replaceChild(i,m);f.selection.select(i)}else{f.getDoc().execCommand(&quot;CreateLink&quot;,false,j)}});f.onPaste.add(function(i,k){function j(l){l=l.target;if(l.nodeType==1){l.style.cssText=&quot;&quot;;d(i.dom.select(&quot;*&quot;,l),function(m){m.style.cssText=&quot;&quot;})}}a.add(i.getDoc(),&quot;DOMNodeInserted&quot;,j);window.setTimeout(function(){a.remove(i.getDoc(),&quot;DOMNodeInserted&quot;,j)},0)});f.onKeyUp.add(function(j,o){var l,i,m,p,k;if(o.keyCode==46||o.keyCode==8){i=j.getBody();l=i.innerHTML;k=j.selection;if(i.childNodes.length==1&amp;&amp;!/&lt;(img|hr)/.test(l)&amp;&amp;tinymce.trim(l.replace(/&lt;[^&gt;]+&gt;/g,&quot;&quot;)).length==0){j.setContent('&lt;p&gt;&lt;br mce_bogus=&quot;1&quot; /&gt;&lt;/p&gt;',{format:&quot;raw&quot;});p=i.firstChild;m=k.getRng();m.setStart(p,0);m.setEnd(p,0);k.setRng(m)}}});f.addCommand(&quot;FormatBlock&quot;,function(j,i){var l=f.dom,k=l.getParent(f.selection.getNode(),l.isBlock);if(k){l.replace(l.create(i),k,1)}else{f.getDoc().execCommand(&quot;FormatBlock&quot;,false,i)}});f.addCommand(&quot;mceInsertContent&quot;,function(j,i){f.getDoc().execCommand(&quot;InsertText&quot;,false,&quot;mce_marker&quot;);f.getBody().innerHTML=f.getBody().innerHTML.replace(/mce_marker/g,f.dom.processHTML(i)+'&lt;span id=&quot;_mce_tmp&quot;&gt;XX&lt;/span&gt;');f.selection.select(f.dom.get(&quot;_mce_tmp&quot;));f.getDoc().execCommand(&quot;Delete&quot;,false,&quot; &quot;)});f.onKeyPress.add(function(o,p){var q,v,r,l,j,k,i,u,m,t,s;if(p.keyCode==13){i=o.selection;q=i.getNode();if(p.shiftKey||o.settings.force_br_newlines&amp;&amp;q.nodeName!=&quot;LI&quot;){g._insertBR(o);a.cancel(p)}if(v=h.getParent(q,&quot;LI&quot;)){r=h.getParent(v,&quot;OL,UL&quot;);u=o.getDoc();s=h.create(&quot;p&quot;);h.add(s,&quot;br&quot;,{mce_bogus:&quot;1&quot;});if(e(u,v)){if(k=h.getParent(r.parentNode,&quot;LI,OL,UL&quot;)){return}k=h.getParent(r,&quot;p,h1,h2,h3,h4,h5,h6,div&quot;)||r;l=u.createRange();l.setStartBefore(k);l.setEndBefore(v);j=u.createRange();j.setStartAfter(v);j.setEndAfter(k);m=l.cloneContents();t=j.cloneContents();if(!e(u,t)){h.insertAfter(t,k)}h.insertAfter(s,k);if(!e(u,m)){h.insertAfter(m,k)}h.remove(k);k=s.firstChild;l=u.createRange();l.setStartBefore(k);l.setEndBefore(k);i.setRng(l);return a.cancel(p)}}}});f.onExecCommand.add(function(i,k){var j,m,n,l;if(k==&quot;InsertUnorderedList&quot;||k==&quot;InsertOrderedList&quot;){j=i.selection;m=i.dom;if(n=m.getParent(j.getNode(),function(o){return/^(H[1-6]|P|ADDRESS|PRE)$/.test(o.nodeName)})){l=j.getBookmark();m.remove(n,1);j.moveToBookmark(l)}}});f.onClick.add(function(i,j){j=j.target;if(j.nodeName==&quot;IMG&quot;){g.selElm=j;i.selection.select(j)}else{g.selElm=null}});f.onInit.add(function(){g._fixWebKitSpans()});f.onSetContent.add(function(){h=f.dom;d([&quot;strong&quot;,&quot;b&quot;,&quot;em&quot;,&quot;u&quot;,&quot;strike&quot;,&quot;sub&quot;,&quot;sup&quot;,&quot;a&quot;],function(i){d(c(h.select(i)).reverse(),function(l){var k=l.nodeName.toLowerCase(),j;if(k==&quot;a&quot;){if(l.name){h.replace(h.create(&quot;img&quot;,{mce_name:&quot;a&quot;,name:l.name,&quot;class&quot;:&quot;mceItemAnchor&quot;}),l)}return}switch(k){case&quot;b&quot;:case&quot;strong&quot;:if(k==&quot;b&quot;){k=&quot;strong&quot;}j=&quot;font-weight: bold;&quot;;break;case&quot;em&quot;:j=&quot;font-style: italic;&quot;;break;case&quot;u&quot;:j=&quot;text-decoration: underline;&quot;;break;case&quot;sub&quot;:j=&quot;vertical-align: sub;&quot;;break;case&quot;sup&quot;:j=&quot;vertical-align: super;&quot;;break;case&quot;strike&quot;:j=&quot;text-decoration: line-through;&quot;;break}h.replace(h.create(&quot;span&quot;,{mce_name:k,style:j,&quot;class&quot;:&quot;Apple-style-span&quot;}),l,1)})})});f.onPreProcess.add(function(i,j){h=i.dom;d(c(j.node.getElementsByTagName(&quot;span&quot;)).reverse(),function(m){var k,l;if(j.get){if(h.hasClass(m,&quot;Apple-style-span&quot;)){l=m.style.backgroundColor;switch(h.getAttrib(m,&quot;mce_name&quot;)){case&quot;font&quot;:if(!i.settings.convert_fonts_to_spans){h.setAttrib(m,&quot;style&quot;,&quot;&quot;)}break;case&quot;strong&quot;:case&quot;em&quot;:case&quot;sub&quot;:case&quot;sup&quot;:h.setAttrib(m,&quot;style&quot;,&quot;&quot;);break;case&quot;strike&quot;:case&quot;u&quot;:if(!i.settings.inline_styles){h.setAttrib(m,&quot;style&quot;,&quot;&quot;)}else{h.setAttrib(m,&quot;mce_name&quot;,&quot;&quot;)}break;default:if(!i.settings.inline_styles){h.setAttrib(m,&quot;style&quot;,&quot;&quot;)}}if(l){m.style.backgroundColor=l}}}if(h.hasClass(m,&quot;mceItemRemoved&quot;)){h.remove(m,1)}})});f.onPostProcess.add(function(i,j){j.content=j.content.replace(/&lt;br \/&gt;&lt;\/(h[1-6]|div|p|address|pre)&gt;/g,&quot;&lt;/$1&gt;&quot;);j.content=j.content.replace(/ id=\&quot;undefined\&quot;/g,&quot;&quot;)})},getInfo:function(){return{longname:&quot;Safari compatibility&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_fixWebKitSpans:function(){var g=this,f=g.editor;a.add(f.getDoc(),&quot;DOMNodeInserted&quot;,function(h){h=h.target;if(h&amp;&amp;h.nodeType==1){g._fixAppleSpan(h)}})},_fixAppleSpan:function(l){var g=this.editor,m=g.dom,i=this.webKitFontSizes,f=this.namedFontSizes,j=g.settings,h,k;if(m.getAttrib(l,&quot;mce_fixed&quot;)){return}if(l.nodeName==&quot;SPAN&quot;&amp;&amp;l.className==&quot;Apple-style-span&quot;){h=l.style;if(!j.convert_fonts_to_spans){if(h.fontSize){m.setAttrib(l,&quot;mce_name&quot;,&quot;font&quot;);m.setAttrib(l,&quot;size&quot;,b(i,h.fontSize)+1)}if(h.fontFamily){m.setAttrib(l,&quot;mce_name&quot;,&quot;font&quot;);m.setAttrib(l,&quot;face&quot;,h.fontFamily)}if(h.color){m.setAttrib(l,&quot;mce_name&quot;,&quot;font&quot;);m.setAttrib(l,&quot;color&quot;,m.toHex(h.color))}if(h.backgroundColor){m.setAttrib(l,&quot;mce_name&quot;,&quot;font&quot;);m.setStyle(l,&quot;background-color&quot;,h.backgroundColor)}}else{if(h.fontSize){m.setStyle(l,&quot;fontSize&quot;,f[b(i,h.fontSize)])}}if(h.fontWeight==&quot;bold&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;strong&quot;)}if(h.fontStyle==&quot;italic&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;em&quot;)}if(h.textDecoration==&quot;underline&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;u&quot;)}if(h.textDecoration==&quot;line-through&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;strike&quot;)}if(h.verticalAlign==&quot;super&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;sup&quot;)}if(h.verticalAlign==&quot;sub&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;sub&quot;)}m.setAttrib(l,&quot;mce_fixed&quot;,&quot;1&quot;)}},_insertBR:function(f){var j=f.dom,h=f.selection,i=h.getRng(),g;i.insertNode(g=j.create(&quot;br&quot;));i.setStartAfter(g);i.setEndAfter(g);h.setRng(i);if(h.getSel().focusNode==g.previousSibling){h.select(j.insertAfter(j.doc.createTextNode(&quot;\u00a0&quot;),g));h.collapse(1)}f.getWin().scrollTo(0,j.getPos(h.getRng().startContainer).y)}});tinymce.PluginManager.add(&quot;safari&quot;,tinymce.plugins.Safari)})();
\ No newline at end of file
+(function(){var a=tinymce.dom.Event,c=tinymce.grep,d=tinymce.each,b=tinymce.inArray;function e(j,i,h){var g,k;g=j.createTreeWalker(i,NodeFilter.SHOW_ALL,null,false);while(k=g.nextNode()){if(h){if(!h(k)){return false}}if(k.nodeType==3&amp;&amp;k.nodeValue&amp;&amp;/[^\s\u00a0]+/.test(k.nodeValue)){return false}if(k.nodeType==1&amp;&amp;/^(HR|IMG|TABLE)$/.test(k.nodeName)){return false}}return true}tinymce.create(&quot;tinymce.plugins.Safari&quot;,{init:function(f){var g=this,h;if(!tinymce.isWebKit){return}g.editor=f;g.webKitFontSizes=[&quot;x-small&quot;,&quot;small&quot;,&quot;medium&quot;,&quot;large&quot;,&quot;x-large&quot;,&quot;xx-large&quot;,&quot;-webkit-xxx-large&quot;];g.namedFontSizes=[&quot;xx-small&quot;,&quot;x-small&quot;,&quot;small&quot;,&quot;medium&quot;,&quot;large&quot;,&quot;x-large&quot;,&quot;xx-large&quot;];f.addCommand(&quot;CreateLink&quot;,function(k,j){var m=f.selection.getNode(),l=f.dom,i;if(m&amp;&amp;(/^(left|right)$/i.test(l.getStyle(m,&quot;float&quot;,1))||/^(left|right)$/i.test(l.getAttrib(m,&quot;align&quot;)))){i=l.create(&quot;a&quot;,{href:j},m.cloneNode());m.parentNode.replaceChild(i,m);f.selection.select(i)}else{f.getDoc().execCommand(&quot;CreateLink&quot;,false,j)}});f.onKeyUp.add(function(j,o){var l,i,m,p,k;if(o.keyCode==46||o.keyCode==8){i=j.getBody();l=i.innerHTML;k=j.selection;if(i.childNodes.length==1&amp;&amp;!/&lt;(img|hr)/.test(l)&amp;&amp;tinymce.trim(l.replace(/&lt;[^&gt;]+&gt;/g,&quot;&quot;)).length==0){j.setContent('&lt;p&gt;&lt;br mce_bogus=&quot;1&quot; /&gt;&lt;/p&gt;',{format:&quot;raw&quot;});p=i.firstChild;m=k.getRng();m.setStart(p,0);m.setEnd(p,0);k.setRng(m)}}});f.addCommand(&quot;FormatBlock&quot;,function(j,i){var l=f.dom,k=l.getParent(f.selection.getNode(),l.isBlock);if(k){l.replace(l.create(i),k,1)}else{f.getDoc().execCommand(&quot;FormatBlock&quot;,false,i)}});f.addCommand(&quot;mceInsertContent&quot;,function(j,i){f.getDoc().execCommand(&quot;InsertText&quot;,false,&quot;mce_marker&quot;);f.getBody().innerHTML=f.getBody().innerHTML.replace(/mce_marker/g,f.dom.processHTML(i)+'&lt;span id=&quot;_mce_tmp&quot;&gt;XX&lt;/span&gt;');f.selection.select(f.dom.get(&quot;_mce_tmp&quot;));f.getDoc().execCommand(&quot;Delete&quot;,false,&quot; &quot;)});f.onKeyPress.add(function(o,p){var q,v,r,l,j,k,i,u,m,t,s;if(p.keyCode==13){i=o.selection;q=i.getNode();if(p.shiftKey||o.settings.force_br_newlines&amp;&amp;q.nodeName!=&quot;LI&quot;){g._insertBR(o);a.cancel(p)}if(v=h.getParent(q,&quot;LI&quot;)){r=h.getParent(v,&quot;OL,UL&quot;);u=o.getDoc();s=h.create(&quot;p&quot;);h.add(s,&quot;br&quot;,{mce_bogus:&quot;1&quot;});if(e(u,v)){if(k=h.getParent(r.parentNode,&quot;LI,OL,UL&quot;)){return}k=h.getParent(r,&quot;p,h1,h2,h3,h4,h5,h6,div&quot;)||r;l=u.createRange();l.setStartBefore(k);l.setEndBefore(v);j=u.createRange();j.setStartAfter(v);j.setEndAfter(k);m=l.cloneContents();t=j.cloneContents();if(!e(u,t)){h.insertAfter(t,k)}h.insertAfter(s,k);if(!e(u,m)){h.insertAfter(m,k)}h.remove(k);k=s.firstChild;l=u.createRange();l.setStartBefore(k);l.setEndBefore(k);i.setRng(l);return a.cancel(p)}}}});f.onExecCommand.add(function(i,k){var j,m,n,l;if(k==&quot;InsertUnorderedList&quot;||k==&quot;InsertOrderedList&quot;){j=i.selection;m=i.dom;if(n=m.getParent(j.getNode(),function(o){return/^(H[1-6]|P|ADDRESS|PRE)$/.test(o.nodeName)})){l=j.getBookmark();m.remove(n,1);j.moveToBookmark(l)}}});f.onClick.add(function(i,j){j=j.target;if(j.nodeName==&quot;IMG&quot;){g.selElm=j;i.selection.select(j)}else{g.selElm=null}});f.onInit.add(function(){g._fixWebKitSpans()});f.onSetContent.add(function(){h=f.dom;d([&quot;strong&quot;,&quot;b&quot;,&quot;em&quot;,&quot;u&quot;,&quot;strike&quot;,&quot;sub&quot;,&quot;sup&quot;,&quot;a&quot;],function(i){d(c(h.select(i)).reverse(),function(l){var k=l.nodeName.toLowerCase(),j;if(k==&quot;a&quot;){if(l.name){h.replace(h.create(&quot;img&quot;,{mce_name:&quot;a&quot;,name:l.name,&quot;class&quot;:&quot;mceItemAnchor&quot;}),l)}return}switch(k){case&quot;b&quot;:case&quot;strong&quot;:if(k==&quot;b&quot;){k=&quot;strong&quot;}j=&quot;font-weight: bold;&quot;;break;case&quot;em&quot;:j=&quot;font-style: italic;&quot;;break;case&quot;u&quot;:j=&quot;text-decoration: underline;&quot;;break;case&quot;sub&quot;:j=&quot;vertical-align: sub;&quot;;break;case&quot;sup&quot;:j=&quot;vertical-align: super;&quot;;break;case&quot;strike&quot;:j=&quot;text-decoration: line-through;&quot;;break}h.replace(h.create(&quot;span&quot;,{mce_name:k,style:j,&quot;class&quot;:&quot;Apple-style-span&quot;}),l,1)})})});f.onPreProcess.add(function(i,j){h=i.dom;d(c(j.node.getElementsByTagName(&quot;span&quot;)).reverse(),function(m){var k,l;if(j.get){if(h.hasClass(m,&quot;Apple-style-span&quot;)){l=m.style.backgroundColor;switch(h.getAttrib(m,&quot;mce_name&quot;)){case&quot;font&quot;:if(!i.settings.convert_fonts_to_spans){h.setAttrib(m,&quot;style&quot;,&quot;&quot;)}break;case&quot;strong&quot;:case&quot;em&quot;:case&quot;sub&quot;:case&quot;sup&quot;:h.setAttrib(m,&quot;style&quot;,&quot;&quot;);break;case&quot;strike&quot;:case&quot;u&quot;:if(!i.settings.inline_styles){h.setAttrib(m,&quot;style&quot;,&quot;&quot;)}else{h.setAttrib(m,&quot;mce_name&quot;,&quot;&quot;)}break;default:if(!i.settings.inline_styles){h.setAttrib(m,&quot;style&quot;,&quot;&quot;)}}if(l){m.style.backgroundColor=l}}}if(h.hasClass(m,&quot;mceItemRemoved&quot;)){h.remove(m,1)}})});f.onPostProcess.add(function(i,j){j.content=j.content.replace(/&lt;br \/&gt;&lt;\/(h[1-6]|div|p|address|pre)&gt;/g,&quot;&lt;/$1&gt;&quot;);j.content=j.content.replace(/ id=\&quot;undefined\&quot;/g,&quot;&quot;)})},getInfo:function(){return{longname:&quot;Safari compatibility&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_fixWebKitSpans:function(){var g=this,f=g.editor;a.add(f.getDoc(),&quot;DOMNodeInserted&quot;,function(h){h=h.target;if(h&amp;&amp;h.nodeType==1){g._fixAppleSpan(h)}})},_fixAppleSpan:function(l){var g=this.editor,m=g.dom,i=this.webKitFontSizes,f=this.namedFontSizes,j=g.settings,h,k;if(m.getAttrib(l,&quot;mce_fixed&quot;)){return}if(l.nodeName==&quot;SPAN&quot;&amp;&amp;l.className==&quot;Apple-style-span&quot;){h=l.style;if(!j.convert_fonts_to_spans){if(h.fontSize){m.setAttrib(l,&quot;mce_name&quot;,&quot;font&quot;);m.setAttrib(l,&quot;size&quot;,b(i,h.fontSize)+1)}if(h.fontFamily){m.setAttrib(l,&quot;mce_name&quot;,&quot;font&quot;);m.setAttrib(l,&quot;face&quot;,h.fontFamily)}if(h.color){m.setAttrib(l,&quot;mce_name&quot;,&quot;font&quot;);m.setAttrib(l,&quot;color&quot;,m.toHex(h.color))}if(h.backgroundColor){m.setAttrib(l,&quot;mce_name&quot;,&quot;font&quot;);m.setStyle(l,&quot;background-color&quot;,h.backgroundColor)}}else{if(h.fontSize){m.setStyle(l,&quot;fontSize&quot;,f[b(i,h.fontSize)])}}if(h.fontWeight==&quot;bold&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;strong&quot;)}if(h.fontStyle==&quot;italic&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;em&quot;)}if(h.textDecoration==&quot;underline&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;u&quot;)}if(h.textDecoration==&quot;line-through&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;strike&quot;)}if(h.verticalAlign==&quot;super&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;sup&quot;)}if(h.verticalAlign==&quot;sub&quot;){m.setAttrib(l,&quot;mce_name&quot;,&quot;sub&quot;)}m.setAttrib(l,&quot;mce_fixed&quot;,&quot;1&quot;)}},_insertBR:function(f){var j=f.dom,h=f.selection,i=h.getRng(),g;i.insertNode(g=j.create(&quot;br&quot;));i.setStartAfter(g);i.setEndAfter(g);h.setRng(i);if(h.getSel().focusNode==g.previousSibling){h.select(j.insertAfter(j.doc.createTextNode(&quot;\u00a0&quot;),g));h.collapse(1)}f.getWin().scrollTo(0,j.getPos(h.getRng().startContainer).y)}});tinymce.PluginManager.add(&quot;safari&quot;,tinymce.plugins.Safari)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/safari/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -55,6 +55,8 @@
 					ed.getDoc().execCommand(&quot;CreateLink&quot;, false, v);
 			});
 
+/*
+			// WebKit generates spans out of thin air this patch used to remove them but it will also remove styles we want so it's disabled for now
 			ed.onPaste.add(function(ed, e) {
 				function removeStyles(e) {
 					e = e.target;
@@ -74,7 +76,7 @@
 					Event.remove(ed.getDoc(), 'DOMNodeInserted', removeStyles);
 				}, 0);
 			});
-
+*/
 			ed.onKeyUp.add(function(ed, e) {
 				var h, b, r, n, s;
 
@@ -116,6 +118,14 @@
 				ed.selection.select(ed.dom.get('_mce_tmp'));
 				ed.getDoc().execCommand(&quot;Delete&quot;, false, ' ');
 			});
+	
+	/*		ed.onKeyDown.add(function(ed, e) {
+				// Ctrl+A select all will fail on WebKit since if you paste the contents you selected it will produce a odd div wrapper
+				if ((e.ctrlKey || e.metaKey) &amp;&amp; e.keyCode == 65) {
+					ed.selection.select(ed.getBody(), 1);
+					return Event.cancel(e);
+				}
+			});*/
 
 			ed.onKeyPress.add(function(ed, e) {
 				var se, li, lic, r1, r2, n, sel, doc, be, af, pa;</diff>
      <filename>lib/tiny_mce/plugins/safari/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -10,9 +10,9 @@ var defaultFonts = &quot;&quot; +
 	&quot;Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif&quot;;
 
 var defaultSizes = &quot;9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger&quot;;
-var defaultMeasurement = &quot;+pixels=px;points=pt;em;in;cm;mm;picas;ems;exs;%&quot;;
-var defaultSpacingMeasurement = &quot;pixels=px;points=pt;in;cm;mm;picas;+ems;exs;%&quot;;
-var defaultIndentMeasurement = &quot;pixels=px;+points=pt;in;cm;mm;picas;ems;exs;%&quot;;
+var defaultMeasurement = &quot;+pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%&quot;;
+var defaultSpacingMeasurement = &quot;pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;+ems=em;exs=ex;%&quot;;
+var defaultIndentMeasurement = &quot;pixels=px;+points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%&quot;;
 var defaultWeight = &quot;normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900&quot;;
 var defaultTextStyle = &quot;normal;italic;oblique&quot;;
 var defaultVariant = &quot;normal;small-caps&quot;;
@@ -247,12 +247,12 @@ function setupFormData() {
 }
 
 function getMeasurement(s) {
-	return s.replace(/^([0-9]+)(.*)$/, &quot;$2&quot;);
+	return s.replace(/^([0-9.]+)(.*)$/, &quot;$2&quot;);
 }
 
 function getNum(s) {
-	if (new RegExp('^[0-9]+[a-z%]+$', 'gi').test(s))
-		return s.replace(/[^0-9]/g, '');
+	if (new RegExp('^(?:[0-9.]+)(?:[a-z%]+)$', 'gi').test(s))
+		return s.replace(/[^0-9.]/g, '');
 
 	return s;
 }
@@ -478,7 +478,7 @@ function generateCSS() {
 		ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : &quot;&quot;);
 		ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : &quot;&quot;);
 	} else
-		ce.style.borderWidth = f.border_width_top.value;
+		ce.style.borderWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : &quot;&quot;);
 
 	if (!f.border_color_same.checked) {
 		ce.style.borderTopColor = f.border_color_top.value;</diff>
      <filename>lib/tiny_mce/plugins/style/js/props.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create(&quot;tinymce.plugins.TabFocusPlugin&quot;,{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(i){o=c.getParent(l.id,&quot;form&quot;);n=o.elements;if(o){d(n,function(s,r){if(s.id==l.id){j=r;return false}});if(i&gt;0){for(m=j+1;m&lt;n.length;m++){if(n[m].type!=&quot;hidden&quot;){return n[m]}}}else{for(m=j-1;m&gt;=0;m--){if(n[m].type!=&quot;hidden&quot;){return n[m]}}}}return null}if(p.keyCode===9){k=b(l.getParam(&quot;tab_focus&quot;,l.getParam(&quot;tabfocus_elements&quot;,&quot;:prev,:next&quot;)));if(k.length==1){k[1]=k[0];k[0]=&quot;:prev&quot;}if(p.shiftKey){if(k[0]==&quot;:prev&quot;){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==&quot;:next&quot;){n=q(1)}else{n=c.get(k[1])}}if(n){if(l=tinymce.EditorManager.get(n.id||n.name)){l.focus()}else{window.setTimeout(function(){window.focus();n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}f.onInit.add(function(){d(c.select(&quot;a:first,a:last&quot;,tinyMCE.activeEditor.getContainer()),function(i){a.add(i,&quot;focus&quot;,function(){f.focus()})})})},getInfo:function(){return{longname:&quot;Tabfocus&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;tabfocus&quot;,tinymce.plugins.TabFocusPlugin)})();
\ No newline at end of file
+(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create(&quot;tinymce.plugins.TabFocusPlugin&quot;,{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(i){o=c.getParent(l.id,&quot;form&quot;);n=o.elements;if(o){d(n,function(s,r){if(s.id==l.id){j=r;return false}});if(i&gt;0){for(m=j+1;m&lt;n.length;m++){if(n[m].type!=&quot;hidden&quot;){return n[m]}}}else{for(m=j-1;m&gt;=0;m--){if(n[m].type!=&quot;hidden&quot;){return n[m]}}}}return null}if(p.keyCode===9){k=b(l.getParam(&quot;tab_focus&quot;,l.getParam(&quot;tabfocus_elements&quot;,&quot;:prev,:next&quot;)));if(k.length==1){k[1]=k[0];k[0]=&quot;:prev&quot;}if(p.shiftKey){if(k[0]==&quot;:prev&quot;){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==&quot;:next&quot;){n=q(1)}else{n=c.get(k[1])}}if(n){if(l=tinymce.EditorManager.get(n.id||n.name)){l.focus()}else{window.setTimeout(function(){window.focus();n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}f.onInit.add(function(){d(c.select(&quot;a:first,a:last&quot;,f.getContainer()),function(i){a.add(i,&quot;focus&quot;,function(){f.focus()})})})},getInfo:function(){return{longname:&quot;Tabfocus&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;tabfocus&quot;,tinymce.plugins.TabFocusPlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/tabfocus/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -87,7 +87,7 @@
 				ed.onKeyDown.add(tabHandler);
 
 			ed.onInit.add(function() {
-				each(DOM.select('a:first,a:last', tinyMCE.activeEditor.getContainer()), function(n) {
+				each(DOM.select('a:first,a:last', ed.getContainer()), function(n) {
 					Event.add(n, 'focus', function() {ed.focus();});
 				});
 			});</diff>
      <filename>lib/tiny_mce/plugins/tabfocus/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var a=tinymce.each;tinymce.create(&quot;tinymce.plugins.TablePlugin&quot;,{init:function(b,c){var d=this;d.editor=b;d.url=c;a([[&quot;table&quot;,&quot;table.desc&quot;,&quot;mceInsertTable&quot;,true],[&quot;delete_table&quot;,&quot;table.del&quot;,&quot;mceTableDelete&quot;],[&quot;delete_col&quot;,&quot;table.delete_col_desc&quot;,&quot;mceTableDeleteCol&quot;],[&quot;delete_row&quot;,&quot;table.delete_row_desc&quot;,&quot;mceTableDeleteRow&quot;],[&quot;col_after&quot;,&quot;table.col_after_desc&quot;,&quot;mceTableInsertColAfter&quot;],[&quot;col_before&quot;,&quot;table.col_before_desc&quot;,&quot;mceTableInsertColBefore&quot;],[&quot;row_after&quot;,&quot;table.row_after_desc&quot;,&quot;mceTableInsertRowAfter&quot;],[&quot;row_before&quot;,&quot;table.row_before_desc&quot;,&quot;mceTableInsertRowBefore&quot;],[&quot;row_props&quot;,&quot;table.row_desc&quot;,&quot;mceTableRowProps&quot;,true],[&quot;cell_props&quot;,&quot;table.cell_desc&quot;,&quot;mceTableCellProps&quot;,true],[&quot;split_cells&quot;,&quot;table.split_cells_desc&quot;,&quot;mceTableSplitCells&quot;,true],[&quot;merge_cells&quot;,&quot;table.merge_cells_desc&quot;,&quot;mceTableMergeCells&quot;,true]],function(e){b.addButton(e[0],{title:e[1],cmd:e[2],ui:e[3]})});if(b.getParam(&quot;inline_styles&quot;)){b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select(&quot;table&quot;,g.node),function(i){var h;if(h=f.getAttrib(i,&quot;width&quot;)){f.setStyle(i,&quot;width&quot;,h);f.setAttrib(i,&quot;width&quot;)}if(h=f.getAttrib(i,&quot;height&quot;)){f.setStyle(i,&quot;height&quot;,h);f.setAttrib(i,&quot;height&quot;)}})})}b.onInit.add(function(){if(b&amp;&amp;b.plugins.contextmenu){b.plugins.contextmenu.onContextMenu.add(function(h,f,j){var k,i=b.selection,g=i.getNode()||b.getBody();if(b.dom.getParent(j,&quot;td&quot;)||b.dom.getParent(j,&quot;th&quot;)){f.removeAll();if(g.nodeName==&quot;A&quot;&amp;&amp;!b.dom.getAttrib(g,&quot;name&quot;)){f.add({title:&quot;advanced.link_desc&quot;,icon:&quot;link&quot;,cmd:b.plugins.advlink?&quot;mceAdvLink&quot;:&quot;mceLink&quot;,ui:true});f.add({title:&quot;advanced.unlink_desc&quot;,icon:&quot;unlink&quot;,cmd:&quot;UnLink&quot;});f.addSeparator()}if(g.nodeName==&quot;IMG&quot;&amp;&amp;g.className.indexOf(&quot;mceItem&quot;)==-1){f.add({title:&quot;advanced.image_desc&quot;,icon:&quot;image&quot;,cmd:b.plugins.advimage?&quot;mceAdvImage&quot;:&quot;mceImage&quot;,ui:true});f.addSeparator()}f.add({title:&quot;table.desc&quot;,icon:&quot;table&quot;,cmd:&quot;mceInsertTable&quot;,ui:true,value:{action:&quot;insert&quot;}});f.add({title:&quot;table.props_desc&quot;,icon:&quot;table_props&quot;,cmd:&quot;mceInsertTable&quot;,ui:true});f.add({title:&quot;table.del&quot;,icon:&quot;delete_table&quot;,cmd:&quot;mceTableDelete&quot;,ui:true});f.addSeparator();k=f.addMenu({title:&quot;table.cell&quot;});k.add({title:&quot;table.cell_desc&quot;,icon:&quot;cell_props&quot;,cmd:&quot;mceTableCellProps&quot;,ui:true});k.add({title:&quot;table.split_cells_desc&quot;,icon:&quot;split_cells&quot;,cmd:&quot;mceTableSplitCells&quot;,ui:true});k.add({title:&quot;table.merge_cells_desc&quot;,icon:&quot;merge_cells&quot;,cmd:&quot;mceTableMergeCells&quot;,ui:true});k=f.addMenu({title:&quot;table.row&quot;});k.add({title:&quot;table.row_desc&quot;,icon:&quot;row_props&quot;,cmd:&quot;mceTableRowProps&quot;,ui:true});k.add({title:&quot;table.row_before_desc&quot;,icon:&quot;row_before&quot;,cmd:&quot;mceTableInsertRowBefore&quot;});k.add({title:&quot;table.row_after_desc&quot;,icon:&quot;row_after&quot;,cmd:&quot;mceTableInsertRowAfter&quot;});k.add({title:&quot;table.delete_row_desc&quot;,icon:&quot;delete_row&quot;,cmd:&quot;mceTableDeleteRow&quot;});k.addSeparator();k.add({title:&quot;table.cut_row_desc&quot;,icon:&quot;cut&quot;,cmd:&quot;mceTableCutRow&quot;});k.add({title:&quot;table.copy_row_desc&quot;,icon:&quot;copy&quot;,cmd:&quot;mceTableCopyRow&quot;});k.add({title:&quot;table.paste_row_before_desc&quot;,icon:&quot;paste&quot;,cmd:&quot;mceTablePasteRowBefore&quot;});k.add({title:&quot;table.paste_row_after_desc&quot;,icon:&quot;paste&quot;,cmd:&quot;mceTablePasteRowAfter&quot;});k=f.addMenu({title:&quot;table.col&quot;});k.add({title:&quot;table.col_before_desc&quot;,icon:&quot;col_before&quot;,cmd:&quot;mceTableInsertColBefore&quot;});k.add({title:&quot;table.col_after_desc&quot;,icon:&quot;col_after&quot;,cmd:&quot;mceTableInsertColAfter&quot;});k.add({title:&quot;table.delete_col_desc&quot;,icon:&quot;delete_col&quot;,cmd:&quot;mceTableDeleteCol&quot;})}else{f.add({title:&quot;table.desc&quot;,icon:&quot;table&quot;,cmd:&quot;mceInsertTable&quot;,ui:true})}})}});b.onKeyDown.add(function(f,g){if(g.keyCode==9&amp;&amp;f.dom.getParent(f.selection.getNode(),&quot;TABLE&quot;)){if(!tinymce.isGecko&amp;&amp;!tinymce.isOpera){tinyMCE.execInstanceCommand(f.editorId,&quot;mceTableMoveToNextRow&quot;,true);return tinymce.dom.Event.cancel(g)}f.undoManager.add()}});if(!tinymce.isIE){if(b.getParam(&quot;table_selection&quot;,true)){b.onClick.add(function(f,g){g=g.target;if(g.nodeName===&quot;TABLE&quot;){f.selection.select(g)}})}}b.onNodeChange.add(function(f,e,h){var g=f.dom.getParent(h,&quot;td,th,caption&quot;);e.setActive(&quot;table&quot;,h.nodeName===&quot;TABLE&quot;||!!g);if(g&amp;&amp;g.nodeName===&quot;CAPTION&quot;){g=null}e.setDisabled(&quot;delete_table&quot;,!g);e.setDisabled(&quot;delete_col&quot;,!g);e.setDisabled(&quot;delete_table&quot;,!g);e.setDisabled(&quot;delete_row&quot;,!g);e.setDisabled(&quot;col_after&quot;,!g);e.setDisabled(&quot;col_before&quot;,!g);e.setDisabled(&quot;row_after&quot;,!g);e.setDisabled(&quot;row_before&quot;,!g);e.setDisabled(&quot;row_props&quot;,!g);e.setDisabled(&quot;cell_props&quot;,!g);e.setDisabled(&quot;split_cells&quot;,!g||(parseInt(f.dom.getAttrib(g,&quot;colspan&quot;,&quot;1&quot;))&lt;2&amp;&amp;parseInt(f.dom.getAttrib(g,&quot;rowspan&quot;,&quot;1&quot;))&lt;2));e.setDisabled(&quot;merge_cells&quot;,!g)});if(!tinymce.isIE){b.onBeforeSetContent.add(function(e,f){if(f.initial){f.content=f.content.replace(/&lt;(td|th)([^&gt;]+|)&gt;\s*&lt;\/(td|th)&gt;/g,tinymce.isOpera?&quot;&lt;$1$2&gt;&amp;nbsp;&lt;/$1&gt;&quot;:'&lt;$1$2&gt;&lt;br mce_bogus=&quot;1&quot; /&gt;&lt;/$1&gt;')}})}},execCommand:function(f,e,g){var d=this.editor,c;switch(f){case&quot;mceTableMoveToNextRow&quot;:case&quot;mceInsertTable&quot;:case&quot;mceTableRowProps&quot;:case&quot;mceTableCellProps&quot;:case&quot;mceTableSplitCells&quot;:case&quot;mceTableMergeCells&quot;:case&quot;mceTableInsertRowBefore&quot;:case&quot;mceTableInsertRowAfter&quot;:case&quot;mceTableDeleteRow&quot;:case&quot;mceTableInsertColBefore&quot;:case&quot;mceTableInsertColAfter&quot;:case&quot;mceTableDeleteCol&quot;:case&quot;mceTableCutRow&quot;:case&quot;mceTableCopyRow&quot;:case&quot;mceTablePasteRowBefore&quot;:case&quot;mceTablePasteRowAfter&quot;:case&quot;mceTableDelete&quot;:d.execCommand(&quot;mceBeginUndoLevel&quot;);this._doExecCommand(f,e,g);d.execCommand(&quot;mceEndUndoLevel&quot;);return true}return false},getInfo:function(){return{longname:&quot;Tables&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_doExecCommand:function(r,Z,ae){var V=this.editor,au=V,g=this.url;var n=V.selection.getNode();var W=V.dom.getParent(n,&quot;tr&quot;);var aq=V.dom.getParent(n,&quot;td,th&quot;);var F=V.dom.getParent(n,&quot;table&quot;);var k=V.contentWindow.document;var av=F?F.getAttribute(&quot;border&quot;):&quot;&quot;;if(W&amp;&amp;aq==null){aq=W.cells[0]}function ap(y,x){for(var ax=0;ax&lt;y.length;ax++){if(y[ax].length&gt;0&amp;&amp;ap(y[ax],x)){return true}if(y[ax]==x){return true}}return false}function aj(x,i){var y;ad=e(F);x=x||0;i=i||0;x=Math.max(o.cellindex+x,0);i=Math.max(o.rowindex+i,0);V.execCommand(&quot;mceRepaint&quot;);y=d(ad,i,x);if(y){V.selection.select(y.firstChild||y);V.selection.collapse(1)}}function ah(){var i=k.createElement(&quot;td&quot;);if(!tinymce.isIE){i.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}}function j(y){var x=V.dom.getAttrib(y,&quot;colspan&quot;);var i=V.dom.getAttrib(y,&quot;rowspan&quot;);x=x==&quot;&quot;?1:parseInt(x);i=i==&quot;&quot;?1:parseInt(i);return{colspan:x,rowspan:i}}function al(ax,az){var i,ay;for(ay=0;ay&lt;ax.length;ay++){for(i=0;i&lt;ax[ay].length;i++){if(ax[ay][i]==az){return{cellindex:i,rowindex:ay}}}}return null}function d(x,y,i){if(x[y]&amp;&amp;x[y][i]){return x[y][i]}return null}function A(aC,ax){var az=[],y=0,aA,ay,ax,aB;for(aA=0;aA&lt;aC.rows.length;aA++){for(ay=0;ay&lt;aC.rows[aA].cells.length;ay++,y++){az[y]=aC.rows[aA].cells[ay]}}for(aA=0;aA&lt;az.length;aA++){if(az[aA]==ax){if(aB=az[aA+1]){return aB}}}}function e(aE){var i=[],aF=aE.rows,aC,aB,ay,az,aD,ax,aA;for(aB=0;aB&lt;aF.length;aB++){for(aC=0;aC&lt;aF[aB].cells.length;aC++){ay=aF[aB].cells[aC];az=j(ay);for(aD=aC;i[aB]&amp;&amp;i[aB][aD];aD++){}for(aA=aB;aA&lt;aB+az.rowspan;aA++){if(!i[aA]){i[aA]=[]}for(ax=aD;ax&lt;aD+az.colspan;ax++){i[aA][ax]=ay}}}}return i}function m(aG,aD,ay,ax){var y=e(aG),aF=al(y,ay);var aH,aC;if(ax.cells.length!=aD.childNodes.length){aH=aD.childNodes;aC=null;for(var aE=0;ay=d(y,aF.rowindex,aE);aE++){var aA=true;var aB=j(ay);if(ap(aH,ay)){ax.childNodes[aE]._delete=true}else{if((aC==null||ay!=aC)&amp;&amp;aB.colspan&gt;1){for(var az=aE;az&lt;aE+ay.colSpan;az++){ax.childNodes[az]._delete=true}}}if((aC==null||ay!=aC)&amp;&amp;aB.rowspan&gt;1){ay.rowSpan=aB.rowspan+1}aC=ay}B(F)}}function O(x,i){while((x=x.previousSibling)!=null){if(x.nodeName==i){return x}}return null}function af(ax,ay){var x=ay.split(&quot;,&quot;);while((ax=ax.nextSibling)!=null){for(var y=0;y&lt;x.length;y++){if(ax.nodeName.toLowerCase()==x[y].toLowerCase()){return ax}}}return null}function B(ax){if(ax.rows==0){return}var y=ax.rows[0];do{var x=af(y,&quot;TR&quot;);if(y._delete){y.parentNode.removeChild(y);continue}var ay=y.cells[0];if(ay.cells&gt;1){do{var i=af(ay,&quot;TD,TH&quot;);if(ay._delete){ay.parentNode.removeChild(ay)}}while((ay=i)!=null)}}while((y=x)!=null)}function p(ax,aA,az){ax.rowSpan=1;var x=af(aA,&quot;TR&quot;);for(var ay=1;ay&lt;az&amp;&amp;x;ay++){var y=k.createElement(&quot;td&quot;);if(!tinymce.isIE){y.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}if(tinymce.isIE){x.insertBefore(y,x.cells(ax.cellIndex))}else{x.insertBefore(y,x.cells[ax.cellIndex])}x=af(x,&quot;TR&quot;)}}function S(aF,aH,aB){var y=e(aH);var ax=aB.cloneNode(false);var aG=al(y,aB.cells[0]);var aC=null;var aA=V.dom.getAttrib(aH,&quot;border&quot;);var az=null;for(var aE=0;az=d(y,aG.rowindex,aE);aE++){var aD=null;if(aC!=az){for(var ay=0;ay&lt;aB.cells.length;ay++){if(az==aB.cells[ay]){aD=az.cloneNode(true);break}}}if(aD==null){aD=aF.createElement(&quot;td&quot;);if(!tinymce.isIE){aD.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}}aD.colSpan=1;aD.rowSpan=1;ax.appendChild(aD);aC=az}return ax}switch(r){case&quot;mceTableMoveToNextRow&quot;:var L=A(F,aq);if(!L){V.execCommand(&quot;mceTableInsertRowAfter&quot;,aq);L=A(F,aq)}V.selection.select(L);V.selection.collapse(true);return true;case&quot;mceTableRowProps&quot;:if(W==null){return true}if(Z){V.windowManager.open({url:g+&quot;/row.htm&quot;,width:400+parseInt(V.getLang(&quot;table.rowprops_delta_width&quot;,0)),height:295+parseInt(V.getLang(&quot;table.rowprops_delta_height&quot;,0)),inline:1},{plugin_url:g})}return true;case&quot;mceTableCellProps&quot;:if(aq==null){return true}if(Z){V.windowManager.open({url:g+&quot;/cell.htm&quot;,width:400+parseInt(V.getLang(&quot;table.cellprops_delta_width&quot;,0)),height:295+parseInt(V.getLang(&quot;table.cellprops_delta_height&quot;,0)),inline:1},{plugin_url:g})}return true;case&quot;mceInsertTable&quot;:if(Z){V.windowManager.open({url:g+&quot;/table.htm&quot;,width:400+parseInt(V.getLang(&quot;table.table_delta_width&quot;,0)),height:320+parseInt(V.getLang(&quot;table.table_delta_height&quot;,0)),inline:1},{plugin_url:g,action:ae?ae.action:0})}return true;case&quot;mceTableDelete&quot;:var G=V.dom.getParent(V.selection.getNode(),&quot;table&quot;);if(G){G.parentNode.removeChild(G);V.execCommand(&quot;mceRepaint&quot;)}return true;case&quot;mceTableSplitCells&quot;:case&quot;mceTableMergeCells&quot;:case&quot;mceTableInsertRowBefore&quot;:case&quot;mceTableInsertRowAfter&quot;:case&quot;mceTableDeleteRow&quot;:case&quot;mceTableInsertColBefore&quot;:case&quot;mceTableInsertColAfter&quot;:case&quot;mceTableDeleteCol&quot;:case&quot;mceTableCutRow&quot;:case&quot;mceTableCopyRow&quot;:case&quot;mceTablePasteRowBefore&quot;:case&quot;mceTablePasteRowAfter&quot;:if(!F){return true}if(W&amp;&amp;F!=W.parentNode){F=W.parentNode}if(F&amp;&amp;W){switch(r){case&quot;mceTableCutRow&quot;:if(!W||!aq){return true}V.tableRowClipboard=S(k,F,W);V.execCommand(&quot;mceTableDeleteRow&quot;);break;case&quot;mceTableCopyRow&quot;:if(!W||!aq){return true}V.tableRowClipboard=S(k,F,W);break;case&quot;mceTablePasteRowBefore&quot;:if(!W||!aq){return true}var v=V.tableRowClipboard.cloneNode(true);var h=O(W,&quot;TR&quot;);if(h!=null){m(F,h,h.cells[0],v)}W.parentNode.insertBefore(v,W);break;case&quot;mceTablePasteRowAfter&quot;:if(!W||!aq){return true}var X=af(W,&quot;TR&quot;);var v=V.tableRowClipboard.cloneNode(true);m(F,W,aq,v);if(X==null){W.parentNode.appendChild(v)}else{X.parentNode.insertBefore(v,X)}break;case&quot;mceTableInsertRowBefore&quot;:if(!W||!aq){return true}var ad=e(F);var o=al(ad,aq);var v=k.createElement(&quot;tr&quot;);var u=null;o.rowindex--;if(o.rowindex&lt;0){o.rowindex=0}for(var ac=0;aq=d(ad,o.rowindex,ac);ac++){if(aq!=u){var E=j(aq);if(E.rowspan==1){var J=k.createElement(&quot;td&quot;);if(!tinymce.isIE){J.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}J.colSpan=aq.colSpan;v.appendChild(J)}else{aq.rowSpan=E.rowspan+1}u=aq}}W.parentNode.insertBefore(v,W);aj(0,1);break;case&quot;mceTableInsertRowAfter&quot;:if(!W||!aq){return true}var ad=e(F);var o=al(ad,aq);var v=k.createElement(&quot;tr&quot;);var u=null;for(var ac=0;aq=d(ad,o.rowindex,ac);ac++){if(aq!=u){var E=j(aq);if(E.rowspan==1){var J=k.createElement(&quot;td&quot;);if(!tinymce.isIE){J.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}J.colSpan=aq.colSpan;v.appendChild(J)}else{aq.rowSpan=E.rowspan+1}u=aq}}if(v.hasChildNodes()){var X=af(W,&quot;TR&quot;);if(X){X.parentNode.insertBefore(v,X)}else{F.appendChild(v)}}aj(0,1);break;case&quot;mceTableDeleteRow&quot;:if(!W||!aq){return true}var ad=e(F);var o=al(ad,aq);if(ad.length==1&amp;&amp;F.nodeName==&quot;TBODY&quot;){V.dom.remove(V.dom.getParent(F,&quot;table&quot;));return true}var D=W.cells;var X=af(W,&quot;TR&quot;);for(var ac=0;ac&lt;D.length;ac++){if(D[ac].rowSpan&gt;1){var J=D[ac].cloneNode(true);var E=j(D[ac]);J.rowSpan=E.rowspan-1;var ak=X.cells[ac];if(ak==null){X.appendChild(J)}else{X.insertBefore(J,ak)}}}var u=null;for(var ac=0;aq=d(ad,o.rowindex,ac);ac++){if(aq!=u){var E=j(aq);if(E.rowspan&gt;1){aq.rowSpan=E.rowspan-1}else{W=aq.parentNode;if(W.parentNode){W._delete=true}}u=aq}}B(F);aj(0,-1);break;case&quot;mceTableInsertColBefore&quot;:if(!W||!aq){return true}var ad=e(V.dom.getParent(F,&quot;table&quot;));var o=al(ad,aq);var u=null;for(var aa=0;aq=d(ad,aa,o.cellindex);aa++){if(aq!=u){var E=j(aq);if(E.colspan==1){var J=k.createElement(aq.nodeName);if(!tinymce.isIE){J.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}J.rowSpan=aq.rowSpan;aq.parentNode.insertBefore(J,aq)}else{aq.colSpan++}u=aq}}aj();break;case&quot;mceTableInsertColAfter&quot;:if(!W||!aq){return true}var ad=e(V.dom.getParent(F,&quot;table&quot;));var o=al(ad,aq);var u=null;for(var aa=0;aq=d(ad,aa,o.cellindex);aa++){if(aq!=u){var E=j(aq);if(E.colspan==1){var J=k.createElement(aq.nodeName);if(!tinymce.isIE){J.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}J.rowSpan=aq.rowSpan;var ak=af(aq,&quot;TD,TH&quot;);if(ak==null){aq.parentNode.appendChild(J)}else{ak.parentNode.insertBefore(J,ak)}}else{aq.colSpan++}u=aq}}aj(1);break;case&quot;mceTableDeleteCol&quot;:if(!W||!aq){return true}var ad=e(F);var o=al(ad,aq);var u=null;if((ad.length&gt;1&amp;&amp;ad[0].length&lt;=1)&amp;&amp;F.nodeName==&quot;TBODY&quot;){V.dom.remove(V.dom.getParent(F,&quot;table&quot;));return true}for(var aa=0;aq=d(ad,aa,o.cellindex);aa++){if(aq!=u){var E=j(aq);if(E.colspan&gt;1){aq.colSpan=E.colspan-1}else{if(aq.parentNode){aq.parentNode.removeChild(aq)}}u=aq}}aj(-1);break;case&quot;mceTableSplitCells&quot;:if(!W||!aq){return true}var l=j(aq);var C=l.colspan;var H=l.rowspan;if(C&gt;1||H&gt;1){aq.colSpan=1;for(var am=1;am&lt;C;am++){var J=k.createElement(&quot;td&quot;);if(!tinymce.isIE){J.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}W.insertBefore(J,af(aq,&quot;TD,TH&quot;));if(H&gt;1){p(J,W,H)}}p(aq,W,H)}F=V.dom.getParent(V.selection.getNode(),&quot;table&quot;);break;case&quot;mceTableMergeCells&quot;:var ao=[];var R=V.selection.getSel();var ad=e(F);if(tinymce.isIE||R.rangeCount==1){if(Z){var t=j(aq);V.windowManager.open({url:g+&quot;/merge_cells.htm&quot;,width:240+parseInt(V.getLang(&quot;table.merge_cells_delta_width&quot;,0)),height:110+parseInt(V.getLang(&quot;table.merge_cells_delta_height&quot;,0)),inline:1},{action:&quot;update&quot;,numcols:t.colspan,numrows:t.rowspan,plugin_url:g});return true}else{var U=parseInt(ae.numrows);var c=parseInt(ae.numcols);var o=al(ad,aq);if((&quot;&quot;+U)==&quot;NaN&quot;){U=1}if((&quot;&quot;+c)==&quot;NaN&quot;){c=1}var b=F.rows;for(var aa=o.rowindex;aa&lt;ad.length;aa++){var ag=[];for(var ac=o.cellindex;ac&lt;ad[aa].length;ac++){var f=d(ad,aa,ac);if(f&amp;&amp;!ap(ao,f)&amp;&amp;!ap(ag,f)){var N=al(ad,f);if(N.cellindex&lt;o.cellindex+c&amp;&amp;N.rowindex&lt;o.rowindex+U){ag[ag.length]=f}}}if(ag.length&gt;0){ao[ao.length]=ag}var f=d(ad,o.rowindex,o.cellindex);a(au.dom.select(&quot;br&quot;,f),function(y,x){if(x&gt;0&amp;&amp;au.dom.getAttrib(&quot;mce_bogus&quot;)){au.dom.remove(y)}})}}}else{var D=[];var R=V.selection.getSel();var Y=null;var an=null;var z=-1,aw=-1,w,at;if(R.rangeCount&lt;2){return true}for(var am=0;am&lt;R.rangeCount;am++){var ai=R.getRangeAt(am);var aq=ai.startContainer.childNodes[ai.startOffset];if(!aq){break}if(aq.nodeName==&quot;TD&quot;||aq.nodeName==&quot;TH&quot;){D[D.length]=aq}}var b=F.rows;for(var aa=0;aa&lt;b.length;aa++){var ag=[];for(var ac=0;ac&lt;b[aa].cells.length;ac++){var f=b[aa].cells[ac];for(var am=0;am&lt;D.length;am++){if(f==D[am]){ag[ag.length]=f}}}if(ag.length&gt;0){ao[ao.length]=ag}}var an=[];var Y=null;for(var aa=0;aa&lt;ad.length;aa++){for(var ac=0;ac&lt;ad[aa].length;ac++){ad[aa][ac]._selected=false;for(var am=0;am&lt;D.length;am++){if(ad[aa][ac]==D[am]){if(z==-1){z=ac;aw=aa}w=ac;at=aa;ad[aa][ac]._selected=true}}}}for(var aa=aw;aa&lt;=at;aa++){for(var ac=z;ac&lt;=w;ac++){if(!ad[aa][ac]._selected){alert(&quot;Invalid selection for merge.&quot;);return true}}}}var s=1,q=1;var T=-1;for(var aa=0;aa&lt;ao.length;aa++){var I=0;for(var ac=0;ac&lt;ao[aa].length;ac++){var E=j(ao[aa][ac]);I+=E.colspan;if(T!=-1&amp;&amp;E.rowspan!=T){alert(&quot;Invalid selection for merge.&quot;);return true}T=E.rowspan}if(I&gt;q){q=I}T=-1}var Q=-1;for(var ac=0;ac&lt;ao[0].length;ac++){var M=0;for(var aa=0;aa&lt;ao.length;aa++){var E=j(ao[aa][ac]);M+=E.rowspan;if(Q!=-1&amp;&amp;E.colspan!=Q){alert(&quot;Invalid selection for merge.&quot;);return true}Q=E.colspan}if(M&gt;s){s=M}Q=-1}aq=ao[0][0];aq.rowSpan=s;aq.colSpan=q;for(var aa=0;aa&lt;ao.length;aa++){for(var ac=0;ac&lt;ao[aa].length;ac++){var P=ao[aa][ac].innerHTML;var K=P.replace(/[ \t\r\n]/g,&quot;&quot;);if(K!=&quot;&lt;br/&gt;&quot;&amp;&amp;K!=&quot;&lt;br&gt;&quot;&amp;&amp;K!='&lt;br mce_bogus=&quot;1&quot;/&gt;'&amp;&amp;(ac+aa&gt;0)){aq.innerHTML+=P}if(ao[aa][ac]!=aq&amp;&amp;!ao[aa][ac]._deleted){var o=al(ad,ao[aa][ac]);var ar=ao[aa][ac].parentNode;ar.removeChild(ao[aa][ac]);ao[aa][ac]._deleted=true;if(!ar.hasChildNodes()){ar.parentNode.removeChild(ar);var ab=null;for(var ac=0;cellElm=d(ad,o.rowindex,ac);ac++){if(cellElm!=ab&amp;&amp;cellElm.rowSpan&gt;1){cellElm.rowSpan--}ab=cellElm}if(aq.rowSpan&gt;1){aq.rowSpan--}}}}}a(au.dom.select(&quot;br&quot;,aq),function(y,x){if(x&gt;0&amp;&amp;au.dom.getAttrib(y,&quot;mce_bogus&quot;)){au.dom.remove(y)}});break}F=V.dom.getParent(V.selection.getNode(),&quot;table&quot;);V.addVisual(F);V.nodeChanged()}return true}return false}});tinymce.PluginManager.add(&quot;table&quot;,tinymce.plugins.TablePlugin)})();
\ No newline at end of file
+(function(){var b=tinymce.each;function a(d,e){var f=e.ownerDocument,c=f.createRange(),g;c.setStartBefore(e);c.setEnd(d.endContainer,d.endOffset);g=f.createElement(&quot;body&quot;);g.appendChild(c.cloneContents());return g.innerHTML.replace(/&lt;(br|img|object|embed|input|textarea)[^&gt;]*&gt;/gi,&quot;-&quot;).replace(/&lt;[^&gt;]+&gt;/g,&quot;&quot;).length==0}tinymce.create(&quot;tinymce.plugins.TablePlugin&quot;,{init:function(c,d){var e=this;e.editor=c;e.url=d;b([[&quot;table&quot;,&quot;table.desc&quot;,&quot;mceInsertTable&quot;,true],[&quot;delete_table&quot;,&quot;table.del&quot;,&quot;mceTableDelete&quot;],[&quot;delete_col&quot;,&quot;table.delete_col_desc&quot;,&quot;mceTableDeleteCol&quot;],[&quot;delete_row&quot;,&quot;table.delete_row_desc&quot;,&quot;mceTableDeleteRow&quot;],[&quot;col_after&quot;,&quot;table.col_after_desc&quot;,&quot;mceTableInsertColAfter&quot;],[&quot;col_before&quot;,&quot;table.col_before_desc&quot;,&quot;mceTableInsertColBefore&quot;],[&quot;row_after&quot;,&quot;table.row_after_desc&quot;,&quot;mceTableInsertRowAfter&quot;],[&quot;row_before&quot;,&quot;table.row_before_desc&quot;,&quot;mceTableInsertRowBefore&quot;],[&quot;row_props&quot;,&quot;table.row_desc&quot;,&quot;mceTableRowProps&quot;,true],[&quot;cell_props&quot;,&quot;table.cell_desc&quot;,&quot;mceTableCellProps&quot;,true],[&quot;split_cells&quot;,&quot;table.split_cells_desc&quot;,&quot;mceTableSplitCells&quot;,true],[&quot;merge_cells&quot;,&quot;table.merge_cells_desc&quot;,&quot;mceTableMergeCells&quot;,true]],function(f){c.addButton(f[0],{title:f[1],cmd:f[2],ui:f[3]})});if(c.getParam(&quot;inline_styles&quot;)){c.onPreProcess.add(function(f,h){var g=f.dom;b(g.select(&quot;table&quot;,h.node),function(j){var i;if(i=g.getAttrib(j,&quot;width&quot;)){g.setStyle(j,&quot;width&quot;,i);g.setAttrib(j,&quot;width&quot;)}if(i=g.getAttrib(j,&quot;height&quot;)){g.setStyle(j,&quot;height&quot;,i);g.setAttrib(j,&quot;height&quot;)}})})}c.onInit.add(function(){if(!tinymce.isIE&amp;&amp;c.getParam(&quot;forced_root_block&quot;)){function f(){var g=c.getBody().lastChild;if(g&amp;&amp;g.nodeName==&quot;TABLE&quot;){c.dom.add(c.getBody(),&quot;p&quot;,null,'&lt;br mce_bogus=&quot;1&quot; /&gt;')}}if(tinymce.isGecko){c.onKeyDown.add(function(h,j){var g,i,k=h.dom;if(j.keyCode==37||j.keyCode==38){g=h.selection.getRng();i=k.getParent(g.startContainer,&quot;table&quot;);if(i&amp;&amp;h.getBody().firstChild==i){if(a(g,i)){g=k.createRng();g.setStartBefore(i);g.setEndBefore(i);h.selection.setRng(g);j.preventDefault()}}}})}c.onKeyUp.add(f);c.onSetContent.add(f);c.onVisualAid.add(f);c.onPreProcess.add(function(g,i){var h=i.node.lastChild;if(h&amp;&amp;h.childNodes.length==1&amp;&amp;h.firstChild.nodeName==&quot;BR&quot;){g.dom.remove(h)}});f()}if(c&amp;&amp;c.plugins.contextmenu){c.plugins.contextmenu.onContextMenu.add(function(i,g,k){var l,j=c.selection,h=j.getNode()||c.getBody();if(c.dom.getParent(k,&quot;td&quot;)||c.dom.getParent(k,&quot;th&quot;)){g.removeAll();if(h.nodeName==&quot;A&quot;&amp;&amp;!c.dom.getAttrib(h,&quot;name&quot;)){g.add({title:&quot;advanced.link_desc&quot;,icon:&quot;link&quot;,cmd:c.plugins.advlink?&quot;mceAdvLink&quot;:&quot;mceLink&quot;,ui:true});g.add({title:&quot;advanced.unlink_desc&quot;,icon:&quot;unlink&quot;,cmd:&quot;UnLink&quot;});g.addSeparator()}if(h.nodeName==&quot;IMG&quot;&amp;&amp;h.className.indexOf(&quot;mceItem&quot;)==-1){g.add({title:&quot;advanced.image_desc&quot;,icon:&quot;image&quot;,cmd:c.plugins.advimage?&quot;mceAdvImage&quot;:&quot;mceImage&quot;,ui:true});g.addSeparator()}g.add({title:&quot;table.desc&quot;,icon:&quot;table&quot;,cmd:&quot;mceInsertTable&quot;,ui:true,value:{action:&quot;insert&quot;}});g.add({title:&quot;table.props_desc&quot;,icon:&quot;table_props&quot;,cmd:&quot;mceInsertTable&quot;,ui:true});g.add({title:&quot;table.del&quot;,icon:&quot;delete_table&quot;,cmd:&quot;mceTableDelete&quot;,ui:true});g.addSeparator();l=g.addMenu({title:&quot;table.cell&quot;});l.add({title:&quot;table.cell_desc&quot;,icon:&quot;cell_props&quot;,cmd:&quot;mceTableCellProps&quot;,ui:true});l.add({title:&quot;table.split_cells_desc&quot;,icon:&quot;split_cells&quot;,cmd:&quot;mceTableSplitCells&quot;,ui:true});l.add({title:&quot;table.merge_cells_desc&quot;,icon:&quot;merge_cells&quot;,cmd:&quot;mceTableMergeCells&quot;,ui:true});l=g.addMenu({title:&quot;table.row&quot;});l.add({title:&quot;table.row_desc&quot;,icon:&quot;row_props&quot;,cmd:&quot;mceTableRowProps&quot;,ui:true});l.add({title:&quot;table.row_before_desc&quot;,icon:&quot;row_before&quot;,cmd:&quot;mceTableInsertRowBefore&quot;});l.add({title:&quot;table.row_after_desc&quot;,icon:&quot;row_after&quot;,cmd:&quot;mceTableInsertRowAfter&quot;});l.add({title:&quot;table.delete_row_desc&quot;,icon:&quot;delete_row&quot;,cmd:&quot;mceTableDeleteRow&quot;});l.addSeparator();l.add({title:&quot;table.cut_row_desc&quot;,icon:&quot;cut&quot;,cmd:&quot;mceTableCutRow&quot;});l.add({title:&quot;table.copy_row_desc&quot;,icon:&quot;copy&quot;,cmd:&quot;mceTableCopyRow&quot;});l.add({title:&quot;table.paste_row_before_desc&quot;,icon:&quot;paste&quot;,cmd:&quot;mceTablePasteRowBefore&quot;});l.add({title:&quot;table.paste_row_after_desc&quot;,icon:&quot;paste&quot;,cmd:&quot;mceTablePasteRowAfter&quot;});l=g.addMenu({title:&quot;table.col&quot;});l.add({title:&quot;table.col_before_desc&quot;,icon:&quot;col_before&quot;,cmd:&quot;mceTableInsertColBefore&quot;});l.add({title:&quot;table.col_after_desc&quot;,icon:&quot;col_after&quot;,cmd:&quot;mceTableInsertColAfter&quot;});l.add({title:&quot;table.delete_col_desc&quot;,icon:&quot;delete_col&quot;,cmd:&quot;mceTableDeleteCol&quot;})}else{g.add({title:&quot;table.desc&quot;,icon:&quot;table&quot;,cmd:&quot;mceInsertTable&quot;,ui:true})}})}});c.onKeyDown.add(function(f,g){if(g.keyCode==9&amp;&amp;f.dom.getParent(f.selection.getNode(),&quot;TABLE&quot;)){if(!tinymce.isGecko&amp;&amp;!tinymce.isOpera){tinyMCE.execInstanceCommand(f.editorId,&quot;mceTableMoveToNextRow&quot;,true);return tinymce.dom.Event.cancel(g)}f.undoManager.add()}});if(!tinymce.isIE){if(c.getParam(&quot;table_selection&quot;,true)){c.onClick.add(function(f,g){g=g.target;if(g.nodeName===&quot;TABLE&quot;){f.selection.select(g)}})}}c.onNodeChange.add(function(g,f,i){var h=g.dom.getParent(i,&quot;td,th,caption&quot;);f.setActive(&quot;table&quot;,i.nodeName===&quot;TABLE&quot;||!!h);if(h&amp;&amp;h.nodeName===&quot;CAPTION&quot;){h=null}f.setDisabled(&quot;delete_table&quot;,!h);f.setDisabled(&quot;delete_col&quot;,!h);f.setDisabled(&quot;delete_table&quot;,!h);f.setDisabled(&quot;delete_row&quot;,!h);f.setDisabled(&quot;col_after&quot;,!h);f.setDisabled(&quot;col_before&quot;,!h);f.setDisabled(&quot;row_after&quot;,!h);f.setDisabled(&quot;row_before&quot;,!h);f.setDisabled(&quot;row_props&quot;,!h);f.setDisabled(&quot;cell_props&quot;,!h);f.setDisabled(&quot;split_cells&quot;,!h||(parseInt(g.dom.getAttrib(h,&quot;colspan&quot;,&quot;1&quot;))&lt;2&amp;&amp;parseInt(g.dom.getAttrib(h,&quot;rowspan&quot;,&quot;1&quot;))&lt;2));f.setDisabled(&quot;merge_cells&quot;,!h)});if(!tinymce.isIE){c.onBeforeSetContent.add(function(f,g){if(g.initial){g.content=g.content.replace(/&lt;(td|th)([^&gt;]+|)&gt;\s*&lt;\/(td|th)&gt;/g,tinymce.isOpera?&quot;&lt;$1$2&gt;&amp;nbsp;&lt;/$1&gt;&quot;:'&lt;$1$2&gt;&lt;br mce_bogus=&quot;1&quot; /&gt;&lt;/$1&gt;')}})}},execCommand:function(f,e,g){var d=this.editor,c;switch(f){case&quot;mceTableMoveToNextRow&quot;:case&quot;mceInsertTable&quot;:case&quot;mceTableRowProps&quot;:case&quot;mceTableCellProps&quot;:case&quot;mceTableSplitCells&quot;:case&quot;mceTableMergeCells&quot;:case&quot;mceTableInsertRowBefore&quot;:case&quot;mceTableInsertRowAfter&quot;:case&quot;mceTableDeleteRow&quot;:case&quot;mceTableInsertColBefore&quot;:case&quot;mceTableInsertColAfter&quot;:case&quot;mceTableDeleteCol&quot;:case&quot;mceTableCutRow&quot;:case&quot;mceTableCopyRow&quot;:case&quot;mceTablePasteRowBefore&quot;:case&quot;mceTablePasteRowAfter&quot;:case&quot;mceTableDelete&quot;:d.execCommand(&quot;mceBeginUndoLevel&quot;);this._doExecCommand(f,e,g);d.execCommand(&quot;mceEndUndoLevel&quot;);return true}return false},getInfo:function(){return{longname:&quot;Tables&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_doExecCommand:function(s,aa,af){var W=this.editor,av=W,h=this.url;var o=W.selection.getNode();var X=W.dom.getParent(o,&quot;tr&quot;);var ar=W.dom.getParent(o,&quot;td,th&quot;);var G=W.dom.getParent(o,&quot;table&quot;);var l=W.contentWindow.document;var aw=G?G.getAttribute(&quot;border&quot;):&quot;&quot;;if(X&amp;&amp;ar==null){ar=X.cells[0]}function aq(y,x){for(var ay=0;ay&lt;y.length;ay++){if(y[ay].length&gt;0&amp;&amp;aq(y[ay],x)){return true}if(y[ay]==x){return true}}return false}function ak(x,i){var y;ae=f(G);x=x||0;i=i||0;x=Math.max(p.cellindex+x,0);i=Math.max(p.rowindex+i,0);W.execCommand(&quot;mceRepaint&quot;);y=e(ae,i,x);if(y){W.selection.select(y.firstChild||y);W.selection.collapse(1)}}function ai(){var i=l.createElement(&quot;td&quot;);if(!tinymce.isIE){i.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}}function k(y){var x=W.dom.getAttrib(y,&quot;colspan&quot;);var i=W.dom.getAttrib(y,&quot;rowspan&quot;);x=x==&quot;&quot;?1:parseInt(x);i=i==&quot;&quot;?1:parseInt(i);return{colspan:x,rowspan:i}}function am(ay,aA){var i,az;for(az=0;az&lt;ay.length;az++){for(i=0;i&lt;ay[az].length;i++){if(ay[az][i]==aA){return{cellindex:i,rowindex:az}}}}return null}function e(x,y,i){if(x[y]&amp;&amp;x[y][i]){return x[y][i]}return null}function B(aD,ay){var aA=[],y=0,aB,az,ay,aC;for(aB=0;aB&lt;aD.rows.length;aB++){for(az=0;az&lt;aD.rows[aB].cells.length;az++,y++){aA[y]=aD.rows[aB].cells[az]}}for(aB=0;aB&lt;aA.length;aB++){if(aA[aB]==ay){if(aC=aA[aB+1]){return aC}}}}function f(aF){var i=[],aG=aF.rows,aD,aC,az,aA,aE,ay,aB;for(aC=0;aC&lt;aG.length;aC++){for(aD=0;aD&lt;aG[aC].cells.length;aD++){az=aG[aC].cells[aD];aA=k(az);for(aE=aD;i[aC]&amp;&amp;i[aC][aE];aE++){}for(aB=aC;aB&lt;aC+aA.rowspan;aB++){if(!i[aB]){i[aB]=[]}for(ay=aE;ay&lt;aE+aA.colspan;ay++){i[aB][ay]=az}}}}return i}function n(aH,aE,az,ay){var y=f(aH),aG=am(y,az);var aI,aD;if(ay.cells.length!=aE.childNodes.length){aI=aE.childNodes;aD=null;for(var aF=0;az=e(y,aG.rowindex,aF);aF++){var aB=true;var aC=k(az);if(aq(aI,az)){ay.childNodes[aF]._delete=true}else{if((aD==null||az!=aD)&amp;&amp;aC.colspan&gt;1){for(var aA=aF;aA&lt;aF+az.colSpan;aA++){ay.childNodes[aA]._delete=true}}}if((aD==null||az!=aD)&amp;&amp;aC.rowspan&gt;1){az.rowSpan=aC.rowspan+1}aD=az}C(G)}}function P(x,i){while((x=x.previousSibling)!=null){if(x.nodeName==i){return x}}return null}function ag(ay,az){var x=az.split(&quot;,&quot;);while((ay=ay.nextSibling)!=null){for(var y=0;y&lt;x.length;y++){if(ay.nodeName.toLowerCase()==x[y].toLowerCase()){return ay}}}return null}function C(ay){if(ay.rows==0){return}var y=ay.rows[0];do{var x=ag(y,&quot;TR&quot;);if(y._delete){y.parentNode.removeChild(y);continue}var az=y.cells[0];if(az.cells&gt;1){do{var i=ag(az,&quot;TD,TH&quot;);if(az._delete){az.parentNode.removeChild(az)}}while((az=i)!=null)}}while((y=x)!=null)}function q(ay,aB,aA){ay.rowSpan=1;var x=ag(aB,&quot;TR&quot;);for(var az=1;az&lt;aA&amp;&amp;x;az++){var y=l.createElement(&quot;td&quot;);if(!tinymce.isIE){y.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}if(tinymce.isIE){x.insertBefore(y,x.cells(ay.cellIndex))}else{x.insertBefore(y,x.cells[ay.cellIndex])}x=ag(x,&quot;TR&quot;)}}function T(aG,aI,aC){var y=f(aI);var ay=aC.cloneNode(false);var aH=am(y,aC.cells[0]);var aD=null;var aB=W.dom.getAttrib(aI,&quot;border&quot;);var aA=null;for(var aF=0;aA=e(y,aH.rowindex,aF);aF++){var aE=null;if(aD!=aA){for(var az=0;az&lt;aC.cells.length;az++){if(aA==aC.cells[az]){aE=aA.cloneNode(true);break}}}if(aE==null){aE=aG.createElement(&quot;td&quot;);if(!tinymce.isIE){aE.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}}aE.colSpan=1;aE.rowSpan=1;ay.appendChild(aE);aD=aA}return ay}switch(s){case&quot;mceTableMoveToNextRow&quot;:var M=B(G,ar);if(!M){W.execCommand(&quot;mceTableInsertRowAfter&quot;,ar);M=B(G,ar)}W.selection.select(M);W.selection.collapse(true);return true;case&quot;mceTableRowProps&quot;:if(X==null){return true}if(aa){W.windowManager.open({url:h+&quot;/row.htm&quot;,width:400+parseInt(W.getLang(&quot;table.rowprops_delta_width&quot;,0)),height:295+parseInt(W.getLang(&quot;table.rowprops_delta_height&quot;,0)),inline:1},{plugin_url:h})}return true;case&quot;mceTableCellProps&quot;:if(ar==null){return true}if(aa){W.windowManager.open({url:h+&quot;/cell.htm&quot;,width:400+parseInt(W.getLang(&quot;table.cellprops_delta_width&quot;,0)),height:295+parseInt(W.getLang(&quot;table.cellprops_delta_height&quot;,0)),inline:1},{plugin_url:h})}return true;case&quot;mceInsertTable&quot;:if(aa){W.windowManager.open({url:h+&quot;/table.htm&quot;,width:400+parseInt(W.getLang(&quot;table.table_delta_width&quot;,0)),height:320+parseInt(W.getLang(&quot;table.table_delta_height&quot;,0)),inline:1},{plugin_url:h,action:af?af.action:0})}return true;case&quot;mceTableDelete&quot;:var H=W.dom.getParent(W.selection.getNode(),&quot;table&quot;);if(H){H.parentNode.removeChild(H);W.execCommand(&quot;mceRepaint&quot;)}return true;case&quot;mceTableSplitCells&quot;:case&quot;mceTableMergeCells&quot;:case&quot;mceTableInsertRowBefore&quot;:case&quot;mceTableInsertRowAfter&quot;:case&quot;mceTableDeleteRow&quot;:case&quot;mceTableInsertColBefore&quot;:case&quot;mceTableInsertColAfter&quot;:case&quot;mceTableDeleteCol&quot;:case&quot;mceTableCutRow&quot;:case&quot;mceTableCopyRow&quot;:case&quot;mceTablePasteRowBefore&quot;:case&quot;mceTablePasteRowAfter&quot;:if(!G){return true}if(X&amp;&amp;G!=X.parentNode){G=X.parentNode}if(G&amp;&amp;X){switch(s){case&quot;mceTableCutRow&quot;:if(!X||!ar){return true}W.tableRowClipboard=T(l,G,X);W.execCommand(&quot;mceTableDeleteRow&quot;);break;case&quot;mceTableCopyRow&quot;:if(!X||!ar){return true}W.tableRowClipboard=T(l,G,X);break;case&quot;mceTablePasteRowBefore&quot;:if(!X||!ar){return true}var w=W.tableRowClipboard.cloneNode(true);var j=P(X,&quot;TR&quot;);if(j!=null){n(G,j,j.cells[0],w)}X.parentNode.insertBefore(w,X);break;case&quot;mceTablePasteRowAfter&quot;:if(!X||!ar){return true}var Y=ag(X,&quot;TR&quot;);var w=W.tableRowClipboard.cloneNode(true);n(G,X,ar,w);if(Y==null){X.parentNode.appendChild(w)}else{Y.parentNode.insertBefore(w,Y)}break;case&quot;mceTableInsertRowBefore&quot;:if(!X||!ar){return true}var ae=f(G);var p=am(ae,ar);var w=l.createElement(&quot;tr&quot;);var v=null;p.rowindex--;if(p.rowindex&lt;0){p.rowindex=0}for(var ad=0;ar=e(ae,p.rowindex,ad);ad++){if(ar!=v){var F=k(ar);if(F.rowspan==1){var K=l.createElement(&quot;td&quot;);if(!tinymce.isIE){K.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}K.colSpan=ar.colSpan;w.appendChild(K)}else{ar.rowSpan=F.rowspan+1}v=ar}}X.parentNode.insertBefore(w,X);ak(0,1);break;case&quot;mceTableInsertRowAfter&quot;:if(!X||!ar){return true}var ae=f(G);var p=am(ae,ar);var w=l.createElement(&quot;tr&quot;);var v=null;for(var ad=0;ar=e(ae,p.rowindex,ad);ad++){if(ar!=v){var F=k(ar);if(F.rowspan==1){var K=l.createElement(&quot;td&quot;);if(!tinymce.isIE){K.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}K.colSpan=ar.colSpan;w.appendChild(K)}else{ar.rowSpan=F.rowspan+1}v=ar}}if(w.hasChildNodes()){var Y=ag(X,&quot;TR&quot;);if(Y){Y.parentNode.insertBefore(w,Y)}else{G.appendChild(w)}}ak(0,1);break;case&quot;mceTableDeleteRow&quot;:if(!X||!ar){return true}var ae=f(G);var p=am(ae,ar);if(ae.length==1&amp;&amp;G.nodeName==&quot;TBODY&quot;){W.dom.remove(W.dom.getParent(G,&quot;table&quot;));return true}var E=X.cells;var Y=ag(X,&quot;TR&quot;);for(var ad=0;ad&lt;E.length;ad++){if(E[ad].rowSpan&gt;1){var K=E[ad].cloneNode(true);var F=k(E[ad]);K.rowSpan=F.rowspan-1;var al=Y.cells[ad];if(al==null){Y.appendChild(K)}else{Y.insertBefore(K,al)}}}var v=null;for(var ad=0;ar=e(ae,p.rowindex,ad);ad++){if(ar!=v){var F=k(ar);if(F.rowspan&gt;1){ar.rowSpan=F.rowspan-1}else{X=ar.parentNode;if(X.parentNode){X._delete=true}}v=ar}}C(G);ak(0,-1);break;case&quot;mceTableInsertColBefore&quot;:if(!X||!ar){return true}var ae=f(W.dom.getParent(G,&quot;table&quot;));var p=am(ae,ar);var v=null;for(var ab=0;ar=e(ae,ab,p.cellindex);ab++){if(ar!=v){var F=k(ar);if(F.colspan==1){var K=l.createElement(ar.nodeName);if(!tinymce.isIE){K.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}K.rowSpan=ar.rowSpan;ar.parentNode.insertBefore(K,ar)}else{ar.colSpan++}v=ar}}ak();break;case&quot;mceTableInsertColAfter&quot;:if(!X||!ar){return true}var ae=f(W.dom.getParent(G,&quot;table&quot;));var p=am(ae,ar);var v=null;for(var ab=0;ar=e(ae,ab,p.cellindex);ab++){if(ar!=v){var F=k(ar);if(F.colspan==1){var K=l.createElement(ar.nodeName);if(!tinymce.isIE){K.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}K.rowSpan=ar.rowSpan;var al=ag(ar,&quot;TD,TH&quot;);if(al==null){ar.parentNode.appendChild(K)}else{al.parentNode.insertBefore(K,al)}}else{ar.colSpan++}v=ar}}ak(1);break;case&quot;mceTableDeleteCol&quot;:if(!X||!ar){return true}var ae=f(G);var p=am(ae,ar);var v=null;if((ae.length&gt;1&amp;&amp;ae[0].length&lt;=1)&amp;&amp;G.nodeName==&quot;TBODY&quot;){W.dom.remove(W.dom.getParent(G,&quot;table&quot;));return true}for(var ab=0;ar=e(ae,ab,p.cellindex);ab++){if(ar!=v){var F=k(ar);if(F.colspan&gt;1){ar.colSpan=F.colspan-1}else{if(ar.parentNode){ar.parentNode.removeChild(ar)}}v=ar}}ak(-1);break;case&quot;mceTableSplitCells&quot;:if(!X||!ar){return true}var m=k(ar);var D=m.colspan;var I=m.rowspan;if(D&gt;1||I&gt;1){ar.colSpan=1;for(var an=1;an&lt;D;an++){var K=l.createElement(&quot;td&quot;);if(!tinymce.isIE){K.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;'}X.insertBefore(K,ag(ar,&quot;TD,TH&quot;));if(I&gt;1){q(K,X,I)}}q(ar,X,I)}G=W.dom.getParent(W.selection.getNode(),&quot;table&quot;);break;case&quot;mceTableMergeCells&quot;:var ap=[];var S=W.selection.getSel();var ae=f(G);if(tinymce.isIE||S.rangeCount==1){if(aa){var u=k(ar);W.windowManager.open({url:h+&quot;/merge_cells.htm&quot;,width:240+parseInt(W.getLang(&quot;table.merge_cells_delta_width&quot;,0)),height:110+parseInt(W.getLang(&quot;table.merge_cells_delta_height&quot;,0)),inline:1},{action:&quot;update&quot;,numcols:u.colspan,numrows:u.rowspan,plugin_url:h});return true}else{var V=parseInt(af.numrows);var d=parseInt(af.numcols);var p=am(ae,ar);if((&quot;&quot;+V)==&quot;NaN&quot;){V=1}if((&quot;&quot;+d)==&quot;NaN&quot;){d=1}var c=G.rows;for(var ab=p.rowindex;ab&lt;ae.length;ab++){var ah=[];for(var ad=p.cellindex;ad&lt;ae[ab].length;ad++){var g=e(ae,ab,ad);if(g&amp;&amp;!aq(ap,g)&amp;&amp;!aq(ah,g)){var O=am(ae,g);if(O.cellindex&lt;p.cellindex+d&amp;&amp;O.rowindex&lt;p.rowindex+V){ah[ah.length]=g}}}if(ah.length&gt;0){ap[ap.length]=ah}var g=e(ae,p.rowindex,p.cellindex);b(av.dom.select(&quot;br&quot;,g),function(y,x){if(x&gt;0&amp;&amp;av.dom.getAttrib(&quot;mce_bogus&quot;)){av.dom.remove(y)}})}}}else{var E=[];var S=W.selection.getSel();var Z=null;var ao=null;var A=-1,ax=-1,z,au;if(S.rangeCount&lt;2){return true}for(var an=0;an&lt;S.rangeCount;an++){var aj=S.getRangeAt(an);var ar=aj.startContainer.childNodes[aj.startOffset];if(!ar){break}if(ar.nodeName==&quot;TD&quot;||ar.nodeName==&quot;TH&quot;){E[E.length]=ar}}var c=G.rows;for(var ab=0;ab&lt;c.length;ab++){var ah=[];for(var ad=0;ad&lt;c[ab].cells.length;ad++){var g=c[ab].cells[ad];for(var an=0;an&lt;E.length;an++){if(g==E[an]){ah[ah.length]=g}}}if(ah.length&gt;0){ap[ap.length]=ah}}var ao=[];var Z=null;for(var ab=0;ab&lt;ae.length;ab++){for(var ad=0;ad&lt;ae[ab].length;ad++){ae[ab][ad]._selected=false;for(var an=0;an&lt;E.length;an++){if(ae[ab][ad]==E[an]){if(A==-1){A=ad;ax=ab}z=ad;au=ab;ae[ab][ad]._selected=true}}}}for(var ab=ax;ab&lt;=au;ab++){for(var ad=A;ad&lt;=z;ad++){if(!ae[ab][ad]._selected){alert(&quot;Invalid selection for merge.&quot;);return true}}}}var t=1,r=1;var U=-1;for(var ab=0;ab&lt;ap.length;ab++){var J=0;for(var ad=0;ad&lt;ap[ab].length;ad++){var F=k(ap[ab][ad]);J+=F.colspan;if(U!=-1&amp;&amp;F.rowspan!=U){alert(&quot;Invalid selection for merge.&quot;);return true}U=F.rowspan}if(J&gt;r){r=J}U=-1}var R=-1;for(var ad=0;ad&lt;ap[0].length;ad++){var N=0;for(var ab=0;ab&lt;ap.length;ab++){var F=k(ap[ab][ad]);N+=F.rowspan;if(R!=-1&amp;&amp;F.colspan!=R){alert(&quot;Invalid selection for merge.&quot;);return true}R=F.colspan}if(N&gt;t){t=N}R=-1}ar=ap[0][0];ar.rowSpan=t;ar.colSpan=r;for(var ab=0;ab&lt;ap.length;ab++){for(var ad=0;ad&lt;ap[ab].length;ad++){var Q=ap[ab][ad].innerHTML;var L=Q.replace(/[ \t\r\n]/g,&quot;&quot;);if(L!=&quot;&lt;br/&gt;&quot;&amp;&amp;L!=&quot;&lt;br&gt;&quot;&amp;&amp;L!='&lt;br mce_bogus=&quot;1&quot;/&gt;'&amp;&amp;(ad+ab&gt;0)){ar.innerHTML+=Q}if(ap[ab][ad]!=ar&amp;&amp;!ap[ab][ad]._deleted){var p=am(ae,ap[ab][ad]);var at=ap[ab][ad].parentNode;at.removeChild(ap[ab][ad]);ap[ab][ad]._deleted=true;if(!at.hasChildNodes()){at.parentNode.removeChild(at);var ac=null;for(var ad=0;cellElm=e(ae,p.rowindex,ad);ad++){if(cellElm!=ac&amp;&amp;cellElm.rowSpan&gt;1){cellElm.rowSpan--}ac=cellElm}if(ar.rowSpan&gt;1){ar.rowSpan--}}}}}b(av.dom.select(&quot;br&quot;,ar),function(y,x){if(x&gt;0&amp;&amp;av.dom.getAttrib(y,&quot;mce_bogus&quot;)){av.dom.remove(y)}});break}G=W.dom.getParent(W.selection.getNode(),&quot;table&quot;);W.addVisual(G);W.nodeChanged()}return true}return false}});tinymce.PluginManager.add(&quot;table&quot;,tinymce.plugins.TablePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/table/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 953 2008-11-04 10:16:50Z spocke $
+ * $Id: editor_plugin_src.js 1209 2009-08-20 12:35:10Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -8,6 +8,20 @@
 (function() {
 	var each = tinymce.each;
 
+	// Checks if the selection/caret is at the start of the specified block element
+	function isAtStart(rng, par) {
+		var doc = par.ownerDocument, rng2 = doc.createRange(), elm;
+
+		rng2.setStartBefore(par);
+		rng2.setEnd(rng.endContainer, rng.endOffset);
+
+		elm = doc.createElement('body');
+		elm.appendChild(rng2.cloneContents());
+
+		// Check for text characters of other elements that should be treated as content
+		return elm.innerHTML.replace(/&lt;(br|img|object|embed|input|textarea)[^&gt;]*&gt;/gi, '-').replace(/&lt;[^&gt;]+&gt;/g, '').length == 0;
+	};
+
 	tinymce.create('tinymce.plugins.TablePlugin', {
 		init : function(ed, url) {
 			var t = this;
@@ -55,6 +69,58 @@
 			}
 
 			ed.onInit.add(function() {
+				// Fixes an issue on Gecko where it's impossible to place the caret behind a table
+				// This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled
+				if (!tinymce.isIE &amp;&amp; ed.getParam('forced_root_block')) {
+					function fixTableCaretPos() {
+						var last = ed.getBody().lastChild;
+
+						if (last &amp;&amp; last.nodeName == 'TABLE')
+							ed.dom.add(ed.getBody(), 'p', null, '&lt;br mce_bogus=&quot;1&quot; /&gt;');
+					};
+
+					// Fixes an bug where it's impossible to place the caret before a table in Gecko
+					// this fix solves it by detecting when the caret is at the beginning of such a table
+					// and then manually moves the caret infront of the table
+					if (tinymce.isGecko) {
+						ed.onKeyDown.add(function(ed, e) {
+							var rng, table, dom = ed.dom;
+
+							// On gecko it's not possible to place the caret before a table
+							if (e.keyCode == 37 || e.keyCode == 38) {
+								rng = ed.selection.getRng();
+								table = dom.getParent(rng.startContainer, 'table');
+
+								if (table &amp;&amp; ed.getBody().firstChild == table) {
+									if (isAtStart(rng, table)) {
+										rng = dom.createRng();
+
+										rng.setStartBefore(table);
+										rng.setEndBefore(table);
+
+										ed.selection.setRng(rng);
+
+										e.preventDefault();
+									}
+								}
+							}
+						});
+					}
+
+					ed.onKeyUp.add(fixTableCaretPos);
+					ed.onSetContent.add(fixTableCaretPos);
+					ed.onVisualAid.add(fixTableCaretPos);
+
+					ed.onPreProcess.add(function(ed, o) {
+						var last = o.node.lastChild;
+
+						if (last &amp;&amp; last.childNodes.length == 1 &amp;&amp; last.firstChild.nodeName == 'BR')
+							ed.dom.remove(last);
+					});
+
+					fixTableCaretPos();
+				}
+
 				if (ed &amp;&amp; ed.plugins.contextmenu) {
 					ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {
 						var sm, se = ed.selection, el = se.getNode() || ed.getBody();</diff>
      <filename>lib/tiny_mce/plugins/table/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -24,14 +24,14 @@ function insertTable() {
 	border = formObj.elements['border'].value != &quot;&quot; ? formObj.elements['border'].value  : 0;
 	cellpadding = formObj.elements['cellpadding'].value != &quot;&quot; ? formObj.elements['cellpadding'].value : &quot;&quot;;
 	cellspacing = formObj.elements['cellspacing'].value != &quot;&quot; ? formObj.elements['cellspacing'].value : &quot;&quot;;
-	align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;
-	frame = formObj.elements['frame'].options[formObj.elements['frame'].selectedIndex].value;
-	rules = formObj.elements['rules'].options[formObj.elements['rules'].selectedIndex].value;
+	align = getSelectValue(formObj, &quot;align&quot;);
+	frame = getSelectValue(formObj, &quot;tframe&quot;);
+	rules = getSelectValue(formObj, &quot;rules&quot;);
 	width = formObj.elements['width'].value;
 	height = formObj.elements['height'].value;
 	bordercolor = formObj.elements['bordercolor'].value;
 	bgcolor = formObj.elements['bgcolor'].value;
-	className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;
+	className = getSelectValue(formObj, &quot;class&quot;);
 	id = formObj.elements['id'].value;
 	summary = formObj.elements['summary'].value;
 	style = formObj.elements['style'].value;
@@ -156,6 +156,10 @@ function insertTable() {
 		if (style)
 			style += '; ';
 
+		// Force px
+		if (/^[0-9\.]+$/.test(width))
+			width += 'px';
+
 		style += 'width: ' + width;
 	} else
 		html += makeAttrib('width', width);
@@ -318,7 +322,7 @@ function init() {
 
 	// Update form
 	selectByValue(formObj, 'align', align);
-	selectByValue(formObj, 'frame', frame);
+	selectByValue(formObj, 'tframe', frame);
 	selectByValue(formObj, 'rules', rules);
 	selectByValue(formObj, 'class', className, true, true);
 	formObj.cols.value = cols;</diff>
      <filename>lib/tiny_mce/plugins/table/js/table.js</filename>
    </modified>
    <modified>
      <diff>@@ -108,9 +108,9 @@
 						&lt;/tr&gt;
 
 						&lt;tr&gt;
-							&lt;td class=&quot;column1&quot;&gt;&lt;label for=&quot;frame&quot;&gt;{#table_dlg.frame}&lt;/label&gt;&lt;/td&gt; 
+							&lt;td class=&quot;column1&quot;&gt;&lt;label for=&quot;tframe&quot;&gt;{#table_dlg.frame}&lt;/label&gt;&lt;/td&gt; 
 							&lt;td&gt;
-								&lt;select id=&quot;frame&quot; name=&quot;frame&quot; class=&quot;advfield&quot;&gt; 
+								&lt;select id=&quot;tframe&quot; name=&quot;tframe&quot; class=&quot;advfield&quot;&gt; 
 										&lt;option value=&quot;&quot;&gt;{#not_set}&lt;/option&gt;
 										&lt;option value=&quot;void&quot;&gt;{#table_dlg.rules_void}&lt;/option&gt;
 										&lt;option value=&quot;above&quot;&gt;{#table_dlg.rules_above}&lt;/option&gt; </diff>
      <filename>lib/tiny_mce/plugins/table/table.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var a=tinymce.each;tinymce.create(&quot;tinymce.plugins.TemplatePlugin&quot;,{init:function(b,c){var d=this;d.editor=b;b.addCommand(&quot;mceTemplate&quot;,function(e){b.windowManager.open({file:c+&quot;/template.htm&quot;,width:b.getParam(&quot;template_popup_width&quot;,750),height:b.getParam(&quot;template_popup_height&quot;,600),inline:1},{plugin_url:c})});b.addCommand(&quot;mceInsertTemplate&quot;,d._insertTemplate,d);b.addButton(&quot;template&quot;,{title:&quot;template.desc&quot;,cmd:&quot;mceTemplate&quot;});b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select(&quot;div&quot;,g.node),function(h){if(f.hasClass(h,&quot;mceTmpl&quot;)){a(f.select(&quot;*&quot;,h),function(i){if(f.hasClass(i,e.getParam(&quot;template_mdate_classes&quot;,&quot;mdate&quot;).replace(/\s+/g,&quot;|&quot;))){i.innerHTML=d._getDateTime(new Date(),e.getParam(&quot;template_mdate_format&quot;,e.getLang(&quot;template.mdate_format&quot;)))}});d._replaceVals(h)}})})},getInfo:function(){return{longname:&quot;Template plugin&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://www.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_insertTemplate:function(i,j){var k=this,g=k.editor,f,c,d=g.dom,b=g.selection.getContent();f=j.content;a(k.editor.getParam(&quot;template_replace_values&quot;),function(l,h){if(typeof(l)!=&quot;function&quot;){f=f.replace(new RegExp(&quot;\\{\\$&quot;+h+&quot;\\}&quot;,&quot;g&quot;),l)}});c=d.create(&quot;div&quot;,null,f);n=d.select(&quot;.mceTmpl&quot;,c);if(n&amp;&amp;n.length&gt;0){c=d.create(&quot;div&quot;,null);c.appendChild(n[0].cloneNode(true))}function e(l,h){return new RegExp(&quot;\\b&quot;+h+&quot;\\b&quot;,&quot;g&quot;).test(l.className)}a(d.select(&quot;*&quot;,c),function(h){if(e(h,g.getParam(&quot;template_cdate_classes&quot;,&quot;cdate&quot;).replace(/\s+/g,&quot;|&quot;))){h.innerHTML=k._getDateTime(new Date(),g.getParam(&quot;template_cdate_format&quot;,g.getLang(&quot;template.cdate_format&quot;)))}if(e(h,g.getParam(&quot;template_mdate_classes&quot;,&quot;mdate&quot;).replace(/\s+/g,&quot;|&quot;))){h.innerHTML=k._getDateTime(new Date(),g.getParam(&quot;template_mdate_format&quot;,g.getLang(&quot;template.mdate_format&quot;)))}if(e(h,g.getParam(&quot;template_selected_content_classes&quot;,&quot;selcontent&quot;).replace(/\s+/g,&quot;|&quot;))){h.innerHTML=b}});k._replaceVals(c);g.execCommand(&quot;mceInsertContent&quot;,false,c.innerHTML);g.addVisual()},_replaceVals:function(c){var d=this.editor.dom,b=this.editor.getParam(&quot;template_replace_values&quot;);a(d.select(&quot;*&quot;,c),function(f){a(b,function(g,e){if(d.hasClass(f,e)){if(typeof(b[e])==&quot;function&quot;){b[e](f)}}})})},_getDateTime:function(e,b){if(!b){return&quot;&quot;}function c(g,d){var f;g=&quot;&quot;+g;if(g.length&lt;d){for(f=0;f&lt;(d-g.length);f++){g=&quot;0&quot;+g}}return g}b=b.replace(&quot;%D&quot;,&quot;%m/%d/%y&quot;);b=b.replace(&quot;%r&quot;,&quot;%I:%M:%S %p&quot;);b=b.replace(&quot;%Y&quot;,&quot;&quot;+e.getFullYear());b=b.replace(&quot;%y&quot;,&quot;&quot;+e.getYear());b=b.replace(&quot;%m&quot;,c(e.getMonth()+1,2));b=b.replace(&quot;%d&quot;,c(e.getDate(),2));b=b.replace(&quot;%H&quot;,&quot;&quot;+c(e.getHours(),2));b=b.replace(&quot;%M&quot;,&quot;&quot;+c(e.getMinutes(),2));b=b.replace(&quot;%S&quot;,&quot;&quot;+c(e.getSeconds(),2));b=b.replace(&quot;%I&quot;,&quot;&quot;+((e.getHours()+11)%12+1));b=b.replace(&quot;%p&quot;,&quot;&quot;+(e.getHours()&lt;12?&quot;AM&quot;:&quot;PM&quot;));b=b.replace(&quot;%B&quot;,&quot;&quot;+tinyMCE.getLang(&quot;template_months_long&quot;).split(&quot;,&quot;)[e.getMonth()]);b=b.replace(&quot;%b&quot;,&quot;&quot;+tinyMCE.getLang(&quot;template_months_short&quot;).split(&quot;,&quot;)[e.getMonth()]);b=b.replace(&quot;%A&quot;,&quot;&quot;+tinyMCE.getLang(&quot;template_day_long&quot;).split(&quot;,&quot;)[e.getDay()]);b=b.replace(&quot;%a&quot;,&quot;&quot;+tinyMCE.getLang(&quot;template_day_short&quot;).split(&quot;,&quot;)[e.getDay()]);b=b.replace(&quot;%%&quot;,&quot;%&quot;);return b}});tinymce.PluginManager.add(&quot;template&quot;,tinymce.plugins.TemplatePlugin)})();
\ No newline at end of file
+(function(){var a=tinymce.each;tinymce.create(&quot;tinymce.plugins.TemplatePlugin&quot;,{init:function(b,c){var d=this;d.editor=b;b.addCommand(&quot;mceTemplate&quot;,function(e){b.windowManager.open({file:c+&quot;/template.htm&quot;,width:b.getParam(&quot;template_popup_width&quot;,750),height:b.getParam(&quot;template_popup_height&quot;,600),inline:1},{plugin_url:c})});b.addCommand(&quot;mceInsertTemplate&quot;,d._insertTemplate,d);b.addButton(&quot;template&quot;,{title:&quot;template.desc&quot;,cmd:&quot;mceTemplate&quot;});b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select(&quot;div&quot;,g.node),function(h){if(f.hasClass(h,&quot;mceTmpl&quot;)){a(f.select(&quot;*&quot;,h),function(i){if(f.hasClass(i,e.getParam(&quot;template_mdate_classes&quot;,&quot;mdate&quot;).replace(/\s+/g,&quot;|&quot;))){i.innerHTML=d._getDateTime(new Date(),e.getParam(&quot;template_mdate_format&quot;,e.getLang(&quot;template.mdate_format&quot;)))}});d._replaceVals(h)}})})},getInfo:function(){return{longname:&quot;Template plugin&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://www.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_insertTemplate:function(i,j){var k=this,g=k.editor,f,c,d=g.dom,b=g.selection.getContent();f=j.content;a(k.editor.getParam(&quot;template_replace_values&quot;),function(l,h){if(typeof(l)!=&quot;function&quot;){f=f.replace(new RegExp(&quot;\\{\\$&quot;+h+&quot;\\}&quot;,&quot;g&quot;),l)}});c=d.create(&quot;div&quot;,null,f);n=d.select(&quot;.mceTmpl&quot;,c);if(n&amp;&amp;n.length&gt;0){c=d.create(&quot;div&quot;,null);c.appendChild(n[0].cloneNode(true))}function e(l,h){return new RegExp(&quot;\\b&quot;+h+&quot;\\b&quot;,&quot;g&quot;).test(l.className)}a(d.select(&quot;*&quot;,c),function(h){if(e(h,g.getParam(&quot;template_cdate_classes&quot;,&quot;cdate&quot;).replace(/\s+/g,&quot;|&quot;))){h.innerHTML=k._getDateTime(new Date(),g.getParam(&quot;template_cdate_format&quot;,g.getLang(&quot;template.cdate_format&quot;)))}if(e(h,g.getParam(&quot;template_mdate_classes&quot;,&quot;mdate&quot;).replace(/\s+/g,&quot;|&quot;))){h.innerHTML=k._getDateTime(new Date(),g.getParam(&quot;template_mdate_format&quot;,g.getLang(&quot;template.mdate_format&quot;)))}if(e(h,g.getParam(&quot;template_selected_content_classes&quot;,&quot;selcontent&quot;).replace(/\s+/g,&quot;|&quot;))){h.innerHTML=b}});k._replaceVals(c);g.execCommand(&quot;mceInsertContent&quot;,false,c.innerHTML);g.addVisual()},_replaceVals:function(c){var d=this.editor.dom,b=this.editor.getParam(&quot;template_replace_values&quot;);a(d.select(&quot;*&quot;,c),function(f){a(b,function(g,e){if(d.hasClass(f,e)){if(typeof(b[e])==&quot;function&quot;){b[e](f)}}})})},_getDateTime:function(e,b){if(!b){return&quot;&quot;}function c(g,d){var f;g=&quot;&quot;+g;if(g.length&lt;d){for(f=0;f&lt;(d-g.length);f++){g=&quot;0&quot;+g}}return g}b=b.replace(&quot;%D&quot;,&quot;%m/%d/%y&quot;);b=b.replace(&quot;%r&quot;,&quot;%I:%M:%S %p&quot;);b=b.replace(&quot;%Y&quot;,&quot;&quot;+e.getFullYear());b=b.replace(&quot;%y&quot;,&quot;&quot;+e.getYear());b=b.replace(&quot;%m&quot;,c(e.getMonth()+1,2));b=b.replace(&quot;%d&quot;,c(e.getDate(),2));b=b.replace(&quot;%H&quot;,&quot;&quot;+c(e.getHours(),2));b=b.replace(&quot;%M&quot;,&quot;&quot;+c(e.getMinutes(),2));b=b.replace(&quot;%S&quot;,&quot;&quot;+c(e.getSeconds(),2));b=b.replace(&quot;%I&quot;,&quot;&quot;+((e.getHours()+11)%12+1));b=b.replace(&quot;%p&quot;,&quot;&quot;+(e.getHours()&lt;12?&quot;AM&quot;:&quot;PM&quot;));b=b.replace(&quot;%B&quot;,&quot;&quot;+this.editor.getLang(&quot;template_months_long&quot;).split(&quot;,&quot;)[e.getMonth()]);b=b.replace(&quot;%b&quot;,&quot;&quot;+this.editor.getLang(&quot;template_months_short&quot;).split(&quot;,&quot;)[e.getMonth()]);b=b.replace(&quot;%A&quot;,&quot;&quot;+this.editor.getLang(&quot;template_day_long&quot;).split(&quot;,&quot;)[e.getDay()]);b=b.replace(&quot;%a&quot;,&quot;&quot;+this.editor.getLang(&quot;template_day_short&quot;).split(&quot;,&quot;)[e.getDay()]);b=b.replace(&quot;%%&quot;,&quot;%&quot;);return b}});tinymce.PluginManager.add(&quot;template&quot;,tinymce.plugins.TemplatePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/template/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -141,10 +141,10 @@
 				fmt = fmt.replace(&quot;%S&quot;, &quot;&quot; + addZeros(d.getSeconds(), 2));
 				fmt = fmt.replace(&quot;%I&quot;, &quot;&quot; + ((d.getHours() + 11) % 12 + 1));
 				fmt = fmt.replace(&quot;%p&quot;, &quot;&quot; + (d.getHours() &lt; 12 ? &quot;AM&quot; : &quot;PM&quot;));
-				fmt = fmt.replace(&quot;%B&quot;, &quot;&quot; + tinyMCE.getLang(&quot;template_months_long&quot;).split(',')[d.getMonth()]);
-				fmt = fmt.replace(&quot;%b&quot;, &quot;&quot; + tinyMCE.getLang(&quot;template_months_short&quot;).split(',')[d.getMonth()]);
-				fmt = fmt.replace(&quot;%A&quot;, &quot;&quot; + tinyMCE.getLang(&quot;template_day_long&quot;).split(',')[d.getDay()]);
-				fmt = fmt.replace(&quot;%a&quot;, &quot;&quot; + tinyMCE.getLang(&quot;template_day_short&quot;).split(',')[d.getDay()]);
+				fmt = fmt.replace(&quot;%B&quot;, &quot;&quot; + this.editor.getLang(&quot;template_months_long&quot;).split(',')[d.getMonth()]);
+				fmt = fmt.replace(&quot;%b&quot;, &quot;&quot; + this.editor.getLang(&quot;template_months_short&quot;).split(',')[d.getMonth()]);
+				fmt = fmt.replace(&quot;%A&quot;, &quot;&quot; + this.editor.getLang(&quot;template_day_long&quot;).split(',')[d.getDay()]);
+				fmt = fmt.replace(&quot;%a&quot;, &quot;&quot; + this.editor.getLang(&quot;template_day_short&quot;).split(',')[d.getDay()]);
 				fmt = fmt.replace(&quot;%%&quot;, &quot;%&quot;);
 
 				return fmt;</diff>
      <filename>lib/tiny_mce/plugins/template/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,7 @@
 			&lt;fieldset&gt;
 				&lt;legend&gt;{#advanced_dlg.colorpicker_picker_title}&lt;/legend&gt;
 				&lt;div id=&quot;picker&quot;&gt;
-					&lt;img id=&quot;colors&quot; src=&quot;img/colorpicker.jpg&quot; onclick=&quot;computeColor(event)&quot; onmousedown=&quot;isMouseDown = true;return false;&quot; onmouseup=&quot;isMouseDown = false;&quot; onmousemove=&quot;if (isMouseDown &amp;&amp; isMouseOver) computeColor(event); return false;&quot; onmouseover=&quot;isMouseOver=true;&quot; onmouseout=&quot;isMouseOver=false;&quot; alt=&quot; &quot; /&gt;
+					&lt;img id=&quot;colors&quot; src=&quot;img/colorpicker.jpg&quot; onclick=&quot;computeColor(event)&quot; onmousedown=&quot;isMouseDown = true;return false;&quot; onmouseup=&quot;isMouseDown = false;&quot; onmousemove=&quot;if (isMouseDown &amp;&amp; isMouseOver) computeColor(event); return false;&quot; onmouseover=&quot;isMouseOver=true;&quot; onmouseout=&quot;isMouseOver=false;&quot; alt=&quot;&quot; /&gt;
 
 					&lt;div id=&quot;light&quot;&gt;
 						&lt;!-- Will be filled with divs --&gt;</diff>
      <filename>lib/tiny_mce/themes/advanced/color_picker.htm</filename>
    </modified>
    <modified>
      <diff>@@ -63,8 +63,8 @@ var LinkDialog = {
 					ed.dom.setAttribs(e, {
 						href : f.href.value,
 						title : f.linktitle.value,
-						target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,
-						'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null
+						target : f.target_list ? getSelectValue(f, &quot;target_list&quot;) : null,
+						'class' : f.class_list ? getSelectValue(f, &quot;class_list&quot;) : null
 					});
 				}
 			});
@@ -72,8 +72,8 @@ var LinkDialog = {
 			ed.dom.setAttribs(e, {
 				href : f.href.value,
 				title : f.linktitle.value,
-				target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,
-				'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null
+				target : f.target_list ? getSelectValue(f, &quot;target_list&quot;) : null,
+				'class' : f.class_list ? getSelectValue(f, &quot;class_list&quot;) : null
 			});
 		}
 </diff>
      <filename>lib/tiny_mce/themes/advanced/js/link.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-var tinymce={majorVersion:&quot;3&quot;,minorVersion:&quot;2.2.3&quot;,releaseDate:&quot;2009-03-26&quot;,_init:function(){var o=this,k=document,l=window,j=navigator,b=j.userAgent,h,a,g,f,e,m;o.isOpera=l.opera&amp;&amp;opera.buildNumber;o.isWebKit=/WebKit/.test(b);o.isIE=!o.isWebKit&amp;&amp;!o.isOpera&amp;&amp;(/MSIE/gi).test(b)&amp;&amp;(/Explorer/gi).test(j.appName);o.isIE6=o.isIE&amp;&amp;/MSIE [56]/.test(b);o.isGecko=!o.isWebKit&amp;&amp;/Gecko/.test(b);o.isMac=b.indexOf(&quot;Mac&quot;)!=-1;o.isAir=/adobeair/i.test(b);if(l.tinyMCEPreInit){o.suffix=tinyMCEPreInit.suffix;o.baseURL=tinyMCEPreInit.base;o.query=tinyMCEPreInit.query;return}o.suffix=&quot;&quot;;a=k.getElementsByTagName(&quot;base&quot;);for(h=0;h&lt;a.length;h++){if(m=a[h].href){if(/^https?:\/\/[^\/]+$/.test(m)){m+=&quot;/&quot;}f=m?m.match(/.*\//)[0]:&quot;&quot;}}function c(d){if(d.src&amp;&amp;/tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(d.src)){if(/_(src|dev)\.js/g.test(d.src)){o.suffix=&quot;_src&quot;}if((e=d.src.indexOf(&quot;?&quot;))!=-1){o.query=d.src.substring(e+1)}o.baseURL=d.src.substring(0,d.src.lastIndexOf(&quot;/&quot;));if(f&amp;&amp;o.baseURL.indexOf(&quot;://&quot;)==-1){o.baseURL=f+o.baseURL}return o.baseURL}return null}a=k.getElementsByTagName(&quot;script&quot;);for(h=0;h&lt;a.length;h++){if(c(a[h])){return}}g=k.getElementsByTagName(&quot;head&quot;)[0];if(g){a=g.getElementsByTagName(&quot;script&quot;);for(h=0;h&lt;a.length;h++){if(c(a[h])){return}}}return},is:function(b,a){var c=typeof(b);if(!a){return c!=&quot;undefined&quot;}if(a==&quot;array&quot;&amp;&amp;(b.hasOwnProperty&amp;&amp;b instanceof Array)){return true}return c==a},each:function(d,a,c){var e,b;if(!d){return 0}c=c||d;if(typeof(d.length)!=&quot;undefined&quot;){for(e=0,b=d.length;e&lt;b;e++){if(a.call(c,d[e],e,d)===false){return 0}}}else{for(e in d){if(d.hasOwnProperty(e)){if(a.call(c,d[e],e,d)===false){return 0}}}}return 1},map:function(b,c){var d=[];tinymce.each(b,function(a){d.push(c(a))});return d},grep:function(b,c){var d=[];tinymce.each(b,function(a){if(!c||c(a)){d.push(a)}});return d},inArray:function(c,d){var e,b;if(c){for(e=0,b=c.length;e&lt;b;e++){if(c[e]===d){return e}}}return -1},extend:function(f,d){var c,b=arguments;for(c=1;c&lt;b.length;c++){d=b[c];tinymce.each(d,function(a,e){if(typeof(a)!==&quot;undefined&quot;){f[e]=a}})}return f},trim:function(a){return(a?&quot;&quot;+a:&quot;&quot;).replace(/^\s*|\s*$/g,&quot;&quot;)},create:function(j,a){var i=this,b,e,f,g,d,h=0;j=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(j);f=j[3].match(/(^|\.)(\w+)$/i)[2];e=i.createNS(j[3].replace(/\.\w+$/,&quot;&quot;));if(e[f]){return}if(j[2]==&quot;static&quot;){e[f]=a;if(this.onCreate){this.onCreate(j[2],j[3],e[f])}return}if(!a[f]){a[f]=function(){};h=1}e[f]=a[f];i.extend(e[f].prototype,a);if(j[5]){b=i.resolve(j[5]).prototype;g=j[5].match(/\.(\w+)$/i)[1];d=e[f];if(h){e[f]=function(){return b[g].apply(this,arguments)}}else{e[f]=function(){this.parent=b[g];return d.apply(this,arguments)}}e[f].prototype[f]=e[f];i.each(b,function(c,k){e[f].prototype[k]=b[k]});i.each(a,function(c,k){if(b[k]){e[f].prototype[k]=function(){this.parent=b[k];return c.apply(this,arguments)}}else{if(k!=f){e[f].prototype[k]=c}}})}i.each(a[&quot;static&quot;],function(c,k){e[f][k]=c});if(this.onCreate){this.onCreate(j[2],j[3],e[f].prototype)}},walk:function(c,b,d,a){a=a||this;if(c){if(d){c=c[d]}tinymce.each(c,function(f,e){if(b.call(a,f,e,d)===false){return false}tinymce.walk(f,b,d,a)})}},createNS:function(d,c){var b,a;c=c||window;d=d.split(&quot;.&quot;);for(b=0;b&lt;d.length;b++){a=d[b];if(!c[a]){c[a]={}}c=c[a]}return c},resolve:function(d,c){var b,a;c=c||window;d=d.split(&quot;.&quot;);for(b=0,a=d.length;b&lt;a;b++){c=c[d[b]];if(!c){break}}return c},addUnload:function(e,d){var c=this,a=window;e={func:e,scope:d||this};if(!c.unloads){function b(){var f=c.unloads,h,i;if(f){for(i in f){h=f[i];if(h&amp;&amp;h.func){h.func.call(h.scope,1)}}if(a.detachEvent){a.detachEvent(&quot;onbeforeunload&quot;,g);a.detachEvent(&quot;onunload&quot;,b)}else{if(a.removeEventListener){a.removeEventListener(&quot;unload&quot;,b,false)}}c.unloads=h=f=a=b=null;if(window.CollectGarbage){window.CollectGarbage()}}}function g(){var h=document;if(h.readyState==&quot;interactive&quot;){function f(){h.detachEvent(&quot;onstop&quot;,f);b();h=null}h.attachEvent(&quot;onstop&quot;,f);window.setTimeout(function(){h.detachEvent(&quot;onstop&quot;,f)},0)}}if(a.attachEvent){a.attachEvent(&quot;onunload&quot;,b);a.attachEvent(&quot;onbeforeunload&quot;,g)}else{if(a.addEventListener){a.addEventListener(&quot;unload&quot;,b,false)}}c.unloads=[e]}else{c.unloads.push(e)}return e},removeUnload:function(c){var a=this.unloads,b=null;tinymce.each(a,function(e,d){if(e&amp;&amp;e.func==c){a.splice(d,1);b=c;return false}});return b},explode:function(a,b){return a?tinymce.map(a.split(b||&quot;,&quot;),tinymce.trim):a},_addVer:function(b){var a;if(!this.query){return b}a=(b.indexOf(&quot;?&quot;)==-1?&quot;?&quot;:&quot;&amp;&quot;)+this.query;if(b.indexOf(&quot;#&quot;)==-1){return b+a}return b.replace(&quot;#&quot;,a+&quot;#&quot;)}};window.tinymce=tinymce;tinymce._init();tinymce.create(&quot;tinymce.util.Dispatcher&quot;,{scope:null,listeners:null,Dispatcher:function(a){this.scope=a||this;this.listeners=[]},add:function(a,b){this.listeners.push({cb:a,scope:b||this.scope});return a},addToTop:function(a,b){this.listeners.unshift({cb:a,scope:b||this.scope});return a},remove:function(a){var b=this.listeners,c=null;tinymce.each(b,function(e,d){if(a==e.cb){c=a;b.splice(d,1);return false}});return c},dispatch:function(){var f,d=arguments,e,b=this.listeners,g;for(e=0;e&lt;b.length;e++){g=b[e];f=g.cb.apply(g.scope,d);if(f===false){break}}return f}});(function(){var a=tinymce.each;tinymce.create(&quot;tinymce.util.URI&quot;,{URI:function(e,g){var f=this,h,d,c;g=f.settings=g||{};if(/^(mailto|tel|news|javascript|about):/i.test(e)||/^\s*#/.test(e)){f.source=e;return}if(e.indexOf(&quot;/&quot;)===0&amp;&amp;e.indexOf(&quot;//&quot;)!==0){e=(g.base_uri?g.base_uri.protocol||&quot;http&quot;:&quot;http&quot;)+&quot;://mce_host&quot;+e}if(e.indexOf(&quot;:/&quot;)===-1&amp;&amp;e.indexOf(&quot;//&quot;)!==0){e=(g.base_uri.protocol||&quot;http&quot;)+&quot;://mce_host&quot;+f.toAbsPath(g.base_uri.path,e)}e=e.replace(/@@/g,&quot;(mce_at)&quot;);e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);a([&quot;source&quot;,&quot;protocol&quot;,&quot;authority&quot;,&quot;userInfo&quot;,&quot;user&quot;,&quot;password&quot;,&quot;host&quot;,&quot;port&quot;,&quot;relative&quot;,&quot;path&quot;,&quot;directory&quot;,&quot;file&quot;,&quot;query&quot;,&quot;anchor&quot;],function(b,j){var k=e[j];if(k){k=k.replace(/\(mce_at\)/g,&quot;@@&quot;)}f[b]=k});if(c=g.base_uri){if(!f.protocol){f.protocol=c.protocol}if(!f.userInfo){f.userInfo=c.userInfo}if(!f.port&amp;&amp;f.host==&quot;mce_host&quot;){f.port=c.port}if(!f.host||f.host==&quot;mce_host&quot;){f.host=c.host}f.source=&quot;&quot;}},setPath:function(c){var b=this;c=/^(.*?)\/?(\w+)?$/.exec(c);b.path=c[0];b.directory=c[1];b.file=c[2];b.source=&quot;&quot;;b.getURI()},toRelative:function(b){var c=this,d;if(b===&quot;./&quot;){return b}b=new tinymce.util.URI(b,{base_uri:c});if((b.host!=&quot;mce_host&quot;&amp;&amp;c.host!=b.host&amp;&amp;b.host)||c.port!=b.port||c.protocol!=b.protocol){return b.getURI()}d=c.toRelPath(c.path,b.path);if(b.query){d+=&quot;?&quot;+b.query}if(b.anchor){d+=&quot;#&quot;+b.anchor}return d},toAbsolute:function(b,c){var b=new tinymce.util.URI(b,{base_uri:this});return b.getURI(this.host==b.host?c:0)},toRelPath:function(g,h){var c,f=0,d=&quot;&quot;,e,b;g=g.substring(0,g.lastIndexOf(&quot;/&quot;));g=g.split(&quot;/&quot;);c=h.split(&quot;/&quot;);if(g.length&gt;=c.length){for(e=0,b=g.length;e&lt;b;e++){if(e&gt;=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length&lt;c.length){for(e=0,b=c.length;e&lt;b;e++){if(e&gt;=g.length||g[e]!=c[e]){f=e+1;break}}}if(f==1){return h}for(e=0,b=g.length-(f-1);e&lt;b;e++){d+=&quot;../&quot;}for(e=f-1,b=c.length;e&lt;b;e++){if(e!=f-1){d+=&quot;/&quot;+c[e]}else{d+=c[e]}}return d},toAbsPath:function(e,f){var c,b=0,g=[],d;d=/\/$/.test(f)?&quot;/&quot;:&quot;&quot;;e=e.split(&quot;/&quot;);f=f.split(&quot;/&quot;);a(e,function(h){if(h){g.push(h)}});e=g;for(c=f.length-1,g=[];c&gt;=0;c--){if(f[c].length==0||f[c]==&quot;.&quot;){continue}if(f[c]==&quot;..&quot;){b++;continue}if(b&gt;0){b--;continue}g.push(f[c])}c=e.length-b;if(c&lt;=0){return&quot;/&quot;+g.reverse().join(&quot;/&quot;)+d}return&quot;/&quot;+e.slice(0,c).join(&quot;/&quot;)+&quot;/&quot;+g.reverse().join(&quot;/&quot;)+d},getURI:function(d){var c,b=this;if(!b.source||d){c=&quot;&quot;;if(!d){if(b.protocol){c+=b.protocol+&quot;://&quot;}if(b.userInfo){c+=b.userInfo+&quot;@&quot;}if(b.host){c+=b.host}if(b.port){c+=&quot;:&quot;+b.port}}if(b.path){c+=b.path}if(b.query){c+=&quot;?&quot;+b.query}if(b.anchor){c+=&quot;#&quot;+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create(&quot;static tinymce.util.Cookie&quot;,{getHash:function(d){var b=this.get(d),c;if(b){a(b.split(&quot;&amp;&quot;),function(e){e=e.split(&quot;=&quot;);c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h=&quot;&quot;;a(b,function(e,d){h+=(!h?&quot;&quot;:&quot;&amp;&quot;)+escape(d)+&quot;=&quot;+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+&quot;=&quot;,d;if(!h){return}d=h.indexOf(&quot;; &quot;+f);if(d==-1){d=h.indexOf(f);if(d!=0){return null}}else{d+=2}g=h.indexOf(&quot;;&quot;,d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+&quot;=&quot;+escape(b)+((g)?&quot;; expires=&quot;+g.toGMTString():&quot;&quot;)+((f)?&quot;; path=&quot;+escape(f):&quot;&quot;)+((h)?&quot;; domain=&quot;+h:&quot;&quot;)+((c)?&quot;; secure&quot;:&quot;&quot;)},remove:function(e,b){var c=new Date();c.setTime(c.getTime()-1000);this.set(e,&quot;&quot;,c,b,c)}})})();tinymce.create(&quot;static tinymce.util.JSON&quot;,{serialize:function(e){var c,a,d=tinymce.util.JSON.serialize,b;if(e==null){return&quot;null&quot;}b=typeof e;if(b==&quot;string&quot;){a=&quot;\bb\tt\nn\ff\rr\&quot;\&quot;''\\\\&quot;;return'&quot;'+e.replace(/([\u0080-\uFFFF\x00-\x1f\&quot;])/g,function(g,f){c=a.indexOf(f);if(c+1){return&quot;\\&quot;+a.charAt(c+1)}g=f.charCodeAt().toString(16);return&quot;\\u&quot;+&quot;0000&quot;.substring(g.length)+g})+'&quot;'}if(b==&quot;object&quot;){if(e.hasOwnProperty&amp;&amp;e instanceof Array){for(c=0,a=&quot;[&quot;;c&lt;e.length;c++){a+=(c&gt;0?&quot;,&quot;:&quot;&quot;)+d(e[c])}return a+&quot;]&quot;}a=&quot;{&quot;;for(c in e){a+=typeof e[c]!=&quot;function&quot;?(a.length&gt;1?',&quot;':'&quot;')+c+'&quot;:'+d(e[c]):&quot;&quot;}return a+&quot;}&quot;}return&quot;&quot;+e},parse:function(s){try{return eval(&quot;(&quot;+s+&quot;)&quot;)}catch(ex){}}});tinymce.create(&quot;static tinymce.util.XHR&quot;,{send:function(g){var a,e,b=window,h=0;g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||&quot;&quot;;function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d(&quot;Microsoft.XMLHTTP&quot;)||d(&quot;Msxml2.XMLHTTP&quot;);if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?&quot;POST&quot;:&quot;GET&quot;),g.url,g.async);if(g.content_type){a.setRequestHeader(&quot;Content-Type&quot;,g.content_type)}a.send(g.data);function f(){if(!g.async||a.readyState==4||h++&gt;10000){if(g.success&amp;&amp;h&lt;10000&amp;&amp;a.status==200){g.success.call(g.success_scope,&quot;&quot;+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h&gt;10000?&quot;TIMED_OUT&quot;:&quot;GENERAL&quot;,a,g)}}a=null}else{b.setTimeout(f,10)}}if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create(&quot;tinymce.util.JSONRequest&quot;,{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)==&quot;undefined&quot;){h={error:&quot;JSON Parse error.&quot;}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){e.call(f.error_scope||f.scope,h,g)};f.data=b.serialize({id:f.id||&quot;c&quot;+(this.count++),method:f.method,params:f.params});f.content_type=&quot;application/json&quot;;a.send(f)},&quot;static&quot;:{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(c){var e=c.each,b=c.is;var d=c.isWebKit,a=c.isIE;c.create(&quot;tinymce.dom.DOMUtils&quot;,{doc:null,root:null,files:null,pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,props:{&quot;for&quot;:&quot;htmlFor&quot;,&quot;class&quot;:&quot;className&quot;,className:&quot;className&quot;,checked:&quot;checked&quot;,disabled:&quot;disabled&quot;,maxlength:&quot;maxLength&quot;,readonly:&quot;readOnly&quot;,selected:&quot;selected&quot;,value:&quot;value&quot;,id:&quot;id&quot;,name:&quot;name&quot;,type:&quot;type&quot;},DOMUtils:function(i,g){var f=this;f.doc=i;f.win=window;f.files={};f.cssFlicker=false;f.counter=0;f.boxModel=!c.isIE||i.compatMode==&quot;CSS1Compat&quot;;f.stdMode=i.documentMode===8;this.settings=g=c.extend({keep_values:false,hex_colors:1,process_html:1},g);if(c.isIE6){try{i.execCommand(&quot;BackgroundImageCache&quot;,false,true)}catch(h){f.cssFlicker=true}}c.addUnload(f.destroy,f)},getRoot:function(){var f=this,g=f.settings;return(g&amp;&amp;f.get(g.root_element))||f.doc.body},getViewPort:function(g){var h,f;g=!g?this.win:g;h=g.document;f=this.boxModel?h.documentElement:h.body;return{x:g.pageXOffset||f.scrollLeft,y:g.pageYOffset||f.scrollTop,w:g.innerWidth||f.clientWidth,h:g.innerHeight||f.clientHeight}},getRect:function(i){var h,f=this,g;i=f.get(i);h=f.getPos(i);g=f.getSize(i);return{x:h.x,y:h.y,w:g.w,h:g.h}},getSize:function(j){var g=this,f,i;j=g.get(j);f=g.getStyle(j,&quot;width&quot;);i=g.getStyle(j,&quot;height&quot;);if(f.indexOf(&quot;px&quot;)===-1){f=0}if(i.indexOf(&quot;px&quot;)===-1){i=0}return{w:parseInt(f)||j.offsetWidth||j.clientWidth,h:parseInt(i)||j.offsetHeight||j.clientHeight}},is:function(g,f){return c.dom.Sizzle.matches(f,g.nodeType?[g]:g).length&gt;0},getParent:function(i,h,g){return this.getParents(i,h,g,false)},getParents:function(p,k,i,m){var h=this,g,j=h.settings,l=[];p=h.get(p);m=m===undefined;if(j.strict_root){i=i||h.getRoot()}if(b(k,&quot;string&quot;)){g=k;if(k===&quot;*&quot;){k=function(f){return f.nodeType==1}}else{k=function(f){return h.is(f,g)}}}while(p){if(p==i){break}if(!k||k(p)){if(m){l.push(p)}else{return p}}p=p.parentNode}return m?l:null},get:function(f){var g;if(f&amp;&amp;this.doc&amp;&amp;typeof(f)==&quot;string&quot;){g=f;f=this.doc.getElementById(f);if(f&amp;&amp;f.id!==g){return this.doc.getElementsByName(g)[1]}}return f},select:function(h,g){var f=this;return c.dom.Sizzle(h,f.get(g)||f.get(f.settings.root_element)||f.doc,[])},add:function(j,l,f,i,k){var g=this;return this.run(j,function(n){var m,h;m=b(l,&quot;string&quot;)?g.doc.createElement(l):l;g.setAttribs(m,f);if(i){if(i.nodeType){m.appendChild(i)}else{g.setHTML(m,i)}}return !k?n.appendChild(m):m})},create:function(i,f,g){return this.add(this.doc.createElement(i),i,f,g,1)},createHTML:function(m,f,j){var l=&quot;&quot;,i=this,g;l+=&quot;&lt;&quot;+m;for(g in f){if(f.hasOwnProperty(g)){l+=&quot; &quot;+g+'=&quot;'+i.encode(f[g])+'&quot;'}}if(c.is(j)){return l+&quot;&gt;&quot;+j+&quot;&lt;/&quot;+m+&quot;&gt;&quot;}return l+&quot; /&gt;&quot;},remove:function(h,f){var g=this;return this.run(h,function(m){var l,k,j;l=m.parentNode;if(!l){return null}if(f){for(j=m.childNodes.length-1;j&gt;=0;j--){g.insertAfter(m.childNodes[j],m)}}if(g.fixPsuedoLeaks){l=m.cloneNode(true);f=&quot;IELeakGarbageBin&quot;;k=g.get(f)||g.add(g.doc.body,&quot;div&quot;,{id:f,style:&quot;display:none&quot;});k.appendChild(m);k.innerHTML=&quot;&quot;;return l}return l.removeChild(m)})},setStyle:function(i,f,g){var h=this;return h.run(i,function(l){var k,j;k=l.style;f=f.replace(/-(\D)/g,function(n,m){return m.toUpperCase()});if(h.pixelStyles.test(f)&amp;&amp;(c.is(g,&quot;number&quot;)||/^[\-0-9\.]+$/.test(g))){g+=&quot;px&quot;}switch(f){case&quot;opacity&quot;:if(a){k.filter=g===&quot;&quot;?&quot;&quot;:&quot;alpha(opacity=&quot;+(g*100)+&quot;)&quot;;if(!i.currentStyle||!i.currentStyle.hasLayout){k.display=&quot;inline-block&quot;}}k[f]=k[&quot;-moz-opacity&quot;]=k[&quot;-khtml-opacity&quot;]=g||&quot;&quot;;break;case&quot;float&quot;:a?k.styleFloat=g:k.cssFloat=g;break;default:k[f]=g||&quot;&quot;}if(h.settings.update_styles){h.setAttrib(l,&quot;mce_style&quot;)}})},getStyle:function(i,f,h){i=this.get(i);if(!i){return false}if(this.doc.defaultView&amp;&amp;h){f=f.replace(/[A-Z]/g,function(j){return&quot;-&quot;+j});try{return this.doc.defaultView.getComputedStyle(i,null).getPropertyValue(f)}catch(g){return null}}f=f.replace(/-(\D)/g,function(k,j){return j.toUpperCase()});if(f==&quot;float&quot;){f=a?&quot;styleFloat&quot;:&quot;cssFloat&quot;}if(i.currentStyle&amp;&amp;h){return i.currentStyle[f]}return i.style[f]},setStyles:function(i,j){var g=this,h=g.settings,f;f=h.update_styles;h.update_styles=0;e(j,function(k,l){g.setStyle(i,l,k)});h.update_styles=f;if(h.update_styles){g.setAttrib(i,h.cssText)}},setAttrib:function(h,i,f){var g=this;if(!h||!i){return}if(g.settings.strict){i=i.toLowerCase()}return this.run(h,function(k){var j=g.settings;switch(i){case&quot;style&quot;:if(!b(f,&quot;string&quot;)){e(f,function(l,m){g.setStyle(k,m,l)});return}if(j.keep_values){if(f&amp;&amp;!g._isRes(f)){k.setAttribute(&quot;mce_style&quot;,f,2)}else{k.removeAttribute(&quot;mce_style&quot;,2)}}k.style.cssText=f;break;case&quot;class&quot;:k.className=f||&quot;&quot;;break;case&quot;src&quot;:case&quot;href&quot;:if(j.keep_values){if(j.url_converter){f=j.url_converter.call(j.url_converter_scope||g,f,i,k)}g.setAttrib(k,&quot;mce_&quot;+i,f,2)}break;case&quot;shape&quot;:k.setAttribute(&quot;mce_style&quot;,f);break}if(b(f)&amp;&amp;f!==null&amp;&amp;f.length!==0){k.setAttribute(i,&quot;&quot;+f,2)}else{k.removeAttribute(i,2)}})},setAttribs:function(g,h){var f=this;return this.run(g,function(i){e(h,function(j,k){f.setAttrib(i,k,j)})})},getAttrib:function(i,j,h){var f,g=this;i=g.get(i);if(!i||i.nodeType!==1){return false}if(!b(h)){h=&quot;&quot;}if(/^(src|href|style|coords|shape)$/.test(j)){f=i.getAttribute(&quot;mce_&quot;+j);if(f){return f}}if(a&amp;&amp;g.props[j]){f=i[g.props[j]];f=f&amp;&amp;f.nodeValue?f.nodeValue:f}if(!f){f=i.getAttribute(j,2)}if(j===&quot;style&quot;){f=f||i.style.cssText;if(f){f=g.serializeStyle(g.parseStyle(f));if(g.settings.keep_values&amp;&amp;!g._isRes(f)){i.setAttribute(&quot;mce_style&quot;,f)}}}if(d&amp;&amp;j===&quot;class&quot;&amp;&amp;f){f=f.replace(/(apple|webkit)\-[a-z\-]+/gi,&quot;&quot;)}if(a){switch(j){case&quot;rowspan&quot;:case&quot;colspan&quot;:if(f===1){f=&quot;&quot;}break;case&quot;size&quot;:if(f===&quot;+0&quot;||f===20||f===0){f=&quot;&quot;}break;case&quot;width&quot;:case&quot;height&quot;:case&quot;vspace&quot;:case&quot;checked&quot;:case&quot;disabled&quot;:case&quot;readonly&quot;:if(f===0){f=&quot;&quot;}break;case&quot;hspace&quot;:if(f===-1){f=&quot;&quot;}break;case&quot;maxlength&quot;:case&quot;tabindex&quot;:if(f===32768||f===2147483647||f===&quot;32768&quot;){f=&quot;&quot;}break;case&quot;multiple&quot;:case&quot;compact&quot;:case&quot;noshade&quot;:case&quot;nowrap&quot;:if(f===65535){return j}return h;case&quot;shape&quot;:f=f.toLowerCase();break;default:if(j.indexOf(&quot;on&quot;)===0&amp;&amp;f){f=(&quot;&quot;+f).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,&quot;$1&quot;)}}}return(f!==undefined&amp;&amp;f!==null&amp;&amp;f!==&quot;&quot;)?&quot;&quot;+f:h},getPos:function(l){var g=this,f=0,k=0,i,j=g.doc,h;l=g.get(l);if(l&amp;&amp;a&amp;&amp;!g.stdMode){l=l.getBoundingClientRect();i=g.boxModel?j.documentElement:j.body;f=g.getStyle(g.select(&quot;html&quot;)[0],&quot;borderWidth&quot;);f=(f==&quot;medium&quot;||g.boxModel&amp;&amp;!g.isIE6)&amp;&amp;2||f;l.top+=g.win.self!=g.win.top?2:0;return{x:l.left+i.scrollLeft-f,y:l.top+i.scrollTop-f}}h=l;while(h){f+=h.offsetLeft||0;k+=h.offsetTop||0;h=h.offsetParent}h=l;while(h){if(!/^table-row|inline.*/i.test(g.getStyle(h,&quot;display&quot;,1))){f-=h.scrollLeft||0;k-=h.scrollTop||0}h=h.parentNode;if(!h.nodeType||h.nodeType==9||h.nodeName.toLowerCase()==&quot;body&quot;){break}}return{x:f,y:k}},parseStyle:function(h){var i=this,j=i.settings,k={};if(!h){return k}function f(w,q,v){var o,u,m,n;o=k[w+&quot;-top&quot;+q];if(!o){return}u=k[w+&quot;-right&quot;+q];if(o!=u){return}m=k[w+&quot;-bottom&quot;+q];if(u!=m){return}n=k[w+&quot;-left&quot;+q];if(m!=n){return}k[v]=n;delete k[w+&quot;-top&quot;+q];delete k[w+&quot;-right&quot;+q];delete k[w+&quot;-bottom&quot;+q];delete k[w+&quot;-left&quot;+q]}function g(n,m,l,p){var o;o=k[m];if(!o){return}o=k[l];if(!o){return}o=k[p];if(!o){return}k[n]=k[m]+&quot; &quot;+k[l]+&quot; &quot;+k[p];delete k[m];delete k[l];delete k[p]}h=h.replace(/&amp;(#?[a-z0-9]+);/g,&quot;&amp;$1_MCE_SEMI_&quot;);e(h.split(&quot;;&quot;),function(m){var l,n=[];if(m){m=m.replace(/_MCE_SEMI_/g,&quot;;&quot;);m=m.replace(/url\([^\)]+\)/g,function(o){n.push(o);return&quot;url(&quot;+n.length+&quot;)&quot;});m=m.split(&quot;:&quot;);l=c.trim(m[1]);l=l.replace(/url\(([^\)]+)\)/g,function(p,o){return n[parseInt(o)-1]});l=l.replace(/rgb\([^\)]+\)/g,function(o){return i.toHex(o)});if(j.url_converter){l=l.replace(/url\([\'\&quot;]?([^\)\'\&quot;]+)[\'\&quot;]?\)/g,function(o,p){return&quot;url(&quot;+j.url_converter.call(j.url_converter_scope||i,i.decode(p),&quot;style&quot;,null)+&quot;)&quot;})}k[c.trim(m[0]).toLowerCase()]=l}});f(&quot;border&quot;,&quot;&quot;,&quot;border&quot;);f(&quot;border&quot;,&quot;-width&quot;,&quot;border-width&quot;);f(&quot;border&quot;,&quot;-color&quot;,&quot;border-color&quot;);f(&quot;border&quot;,&quot;-style&quot;,&quot;border-style&quot;);f(&quot;padding&quot;,&quot;&quot;,&quot;padding&quot;);f(&quot;margin&quot;,&quot;&quot;,&quot;margin&quot;);g(&quot;border&quot;,&quot;border-width&quot;,&quot;border-style&quot;,&quot;border-color&quot;);if(a){if(k.border==&quot;medium none&quot;){k.border=&quot;&quot;}}return k},serializeStyle:function(g){var f=&quot;&quot;;e(g,function(i,h){if(h&amp;&amp;i){if(c.isGecko&amp;&amp;h.indexOf(&quot;-moz-&quot;)===0){return}switch(h){case&quot;color&quot;:case&quot;background-color&quot;:i=i.toLowerCase();break}f+=(f?&quot; &quot;:&quot;&quot;)+h+&quot;: &quot;+i+&quot;;&quot;}});return f},loadCSS:function(f){var g=this,h=g.doc;if(!f){f=&quot;&quot;}e(f.split(&quot;,&quot;),function(i){if(g.files[i]){return}g.files[i]=true;g.add(g.select(&quot;head&quot;)[0],&quot;link&quot;,{rel:&quot;stylesheet&quot;,href:c._addVer(i)})})},addClass:function(f,g){return this.run(f,function(h){var i;if(!g){return 0}if(this.hasClass(h,g)){return h.className}i=this.removeClass(h,g);return h.className=(i!=&quot;&quot;?(i+&quot; &quot;):&quot;&quot;)+g})},removeClass:function(h,i){var f=this,g;return f.run(h,function(k){var j;if(f.hasClass(k,i)){if(!g){g=new RegExp(&quot;(^|\\s+)&quot;+i+&quot;(\\s+|$)&quot;,&quot;g&quot;)}j=k.className.replace(g,&quot; &quot;);return k.className=c.trim(j!=&quot; &quot;?j:&quot;&quot;)}return k.className})},hasClass:function(g,f){g=this.get(g);if(!g||!f){return false}return(&quot; &quot;+g.className+&quot; &quot;).indexOf(&quot; &quot;+f+&quot; &quot;)!==-1},show:function(f){return this.setStyle(f,&quot;display&quot;,&quot;block&quot;)},hide:function(f){return this.setStyle(f,&quot;display&quot;,&quot;none&quot;)},isHidden:function(f){f=this.get(f);return !f||f.style.display==&quot;none&quot;||this.getStyle(f,&quot;display&quot;)==&quot;none&quot;},uniqueId:function(f){return(!f?&quot;mce_&quot;:f)+(this.counter++)},setHTML:function(i,g){var f=this;return this.run(i,function(m){var h,k,j,q,l,h;g=f.processHTML(g);if(a){function o(){try{m.innerHTML=&quot;&lt;br /&gt;&quot;+g;m.removeChild(m.firstChild)}catch(n){while(m.firstChild){m.firstChild.removeNode()}h=f.create(&quot;div&quot;);h.innerHTML=&quot;&lt;br /&gt;&quot;+g;e(h.childNodes,function(r,p){if(p){m.appendChild(r)}})}}if(f.settings.fix_ie_paragraphs){g=g.replace(/&lt;p&gt;&lt;\/p&gt;|&lt;p([^&gt;]+)&gt;&lt;\/p&gt;|&lt;p[^\/+]\/&gt;/gi,'&lt;p$1 mce_keep=&quot;true&quot;&gt;&amp;nbsp;&lt;/p&gt;')}o();if(f.settings.fix_ie_paragraphs){j=m.getElementsByTagName(&quot;p&quot;);for(k=j.length-1,h=0;k&gt;=0;k--){q=j[k];if(!q.hasChildNodes()){if(!q.mce_keep){h=1;break}q.removeAttribute(&quot;mce_keep&quot;)}}}if(h){g=g.replace(/&lt;p ([^&gt;]+)&gt;|&lt;p&gt;/g,'&lt;div $1 mce_tmp=&quot;1&quot;&gt;');g=g.replace(/&lt;\/p&gt;/g,&quot;&lt;/div&gt;&quot;);o();if(f.settings.fix_ie_paragraphs){j=m.getElementsByTagName(&quot;DIV&quot;);for(k=j.length-1;k&gt;=0;k--){q=j[k];if(q.mce_tmp){l=f.doc.createElement(&quot;p&quot;);q.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(p,n){var r;if(n!==&quot;mce_tmp&quot;){r=q.getAttribute(n);if(!r&amp;&amp;n===&quot;class&quot;){r=q.className}l.setAttribute(n,r)}});for(h=0;h&lt;q.childNodes.length;h++){l.appendChild(q.childNodes[h].cloneNode(true))}q.swapNode(l)}}}}}else{m.innerHTML=g}return g})},processHTML:function(j){var g=this,i=g.settings;if(!i.process_html){return j}if(c.isGecko){j=j.replace(/&lt;(\/?)strong&gt;|&lt;strong( [^&gt;]+)&gt;/gi,&quot;&lt;$1b$2&gt;&quot;);j=j.replace(/&lt;(\/?)em&gt;|&lt;em( [^&gt;]+)&gt;/gi,&quot;&lt;$1i$2&gt;&quot;)}else{if(a){j=j.replace(/&amp;apos;/g,&quot;&amp;#39;&quot;);j=j.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\&quot;\']?(false|0)[\&quot;\']?/gi,&quot;&quot;)}}j=j.replace(/&lt;a( )([^&gt;]+)\/&gt;|&lt;a\/&gt;/gi,&quot;&lt;a$1$2&gt;&lt;/a&gt;&quot;);if(i.keep_values){if(/&lt;script|style/.test(j)){function f(h){h=h.replace(/(&lt;!--\[CDATA\[|\]\]--&gt;)/g,&quot;\n&quot;);h=h.replace(/^[\r\n]*|[\r\n]*$/g,&quot;&quot;);h=h.replace(/^\s*(\/\/\s*&lt;!--|\/\/\s*&lt;!\[CDATA\[|&lt;!--|&lt;!\[CDATA\[)[\r\n]*/g,&quot;&quot;);h=h.replace(/\s*(\/\/\s*\]\]&gt;|\/\/\s*--&gt;|\]\]&gt;|--&gt;|\]\]--&gt;)\s*$/g,&quot;&quot;);return h}j=j.replace(/&lt;script([^&gt;]+|)&gt;([\s\S]*?)&lt;\/script&gt;/g,function(l,k,h){h=f(h);if(!k){k=' type=&quot;text/javascript&quot;'}if(h){h=&quot;&lt;!--\n&quot;+h+&quot;\n// --&gt;&quot;}return&quot;&lt;mce:script&quot;+k+&quot;&gt;&quot;+h+&quot;&lt;/mce:script&gt;&quot;});j=j.replace(/&lt;style([^&gt;]+|)&gt;([\s\S]*?)&lt;\/style&gt;/g,function(l,k,h){h=f(h);return&quot;&lt;mce:style&quot;+k+&quot;&gt;&lt;!--\n&quot;+h+&quot;\n--&gt;&lt;/mce:style&gt;&lt;style&quot;+k+' mce_bogus=&quot;1&quot;&gt;'+h+&quot;&lt;/style&gt;&quot;})}j=j.replace(/&lt;!\[CDATA\[([\s\S]+)\]\]&gt;/g,&quot;&lt;!--[CDATA[$1]]--&gt;&quot;);j=j.replace(/&lt;([\w:]+) [^&gt;]*(src|href|style|shape|coords)[^&gt;]*&gt;/gi,function(h,l){function k(o,n,q){var p=q;if(h.indexOf(&quot;mce_&quot;+n)!=-1){return o}if(n==&quot;style&quot;){if(g._isRes(q)){return o}if(i.hex_colors){p=p.replace(/rgb\([^\)]+\)/g,function(m){return g.toHex(m)})}if(i.url_converter){p=p.replace(/url\([\'\&quot;]?([^\)\'\&quot;]+)\)/g,function(m,r){return&quot;url(&quot;+g.encode(i.url_converter.call(i.url_converter_scope||g,g.decode(r),n,l))+&quot;)&quot;})}}else{if(n!=&quot;coords&quot;&amp;&amp;n!=&quot;shape&quot;){if(i.url_converter){p=g.encode(i.url_converter.call(i.url_converter_scope||g,g.decode(q),n,l))}}}return&quot; &quot;+n+'=&quot;'+q+'&quot; mce_'+n+'=&quot;'+p+'&quot;'}h=h.replace(/ (src|href|style|coords|shape)=[\&quot;]([^\&quot;]+)[\&quot;]/gi,k);h=h.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,k);return h.replace(/ (src|href|style|coords|shape)=([^\s\&quot;\'&gt;]+)/gi,k)})}return j},getOuterHTML:function(f){var g;f=this.get(f);if(!f){return null}if(f.outerHTML!==undefined){return f.outerHTML}g=(f.ownerDocument||this.doc).createElement(&quot;body&quot;);g.appendChild(f.cloneNode(true));return g.innerHTML},setOuterHTML:function(i,g,j){var f=this;return this.run(i,function(h){var l,k;h=f.get(h);j=j||h.ownerDocument||f.doc;if(a&amp;&amp;h.nodeType==1){h.outerHTML=g}else{k=j.createElement(&quot;body&quot;);k.innerHTML=g;l=k.lastChild;while(l){f.insertAfter(l.cloneNode(true),h);l=l.previousSibling}f.remove(h)}})},decode:function(g){var h,i,f;if(/&amp;[^;]+;/.test(g)){h=this.doc.createElement(&quot;div&quot;);h.innerHTML=g;i=h.firstChild;f=&quot;&quot;;if(i){do{f+=i.nodeValue}while(i.nextSibling)}return f||g}return g},encode:function(f){return f?(&quot;&quot;+f).replace(/[&lt;&gt;&amp;\&quot;]/g,function(h,g){switch(h){case&quot;&amp;&quot;:return&quot;&amp;amp;&quot;;case'&quot;':return&quot;&amp;quot;&quot;;case&quot;&lt;&quot;:return&quot;&amp;lt;&quot;;case&quot;&gt;&quot;:return&quot;&amp;gt;&quot;}return h}):f},insertAfter:function(h,g){var f=this;g=f.get(g);return this.run(h,function(k){var j,i;j=g.parentNode;i=g.nextSibling;if(i){j.insertBefore(k,i)}else{j.appendChild(k)}return k})},isBlock:function(f){if(f.nodeType&amp;&amp;f.nodeType!==1){return false}f=f.nodeName||f;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TR|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(f)},replace:function(i,h,f){var g=this;if(b(h,&quot;array&quot;)){i=i.cloneNode(true)}return g.run(h,function(j){if(f){e(j.childNodes,function(k){i.appendChild(k.cloneNode(true))})}if(g.fixPsuedoLeaks&amp;&amp;j.nodeType===1){j.parentNode.insertBefore(i,j);g.remove(j);return i}return j.parentNode.replaceChild(i,j)})},findCommonAncestor:function(h,f){var i=h,g;while(i){g=f;while(g&amp;&amp;i!=g){g=g.parentNode}if(i==g){break}i=i.parentNode}if(!i&amp;&amp;h.ownerDocument){return h.ownerDocument.documentElement}return i},toHex:function(f){var h=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(f);function g(i){i=parseInt(i).toString(16);return i.length&gt;1?i:&quot;0&quot;+i}if(h){f=&quot;#&quot;+g(h[1])+g(h[2])+g(h[3]);return f}return f},getClasses:function(){var l=this,g=[],k,m={},n=l.settings.class_filter,j;if(l.classes){return l.classes}function o(f){e(f.imports,function(i){o(i)});e(f.cssRules||f.rules,function(i){switch(i.type||1){case 1:if(i.selectorText){e(i.selectorText.split(&quot;,&quot;),function(p){p=p.replace(/^\s*|\s*$|^\s\./g,&quot;&quot;);if(/\.mce/.test(p)||!/\.[\w\-]+$/.test(p)){return}j=p;p=p.replace(/.*\.([a-z0-9_\-]+).*/i,&quot;$1&quot;);if(n&amp;&amp;!(p=n(p,j))){return}if(!m[p]){g.push({&quot;class&quot;:p});m[p]=1}})}break;case 3:o(i.styleSheet);break}})}try{e(l.doc.styleSheets,o)}catch(h){}if(g.length&gt;0){l.classes=g}return g},run:function(j,i,h){var g=this,k;if(g.doc&amp;&amp;typeof(j)===&quot;string&quot;){j=g.get(j)}if(!j){return false}h=h||this;if(!j.nodeType&amp;&amp;(j.length||j.length===0)){k=[];e(j,function(l,f){if(l){if(typeof(l)==&quot;string&quot;){l=g.doc.getElementById(l)}k.push(i.call(h,l,f))}});return k}return i.call(h,j)},getAttribs:function(g){var f;g=this.get(g);if(!g){return[]}if(a){f=[];if(g.nodeName==&quot;OBJECT&quot;){return g.attributes}g.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(i,h){f.push({specified:1,nodeName:h})});return f}return g.attributes},destroy:function(g){var f=this;f.win=f.doc=f.root=null;if(!g){c.removeUnload(f.destroy)}},createRng:function(){var f=this.doc;return f.createRange?f.createRange():new c.dom.Range(this)},split:function(k,j,n){var o=this,f=o.createRng(),l,i,m;function g(q,p){q=q[p];if(q&amp;&amp;q[p]&amp;&amp;q[p].nodeType==1&amp;&amp;h(q[p])){o.remove(q[p])}}function h(p){p=o.getOuterHTML(p);p=p.replace(/&lt;(img|hr|table)/gi,&quot;-&quot;);p=p.replace(/&lt;[^&gt;]+&gt;/g,&quot;&quot;);return p.replace(/[ \t\r\n]+|&amp;nbsp;|&amp;#160;/g,&quot;&quot;)==&quot;&quot;}if(k&amp;&amp;j){f.setStartBefore(k);f.setEndBefore(j);l=f.extractContents();f=o.createRng();f.setStartAfter(j);f.setEndAfter(k);i=f.extractContents();m=k.parentNode;g(l,&quot;lastChild&quot;);if(!h(l)){m.insertBefore(l,k)}if(n){m.replaceChild(n,j)}else{m.insertBefore(j,k)}g(i,&quot;firstChild&quot;);if(!h(i)){m.insertBefore(i,k)}o.remove(k);return n||j}},_isRes:function(f){return/^(top|left|bottom|right|width|height)/i.test(f)||/;\s*(top|left|bottom|right|width|height)/i.test(f)}});c.DOM=new c.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(f){var h=0,c=1,e=2,d=tinymce.extend;function g(m,k){var j,l;if(m.parentNode!=k){return -1}for(l=k.firstChild,j=0;l!=m;l=l.nextSibling){j++}return j}function b(k){var j=0;while(k.previousSibling){j++;k=k.previousSibling}return j}function i(j,k){var l;if(j.nodeType==3){return j}if(k&lt;0){return j}l=j.firstChild;while(l!=null&amp;&amp;k&gt;0){--k;l=l.nextSibling}if(l!=null){return l}return j}function a(k){var j=k.doc;d(this,{dom:k,startContainer:j,startOffset:0,endContainer:j,endOffset:0,collapsed:true,commonAncestorContainer:j,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3})}d(a.prototype,{setStart:function(k,j){this._setEndPoint(true,k,j)},setEnd:function(k,j){this._setEndPoint(false,k,j)},setStartBefore:function(j){this.setStart(j.parentNode,b(j))},setStartAfter:function(j){this.setStart(j.parentNode,b(j)+1)},setEndBefore:function(j){this.setEnd(j.parentNode,b(j))},setEndAfter:function(j){this.setEnd(j.parentNode,b(j)+1)},collapse:function(k){var j=this;if(k){j.endContainer=j.startContainer;j.endOffset=j.startOffset}else{j.startContainer=j.endContainer;j.startOffset=j.endOffset}j.collapsed=true},selectNode:function(j){this.setStartBefore(j);this.setEndAfter(j)},selectNodeContents:function(j){this.setStart(j,0);this.setEnd(j,j.nodeType===1?j.childNodes.length:j.nodeValue.length)},compareBoundaryPoints:function(m,n){var l=this,p=l.startContainer,o=l.startOffset,k=l.endContainer,j=l.endOffset;if(m===0){return l._compareBoundaryPoints(p,o,p,o)}if(m===1){return l._compareBoundaryPoints(p,o,k,j)}if(m===2){return l._compareBoundaryPoints(k,j,k,j)}if(m===3){return l._compareBoundaryPoints(k,j,p,o)}},deleteContents:function(){this._traverse(e)},extractContents:function(){return this._traverse(h)},cloneContents:function(){return this._traverse(c)},insertNode:function(m){var j=this,l,k;if(m.nodeType===3||m.nodeType===4){l=j.startContainer.splitText(j.startOffset);j.startContainer.parentNode.insertBefore(m,l)}else{if(j.startContainer.childNodes.length&gt;0){k=j.startContainer.childNodes[j.startOffset]}j.startContainer.insertBefore(m,k)}},surroundContents:function(l){var j=this,k=j.extractContents();j.insertNode(l);l.appendChild(k);j.selectNode(l)},cloneRange:function(){var j=this;return d(new a(j.dom),{startContainer:j.startContainer,startOffset:j.startOffset,endContainer:j.endContainer,endOffset:j.endOffset,collapsed:j.collapsed,commonAncestorContainer:j.commonAncestorContainer})},_isCollapsed:function(){return(this.startContainer==this.endContainer&amp;&amp;this.startOffset==this.endOffset)},_compareBoundaryPoints:function(m,p,k,o){var q,l,j,r,t,s;if(m==k){if(p==o){return 0}else{if(p&lt;o){return -1}else{return 1}}}q=k;while(q&amp;&amp;q.parentNode!=m){q=q.parentNode}if(q){l=0;j=m.firstChild;while(j!=q&amp;&amp;l&lt;p){l++;j=j.nextSibling}if(p&lt;=l){return -1}else{return 1}}q=m;while(q&amp;&amp;q.parentNode!=k){q=q.parentNode}if(q){l=0;j=k.firstChild;while(j!=q&amp;&amp;l&lt;o){l++;j=j.nextSibling}if(l&lt;o){return -1}else{return 1}}r=this.dom.findCommonAncestor(m,k);t=m;while(t&amp;&amp;t.parentNode!=r){t=t.parentNode}if(!t){t=r}s=k;while(s&amp;&amp;s.parentNode!=r){s=s.parentNode}if(!s){s=r}if(t==s){return 0}j=r.firstChild;while(j){if(j==t){return -1}if(j==s){return 1}j=j.nextSibling}},_setEndPoint:function(k,q,p){var l=this,j,m;if(k){l.startContainer=q;l.startOffset=p}else{l.endContainer=q;l.endOffset=p}j=l.endContainer;while(j.parentNode){j=j.parentNode}m=l.startContainer;while(m.parentNode){m=m.parentNode}if(m!=j){l.collapse(k)}else{if(l._compareBoundaryPoints(l.startContainer,l.startOffset,l.endContainer,l.endOffset)&gt;0){l.collapse(k)}}l.collapsed=l._isCollapsed();l.commonAncestorContainer=l.dom.findCommonAncestor(l.startContainer,l.endContainer)},_traverse:function(r){var s=this,q,m=0,v=0,k,o,l,n,j,u;if(s.startContainer==s.endContainer){return s._traverseSameContainer(r)}for(q=s.endContainer,k=q.parentNode;k!=null;q=k,k=k.parentNode){if(k==s.startContainer){return s._traverseCommonStartContainer(q,r)}++m}for(q=s.startContainer,k=q.parentNode;k!=null;q=k,k=k.parentNode){if(k==s.endContainer){return s._traverseCommonEndContainer(q,r)}++v}o=v-m;l=s.startContainer;while(o&gt;0){l=l.parentNode;o--}n=s.endContainer;while(o&lt;0){n=n.parentNode;o++}for(j=l.parentNode,u=n.parentNode;j!=u;j=j.parentNode,u=u.parentNode){l=j;n=u}return s._traverseCommonAncestors(l,n,r)},_traverseSameContainer:function(o){var r=this,q,u,j,k,l,p,m;if(o!=e){q=r.dom.doc.createDocumentFragment()}if(r.startOffset==r.endOffset){return q}if(r.startContainer.nodeType==3){u=r.startContainer.nodeValue;j=u.substring(r.startOffset,r.endOffset);if(o!=c){r.startContainer.deleteData(r.startOffset,r.endOffset-r.startOffset);r.collapse(true)}if(o==e){return null}q.appendChild(r.dom.doc.createTextNode(j));return q}k=i(r.startContainer,r.startOffset);l=r.endOffset-r.startOffset;while(l&gt;0){p=k.nextSibling;m=r._traverseFullySelected(k,o);if(q){q.appendChild(m)}--l;k=p}if(o!=c){r.collapse(true)}return q},_traverseCommonStartContainer:function(j,p){var s=this,r,k,l,m,q,o;if(p!=e){r=s.dom.doc.createDocumentFragment()}k=s._traverseRightBoundary(j,p);if(r){r.appendChild(k)}l=g(j,s.startContainer);m=l-s.startOffset;if(m&lt;=0){if(p!=c){s.setEndBefore(j);s.collapse(false)}return r}k=j.previousSibling;while(m&gt;0){q=k.previousSibling;o=s._traverseFullySelected(k,p);if(r){r.insertBefore(o,r.firstChild)}--m;k=q}if(p!=c){s.setEndBefore(j);s.collapse(false)}return r},_traverseCommonEndContainer:function(m,p){var s=this,r,o,j,k,q,l;if(p!=e){r=s.dom.doc.createDocumentFragment()}j=s._traverseLeftBoundary(m,p);if(r){r.appendChild(j)}o=g(m,s.endContainer);++o;k=s.endOffset-o;j=m.nextSibling;while(k&gt;0){q=j.nextSibling;l=s._traverseFullySelected(j,p);if(r){r.appendChild(l)}--k;j=q}if(p!=c){s.setStartAfter(m);s.collapse(true)}return r},_traverseCommonAncestors:function(p,j,s){var w=this,l,v,o,q,r,k,u,m;if(s!=e){v=w.dom.doc.createDocumentFragment()}l=w._traverseLeftBoundary(p,s);if(v){v.appendChild(l)}o=p.parentNode;q=g(p,o);r=g(j,o);++q;k=r-q;u=p.nextSibling;while(k&gt;0){m=u.nextSibling;l=w._traverseFullySelected(u,s);if(v){v.appendChild(l)}u=m;--k}l=w._traverseRightBoundary(j,s);if(v){v.appendChild(l)}if(s!=c){w.setStartAfter(p);w.collapse(true)}return v},_traverseRightBoundary:function(p,q){var s=this,l=i(s.endContainer,s.endOffset-1),r,o,n,j,k;var m=l!=s.endContainer;if(l==p){return s._traverseNode(l,m,false,q)}r=l.parentNode;o=s._traverseNode(r,false,false,q);while(r!=null){while(l!=null){n=l.previousSibling;j=s._traverseNode(l,m,false,q);if(q!=e){o.insertBefore(j,o.firstChild)}m=true;l=n}if(r==p){return o}l=r.previousSibling;r=r.parentNode;k=s._traverseNode(r,false,false,q);if(q!=e){k.appendChild(o)}o=k}return null},_traverseLeftBoundary:function(p,q){var s=this,m=i(s.startContainer,s.startOffset);var n=m!=s.startContainer,r,o,l,j,k;if(m==p){return s._traverseNode(m,n,true,q)}r=m.parentNode;o=s._traverseNode(r,false,true,q);while(r!=null){while(m!=null){l=m.nextSibling;j=s._traverseNode(m,n,true,q);if(q!=e){o.appendChild(j)}n=true;m=l}if(r==p){return o}m=r.nextSibling;r=r.parentNode;k=s._traverseNode(r,false,true,q);if(q!=e){k.appendChild(o)}o=k}return null},_traverseNode:function(j,o,r,s){var u=this,m,l,p,k,q;if(o){return u._traverseFullySelected(j,s)}if(j.nodeType==3){m=j.nodeValue;if(r){k=u.startOffset;l=m.substring(k);p=m.substring(0,k)}else{k=u.endOffset;l=m.substring(0,k);p=m.substring(k)}if(s!=c){j.nodeValue=p}if(s==e){return null}q=j.cloneNode(false);q.nodeValue=l;return q}if(s==e){return null}return j.cloneNode(false)},_traverseFullySelected:function(l,k){var j=this;if(k!=e){return k==c?l.cloneNode(true):l}l.parentNode.removeChild(l);return null}});f.Range=a})(tinymce.dom);(function(){function a(c){var b=this;function d(){var k=c.dom,j=c.getRng(),e=k.createRng(),g={},f={};if(j.item){e.setStartBefore(j.item(0));e.setEndAfter(j.item(0));return e}function h(q,p,o){var m,l,n;m=q.duplicate();m.collapse(p);element=m.parentElement();if(element.currentStyle.display==&quot;block&quot;){m=q.duplicate();l=q.duplicate();if(p){m.moveStart(&quot;character&quot;,1)}else{m.moveEnd(&quot;character&quot;,-1)}if(m.text!=l.text){m=l}m.collapse(p);element=m.parentElement()}o.parent=element;o.range=m}function i(r){var o=r.range,p,n,m,q,l=0;r.offset=0;r.parent=o.parentElement();o.pasteHTML('&lt;span id=&quot;_mce&quot;&gt;&lt;/span&gt;');m=k.get(&quot;_mce&quot;);n=r.parent.childNodes;for(p=0;p&lt;n.length;p++){if(n[p]==m){r.index=l;break}if(p&gt;0&amp;&amp;(n[p].nodeType!=3||n[p-1].nodeType!=3)){l++}}q=m.previousSibling;if(q){if(q.nodeType===3){do{r.offset+=q.nodeValue.length}while((q=q.previousSibling)&amp;&amp;q.nodeType==3)}else{r.index++}}k.remove(m);return r}h(j,true,g);h(j,false,f);i(g);i(f);g.parent.normalize();f.parent.normalize();e.setStart(g.parent.childNodes[g.index],g.offset);e.setEnd(f.parent.childNodes[f.index],f.offset);b.addRange(e);return e}this.addRange=function(g){var j,i,h,e=c.dom.doc.body;if(g.startContainer.nodeType==1){j=e.createControlRange();j.addElement(g.startContainer.childNodes[g.startOffset]);return}function f(p){var m,n,l,o;m=p?g.startContainer:g.endContainer;n=p?g.startOffset:g.endOffset;m.nodeValue=m.nodeValue.substring(0,n)+&quot;\uFEFF&quot;+m.nodeValue.substring(n);l=e.createTextRange();l.moveToElementText(m.parentNode);o=l.text.indexOf(&quot;\uFEFF&quot;);m.nodeValue=m.nodeValue.replace(/\uFEFF/,&quot;&quot;);if(p){i=o}else{h=o}}function k(n){var l,m=n?g.startContainer:g.endContainer;l=e.createTextRange();l.moveToElementText(m.parentNode);l.collapse(true);l.move(&quot;character&quot;,n?i:h);if(n){j.setEndPoint(&quot;StartToStart&quot;,l)}else{j.setEndPoint(&quot;EndToStart&quot;,l)}}j=e.createTextRange();f(true);f(false);k(true);k(false);j.select()};this.getRangeAt=function(){return d()}}tinymce.dom.TridentSelection=a})();(function(){var l=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['&quot;][^'&quot;]*['&quot;]|[^[\]'&quot;]+)+\]|\\.|[^ &gt;+~,(\[\\]+)+|[&gt;+~])(\s*,\s*)?/g,m=0,o=Object.prototype.toString,f=Array.prototype.splice,r=Array.prototype.push,g=Array.prototype.sort;var b=function(F,v,C,x){C=C||[];var e=v=v||document;if(v.nodeType!==1&amp;&amp;v.nodeType!==9){return[]}if(!F||typeof F!==&quot;string&quot;){return C}var D=[],E,A,I,H,B,u,t=true,y=c(v);l.lastIndex=0;while((E=l.exec(F))!==null){D.push(E[1]);if(E[2]){u=RegExp.rightContext;break}}if(D.length&gt;1&amp;&amp;h.exec(F)){if(D.length===2&amp;&amp;i.relative[D[0]]){A=p(D[0]+D[1],v)}else{A=i.relative[D[0]]?[v]:b(D.shift(),v);while(D.length){F=D.shift();if(i.relative[F]){F+=D.shift()}A=p(F,A)}}}else{if(!x&amp;&amp;D.length&gt;1&amp;&amp;v.nodeType===9&amp;&amp;!y&amp;&amp;i.match.ID.test(D[0])&amp;&amp;!i.match.ID.test(D[D.length-1])){var J=b.find(D.shift(),v,y);v=J.expr?b.filter(J.expr,J.set)[0]:J.set[0]}if(v){var J=x?{expr:D.pop(),set:k(x)}:b.find(D.pop(),D.length===1&amp;&amp;(D[0]===&quot;~&quot;||D[0]===&quot;+&quot;)&amp;&amp;v.parentNode?v.parentNode:v,y);A=J.expr?b.filter(J.expr,J.set):J.set;if(D.length&gt;0){I=k(A)}else{t=false}while(D.length){var w=D.pop(),z=w;if(!i.relative[w]){w=&quot;&quot;}else{z=D.pop()}if(z==null){z=v}i.relative[w](I,z,y)}}else{I=D=[]}}if(!I){I=A}if(!I){throw&quot;Syntax error, unrecognized expression: &quot;+(w||F)}if(o.call(I)===&quot;[object Array]&quot;){if(!t){r.apply(C,I)}else{if(v&amp;&amp;v.nodeType===1){for(var G=0;I[G]!=null;G++){if(I[G]&amp;&amp;(I[G]===true||I[G].nodeType===1&amp;&amp;j(v,I[G]))){r.call(C,A[G])}}}else{for(var G=0;I[G]!=null;G++){if(I[G]&amp;&amp;I[G].nodeType===1){r.call(C,A[G])}}}}}else{k(I,C)}if(u){b(u,e,C,x);b.uniqueSort(C)}return C};b.uniqueSort=function(t){if(n){hasDuplicate=false;g.call(t,n);if(hasDuplicate){for(var e=1;e&lt;t.length;e++){if(t[e]===t[e-1]){f.call(t,e--,1)}}}}};b.matches=function(e,t){return b(e,null,null,t)};b.find=function(z,e,A){var y,w;if(!z){return[]}for(var v=0,u=i.order.length;v&lt;u;v++){var x=i.order[v],w;if((w=i.match[x].exec(z))){var t=RegExp.leftContext;if(t.substr(t.length-1)!==&quot;\\&quot;){w[1]=(w[1]||&quot;&quot;).replace(/\\/g,&quot;&quot;);y=i.find[x](w,e,A);if(y!=null){z=z.replace(i.match[x],&quot;&quot;);break}}}}if(!y){y=e.getElementsByTagName(&quot;*&quot;)}return{set:y,expr:z}};b.filter=function(C,B,F,v){var u=C,H=[],z=B,x,e,y=B&amp;&amp;B[0]&amp;&amp;c(B[0]);while(C&amp;&amp;B.length){for(var A in i.filter){if((x=i.match[A].exec(C))!=null){var t=i.filter[A],G,E;e=false;if(z==H){H=[]}if(i.preFilter[A]){x=i.preFilter[A](x,z,F,H,v,y);if(!x){e=G=true}else{if(x===true){continue}}}if(x){for(var w=0;(E=z[w])!=null;w++){if(E){G=t(E,x,w,z);var D=v^!!G;if(F&amp;&amp;G!=null){if(D){e=true}else{z[w]=false}}else{if(D){H.push(E);e=true}}}}}if(G!==undefined){if(!F){z=H}C=C.replace(i.match[A],&quot;&quot;);if(!e){return[]}break}}}if(C==u){if(e==null){throw&quot;Syntax error, unrecognized expression: &quot;+C}else{break}}u=C}return z};var i=b.selectors={order:[&quot;ID&quot;,&quot;NAME&quot;,&quot;TAG&quot;],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['&quot;]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['&quot;]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['&quot;]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['&quot;]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{&quot;class&quot;:&quot;className&quot;,&quot;for&quot;:&quot;htmlFor&quot;},attrHandle:{href:function(e){return e.getAttribute(&quot;href&quot;)}},relative:{&quot;+&quot;:function(z,e,y){var w=typeof e===&quot;string&quot;,A=w&amp;&amp;!/\W/.test(e),x=w&amp;&amp;!A;if(A&amp;&amp;!y){e=e.toUpperCase()}for(var v=0,u=z.length,t;v&lt;u;v++){if((t=z[v])){while((t=t.previousSibling)&amp;&amp;t.nodeType!==1){}z[v]=x||t&amp;&amp;t.nodeName===e?t||false:t===e}}if(x){b.filter(e,z,true)}},&quot;&gt;&quot;:function(y,t,z){var w=typeof t===&quot;string&quot;;if(w&amp;&amp;!/\W/.test(t)){t=z?t:t.toUpperCase();for(var u=0,e=y.length;u&lt;e;u++){var x=y[u];if(x){var v=x.parentNode;y[u]=v.nodeName===t?v:false}}}else{for(var u=0,e=y.length;u&lt;e;u++){var x=y[u];if(x){y[u]=w?x.parentNode:x.parentNode===t}}if(w){b.filter(t,y,true)}}},&quot;&quot;:function(v,t,x){var u=m++,e=q;if(!t.match(/\W/)){var w=t=x?t:t.toUpperCase();e=a}e(&quot;parentNode&quot;,t,u,v,w,x)},&quot;~&quot;:function(v,t,x){var u=m++,e=q;if(typeof t===&quot;string&quot;&amp;&amp;!t.match(/\W/)){var w=t=x?t:t.toUpperCase();e=a}e(&quot;previousSibling&quot;,t,u,v,w,x)}},find:{ID:function(t,u,v){if(typeof u.getElementById!==&quot;undefined&quot;&amp;&amp;!v){var e=u.getElementById(t[1]);return e?[e]:[]}},NAME:function(u,x,y){if(typeof x.getElementsByName!==&quot;undefined&quot;){var t=[],w=x.getElementsByName(u[1]);for(var v=0,e=w.length;v&lt;e;v++){if(w[v].getAttribute(&quot;name&quot;)===u[1]){t.push(w[v])}}return t.length===0?null:t}},TAG:function(e,t){return t.getElementsByTagName(e[1])}},preFilter:{CLASS:function(v,t,u,e,y,z){v=&quot; &quot;+v[1].replace(/\\/g,&quot;&quot;)+&quot; &quot;;if(z){return v}for(var w=0,x;(x=t[w])!=null;w++){if(x){if(y^(x.className&amp;&amp;(&quot; &quot;+x.className+&quot; &quot;).indexOf(v)&gt;=0)){if(!u){e.push(x)}}else{if(u){t[w]=false}}}}return false},ID:function(e){return e[1].replace(/\\/g,&quot;&quot;)},TAG:function(t,e){for(var u=0;e[u]===false;u++){}return e[u]&amp;&amp;c(e[u])?t[1]:t[1].toUpperCase()},CHILD:function(e){if(e[1]==&quot;nth&quot;){var t=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(e[2]==&quot;even&quot;&amp;&amp;&quot;2n&quot;||e[2]==&quot;odd&quot;&amp;&amp;&quot;2n+1&quot;||!/\D/.test(e[2])&amp;&amp;&quot;0n+&quot;+e[2]||e[2]);e[2]=(t[1]+(t[2]||1))-0;e[3]=t[3]-0}e[0]=m++;return e},ATTR:function(w,t,u,e,x,y){var v=w[1].replace(/\\/g,&quot;&quot;);if(!y&amp;&amp;i.attrMap[v]){w[1]=i.attrMap[v]}if(w[2]===&quot;~=&quot;){w[4]=&quot; &quot;+w[4]+&quot; &quot;}return w},PSEUDO:function(w,t,u,e,x){if(w[1]===&quot;not&quot;){if(w[3].match(l).length&gt;1||/^\w/.test(w[3])){w[3]=b(w[3],null,null,t)}else{var v=b.filter(w[3],t,u,true^x);if(!u){e.push.apply(e,v)}return false}}else{if(i.match.POS.test(w[0])||i.match.CHILD.test(w[0])){return true}}return w},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&amp;&amp;e.type!==&quot;hidden&quot;},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){e.parentNode.selectedIndex;return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(u,t,e){return !!b(e[3],u).length},header:function(e){return/h\d/i.test(e.nodeName)},text:function(e){return&quot;text&quot;===e.type},radio:function(e){return&quot;radio&quot;===e.type},checkbox:function(e){return&quot;checkbox&quot;===e.type},file:function(e){return&quot;file&quot;===e.type},password:function(e){return&quot;password&quot;===e.type},submit:function(e){return&quot;submit&quot;===e.type},image:function(e){return&quot;image&quot;===e.type},reset:function(e){return&quot;reset&quot;===e.type},button:function(e){return&quot;button&quot;===e.type||e.nodeName.toUpperCase()===&quot;BUTTON&quot;},input:function(e){return/input|select|textarea|button/i.test(e.nodeName)}},setFilters:{first:function(t,e){return e===0},last:function(u,t,e,v){return t===v.length-1},even:function(t,e){return e%2===0},odd:function(t,e){return e%2===1},lt:function(u,t,e){return t&lt;e[3]-0},gt:function(u,t,e){return t&gt;e[3]-0},nth:function(u,t,e){return e[3]-0==t},eq:function(u,t,e){return e[3]-0==t}},filter:{PSEUDO:function(y,u,v,z){var t=u[1],w=i.filters[t];if(w){return w(y,v,u,z)}else{if(t===&quot;contains&quot;){return(y.textContent||y.innerText||&quot;&quot;).indexOf(u[3])&gt;=0}else{if(t===&quot;not&quot;){var x=u[3];for(var v=0,e=x.length;v&lt;e;v++){if(x[v]===y){return false}}return true}}}},CHILD:function(e,v){var y=v[1],t=e;switch(y){case&quot;only&quot;:case&quot;first&quot;:while(t=t.previousSibling){if(t.nodeType===1){return false}}if(y==&quot;first&quot;){return true}t=e;case&quot;last&quot;:while(t=t.nextSibling){if(t.nodeType===1){return false}}return true;case&quot;nth&quot;:var u=v[2],B=v[3];if(u==1&amp;&amp;B==0){return true}var x=v[0],A=e.parentNode;if(A&amp;&amp;(A.sizcache!==x||!e.nodeIndex)){var w=0;for(t=A.firstChild;t;t=t.nextSibling){if(t.nodeType===1){t.nodeIndex=++w}}A.sizcache=x}var z=e.nodeIndex-B;if(u==0){return z==0}else{return(z%u==0&amp;&amp;z/u&gt;=0)}}},ID:function(t,e){return t.nodeType===1&amp;&amp;t.getAttribute(&quot;id&quot;)===e},TAG:function(t,e){return(e===&quot;*&quot;&amp;&amp;t.nodeType===1)||t.nodeName===e},CLASS:function(t,e){return(&quot; &quot;+(t.className||t.getAttribute(&quot;class&quot;))+&quot; &quot;).indexOf(e)&gt;-1},ATTR:function(x,v){var u=v[1],e=i.attrHandle[u]?i.attrHandle[u](x):x[u]!=null?x[u]:x.getAttribute(u),y=e+&quot;&quot;,w=v[2],t=v[4];return e==null?w===&quot;!=&quot;:w===&quot;=&quot;?y===t:w===&quot;*=&quot;?y.indexOf(t)&gt;=0:w===&quot;~=&quot;?(&quot; &quot;+y+&quot; &quot;).indexOf(t)&gt;=0:!t?y&amp;&amp;e!==false:w===&quot;!=&quot;?y!=t:w===&quot;^=&quot;?y.indexOf(t)===0:w===&quot;$=&quot;?y.substr(y.length-t.length)===t:w===&quot;|=&quot;?y===t||y.substr(0,t.length+1)===t+&quot;-&quot;:false},POS:function(w,t,u,x){var e=t[2],v=i.setFilters[e];if(v){return v(w,u,t,x)}}}};var h=i.match.POS;for(var d in i.match){i.match[d]=new RegExp(i.match[d].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var k=function(t,e){t=Array.prototype.slice.call(t);if(e){r.apply(e,t);return e}return t};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(s){k=function(w,v){var t=v||[];if(o.call(w)===&quot;[object Array]&quot;){Array.prototype.push.apply(t,w)}else{if(typeof w.length===&quot;number&quot;){for(var u=0,e=w.length;u&lt;e;u++){t.push(w[u])}}else{for(var u=0;w[u];u++){t.push(w[u])}}}return t}}var n;if(document.documentElement.compareDocumentPosition){n=function(t,e){var u=t.compareDocumentPosition(e)&amp;4?-1:t===e?0:1;if(u===0){hasDuplicate=true}return u}}else{if(&quot;sourceIndex&quot; in document.documentElement){n=function(t,e){var u=t.sourceIndex-e.sourceIndex;if(u===0){hasDuplicate=true}return u}}else{if(document.createRange){n=function(v,t){var u=v.ownerDocument.createRange(),e=t.ownerDocument.createRange();u.selectNode(v);u.collapse(true);e.selectNode(t);e.collapse(true);var w=u.compareBoundaryPoints(Range.START_TO_END,e);if(w===0){hasDuplicate=true}return w}}}}(function(){var t=document.createElement(&quot;form&quot;),u=&quot;script&quot;+(new Date).getTime();t.innerHTML=&quot;&lt;input name='&quot;+u+&quot;'/&gt;&quot;;var e=document.documentElement;e.insertBefore(t,e.firstChild);if(!!document.getElementById(u)){i.find.ID=function(w,x,y){if(typeof x.getElementById!==&quot;undefined&quot;&amp;&amp;!y){var v=x.getElementById(w[1]);return v?v.id===w[1]||typeof v.getAttributeNode!==&quot;undefined&quot;&amp;&amp;v.getAttributeNode(&quot;id&quot;).nodeValue===w[1]?[v]:undefined:[]}};i.filter.ID=function(x,v){var w=typeof x.getAttributeNode!==&quot;undefined&quot;&amp;&amp;x.getAttributeNode(&quot;id&quot;);return x.nodeType===1&amp;&amp;w&amp;&amp;w.nodeValue===v}}e.removeChild(t)})();(function(){var e=document.createElement(&quot;div&quot;);e.appendChild(document.createComment(&quot;&quot;));if(e.getElementsByTagName(&quot;*&quot;).length&gt;0){i.find.TAG=function(t,x){var w=x.getElementsByTagName(t[1]);if(t[1]===&quot;*&quot;){var v=[];for(var u=0;w[u];u++){if(w[u].nodeType===1){v.push(w[u])}}w=v}return w}}e.innerHTML=&quot;&lt;a href='#'&gt;&lt;/a&gt;&quot;;if(e.firstChild&amp;&amp;typeof e.firstChild.getAttribute!==&quot;undefined&quot;&amp;&amp;e.firstChild.getAttribute(&quot;href&quot;)!==&quot;#&quot;){i.attrHandle.href=function(t){return t.getAttribute(&quot;href&quot;,2)}}})();if(document.querySelectorAll){(function(){var e=b,u=document.createElement(&quot;div&quot;);u.innerHTML=&quot;&lt;p class='TEST'&gt;&lt;/p&gt;&quot;;if(u.querySelectorAll&amp;&amp;u.querySelectorAll(&quot;.TEST&quot;).length===0){return}b=function(y,x,v,w){x=x||document;if(!w&amp;&amp;x.nodeType===9&amp;&amp;!c(x)){try{return k(x.querySelectorAll(y),v)}catch(z){}}return e(y,x,v,w)};for(var t in e){b[t]=e[t]}})()}if(document.getElementsByClassName&amp;&amp;document.documentElement.getElementsByClassName){(function(){var e=document.createElement(&quot;div&quot;);e.innerHTML=&quot;&lt;div class='test e'&gt;&lt;/div&gt;&lt;div class='test'&gt;&lt;/div&gt;&quot;;if(e.getElementsByClassName(&quot;e&quot;).length===0){return}e.lastChild.className=&quot;e&quot;;if(e.getElementsByClassName(&quot;e&quot;).length===1){return}i.order.splice(1,0,&quot;CLASS&quot;);i.find.CLASS=function(t,u,v){if(typeof u.getElementsByClassName!==&quot;undefined&quot;&amp;&amp;!v){return u.getElementsByClassName(t[1])}}})()}function a(t,y,x,C,z,B){var A=t==&quot;previousSibling&quot;&amp;&amp;!B;for(var v=0,u=C.length;v&lt;u;v++){var e=C[v];if(e){if(A&amp;&amp;e.nodeType===1){e.sizcache=x;e.sizset=v}e=e[t];var w=false;while(e){if(e.sizcache===x){w=C[e.sizset];break}if(e.nodeType===1&amp;&amp;!B){e.sizcache=x;e.sizset=v}if(e.nodeName===y){w=e;break}e=e[t]}C[v]=w}}}function q(t,y,x,C,z,B){var A=t==&quot;previousSibling&quot;&amp;&amp;!B;for(var v=0,u=C.length;v&lt;u;v++){var e=C[v];if(e){if(A&amp;&amp;e.nodeType===1){e.sizcache=x;e.sizset=v}e=e[t];var w=false;while(e){if(e.sizcache===x){w=C[e.sizset];break}if(e.nodeType===1){if(!B){e.sizcache=x;e.sizset=v}if(typeof y!==&quot;string&quot;){if(e===y){w=true;break}}else{if(b.filter(y,[e]).length&gt;0){w=e;break}}}e=e[t]}C[v]=w}}}var j=document.compareDocumentPosition?function(t,e){return t.compareDocumentPosition(e)&amp;16}:function(t,e){return t!==e&amp;&amp;(t.contains?t.contains(e):true)};var c=function(e){return e.nodeType===9&amp;&amp;e.documentElement.nodeName!==&quot;HTML&quot;||!!e.ownerDocument&amp;&amp;e.ownerDocument.documentElement.nodeName!==&quot;HTML&quot;};var p=function(e,z){var v=[],w=&quot;&quot;,x,u=z.nodeType?[z]:z;while((x=i.match.PSEUDO.exec(e))){w+=x[0];e=e.replace(i.match.PSEUDO,&quot;&quot;)}e=i.relative[e]?e+&quot;*&quot;:e;for(var y=0,t=u.length;y&lt;t;y++){b(e,u[y],v)}return b.filter(w,v)};window.tinymce.dom.Sizzle=b})();(function(d){var f=d.each,c=d.DOM,b=d.isIE,e=d.isWebKit,a;d.create(&quot;static tinymce.dom.Event&quot;,{inits:[],events:[],add:function(m,p,l,j){var g,h=this,i=h.events,k;if(m&amp;&amp;m.hasOwnProperty&amp;&amp;m instanceof Array){k=[];f(m,function(n){n=c.get(n);k.push(h.add(n,p,l,j))});return k}m=c.get(m);if(!m){return}g=function(n){n=n||window.event;if(n&amp;&amp;!n.target&amp;&amp;b){n.target=n.srcElement}if(!j){return l(n)}return l.call(j,n)};if(p==&quot;unload&quot;){d.unloads.unshift({func:g});return g}if(p==&quot;init&quot;){if(h.domLoaded){g()}else{h.inits.push(g)}return g}i.push({obj:m,name:p,func:l,cfunc:g,scope:j});h._add(m,p,g);return l},remove:function(l,m,k){var h=this,g=h.events,i=false,j;if(l&amp;&amp;l.hasOwnProperty&amp;&amp;l instanceof Array){j=[];f(l,function(n){n=c.get(n);j.push(h.remove(n,m,k))});return j}l=c.get(l);f(g,function(o,n){if(o.obj==l&amp;&amp;o.name==m&amp;&amp;(!k||(o.func==k||o.cfunc==k))){g.splice(n,1);h._remove(l,m,o.cfunc);i=true;return false}});return i},clear:function(l){var j=this,g=j.events,h,k;if(l){l=c.get(l);for(h=g.length-1;h&gt;=0;h--){k=g[h];if(k.obj===l){j._remove(k.obj,k.name,k.cfunc);k.obj=k.cfunc=null;g.splice(h,1)}}}},cancel:function(g){if(!g){return false}this.stop(g);return this.prevent(g)},stop:function(g){if(g.stopPropagation){g.stopPropagation()}else{g.cancelBubble=true}return false},prevent:function(g){if(g.preventDefault){g.preventDefault()}else{g.returnValue=false}return false},_unload:function(){var g=a;f(g.events,function(j,h){g._remove(j.obj,j.name,j.cfunc);j.obj=j.cfunc=null});g.events=[];g=null},_add:function(h,i,g){if(h.attachEvent){h.attachEvent(&quot;on&quot;+i,g)}else{if(h.addEventListener){h.addEventListener(i,g,false)}else{h[&quot;on&quot;+i]=g}}},_remove:function(i,j,h){if(i){try{if(i.detachEvent){i.detachEvent(&quot;on&quot;+j,h)}else{if(i.removeEventListener){i.removeEventListener(j,h,false)}else{i[&quot;on&quot;+j]=null}}}catch(g){}}},_pageInit:function(){var g=a;if(g.domLoaded){return}g._remove(window,&quot;DOMContentLoaded&quot;,g._pageInit);g.domLoaded=true;f(g.inits,function(h){h()});g.inits=[]},_wait:function(){var g;if(window.tinyMCE_GZ&amp;&amp;tinyMCE_GZ.loaded){a.domLoaded=1;return}if(b&amp;&amp;document.location.protocol!=&quot;https:&quot;){document.write(&quot;&lt;script id=__ie_onload defer src='javascript:\&quot;\&quot;';&gt;&lt;\/script&gt;&quot;);c.get(&quot;__ie_onload&quot;).onreadystatechange=function(){if(this.readyState==&quot;complete&quot;){a._pageInit();c.get(&quot;__ie_onload&quot;).onreadystatechange=null}}}else{a._add(window,&quot;DOMContentLoaded&quot;,a._pageInit,a);if(b||e){g=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(g);a._pageInit()}},10)}}}});a=d.dom.Event;a._wait();d.addUnload(a._unload)})(tinymce);(function(a){var b=a.each;a.create(&quot;tinymce.dom.Element&quot;,{Element:function(g,e){var c=this,f,d;e=e||{};c.id=g;c.dom=f=e.dom||a.DOM;c.settings=e;if(!a.isIE){d=c.dom.get(c.id)}b([&quot;getPos&quot;,&quot;getRect&quot;,&quot;getParent&quot;,&quot;add&quot;,&quot;setStyle&quot;,&quot;getStyle&quot;,&quot;setStyles&quot;,&quot;setAttrib&quot;,&quot;setAttribs&quot;,&quot;getAttrib&quot;,&quot;addClass&quot;,&quot;removeClass&quot;,&quot;hasClass&quot;,&quot;getOuterHTML&quot;,&quot;setOuterHTML&quot;,&quot;remove&quot;,&quot;show&quot;,&quot;hide&quot;,&quot;isHidden&quot;,&quot;setHTML&quot;,&quot;get&quot;],function(h){c[h]=function(){var j=[g],k;for(k=0;k&lt;arguments.length;k++){j.push(arguments[k])}j=f[h].apply(f,j);c.update(h);return j}})},on:function(e,d,c){return a.dom.Event.add(this.id,e,d,c)},getXY:function(){return{x:parseInt(this.getStyle(&quot;left&quot;)),y:parseInt(this.getStyle(&quot;top&quot;))}},getSize:function(){var c=this.dom.get(this.id);return{w:parseInt(this.getStyle(&quot;width&quot;)||c.clientWidth),h:parseInt(this.getStyle(&quot;height&quot;)||c.clientHeight)}},moveTo:function(c,d){this.setStyles({left:c,top:d})},moveBy:function(c,e){var d=this.getXY();this.moveTo(d.x+c,d.y+e)},resizeTo:function(c,d){this.setStyles({width:c,height:d})},resizeBy:function(c,e){var d=this.getSize();this.resizeTo(d.w+c,d.h+e)},update:function(d){var e=this,c,f=e.dom;if(a.isIE6&amp;&amp;e.settings.blocker){d=d||&quot;&quot;;if(d.indexOf(&quot;get&quot;)===0||d.indexOf(&quot;has&quot;)===0||d.indexOf(&quot;is&quot;)===0){return}if(d==&quot;remove&quot;){f.remove(e.blocker);return}if(!e.blocker){e.blocker=f.uniqueId();c=f.add(e.settings.container||f.getRoot(),&quot;iframe&quot;,{id:e.blocker,style:&quot;position:absolute;&quot;,frameBorder:0,src:'javascript:&quot;&quot;'});f.setStyle(c,&quot;opacity&quot;,0)}else{c=f.get(e.blocker)}f.setStyle(c,&quot;left&quot;,e.getStyle(&quot;left&quot;,1));f.setStyle(c,&quot;top&quot;,e.getStyle(&quot;top&quot;,1));f.setStyle(c,&quot;width&quot;,e.getStyle(&quot;width&quot;,1));f.setStyle(c,&quot;height&quot;,e.getStyle(&quot;height&quot;,1));f.setStyle(c,&quot;display&quot;,e.getStyle(&quot;display&quot;,1));f.setStyle(c,&quot;zIndex&quot;,parseInt(e.getStyle(&quot;zIndex&quot;,1)||0)-1)}}})})(tinymce);(function(c){function e(f){return f.replace(/[\n\r]+/g,&quot;&quot;)}var b=c.is,a=c.isIE,d=c.each;c.create(&quot;tinymce.dom.Selection&quot;,{Selection:function(i,h,g){var f=this;f.dom=i;f.win=h;f.serializer=g;d([&quot;onBeforeSetContent&quot;,&quot;onBeforeGetContent&quot;,&quot;onSetContent&quot;,&quot;onGetContent&quot;],function(j){f[j]=new c.util.Dispatcher(f)});if(!f.win.getSelection){f.tridentSel=new c.dom.TridentSelection(f)}c.addUnload(f.destroy,f)},getContent:function(g){var f=this,h=f.getRng(),l=f.dom.create(&quot;body&quot;),j=f.getSel(),i,k,m;g=g||{};i=k=&quot;&quot;;g.get=true;g.format=g.format||&quot;html&quot;;f.onBeforeGetContent.dispatch(f,g);if(g.format==&quot;text&quot;){return f.isCollapsed()?&quot;&quot;:(h.text||(j.toString?j.toString():&quot;&quot;))}if(h.cloneContents){m=h.cloneContents();if(m){l.appendChild(m)}}else{if(b(h.item)||b(h.htmlText)){l.innerHTML=h.item?h.item(0).outerHTML:h.htmlText}else{l.innerHTML=h.toString()}}if(/^\s/.test(l.innerHTML)){i=&quot; &quot;}if(/\s+$/.test(l.innerHTML)){k=&quot; &quot;}g.getInner=true;g.content=f.isCollapsed()?&quot;&quot;:i+f.serializer.serialize(l,g)+k;f.onGetContent.dispatch(f,g);return g.content},setContent:function(i,g){var f=this,j=f.getRng(),l,k=f.win.document;g=g||{format:&quot;html&quot;};g.set=true;i=g.content=f.dom.processHTML(i);f.onBeforeSetContent.dispatch(f,g);i=g.content;if(j.insertNode){i+='&lt;span id=&quot;__caret&quot;&gt;_&lt;/span&gt;';j.deleteContents();j.insertNode(f.getRng().createContextualFragment(i));l=f.dom.get(&quot;__caret&quot;);j=k.createRange();j.setStartBefore(l);j.setEndAfter(l);f.setRng(j);f.dom.remove(&quot;__caret&quot;)}else{if(j.item){k.execCommand(&quot;Delete&quot;,false,null);j=f.getRng()}j.pasteHTML(i)}f.onSetContent.dispatch(f,g)},getStart:function(){var f=this,g=f.getRng(),h;if(a){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(1);h=g.parentElement();if(h&amp;&amp;h.nodeName==&quot;BODY&quot;){return h.firstChild}return h}else{h=g.startContainer;if(h.nodeName==&quot;BODY&quot;){return h.firstChild}return f.dom.getParent(h,&quot;*&quot;)}},getEnd:function(){var f=this,g=f.getRng(),h;if(a){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(0);h=g.parentElement();if(h&amp;&amp;h.nodeName==&quot;BODY&quot;){return h.lastChild}return h}else{h=g.endContainer;if(h.nodeName==&quot;BODY&quot;){return h.lastChild}return f.dom.getParent(h,&quot;*&quot;)}},getBookmark:function(x){var j=this,m=j.getRng(),f,n,l,u=j.dom.getViewPort(j.win),v,p,z,o,w=-16777215,k,h=j.dom.getRoot(),g=0,i=0,y;n=u.x;l=u.y;if(x==&quot;simple&quot;){return{rng:m,scrollX:n,scrollY:l}}if(a){if(m.item){v=m.item(0);d(j.dom.select(v.nodeName),function(s,r){if(v==s){p=r;return false}});return{tag:v.nodeName,index:p,scrollX:n,scrollY:l}}f=j.dom.doc.body.createTextRange();f.moveToElementText(h);f.collapse(true);z=Math.abs(f.move(&quot;character&quot;,w));f=m.duplicate();f.collapse(true);p=Math.abs(f.move(&quot;character&quot;,w));f=m.duplicate();f.collapse(false);o=Math.abs(f.move(&quot;character&quot;,w))-p;return{start:p-z,length:o,scrollX:n,scrollY:l}}v=j.getNode();k=j.getSel();if(!k){return null}if(v&amp;&amp;v.nodeName==&quot;IMG&quot;){return{scrollX:n,scrollY:l}}function q(A,D,t){var s=j.dom.doc.createTreeWalker(A,NodeFilter.SHOW_TEXT,null,false),E,B=0,C={};while((E=s.nextNode())!=null){if(E==D){C.start=B}if(E==t){C.end=B;return C}B+=e(E.nodeValue||&quot;&quot;).length}return null}if(k.anchorNode==k.focusNode&amp;&amp;k.anchorOffset==k.focusOffset){v=q(h,k.anchorNode,k.focusNode);if(!v){return{scrollX:n,scrollY:l}}e(k.anchorNode.nodeValue||&quot;&quot;).replace(/^\s+/,function(r){g=r.length});return{start:Math.max(v.start+k.anchorOffset-g,0),end:Math.max(v.end+k.focusOffset-g,0),scrollX:n,scrollY:l,beg:k.anchorOffset-g==0}}else{v=q(h,m.startContainer,m.endContainer);if(!v){return{scrollX:n,scrollY:l}}return{start:Math.max(v.start+m.startOffset-g,0),end:Math.max(v.end+m.endOffset-i,0),scrollX:n,scrollY:l,beg:m.startOffset-g==0}}},moveToBookmark:function(n){var o=this,g=o.getRng(),p=o.getSel(),j=o.dom.getRoot(),m,h,k;function i(q,t,D){var B=o.dom.doc.createTreeWalker(q,NodeFilter.SHOW_TEXT,null,false),x,s=0,A={},u,C,z,y;while((x=B.nextNode())!=null){z=y=0;k=x.nodeValue||&quot;&quot;;h=e(k).length;s+=h;if(s&gt;=t&amp;&amp;!A.startNode){u=t-(s-h);if(n.beg&amp;&amp;u&gt;=h){continue}A.startNode=x;A.startOffset=u+y}if(s&gt;=D){A.endNode=x;A.endOffset=D-(s-h)+y;return A}}return null}if(!n){return false}o.win.scrollTo(n.scrollX,n.scrollY);if(a){if(g=n.rng){try{g.select()}catch(l){}return true}o.win.focus();if(n.tag){g=j.createControlRange();d(o.dom.select(n.tag),function(r,q){if(q==n.index){g.addElement(r)}})}else{try{if(n.start&lt;0){return true}g=p.createRange();g.moveToElementText(j);g.collapse(true);g.moveStart(&quot;character&quot;,n.start);g.moveEnd(&quot;character&quot;,n.length)}catch(f){return true}}try{g.select()}catch(l){}return true}if(!p){return false}if(n.rng){p.removeAllRanges();p.addRange(n.rng)}else{if(b(n.start)&amp;&amp;b(n.end)){try{m=i(j,n.start,n.end);if(m){g=o.dom.doc.createRange();g.setStart(m.startNode,m.startOffset);g.setEnd(m.endNode,m.endOffset);p.removeAllRanges();p.addRange(g)}if(!c.isOpera){o.win.focus()}}catch(l){}}}},select:function(g,l){var p=this,f=p.getRng(),q=p.getSel(),o,m,k,j=p.win.document;function h(u,t){var s,r;if(u){s=j.createTreeWalker(u,NodeFilter.SHOW_TEXT,null,false);while(u=s.nextNode()){r=u;if(c.trim(u.nodeValue).length!=0){if(t){return u}else{r=u}}}}return r}if(a){try{o=j.body;if(/^(IMG|TABLE)$/.test(g.nodeName)){f=o.createControlRange();f.addElement(g)}else{f=o.createTextRange();f.moveToElementText(g)}f.select()}catch(i){}}else{if(l){m=h(g,1)||p.dom.select(&quot;br:first&quot;,g)[0];k=h(g,0)||p.dom.select(&quot;br:last&quot;,g)[0];if(m&amp;&amp;k){f=j.createRange();if(m.nodeName==&quot;BR&quot;){f.setStartBefore(m)}else{f.setStart(m,0)}if(k.nodeName==&quot;BR&quot;){f.setEndBefore(k)}else{f.setEnd(k,k.nodeValue.length)}}else{f.selectNode(g)}}else{f.selectNode(g)}p.setRng(f)}return g},isCollapsed:function(){var f=this,h=f.getRng(),g=f.getSel();if(!h||h.item){return false}return !g||h.boundingWidth==0||h.collapsed},collapse:function(f){var g=this,h=g.getRng(),i;if(h.item){i=h.item(0);h=this.win.document.body.createTextRange();h.moveToElementText(i)}h.collapse(!!f);g.setRng(h)},getSel:function(){var g=this,f=this.win;return f.getSelection?f.getSelection():f.document.selection},getRng:function(j){var g=this,h,i;if(j&amp;&amp;g.tridentSel){return g.tridentSel.getRangeAt(0)}try{if(h=g.getSel()){i=h.rangeCount&gt;0?h.getRangeAt(0):(h.createRange?h.createRange():g.win.document.createRange())}}catch(f){}if(!i){i=a?g.win.document.body.createTextRange():g.win.document.createRange()}return i},setRng:function(i){var h,g=this;if(!g.tridentSel){h=g.getSel();if(h){h.removeAllRanges();h.addRange(i)}}else{if(i.cloneRange){g.tridentSel.addRange(i);return}try{i.select()}catch(f){}}},setNode:function(g){var f=this;f.setContent(f.dom.getOuterHTML(g));return g},getNode:function(){var f=this,h=f.getRng(),g=f.getSel(),i;if(!a){if(!h){return f.dom.getRoot()}i=h.commonAncestorContainer;if(!h.collapsed){if(c.isWebKit&amp;&amp;g.anchorNode&amp;&amp;g.anchorNode.nodeType==1){return g.anchorNode.childNodes[g.anchorOffset]}if(h.startContainer==h.endContainer){if(h.startOffset-h.endOffset&lt;2){if(h.startContainer.hasChildNodes()){i=h.startContainer.childNodes[h.startOffset]}}}}return f.dom.getParent(i,&quot;*&quot;)}return h.item?h.item(0):h.parentElement()},getSelectedBlocks:function(g,f){var i=this,j=i.dom,m,h,l,k=[];m=j.getParent(g||i.getStart(),j.isBlock);h=j.getParent(f||i.getEnd(),j.isBlock);if(m){k.push(m)}if(m&amp;&amp;h&amp;&amp;m!=h){l=m;while((l=l.nextSibling)&amp;&amp;l!=h){if(j.isBlock(l)){k.push(l)}}}if(h&amp;&amp;m!=h){k.push(h)}return k},destroy:function(g){var f=this;f.win=null;if(!g){c.removeUnload(f.destroy)}}})})(tinymce);(function(a){a.create(&quot;tinymce.dom.XMLWriter&quot;,{node:null,XMLWriter:function(c){function b(){var e=document.implementation;if(!e||!e.createDocument){try{return new ActiveXObject(&quot;MSXML2.DOMDocument&quot;)}catch(d){}try{return new ActiveXObject(&quot;Microsoft.XmlDom&quot;)}catch(d){}}else{return e.createDocument(&quot;&quot;,&quot;&quot;,null)}}this.doc=b();this.valid=a.isOpera||a.isWebKit;this.reset()},reset:function(){var b=this,c=b.doc;if(c.firstChild){c.removeChild(c.firstChild)}b.node=c.appendChild(c.createElement(&quot;html&quot;))},writeStartElement:function(c){var b=this;b.node=b.node.appendChild(b.doc.createElement(c))},writeAttribute:function(c,b){if(this.valid){b=b.replace(/&gt;/g,&quot;%MCGT%&quot;)}this.node.setAttribute(c,b)},writeEndElement:function(){this.node=this.node.parentNode},writeFullEndElement:function(){var b=this,c=b.node;c.appendChild(b.doc.createTextNode(&quot;&quot;));b.node=c.parentNode},writeText:function(b){if(this.valid){b=b.replace(/&gt;/g,&quot;%MCGT%&quot;)}this.node.appendChild(this.doc.createTextNode(b))},writeCDATA:function(b){this.node.appendChild(this.doc.createCDATA(b))},writeComment:function(b){if(a.isIE){b=b.replace(/^\-|\-$/g,&quot; &quot;)}this.node.appendChild(this.doc.createComment(b.replace(/\-\-/g,&quot; &quot;)))},getContent:function(){var b;b=this.doc.xml||new XMLSerializer().serializeToString(this.doc);b=b.replace(/&lt;\?[^?]+\?&gt;|&lt;html&gt;|&lt;\/html&gt;|&lt;html\/&gt;|&lt;!DOCTYPE[^&gt;]+&gt;/g,&quot;&quot;);b=b.replace(/ ?\/&gt;/g,&quot; /&gt;&quot;);if(this.valid){b=b.replace(/\%MCGT%/g,&quot;&amp;gt;&quot;)}return b}})})(tinymce);(function(a){a.create(&quot;tinymce.dom.StringWriter&quot;,{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(b){this.settings=a.extend({indent_char:&quot; &quot;,indentation:1},b);this.reset()},reset:function(){this.indent=&quot;&quot;;this.str=&quot;&quot;;this.tags=[];this.count=0},writeStartElement:function(b){this._writeAttributesEnd();this.writeRaw(&quot;&lt;&quot;+b);this.tags.push(b);this.inAttr=true;this.count++;this.elementCount=this.count},writeAttribute:function(d,b){var c=this;c.writeRaw(&quot; &quot;+c.encode(d)+'=&quot;'+c.encode(b)+'&quot;')},writeEndElement:function(){var b;if(this.tags.length&gt;0){b=this.tags.pop();if(this._writeAttributesEnd(1)){this.writeRaw(&quot;&lt;/&quot;+b+&quot;&gt;&quot;)}if(this.settings.indentation&gt;0){this.writeRaw(&quot;\n&quot;)}}},writeFullEndElement:function(){if(this.tags.length&gt;0){this._writeAttributesEnd();this.writeRaw(&quot;&lt;/&quot;+this.tags.pop()+&quot;&gt;&quot;);if(this.settings.indentation&gt;0){this.writeRaw(&quot;\n&quot;)}}},writeText:function(b){this._writeAttributesEnd();this.writeRaw(this.encode(b));this.count++},writeCDATA:function(b){this._writeAttributesEnd();this.writeRaw(&quot;&lt;![CDATA[&quot;+b+&quot;]]&gt;&quot;);this.count++},writeComment:function(b){this._writeAttributesEnd();this.writeRaw(&quot;&lt;!-- &quot;+b+&quot;--&gt;&quot;);this.count++},writeRaw:function(b){this.str+=b},encode:function(b){return b.replace(/[&lt;&gt;&amp;&quot;]/g,function(c){switch(c){case&quot;&lt;&quot;:return&quot;&amp;lt;&quot;;case&quot;&gt;&quot;:return&quot;&amp;gt;&quot;;case&quot;&amp;&quot;:return&quot;&amp;amp;&quot;;case'&quot;':return&quot;&amp;quot;&quot;}return c})},getContent:function(){return this.str},_writeAttributesEnd:function(b){if(!this.inAttr){return}this.inAttr=false;if(b&amp;&amp;this.elementCount==this.count){this.writeRaw(&quot; /&gt;&quot;);return false}this.writeRaw(&quot;&gt;&quot;);return true}})})(tinymce);(function(e){var g=e.extend,f=e.each,b=e.util.Dispatcher,d=e.isIE,a=e.isGecko;function c(h){return h.replace(/([?+*])/g,&quot;.$1&quot;)}e.create(&quot;tinymce.dom.Serializer&quot;,{Serializer:function(j){var i=this;i.key=0;i.onPreProcess=new b(i);i.onPostProcess=new b(i);try{i.writer=new e.dom.XMLWriter()}catch(h){i.writer=new e.dom.StringWriter()}i.settings=j=g({dom:e.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_)/,closed:/(br|hr|input|meta|img|link|param)/,entity_encoding:&quot;named&quot;,entities:&quot;160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro&quot;,bool_attrs:/(checked|disabled|readonly|selected|nowrap)/,valid_elements:&quot;*[*]&quot;,extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:1,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:&quot;simple&quot;,indent_char:&quot;\t&quot;,indent_levels:1,remove_linebreaks:1,remove_redundant_brs:1,element_format:&quot;xhtml&quot;},j);i.dom=j.dom;if(j.remove_redundant_brs){i.onPostProcess.add(function(k,l){l.content=l.content.replace(/&lt;br \/&gt;(\s*&lt;\/li&gt;)/g,&quot;$1&quot;)})}if(j.element_format==&quot;html&quot;){i.onPostProcess.add(function(k,l){l.content=l.content.replace(/&lt;([^&gt;]+) \/&gt;/g,&quot;&lt;$1&gt;&quot;)})}if(j.fix_list_elements){i.onPreProcess.add(function(v,s){var l,y,w=[&quot;ol&quot;,&quot;ul&quot;],u,t,q,k=/^(OL|UL)$/,z;function m(r,x){var o=x.split(&quot;,&quot;),p;while((r=r.previousSibling)!=null){for(p=0;p&lt;o.length;p++){if(r.nodeName==o[p]){return r}}}return null}for(y=0;y&lt;w.length;y++){l=i.dom.select(w[y],s.node);for(u=0;u&lt;l.length;u++){t=l[u];q=t.parentNode;if(k.test(q.nodeName)){z=m(t,&quot;LI&quot;);if(!z){z=i.dom.create(&quot;li&quot;);z.innerHTML=&quot;&amp;nbsp;&quot;;z.appendChild(t);q.insertBefore(z,q.firstChild)}else{z.appendChild(t)}}}}})}if(j.fix_table_elements){i.onPreProcess.add(function(k,l){f(i.dom.select(&quot;p table&quot;,l.node),function(m){i.dom.split(i.dom.getParent(m,&quot;p&quot;),m)})})}},setEntities:function(p){var n=this,j,m,h={},o=&quot;&quot;,k;if(n.entityLookup){return}j=p.split(&quot;,&quot;);for(m=0;m&lt;j.length;m+=2){k=j[m];if(k==34||k==38||k==60||k==62){continue}h[String.fromCharCode(j[m])]=j[m+1];k=parseInt(j[m]).toString(16);o+=&quot;\\u&quot;+&quot;0000&quot;.substring(k.length)+k}if(!o){n.settings.entity_encoding=&quot;raw&quot;;return}n.entitiesRE=new RegExp(&quot;[&quot;+o+&quot;]&quot;,&quot;g&quot;);n.entityLookup=h},setValidChildRules:function(h){this.childRules=null;this.addValidChildRules(h)},addValidChildRules:function(k){var j=this,l,h,i;if(!k){return}l=&quot;A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment&quot;;h=&quot;A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment&quot;;i=&quot;H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP&quot;;f(k.split(&quot;,&quot;),function(n){var o=n.split(/\[|\]/),m;n=&quot;&quot;;f(o[1].split(&quot;|&quot;),function(p){if(n){n+=&quot;|&quot;}switch(p){case&quot;%itrans&quot;:p=h;break;case&quot;%itrans_na&quot;:p=h.substring(2);break;case&quot;%istrict&quot;:p=l;break;case&quot;%istrict_na&quot;:p=l.substring(2);break;case&quot;%btrans&quot;:p=i;break;case&quot;%bstrict&quot;:p=i;break}n+=p});m=new RegExp(&quot;^(&quot;+n.toLowerCase()+&quot;)$&quot;,&quot;i&quot;);f(o[0].split(&quot;/&quot;),function(p){j.childRules=j.childRules||{};j.childRules[p]=m})});k=&quot;&quot;;f(j.childRules,function(n,m){if(k){k+=&quot;|&quot;}k+=m});j.parentElementsRE=new RegExp(&quot;^(&quot;+k.toLowerCase()+&quot;)$&quot;,&quot;i&quot;)},setRules:function(i){var h=this;h._setup();h.rules={};h.wildRules=[];h.validElements={};return h.addRules(i)},addRules:function(i){var h=this,j;if(!i){return}h._setup();f(i.split(&quot;,&quot;),function(m){var q=m.split(/\[|\]/),l=q[0].split(&quot;/&quot;),r,k,o,n=[];if(j){k=e.extend([],j.attribs)}if(q.length&gt;1){f(q[1].split(&quot;|&quot;),function(u){var p={},t;k=k||[];u=u.replace(/::/g,&quot;~&quot;);u=/^([!\-])?([\w*.?~_\-]+|)([=:&lt;])?(.+)?$/.exec(u);u[2]=u[2].replace(/~/g,&quot;:&quot;);if(u[1]==&quot;!&quot;){r=r||[];r.push(u[2])}if(u[1]==&quot;-&quot;){for(t=0;t&lt;k.length;t++){if(k[t].name==u[2]){k.splice(t,1);return}}}switch(u[3]){case&quot;=&quot;:p.defaultVal=u[4]||&quot;&quot;;break;case&quot;:&quot;:p.forcedVal=u[4];break;case&quot;&lt;&quot;:p.validVals=u[4].split(&quot;?&quot;);break}if(/[*.?]/.test(u[2])){o=o||[];p.nameRE=new RegExp(&quot;^&quot;+c(u[2])+&quot;$&quot;);o.push(p)}else{p.name=u[2];k.push(p)}n.push(u[2])})}f(l,function(v,u){var w=v.charAt(0),t=1,p={};if(j){if(j.noEmpty){p.noEmpty=j.noEmpty}if(j.fullEnd){p.fullEnd=j.fullEnd}if(j.padd){p.padd=j.padd}}switch(w){case&quot;-&quot;:p.noEmpty=true;break;case&quot;+&quot;:p.fullEnd=true;break;case&quot;#&quot;:p.padd=true;break;default:t=0}l[u]=v=v.substring(t);h.validElements[v]=1;if(/[*.?]/.test(l[0])){p.nameRE=new RegExp(&quot;^&quot;+c(l[0])+&quot;$&quot;);h.wildRules=h.wildRules||{};h.wildRules.push(p)}else{p.name=l[0];if(l[0]==&quot;@&quot;){j=p}h.rules[v]=p}p.attribs=k;if(r){p.requiredAttribs=r}if(o){v=&quot;&quot;;f(n,function(s){if(v){v+=&quot;|&quot;}v+=&quot;(&quot;+c(s)+&quot;)&quot;});p.validAttribsRE=new RegExp(&quot;^&quot;+v.toLowerCase()+&quot;$&quot;);p.wildAttribs=o}})});i=&quot;&quot;;f(h.validElements,function(m,l){if(i){i+=&quot;|&quot;}if(l!=&quot;@&quot;){i+=l}});h.validElementsRE=new RegExp(&quot;^(&quot;+c(i.toLowerCase())+&quot;)$&quot;)},findRule:function(m){var j=this,l=j.rules,h,k;j._setup();k=l[m];if(k){return k}l=j.wildRules;for(h=0;h&lt;l.length;h++){if(l[h].nameRE.test(m)){return l[h]}}return null},findAttribRule:function(h,l){var j,k=h.wildAttribs;for(j=0;j&lt;k.length;j++){if(k[j].nameRE.test(l)){return k[j]}}return null},serialize:function(l,k){var j,i=this;i._setup();k=k||{};k.format=k.format||&quot;html&quot;;i.processObj=k;l=l.cloneNode(true);i.key=&quot;&quot;+(parseInt(i.key)+1);if(!k.no_events){k.node=l;i.onPreProcess.dispatch(i,k)}i.writer.reset();i._serializeNode(l,k.getInner);k.content=i.writer.getContent();if(!k.no_events){i.onPostProcess.dispatch(i,k)}i._postProcess(k);k.node=null;return e.trim(k.content)},_postProcess:function(n){var i=this,k=i.settings,j=n.content,m=[],l;if(n.format==&quot;html&quot;){l=i._protect({content:j,patterns:[{pattern:/(&lt;script[^&gt;]*&gt;)(.*?)(&lt;\/script&gt;)/g},{pattern:/(&lt;style[^&gt;]*&gt;)(.*?)(&lt;\/style&gt;)/g},{pattern:/(&lt;pre[^&gt;]*&gt;)(.*?)(&lt;\/pre&gt;)/g,encode:1},{pattern:/(&lt;!--\[CDATA\[)(.*?)(\]\]--&gt;)/g}]});j=l.content;if(k.entity_encoding!==&quot;raw&quot;){j=i._encode(j)}if(!n.set){j=j.replace(/&lt;p&gt;\s+&lt;\/p&gt;|&lt;p([^&gt;]+)&gt;\s+&lt;\/p&gt;/g,k.entity_encoding==&quot;numeric&quot;?&quot;&lt;p$1&gt;&amp;#160;&lt;/p&gt;&quot;:&quot;&lt;p$1&gt;&amp;nbsp;&lt;/p&gt;&quot;);if(k.remove_linebreaks){j=j.replace(/\r?\n|\r/g,&quot; &quot;);j=j.replace(/(&lt;[^&gt;]+&gt;)\s+/g,&quot;$1 &quot;);j=j.replace(/\s+(&lt;\/[^&gt;]+&gt;)/g,&quot; $1&quot;);j=j.replace(/&lt;(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^&gt;]+)&gt;\s+/g,&quot;&lt;$1 $2&gt;&quot;);j=j.replace(/&lt;(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)&gt;\s+/g,&quot;&lt;$1&gt;&quot;);j=j.replace(/\s+&lt;\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)&gt;/g,&quot;&lt;/$1&gt;&quot;)}if(k.apply_source_formatting&amp;&amp;k.indent_mode==&quot;simple&quot;){j=j.replace(/&lt;(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^&gt;]+)&gt;\s*/g,&quot;\n&lt;$1$2$3&gt;\n&quot;);j=j.replace(/\s*&lt;(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^&gt;]+)&gt;/g,&quot;\n&lt;$1$2&gt;&quot;);j=j.replace(/&lt;\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)&gt;\s*/g,&quot;&lt;/$1&gt;\n&quot;);j=j.replace(/\n\n/g,&quot;\n&quot;)}}j=i._unprotect(j,l);j=j.replace(/&lt;!--\[CDATA\[([\s\S]+)\]\]--&gt;/g,&quot;&lt;![CDATA[$1]]&gt;&quot;);if(k.entity_encoding==&quot;raw&quot;){j=j.replace(/&lt;p&gt;&amp;nbsp;&lt;\/p&gt;|&lt;p([^&gt;]+)&gt;&amp;nbsp;&lt;\/p&gt;/g,&quot;&lt;p$1&gt;\u00a0&lt;/p&gt;&quot;)}}n.content=j},_serializeNode:function(C,m){var y=this,z=y.settings,u=y.writer,p,j,r,E,D,F,A,h,x,k,q,B,o;if(!z.node_filter||z.node_filter(C)){switch(C.nodeType){case 1:if(C.hasAttribute?C.hasAttribute(&quot;mce_bogus&quot;):C.getAttribute(&quot;mce_bogus&quot;)){return}o=false;p=C.hasChildNodes();k=C.getAttribute(&quot;mce_name&quot;)||C.nodeName.toLowerCase();if(d){if(C.scopeName!==&quot;HTML&quot;&amp;&amp;C.scopeName!==&quot;html&quot;){k=C.scopeName+&quot;:&quot;+k}}if(k.indexOf(&quot;mce:&quot;)===0){k=k.substring(4)}if(!y.validElementsRE.test(k)||(y.invalidElementsRE&amp;&amp;y.invalidElementsRE.test(k))||m){o=true;break}if(d){if(z.fix_content_duplication){if(C.mce_serialized==y.key){return}C.mce_serialized=y.key}if(k.charAt(0)==&quot;/&quot;){k=k.substring(1)}}else{if(a){if(C.nodeName===&quot;BR&quot;&amp;&amp;C.getAttribute(&quot;type&quot;)==&quot;_moz&quot;){return}}}if(y.childRules){if(y.parentElementsRE.test(y.elementName)){if(!y.childRules[y.elementName].test(k)){o=true;break}}y.elementName=k}q=y.findRule(k);k=q.name||k;if((!p&amp;&amp;q.noEmpty)||(d&amp;&amp;!k)){o=true;break}if(q.requiredAttribs){F=q.requiredAttribs;for(E=F.length-1;E&gt;=0;E--){if(this.dom.getAttrib(C,F[E])!==&quot;&quot;){break}}if(E==-1){o=true;break}}u.writeStartElement(k);if(q.attribs){for(E=0,A=q.attribs,D=A.length;E&lt;D;E++){F=A[E];x=y._getAttrib(C,F);if(x!==null){u.writeAttribute(F.name,x)}}}if(q.validAttribsRE){A=y.dom.getAttribs(C);for(E=A.length-1;E&gt;-1;E--){h=A[E];if(h.specified){F=h.nodeName.toLowerCase();if(z.invalid_attrs.test(F)||!q.validAttribsRE.test(F)){continue}B=y.findAttribRule(q,F);x=y._getAttrib(C,B,F);if(x!==null){u.writeAttribute(F,x)}}}}if(q.padd){if(p&amp;&amp;(r=C.firstChild)&amp;&amp;r.nodeType===1&amp;&amp;C.childNodes.length===1){if(r.hasAttribute?r.hasAttribute(&quot;mce_bogus&quot;):r.getAttribute(&quot;mce_bogus&quot;)){u.writeText(&quot;\u00a0&quot;)}}else{if(!p){u.writeText(&quot;\u00a0&quot;)}}}break;case 3:if(y.childRules&amp;&amp;y.parentElementsRE.test(y.elementName)){if(!y.childRules[y.elementName].test(C.nodeName)){return}}return u.writeText(C.nodeValue);case 4:return u.writeCDATA(C.nodeValue);case 8:return u.writeComment(C.nodeValue)}}else{if(C.nodeType==1){p=C.hasChildNodes()}}if(p){r=C.firstChild;while(r){y._serializeNode(r);y.elementName=k;r=r.nextSibling}}if(!o){if(p||!z.closed.test(k)){u.writeFullEndElement()}else{u.writeEndElement()}}},_protect:function(j){var i=this;j.items=j.items||[];function h(l){return l.replace(/[\r\n\\]/g,function(m){if(m===&quot;\n&quot;){return&quot;\\n&quot;}else{if(m===&quot;\\&quot;){return&quot;\\\\&quot;}}return&quot;\\r&quot;})}function k(l){return l.replace(/\\[\\rn]/g,function(m){if(m===&quot;\\n&quot;){return&quot;\n&quot;}else{if(m===&quot;\\\\&quot;){return&quot;\\&quot;}}return&quot;\r&quot;})}f(j.patterns,function(l){j.content=k(h(j.content).replace(l.pattern,function(n,o,m,p){m=k(m);if(l.encode){m=i._encode(m)}j.items.push(m);return o+&quot;&lt;!--mce:&quot;+(j.items.length-1)+&quot;--&gt;&quot;+p}))});return j},_unprotect:function(i,j){i=i.replace(/\&lt;!--mce:([0-9]+)--\&gt;/g,function(k,h){return j.items[parseInt(h)]});j.items=[];return i},_encode:function(m){var j=this,k=j.settings,i;if(k.entity_encoding!==&quot;raw&quot;){if(k.entity_encoding.indexOf(&quot;named&quot;)!=-1){j.setEntities(k.entities);i=j.entityLookup;m=m.replace(j.entitiesRE,function(h){var l;if(l=i[h]){h=&quot;&amp;&quot;+l+&quot;;&quot;}return h})}if(k.entity_encoding.indexOf(&quot;numeric&quot;)!=-1){m=m.replace(/[\u007E-\uFFFF]/g,function(h){return&quot;&amp;#&quot;+h.charCodeAt(0)+&quot;;&quot;})}}return m},_setup:function(){var h=this,i=this.settings;if(h.done){return}h.done=1;h.setRules(i.valid_elements);h.addRules(i.extended_valid_elements);h.addValidChildRules(i.valid_child_elements);if(i.invalid_elements){h.invalidElementsRE=new RegExp(&quot;^(&quot;+c(i.invalid_elements.replace(/,/g,&quot;|&quot;).toLowerCase())+&quot;)$&quot;)}if(i.attrib_value_filter){h.attribValueFilter=i.attribValueFilter}},_getAttrib:function(m,j,h){var l,k;h=h||j.name;if(j.forcedVal&amp;&amp;(k=j.forcedVal)){if(k===&quot;{$uid}&quot;){return this.dom.uniqueId()}return k}k=this.dom.getAttrib(m,h);if(this.settings.bool_attrs.test(h)&amp;&amp;k){k=(&quot;&quot;+k).toLowerCase();if(k===&quot;false&quot;||k===&quot;0&quot;){return null}k=h}switch(h){case&quot;rowspan&quot;:case&quot;colspan&quot;:if(k==&quot;1&quot;){k=&quot;&quot;}break}if(this.attribValueFilter){k=this.attribValueFilter(h,k,m)}if(j.validVals){for(l=j.validVals.length-1;l&gt;=0;l--){if(k==j.validVals[l]){break}}if(l==-1){return null}}if(k===&quot;&quot;&amp;&amp;typeof(j.defaultVal)!=&quot;undefined&quot;){k=j.defaultVal;if(k===&quot;{$uid}&quot;){return this.dom.uniqueId()}return k}else{if(h==&quot;class&quot;&amp;&amp;this.processObj.get){k=k.replace(/\s?mceItem\w+\s?/g,&quot;&quot;)}}if(k===&quot;&quot;){return null}return k}})})(tinymce);(function(tinymce){var each=tinymce.each,Event=tinymce.dom.Event;tinymce.create(&quot;tinymce.dom.ScriptLoader&quot;,{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={}},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0},markDone:function(u){this.lookup[u]={state:2,url:u}},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&amp;&amp;o.state==2){cb.call(s||this)}return o}o={state:0,url:u,func:cb,scope:s||this};if(pr){t.queue.unshift(o)}else{t.queue.push(o)}lo[u]=o;return o},load:function(u,cb,s){var t=this,o;if(o=t.lookup[u]){if(cb&amp;&amp;o.state==2){cb.call(s||t)}return o}function loadScript(u){if(Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:tinymce._addVer(u),error:t.settings.error,async:false,success:function(co){t.eval(co)}})}else{document.write('&lt;script type=&quot;text/javascript&quot; src=&quot;'+tinymce._addVer(u)+'&quot;&gt;&lt;\/script&gt;')}}if(!tinymce.is(u,&quot;string&quot;)){each(u,function(u){loadScript(u)});if(cb){cb.call(s||t)}}else{loadScript(u);if(cb){cb.call(s||t)}}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb){cb.call(s||t)}each(t.queueCallbacks,function(o){o.func.call(o.scope)})})}else{if(cb){t.queueCallbacks.push({func:cb,scope:s||t})}}},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co)}catch(ex){eval(co,w)}}else{w.execScript(co)}},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func){o.func.call(o.scope||t)}}function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--}else{load(o)}});if(l===0&amp;&amp;cb){cb.call(s||t);cb=0}}function load(o){if(o.state&gt;0){return}o.state=1;tinymce.dom.ScriptLoader.loadScript(o.url,function(){done(o);allDone()})}each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o)}else{o=lo[u]}if(o.state&gt;0){return}if(!Event.domLoaded&amp;&amp;!t.settings.strict_mode){var ix,ol=&quot;&quot;;if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone()});if(tinymce.isIE){ol=' onreadystatechange=&quot;'}else{ol=' onload=&quot;'}ol+=&quot;tinymce.dom.ScriptLoader._onLoad(this,'&quot;+u+&quot;',&quot;+ix+');&quot;'}document.write('&lt;script type=&quot;text/javascript&quot; src=&quot;'+tinymce._addVer(u)+'&quot;'+ol+&quot;&gt;&lt;\/script&gt;&quot;);if(!o.func){done(o)}}else{load(o)}});allDone()},&quot;static&quot;:{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState==&quot;complete&quot;){this._funcs[ix].call(this)}},loadScript:function(u,cb){var id=tinymce.DOM.uniqueId(),e;function done(){Event.clear(id);tinymce.DOM.remove(id);if(cb){cb.call(document,u);cb=0}}if(tinymce.isIE){tinymce.util.XHR.send({url:tinymce._addVer(u),async:false,success:function(co){window.execScript(co);done()}})}else{e=tinymce.DOM.create(&quot;script&quot;,{id:id,type:&quot;text/javascript&quot;,src:tinymce._addVer(u)});Event.add(e,&quot;load&quot;,done);(document.getElementsByTagName(&quot;head&quot;)[0]||document.body).appendChild(e)}}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader()})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create(&quot;tinymce.ui.Control&quot;,{Control:function(e,d){this.id=e;this.settings=d=d||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix=&quot;&quot;;this.scope=d.scope||this;this.disabled=0;this.active=0},setDisabled:function(d){var f;if(d!=this.disabled){f=b.get(this.id);if(f&amp;&amp;this.settings.unavailable_prefix){if(d){this.prevTitle=f.title;f.title=this.settings.unavailable_prefix+&quot;: &quot;+f.title}else{f.title=this.prevTitle}}this.setState(&quot;Disabled&quot;,d);this.setState(&quot;Enabled&quot;,!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState(&quot;Active&quot;,d);this.active=d}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create(&quot;tinymce.ui.Container:tinymce.ui.Control&quot;,{Container:function(b,a){this.parent(b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create(&quot;tinymce.ui.Separator:tinymce.ui.Control&quot;,{Separator:function(b,a){this.parent(b,a);this.classPrefix=&quot;mceSeparator&quot;},renderHTML:function(){return tinymce.DOM.createHTML(&quot;span&quot;,{&quot;class&quot;:this.classPrefix})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create(&quot;tinymce.ui.MenuItem:tinymce.ui.Control&quot;,{MenuItem:function(g,f){this.parent(g,f);this.classPrefix=&quot;mceMenuItem&quot;},setSelected:function(f){this.setState(&quot;Selected&quot;,f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create(&quot;tinymce.ui.Menu:tinymce.ui.MenuItem&quot;,{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},&quot;items&quot;,f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},&quot;items&quot;,f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},&quot;items&quot;,f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create(&quot;tinymce.ui.DropMenu:tinymce.ui.Menu&quot;,{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&amp;&amp;!g.icons){g[&quot;class&quot;]+=&quot; mceNoIcons&quot;}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix=&quot;mceMenu&quot;},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j[&quot;class&quot;]=j[&quot;class&quot;]||i[&quot;class&quot;];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},update:function(){var i=this,j=i.settings,g=c.get(&quot;menu_&quot;+i.id+&quot;_tbl&quot;),l=c.get(&quot;menu_&quot;+i.id+&quot;_co&quot;),h,k;h=j.max_width?Math.min(g.clientWidth,j.max_width):g.clientWidth;k=j.max_height?Math.min(g.clientHeight,j.max_height):g.clientHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,&quot;width&quot;,h)}if(j.max_height){c.setStyle(l,&quot;height&quot;,k);if(g.clientHeight&lt;j.max_height){c.setStyle(l,&quot;overflow&quot;,&quot;hidden&quot;)}}},showMenu:function(p,n,r){var z=this,A=z.settings,o,g=c.getViewPort(),u,l,v,q,i=2,k,j,m=z.classPrefix;z.collapse(1);if(z.isMenuVisible){return}if(!z.rendered){o=c.add(z.settings.container,z.renderNode());f(z.items,function(h){h.postRender()});z.element=new b(&quot;menu_&quot;+z.id,{blocker:1,container:A.container})}else{o=c.get(&quot;menu_&quot;+z.id)}if(!e.isOpera){c.setStyles(o,{left:-65535,top:-65535})}c.show(o);z.update();p+=A.offset_x||0;n+=A.offset_y||0;g.w-=4;g.h-=4;if(A.constrain){u=o.clientWidth-i;l=o.clientHeight-i;v=g.x+g.w;q=g.y+g.h;if((p+A.vp_offset_x+u)&gt;v){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)&gt;q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,&quot;click&quot;,function(s){var h;s=s.target;if(s&amp;&amp;(s=c.getParent(s,&quot;TR&quot;))&amp;&amp;!c.hasClass(s,m+&quot;ItemSub&quot;)){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return a.cancel(s)}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,&quot;mouseover&quot;,function(w){var h,t,s;w=w.target;if(w&amp;&amp;(w=c.getParent(w,&quot;TR&quot;))){h=z.items[w.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(w&amp;&amp;c.hasClass(w,m+&quot;ItemSub&quot;)){t=c.getRect(w);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+&quot;ItemActive&quot;)}}})}z.onShowMenu.dispatch(z);if(A.keyboard_focus){a.add(o,&quot;keydown&quot;,z._keyHandler,z);c.select(&quot;a&quot;,&quot;menu_&quot;+z.id)[0].focus();z._focusIdx=0}},hideMenu:function(j){var g=this,i=c.get(&quot;menu_&quot;+g.id),h;if(!g.isMenuVisible){return}a.remove(i,&quot;mouseover&quot;,g.mouseOverFunc);a.remove(i,&quot;click&quot;,g.mouseClickFunc);a.remove(i,&quot;keydown&quot;,g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+&quot;ItemActive&quot;)}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&amp;&amp;(h=c.get(&quot;menu_&quot;+g.id))){g._add(c.select(&quot;tbody&quot;,h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get(&quot;menu_&quot;+g.id);a.remove(h,&quot;mouseover&quot;,g.mouseOverFunc);a.remove(h,&quot;click&quot;,g.mouseClickFunc);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create(&quot;div&quot;,{id:&quot;menu_&quot;+i.id,&quot;class&quot;:j[&quot;class&quot;],style:&quot;position:absolute;left:0;top:0;z-index:200000&quot;});k=c.add(g,&quot;div&quot;,{id:&quot;menu_&quot;+i.id+&quot;_co&quot;,&quot;class&quot;:i.classPrefix+(j[&quot;class&quot;]?&quot; &quot;+j[&quot;class&quot;]:&quot;&quot;)});i.element=new b(&quot;menu_&quot;+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,&quot;span&quot;,{&quot;class&quot;:i.classPrefix+&quot;Line&quot;})}l=c.add(k,&quot;table&quot;,{id:&quot;menu_&quot;+i.id+&quot;_tbl&quot;,border:0,cellPadding:0,cellSpacing:0});h=c.add(l,&quot;tbody&quot;);f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_keyHandler:function(j){var i=this,h=j.keyCode;function g(m){var k=i._focusIdx+m,l=c.select(&quot;a&quot;,&quot;menu_&quot;+i.id)[k];if(l){i._focusIdx=k;l.focus()}}switch(h){case 38:g(-1);return;case 40:g(1);return;case 13:return;case 27:return this.hideMenu()}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,&quot;tr&quot;,{id:h.id,&quot;class&quot;:m+&quot;ItemSeparator&quot;});c.add(l,&quot;td&quot;,{&quot;class&quot;:m+&quot;ItemSeparator&quot;});if(i=l.previousSibling){c.addClass(i,&quot;mceLast&quot;)}return}i=l=c.add(j,&quot;tr&quot;,{id:h.id,&quot;class&quot;:m+&quot;Item &quot;+m+&quot;ItemEnabled&quot;});i=k=c.add(i,&quot;td&quot;);i=p=c.add(i,&quot;a&quot;,{href:&quot;javascript:;&quot;,onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;});c.addClass(k,q[&quot;class&quot;]);g=c.add(i,&quot;span&quot;,{&quot;class&quot;:&quot;mceIcon&quot;+(q.icon?&quot; mce_&quot;+q.icon:&quot;&quot;)});if(q.icon_src){c.add(g,&quot;img&quot;,{src:q.icon_src})}i=c.add(i,q.element||&quot;span&quot;,{&quot;class&quot;:&quot;mceText&quot;,title:h.settings.title},h.settings.title);if(h.settings.style){c.setAttrib(i,&quot;style&quot;,h.settings.style)}if(j.childNodes.length==1){c.addClass(l,&quot;mceFirst&quot;)}if((i=l.previousSibling)&amp;&amp;c.hasClass(i,m+&quot;ItemSeparator&quot;)){c.addClass(l,&quot;mceFirst&quot;)}if(h.collapse){c.addClass(l,m+&quot;ItemSub&quot;)}if(i=l.previousSibling){c.removeClass(i,&quot;mceLast&quot;)}c.addClass(l,&quot;mceLast&quot;)}})})(tinymce);(function(b){var a=b.DOM;b.create(&quot;tinymce.ui.Button:tinymce.ui.Control&quot;,{Button:function(d,c){this.parent(d,c);this.classPrefix=&quot;mceButton&quot;},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||&quot;&quot;);d='&lt;a id=&quot;'+this.id+'&quot; href=&quot;javascript:;&quot; class=&quot;'+f+&quot; &quot;+f+&quot;Enabled &quot;+e[&quot;class&quot;]+(c?&quot; &quot;+f+&quot;Labeled&quot;:&quot;&quot;)+'&quot; onmousedown=&quot;return false;&quot; onclick=&quot;return false;&quot; title=&quot;'+a.encode(e.title)+'&quot;&gt;';if(e.image){d+='&lt;img class=&quot;mceIcon&quot; src=&quot;'+e.image+'&quot; /&gt;'+c+&quot;&lt;/a&gt;&quot;}else{d+='&lt;span class=&quot;mceIcon '+e[&quot;class&quot;]+'&quot;&gt;&lt;/span&gt;'+(c?'&lt;span class=&quot;'+f+'Label&quot;&gt;'+c+&quot;&lt;/span&gt;&quot;:&quot;&quot;)+&quot;&lt;/a&gt;&quot;}return d},postRender:function(){var c=this,d=c.settings;b.dom.Event.add(c.id,&quot;click&quot;,function(f){if(!c.isDisabled()){return d.onclick.call(d.scope,f)}})}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create(&quot;tinymce.ui.ListBox:tinymce.ui.Control&quot;,{ListBox:function(h,g){var f=this;f.parent(h,g);f.items=[];f.onChange=new a(f);f.onPostRender=new a(f);f.onAdd=new a(f);f.onRenderMenu=new d.util.Dispatcher(this);f.classPrefix=&quot;mceListBox&quot;},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&amp;&amp;h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){var g=this,h,i;if(f!=g.selectedIndex){h=c.get(g.id+&quot;_text&quot;);i=g.items[f];if(i){g.selectedValue=i.value;g.selectedIndex=f;c.setHTML(h,c.encode(i.title));c.removeClass(h,&quot;mceTitle&quot;)}else{c.setHTML(h,c.encode(g.settings.title));c.addClass(h,&quot;mceTitle&quot;);g.selectedValue=g.selectedIndex=null}h=0}},add:function(i,f,h){var g=this;h=h||{};h=d.extend(h,{title:i,value:f});g.items.push(h);g.onAdd.dispatch(g,h)},getLength:function(){return this.items.length},renderHTML:function(){var i=&quot;&quot;,f=this,g=f.settings,j=f.classPrefix;i='&lt;table id=&quot;'+f.id+'&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;'+j+&quot; &quot;+j+&quot;Enabled&quot;+(g[&quot;class&quot;]?(&quot; &quot;+g[&quot;class&quot;]):&quot;&quot;)+'&quot;&gt;&lt;tbody&gt;&lt;tr&gt;';i+=&quot;&lt;td&gt;&quot;+c.createHTML(&quot;a&quot;,{id:f.id+&quot;_text&quot;,href:&quot;javascript:;&quot;,&quot;class&quot;:&quot;mceText&quot;,onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;},c.encode(f.settings.title))+&quot;&lt;/td&gt;&quot;;i+=&quot;&lt;td&gt;&quot;+c.createHTML(&quot;a&quot;,{id:f.id+&quot;_open&quot;,tabindex:-1,href:&quot;javascript:;&quot;,&quot;class&quot;:&quot;mceOpen&quot;,onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;},&quot;&lt;span&gt;&lt;/span&gt;&quot;)+&quot;&lt;/td&gt;&quot;;i+=&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;;return i},showMenu:function(){var g=this,j,i,h=c.get(this.id),f;if(g.isDisabled()||g.items.length==0){return}if(g.menu&amp;&amp;g.menu.isMenuVisible){return g.hideMenu()}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}j=c.getPos(this.settings.menu_container);i=c.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.keyboard_focus=!d.isOpera;if(g.oldID){f.items[g.oldID].setSelected(0)}e(g.items,function(k){if(k.value===g.selectedValue){f.items[k.id].setSelected(1);g.oldID=k.id}});f.showMenu(0,h.clientHeight);b.add(c.doc,&quot;mousedown&quot;,g.hideMenu,g);c.addClass(g.id,g.classPrefix+&quot;Selected&quot;)},hideMenu:function(g){var f=this;if(g&amp;&amp;g.type==&quot;mousedown&quot;&amp;&amp;(g.target.id==f.id+&quot;_text&quot;||g.target.id==f.id+&quot;_open&quot;)){return}if(!g||!c.getParent(g.target,&quot;.mceMenu&quot;)){c.removeClass(f.id,f.classPrefix+&quot;Selected&quot;);b.remove(c.doc,&quot;mousedown&quot;,f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}},renderMenu:function(){var g=this,f;f=g.settings.control_manager.createDropMenu(g.id+&quot;_menu&quot;,{menu_line:1,&quot;class&quot;:g.classPrefix+&quot;Menu mceNoIcons&quot;,max_width:150,max_height:150});f.onHideMenu.add(g.hideMenu,g);f.add({title:g.settings.title,&quot;class&quot;:&quot;mceMenuItemTitle&quot;,onclick:function(){if(g.settings.onselect(&quot;&quot;)!==false){g.select(&quot;&quot;)}}});e(g.items,function(h){h.id=c.uniqueId();h.onclick=function(){if(g.settings.onselect(h.value)!==false){g.select(h.value)}};f.add(h)});g.onRenderMenu.dispatch(g,f);g.menu=f},postRender:function(){var f=this,g=f.classPrefix;b.add(f.id,&quot;click&quot;,f.showMenu,f);b.add(f.id+&quot;_text&quot;,&quot;focus&quot;,function(h){if(!f._focused){f.keyDownHandler=b.add(f.id+&quot;_text&quot;,&quot;keydown&quot;,function(l){var i=-1,j,k=l.keyCode;e(f.items,function(m,n){if(f.selectedValue==m.value){i=n}});if(k==38){j=f.items[i-1]}else{if(k==40){j=f.items[i+1]}else{if(k==13){j=f.selectedValue;f.selectedValue=null;f.settings.onselect(j);return b.cancel(l)}}}if(j){f.hideMenu();f.select(j.value)}})}f._focused=1});b.add(f.id+&quot;_text&quot;,&quot;blur&quot;,function(){b.remove(f.id+&quot;_text&quot;,&quot;keydown&quot;,f.keyDownHandler);f._focused=0});if(d.isIE6||!c.boxModel){b.add(f.id,&quot;mouseover&quot;,function(){if(!c.hasClass(f.id,g+&quot;Disabled&quot;)){c.addClass(f.id,g+&quot;Hover&quot;)}});b.add(f.id,&quot;mouseout&quot;,function(){if(!c.hasClass(f.id,g+&quot;Disabled&quot;)){c.removeClass(f.id,g+&quot;Hover&quot;)}})}f.onPostRender.dispatch(f,c.get(f.id))},destroy:function(){this.parent();b.clear(this.id+&quot;_text&quot;)}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create(&quot;tinymce.ui.NativeListBox:tinymce.ui.ListBox&quot;,{NativeListBox:function(g,f){this.parent(g,f);this.classPrefix=&quot;mceNativeListBox&quot;},setDisabled:function(f){c.get(this.id).disabled=f},isDisabled:function(){return c.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&amp;&amp;h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){c.get(this.id).selectedIndex=f+1;this.selectedValue=this.items[f]?this.items[f].value:null},add:function(j,g,f){var i,h=this;f=f||{};f.value=g;if(h.isRendered()){c.add(c.get(this.id),&quot;option&quot;,f,j)}i={title:j,value:g,attribs:f};h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return c.get(this.id).options.length-1},renderHTML:function(){var g,f=this;g=c.createHTML(&quot;option&quot;,{value:&quot;&quot;},&quot;-- &quot;+f.settings.title+&quot; --&quot;);e(f.items,function(h){g+=c.createHTML(&quot;option&quot;,{value:h.value},h.title)});g=c.createHTML(&quot;select&quot;,{id:f.id,&quot;class&quot;:&quot;mceNativeListBox&quot;},g);return g},postRender:function(){var g=this,h;g.rendered=true;function f(j){var i=g.items[j.target.selectedIndex-1];if(i&amp;&amp;(i=i.value)){g.onChange.dispatch(g,i);if(g.settings.onselect){g.settings.onselect(i)}}}b.add(g.id,&quot;change&quot;,f);b.add(g.id,&quot;keydown&quot;,function(j){var i;b.remove(g.id,&quot;change&quot;,h);i=b.add(g.id,&quot;blur&quot;,function(){b.add(g.id,&quot;change&quot;,f);b.remove(g.id,&quot;blur&quot;,i)});if(j.keyCode==13||j.keyCode==32){f(j);return b.cancel(j)}});g.onPostRender.dispatch(g,c.get(g.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create(&quot;tinymce.ui.MenuButton:tinymce.ui.Button&quot;,{MenuButton:function(f,e){this.parent(f,e);this.onRenderMenu=new c.util.Dispatcher(this);e.menu_container=e.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.clientHeight);a.add(b.doc,&quot;mousedown&quot;,g.hideMenu,g);g.setState(&quot;Selected&quot;,1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+&quot;_menu&quot;,{menu_line:1,&quot;class&quot;:this.classPrefix+&quot;Menu&quot;,icons:f.settings.icons});e.onHideMenu.add(f.hideMenu,f);f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&amp;&amp;g.type==&quot;mousedown&quot;&amp;&amp;b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+&quot;_open&quot;})){return}if(!g||!b.getParent(g.target,&quot;.mceMenu&quot;)){f.setState(&quot;Selected&quot;,0);a.remove(b.doc,&quot;mousedown&quot;,f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,&quot;click&quot;,function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create(&quot;tinymce.ui.SplitButton:tinymce.ui.MenuButton&quot;,{SplitButton:function(f,e){this.parent(f,e);this.classPrefix=&quot;mceSplitButton&quot;},renderHTML:function(){var i,f=this,g=f.settings,e;i=&quot;&lt;tbody&gt;&lt;tr&gt;&quot;;if(g.image){e=b.createHTML(&quot;img &quot;,{src:g.image,&quot;class&quot;:&quot;mceAction &quot;+g[&quot;class&quot;]})}else{e=b.createHTML(&quot;span&quot;,{&quot;class&quot;:&quot;mceAction &quot;+g[&quot;class&quot;]},&quot;&quot;)}i+=&quot;&lt;td&gt;&quot;+b.createHTML(&quot;a&quot;,{id:f.id+&quot;_action&quot;,href:&quot;javascript:;&quot;,&quot;class&quot;:&quot;mceAction &quot;+g[&quot;class&quot;],onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;,title:g.title},e)+&quot;&lt;/td&gt;&quot;;e=b.createHTML(&quot;span&quot;,{&quot;class&quot;:&quot;mceOpen &quot;+g[&quot;class&quot;]});i+=&quot;&lt;td&gt;&quot;+b.createHTML(&quot;a&quot;,{id:f.id+&quot;_open&quot;,href:&quot;javascript:;&quot;,&quot;class&quot;:&quot;mceOpen &quot;+g[&quot;class&quot;],onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;,title:g.title},e)+&quot;&lt;/td&gt;&quot;;i+=&quot;&lt;/tr&gt;&lt;/tbody&gt;&quot;;return b.createHTML(&quot;table&quot;,{id:f.id,&quot;class&quot;:&quot;mceSplitButton mceSplitButtonEnabled &quot;+g[&quot;class&quot;],cellpadding:&quot;0&quot;,cellspacing:&quot;0&quot;,onmousedown:&quot;return false;&quot;,title:g.title},i)},postRender:function(){var e=this,f=e.settings;if(f.onclick){a.add(e.id+&quot;_action&quot;,&quot;click&quot;,function(){if(!e.isDisabled()){f.onclick(e.value)}})}a.add(e.id+&quot;_open&quot;,&quot;click&quot;,e.showMenu,e);a.add(e.id+&quot;_open&quot;,&quot;focus&quot;,function(){e._focused=1});a.add(e.id+&quot;_open&quot;,&quot;blur&quot;,function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,&quot;mouseover&quot;,function(){if(!b.hasClass(e.id,&quot;mceSplitButtonDisabled&quot;)){b.addClass(e.id,&quot;mceSplitButtonHover&quot;)}});a.add(e.id,&quot;mouseout&quot;,function(){if(!b.hasClass(e.id,&quot;mceSplitButtonDisabled&quot;)){b.removeClass(e.id,&quot;mceSplitButtonHover&quot;)}})}},destroy:function(){this.parent();a.clear(this.id+&quot;_action&quot;);a.clear(this.id+&quot;_open&quot;)}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create(&quot;tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton&quot;,{ColorSplitButton:function(h,g){var f=this;f.parent(h,g);f.settings=g=d.extend({colors:&quot;000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF&quot;,grid_width:8,default_color:&quot;#888888&quot;},f.settings);f.onShowMenu=new d.util.Dispatcher(f);f.onHideMenu=new d.util.Dispatcher(f);f.value=g.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+&quot;_menu&quot;);c.addClass(i,&quot;mceSplitButtonSelected&quot;);h=c.getPos(i);c.setStyles(f.id+&quot;_menu&quot;,{left:h.x,top:h.y+i.clientHeight,zIndex:200000});i=0;a.add(c.doc,&quot;mousedown&quot;,f.hideMenu,f);if(f._focused){f._keyHandler=a.add(f.id+&quot;_menu&quot;,&quot;keydown&quot;,function(k){if(k.keyCode==27){f.hideMenu()}});c.select(&quot;a&quot;,f.id+&quot;_menu&quot;)[0].focus()}f.onShowMenu.dispatch(f);f.isMenuVisible=1},hideMenu:function(g){var f=this;if(g&amp;&amp;g.type==&quot;mousedown&quot;&amp;&amp;c.getParent(g.target,function(h){return h.id===f.id+&quot;_open&quot;})){return}if(!g||!c.getParent(g.target,&quot;.mceSplitButtonMenu&quot;)){c.removeClass(f.id,&quot;mceSplitButtonSelected&quot;);a.remove(c.doc,&quot;mousedown&quot;,f.hideMenu,f);a.remove(f.id+&quot;_menu&quot;,&quot;keydown&quot;,f._keyHandler);c.hide(f.id+&quot;_menu&quot;)}f.onHideMenu.dispatch(f);f.isMenuVisible=0},renderMenu:function(){var k=this,f,j=0,l=k.settings,p,h,o,g;g=c.add(l.menu_container,&quot;div&quot;,{id:k.id+&quot;_menu&quot;,&quot;class&quot;:l.menu_class+&quot; &quot;+l[&quot;class&quot;],style:&quot;position:absolute;left:0;top:-1000px;&quot;});f=c.add(g,&quot;div&quot;,{&quot;class&quot;:l[&quot;class&quot;]+&quot; mceSplitButtonMenu&quot;});c.add(f,&quot;span&quot;,{&quot;class&quot;:&quot;mceMenuLine&quot;});p=c.add(f,&quot;table&quot;,{&quot;class&quot;:&quot;mceColorSplitMenu&quot;});h=c.add(p,&quot;tbody&quot;);j=0;e(b(l.colors,&quot;array&quot;)?l.colors:l.colors.split(&quot;,&quot;),function(i){i=i.replace(/^#/,&quot;&quot;);if(!j--){o=c.add(h,&quot;tr&quot;);j=l.grid_width-1}p=c.add(o,&quot;td&quot;);p=c.add(p,&quot;a&quot;,{href:&quot;javascript:;&quot;,style:{backgroundColor:&quot;#&quot;+i},mce_color:&quot;#&quot;+i})});if(l.more_colors_func){p=c.add(h,&quot;tr&quot;);p=c.add(p,&quot;td&quot;,{colspan:l.grid_width,&quot;class&quot;:&quot;mceMoreColors&quot;});p=c.add(p,&quot;a&quot;,{id:k.id+&quot;_more&quot;,href:&quot;javascript:;&quot;,onclick:&quot;return false;&quot;,&quot;class&quot;:&quot;mceMoreColors&quot;},l.more_colors_title);a.add(p,&quot;click&quot;,function(i){l.more_colors_func.call(l.more_colors_scope||this);return a.cancel(i)})}c.addClass(f,&quot;mceColorSplitMenu&quot;);a.add(k.id+&quot;_menu&quot;,&quot;click&quot;,function(i){var m;i=i.target;if(i.nodeName==&quot;A&quot;&amp;&amp;(m=i.getAttribute(&quot;mce_color&quot;))){k.setColor(m)}return a.cancel(i)});return g},setColor:function(g){var f=this;c.setStyle(f.id+&quot;_preview&quot;,&quot;backgroundColor&quot;,g);f.value=g;f.hideMenu();f.settings.onselect(g)},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+&quot;_action&quot;,&quot;div&quot;,{id:g+&quot;_preview&quot;,&quot;class&quot;:&quot;mceColorPreview&quot;});c.setStyle(f.id+&quot;_preview&quot;,&quot;backgroundColor&quot;,f.value)},destroy:function(){this.parent();a.clear(this.id+&quot;_menu&quot;);a.clear(this.id+&quot;_more&quot;);c.remove(this.id+&quot;_menu&quot;)}})})(tinymce);tinymce.create(&quot;tinymce.ui.Toolbar:tinymce.ui.Container&quot;,{renderHTML:function(){var l=this,e=&quot;&quot;,g,j,b=tinymce.DOM,m=l.settings,d,a,f,k;k=l.controls;for(d=0;d&lt;k.length;d++){j=k[d];a=k[d-1];f=k[d+1];if(d===0){g=&quot;mceToolbarStart&quot;;if(j.Button){g+=&quot; mceToolbarStartButton&quot;}else{if(j.SplitButton){g+=&quot; mceToolbarStartSplitButton&quot;}else{if(j.ListBox){g+=&quot; mceToolbarStartListBox&quot;}}}e+=b.createHTML(&quot;td&quot;,{&quot;class&quot;:g},b.createHTML(&quot;span&quot;,null,&quot;&lt;!-- IE --&gt;&quot;))}if(a&amp;&amp;j.ListBox){if(a.Button||a.SplitButton){e+=b.createHTML(&quot;td&quot;,{&quot;class&quot;:&quot;mceToolbarEnd&quot;},b.createHTML(&quot;span&quot;,null,&quot;&lt;!-- IE --&gt;&quot;))}}if(b.stdMode){e+='&lt;td style=&quot;position: relative&quot;&gt;'+j.renderHTML()+&quot;&lt;/td&gt;&quot;}else{e+=&quot;&lt;td&gt;&quot;+j.renderHTML()+&quot;&lt;/td&gt;&quot;}if(f&amp;&amp;j.ListBox){if(f.Button||f.SplitButton){e+=b.createHTML(&quot;td&quot;,{&quot;class&quot;:&quot;mceToolbarStart&quot;},b.createHTML(&quot;span&quot;,null,&quot;&lt;!-- IE --&gt;&quot;))}}}g=&quot;mceToolbarEnd&quot;;if(j.Button){g+=&quot; mceToolbarEndButton&quot;}else{if(j.SplitButton){g+=&quot; mceToolbarEndSplitButton&quot;}else{if(j.ListBox){g+=&quot; mceToolbarEndListBox&quot;}}}e+=b.createHTML(&quot;td&quot;,{&quot;class&quot;:g},b.createHTML(&quot;span&quot;,null,&quot;&lt;!-- IE --&gt;&quot;));return b.createHTML(&quot;table&quot;,{id:l.id,&quot;class&quot;:&quot;mceToolbar&quot;+(m[&quot;class&quot;]?&quot; &quot;+m[&quot;class&quot;]:&quot;&quot;),cellpadding:&quot;0&quot;,cellspacing:&quot;0&quot;,align:l.settings.align||&quot;&quot;},&quot;&lt;tbody&gt;&lt;tr&gt;&quot;+e+&quot;&lt;/tr&gt;&lt;/tbody&gt;&quot;)}});(function(b){var a=b.util.Dispatcher,c=b.each;b.create(&quot;tinymce.AddOnManager&quot;,{items:[],urls:{},lookup:{},onAdd:new a(this),get:function(d){return this.lookup[d]},requireLangPack:function(f){var d,e=b.EditorManager.settings;if(e&amp;&amp;e.language){d=this.urls[f]+&quot;/langs/&quot;+e.language+&quot;.js&quot;;if(!b.dom.Event.domLoaded&amp;&amp;!e.strict_mode){b.ScriptLoader.load(d)}else{b.ScriptLoader.add(d)}}},add:function(e,d){this.items.push(d);this.lookup[e]=d;this.onAdd.dispatch(this,e,d);return d},load:function(h,e,d,g){var f=this;if(f.urls[h]){return}if(e.indexOf(&quot;/&quot;)!=0&amp;&amp;e.indexOf(&quot;://&quot;)==-1){e=b.baseURL+&quot;/&quot;+e}f.urls[h]=e.substring(0,e.lastIndexOf(&quot;/&quot;));b.ScriptLoader.add(e,d,g)}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(f){var g=f.each,h=f.extend,e=f.DOM,a=f.dom.Event,c=f.ThemeManager,b=f.PluginManager,d=f.explode;f.create(&quot;static tinymce.EditorManager&quot;,{editors:{},i18n:{},activeEditor:null,preInit:function(){var i=this,j=window.location;f.documentBaseURL=j.href.replace(/[\?#].*$/,&quot;&quot;).replace(/[\/\\][^\/]+$/,&quot;&quot;);if(!/[\/\\]$/.test(f.documentBaseURL)){f.documentBaseURL+=&quot;/&quot;}f.baseURL=new f.util.URI(f.documentBaseURL).toAbsolute(f.baseURL);f.EditorManager.baseURI=new f.util.URI(f.baseURL);if(document.domain&amp;&amp;j.hostname!=document.domain){f.relaxedDomain=document.domain}i.onBeforeUnload=new f.util.Dispatcher(i);a.add(window,&quot;beforeunload&quot;,function(k){i.onBeforeUnload.dispatch(i,k)})},init:function(q){var p=this,l,k=f.ScriptLoader,o,n,i=[],m;function j(u,v,r){var t=u[v];if(!t){return}if(f.is(t,&quot;string&quot;)){r=t.replace(/\.\w+$/,&quot;&quot;);r=r?f.resolve(r):0;t=f.resolve(t)}return t.apply(r||this,Array.prototype.slice.call(arguments,2))}q=h({theme:&quot;simple&quot;,language:&quot;en&quot;,strict_loading_mode:document.contentType==&quot;application/xhtml+xml&quot;},q);p.settings=q;if(!a.domLoaded&amp;&amp;!q.strict_loading_mode){if(q.language){k.add(f.baseURL+&quot;/langs/&quot;+q.language+&quot;.js&quot;)}if(q.theme&amp;&amp;q.theme.charAt(0)!=&quot;-&quot;&amp;&amp;!c.urls[q.theme]){c.load(q.theme,&quot;themes/&quot;+q.theme+&quot;/editor_template&quot;+f.suffix+&quot;.js&quot;)}if(q.plugins){l=d(q.plugins);if(f.inArray(l,&quot;compat2x&quot;)!=-1){b.load(&quot;compat2x&quot;,&quot;plugins/compat2x/editor_plugin&quot;+f.suffix+&quot;.js&quot;)}g(l,function(r){if(r&amp;&amp;r.charAt(0)!=&quot;-&quot;&amp;&amp;!b.urls[r]){if(!f.isWebKit&amp;&amp;r==&quot;safari&quot;){return}b.load(r,&quot;plugins/&quot;+r+&quot;/editor_plugin&quot;+f.suffix+&quot;.js&quot;)}})}k.loadQueue()}a.add(document,&quot;init&quot;,function(){var r,t;j(q,&quot;onpageload&quot;);if(q.browsers){r=false;g(d(q.browsers),function(u){switch(u){case&quot;ie&quot;:case&quot;msie&quot;:if(f.isIE){r=true}break;case&quot;gecko&quot;:if(f.isGecko){r=true}break;case&quot;safari&quot;:case&quot;webkit&quot;:if(f.isWebKit){r=true}break;case&quot;opera&quot;:if(f.isOpera){r=true}break}});if(!r){return}}switch(q.mode){case&quot;exact&quot;:r=q.elements||&quot;&quot;;if(r.length&gt;0){g(d(r),function(u){if(e.get(u)){m=new f.Editor(u,q);i.push(m);m.render(1)}else{o=0;g(document.forms,function(v){g(v.elements,function(w){if(w.name===u){u=&quot;mce_editor_&quot;+o;e.setAttrib(w,&quot;id&quot;,u);m=new f.Editor(u,q);i.push(m);m.render(1)}})})}})}break;case&quot;textareas&quot;:case&quot;specific_textareas&quot;:function s(v,u){return u.constructor===RegExp?u.test(v.className):e.hasClass(v,u)}g(e.select(&quot;textarea&quot;),function(u){if(q.editor_deselector&amp;&amp;s(u,q.editor_deselector)){return}if(!q.editor_selector||s(u,q.editor_selector)){n=e.get(u.name);if(!u.id&amp;&amp;!n){u.id=u.name}if(!u.id||p.get(u.id)){u.id=e.uniqueId()}m=new f.Editor(u.id,q);i.push(m);m.render(1)}});break}if(q.oninit){r=t=0;g(i,function(u){t++;if(!u.initialized){u.onInit.add(function(){r++;if(r==t){j(q,&quot;oninit&quot;)}})}else{r++}if(r==t){j(q,&quot;oninit&quot;)}})}})},get:function(i){return this.editors[i]},getInstanceById:function(i){return this.get(i)},add:function(i){this.editors[i.id]=i;this._setActive(i);return i},remove:function(j){var i=this;if(!i.editors[j.id]){return null}delete i.editors[j.id];if(i.activeEditor==j){g(i.editors,function(k){i._setActive(k);return false})}j.destroy();return j},execCommand:function(o,m,l){var n=this,k=n.get(l),i;switch(o){case&quot;mceFocus&quot;:k.focus();return true;case&quot;mceAddEditor&quot;:case&quot;mceAddControl&quot;:if(!n.get(l)){new f.Editor(l,n.settings).render()}return true;case&quot;mceAddFrameControl&quot;:i=l.window;i.tinyMCE=tinyMCE;i.tinymce=f;f.DOM.doc=i.document;f.DOM.win=i;k=new f.Editor(l.element_id,l);k.render();if(f.isIE){function j(){k.destroy();i.detachEvent(&quot;onunload&quot;,j);i=i.tinyMCE=i.tinymce=null}i.attachEvent(&quot;onunload&quot;,j)}l.page_window=null;return true;case&quot;mceRemoveEditor&quot;:case&quot;mceRemoveControl&quot;:if(k){k.remove()}return true;case&quot;mceToggleEditor&quot;:if(!k){n.execCommand(&quot;mceAddControl&quot;,0,l);return true}if(k.isHidden()){k.show()}else{k.hide()}return true}if(n.activeEditor){return n.activeEditor.execCommand(o,m,l)}return false},execInstanceCommand:function(m,l,k,j){var i=this.get(m);if(i){return i.execCommand(l,k,j)}return false},triggerSave:function(){g(this.editors,function(i){i.save()})},addI18n:function(k,l){var i,j=this.i18n;if(!f.is(k,&quot;string&quot;)){g(k,function(n,m){g(n,function(q,p){g(q,function(s,r){if(p===&quot;common&quot;){j[m+&quot;.&quot;+r]=s}else{j[m+&quot;.&quot;+p+&quot;.&quot;+r]=s}})})})}else{g(l,function(n,m){j[k+&quot;.&quot;+m]=n})}},_setActive:function(i){this.selectedInstance=this.activeEditor=i}});f.EditorManager.preInit()})(tinymce);var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(n){var o=n.DOM,k=n.dom.Event,f=n.extend,l=n.util.Dispatcher;var j=n.each,a=n.isGecko,b=n.isIE,e=n.isWebKit;var d=n.is,h=n.ThemeManager,c=n.PluginManager,i=n.EditorManager;var p=n.inArray,m=n.grep,g=n.explode;n.create(&quot;tinymce.Editor&quot;,{Editor:function(u,r){var q=this;q.id=q.editorId=u;q.execCommands={};q.queryStateCommands={};q.queryValueCommands={};q.plugins={};j([&quot;onPreInit&quot;,&quot;onBeforeRenderUI&quot;,&quot;onPostRender&quot;,&quot;onInit&quot;,&quot;onRemove&quot;,&quot;onActivate&quot;,&quot;onDeactivate&quot;,&quot;onClick&quot;,&quot;onEvent&quot;,&quot;onMouseUp&quot;,&quot;onMouseDown&quot;,&quot;onDblClick&quot;,&quot;onKeyDown&quot;,&quot;onKeyUp&quot;,&quot;onKeyPress&quot;,&quot;onContextMenu&quot;,&quot;onSubmit&quot;,&quot;onReset&quot;,&quot;onPaste&quot;,&quot;onPreProcess&quot;,&quot;onPostProcess&quot;,&quot;onBeforeSetContent&quot;,&quot;onBeforeGetContent&quot;,&quot;onSetContent&quot;,&quot;onGetContent&quot;,&quot;onLoadContent&quot;,&quot;onSaveContent&quot;,&quot;onNodeChange&quot;,&quot;onChange&quot;,&quot;onBeforeExecCommand&quot;,&quot;onExecCommand&quot;,&quot;onUndo&quot;,&quot;onRedo&quot;,&quot;onVisualAid&quot;,&quot;onSetProgressState&quot;],function(s){q[s]=new l(q)});q.settings=r=f({id:u,language:&quot;en&quot;,docs_language:&quot;en&quot;,theme:&quot;simple&quot;,skin:&quot;default&quot;,delta_width:0,delta_height:0,popup_css:&quot;&quot;,plugins:&quot;&quot;,document_base_url:n.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;',visual_table_class:&quot;mceItemTable&quot;,visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:&quot;xx-small,x-small,small,medium,large,x-large,xx-large&quot;,apply_source_formatting:1,directionality:&quot;ltr&quot;,forced_root_block:&quot;p&quot;,valid_elements:&quot;@[id|class|style|title|dir&lt;ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big&quot;,hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:&quot;30px&quot;,keep_styles:1,fix_table_elements:1,removeformat_selector:&quot;span,b,strong,em,i,font,u,strike&quot;},r);q.documentBaseURI=new n.util.URI(r.document_base_url||n.documentBaseURL,{base_uri:tinyMCE.baseURI});q.baseURI=i.baseURI;q.execCallback(&quot;setup&quot;,q)},render:function(u){var v=this,w=v.settings,x=v.id,q=n.ScriptLoader;if(!k.domLoaded){k.add(document,&quot;init&quot;,function(){v.render()});return}if(!u){w.strict_loading_mode=1;tinyMCE.settings=w}if(!v.getElement()){return}if(w.strict_loading_mode){q.settings.strict_mode=w.strict_loading_mode;n.DOM.settings.strict=1}if(!/TEXTAREA|INPUT/i.test(v.getElement().nodeName)&amp;&amp;w.hidden_input&amp;&amp;o.getParent(x,&quot;form&quot;)){o.insertAfter(o.create(&quot;input&quot;,{type:&quot;hidden&quot;,name:x}),x)}if(n.WindowManager){v.windowManager=new n.WindowManager(v)}if(w.encoding==&quot;xml&quot;){v.onGetContent.add(function(s,t){if(t.save){t.content=o.encode(t.content)}})}if(w.add_form_submit_trigger){v.onSubmit.addToTop(function(){if(v.initialized){v.save();v.isNotDirty=1}})}if(w.add_unload_trigger){v._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(v.initialized&amp;&amp;!v.destroyed&amp;&amp;!v.isHidden()){v.save({format:&quot;raw&quot;,no_events:true})}})}n.addUnload(v.destroy,v);if(w.submit_patch){v.onBeforeRenderUI.add(function(){var s=v.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&amp;&amp;!s.submit.length){v.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){i.triggerSave();v.isNotDirty=1;return this._mceOldSubmit(this)}}s=null})}function r(){if(w.language){q.add(n.baseURL+&quot;/langs/&quot;+w.language+&quot;.js&quot;)}if(w.theme&amp;&amp;w.theme.charAt(0)!=&quot;-&quot;&amp;&amp;!h.urls[w.theme]){h.load(w.theme,&quot;themes/&quot;+w.theme+&quot;/editor_template&quot;+n.suffix+&quot;.js&quot;)}j(g(w.plugins),function(s){if(s&amp;&amp;s.charAt(0)!=&quot;-&quot;&amp;&amp;!c.urls[s]){if(!e&amp;&amp;s==&quot;safari&quot;){return}c.load(s,&quot;plugins/&quot;+s+&quot;/editor_plugin&quot;+n.suffix+&quot;.js&quot;)}});q.loadQueue(function(){if(!v.removed){v.init()}})}if(w.plugins.indexOf(&quot;compat2x&quot;)!=-1){c.load(&quot;compat2x&quot;,&quot;plugins/compat2x/editor_plugin&quot;+n.suffix+&quot;.js&quot;);q.loadQueue(r)}else{r()}},init:function(){var v,F=this,G=F.settings,C,z,B=F.getElement(),r,q,D,y,A,E;i.add(F);if(G.theme){G.theme=G.theme.replace(/-/,&quot;&quot;);r=h.get(G.theme);F.theme=new r();if(F.theme.init&amp;&amp;G.init_theme){F.theme.init(F,h.urls[G.theme]||n.documentBaseURL.replace(/\/$/,&quot;&quot;))}}j(g(G.plugins.replace(/\-/g,&quot;&quot;)),function(w){var H=c.get(w),t=c.urls[w]||n.documentBaseURL.replace(/\/$/,&quot;&quot;),s;if(H){s=new H(F,t);F.plugins[w]=s;if(s.init){s.init(F,t)}}});if(G.popup_css!==false){if(G.popup_css){G.popup_css=F.documentBaseURI.toAbsolute(G.popup_css)}else{G.popup_css=F.baseURI.toAbsolute(&quot;themes/&quot;+G.theme+&quot;/skins/&quot;+G.skin+&quot;/dialog.css&quot;)}}if(G.popup_css_add){G.popup_css+=&quot;,&quot;+F.documentBaseURI.toAbsolute(G.popup_css_add)}F.controlManager=new n.ControlManager(F);F.undoManager=new n.UndoManager(F);F.undoManager.onAdd.add(function(t,s){if(!s.initial){return F.onChange.dispatch(F,s,t)}});F.undoManager.onUndo.add(function(t,s){return F.onUndo.dispatch(F,s,t)});F.undoManager.onRedo.add(function(t,s){return F.onRedo.dispatch(F,s,t)});if(G.custom_undo_redo){F.onExecCommand.add(function(t,w,u,H,s){if(w!=&quot;Undo&quot;&amp;&amp;w!=&quot;Redo&quot;&amp;&amp;w!=&quot;mceRepaint&quot;&amp;&amp;(!s||!s.skip_undo)){F.undoManager.add()}})}F.onExecCommand.add(function(s,t){if(!/^(FontName|FontSize)$/.test(t)){F.nodeChanged()}});if(a){function x(s,t){if(!t||!t.initial){F.execCommand(&quot;mceRepaint&quot;)}}F.onUndo.add(x);F.onRedo.add(x);F.onSetContent.add(x)}F.onBeforeRenderUI.dispatch(F,F.controlManager);if(G.render_ui){C=G.width||B.style.width||B.offsetWidth;z=G.height||B.style.height||B.offsetHeight;F.orgDisplay=B.style.display;E=/^[0-9\.]+(|px)$/i;if(E.test(&quot;&quot;+C)){C=Math.max(parseInt(C)+(r.deltaWidth||0),100)}if(E.test(&quot;&quot;+z)){z=Math.max(parseInt(z)+(r.deltaHeight||0),100)}r=F.theme.renderUI({targetNode:B,width:C,height:z,deltaWidth:G.delta_width,deltaHeight:G.delta_height});F.editorContainer=r.editorContainer}o.setStyles(r.sizeContainer||r.editorContainer,{width:C,height:z});z=(r.iframeHeight||z)+(typeof(z)==&quot;number&quot;?(r.deltaHeight||0):&quot;&quot;);if(z&lt;100){z=100}F.iframeHTML=G.doctype+'&lt;html&gt;&lt;head xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;base href=&quot;'+F.documentBaseURI.getURI()+'&quot; /&gt;';F.iframeHTML+='&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;';if(n.relaxedDomain){F.iframeHTML+='&lt;script type=&quot;text/javascript&quot;&gt;document.domain = &quot;'+n.relaxedDomain+'&quot;;&lt;\/script&gt;'}y=G.body_id||&quot;tinymce&quot;;if(y.indexOf(&quot;=&quot;)!=-1){y=F.getParam(&quot;body_id&quot;,&quot;&quot;,&quot;hash&quot;);y=y[F.id]||y}A=G.body_class||&quot;&quot;;if(A.indexOf(&quot;=&quot;)!=-1){A=F.getParam(&quot;body_class&quot;,&quot;&quot;,&quot;hash&quot;);A=A[F.id]||&quot;&quot;}F.iframeHTML+='&lt;/head&gt;&lt;body id=&quot;'+y+'&quot; class=&quot;mceContentBody '+A+'&quot;&gt;&lt;/body&gt;&lt;/html&gt;';if(n.relaxedDomain){if(b||(n.isOpera&amp;&amp;parseFloat(opera.version())&gt;=9.5)){D='javascript:(function(){document.open();document.domain=&quot;'+document.domain+'&quot;;var ed = window.parent.tinyMCE.get(&quot;'+F.id+'&quot;);document.write(ed.iframeHTML);document.close();ed.setupIframe();})()'}else{if(n.isOpera){D='javascript:(function(){document.open();document.domain=&quot;'+document.domain+'&quot;;document.close();ed.setupIframe();})()'}}}v=o.add(r.iframeContainer,&quot;iframe&quot;,{id:F.id+&quot;_ifr&quot;,src:D||'javascript:&quot;&quot;',frameBorder:&quot;0&quot;,style:{width:&quot;100%&quot;,height:z}});F.contentAreaContainer=r.iframeContainer;o.get(r.editorContainer).style.display=F.orgDisplay;o.get(F.id).style.display=&quot;none&quot;;if(!b||!n.relaxedDomain){F.setupIframe()}B=v=r=null},setupIframe:function(){var z=this,A=z.settings,u=o.get(z.id),v=z.getDoc(),r,x;if(!b||!n.relaxedDomain){v.open();v.write(z.iframeHTML);v.close()}if(!b){try{if(!A.readonly){v.designMode=&quot;On&quot;}}catch(w){}}if(b){x=z.getBody();o.hide(x);if(!A.readonly){x.contentEditable=true}o.show(x)}z.dom=new n.DOM.DOMUtils(z.getDoc(),{keep_values:true,url_converter:z.convertURL,url_converter_scope:z,hex_colors:A.force_hex_style_colors,class_filter:A.class_filter,update_styles:1,fix_ie_paragraphs:1});z.serializer=new n.dom.Serializer({entity_encoding:A.entity_encoding,entities:A.entities,valid_elements:A.verify_html===false?&quot;*[*]&quot;:A.valid_elements,extended_valid_elements:A.extended_valid_elements,valid_child_elements:A.valid_child_elements,invalid_elements:A.invalid_elements,fix_table_elements:A.fix_table_elements,fix_list_elements:A.fix_list_elements,fix_content_duplication:A.fix_content_duplication,convert_fonts_to_spans:A.convert_fonts_to_spans,font_size_classes:A.font_size_classes,font_size_style_values:A.font_size_style_values,apply_source_formatting:A.apply_source_formatting,remove_linebreaks:A.remove_linebreaks,element_format:A.element_format,dom:z.dom});z.selection=new n.dom.Selection(z.dom,z.getWin(),z.serializer);z.forceBlocks=new n.ForceBlocks(z,{forced_root_block:A.forced_root_block});z.editorCommands=new n.EditorCommands(z);z.serializer.onPreProcess.add(function(s,t){return z.onPreProcess.dispatch(z,t,s)});z.serializer.onPostProcess.add(function(s,t){return z.onPostProcess.dispatch(z,t,s)});z.onPreInit.dispatch(z);if(!A.gecko_spellcheck){z.getBody().spellcheck=0}if(!A.readonly){z._addEvents()}z.controlManager.onPostRender.dispatch(z,z.controlManager);z.onPostRender.dispatch(z);if(A.directionality){z.getBody().dir=A.directionality}if(A.nowrap){z.getBody().style.whiteSpace=&quot;nowrap&quot;}if(A.auto_resize){z.onNodeChange.add(z.resizeToContent,z)}if(A.custom_elements){function y(s,t){j(g(A.custom_elements),function(B){var C;if(B.indexOf(&quot;~&quot;)===0){B=B.substring(1);C=&quot;span&quot;}else{C=&quot;div&quot;}t.content=t.content.replace(new RegExp(&quot;&lt;(&quot;+B+&quot;)([^&gt;]*)&gt;&quot;,&quot;g&quot;),&quot;&lt;&quot;+C+' mce_name=&quot;$1&quot;$2&gt;');t.content=t.content.replace(new RegExp(&quot;&lt;/(&quot;+B+&quot;)&gt;&quot;,&quot;g&quot;),&quot;&lt;/&quot;+C+&quot;&gt;&quot;)})}z.onBeforeSetContent.add(y);z.onPostProcess.add(function(s,t){if(t.set){y(s,t)}})}if(A.handle_node_change_callback){z.onNodeChange.add(function(t,s,B){z.execCallback(&quot;handle_node_change_callback&quot;,z.id,B,-1,-1,true,z.selection.isCollapsed())})}if(A.save_callback){z.onSaveContent.add(function(s,B){var t=z.execCallback(&quot;save_callback&quot;,z.id,B.content,z.getBody());if(t){B.content=t}})}if(A.onchange_callback){z.onChange.add(function(t,s){z.execCallback(&quot;onchange_callback&quot;,z,s)})}if(A.convert_newlines_to_brs){z.onBeforeSetContent.add(function(s,t){if(t.initial){t.content=t.content.replace(/\r?\n/g,&quot;&lt;br /&gt;&quot;)}})}if(A.fix_nesting&amp;&amp;b){z.onBeforeSetContent.add(function(s,t){t.content=z._fixNesting(t.content)})}if(A.preformatted){z.onPostProcess.add(function(s,t){t.content=t.content.replace(/^\s*&lt;pre.*?&gt;/,&quot;&quot;);t.content=t.content.replace(/&lt;\/pre&gt;\s*$/,&quot;&quot;);if(t.set){t.content='&lt;pre class=&quot;mceItemHidden&quot;&gt;'+t.content+&quot;&lt;/pre&gt;&quot;}})}if(A.verify_css_classes){z.serializer.attribValueFilter=function(D,B){var C,t;if(D==&quot;class&quot;){if(!z.classesRE){t=z.dom.getClasses();if(t.length&gt;0){C=&quot;&quot;;j(t,function(s){C+=(C?&quot;|&quot;:&quot;&quot;)+s[&quot;class&quot;]});z.classesRE=new RegExp(&quot;(&quot;+C+&quot;)&quot;,&quot;gi&quot;)}}return !z.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(B)||z.classesRE.test(B)?B:&quot;&quot;}return B}}if(A.convert_fonts_to_spans){z._convertFonts()}if(A.inline_styles){z._convertInlineElements()}if(A.cleanup_callback){z.onBeforeSetContent.add(function(s,t){t.content=z.execCallback(&quot;cleanup_callback&quot;,&quot;insert_to_editor&quot;,t.content,t)});z.onPreProcess.add(function(s,t){if(t.set){z.execCallback(&quot;cleanup_callback&quot;,&quot;insert_to_editor_dom&quot;,t.node,t)}if(t.get){z.execCallback(&quot;cleanup_callback&quot;,&quot;get_from_editor_dom&quot;,t.node,t)}});z.onPostProcess.add(function(s,t){if(t.set){t.content=z.execCallback(&quot;cleanup_callback&quot;,&quot;insert_to_editor&quot;,t.content,t)}if(t.get){t.content=z.execCallback(&quot;cleanup_callback&quot;,&quot;get_from_editor&quot;,t.content,t)}})}if(A.save_callback){z.onGetContent.add(function(s,t){if(t.save){t.content=z.execCallback(&quot;save_callback&quot;,z.id,t.content,z.getBody())}})}if(A.handle_event_callback){z.onEvent.add(function(s,t,B){if(z.execCallback(&quot;handle_event_callback&quot;,t,s,B)===false){k.cancel(t)}})}z.onSetContent.add(function(){z.addVisual(z.getBody())});if(A.padd_empty_editor){z.onPostProcess.add(function(s,t){t.content=t.content.replace(/^(&lt;p[^&gt;]*&gt;(&amp;nbsp;|&amp;#160;|\s|\u00a0|)&lt;\/p&gt;[\r\n]*|&lt;br \/&gt;[\r\n]*)$/,&quot;&quot;)})}if(a){function q(s,t){j(s.dom.select(&quot;a&quot;),function(C){var B=C.parentNode;if(s.dom.isBlock(B)&amp;&amp;B.lastChild===C){s.dom.add(B,&quot;br&quot;,{mce_bogus:1})}})}z.onExecCommand.add(function(s,t){if(t===&quot;CreateLink&quot;){q(s)}});z.onSetContent.add(z.selection.onSetContent.add(q))}if(a&amp;&amp;!A.readonly){try{v.designMode=&quot;Off&quot;;v.designMode=&quot;On&quot;}catch(w){}}setTimeout(function(){if(z.removed){return}z.load({initial:true,format:(A.cleanup_on_startup?&quot;html&quot;:&quot;raw&quot;)});z.startContent=z.getContent({format:&quot;raw&quot;});z.undoManager.add({initial:true});z.initialized=true;z.onInit.dispatch(z);z.execCallback(&quot;setupcontent_callback&quot;,z.id,z.getBody(),z.getDoc());z.execCallback(&quot;init_instance_callback&quot;,z);z.focus(true);z.nodeChanged({initial:1});if(A.content_css){n.each(g(A.content_css),function(s){z.dom.loadCSS(z.documentBaseURI.toAbsolute(s))})}if(A.auto_focus){setTimeout(function(){var s=i.get(A.auto_focus);s.selection.select(s.getBody(),1);s.selection.collapse(1);s.getWin().focus()},100)}},1);u=null},focus:function(r){var u,q=this,s=q.settings.content_editable;if(!r){if(!s&amp;&amp;(!b||q.selection.getNode().ownerDocument!=q.getDoc())){q.getWin().focus()}}if(i.activeEditor!=q){if((u=i.activeEditor)!=null){u.onDeactivate.dispatch(u,q)}q.onActivate.dispatch(q,u)}i._setActive(q)},execCallback:function(v){var q=this,u=q.settings[v],r;if(!u){return}if(q.callbackLookup&amp;&amp;(r=q.callbackLookup[v])){u=r.func;r=r.scope}if(d(u,&quot;string&quot;)){r=u.replace(/\.\w+$/,&quot;&quot;);r=r?n.resolve(r):0;u=n.resolve(u);q.callbackLookup=q.callbackLookup||{};q.callbackLookup[v]={func:u,scope:r}}return u.apply(r||q,Array.prototype.slice.call(arguments,1))},translate:function(q){var t=this.settings.language||&quot;en&quot;,r=i.i18n;if(!q){return&quot;&quot;}return r[t+&quot;.&quot;+q]||q.replace(/{\#([^}]+)\}/g,function(u,s){return r[t+&quot;.&quot;+s]||&quot;{#&quot;+s+&quot;}&quot;})},getLang:function(r,q){return i.i18n[(this.settings.language||&quot;en&quot;)+&quot;.&quot;+r]||(d(q)?q:&quot;{#&quot;+r+&quot;}&quot;)},getParam:function(w,s,q){var t=n.trim,r=d(this.settings[w])?this.settings[w]:s,u;if(q===&quot;hash&quot;){u={};if(d(r,&quot;string&quot;)){j(r.indexOf(&quot;=&quot;)&gt;0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(&quot;,&quot;),function(x){x=x.split(&quot;=&quot;);if(x.length&gt;1){u[t(x[0])]=t(x[1])}else{u[t(x[0])]=t(x)}})}else{u=r}return u}return r},nodeChanged:function(u){var q=this,r=q.selection,v=r.getNode()||q.getBody();if(q.initialized){q.onNodeChange.dispatch(q,u?u.controlManager||q.controlManager:q.controlManager,b&amp;&amp;v.ownerDocument!=q.getDoc()?q.getBody():v,r.isCollapsed(),u)}},addButton:function(u,r){var q=this;q.buttons=q.buttons||{};q.buttons[u]=r},addCommand:function(t,r,q){this.execCommands[t]={func:r,scope:q||this}},addQueryStateHandler:function(t,r,q){this.queryStateCommands[t]={func:r,scope:q||this}},addQueryValueHandler:function(t,r,q){this.queryValueCommands[t]={func:r,scope:q||this}},addShortcut:function(s,v,q,u){var r=this,w;if(!r.settings.custom_shortcuts){return false}r.shortcuts=r.shortcuts||{};if(d(q,&quot;string&quot;)){w=q;q=function(){r.execCommand(w,false,null)}}if(d(q,&quot;object&quot;)){w=q;q=function(){r.execCommand(w[0],w[1],w[2])}}j(g(s),function(t){var x={func:q,scope:u||this,desc:v,alt:false,ctrl:false,shift:false};j(g(t,&quot;+&quot;),function(y){switch(y){case&quot;alt&quot;:case&quot;ctrl&quot;:case&quot;shift&quot;:x[y]=true;break;default:x.charCode=y.charCodeAt(0);x.keyCode=y.toUpperCase().charCodeAt(0)}});r.shortcuts[(x.ctrl?&quot;ctrl&quot;:&quot;&quot;)+&quot;,&quot;+(x.alt?&quot;alt&quot;:&quot;&quot;)+&quot;,&quot;+(x.shift?&quot;shift&quot;:&quot;&quot;)+&quot;,&quot;+x.keyCode]=x});return true},execCommand:function(x,w,z,q){var u=this,v=0,y,r;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(x)&amp;&amp;(!q||!q.skip_focus)){u.focus()}y={};u.onBeforeExecCommand.dispatch(u,x,w,z,y);if(y.terminate){return false}if(u.execCallback(&quot;execcommand_callback&quot;,u.id,u.selection.getNode(),x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}if(y=u.execCommands[x]){r=y.func.call(y.scope,w,z);if(r!==true){u.onExecCommand.dispatch(u,x,w,z,q);return r}}j(u.plugins,function(s){if(s.execCommand&amp;&amp;s.execCommand(x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);v=1;return false}});if(v){return true}if(u.theme&amp;&amp;u.theme.execCommand&amp;&amp;u.theme.execCommand(x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}if(n.GlobalCommands.execCommand(u,x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}if(u.editorCommands.execCommand(x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}u.getDoc().execCommand(x,w,z);u.onExecCommand.dispatch(u,x,w,z,q)},queryCommandState:function(w){var r=this,v,u;if(r._isHidden()){return}if(v=r.queryStateCommands[w]){u=v.func.call(v.scope);if(u!==true){return u}}v=r.editorCommands.queryCommandState(w);if(v!==-1){return v}try{return this.getDoc().queryCommandState(w)}catch(q){}},queryCommandValue:function(w){var r=this,v,u;if(r._isHidden()){return}if(v=r.queryValueCommands[w]){u=v.func.call(v.scope);if(u!==true){return u}}v=r.editorCommands.queryCommandValue(w);if(d(v)){return v}try{return this.getDoc().queryCommandValue(w)}catch(q){}},show:function(){var q=this;o.show(q.getContainer());o.hide(q.id);q.load()},hide:function(){var q=this,r=q.getDoc();if(b&amp;&amp;r){r.execCommand(&quot;SelectAll&quot;)}q.save();o.hide(q.getContainer());o.setStyle(q.id,&quot;display&quot;,q.orgDisplay)},isHidden:function(){return !o.isHidden(this.id)},setProgressState:function(q,r,s){this.onSetProgressState.dispatch(this,q,r,s);return q},resizeToContent:function(){var q=this;o.setStyle(q.id+&quot;_ifr&quot;,&quot;height&quot;,q.getBody().scrollHeight)},load:function(u){var q=this,s=q.getElement(),r;if(s){u=u||{};u.load=true;r=q.setContent(d(s.value)?s.value:s.innerHTML,u);u.element=s;if(!u.no_events){q.onLoadContent.dispatch(q,u)}u.element=s=null;return r}},save:function(v){var q=this,u=q.getElement(),r,s;if(!u||!q.initialized){return}v=v||{};v.save=true;if(!v.no_events){q.undoManager.typing=0;q.undoManager.add()}v.element=u;r=v.content=q.getContent(v);if(!v.no_events){q.onSaveContent.dispatch(q,v)}r=v.content;if(!/TEXTAREA|INPUT/i.test(u.nodeName)){u.innerHTML=r;if(s=o.getParent(q.id,&quot;form&quot;)){j(s.elements,function(t){if(t.name==q.id){t.value=r;return false}})}}else{u.value=r}v.element=u=null;return r},setContent:function(r,s){var q=this;s=s||{};s.format=s.format||&quot;html&quot;;s.set=true;s.content=r;if(!s.no_events){q.onBeforeSetContent.dispatch(q,s)}if(!n.isIE&amp;&amp;(r.length===0||/^\s+$/.test(r))){s.content=q.dom.setHTML(q.getBody(),'&lt;br mce_bogus=&quot;1&quot; /&gt;');s.format=&quot;raw&quot;}s.content=q.dom.setHTML(q.getBody(),n.trim(s.content));if(s.format!=&quot;raw&quot;&amp;&amp;q.settings.cleanup){s.getInner=true;s.content=q.dom.setHTML(q.getBody(),q.serializer.serialize(q.getBody(),s))}if(!s.no_events){q.onSetContent.dispatch(q,s)}return s.content},getContent:function(s){var q=this,r;s=s||{};s.format=s.format||&quot;html&quot;;s.get=true;if(!s.no_events){q.onBeforeGetContent.dispatch(q,s)}if(s.format!=&quot;raw&quot;&amp;&amp;q.settings.cleanup){s.getInner=true;r=q.serializer.serialize(q.getBody(),s)}else{r=q.getBody().innerHTML}r=r.replace(/^\s*|\s*$/g,&quot;&quot;);s.content=r;if(!s.no_events){q.onGetContent.dispatch(q,s)}return s.content},isDirty:function(){var q=this;return n.trim(q.startContent)!=n.trim(q.getContent({format:&quot;raw&quot;,no_events:1}))&amp;&amp;!q.isNotDirty},getContainer:function(){var q=this;if(!q.container){q.container=o.get(q.editorContainer||q.id+&quot;_parent&quot;)}return q.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return o.get(this.settings.content_element||this.id)},getWin:function(){var q=this,r;if(!q.contentWindow){r=o.get(q.id+&quot;_ifr&quot;);if(r){q.contentWindow=r.contentWindow}}return q.contentWindow},getDoc:function(){var r=this,q;if(!r.contentDocument){q=r.getWin();if(q){r.contentDocument=q.document}}return r.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(q,x,w){var r=this,v=r.settings;if(v.urlconverter_callback){return r.execCallback(&quot;urlconverter_callback&quot;,q,w,true,x)}if(!v.convert_urls||(w&amp;&amp;w.nodeName==&quot;LINK&quot;)||q.indexOf(&quot;file:&quot;)===0){return q}if(v.relative_urls){return r.documentBaseURI.toRelative(q)}q=r.documentBaseURI.toAbsolute(q,v.remove_script_host);return q},addVisual:function(u){var q=this,r=q.settings;u=u||q.getBody();if(!d(q.hasVisual)){q.hasVisual=r.visual}j(q.dom.select(&quot;table,a&quot;,u),function(t){var s;switch(t.nodeName){case&quot;TABLE&quot;:s=q.dom.getAttrib(t,&quot;border&quot;);if(!s||s==&quot;0&quot;){if(q.hasVisual){q.dom.addClass(t,r.visual_table_class)}else{q.dom.removeClass(t,r.visual_table_class)}}return;case&quot;A&quot;:s=q.dom.getAttrib(t,&quot;name&quot;);if(s){if(q.hasVisual){q.dom.addClass(t,&quot;mceItemAnchor&quot;)}else{q.dom.removeClass(t,&quot;mceItemAnchor&quot;)}}return}});q.onVisualAid.dispatch(q,u,q.hasVisual)},remove:function(){var q=this,r=q.getContainer();q.removed=1;q.hide();q.execCallback(&quot;remove_instance_callback&quot;,q);q.onRemove.dispatch(q);q.onExecCommand.listeners=[];i.remove(q);o.remove(r)},destroy:function(r){var q=this;if(q.destroyed){return}if(!r){n.removeUnload(q.destroy);tinyMCE.onBeforeUnload.remove(q._beforeUnload);if(q.theme&amp;&amp;q.theme.destroy){q.theme.destroy()}q.controlManager.destroy();q.selection.destroy();q.dom.destroy();if(!q.settings.content_editable){k.clear(q.getWin());k.clear(q.getDoc())}k.clear(q.getBody());k.clear(q.formElement)}if(q.formElement){q.formElement.submit=q.formElement._mceOldSubmit;q.formElement._mceOldSubmit=null}q.contentAreaContainer=q.formElement=q.container=q.settings.content_element=q.bodyElement=q.contentDocument=q.contentWindow=null;if(q.selection){q.selection=q.selection.win=q.selection.dom=q.selection.dom.doc=null}q.destroyed=1},_addEvents:function(){var w=this,v,y=w.settings,x={mouseup:&quot;onMouseUp&quot;,mousedown:&quot;onMouseDown&quot;,click:&quot;onClick&quot;,keyup:&quot;onKeyUp&quot;,keydown:&quot;onKeyDown&quot;,keypress:&quot;onKeyPress&quot;,submit:&quot;onSubmit&quot;,reset:&quot;onReset&quot;,contextmenu:&quot;onContextMenu&quot;,dblclick:&quot;onDblClick&quot;,paste:&quot;onPaste&quot;};function u(t,A){var s=t.type;if(w.removed){return}if(w.onEvent.dispatch(w,t,A)!==false){w[x[t.fakeType||t.type]].dispatch(w,t,A)}}j(x,function(t,s){switch(s){case&quot;contextmenu&quot;:if(n.isOpera){k.add(w.getBody(),&quot;mousedown&quot;,function(A){if(A.ctrlKey){A.fakeType=&quot;contextmenu&quot;;u(A)}})}else{k.add(w.getBody(),s,u)}break;case&quot;paste&quot;:k.add(w.getBody(),s,function(E){var A,C,B,D;if(E.clipboardData){A=E.clipboardData.getData(&quot;text/plain&quot;)}else{if(n.isIE){A=w.getWin().clipboardData.getData(&quot;Text&quot;)}}u(E,{text:A,html:C})});break;case&quot;submit&quot;:case&quot;reset&quot;:k.add(w.getElement().form||o.getParent(w.id,&quot;form&quot;),s,u);break;default:k.add(y.content_editable?w.getBody():w.getDoc(),s,u)}});k.add(y.content_editable?w.getBody():(a?w.getDoc():w.getWin()),&quot;focus&quot;,function(s){w.focus(true)});if(n.isGecko){k.add(w.getDoc(),&quot;DOMNodeInserted&quot;,function(t){var s;t=t.target;if(t.nodeType===1&amp;&amp;t.nodeName===&quot;IMG&quot;&amp;&amp;(s=t.getAttribute(&quot;mce_src&quot;))){t.src=w.documentBaseURI.toAbsolute(s)}})}if(a){function q(){var B=this,D=B.getDoc(),C=B.settings;if(a&amp;&amp;!C.readonly){if(B._isHidden()){try{if(!C.content_editable){D.designMode=&quot;On&quot;}}catch(A){}}try{D.execCommand(&quot;styleWithCSS&quot;,0,false)}catch(A){if(!B._isHidden()){try{D.execCommand(&quot;useCSS&quot;,0,true)}catch(A){}}}if(!C.table_inline_editing){try{D.execCommand(&quot;enableInlineTableEditing&quot;,false,false)}catch(A){}}if(!C.object_resizing){try{D.execCommand(&quot;enableObjectResizing&quot;,false,false)}catch(A){}}}}w.onBeforeExecCommand.add(q);w.onMouseDown.add(q)}w.onMouseUp.add(w.nodeChanged);w.onClick.add(w.nodeChanged);w.onKeyUp.add(function(s,t){var A=t.keyCode;if((A&gt;=33&amp;&amp;A&lt;=36)||(A&gt;=37&amp;&amp;A&lt;=40)||A==13||A==45||A==46||A==8||(n.isMac&amp;&amp;(A==91||A==93))||t.ctrlKey){w.nodeChanged()}});w.onReset.add(function(){w.setContent(w.startContent,{format:&quot;raw&quot;})});if(y.custom_shortcuts){if(y.custom_undo_redo_keyboard_shortcuts){w.addShortcut(&quot;ctrl+z&quot;,w.getLang(&quot;undo_desc&quot;),&quot;Undo&quot;);w.addShortcut(&quot;ctrl+y&quot;,w.getLang(&quot;redo_desc&quot;),&quot;Redo&quot;)}if(a){w.addShortcut(&quot;ctrl+b&quot;,w.getLang(&quot;bold_desc&quot;),&quot;Bold&quot;);w.addShortcut(&quot;ctrl+i&quot;,w.getLang(&quot;italic_desc&quot;),&quot;Italic&quot;);w.addShortcut(&quot;ctrl+u&quot;,w.getLang(&quot;underline_desc&quot;),&quot;Underline&quot;)}for(v=1;v&lt;=6;v++){w.addShortcut(&quot;ctrl+&quot;+v,&quot;&quot;,[&quot;FormatBlock&quot;,false,&quot;&lt;h&quot;+v+&quot;&gt;&quot;])}w.addShortcut(&quot;ctrl+7&quot;,&quot;&quot;,[&quot;FormatBlock&quot;,false,&quot;&lt;p&gt;&quot;]);w.addShortcut(&quot;ctrl+8&quot;,&quot;&quot;,[&quot;FormatBlock&quot;,false,&quot;&lt;div&gt;&quot;]);w.addShortcut(&quot;ctrl+9&quot;,&quot;&quot;,[&quot;FormatBlock&quot;,false,&quot;&lt;address&gt;&quot;]);function z(t){var s=null;if(!t.altKey&amp;&amp;!t.ctrlKey&amp;&amp;!t.metaKey){return s}j(w.shortcuts,function(A){if(n.isMac&amp;&amp;A.ctrl!=t.metaKey){return}else{if(!n.isMac&amp;&amp;A.ctrl!=t.ctrlKey){return}}if(A.alt!=t.altKey){return}if(A.shift!=t.shiftKey){return}if(t.keyCode==A.keyCode||(t.charCode&amp;&amp;t.charCode==A.charCode)){s=A;return false}});return s}w.onKeyUp.add(function(s,t){var A=z(t);if(A){return k.cancel(t)}});w.onKeyPress.add(function(s,t){var A=z(t);if(A){return k.cancel(t)}});w.onKeyDown.add(function(s,t){var A=z(t);if(A){A.func.call(A.scope);return k.cancel(t)}})}if(n.isIE){k.add(w.getDoc(),&quot;controlselect&quot;,function(A){var t=w.resizeInfo,s;A=A.target;if(A.nodeName!==&quot;IMG&quot;){return}if(t){k.remove(t.node,t.ev,t.cb)}if(!w.dom.hasClass(A,&quot;mceItemNoResize&quot;)){ev=&quot;resizeend&quot;;s=k.add(A,ev,function(C){var B;C=C.target;if(B=w.dom.getStyle(C,&quot;width&quot;)){w.dom.setAttrib(C,&quot;width&quot;,B.replace(/[^0-9%]+/g,&quot;&quot;));w.dom.setStyle(C,&quot;width&quot;,&quot;&quot;)}if(B=w.dom.getStyle(C,&quot;height&quot;)){w.dom.setAttrib(C,&quot;height&quot;,B.replace(/[^0-9%]+/g,&quot;&quot;));w.dom.setStyle(C,&quot;height&quot;,&quot;&quot;)}})}else{ev=&quot;resizestart&quot;;s=k.add(A,&quot;resizestart&quot;,k.cancel,k)}t=w.resizeInfo={node:A,ev:ev,cb:s}});w.onKeyDown.add(function(s,t){switch(t.keyCode){case 8:if(w.selection.getRng().item){w.selection.getRng().item(0).removeNode();return k.cancel(t)}}})}if(n.isOpera){w.onClick.add(function(s,t){k.prevent(t)})}if(y.custom_undo_redo){function r(){w.undoManager.typing=0;w.undoManager.add()}if(n.isIE){k.add(w.getWin(),&quot;blur&quot;,function(s){var t;if(w.selection){t=w.selection.getNode();if(!w.removed&amp;&amp;t.ownerDocument&amp;&amp;t.ownerDocument!=w.getDoc()){r()}}})}else{k.add(w.getDoc(),&quot;blur&quot;,function(){if(w.selection&amp;&amp;!w.removed){r()}})}w.onMouseDown.add(r);w.onKeyUp.add(function(s,t){if((t.keyCode&gt;=33&amp;&amp;t.keyCode&lt;=36)||(t.keyCode&gt;=37&amp;&amp;t.keyCode&lt;=40)||t.keyCode==13||t.keyCode==45||t.ctrlKey){w.undoManager.typing=0;w.undoManager.add()}});w.onKeyDown.add(function(s,t){if((t.keyCode&gt;=33&amp;&amp;t.keyCode&lt;=36)||(t.keyCode&gt;=37&amp;&amp;t.keyCode&lt;=40)||t.keyCode==13||t.keyCode==45){if(w.undoManager.typing){w.undoManager.add();w.undoManager.typing=0}return}if(!w.undoManager.typing){w.undoManager.add();w.undoManager.typing=1}})}},_convertInlineElements:function(){var z=this,B=z.settings,r=z.dom,y,w,u,A,q;function x(s,t){if(!B.inline_styles){return}if(t.get){j(z.dom.select(&quot;table,u,strike&quot;,t.node),function(v){switch(v.nodeName){case&quot;TABLE&quot;:if(y=r.getAttrib(v,&quot;height&quot;)){r.setStyle(v,&quot;height&quot;,y);r.setAttrib(v,&quot;height&quot;,&quot;&quot;)}break;case&quot;U&quot;:case&quot;STRIKE&quot;:v.style.textDecoration=v.nodeName==&quot;U&quot;?&quot;underline&quot;:&quot;line-through&quot;;r.setAttrib(v,&quot;mce_style&quot;,&quot;&quot;);r.setAttrib(v,&quot;mce_name&quot;,&quot;span&quot;);break}})}else{if(t.set){j(z.dom.select(&quot;table,span&quot;,t.node).reverse(),function(v){if(v.nodeName==&quot;TABLE&quot;){if(y=r.getStyle(v,&quot;height&quot;)){r.setAttrib(v,&quot;height&quot;,y.replace(/[^0-9%]+/g,&quot;&quot;))}}else{if(v.style.textDecoration==&quot;underline&quot;){u=&quot;u&quot;}else{if(v.style.textDecoration==&quot;line-through&quot;){u=&quot;strike&quot;}else{u=&quot;&quot;}}if(u){v.style.textDecoration=&quot;&quot;;r.setAttrib(v,&quot;mce_style&quot;,&quot;&quot;);w=r.create(u,{style:r.getAttrib(v,&quot;style&quot;)});r.replace(w,v,1)}}})}}}z.onPreProcess.add(x);if(!B.cleanup_on_startup){z.onSetContent.add(function(s,t){if(t.initial){x(z,{node:z.getBody(),set:1})}})}},_convertFonts:function(){var w=this,x=w.settings,z=w.dom,v,r,q,u;if(!x.inline_styles){return}v=[8,10,12,14,18,24,36];r=[&quot;xx-small&quot;,&quot;x-small&quot;,&quot;small&quot;,&quot;medium&quot;,&quot;large&quot;,&quot;x-large&quot;,&quot;xx-large&quot;];if(q=x.font_size_style_values){q=g(q)}if(u=x.font_size_classes){u=g(u)}function y(B){var C,A,t,s;if(!x.inline_styles){return}t=w.dom.select(&quot;font&quot;,B);for(s=t.length-1;s&gt;=0;s--){C=t[s];A=z.create(&quot;span&quot;,{style:z.getAttrib(C,&quot;style&quot;),&quot;class&quot;:z.getAttrib(C,&quot;class&quot;)});z.setStyles(A,{fontFamily:z.getAttrib(C,&quot;face&quot;),color:z.getAttrib(C,&quot;color&quot;),backgroundColor:C.style.backgroundColor});if(C.size){if(q){z.setStyle(A,&quot;fontSize&quot;,q[parseInt(C.size)-1])}else{z.setAttrib(A,&quot;class&quot;,u[parseInt(C.size)-1])}}z.setAttrib(A,&quot;mce_style&quot;,&quot;&quot;);z.replace(A,C,1)}}w.onPreProcess.add(function(s,t){if(t.get){y(t.node)}});w.onSetContent.add(function(s,t){if(t.initial){y(t.node)}})},_isHidden:function(){var q;if(!a){return 0}q=this.selection.getSel();return(!q||!q.rangeCount||q.rangeCount==0)},_fixNesting:function(r){var t=[],q;r=r.replace(/&lt;(\/)?([^\s&gt;]+)[^&gt;]*?&gt;/g,function(u,s,w){var v;if(s===&quot;/&quot;){if(!t.length){return&quot;&quot;}if(w!==t[t.length-1].tag){for(q=t.length-1;q&gt;=0;q--){if(t[q].tag===w){t[q].close=1;break}}return&quot;&quot;}else{t.pop();if(t.length&amp;&amp;t[t.length-1].close){u=u+&quot;&lt;/&quot;+t[t.length-1].tag+&quot;&gt;&quot;;t.pop()}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(w)){return u}if(/\/&gt;$/.test(u)){return u}t.push({tag:w})}return u});for(q=t.length-1;q&gt;=0;q--){r+=&quot;&lt;/&quot;+t[q].tag+&quot;&gt;&quot;}return r}})})(tinymce);(function(d){var f=d.each,c=d.isIE,a=d.isGecko,b=d.isOpera,e=d.isWebKit;d.create(&quot;tinymce.EditorCommands&quot;,{EditorCommands:function(g){this.editor=g},execCommand:function(k,j,l){var h=this,g=h.editor,i;switch(k){case&quot;mceResetDesignMode&quot;:case&quot;mceBeginUndoLevel&quot;:return true;case&quot;unlink&quot;:h.UnLink();return true;case&quot;JustifyLeft&quot;:case&quot;JustifyCenter&quot;:case&quot;JustifyRight&quot;:case&quot;JustifyFull&quot;:h.mceJustify(k,k.substring(7).toLowerCase());return true;default:i=this[k];if(i){i.call(this,j,l);return true}}return false},Indent:function(){var g=this.editor,l=g.dom,j=g.selection,k,h,i;h=g.settings.indentation;i=/[a-z%]+$/i.exec(h);h=parseInt(h);if(g.settings.inline_styles&amp;&amp;(!this.queryStateInsertUnorderedList()&amp;&amp;!this.queryStateInsertOrderedList())){f(j.getSelectedBlocks(),function(m){l.setStyle(m,&quot;paddingLeft&quot;,(parseInt(m.style.paddingLeft||0)+h)+i)});return}g.getDoc().execCommand(&quot;Indent&quot;,false,null);if(c){l.getParent(j.getNode(),function(m){if(m.nodeName==&quot;BLOCKQUOTE&quot;){m.dir=m.style.cssText=&quot;&quot;}})}},Outdent:function(){var h=this.editor,m=h.dom,k=h.selection,l,g,i,j;i=h.settings.indentation;j=/[a-z%]+$/i.exec(i);i=parseInt(i);if(h.settings.inline_styles&amp;&amp;(!this.queryStateInsertUnorderedList()&amp;&amp;!this.queryStateInsertOrderedList())){f(k.getSelectedBlocks(),function(n){g=Math.max(0,parseInt(n.style.paddingLeft||0)-i);m.setStyle(n,&quot;paddingLeft&quot;,g?g+j:&quot;&quot;)});return}h.getDoc().execCommand(&quot;Outdent&quot;,false,null)},mceSetContent:function(h,g){this.editor.setContent(g)},mceToggleVisualAid:function(){var g=this.editor;g.hasVisual=!g.hasVisual;g.addVisual()},mceReplaceContent:function(h,g){var i=this.editor.selection;i.setContent(g.replace(/\{\$selection\}/g,i.getContent({format:&quot;text&quot;})))},mceInsertLink:function(i,h){var g=this.editor,j=g.selection,k=g.dom.getParent(j.getNode(),&quot;A&quot;);if(d.is(h,&quot;string&quot;)){h={href:h}}function l(m){f(h,function(o,n){g.dom.setAttrib(m,n,o)})}if(!k){g.execCommand(&quot;CreateLink&quot;,false,&quot;javascript:mctmp(0);&quot;);f(g.dom.select(&quot;a[href=javascript:mctmp(0);]&quot;),function(m){l(m)})}else{if(h.href){l(k)}else{g.dom.remove(k,1)}}},UnLink:function(){var g=this.editor,h=g.selection;if(h.isCollapsed()){h.select(h.getNode())}g.getDoc().execCommand(&quot;unlink&quot;,false,null);h.collapse(0)},FontName:function(i,h){var j=this,g=j.editor,k=g.selection,l;if(!h){if(k.isCollapsed()){k.select(k.getNode())}}else{if(g.settings.convert_fonts_to_spans){j._applyInlineStyle(&quot;span&quot;,{style:{fontFamily:h}})}else{g.getDoc().execCommand(&quot;FontName&quot;,false,h)}}},FontSize:function(j,i){var h=this.editor,l=h.settings,k,g;if(l.convert_fonts_to_spans&amp;&amp;i&gt;=1&amp;&amp;i&lt;=7){g=d.explode(l.font_size_style_values);k=d.explode(l.font_size_classes);if(k){i=k[i-1]||i}else{i=g[i-1]||i}}if(i&gt;=1&amp;&amp;i&lt;=7){h.getDoc().execCommand(&quot;FontSize&quot;,false,i)}else{this._applyInlineStyle(&quot;span&quot;,{style:{fontSize:i}})}},queryCommandValue:function(h){var g=this[&quot;queryValue&quot;+h];if(g){return g.call(this,h)}return false},queryCommandState:function(h){var g;switch(h){case&quot;JustifyLeft&quot;:case&quot;JustifyCenter&quot;:case&quot;JustifyRight&quot;:case&quot;JustifyFull&quot;:return this.queryStateJustify(h,h.substring(7).toLowerCase());default:if(g=this[&quot;queryState&quot;+h]){return g.call(this,h)}}return -1},_queryState:function(h){try{return this.editor.getDoc().queryCommandState(h)}catch(g){}},_queryVal:function(h){try{return this.editor.getDoc().queryCommandValue(h)}catch(g){}},queryValueFontSize:function(){var h=this.editor,g=0,i;if(i=h.dom.getParent(h.selection.getNode(),&quot;SPAN&quot;)){g=i.style.fontSize}if(!g&amp;&amp;(b||e)){if(i=h.dom.getParent(h.selection.getNode(),&quot;FONT&quot;)){g=i.size}return g}return g||this._queryVal(&quot;FontSize&quot;)},queryValueFontName:function(){var h=this.editor,g=0,i;if(i=h.dom.getParent(h.selection.getNode(),&quot;FONT&quot;)){g=i.face}if(i=h.dom.getParent(h.selection.getNode(),&quot;SPAN&quot;)){g=i.style.fontFamily.replace(/, /g,&quot;,&quot;).replace(/[\'\&quot;]/g,&quot;&quot;).toLowerCase()}if(!g){g=this._queryVal(&quot;FontName&quot;)}return g},mceJustify:function(o,p){var k=this.editor,m=k.selection,g=m.getNode(),q=g.nodeName,h,j,i=k.dom,l;if(k.settings.inline_styles&amp;&amp;this.queryStateJustify(o,p)){l=1}h=i.getParent(g,k.dom.isBlock);if(q==&quot;IMG&quot;){if(p==&quot;full&quot;){return}if(l){if(p==&quot;center&quot;){i.setStyle(h||g.parentNode,&quot;textAlign&quot;,&quot;&quot;)}i.setStyle(g,&quot;float&quot;,&quot;&quot;);this.mceRepaint();return}if(p==&quot;center&quot;){if(h&amp;&amp;/^(TD|TH)$/.test(h.nodeName)){h=0}if(!h||h.childNodes.length&gt;1){j=i.create(&quot;p&quot;);j.appendChild(g.cloneNode(false));if(h){i.insertAfter(j,h)}else{i.insertAfter(j,g)}i.remove(g);g=j.firstChild;h=j}i.setStyle(h,&quot;textAlign&quot;,p);i.setStyle(g,&quot;float&quot;,&quot;&quot;)}else{i.setStyle(g,&quot;float&quot;,p);i.setStyle(h||g.parentNode,&quot;textAlign&quot;,&quot;&quot;)}this.mceRepaint();return}if(k.settings.inline_styles&amp;&amp;k.settings.forced_root_block){if(l){p=&quot;&quot;}f(m.getSelectedBlocks(i.getParent(m.getStart(),i.isBlock),i.getParent(m.getEnd(),i.isBlock)),function(n){i.setAttrib(n,&quot;align&quot;,&quot;&quot;);i.setStyle(n,&quot;textAlign&quot;,p==&quot;full&quot;?&quot;justify&quot;:p)});return}else{if(!l){k.getDoc().execCommand(o,false,null)}}if(k.settings.inline_styles){if(l){i.getParent(k.selection.getNode(),function(r){if(r.style&amp;&amp;r.style.textAlign){i.setStyle(r,&quot;textAlign&quot;,&quot;&quot;)}});return}f(i.select(&quot;*&quot;),function(s){var r=s.align;if(r){if(r==&quot;full&quot;){r=&quot;justify&quot;}i.setStyle(s,&quot;textAlign&quot;,r);i.setAttrib(s,&quot;align&quot;,&quot;&quot;)}})}},mceSetCSSClass:function(h,g){this.mceSetStyleInfo(0,{command:&quot;setattrib&quot;,name:&quot;class&quot;,value:g})},getSelectedElement:function(){var w=this,o=w.editor,n=o.dom,s=o.selection,h=s.getRng(),l,k,u,p,j,g,q,i,x,v;if(s.isCollapsed()||h.item){return s.getNode()}v=o.settings.merge_styles_invalid_parents;if(d.is(v,&quot;string&quot;)){v=new RegExp(v,&quot;i&quot;)}if(c){l=h.duplicate();l.collapse(true);u=l.parentElement();k=h.duplicate();k.collapse(false);p=k.parentElement();if(u!=p){l.move(&quot;character&quot;,1);u=l.parentElement()}if(u==p){l=h.duplicate();l.moveToElementText(u);if(l.compareEndPoints(&quot;StartToStart&quot;,h)==0&amp;&amp;l.compareEndPoints(&quot;EndToEnd&quot;,h)==0){return v&amp;&amp;v.test(u.nodeName)?null:u}}}else{function m(r){return n.getParent(r,&quot;*&quot;)}u=h.startContainer;p=h.endContainer;j=h.startOffset;g=h.endOffset;if(!h.collapsed){if(u==p){if(j-g&lt;2){if(u.hasChildNodes()){i=u.childNodes[j];return v&amp;&amp;v.test(i.nodeName)?null:i}}}}if(u.nodeType!=3||p.nodeType!=3){return null}if(j==0){i=m(u);if(i&amp;&amp;i.firstChild!=u){i=null}}if(j==u.nodeValue.length){q=u.nextSibling;if(q&amp;&amp;q.nodeType==1){i=u.nextSibling}}if(g==0){q=p.previousSibling;if(q&amp;&amp;q.nodeType==1){x=q}}if(g==p.nodeValue.length){x=m(p);if(x&amp;&amp;x.lastChild!=p){x=null}}if(i==x){return v&amp;&amp;i&amp;&amp;v.test(i.nodeName)?null:i}}return null},mceSetStyleInfo:function(n,m){var q=this,h=q.editor,j=h.getDoc(),g=h.dom,i,k,r=h.selection,p=m.wrapper||&quot;span&quot;,k=r.getBookmark(),o;function l(t,s){if(t.nodeType==1){switch(m.command){case&quot;setattrib&quot;:return g.setAttrib(t,m.name,m.value);case&quot;setstyle&quot;:return g.setStyle(t,m.name,m.value);case&quot;removeformat&quot;:return g.setAttrib(t,&quot;class&quot;,&quot;&quot;)}}}o=h.settings.merge_styles_invalid_parents;if(d.is(o,&quot;string&quot;)){o=new RegExp(o,&quot;i&quot;)}if((i=q.getSelectedElement())&amp;&amp;!h.settings.force_span_wrappers){l(i,1)}else{j.execCommand(&quot;FontName&quot;,false,&quot;__&quot;);f(g.select(&quot;span,font&quot;),function(u){var s,t;if(g.getAttrib(u,&quot;face&quot;)==&quot;__&quot;||u.style.fontFamily===&quot;__&quot;){s=g.create(p,{mce_new:&quot;1&quot;});l(s);f(u.childNodes,function(v){s.appendChild(v.cloneNode(true))});g.replace(s,u)}})}f(g.select(p).reverse(),function(t){var s=t.parentNode;if(!g.getAttrib(t,&quot;mce_new&quot;)){s=g.getParent(t,&quot;*[mce_new]&quot;);if(s){g.remove(t,1)}}});f(g.select(p).reverse(),function(t){var s=t.parentNode;if(!s||!g.getAttrib(t,&quot;mce_new&quot;)){return}if(h.settings.force_span_wrappers&amp;&amp;s.nodeName!=&quot;SPAN&quot;){return}if(s.nodeName==p.toUpperCase()&amp;&amp;s.childNodes.length==1){return g.remove(s,1)}if(t.nodeType==1&amp;&amp;(!o||!o.test(s.nodeName))&amp;&amp;s.childNodes.length==1){l(s);g.setAttrib(t,&quot;class&quot;,&quot;&quot;)}});f(g.select(p).reverse(),function(s){if(g.getAttrib(s,&quot;mce_new&quot;)||(g.getAttribs(s).length&lt;=1&amp;&amp;s.className===&quot;&quot;)){if(!g.getAttrib(s,&quot;class&quot;)&amp;&amp;!g.getAttrib(s,&quot;style&quot;)){return g.remove(s,1)}g.setAttrib(s,&quot;mce_new&quot;,&quot;&quot;)}});r.moveToBookmark(k)},queryStateJustify:function(k,h){var g=this.editor,j=g.selection.getNode(),i=g.dom;if(j&amp;&amp;j.nodeName==&quot;IMG&quot;){if(i.getStyle(j,&quot;float&quot;)==h){return 1}return j.parentNode.style.textAlign==h}j=i.getParent(g.selection.getStart(),function(l){return l.nodeType==1&amp;&amp;l.style.textAlign});if(h==&quot;full&quot;){h=&quot;justify&quot;}if(g.settings.inline_styles){return(j&amp;&amp;j.style.textAlign==h)}return this._queryState(k)},ForeColor:function(i,h){var g=this.editor;if(g.settings.convert_fonts_to_spans){this._applyInlineStyle(&quot;span&quot;,{style:{color:h}});return}else{g.getDoc().execCommand(&quot;ForeColor&quot;,false,h)}},HiliteColor:function(i,k){var h=this,g=h.editor,j=g.getDoc();if(g.settings.convert_fonts_to_spans){this._applyInlineStyle(&quot;span&quot;,{style:{backgroundColor:k}});return}function l(n){if(!a){return}try{j.execCommand(&quot;styleWithCSS&quot;,0,n)}catch(m){j.execCommand(&quot;useCSS&quot;,0,!n)}}if(a||b){l(true);j.execCommand(&quot;hilitecolor&quot;,false,k);l(false)}else{j.execCommand(&quot;BackColor&quot;,false,k)}},FormatBlock:function(n,h){var o=this,l=o.editor,p=l.selection,j=l.dom,g,k,m;function i(q){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(q.nodeName)}g=j.getParent(p.getNode(),function(q){return i(q)});if(g){if((c&amp;&amp;i(g.parentNode))||g.nodeName==&quot;DIV&quot;){k=l.dom.create(h);f(j.getAttribs(g),function(q){j.setAttrib(k,q.nodeName,j.getAttrib(g,q.nodeName))});m=p.getBookmark();j.replace(k,g,1);p.moveToBookmark(m);l.nodeChanged();return}}h=l.settings.forced_root_block?(h||&quot;&lt;p&gt;&quot;):h;if(h.indexOf(&quot;&lt;&quot;)==-1){h=&quot;&lt;&quot;+h+&quot;&gt;&quot;}if(d.isGecko){h=h.replace(/&lt;(div|blockquote|code|dt|dd|dl|samp)&gt;/gi,&quot;$1&quot;)}l.getDoc().execCommand(&quot;FormatBlock&quot;,false,h)},mceCleanup:function(){var h=this.editor,i=h.selection,g=i.getBookmark();h.setContent(h.getContent());i.moveToBookmark(g)},mceRemoveNode:function(j,k){var h=this.editor,i=h.selection,g,l=k||i.getNode();if(l==h.getBody()){return}g=i.getBookmark();h.dom.remove(l,1);i.moveToBookmark(g);h.nodeChanged()},mceSelectNodeDepth:function(i,j){var g=this.editor,h=g.selection,k=0;g.dom.getParent(h.getNode(),function(l){if(l.nodeType==1&amp;&amp;k++==j){h.select(l);g.nodeChanged();return false}},g.getBody())},mceSelectNode:function(h,g){this.editor.selection.select(g)},mceInsertContent:function(g,h){this.editor.selection.setContent(h)},mceInsertRawHTML:function(h,i){var g=this.editor;g.selection.setContent(&quot;tiny_mce_marker&quot;);g.setContent(g.getContent().replace(/tiny_mce_marker/g,i))},mceRepaint:function(){var i,g,j=this.editor;if(d.isGecko){try{i=j.selection;g=i.getBookmark(true);if(i.getSel()){i.getSel().selectAllChildren(j.getBody())}i.collapse(true);i.moveToBookmark(g)}catch(h){}}},queryStateUnderline:function(){var g=this.editor,h=g.selection.getNode();if(h&amp;&amp;h.nodeName==&quot;A&quot;){return false}return this._queryState(&quot;Underline&quot;)},queryStateOutdent:function(){var g=this.editor,h;if(g.settings.inline_styles){if((h=g.dom.getParent(g.selection.getStart(),g.dom.isBlock))&amp;&amp;parseInt(h.style.paddingLeft)&gt;0){return true}if((h=g.dom.getParent(g.selection.getEnd(),g.dom.isBlock))&amp;&amp;parseInt(h.style.paddingLeft)&gt;0){return true}}return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList()||(!g.settings.inline_styles&amp;&amp;!!g.dom.getParent(g.selection.getNode(),&quot;BLOCKQUOTE&quot;))},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),&quot;UL&quot;)},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),&quot;OL&quot;)},queryStatemceBlockQuote:function(){return !!this.editor.dom.getParent(this.editor.selection.getStart(),function(g){return g.nodeName===&quot;BLOCKQUOTE&quot;})},_applyInlineStyle:function(o,j,m){var q=this,n=q.editor,l=n.dom,i,p={},k,r;o=o.toUpperCase();if(m&amp;&amp;m.check_classes&amp;&amp;j[&quot;class&quot;]){m.check_classes.push(j[&quot;class&quot;])}function h(){f(l.select(o).reverse(),function(t){var s=0;f(l.getAttribs(t),function(u){if(u.nodeName.substring(0,1)!=&quot;_&quot;&amp;&amp;l.getAttrib(t,u.nodeName)!=&quot;&quot;){s++}});if(s==0){l.remove(t,1)}})}function g(){var s;f(l.select(&quot;span,font&quot;),function(t){if(t.style.fontFamily==&quot;mceinline&quot;||t.face==&quot;mceinline&quot;){if(!s){s=n.selection.getBookmark()}j._mce_new=&quot;1&quot;;l.replace(l.create(o,j),t,1)}});f(l.select(o+&quot;[_mce_new]&quot;),function(u){function t(v){if(v.nodeType==1){f(j.style,function(x,w){l.setStyle(v,w,&quot;&quot;)});if(j[&quot;class&quot;]&amp;&amp;v.className&amp;&amp;m){f(m.check_classes,function(w){if(l.hasClass(v,w)){l.removeClass(v,w)}})}}}f(l.select(o,u),t);if(u.parentNode&amp;&amp;u.parentNode.nodeType==1&amp;&amp;u.parentNode.childNodes.length==1){t(u.parentNode)}l.getParent(u.parentNode,function(v){if(v.nodeType==1){if(j.style){f(j.style,function(y,x){var w;if(!p[x]&amp;&amp;(w=l.getStyle(v,x))){if(w===y){l.setStyle(u,x,&quot;&quot;)}p[x]=1}})}if(j[&quot;class&quot;]&amp;&amp;v.className&amp;&amp;m){f(m.check_classes,function(w){if(l.hasClass(v,w)){l.removeClass(u,w)}})}}return false});u.removeAttribute(&quot;_mce_new&quot;)});h();n.selection.moveToBookmark(s);return !!s}n.focus();n.getDoc().execCommand(&quot;FontName&quot;,false,&quot;mceinline&quot;);g();if(k=q._applyInlineStyle.keyhandler){n.onKeyUp.remove(k);n.onKeyPress.remove(k);n.onKeyDown.remove(k);n.onSetContent.remove(q._applyInlineStyle.chandler)}if(n.selection.isCollapsed()){if(!c){f(l.getParents(n.selection.getNode(),&quot;span&quot;),function(s){f(j.style,function(u,t){var w;if(w=l.getStyle(s,t)){if(w==u){l.setStyle(s,t,&quot;&quot;);r=2;return false}r=1;return false}});if(r){return false}});if(r==2){i=n.selection.getBookmark();h();n.selection.moveToBookmark(i);window.setTimeout(function(){n.nodeChanged()},1);return}}q._pendingStyles=d.extend(q._pendingStyles||{},j.style);q._applyInlineStyle.chandler=n.onSetContent.add(function(){delete q._pendingStyles});q._applyInlineStyle.keyhandler=k=function(s){if(q._pendingStyles){j.style=q._pendingStyles;delete q._pendingStyles}if(g()){n.onKeyDown.remove(q._applyInlineStyle.keyhandler);n.onKeyPress.remove(q._applyInlineStyle.keyhandler)}if(s.type==&quot;keyup&quot;){n.onKeyUp.remove(q._applyInlineStyle.keyhandler)}};n.onKeyDown.add(k);n.onKeyPress.add(k);n.onKeyUp.add(k)}else{q._pendingStyles=0}}})})(tinymce);(function(a){a.create(&quot;tinymce.UndoManager&quot;,{index:0,data:null,typing:0,UndoManager:function(c){var d=this,b=a.util.Dispatcher;d.editor=c;d.data=[];d.onAdd=new b(this);d.onUndo=new b(this);d.onRedo=new b(this)},add:function(d){var g=this,f,e=g.editor,c,h=e.settings,j;d=d||{};d.content=d.content||e.getContent({format:&quot;raw&quot;,no_events:1});d.content=d.content.replace(/^\s*|\s*$/g,&quot;&quot;);j=g.data[g.index&gt;0&amp;&amp;(g.index==0||g.index==g.data.length)?g.index-1:g.index];if(!d.initial&amp;&amp;j&amp;&amp;d.content==j.content){return null}if(h.custom_undo_redo_levels){if(g.data.length&gt;h.custom_undo_redo_levels){for(f=0;f&lt;g.data.length-1;f++){g.data[f]=g.data[f+1]}g.data.length--;g.index=g.data.length}}if(h.custom_undo_redo_restore_selection&amp;&amp;!d.initial){d.bookmark=c=d.bookmark||e.selection.getBookmark()}if(g.index&lt;g.data.length){g.index++}if(g.data.length===0&amp;&amp;!d.initial){return null}g.data.length=g.index+1;g.data[g.index++]=d;if(d.initial){g.index=0}if(g.data.length==2&amp;&amp;g.data[0].initial){g.data[0].bookmark=c}g.onAdd.dispatch(g,d);e.isNotDirty=0;return d},undo:function(){var e=this,c=e.editor,b=b,d;if(e.typing){e.add();e.typing=0}if(e.index&gt;0){if(e.index==e.data.length&amp;&amp;e.index&gt;1){d=e.index;e.typing=0;if(!e.add()){e.index=d}--e.index}b=e.data[--e.index];c.setContent(b.content,{format:&quot;raw&quot;});c.selection.moveToBookmark(b.bookmark);e.onUndo.dispatch(e,b)}return b},redo:function(){var d=this,c=d.editor,b=null;if(d.index&lt;d.data.length-1){b=d.data[++d.index];c.setContent(b.content,{format:&quot;raw&quot;});c.selection.moveToBookmark(b.bookmark);d.onRedo.dispatch(d,b)}return b},clear:function(){var b=this;b.data=[];b.index=0;b.typing=0;b.add({initial:true})},hasUndo:function(){return this.index!=0||this.typing},hasRedo:function(){return this.index&lt;this.data.length-1}})})(tinymce);(function(e){var b,d,a,c,f,g;b=e.dom.Event;d=e.isIE;a=e.isGecko;c=e.isOpera;f=e.each;g=e.extend;e.create(&quot;tinymce.ForceBlocks&quot;,{ForceBlocks:function(i){var j=this,k=i.settings,l;j.editor=i;j.dom=i.dom;l=(k.forced_root_block||&quot;p&quot;).toLowerCase();k.element=l.toUpperCase();i.onPreInit.add(j.setup,j);j.reOpera=new RegExp(&quot;(\\u00a0|&amp;#160;|&amp;nbsp;)&lt;/&quot;+l+&quot;&gt;&quot;,&quot;gi&quot;);j.rePadd=new RegExp(&quot;&lt;p( )([^&gt;]+)&gt;&lt;\\/p&gt;|&lt;p( )([^&gt;]+)\\/&gt;|&lt;p( )([^&gt;]+)&gt;\\s+&lt;\\/p&gt;|&lt;p&gt;&lt;\\/p&gt;|&lt;p\\/&gt;|&lt;p&gt;\\s+&lt;\\/p&gt;&quot;.replace(/p/g,l),&quot;gi&quot;);j.reNbsp2BR1=new RegExp(&quot;&lt;p( )([^&gt;]+)&gt;[\\s\\u00a0]+&lt;\\/p&gt;|&lt;p&gt;[\\s\\u00a0]+&lt;\\/p&gt;&quot;.replace(/p/g,l),&quot;gi&quot;);j.reNbsp2BR2=new RegExp(&quot;&lt;%p()([^&gt;]+)&gt;(&amp;nbsp;|&amp;#160;)&lt;\\/%p&gt;|&lt;%p&gt;(&amp;nbsp;|&amp;#160;)&lt;\\/%p&gt;&quot;.replace(/%p/g,l),&quot;gi&quot;);j.reBR2Nbsp=new RegExp(&quot;&lt;p( )([^&gt;]+)&gt;\\s*&lt;br \\/&gt;\\s*&lt;\\/p&gt;|&lt;p&gt;\\s*&lt;br \\/&gt;\\s*&lt;\\/p&gt;&quot;.replace(/p/g,l),&quot;gi&quot;);j.reTrailBr=new RegExp(&quot;\\s*&lt;br \\/&gt;\\s*&lt;\\/p&gt;&quot;.replace(/p/g,l),&quot;gi&quot;);function h(m,n){if(c){n.content=n.content.replace(j.reOpera,&quot;&lt;/&quot;+l+&quot;&gt;&quot;)}n.content=n.content.replace(j.rePadd,&quot;&lt;&quot;+l+&quot;$1$2$3$4$5$6&gt;\u00a0&lt;/&quot;+l+&quot;&gt;&quot;);if(!d&amp;&amp;!c&amp;&amp;n.set){n.content=n.content.replace(j.reNbsp2BR1,&quot;&lt;&quot;+l+&quot;$1$2&gt;&lt;br /&gt;&lt;/&quot;+l+&quot;&gt;&quot;);n.content=n.content.replace(j.reNbsp2BR2,&quot;&lt;&quot;+l+&quot;$1$2&gt;&lt;br /&gt;&lt;/&quot;+l+&quot;&gt;&quot;)}else{n.content=n.content.replace(j.reBR2Nbsp,&quot;&lt;&quot;+l+&quot;$1$2&gt;\u00a0&lt;/&quot;+l+&quot;&gt;&quot;);n.content=n.content.replace(j.reTrailBr,&quot;&lt;/&quot;+l+&quot;&gt;&quot;)}}i.onBeforeSetContent.add(h);i.onPostProcess.add(h);if(k.forced_root_block){i.onInit.add(j.forceRoots,j);i.onSetContent.add(j.forceRoots,j);i.onBeforeGetContent.add(j.forceRoots,j)}},setup:function(){var i=this,h=i.editor,j=h.settings;if(j.forced_root_block){h.onKeyUp.add(i.forceRoots,i);h.onPreProcess.add(i.forceRoots,i)}if(j.force_br_newlines){if(d){h.onKeyPress.add(function(l,o){var p,m=l.selection;if(o.keyCode==13&amp;&amp;m.getNode().nodeName!=&quot;LI&quot;){m.setContent('&lt;br id=&quot;__&quot; /&gt; ',{format:&quot;raw&quot;});p=l.dom.get(&quot;__&quot;);p.removeAttribute(&quot;id&quot;);m.select(p);m.collapse();return b.cancel(o)}})}return}if(!d&amp;&amp;j.force_p_newlines){h.onKeyPress.add(function(l,m){if(m.keyCode==13&amp;&amp;!m.shiftKey){if(!i.insertPara(m)){b.cancel(m)}}});if(a){h.onKeyDown.add(function(l,m){if((m.keyCode==8||m.keyCode==46)&amp;&amp;!m.shiftKey){i.backspaceDelete(m,m.keyCode==8)}})}}function k(m,l){var n=h.dom.create(l);f(m.attributes,function(o){if(o.specified&amp;&amp;o.nodeValue){n.setAttribute(o.nodeName.toLowerCase(),o.nodeValue)}});f(m.childNodes,function(o){n.appendChild(o.cloneNode(true))});m.parentNode.replaceChild(n,m);return n}if(d&amp;&amp;j.element!=&quot;P&quot;){h.onKeyPress.add(function(l,m){i.lastElm=l.selection.getNode().nodeName});h.onKeyUp.add(function(m,p){var r,o=m.selection,q=o.getNode(),l=m.getBody();if(l.childNodes.length===1&amp;&amp;q.nodeName==&quot;P&quot;){q=k(q,j.element);o.select(q);o.collapse();m.nodeChanged()}else{if(p.keyCode==13&amp;&amp;!p.shiftKey&amp;&amp;i.lastElm!=&quot;P&quot;){r=m.dom.getParent(q,&quot;P&quot;);if(r){k(r,j.element);m.nodeChanged()}}}})}},find:function(m,j,k){var i=this.editor,h=i.getDoc().createTreeWalker(m,4,null,false),l=-1;while(m=h.nextNode()){l++;if(j==0&amp;&amp;m==k){return l}if(j==1&amp;&amp;l==k){return m}}return -1},forceRoots:function(o,C){var q=this,o=q.editor,G=o.getBody(),D=o.getDoc(),J=o.selection,u=J.getSel(),v=J.getRng(),H=-2,m,A,h,j,E=-16777215;var F,k,I,z,w,l=G.childNodes,y,x,p;for(y=l.length-1;y&gt;=0;y--){F=l[y];if(F.nodeType==3||(!q.dom.isBlock(F)&amp;&amp;F.nodeType!=8)){if(!k){if(F.nodeType!=3||/[^\s]/g.test(F.nodeValue)){if(H==-2&amp;&amp;v){if(!d){if(v.startContainer.nodeType==1&amp;&amp;(x=v.startContainer.childNodes[v.startOffset])&amp;&amp;x.nodeType==1){p=x.getAttribute(&quot;id&quot;);x.setAttribute(&quot;id&quot;,&quot;__mce&quot;)}else{if(o.dom.getParent(v.startContainer,function(i){return i===G})){A=v.startOffset;h=v.endOffset;H=q.find(G,0,v.startContainer);m=q.find(G,0,v.endContainer)}}}else{j=D.body.createTextRange();j.moveToElementText(G);j.collapse(1);I=j.move(&quot;character&quot;,E)*-1;j=v.duplicate();j.collapse(1);z=j.move(&quot;character&quot;,E)*-1;j=v.duplicate();j.collapse(0);w=(j.move(&quot;character&quot;,E)*-1)-z;H=z-I;m=w}}k=o.dom.create(o.settings.forced_root_block);k.appendChild(F.cloneNode(1));F.parentNode.replaceChild(k,F)}}else{if(k.hasChildNodes()){k.insertBefore(F,k.firstChild)}else{k.appendChild(F)}}}else{k=null}}if(H!=-2){if(!d){k=G.getElementsByTagName(o.settings.element)[0];v=D.createRange();if(H!=-1){v.setStart(q.find(G,1,H),A)}else{v.setStart(k,0)}if(m!=-1){v.setEnd(q.find(G,1,m),h)}else{v.setEnd(k,0)}if(u){u.removeAllRanges();u.addRange(v)}}else{try{v=u.createRange();v.moveToElementText(G);v.collapse(1);v.moveStart(&quot;character&quot;,H);v.moveEnd(&quot;character&quot;,m);v.select()}catch(B){}}}else{if(!d&amp;&amp;(x=o.dom.get(&quot;__mce&quot;))){if(p){x.setAttribute(&quot;id&quot;,p)}else{x.removeAttribute(&quot;id&quot;)}v=D.createRange();v.setStartBefore(x);v.setEndBefore(x);J.setRng(v)}}},getParentBlock:function(i){var h=this.dom;return h.getParent(i,h.isBlock)},insertPara:function(M){var z=this,m=z.editor,I=m.dom,N=m.getDoc(),R=m.settings,B=m.selection.getSel(),C=B.getRangeAt(0),Q=N.body;var F,G,D,K,J,k,i,l,p,h,w,P,j,o,E,H=I.getViewPort(m.getWin()),v,x,u;function A(r){r=r.innerHTML;r=r.replace(/&lt;(img|hr|table)/gi,&quot;-&quot;);r=r.replace(/&lt;[^&gt;]+&gt;/g,&quot;&quot;);return r.replace(/[ \t\r\n]+/g,&quot;&quot;)==&quot;&quot;}F=N.createRange();F.setStart(B.anchorNode,B.anchorOffset);F.collapse(true);G=N.createRange();G.setStart(B.focusNode,B.focusOffset);G.collapse(true);D=F.compareBoundaryPoints(F.START_TO_END,G)&lt;0;K=D?B.anchorNode:B.focusNode;J=D?B.anchorOffset:B.focusOffset;k=D?B.focusNode:B.anchorNode;i=D?B.focusOffset:B.anchorOffset;if(K===k&amp;&amp;/^(TD|TH)$/.test(K.nodeName)){I.remove(K.firstChild);m.dom.add(K,R.element,null,&quot;&lt;br /&gt;&quot;);P=m.dom.add(K,R.element,null,&quot;&lt;br /&gt;&quot;);C=N.createRange();C.selectNodeContents(P);C.collapse(1);m.selection.setRng(C);return false}if(K==Q&amp;&amp;k==Q&amp;&amp;Q.firstChild&amp;&amp;m.dom.isBlock(Q.firstChild)){K=k=K.firstChild;J=i=0;F=N.createRange();F.setStart(K,0);G=N.createRange();G.setStart(k,0)}K=K.nodeName==&quot;HTML&quot;?N.body:K;K=K.nodeName==&quot;BODY&quot;?K.firstChild:K;k=k.nodeName==&quot;HTML&quot;?N.body:k;k=k.nodeName==&quot;BODY&quot;?k.firstChild:k;l=z.getParentBlock(K);p=z.getParentBlock(k);h=l?l.nodeName:R.element;if(z.dom.getParent(l,&quot;OL,UL,PRE&quot;)){return true}if(l&amp;&amp;(l.nodeName==&quot;CAPTION&quot;||/absolute|relative|fixed/gi.test(I.getStyle(l,&quot;position&quot;,1)))){h=R.element;l=null}if(p&amp;&amp;(p.nodeName==&quot;CAPTION&quot;||/absolute|relative|fixed/gi.test(I.getStyle(l,&quot;position&quot;,1)))){h=R.element;p=null}if(/(TD|TABLE|TH|CAPTION)/.test(h)||(l&amp;&amp;h==&quot;DIV&quot;&amp;&amp;/left|right/gi.test(I.getStyle(l,&quot;float&quot;,1)))){h=R.element;l=p=null}w=(l&amp;&amp;l.nodeName==h)?l.cloneNode(0):m.dom.create(h);P=(p&amp;&amp;p.nodeName==h)?p.cloneNode(0):m.dom.create(h);P.removeAttribute(&quot;id&quot;);if(/^(H[1-6])$/.test(h)&amp;&amp;K.nodeValue&amp;&amp;J==K.nodeValue.length){P=m.dom.create(R.element)}E=j=K;do{if(E==Q||E.nodeType==9||z.dom.isBlock(E)||/(TD|TABLE|TH|CAPTION)/.test(E.nodeName)){break}j=E}while((E=E.previousSibling?E.previousSibling:E.parentNode));E=o=k;do{if(E==Q||E.nodeType==9||z.dom.isBlock(E)||/(TD|TABLE|TH|CAPTION)/.test(E.nodeName)){break}o=E}while((E=E.nextSibling?E.nextSibling:E.parentNode));if(j.nodeName==h){F.setStart(j,0)}else{F.setStartBefore(j)}F.setEnd(K,J);w.appendChild(F.cloneContents()||N.createTextNode(&quot;&quot;));try{G.setEndAfter(o)}catch(L){}G.setStart(k,i);P.appendChild(G.cloneContents()||N.createTextNode(&quot;&quot;));C=N.createRange();if(!j.previousSibling&amp;&amp;j.parentNode.nodeName==h){C.setStartBefore(j.parentNode)}else{if(F.startContainer.nodeName==h&amp;&amp;F.startOffset==0){C.setStartBefore(F.startContainer)}else{C.setStart(F.startContainer,F.startOffset)}}if(!o.nextSibling&amp;&amp;o.parentNode.nodeName==h){C.setEndAfter(o.parentNode)}else{C.setEnd(G.endContainer,G.endOffset)}C.deleteContents();if(c){m.getWin().scrollTo(0,H.y)}if(w.firstChild&amp;&amp;w.firstChild.nodeName==h){w.innerHTML=w.firstChild.innerHTML}if(P.firstChild&amp;&amp;P.firstChild.nodeName==h){P.innerHTML=P.firstChild.innerHTML}if(A(w)){w.innerHTML=&quot;&lt;br /&gt;&quot;}function O(y,s){var r=[],T,S,t;y.innerHTML=&quot;&quot;;if(R.keep_styles){S=s;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(S.nodeName)){T=S.cloneNode(false);I.setAttrib(T,&quot;id&quot;,&quot;&quot;);r.push(T)}}while(S=S.parentNode)}if(r.length&gt;0){for(t=r.length-1,T=y;t&gt;=0;t--){T=T.appendChild(r[t])}r[0].innerHTML=c?&quot;&amp;nbsp;&quot;:&quot;&lt;br /&gt;&quot;;return r[0]}else{y.innerHTML=c?&quot;&amp;nbsp;&quot;:&quot;&lt;br /&gt;&quot;}}if(A(P)){u=O(P,k)}if(c&amp;&amp;parseFloat(opera.version())&lt;9.5){C.insertNode(w);C.insertNode(P)}else{C.insertNode(P);C.insertNode(w)}P.normalize();w.normalize();function q(r){return N.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false).nextNode()||r}C=N.createRange();C.selectNodeContents(a?q(u||P):u||P);C.collapse(1);B.removeAllRanges();B.addRange(C);v=m.dom.getPos(P).y;x=P.clientHeight;if(v&lt;H.y||v+x&gt;H.y+H.h){m.getWin().scrollTo(0,v&lt;H.y?v:v-H.h+25)}return false},backspaceDelete:function(k,s){var v=this,j=v.editor,o=j.getBody(),i,l=j.selection,h=l.getRng(),m=h.startContainer,i,p,q;if(m&amp;&amp;j.dom.isBlock(m)&amp;&amp;!/^(TD|TH)$/.test(m.nodeName)&amp;&amp;s){if(m.childNodes.length==0||(m.childNodes.length==1&amp;&amp;m.firstChild.nodeName==&quot;BR&quot;)){i=m;while((i=i.previousSibling)&amp;&amp;!j.dom.isBlock(i)){}if(i){if(m!=o.firstChild){p=j.dom.doc.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,false);while(q=p.nextNode()){i=q}h=j.getDoc().createRange();h.setStart(i,i.nodeValue?i.nodeValue.length:0);h.setEnd(i,i.nodeValue?i.nodeValue.length:0);l.setRng(h);j.dom.remove(m)}return b.cancel(k)}}}function u(n){var r;n=n.target;if(n&amp;&amp;n.parentNode&amp;&amp;n.nodeName==&quot;BR&quot;&amp;&amp;(i=v.getParentBlock(n))){r=n.previousSibling;b.remove(o,&quot;DOMNodeInserted&quot;,u);if(r&amp;&amp;r.nodeType==3&amp;&amp;/\s+$/.test(r.nodeValue)){return}if(n.previousSibling||n.nextSibling){j.dom.remove(n)}}}b._add(o,&quot;DOMNodeInserted&quot;,u);window.setTimeout(function(){b._remove(o,&quot;DOMNodeInserted&quot;,u)},1)}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each,e=c.extend;c.create(&quot;tinymce.ControlManager&quot;,{ControlManager:function(f,j){var h=this,g;j=j||{};h.editor=f;h.controls={};h.onAdd=new c.util.Dispatcher(h);h.onPostRender=new c.util.Dispatcher(h);h.prefix=j.prefix||f.id+&quot;_&quot;;h._cls={};h.onPostRender.add(function(){d(h.controls,function(i){i.postRender()})})},get:function(f){return this.controls[this.prefix+f]||this.controls[f]},setActive:function(h,f){var g=null;if(g=this.get(h)){g.setActive(f)}return g},setDisabled:function(h,f){var g=null;if(g=this.get(h)){g.setDisabled(f)}return g},add:function(g){var f=this;if(g){f.controls[g.id]=g;f.onAdd.dispatch(g,f)}return g},createControl:function(i){var h,g=this,f=g.editor;d(f.plugins,function(j){if(j.createControl){h=j.createControl(i,g);if(h){return false}}});switch(i){case&quot;|&quot;:case&quot;separator&quot;:return g.createSeparator()}if(!h&amp;&amp;f.buttons&amp;&amp;(h=f.buttons[i])){return g.createButton(i,h)}return g.add(h)},createDropMenu:function(f,n,h){var m=this,i=m.editor,j,g,k,l;n=e({&quot;class&quot;:&quot;mceDropDown&quot;,constrain:i.settings.constrain_menus},n);n[&quot;class&quot;]=n[&quot;class&quot;]+&quot; &quot;+i.getParam(&quot;skin&quot;)+&quot;Skin&quot;;if(k=i.getParam(&quot;skin_variant&quot;)){n[&quot;class&quot;]+=&quot; &quot;+i.getParam(&quot;skin&quot;)+&quot;Skin&quot;+k.substring(0,1).toUpperCase()+k.substring(1)}f=m.prefix+f;l=h||m._cls.dropmenu||c.ui.DropMenu;j=m.controls[f]=new l(f,n);j.onAddItem.add(function(r,q){var p=q.settings;p.title=i.getLang(p.title,p.title);if(!p.onclick){p.onclick=function(o){i.execCommand(p.cmd,p.ui||false,p.value)}}});i.onRemove.add(function(){j.destroy()});if(c.isIE){j.onShowMenu.add(function(){g=i.selection.getBookmark(1)});j.onHideMenu.add(function(){if(g){i.selection.moveToBookmark(g);g=0}})}return m.add(j)},createListBox:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.scope=i.scope||g;if(!i.onselect){i.onselect=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}i=e({title:i.title,&quot;class&quot;:&quot;mce_&quot;+m,scope:i.scope,control_manager:h},i);m=h.prefix+m;if(g.settings.use_native_selects){k=new c.ui.NativeListBox(m,i)}else{f=l||h._cls.listbox||c.ui.ListBox;k=new f(m,i)}h.controls[m]=k;if(c.isWebKit){k.onPostRender.add(function(p,o){a.add(o,&quot;mousedown&quot;,function(){g.bookmark=g.selection.getBookmark(&quot;simple&quot;)});a.add(o,&quot;focus&quot;,function(){g.selection.moveToBookmark(g.bookmark);g.bookmark=null})})}if(k.hideMenu){g.onMouseDown.add(k.hideMenu,k)}return h.add(k)},createButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.label=g.translate(i.label);i.scope=i.scope||g;if(!i.onclick&amp;&amp;!i.menu_button){i.onclick=function(){g.execCommand(i.cmd,i.ui||false,i.value)}}i=e({title:i.title,&quot;class&quot;:&quot;mce_&quot;+m,unavailable_prefix:g.getLang(&quot;unavailable&quot;,&quot;&quot;),scope:i.scope,control_manager:h},i);m=h.prefix+m;if(i.menu_button){f=l||h._cls.menubutton||c.ui.MenuButton;k=new f(m,i);g.onMouseDown.add(k.hideMenu,k)}else{f=h._cls.button||c.ui.Button;k=new f(m,i)}return h.add(k)},createMenuButton:function(h,f,g){f=f||{};f.menu_button=1;return this.createButton(h,f,g)},createSplitButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.scope=i.scope||g;if(!i.onclick){i.onclick=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}if(!i.onselect){i.onselect=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}i=e({title:i.title,&quot;class&quot;:&quot;mce_&quot;+m,scope:i.scope,control_manager:h},i);m=h.prefix+m;f=l||h._cls.splitbutton||c.ui.SplitButton;k=h.add(new f(m,i));g.onMouseDown.add(k.hideMenu,k);return k},createColorSplitButton:function(f,n,h){var l=this,j=l.editor,i,k,m,g;if(l.get(f)){return null}n.title=j.translate(n.title);n.scope=n.scope||j;if(!n.onclick){n.onclick=function(o){if(c.isIE){g=j.selection.getBookmark(1)}j.execCommand(n.cmd,n.ui||false,o||n.value)}}if(!n.onselect){n.onselect=function(o){j.execCommand(n.cmd,n.ui||false,o||n.value)}}n=e({title:n.title,&quot;class&quot;:&quot;mce_&quot;+f,menu_class:j.getParam(&quot;skin&quot;)+&quot;Skin&quot;,scope:n.scope,more_colors_title:j.getLang(&quot;more_colors&quot;)},n);f=l.prefix+f;m=h||l._cls.colorsplitbutton||c.ui.ColorSplitButton;k=new m(f,n);j.onMouseDown.add(k.hideMenu,k);j.onRemove.add(function(){k.destroy()});if(c.isIE){k.onHideMenu.add(function(){if(g){j.selection.moveToBookmark(g);g=0}})}return l.add(k)},createToolbar:function(k,h,j){var i,g=this,f;k=g.prefix+k;f=j||g._cls.toolbar||c.ui.Toolbar;i=new f(k,h);if(g.get(k)){return null}return g.add(i)},createSeparator:function(g){var f=g||this._cls.separator||c.ui.Separator;return new f()},setControlType:function(g,f){return this._cls[g.toLowerCase()]=f},destroy:function(){d(this.controls,function(f){f.destroy()});this.controls=null}})})(tinymce);(function(d){var a=d.util.Dispatcher,e=d.each,c=d.isIE,b=d.isOpera;d.create(&quot;tinymce.WindowManager&quot;,{WindowManager:function(f){var g=this;g.editor=f;g.onOpen=new a(g);g.onClose=new a(g);g.params={};g.features={}},open:function(z,h){var v=this,k=&quot;&quot;,n,m,i=v.editor.settings.dialog_type==&quot;modal&quot;,q,o,j,g=d.DOM.getViewPort(),r;z=z||{};h=h||{};o=b?g.w:screen.width;j=b?g.h:screen.height;z.name=z.name||&quot;mc_&quot;+new Date().getTime();z.width=parseInt(z.width||320);z.height=parseInt(z.height||240);z.resizable=true;z.left=z.left||parseInt(o/2)-(z.width/2);z.top=z.top||parseInt(j/2)-(z.height/2);h.inline=false;h.mce_width=z.width;h.mce_height=z.height;h.mce_auto_focus=z.auto_focus;if(i){if(c){z.center=true;z.help=false;z.dialogWidth=z.width+&quot;px&quot;;z.dialogHeight=z.height+&quot;px&quot;;z.scroll=z.scrollbars||false}}e(z,function(p,f){if(d.is(p,&quot;boolean&quot;)){p=p?&quot;yes&quot;:&quot;no&quot;}if(!/^(name|url)$/.test(f)){if(c&amp;&amp;i){k+=(k?&quot;;&quot;:&quot;&quot;)+f+&quot;:&quot;+p}else{k+=(k?&quot;,&quot;:&quot;&quot;)+f+&quot;=&quot;+p}}});v.features=z;v.params=h;v.onOpen.dispatch(v,z,h);r=z.url||z.file;r=d._addVer(r);try{if(c&amp;&amp;i){q=1;window.showModalDialog(r,window,k)}else{q=window.open(r,z.name,k)}}catch(l){}if(!q){alert(v.editor.getLang(&quot;popup_blocked&quot;))}},close:function(f){f.close();this.onClose.dispatch(this)},createInstance:function(i,h,g,m,l,k){var j=d.resolve(i);return new j(h,g,m,l,k)},confirm:function(h,f,i,g){g=g||window;f.call(i||this,g.confirm(this._decode(this.editor.getLang(h,h))))},alert:function(h,f,j,g){var i=this;g=g||window;g.alert(i._decode(i.editor.getLang(h,h)));if(f){f.call(j||i)}},_decode:function(f){return d.DOM.decode(f).replace(/\\n/g,&quot;\n&quot;)}})}(tinymce));(function(a){a.CommandManager=function(){var c={},b={},d={};function e(i,h,g,f){if(typeof(h)==&quot;string&quot;){h=[h]}a.each(h,function(j){i[j.toLowerCase()]={func:g,scope:f}})}a.extend(this,{add:function(h,g,f){e(c,h,g,f)},addQueryStateHandler:function(h,g,f){e(b,h,g,f)},addQueryValueHandler:function(h,g,f){e(d,h,g,f)},execCommand:function(g,j,i,h,f){if(j=c[j.toLowerCase()]){if(j.func.call(g||j.scope,i,h,f)!==false){return true}}},queryCommandValue:function(){if(cmd=d[cmd.toLowerCase()]){return cmd.func.call(scope||cmd.scope,ui,value,args)}},queryCommandState:function(){if(cmd=b[cmd.toLowerCase()]){return cmd.func.call(scope||cmd.scope,ui,value,args)}}})};a.GlobalCommands=new a.CommandManager()})(tinymce);(function(b){function a(i,d,h,m){var j,g,e,l,f;function k(p,o){do{if(p.parentNode==o){return p}p=p.parentNode}while(p)}function c(o){m(o);b.walk(o,m,&quot;childNodes&quot;)}j=i.findCommonAncestor(d,h);e=k(d,j)||d;l=k(h,j)||h;for(g=d;g&amp;&amp;g!=e;g=g.parentNode){for(f=g.nextSibling;f;f=f.nextSibling){c(f)}}if(e!=l){for(g=e.nextSibling;g&amp;&amp;g!=l;g=g.nextSibling){c(g)}}else{c(e)}for(g=h;g&amp;&amp;g!=l;g=g.parentNode){for(f=g.previousSibling;f;f=f.previousSibling){c(f)}}}b.GlobalCommands.add(&quot;RemoveFormat&quot;,function(){var m=this,l=m.dom,u=m.selection,d=u.getRng(1),e=[],h,f,j,q,g,o,c,i;function k(s){var r;l.getParent(s,function(v){if(l.is(v,m.getParam(&quot;removeformat_selector&quot;))){r=v}return l.isBlock(v)},m.getBody());return r}function p(r){if(l.is(r,m.getParam(&quot;removeformat_selector&quot;))){e.push(r)}}function t(r){p(r);b.walk(r,p,&quot;childNodes&quot;)}h=u.getBookmark();q=d.startContainer;o=d.endContainer;g=d.startOffset;c=d.endOffset;q=q.nodeType==1?q.childNodes[g]:q;o=o.nodeType==1?o.childNodes[c-1]:o;if(q==o){f=k(q);if(q.nodeType==3){if(f&amp;&amp;f.nodeType==1){i=q.splitText(g);i.splitText(c-g);l.split(f,i);u.moveToBookmark(h)}return}t(l.split(f,q)||q)}else{f=k(q);j=k(o);if(f){if(q.nodeType==3){if(g==q.nodeValue.length){q.nodeValue+=&quot;\uFEFF&quot;}q=q.splitText(g)}}if(j){if(o.nodeType==3){o.splitText(c)}}if(f&amp;&amp;f==j){l.replace(l.create(&quot;span&quot;,{id:&quot;__end&quot;},o.cloneNode(true)),o)}if(f){f=l.split(f,q)}else{f=q}if(i=l.get(&quot;__end&quot;)){o=i;j=k(o)}if(j){j=l.split(j,o)}else{j=o}a(l,f,j,p);if(q.nodeValue==&quot;\uFEFF&quot;){q.nodeValue=&quot;&quot;}t(o);t(q)}b.each(e,function(r){l.remove(r,1)});l.remove(&quot;__end&quot;,1);u.moveToBookmark(h)})})(tinymce);(function(a){a.GlobalCommands.add(&quot;mceBlockQuote&quot;,function(){var j=this,o=j.selection,f=j.dom,l,k,e,d,p,c,m,h,b;function g(i){return f.getParent(i,function(q){return q.nodeName===&quot;BLOCKQUOTE&quot;})}l=f.getParent(o.getStart(),f.isBlock);k=f.getParent(o.getEnd(),f.isBlock);if(p=g(l)){if(l!=k||l.childNodes.length&gt;1||(l.childNodes.length==1&amp;&amp;l.firstChild.nodeName!=&quot;BR&quot;)){d=o.getBookmark()}if(g(k)){m=p.cloneNode(false);while(e=k.nextSibling){m.appendChild(e.parentNode.removeChild(e))}}if(m){f.insertAfter(m,p)}b=o.getSelectedBlocks(l,k);for(h=b.length-1;h&gt;=0;h--){f.insertAfter(b[h],p)}if(/^\s*$/.test(p.innerHTML)){f.remove(p,1)}if(m&amp;&amp;/^\s*$/.test(m.innerHTML)){f.remove(m,1)}if(!d){if(!a.isIE){c=j.getDoc().createRange();c.setStart(l,0);c.setEnd(l,0);o.setRng(c)}else{o.select(l);o.collapse(0);if(f.getParent(o.getStart(),f.isBlock)!=l){c=o.getRng();c.move(&quot;character&quot;,-1);c.select()}}}else{j.selection.moveToBookmark(d)}return}if(a.isIE&amp;&amp;!l&amp;&amp;!k){j.getDoc().execCommand(&quot;Indent&quot;);e=g(o.getNode());e.style.margin=e.dir=&quot;&quot;;return}if(!l||!k){return}if(l!=k||l.childNodes.length&gt;1||(l.childNodes.length==1&amp;&amp;l.firstChild.nodeName!=&quot;BR&quot;)){d=o.getBookmark()}a.each(o.getSelectedBlocks(g(o.getStart()),g(o.getEnd())),function(i){if(i.nodeName==&quot;BLOCKQUOTE&quot;&amp;&amp;!p){p=i;return}if(!p){p=f.create(&quot;blockquote&quot;);i.parentNode.insertBefore(p,i)}if(i.nodeName==&quot;BLOCKQUOTE&quot;&amp;&amp;p){e=i.firstChild;while(e){p.appendChild(e.cloneNode(true));e=e.nextSibling}f.remove(i);return}p.appendChild(f.remove(i))});if(!d){if(!a.isIE){c=j.getDoc().createRange();c.setStart(l,0);c.setEnd(l,0);o.setRng(c)}else{o.select(l);o.collapse(1)}}else{o.moveToBookmark(d)}})})(tinymce);(function(a){a.each([&quot;Cut&quot;,&quot;Copy&quot;,&quot;Paste&quot;],function(b){a.GlobalCommands.add(b,function(){var c=this,e=c.getDoc();try{e.execCommand(b,false,null);if(!e.queryCommandSupported(b)){throw&quot;Error&quot;}}catch(d){c.windowManager.alert(c.getLang(&quot;clipboard_no_support&quot;))}})})})(tinymce);(function(a){a.GlobalCommands.add(&quot;InsertHorizontalRule&quot;,function(){if(a.isOpera){return this.getDoc().execCommand(&quot;InsertHorizontalRule&quot;,false,&quot;&quot;)}this.selection.setContent(&quot;&lt;hr /&gt;&quot;)})})(tinymce);(function(){var a=tinymce.GlobalCommands;a.add([&quot;mceEndUndoLevel&quot;,&quot;mceAddUndoLevel&quot;],function(){this.undoManager.add()});a.add(&quot;Undo&quot;,function(){var b=this;if(b.settings.custom_undo_redo){b.undoManager.undo();b.nodeChanged();return true}return false});a.add(&quot;Redo&quot;,function(){var b=this;if(b.settings.custom_undo_redo){b.undoManager.redo();b.nodeChanged();return true}return false})})();
\ No newline at end of file
+var tinymce={majorVersion:&quot;3&quot;,minorVersion:&quot;2.7&quot;,releaseDate:&quot;2009-09-22&quot;,_init:function(){var o=this,k=document,l=window,j=navigator,b=j.userAgent,h,a,g,f,e,m;o.isOpera=l.opera&amp;&amp;opera.buildNumber;o.isWebKit=/WebKit/.test(b);o.isIE=!o.isWebKit&amp;&amp;!o.isOpera&amp;&amp;(/MSIE/gi).test(b)&amp;&amp;(/Explorer/gi).test(j.appName);o.isIE6=o.isIE&amp;&amp;/MSIE [56]/.test(b);o.isGecko=!o.isWebKit&amp;&amp;/Gecko/.test(b);o.isMac=b.indexOf(&quot;Mac&quot;)!=-1;o.isAir=/adobeair/i.test(b);if(l.tinyMCEPreInit){o.suffix=tinyMCEPreInit.suffix;o.baseURL=tinyMCEPreInit.base;o.query=tinyMCEPreInit.query;return}o.suffix=&quot;&quot;;a=k.getElementsByTagName(&quot;base&quot;);for(h=0;h&lt;a.length;h++){if(m=a[h].href){if(/^https?:\/\/[^\/]+$/.test(m)){m+=&quot;/&quot;}f=m?m.match(/.*\//)[0]:&quot;&quot;}}function c(d){if(d.src&amp;&amp;/tiny_mce(|_gzip|_jquery|_prototype)(_dev|_src)?.js/.test(d.src)){if(/_(src|dev)\.js/g.test(d.src)){o.suffix=&quot;_src&quot;}if((e=d.src.indexOf(&quot;?&quot;))!=-1){o.query=d.src.substring(e+1)}o.baseURL=d.src.substring(0,d.src.lastIndexOf(&quot;/&quot;));if(f&amp;&amp;o.baseURL.indexOf(&quot;://&quot;)==-1&amp;&amp;o.baseURL.indexOf(&quot;/&quot;)!==0){o.baseURL=f+o.baseURL}return o.baseURL}return null}a=k.getElementsByTagName(&quot;script&quot;);for(h=0;h&lt;a.length;h++){if(c(a[h])){return}}g=k.getElementsByTagName(&quot;head&quot;)[0];if(g){a=g.getElementsByTagName(&quot;script&quot;);for(h=0;h&lt;a.length;h++){if(c(a[h])){return}}}return},is:function(b,a){var c=typeof(b);if(!a){return c!=&quot;undefined&quot;}if(a==&quot;array&quot;&amp;&amp;(b.hasOwnProperty&amp;&amp;b instanceof Array)){return true}return c==a},each:function(d,a,c){var e,b;if(!d){return 0}c=c||d;if(typeof(d.length)!=&quot;undefined&quot;){for(e=0,b=d.length;e&lt;b;e++){if(a.call(c,d[e],e,d)===false){return 0}}}else{for(e in d){if(d.hasOwnProperty(e)){if(a.call(c,d[e],e,d)===false){return 0}}}}return 1},map:function(b,c){var d=[];tinymce.each(b,function(a){d.push(c(a))});return d},grep:function(b,c){var d=[];tinymce.each(b,function(a){if(!c||c(a)){d.push(a)}});return d},inArray:function(c,d){var e,b;if(c){for(e=0,b=c.length;e&lt;b;e++){if(c[e]===d){return e}}}return -1},extend:function(f,d){var c,b=arguments;for(c=1;c&lt;b.length;c++){d=b[c];tinymce.each(d,function(a,e){if(typeof(a)!==&quot;undefined&quot;){f[e]=a}})}return f},trim:function(a){return(a?&quot;&quot;+a:&quot;&quot;).replace(/^\s*|\s*$/g,&quot;&quot;)},create:function(j,a){var i=this,b,e,f,g,d,h=0;j=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(j);f=j[3].match(/(^|\.)(\w+)$/i)[2];e=i.createNS(j[3].replace(/\.\w+$/,&quot;&quot;));if(e[f]){return}if(j[2]==&quot;static&quot;){e[f]=a;if(this.onCreate){this.onCreate(j[2],j[3],e[f])}return}if(!a[f]){a[f]=function(){};h=1}e[f]=a[f];i.extend(e[f].prototype,a);if(j[5]){b=i.resolve(j[5]).prototype;g=j[5].match(/\.(\w+)$/i)[1];d=e[f];if(h){e[f]=function(){return b[g].apply(this,arguments)}}else{e[f]=function(){this.parent=b[g];return d.apply(this,arguments)}}e[f].prototype[f]=e[f];i.each(b,function(c,k){e[f].prototype[k]=b[k]});i.each(a,function(c,k){if(b[k]){e[f].prototype[k]=function(){this.parent=b[k];return c.apply(this,arguments)}}else{if(k!=f){e[f].prototype[k]=c}}})}i.each(a[&quot;static&quot;],function(c,k){e[f][k]=c});if(this.onCreate){this.onCreate(j[2],j[3],e[f].prototype)}},walk:function(c,b,d,a){a=a||this;if(c){if(d){c=c[d]}tinymce.each(c,function(f,e){if(b.call(a,f,e,d)===false){return false}tinymce.walk(f,b,d,a)})}},createNS:function(d,c){var b,a;c=c||window;d=d.split(&quot;.&quot;);for(b=0;b&lt;d.length;b++){a=d[b];if(!c[a]){c[a]={}}c=c[a]}return c},resolve:function(d,c){var b,a;c=c||window;d=d.split(&quot;.&quot;);for(b=0,a=d.length;b&lt;a;b++){c=c[d[b]];if(!c){break}}return c},addUnload:function(e,d){var c=this,a=window;e={func:e,scope:d||this};if(!c.unloads){function b(){var f=c.unloads,h,i;if(f){for(i in f){h=f[i];if(h&amp;&amp;h.func){h.func.call(h.scope,1)}}if(a.detachEvent){a.detachEvent(&quot;onbeforeunload&quot;,g);a.detachEvent(&quot;onunload&quot;,b)}else{if(a.removeEventListener){a.removeEventListener(&quot;unload&quot;,b,false)}}c.unloads=h=f=a=b=0;if(window.CollectGarbage){window.CollectGarbage()}}}function g(){var h=document;if(h.readyState==&quot;interactive&quot;){function f(){h.detachEvent(&quot;onstop&quot;,f);if(b){b()}h=0}if(h){h.attachEvent(&quot;onstop&quot;,f)}window.setTimeout(function(){if(h){h.detachEvent(&quot;onstop&quot;,f)}},0)}}if(a.attachEvent){a.attachEvent(&quot;onunload&quot;,b);a.attachEvent(&quot;onbeforeunload&quot;,g)}else{if(a.addEventListener){a.addEventListener(&quot;unload&quot;,b,false)}}c.unloads=[e]}else{c.unloads.push(e)}return e},removeUnload:function(c){var a=this.unloads,b=null;tinymce.each(a,function(e,d){if(e&amp;&amp;e.func==c){a.splice(d,1);b=c;return false}});return b},explode:function(a,b){return a?tinymce.map(a.split(b||&quot;,&quot;),tinymce.trim):a},_addVer:function(b){var a;if(!this.query){return b}a=(b.indexOf(&quot;?&quot;)==-1?&quot;?&quot;:&quot;&amp;&quot;)+this.query;if(b.indexOf(&quot;#&quot;)==-1){return b+a}return b.replace(&quot;#&quot;,a+&quot;#&quot;)}};window.tinymce=tinymce;tinymce._init();tinymce.create(&quot;tinymce.util.Dispatcher&quot;,{scope:null,listeners:null,Dispatcher:function(a){this.scope=a||this;this.listeners=[]},add:function(a,b){this.listeners.push({cb:a,scope:b||this.scope});return a},addToTop:function(a,b){this.listeners.unshift({cb:a,scope:b||this.scope});return a},remove:function(a){var b=this.listeners,c=null;tinymce.each(b,function(e,d){if(a==e.cb){c=a;b.splice(d,1);return false}});return c},dispatch:function(){var f,d=arguments,e,b=this.listeners,g;for(e=0;e&lt;b.length;e++){g=b[e];f=g.cb.apply(g.scope,d);if(f===false){break}}return f}});(function(){var a=tinymce.each;tinymce.create(&quot;tinymce.util.URI&quot;,{URI:function(e,g){var f=this,h,d,c;e=tinymce.trim(e);g=f.settings=g||{};if(/^(mailto|tel|news|javascript|about|data):/i.test(e)||/^\s*#/.test(e)){f.source=e;return}if(e.indexOf(&quot;/&quot;)===0&amp;&amp;e.indexOf(&quot;//&quot;)!==0){e=(g.base_uri?g.base_uri.protocol||&quot;http&quot;:&quot;http&quot;)+&quot;://mce_host&quot;+e}if(!/^\w*:?\/\//.test(e)){e=(g.base_uri.protocol||&quot;http&quot;)+&quot;://mce_host&quot;+f.toAbsPath(g.base_uri.path,e)}e=e.replace(/@@/g,&quot;(mce_at)&quot;);e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);a([&quot;source&quot;,&quot;protocol&quot;,&quot;authority&quot;,&quot;userInfo&quot;,&quot;user&quot;,&quot;password&quot;,&quot;host&quot;,&quot;port&quot;,&quot;relative&quot;,&quot;path&quot;,&quot;directory&quot;,&quot;file&quot;,&quot;query&quot;,&quot;anchor&quot;],function(b,j){var k=e[j];if(k){k=k.replace(/\(mce_at\)/g,&quot;@@&quot;)}f[b]=k});if(c=g.base_uri){if(!f.protocol){f.protocol=c.protocol}if(!f.userInfo){f.userInfo=c.userInfo}if(!f.port&amp;&amp;f.host==&quot;mce_host&quot;){f.port=c.port}if(!f.host||f.host==&quot;mce_host&quot;){f.host=c.host}f.source=&quot;&quot;}},setPath:function(c){var b=this;c=/^(.*?)\/?(\w+)?$/.exec(c);b.path=c[0];b.directory=c[1];b.file=c[2];b.source=&quot;&quot;;b.getURI()},toRelative:function(b){var c=this,d;if(b===&quot;./&quot;){return b}b=new tinymce.util.URI(b,{base_uri:c});if((b.host!=&quot;mce_host&quot;&amp;&amp;c.host!=b.host&amp;&amp;b.host)||c.port!=b.port||c.protocol!=b.protocol){return b.getURI()}d=c.toRelPath(c.path,b.path);if(b.query){d+=&quot;?&quot;+b.query}if(b.anchor){d+=&quot;#&quot;+b.anchor}return d},toAbsolute:function(b,c){var b=new tinymce.util.URI(b,{base_uri:this});return b.getURI(this.host==b.host&amp;&amp;this.protocol==b.protocol?c:0)},toRelPath:function(g,h){var c,f=0,d=&quot;&quot;,e,b;g=g.substring(0,g.lastIndexOf(&quot;/&quot;));g=g.split(&quot;/&quot;);c=h.split(&quot;/&quot;);if(g.length&gt;=c.length){for(e=0,b=g.length;e&lt;b;e++){if(e&gt;=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length&lt;c.length){for(e=0,b=c.length;e&lt;b;e++){if(e&gt;=g.length||g[e]!=c[e]){f=e+1;break}}}if(f==1){return h}for(e=0,b=g.length-(f-1);e&lt;b;e++){d+=&quot;../&quot;}for(e=f-1,b=c.length;e&lt;b;e++){if(e!=f-1){d+=&quot;/&quot;+c[e]}else{d+=c[e]}}return d},toAbsPath:function(e,f){var c,b=0,h=[],d,g;d=/\/$/.test(f)?&quot;/&quot;:&quot;&quot;;e=e.split(&quot;/&quot;);f=f.split(&quot;/&quot;);a(e,function(i){if(i){h.push(i)}});e=h;for(c=f.length-1,h=[];c&gt;=0;c--){if(f[c].length==0||f[c]==&quot;.&quot;){continue}if(f[c]==&quot;..&quot;){b++;continue}if(b&gt;0){b--;continue}h.push(f[c])}c=e.length-b;if(c&lt;=0){g=h.reverse().join(&quot;/&quot;)}else{g=e.slice(0,c).join(&quot;/&quot;)+&quot;/&quot;+h.reverse().join(&quot;/&quot;)}if(g.indexOf(&quot;/&quot;)!==0){g=&quot;/&quot;+g}if(d&amp;&amp;g.lastIndexOf(&quot;/&quot;)!==g.length-1){g+=d}return g},getURI:function(d){var c,b=this;if(!b.source||d){c=&quot;&quot;;if(!d){if(b.protocol){c+=b.protocol+&quot;://&quot;}if(b.userInfo){c+=b.userInfo+&quot;@&quot;}if(b.host){c+=b.host}if(b.port){c+=&quot;:&quot;+b.port}}if(b.path){c+=b.path}if(b.query){c+=&quot;?&quot;+b.query}if(b.anchor){c+=&quot;#&quot;+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create(&quot;static tinymce.util.Cookie&quot;,{getHash:function(d){var b=this.get(d),c;if(b){a(b.split(&quot;&amp;&quot;),function(e){e=e.split(&quot;=&quot;);c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h=&quot;&quot;;a(b,function(e,d){h+=(!h?&quot;&quot;:&quot;&amp;&quot;)+escape(d)+&quot;=&quot;+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+&quot;=&quot;,d;if(!h){return}d=h.indexOf(&quot;; &quot;+f);if(d==-1){d=h.indexOf(f);if(d!=0){return null}}else{d+=2}g=h.indexOf(&quot;;&quot;,d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+&quot;=&quot;+escape(b)+((g)?&quot;; expires=&quot;+g.toGMTString():&quot;&quot;)+((f)?&quot;; path=&quot;+escape(f):&quot;&quot;)+((h)?&quot;; domain=&quot;+h:&quot;&quot;)+((c)?&quot;; secure&quot;:&quot;&quot;)},remove:function(e,b){var c=new Date();c.setTime(c.getTime()-1000);this.set(e,&quot;&quot;,c,b,c)}})})();tinymce.create(&quot;static tinymce.util.JSON&quot;,{serialize:function(e){var c,a,d=tinymce.util.JSON.serialize,b;if(e==null){return&quot;null&quot;}b=typeof e;if(b==&quot;string&quot;){a=&quot;\bb\tt\nn\ff\rr\&quot;\&quot;''\\\\&quot;;return'&quot;'+e.replace(/([\u0080-\uFFFF\x00-\x1f\&quot;])/g,function(g,f){c=a.indexOf(f);if(c+1){return&quot;\\&quot;+a.charAt(c+1)}g=f.charCodeAt().toString(16);return&quot;\\u&quot;+&quot;0000&quot;.substring(g.length)+g})+'&quot;'}if(b==&quot;object&quot;){if(e.hasOwnProperty&amp;&amp;e instanceof Array){for(c=0,a=&quot;[&quot;;c&lt;e.length;c++){a+=(c&gt;0?&quot;,&quot;:&quot;&quot;)+d(e[c])}return a+&quot;]&quot;}a=&quot;{&quot;;for(c in e){a+=typeof e[c]!=&quot;function&quot;?(a.length&gt;1?',&quot;':'&quot;')+c+'&quot;:'+d(e[c]):&quot;&quot;}return a+&quot;}&quot;}return&quot;&quot;+e},parse:function(s){try{return eval(&quot;(&quot;+s+&quot;)&quot;)}catch(ex){}}});tinymce.create(&quot;static tinymce.util.XHR&quot;,{send:function(g){var a,e,b=window,h=0;g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||&quot;&quot;;function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d(&quot;Microsoft.XMLHTTP&quot;)||d(&quot;Msxml2.XMLHTTP&quot;);if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?&quot;POST&quot;:&quot;GET&quot;),g.url,g.async);if(g.content_type){a.setRequestHeader(&quot;Content-Type&quot;,g.content_type)}a.setRequestHeader(&quot;X-Requested-With&quot;,&quot;XMLHttpRequest&quot;);a.send(g.data);function f(){if(!g.async||a.readyState==4||h++&gt;10000){if(g.success&amp;&amp;h&lt;10000&amp;&amp;a.status==200){g.success.call(g.success_scope,&quot;&quot;+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h&gt;10000?&quot;TIMED_OUT&quot;:&quot;GENERAL&quot;,a,g)}}a=null}else{b.setTimeout(f,10)}}if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create(&quot;tinymce.util.JSONRequest&quot;,{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)==&quot;undefined&quot;){h={error:&quot;JSON Parse error.&quot;}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){e.call(f.error_scope||f.scope,h,g)};f.data=b.serialize({id:f.id||&quot;c&quot;+(this.count++),method:f.method,params:f.params});f.content_type=&quot;application/json&quot;;a.send(f)},&quot;static&quot;:{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(c){var e=c.each,b=c.is;var d=c.isWebKit,a=c.isIE;c.create(&quot;tinymce.dom.DOMUtils&quot;,{doc:null,root:null,files:null,pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,props:{&quot;for&quot;:&quot;htmlFor&quot;,&quot;class&quot;:&quot;className&quot;,className:&quot;className&quot;,checked:&quot;checked&quot;,disabled:&quot;disabled&quot;,maxlength:&quot;maxLength&quot;,readonly:&quot;readOnly&quot;,selected:&quot;selected&quot;,value:&quot;value&quot;,id:&quot;id&quot;,name:&quot;name&quot;,type:&quot;type&quot;},DOMUtils:function(i,g){var f=this;f.doc=i;f.win=window;f.files={};f.cssFlicker=false;f.counter=0;f.boxModel=!c.isIE||i.compatMode==&quot;CSS1Compat&quot;;f.stdMode=i.documentMode===8;f.settings=g=c.extend({keep_values:false,hex_colors:1,process_html:1},g);if(c.isIE6){try{i.execCommand(&quot;BackgroundImageCache&quot;,false,true)}catch(h){f.cssFlicker=true}}c.addUnload(f.destroy,f)},getRoot:function(){var f=this,g=f.settings;return(g&amp;&amp;f.get(g.root_element))||f.doc.body},getViewPort:function(g){var h,f;g=!g?this.win:g;h=g.document;f=this.boxModel?h.documentElement:h.body;return{x:g.pageXOffset||f.scrollLeft,y:g.pageYOffset||f.scrollTop,w:g.innerWidth||f.clientWidth,h:g.innerHeight||f.clientHeight}},getRect:function(i){var h,f=this,g;i=f.get(i);h=f.getPos(i);g=f.getSize(i);return{x:h.x,y:h.y,w:g.w,h:g.h}},getSize:function(j){var g=this,f,i;j=g.get(j);f=g.getStyle(j,&quot;width&quot;);i=g.getStyle(j,&quot;height&quot;);if(f.indexOf(&quot;px&quot;)===-1){f=0}if(i.indexOf(&quot;px&quot;)===-1){i=0}return{w:parseInt(f)||j.offsetWidth||j.clientWidth,h:parseInt(i)||j.offsetHeight||j.clientHeight}},getParent:function(i,h,g){return this.getParents(i,h,g,false)},getParents:function(p,k,i,m){var h=this,g,j=h.settings,l=[];p=h.get(p);m=m===undefined;if(j.strict_root){i=i||h.getRoot()}if(b(k,&quot;string&quot;)){g=k;if(k===&quot;*&quot;){k=function(f){return f.nodeType==1}}else{k=function(f){return h.is(f,g)}}}while(p){if(p==i||!p.nodeType||p.nodeType===9){break}if(!k||k(p)){if(m){l.push(p)}else{return p}}p=p.parentNode}return m?l:null},get:function(f){var g;if(f&amp;&amp;this.doc&amp;&amp;typeof(f)==&quot;string&quot;){g=f;f=this.doc.getElementById(f);if(f&amp;&amp;f.id!==g){return this.doc.getElementsByName(g)[1]}}return f},getNext:function(g,f){return this._findSib(g,f,&quot;nextSibling&quot;)},getPrev:function(g,f){return this._findSib(g,f,&quot;previousSibling&quot;)},select:function(h,g){var f=this;return c.dom.Sizzle(h,f.get(g)||f.get(f.settings.root_element)||f.doc,[])},is:function(g,f){return c.dom.Sizzle.matches(f,g.nodeType?[g]:g).length&gt;0},add:function(j,l,f,i,k){var g=this;return this.run(j,function(n){var m,h;m=b(l,&quot;string&quot;)?g.doc.createElement(l):l;g.setAttribs(m,f);if(i){if(i.nodeType){m.appendChild(i)}else{g.setHTML(m,i)}}return !k?n.appendChild(m):m})},create:function(i,f,g){return this.add(this.doc.createElement(i),i,f,g,1)},createHTML:function(m,f,j){var l=&quot;&quot;,i=this,g;l+=&quot;&lt;&quot;+m;for(g in f){if(f.hasOwnProperty(g)){l+=&quot; &quot;+g+'=&quot;'+i.encode(f[g])+'&quot;'}}if(c.is(j)){return l+&quot;&gt;&quot;+j+&quot;&lt;/&quot;+m+&quot;&gt;&quot;}return l+&quot; /&gt;&quot;},remove:function(h,f){var g=this;return this.run(h,function(m){var l,k,j;l=m.parentNode;if(!l){return null}if(f){for(j=m.childNodes.length-1;j&gt;=0;j--){g.insertAfter(m.childNodes[j],m)}}if(g.fixPsuedoLeaks){l=m.cloneNode(true);f=&quot;IELeakGarbageBin&quot;;k=g.get(f)||g.add(g.doc.body,&quot;div&quot;,{id:f,style:&quot;display:none&quot;});k.appendChild(m);k.innerHTML=&quot;&quot;;return l}return l.removeChild(m)})},setStyle:function(i,f,g){var h=this;return h.run(i,function(l){var k,j;k=l.style;f=f.replace(/-(\D)/g,function(n,m){return m.toUpperCase()});if(h.pixelStyles.test(f)&amp;&amp;(c.is(g,&quot;number&quot;)||/^[\-0-9\.]+$/.test(g))){g+=&quot;px&quot;}switch(f){case&quot;opacity&quot;:if(a){k.filter=g===&quot;&quot;?&quot;&quot;:&quot;alpha(opacity=&quot;+(g*100)+&quot;)&quot;;if(!i.currentStyle||!i.currentStyle.hasLayout){k.display=&quot;inline-block&quot;}}k[f]=k[&quot;-moz-opacity&quot;]=k[&quot;-khtml-opacity&quot;]=g||&quot;&quot;;break;case&quot;float&quot;:a?k.styleFloat=g:k.cssFloat=g;break;default:k[f]=g||&quot;&quot;}if(h.settings.update_styles){h.setAttrib(l,&quot;mce_style&quot;)}})},getStyle:function(i,f,h){i=this.get(i);if(!i){return false}if(this.doc.defaultView&amp;&amp;h){f=f.replace(/[A-Z]/g,function(j){return&quot;-&quot;+j});try{return this.doc.defaultView.getComputedStyle(i,null).getPropertyValue(f)}catch(g){return null}}f=f.replace(/-(\D)/g,function(k,j){return j.toUpperCase()});if(f==&quot;float&quot;){f=a?&quot;styleFloat&quot;:&quot;cssFloat&quot;}if(i.currentStyle&amp;&amp;h){return i.currentStyle[f]}return i.style[f]},setStyles:function(i,j){var g=this,h=g.settings,f;f=h.update_styles;h.update_styles=0;e(j,function(k,l){g.setStyle(i,l,k)});h.update_styles=f;if(h.update_styles){g.setAttrib(i,h.cssText)}},setAttrib:function(h,i,f){var g=this;if(!h||!i){return}if(g.settings.strict){i=i.toLowerCase()}return this.run(h,function(k){var j=g.settings;switch(i){case&quot;style&quot;:if(!b(f,&quot;string&quot;)){e(f,function(l,m){g.setStyle(k,m,l)});return}if(j.keep_values){if(f&amp;&amp;!g._isRes(f)){k.setAttribute(&quot;mce_style&quot;,f,2)}else{k.removeAttribute(&quot;mce_style&quot;,2)}}k.style.cssText=f;break;case&quot;class&quot;:k.className=f||&quot;&quot;;break;case&quot;src&quot;:case&quot;href&quot;:if(j.keep_values){if(j.url_converter){f=j.url_converter.call(j.url_converter_scope||g,f,i,k)}g.setAttrib(k,&quot;mce_&quot;+i,f,2)}break;case&quot;shape&quot;:k.setAttribute(&quot;mce_style&quot;,f);break}if(b(f)&amp;&amp;f!==null&amp;&amp;f.length!==0){k.setAttribute(i,&quot;&quot;+f,2)}else{k.removeAttribute(i,2)}})},setAttribs:function(g,h){var f=this;return this.run(g,function(i){e(h,function(j,k){f.setAttrib(i,k,j)})})},getAttrib:function(i,j,h){var f,g=this;i=g.get(i);if(!i||i.nodeType!==1){return false}if(!b(h)){h=&quot;&quot;}if(/^(src|href|style|coords|shape)$/.test(j)){f=i.getAttribute(&quot;mce_&quot;+j);if(f){return f}}if(a&amp;&amp;g.props[j]){f=i[g.props[j]];f=f&amp;&amp;f.nodeValue?f.nodeValue:f}if(!f){f=i.getAttribute(j,2)}if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(j)){if(i[g.props[j]]===true&amp;&amp;f===&quot;&quot;){return j}return f?j:&quot;&quot;}if(i.nodeName===&quot;FORM&quot;&amp;&amp;i.getAttributeNode(j)){return i.getAttributeNode(j).nodeValue}if(j===&quot;style&quot;){f=f||i.style.cssText;if(f){f=g.serializeStyle(g.parseStyle(f));if(g.settings.keep_values&amp;&amp;!g._isRes(f)){i.setAttribute(&quot;mce_style&quot;,f)}}}if(d&amp;&amp;j===&quot;class&quot;&amp;&amp;f){f=f.replace(/(apple|webkit)\-[a-z\-]+/gi,&quot;&quot;)}if(a){switch(j){case&quot;rowspan&quot;:case&quot;colspan&quot;:if(f===1){f=&quot;&quot;}break;case&quot;size&quot;:if(f===&quot;+0&quot;||f===20||f===0){f=&quot;&quot;}break;case&quot;width&quot;:case&quot;height&quot;:case&quot;vspace&quot;:case&quot;checked&quot;:case&quot;disabled&quot;:case&quot;readonly&quot;:if(f===0){f=&quot;&quot;}break;case&quot;hspace&quot;:if(f===-1){f=&quot;&quot;}break;case&quot;maxlength&quot;:case&quot;tabindex&quot;:if(f===32768||f===2147483647||f===&quot;32768&quot;){f=&quot;&quot;}break;case&quot;multiple&quot;:case&quot;compact&quot;:case&quot;noshade&quot;:case&quot;nowrap&quot;:if(f===65535){return j}return h;case&quot;shape&quot;:f=f.toLowerCase();break;default:if(j.indexOf(&quot;on&quot;)===0&amp;&amp;f){f=(&quot;&quot;+f).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,&quot;$1&quot;)}}}return(f!==undefined&amp;&amp;f!==null&amp;&amp;f!==&quot;&quot;)?&quot;&quot;+f:h},getPos:function(m,i){var g=this,f=0,l=0,j,k=g.doc,h;m=g.get(m);i=i||k.body;if(m){if(a&amp;&amp;!g.stdMode){m=m.getBoundingClientRect();j=g.boxModel?k.documentElement:k.body;f=g.getStyle(g.select(&quot;html&quot;)[0],&quot;borderWidth&quot;);f=(f==&quot;medium&quot;||g.boxModel&amp;&amp;!g.isIE6)&amp;&amp;2||f;m.top+=g.win.self!=g.win.top?2:0;return{x:m.left+j.scrollLeft-f,y:m.top+j.scrollTop-f}}h=m;while(h&amp;&amp;h!=i&amp;&amp;h.nodeType){f+=h.offsetLeft||0;l+=h.offsetTop||0;h=h.offsetParent}h=m.parentNode;while(h&amp;&amp;h!=i&amp;&amp;h.nodeType){f-=h.scrollLeft||0;l-=h.scrollTop||0;h=h.parentNode}}return{x:f,y:l}},parseStyle:function(h){var i=this,j=i.settings,k={};if(!h){return k}function f(w,q,v){var o,u,m,n;o=k[w+&quot;-top&quot;+q];if(!o){return}u=k[w+&quot;-right&quot;+q];if(o!=u){return}m=k[w+&quot;-bottom&quot;+q];if(u!=m){return}n=k[w+&quot;-left&quot;+q];if(m!=n){return}k[v]=n;delete k[w+&quot;-top&quot;+q];delete k[w+&quot;-right&quot;+q];delete k[w+&quot;-bottom&quot;+q];delete k[w+&quot;-left&quot;+q]}function g(n,m,l,p){var o;o=k[m];if(!o){return}o=k[l];if(!o){return}o=k[p];if(!o){return}k[n]=k[m]+&quot; &quot;+k[l]+&quot; &quot;+k[p];delete k[m];delete k[l];delete k[p]}h=h.replace(/&amp;(#?[a-z0-9]+);/g,&quot;&amp;$1_MCE_SEMI_&quot;);e(h.split(&quot;;&quot;),function(m){var l,n=[];if(m){m=m.replace(/_MCE_SEMI_/g,&quot;;&quot;);m=m.replace(/url\([^\)]+\)/g,function(o){n.push(o);return&quot;url(&quot;+n.length+&quot;)&quot;});m=m.split(&quot;:&quot;);l=c.trim(m[1]);l=l.replace(/url\(([^\)]+)\)/g,function(p,o){return n[parseInt(o)-1]});l=l.replace(/rgb\([^\)]+\)/g,function(o){return i.toHex(o)});if(j.url_converter){l=l.replace(/url\([\'\&quot;]?([^\)\'\&quot;]+)[\'\&quot;]?\)/g,function(o,p){return&quot;url(&quot;+j.url_converter.call(j.url_converter_scope||i,i.decode(p),&quot;style&quot;,null)+&quot;)&quot;})}k[c.trim(m[0]).toLowerCase()]=l}});f(&quot;border&quot;,&quot;&quot;,&quot;border&quot;);f(&quot;border&quot;,&quot;-width&quot;,&quot;border-width&quot;);f(&quot;border&quot;,&quot;-color&quot;,&quot;border-color&quot;);f(&quot;border&quot;,&quot;-style&quot;,&quot;border-style&quot;);f(&quot;padding&quot;,&quot;&quot;,&quot;padding&quot;);f(&quot;margin&quot;,&quot;&quot;,&quot;margin&quot;);g(&quot;border&quot;,&quot;border-width&quot;,&quot;border-style&quot;,&quot;border-color&quot;);if(a){if(k.border==&quot;medium none&quot;){k.border=&quot;&quot;}}return k},serializeStyle:function(g){var f=&quot;&quot;;e(g,function(i,h){if(h&amp;&amp;i){if(c.isGecko&amp;&amp;h.indexOf(&quot;-moz-&quot;)===0){return}switch(h){case&quot;color&quot;:case&quot;background-color&quot;:i=i.toLowerCase();break}f+=(f?&quot; &quot;:&quot;&quot;)+h+&quot;: &quot;+i+&quot;;&quot;}});return f},loadCSS:function(f){var h=this,i=h.doc,g;if(!f){f=&quot;&quot;}g=h.select(&quot;head&quot;)[0];e(f.split(&quot;,&quot;),function(j){var k;if(h.files[j]){return}h.files[j]=true;k=h.create(&quot;link&quot;,{rel:&quot;stylesheet&quot;,href:c._addVer(j)});if(a&amp;&amp;i.documentMode){k.onload=function(){i.recalc();k.onload=null}}g.appendChild(k)})},addClass:function(f,g){return this.run(f,function(h){var i;if(!g){return 0}if(this.hasClass(h,g)){return h.className}i=this.removeClass(h,g);return h.className=(i!=&quot;&quot;?(i+&quot; &quot;):&quot;&quot;)+g})},removeClass:function(h,i){var f=this,g;return f.run(h,function(k){var j;if(f.hasClass(k,i)){if(!g){g=new RegExp(&quot;(^|\\s+)&quot;+i+&quot;(\\s+|$)&quot;,&quot;g&quot;)}j=k.className.replace(g,&quot; &quot;);return k.className=c.trim(j!=&quot; &quot;?j:&quot;&quot;)}return k.className})},hasClass:function(g,f){g=this.get(g);if(!g||!f){return false}return(&quot; &quot;+g.className+&quot; &quot;).indexOf(&quot; &quot;+f+&quot; &quot;)!==-1},show:function(f){return this.setStyle(f,&quot;display&quot;,&quot;block&quot;)},hide:function(f){return this.setStyle(f,&quot;display&quot;,&quot;none&quot;)},isHidden:function(f){f=this.get(f);return !f||f.style.display==&quot;none&quot;||this.getStyle(f,&quot;display&quot;)==&quot;none&quot;},uniqueId:function(f){return(!f?&quot;mce_&quot;:f)+(this.counter++)},setHTML:function(i,g){var f=this;return this.run(i,function(m){var h,k,j,q,l,h;g=f.processHTML(g);if(a){function o(){try{m.innerHTML=&quot;&lt;br /&gt;&quot;+g;m.removeChild(m.firstChild)}catch(n){while(m.firstChild){m.firstChild.removeNode()}h=f.create(&quot;div&quot;);h.innerHTML=&quot;&lt;br /&gt;&quot;+g;e(h.childNodes,function(r,p){if(p){m.appendChild(r)}})}}if(f.settings.fix_ie_paragraphs){g=g.replace(/&lt;p&gt;&lt;\/p&gt;|&lt;p([^&gt;]+)&gt;&lt;\/p&gt;|&lt;p[^\/+]\/&gt;/gi,'&lt;p$1 mce_keep=&quot;true&quot;&gt;&amp;nbsp;&lt;/p&gt;')}o();if(f.settings.fix_ie_paragraphs){j=m.getElementsByTagName(&quot;p&quot;);for(k=j.length-1,h=0;k&gt;=0;k--){q=j[k];if(!q.hasChildNodes()){if(!q.mce_keep){h=1;break}q.removeAttribute(&quot;mce_keep&quot;)}}}if(h){g=g.replace(/&lt;p ([^&gt;]+)&gt;|&lt;p&gt;/ig,'&lt;div $1 mce_tmp=&quot;1&quot;&gt;');g=g.replace(/&lt;\/p&gt;/g,&quot;&lt;/div&gt;&quot;);o();if(f.settings.fix_ie_paragraphs){j=m.getElementsByTagName(&quot;DIV&quot;);for(k=j.length-1;k&gt;=0;k--){q=j[k];if(q.mce_tmp){l=f.doc.createElement(&quot;p&quot;);q.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(p,n){var r;if(n!==&quot;mce_tmp&quot;){r=q.getAttribute(n);if(!r&amp;&amp;n===&quot;class&quot;){r=q.className}l.setAttribute(n,r)}});for(h=0;h&lt;q.childNodes.length;h++){l.appendChild(q.childNodes[h].cloneNode(true))}q.swapNode(l)}}}}}else{m.innerHTML=g}return g})},processHTML:function(j){var g=this,i=g.settings,k=[];if(!i.process_html){return j}if(c.isGecko){j=j.replace(/&lt;(\/?)strong&gt;|&lt;strong( [^&gt;]+)&gt;/gi,&quot;&lt;$1b$2&gt;&quot;);j=j.replace(/&lt;(\/?)em&gt;|&lt;em( [^&gt;]+)&gt;/gi,&quot;&lt;$1i$2&gt;&quot;)}else{if(a){j=j.replace(/&amp;apos;/g,&quot;&amp;#39;&quot;);j=j.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\&quot;\']?(false|0)[\&quot;\']?/gi,&quot;&quot;)}}j=j.replace(/&lt;a( )([^&gt;]+)\/&gt;|&lt;a\/&gt;/gi,&quot;&lt;a$1$2&gt;&lt;/a&gt;&quot;);if(i.keep_values){if(/&lt;script|noscript|style/i.test(j)){function f(h){h=h.replace(/(&lt;!--\[CDATA\[|\]\]--&gt;)/g,&quot;\n&quot;);h=h.replace(/^[\r\n]*|[\r\n]*$/g,&quot;&quot;);h=h.replace(/^\s*(\/\/\s*&lt;!--|\/\/\s*&lt;!\[CDATA\[|&lt;!--|&lt;!\[CDATA\[)[\r\n]*/g,&quot;&quot;);h=h.replace(/\s*(\/\/\s*\]\]&gt;|\/\/\s*--&gt;|\]\]&gt;|--&gt;|\]\]--&gt;)\s*$/g,&quot;&quot;);return h}j=j.replace(/&lt;script([^&gt;]+|)&gt;([\s\S]*?)&lt;\/script&gt;/gi,function(h,m,l){if(!m){m=' type=&quot;text/javascript&quot;'}m=m.replace(/src=\&quot;([^\&quot;]+)\&quot;?/i,function(n,o){if(i.url_converter){o=g.encode(i.url_converter.call(i.url_converter_scope||g,g.decode(o),&quot;src&quot;,&quot;script&quot;))}return'mce_src=&quot;'+o+'&quot;'});if(c.trim(l)){k.push(f(l));l=&quot;&lt;!--\nMCE_SCRIPT:&quot;+(k.length-1)+&quot;\n// --&gt;&quot;}return&quot;&lt;mce:script&quot;+m+&quot;&gt;&quot;+l+&quot;&lt;/mce:script&gt;&quot;});j=j.replace(/&lt;style([^&gt;]+|)&gt;([\s\S]*?)&lt;\/style&gt;/gi,function(h,m,l){if(l){k.push(f(l));l=&quot;&lt;!--\nMCE_SCRIPT:&quot;+(k.length-1)+&quot;\n--&gt;&quot;}return&quot;&lt;mce:style&quot;+m+&quot;&gt;&quot;+l+&quot;&lt;/mce:style&gt;&lt;style &quot;+m+' mce_bogus=&quot;1&quot;&gt;'+l+&quot;&lt;/style&gt;&quot;});j=j.replace(/&lt;noscript([^&gt;]+|)&gt;([\s\S]*?)&lt;\/noscript&gt;/g,function(h,m,l){return&quot;&lt;mce:noscript&quot;+m+&quot;&gt;&lt;!--&quot;+g.encode(l).replace(/--/g,&quot;&amp;#45;&amp;#45;&quot;)+&quot;--&gt;&lt;/mce:noscript&gt;&quot;})}j=j.replace(/&lt;!\[CDATA\[([\s\S]+)\]\]&gt;/g,&quot;&lt;!--[CDATA[$1]]--&gt;&quot;);j=j.replace(/&lt;([\w:]+) [^&gt;]*(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)[^&gt;]*&gt;/gi,function(l){function h(o,m,n){if(n===&quot;false&quot;||n===&quot;0&quot;){return&quot;&quot;}return&quot; &quot;+m+'=&quot;'+m+'&quot;'}l=l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=[\&quot;]([^\&quot;]+)[\&quot;]/gi,h);l=l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=[\']([^\']+)[\']/gi,h);l=l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=([^\s\&quot;\'&gt;]+)/gi,h);l=l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)([\s&gt;])/gi,' $1=&quot;$1&quot;$2');return l});j=j.replace(/&lt;([\w:]+) [^&gt;]*(src|href|style|shape|coords)[^&gt;]*&gt;/gi,function(h,m){function l(o,n,q){var p=q;if(h.indexOf(&quot;mce_&quot;+n)!=-1){return o}if(n==&quot;style&quot;){if(g._isRes(q)){return o}p=g.encode(g.serializeStyle(g.parseStyle(p)))}else{if(n!=&quot;coords&quot;&amp;&amp;n!=&quot;shape&quot;){if(i.url_converter){p=g.encode(i.url_converter.call(i.url_converter_scope||g,g.decode(q),n,m))}}}return&quot; &quot;+n+'=&quot;'+q+'&quot; mce_'+n+'=&quot;'+p+'&quot;'}h=h.replace(/ (src|href|style|coords|shape)=[\&quot;]([^\&quot;]+)[\&quot;]/gi,l);h=h.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,l);return h.replace(/ (src|href|style|coords|shape)=([^\s\&quot;\'&gt;]+)/gi,l)});j=j.replace(/MCE_SCRIPT:([0-9]+)/g,function(l,h){return k[h]})}return j},getOuterHTML:function(f){var g;f=this.get(f);if(!f){return null}if(f.outerHTML!==undefined){return f.outerHTML}g=(f.ownerDocument||this.doc).createElement(&quot;body&quot;);g.appendChild(f.cloneNode(true));return g.innerHTML},setOuterHTML:function(j,g,k){var f=this;function i(m,l,p){var q,o;o=p.createElement(&quot;body&quot;);o.innerHTML=l;q=o.lastChild;while(q){f.insertAfter(q.cloneNode(true),m);q=q.previousSibling}f.remove(m)}return this.run(j,function(l){l=f.get(l);if(l.nodeType==1){k=k||l.ownerDocument||f.doc;if(a){try{if(a&amp;&amp;l.nodeType==1){l.outerHTML=g}else{i(l,g,k)}}catch(h){i(l,g,k)}}else{i(l,g,k)}}})},decode:function(g){var h,i,f;if(/&amp;[^;]+;/.test(g)){h=this.doc.createElement(&quot;div&quot;);h.innerHTML=g;i=h.firstChild;f=&quot;&quot;;if(i){do{f+=i.nodeValue}while(i.nextSibling)}return f||g}return g},encode:function(f){return f?(&quot;&quot;+f).replace(/[&lt;&gt;&amp;\&quot;]/g,function(h,g){switch(h){case&quot;&amp;&quot;:return&quot;&amp;amp;&quot;;case'&quot;':return&quot;&amp;quot;&quot;;case&quot;&lt;&quot;:return&quot;&amp;lt;&quot;;case&quot;&gt;&quot;:return&quot;&amp;gt;&quot;}return h}):f},insertAfter:function(h,g){var f=this;g=f.get(g);return this.run(h,function(k){var j,i;j=g.parentNode;i=g.nextSibling;if(i){j.insertBefore(k,i)}else{j.appendChild(k)}return k})},isBlock:function(f){if(f.nodeType&amp;&amp;f.nodeType!==1){return false}f=f.nodeName||f;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TH|TBODY|TR|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(f)},replace:function(i,h,f){var g=this;if(b(h,&quot;array&quot;)){i=i.cloneNode(true)}return g.run(h,function(j){if(f){e(j.childNodes,function(k){i.appendChild(k.cloneNode(true))})}if(g.fixPsuedoLeaks&amp;&amp;j.nodeType===1){j.parentNode.insertBefore(i,j);g.remove(j);return i}return j.parentNode.replaceChild(i,j)})},findCommonAncestor:function(h,f){var i=h,g;while(i){g=f;while(g&amp;&amp;i!=g){g=g.parentNode}if(i==g){break}i=i.parentNode}if(!i&amp;&amp;h.ownerDocument){return h.ownerDocument.documentElement}return i},toHex:function(f){var h=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(f);function g(i){i=parseInt(i).toString(16);return i.length&gt;1?i:&quot;0&quot;+i}if(h){f=&quot;#&quot;+g(h[1])+g(h[2])+g(h[3]);return f}return f},getClasses:function(){var l=this,g=[],k,m={},n=l.settings.class_filter,j;if(l.classes){return l.classes}function o(f){e(f.imports,function(i){o(i)});e(f.cssRules||f.rules,function(i){switch(i.type||1){case 1:if(i.selectorText){e(i.selectorText.split(&quot;,&quot;),function(p){p=p.replace(/^\s*|\s*$|^\s\./g,&quot;&quot;);if(/\.mce/.test(p)||!/\.[\w\-]+$/.test(p)){return}j=p;p=p.replace(/.*\.([a-z0-9_\-]+).*/i,&quot;$1&quot;);if(n&amp;&amp;!(p=n(p,j))){return}if(!m[p]){g.push({&quot;class&quot;:p});m[p]=1}})}break;case 3:o(i.styleSheet);break}})}try{e(l.doc.styleSheets,o)}catch(h){}if(g.length&gt;0){l.classes=g}return g},run:function(j,i,h){var g=this,k;if(g.doc&amp;&amp;typeof(j)===&quot;string&quot;){j=g.get(j)}if(!j){return false}h=h||this;if(!j.nodeType&amp;&amp;(j.length||j.length===0)){k=[];e(j,function(l,f){if(l){if(typeof(l)==&quot;string&quot;){l=g.doc.getElementById(l)}k.push(i.call(h,l,f))}});return k}return i.call(h,j)},getAttribs:function(g){var f;g=this.get(g);if(!g){return[]}if(a){f=[];if(g.nodeName==&quot;OBJECT&quot;){return g.attributes}if(g.nodeName===&quot;OPTION&quot;&amp;&amp;this.getAttrib(g,&quot;selected&quot;)){f.push({specified:1,nodeName:&quot;selected&quot;})}g.cloneNode(false).outerHTML.replace(/&lt;\/?[\w:]+ ?|=[\&quot;][^\&quot;]+\&quot;|=\'[^\']+\'|=\w+|&gt;/gi,&quot;&quot;).replace(/[\w:]+/gi,function(h){f.push({specified:1,nodeName:h})});return f}return g.attributes},destroy:function(g){var f=this;if(f.events){f.events.destroy()}f.win=f.doc=f.root=f.events=null;if(!g){c.removeUnload(f.destroy)}},createRng:function(){var f=this.doc;return f.createRange?f.createRange():new c.dom.Range(this)},split:function(l,k,o){var p=this,f=p.createRng(),m,j,n;function g(r,q){r=r[q];if(r&amp;&amp;r[q]&amp;&amp;r[q].nodeType==1&amp;&amp;i(r[q])){p.remove(r[q])}}function i(q){q=p.getOuterHTML(q);q=q.replace(/&lt;(img|hr|table)/gi,&quot;-&quot;);q=q.replace(/&lt;[^&gt;]+&gt;/g,&quot;&quot;);return q.replace(/[ \t\r\n]+|&amp;nbsp;|&amp;#160;/g,&quot;&quot;)==&quot;&quot;}function h(r){var q=0;while(r.previousSibling){q++;r=r.previousSibling}return q}if(l&amp;&amp;k){f.setStart(l.parentNode,h(l));f.setEnd(k.parentNode,h(k));m=f.extractContents();f=p.createRng();f.setStart(k.parentNode,h(k)+1);f.setEnd(l.parentNode,h(l)+1);j=f.extractContents();n=l.parentNode;g(m,&quot;lastChild&quot;);if(!i(m)){n.insertBefore(m,l)}if(o){n.replaceChild(o,k)}else{n.insertBefore(k,l)}g(j,&quot;firstChild&quot;);if(!i(j)){n.insertBefore(j,l)}p.remove(l);return o||k}},bind:function(j,f,i,h){var g=this;if(!g.events){g.events=new c.dom.EventUtils()}return g.events.add(j,f,i,h||this)},unbind:function(i,f,h){var g=this;if(!g.events){g.events=new c.dom.EventUtils()}return g.events.remove(i,f,h)},_findSib:function(j,g,h){var i=this,k=g;if(j){if(b(k,&quot;string&quot;)){k=function(f){return i.is(f,g)}}for(j=j[h];j;j=j[h]){if(k(j)){return j}}}return null},_isRes:function(f){return/^(top|left|bottom|right|width|height)/i.test(f)||/;\s*(top|left|bottom|right|width|height)/i.test(f)}});c.DOM=new c.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(f){var h=0,c=1,e=2,d=tinymce.extend;function g(m,k){var j,l;if(m.parentNode!=k){return -1}for(l=k.firstChild,j=0;l!=m;l=l.nextSibling){j++}return j}function b(k){var j=0;while(k.previousSibling){j++;k=k.previousSibling}return j}function i(j,k){var l;if(j.nodeType==3){return j}if(k&lt;0){return j}l=j.firstChild;while(l!=null&amp;&amp;k&gt;0){--k;l=l.nextSibling}if(l!=null){return l}return j}function a(k){var j=k.doc;d(this,{dom:k,startContainer:j,startOffset:0,endContainer:j,endOffset:0,collapsed:true,commonAncestorContainer:j,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3})}d(a.prototype,{setStart:function(k,j){this._setEndPoint(true,k,j)},setEnd:function(k,j){this._setEndPoint(false,k,j)},setStartBefore:function(j){this.setStart(j.parentNode,b(j))},setStartAfter:function(j){this.setStart(j.parentNode,b(j)+1)},setEndBefore:function(j){this.setEnd(j.parentNode,b(j))},setEndAfter:function(j){this.setEnd(j.parentNode,b(j)+1)},collapse:function(k){var j=this;if(k){j.endContainer=j.startContainer;j.endOffset=j.startOffset}else{j.startContainer=j.endContainer;j.startOffset=j.endOffset}j.collapsed=true},selectNode:function(j){this.setStartBefore(j);this.setEndAfter(j)},selectNodeContents:function(j){this.setStart(j,0);this.setEnd(j,j.nodeType===1?j.childNodes.length:j.nodeValue.length)},compareBoundaryPoints:function(m,n){var l=this,p=l.startContainer,o=l.startOffset,k=l.endContainer,j=l.endOffset;if(m===0){return l._compareBoundaryPoints(p,o,p,o)}if(m===1){return l._compareBoundaryPoints(p,o,k,j)}if(m===2){return l._compareBoundaryPoints(k,j,k,j)}if(m===3){return l._compareBoundaryPoints(k,j,p,o)}},deleteContents:function(){this._traverse(e)},extractContents:function(){return this._traverse(h)},cloneContents:function(){return this._traverse(c)},insertNode:function(m){var j=this,l,k;if(m.nodeType===3||m.nodeType===4){l=j.startContainer.splitText(j.startOffset);j.startContainer.parentNode.insertBefore(m,l)}else{if(j.startContainer.childNodes.length&gt;0){k=j.startContainer.childNodes[j.startOffset]}j.startContainer.insertBefore(m,k)}},surroundContents:function(l){var j=this,k=j.extractContents();j.insertNode(l);l.appendChild(k);j.selectNode(l)},cloneRange:function(){var j=this;return d(new a(j.dom),{startContainer:j.startContainer,startOffset:j.startOffset,endContainer:j.endContainer,endOffset:j.endOffset,collapsed:j.collapsed,commonAncestorContainer:j.commonAncestorContainer})},_isCollapsed:function(){return(this.startContainer==this.endContainer&amp;&amp;this.startOffset==this.endOffset)},_compareBoundaryPoints:function(m,p,k,o){var q,l,j,r,t,s;if(m==k){if(p==o){return 0}else{if(p&lt;o){return -1}else{return 1}}}q=k;while(q&amp;&amp;q.parentNode!=m){q=q.parentNode}if(q){l=0;j=m.firstChild;while(j!=q&amp;&amp;l&lt;p){l++;j=j.nextSibling}if(p&lt;=l){return -1}else{return 1}}q=m;while(q&amp;&amp;q.parentNode!=k){q=q.parentNode}if(q){l=0;j=k.firstChild;while(j!=q&amp;&amp;l&lt;o){l++;j=j.nextSibling}if(l&lt;o){return -1}else{return 1}}r=this.dom.findCommonAncestor(m,k);t=m;while(t&amp;&amp;t.parentNode!=r){t=t.parentNode}if(!t){t=r}s=k;while(s&amp;&amp;s.parentNode!=r){s=s.parentNode}if(!s){s=r}if(t==s){return 0}j=r.firstChild;while(j){if(j==t){return -1}if(j==s){return 1}j=j.nextSibling}},_setEndPoint:function(k,q,p){var l=this,j,m;if(k){l.startContainer=q;l.startOffset=p}else{l.endContainer=q;l.endOffset=p}j=l.endContainer;while(j.parentNode){j=j.parentNode}m=l.startContainer;while(m.parentNode){m=m.parentNode}if(m!=j){l.collapse(k)}else{if(l._compareBoundaryPoints(l.startContainer,l.startOffset,l.endContainer,l.endOffset)&gt;0){l.collapse(k)}}l.collapsed=l._isCollapsed();l.commonAncestorContainer=l.dom.findCommonAncestor(l.startContainer,l.endContainer)},_traverse:function(r){var s=this,q,m=0,v=0,k,o,l,n,j,u;if(s.startContainer==s.endContainer){return s._traverseSameContainer(r)}for(q=s.endContainer,k=q.parentNode;k!=null;q=k,k=k.parentNode){if(k==s.startContainer){return s._traverseCommonStartContainer(q,r)}++m}for(q=s.startContainer,k=q.parentNode;k!=null;q=k,k=k.parentNode){if(k==s.endContainer){return s._traverseCommonEndContainer(q,r)}++v}o=v-m;l=s.startContainer;while(o&gt;0){l=l.parentNode;o--}n=s.endContainer;while(o&lt;0){n=n.parentNode;o++}for(j=l.parentNode,u=n.parentNode;j!=u;j=j.parentNode,u=u.parentNode){l=j;n=u}return s._traverseCommonAncestors(l,n,r)},_traverseSameContainer:function(o){var r=this,q,u,j,k,l,p,m;if(o!=e){q=r.dom.doc.createDocumentFragment()}if(r.startOffset==r.endOffset){return q}if(r.startContainer.nodeType==3){u=r.startContainer.nodeValue;j=u.substring(r.startOffset,r.endOffset);if(o!=c){r.startContainer.deleteData(r.startOffset,r.endOffset-r.startOffset);r.collapse(true)}if(o==e){return null}q.appendChild(r.dom.doc.createTextNode(j));return q}k=i(r.startContainer,r.startOffset);l=r.endOffset-r.startOffset;while(l&gt;0){p=k.nextSibling;m=r._traverseFullySelected(k,o);if(q){q.appendChild(m)}--l;k=p}if(o!=c){r.collapse(true)}return q},_traverseCommonStartContainer:function(j,p){var s=this,r,k,l,m,q,o;if(p!=e){r=s.dom.doc.createDocumentFragment()}k=s._traverseRightBoundary(j,p);if(r){r.appendChild(k)}l=g(j,s.startContainer);m=l-s.startOffset;if(m&lt;=0){if(p!=c){s.setEndBefore(j);s.collapse(false)}return r}k=j.previousSibling;while(m&gt;0){q=k.previousSibling;o=s._traverseFullySelected(k,p);if(r){r.insertBefore(o,r.firstChild)}--m;k=q}if(p!=c){s.setEndBefore(j);s.collapse(false)}return r},_traverseCommonEndContainer:function(m,p){var s=this,r,o,j,k,q,l;if(p!=e){r=s.dom.doc.createDocumentFragment()}j=s._traverseLeftBoundary(m,p);if(r){r.appendChild(j)}o=g(m,s.endContainer);++o;k=s.endOffset-o;j=m.nextSibling;while(k&gt;0){q=j.nextSibling;l=s._traverseFullySelected(j,p);if(r){r.appendChild(l)}--k;j=q}if(p!=c){s.setStartAfter(m);s.collapse(true)}return r},_traverseCommonAncestors:function(p,j,s){var w=this,l,v,o,q,r,k,u,m;if(s!=e){v=w.dom.doc.createDocumentFragment()}l=w._traverseLeftBoundary(p,s);if(v){v.appendChild(l)}o=p.parentNode;q=g(p,o);r=g(j,o);++q;k=r-q;u=p.nextSibling;while(k&gt;0){m=u.nextSibling;l=w._traverseFullySelected(u,s);if(v){v.appendChild(l)}u=m;--k}l=w._traverseRightBoundary(j,s);if(v){v.appendChild(l)}if(s!=c){w.setStartAfter(p);w.collapse(true)}return v},_traverseRightBoundary:function(p,q){var s=this,l=i(s.endContainer,s.endOffset-1),r,o,n,j,k;var m=l!=s.endContainer;if(l==p){return s._traverseNode(l,m,false,q)}r=l.parentNode;o=s._traverseNode(r,false,false,q);while(r!=null){while(l!=null){n=l.previousSibling;j=s._traverseNode(l,m,false,q);if(q!=e){o.insertBefore(j,o.firstChild)}m=true;l=n}if(r==p){return o}l=r.previousSibling;r=r.parentNode;k=s._traverseNode(r,false,false,q);if(q!=e){k.appendChild(o)}o=k}return null},_traverseLeftBoundary:function(p,q){var s=this,m=i(s.startContainer,s.startOffset);var n=m!=s.startContainer,r,o,l,j,k;if(m==p){return s._traverseNode(m,n,true,q)}r=m.parentNode;o=s._traverseNode(r,false,true,q);while(r!=null){while(m!=null){l=m.nextSibling;j=s._traverseNode(m,n,true,q);if(q!=e){o.appendChild(j)}n=true;m=l}if(r==p){return o}m=r.nextSibling;r=r.parentNode;k=s._traverseNode(r,false,true,q);if(q!=e){k.appendChild(o)}o=k}return null},_traverseNode:function(j,o,r,s){var u=this,m,l,p,k,q;if(o){return u._traverseFullySelected(j,s)}if(j.nodeType==3){m=j.nodeValue;if(r){k=u.startOffset;l=m.substring(k);p=m.substring(0,k)}else{k=u.endOffset;l=m.substring(0,k);p=m.substring(k)}if(s!=c){j.nodeValue=p}if(s==e){return null}q=j.cloneNode(false);q.nodeValue=l;return q}if(s==e){return null}return j.cloneNode(false)},_traverseFullySelected:function(l,k){var j=this;if(k!=e){return k==c?l.cloneNode(true):l}l.parentNode.removeChild(l);return null}});f.Range=a})(tinymce.dom);(function(){function a(e){var d=this,h=&quot;\uFEFF&quot;,b,g;function c(j,i){if(j&amp;&amp;i){if(j.item&amp;&amp;i.item&amp;&amp;j.item(0)===i.item(0)){return 1}if(j.isEqual&amp;&amp;i.isEqual&amp;&amp;i.isEqual(j)){return 1}}return 0}function f(){var m=e.dom,j=e.getRng(),s=m.createRng(),p,k,n,q,o,l;function i(v){var t=v.parentNode.childNodes,u;for(u=t.length-1;u&gt;=0;u--){if(t[u]==v){return u}}return -1}function r(v){var t=j.duplicate(),B,y,u,w,x=0,z=0,A,C;t.collapse(v);B=t.parentElement();t.pasteHTML(h);u=B.childNodes;for(y=0;y&lt;u.length;y++){w=u[y];if(y&gt;0&amp;&amp;(w.nodeType!==3||u[y-1].nodeType!==3)){z++}if(w.nodeType===3){A=w.nodeValue.indexOf(h);if(A!==-1){x+=A;break}x+=w.nodeValue.length}else{x=0}}t.moveStart(&quot;character&quot;,-1);t.text=&quot;&quot;;return{index:z,offset:x,parent:B}}n=j.item?j.item(0):j.parentElement();if(n.ownerDocument!=m.doc){return s}if(j.item||!n.hasChildNodes()){s.setStart(n.parentNode,i(n));s.setEnd(s.startContainer,s.startOffset+1);return s}l=e.isCollapsed();p=r(true);k=r(false);p.parent.normalize();k.parent.normalize();q=p.parent.childNodes[Math.min(p.index,p.parent.childNodes.length-1)];if(q.nodeType!=3){s.setStart(p.parent,p.index)}else{s.setStart(p.parent.childNodes[p.index],p.offset)}o=k.parent.childNodes[Math.min(k.index,k.parent.childNodes.length-1)];if(o.nodeType!=3){if(!l){k.index++}s.setEnd(k.parent,k.index)}else{s.setEnd(k.parent.childNodes[k.index],k.offset)}if(!l){q=s.startContainer;if(q.nodeType==1){s.setStart(q,Math.min(s.startOffset,q.childNodes.length))}o=s.endContainer;if(o.nodeType==1){s.setEnd(o,Math.min(s.endOffset,o.childNodes.length))}}d.addRange(s);return s}this.addRange=function(j){var o,m=e.dom.doc.body,p,k,q,l,n,i;q=j.startContainer;l=j.startOffset;n=j.endContainer;i=j.endOffset;o=m.createTextRange();q=q.nodeType==1?q.childNodes[Math.min(l,q.childNodes.length-1)]:q;n=n.nodeType==1?n.childNodes[Math.min(l==i?i:i-1,n.childNodes.length-1)]:n;if(q==n&amp;&amp;q.nodeType==1){if(/^(IMG|TABLE)$/.test(q.nodeName)&amp;&amp;l!=i){o=m.createControlRange();o.addElement(q)}else{o=m.createTextRange();if(!q.hasChildNodes()&amp;&amp;q.canHaveHTML){q.innerHTML=h}o.moveToElementText(q);if(q.innerHTML==h){o.collapse(true);q.removeChild(q.firstChild)}}if(l==i){o.collapse(i&lt;=j.endContainer.childNodes.length-1)}o.select();return}function r(t,v){var u,s,w;if(t.nodeType!=3){return -1}u=t.nodeValue;s=m.createTextRange();t.nodeValue=u.substring(0,v)+h+u.substring(v);s.moveToElementText(t.parentNode);s.findText(h);w=Math.abs(s.moveStart(&quot;character&quot;,-1048575));t.nodeValue=u;return w}if(j.collapsed){pos=r(q,l);o=m.createTextRange();o.move(&quot;character&quot;,pos);o.select();return}else{if(q==n&amp;&amp;q.nodeType==3){p=r(q,l);o=m.createTextRange();o.move(&quot;character&quot;,p);o.moveEnd(&quot;character&quot;,i-l);o.select();return}p=r(q,l);k=r(n,i);o=m.createTextRange();if(p==-1){o.moveToElementText(q);p=0}else{o.move(&quot;character&quot;,p)}tmpRng=m.createTextRange();if(k==-1){tmpRng.moveToElementText(n)}else{tmpRng.move(&quot;character&quot;,k)}o.setEndPoint(&quot;EndToEnd&quot;,tmpRng);o.select();return}};this.getRangeAt=function(){if(!b||!c(g,e.getRng())){b=f();g=e.getRng()}return b};this.destroy=function(){g=b=null}}tinymce.dom.TridentSelection=a})();(function(){var p=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['&quot;][^'&quot;]*['&quot;]|[^[\]'&quot;]+)+\]|\\.|[^ &gt;+~,(\[\\]+)+|[&gt;+~])(\s*,\s*)?/g,i=0,d=Object.prototype.toString,n=false;var b=function(D,t,A,v){A=A||[];var e=t=t||document;if(t.nodeType!==1&amp;&amp;t.nodeType!==9){return[]}if(!D||typeof D!==&quot;string&quot;){return A}var B=[],C,y,G,F,z,s,r=true,w=o(t);p.lastIndex=0;while((C=p.exec(D))!==null){B.push(C[1]);if(C[2]){s=RegExp.rightContext;break}}if(B.length&gt;1&amp;&amp;j.exec(D)){if(B.length===2&amp;&amp;f.relative[B[0]]){y=g(B[0]+B[1],t)}else{y=f.relative[B[0]]?[t]:b(B.shift(),t);while(B.length){D=B.shift();if(f.relative[D]){D+=B.shift()}y=g(D,y)}}}else{if(!v&amp;&amp;B.length&gt;1&amp;&amp;t.nodeType===9&amp;&amp;!w&amp;&amp;f.match.ID.test(B[0])&amp;&amp;!f.match.ID.test(B[B.length-1])){var H=b.find(B.shift(),t,w);t=H.expr?b.filter(H.expr,H.set)[0]:H.set[0]}if(t){var H=v?{expr:B.pop(),set:a(v)}:b.find(B.pop(),B.length===1&amp;&amp;(B[0]===&quot;~&quot;||B[0]===&quot;+&quot;)&amp;&amp;t.parentNode?t.parentNode:t,w);y=H.expr?b.filter(H.expr,H.set):H.set;if(B.length&gt;0){G=a(y)}else{r=false}while(B.length){var u=B.pop(),x=u;if(!f.relative[u]){u=&quot;&quot;}else{x=B.pop()}if(x==null){x=t}f.relative[u](G,x,w)}}else{G=B=[]}}if(!G){G=y}if(!G){throw&quot;Syntax error, unrecognized expression: &quot;+(u||D)}if(d.call(G)===&quot;[object Array]&quot;){if(!r){A.push.apply(A,G)}else{if(t&amp;&amp;t.nodeType===1){for(var E=0;G[E]!=null;E++){if(G[E]&amp;&amp;(G[E]===true||G[E].nodeType===1&amp;&amp;h(t,G[E]))){A.push(y[E])}}}else{for(var E=0;G[E]!=null;E++){if(G[E]&amp;&amp;G[E].nodeType===1){A.push(y[E])}}}}}else{a(G,A)}if(s){b(s,e,A,v);b.uniqueSort(A)}return A};b.uniqueSort=function(r){if(c){n=false;r.sort(c);if(n){for(var e=1;e&lt;r.length;e++){if(r[e]===r[e-1]){r.splice(e--,1)}}}}};b.matches=function(e,r){return b(e,null,null,r)};b.find=function(x,e,y){var w,u;if(!x){return[]}for(var t=0,s=f.order.length;t&lt;s;t++){var v=f.order[t],u;if((u=f.match[v].exec(x))){var r=RegExp.leftContext;if(r.substr(r.length-1)!==&quot;\\&quot;){u[1]=(u[1]||&quot;&quot;).replace(/\\/g,&quot;&quot;);w=f.find[v](u,e,y);if(w!=null){x=x.replace(f.match[v],&quot;&quot;);break}}}}if(!w){w=e.getElementsByTagName(&quot;*&quot;)}return{set:w,expr:x}};b.filter=function(A,z,D,t){var s=A,F=[],x=z,v,e,w=z&amp;&amp;z[0]&amp;&amp;o(z[0]);while(A&amp;&amp;z.length){for(var y in f.filter){if((v=f.match[y].exec(A))!=null){var r=f.filter[y],E,C;e=false;if(x==F){F=[]}if(f.preFilter[y]){v=f.preFilter[y](v,x,D,F,t,w);if(!v){e=E=true}else{if(v===true){continue}}}if(v){for(var u=0;(C=x[u])!=null;u++){if(C){E=r(C,v,u,x);var B=t^!!E;if(D&amp;&amp;E!=null){if(B){e=true}else{x[u]=false}}else{if(B){F.push(C);e=true}}}}}if(E!==undefined){if(!D){x=F}A=A.replace(f.match[y],&quot;&quot;);if(!e){return[]}break}}}if(A==s){if(e==null){throw&quot;Syntax error, unrecognized expression: &quot;+A}else{break}}s=A}return x};var f=b.selectors={order:[&quot;ID&quot;,&quot;NAME&quot;,&quot;TAG&quot;],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['&quot;]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['&quot;]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['&quot;]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['&quot;]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{&quot;class&quot;:&quot;className&quot;,&quot;for&quot;:&quot;htmlFor&quot;},attrHandle:{href:function(e){return e.getAttribute(&quot;href&quot;)}},relative:{&quot;+&quot;:function(x,e,w){var u=typeof e===&quot;string&quot;,y=u&amp;&amp;!/\W/.test(e),v=u&amp;&amp;!y;if(y&amp;&amp;!w){e=e.toUpperCase()}for(var t=0,s=x.length,r;t&lt;s;t++){if((r=x[t])){while((r=r.previousSibling)&amp;&amp;r.nodeType!==1){}x[t]=v||r&amp;&amp;r.nodeName===e?r||false:r===e}}if(v){b.filter(e,x,true)}},&quot;&gt;&quot;:function(w,r,x){var u=typeof r===&quot;string&quot;;if(u&amp;&amp;!/\W/.test(r)){r=x?r:r.toUpperCase();for(var s=0,e=w.length;s&lt;e;s++){var v=w[s];if(v){var t=v.parentNode;w[s]=t.nodeName===r?t:false}}}else{for(var s=0,e=w.length;s&lt;e;s++){var v=w[s];if(v){w[s]=u?v.parentNode:v.parentNode===r}}if(u){b.filter(r,w,true)}}},&quot;&quot;:function(t,r,v){var s=i++,e=q;if(!r.match(/\W/)){var u=r=v?r:r.toUpperCase();e=m}e(&quot;parentNode&quot;,r,s,t,u,v)},&quot;~&quot;:function(t,r,v){var s=i++,e=q;if(typeof r===&quot;string&quot;&amp;&amp;!r.match(/\W/)){var u=r=v?r:r.toUpperCase();e=m}e(&quot;previousSibling&quot;,r,s,t,u,v)}},find:{ID:function(r,s,t){if(typeof s.getElementById!==&quot;undefined&quot;&amp;&amp;!t){var e=s.getElementById(r[1]);return e?[e]:[]}},NAME:function(s,v,w){if(typeof v.getElementsByName!==&quot;undefined&quot;){var r=[],u=v.getElementsByName(s[1]);for(var t=0,e=u.length;t&lt;e;t++){if(u[t].getAttribute(&quot;name&quot;)===s[1]){r.push(u[t])}}return r.length===0?null:r}},TAG:function(e,r){return r.getElementsByTagName(e[1])}},preFilter:{CLASS:function(t,r,s,e,w,x){t=&quot; &quot;+t[1].replace(/\\/g,&quot;&quot;)+&quot; &quot;;if(x){return t}for(var u=0,v;(v=r[u])!=null;u++){if(v){if(w^(v.className&amp;&amp;(&quot; &quot;+v.className+&quot; &quot;).indexOf(t)&gt;=0)){if(!s){e.push(v)}}else{if(s){r[u]=false}}}}return false},ID:function(e){return e[1].replace(/\\/g,&quot;&quot;)},TAG:function(r,e){for(var s=0;e[s]===false;s++){}return e[s]&amp;&amp;o(e[s])?r[1]:r[1].toUpperCase()},CHILD:function(e){if(e[1]==&quot;nth&quot;){var r=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(e[2]==&quot;even&quot;&amp;&amp;&quot;2n&quot;||e[2]==&quot;odd&quot;&amp;&amp;&quot;2n+1&quot;||!/\D/.test(e[2])&amp;&amp;&quot;0n+&quot;+e[2]||e[2]);e[2]=(r[1]+(r[2]||1))-0;e[3]=r[3]-0}e[0]=i++;return e},ATTR:function(u,r,s,e,v,w){var t=u[1].replace(/\\/g,&quot;&quot;);if(!w&amp;&amp;f.attrMap[t]){u[1]=f.attrMap[t]}if(u[2]===&quot;~=&quot;){u[4]=&quot; &quot;+u[4]+&quot; &quot;}return u},PSEUDO:function(u,r,s,e,v){if(u[1]===&quot;not&quot;){if(u[3].match(p).length&gt;1||/^\w/.test(u[3])){u[3]=b(u[3],null,null,r)}else{var t=b.filter(u[3],r,s,true^v);if(!s){e.push.apply(e,t)}return false}}else{if(f.match.POS.test(u[0])||f.match.CHILD.test(u[0])){return true}}return u},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&amp;&amp;e.type!==&quot;hidden&quot;},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){e.parentNode.selectedIndex;return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(s,r,e){return !!b(e[3],s).length},header:function(e){return/h\d/i.test(e.nodeName)},text:function(e){return&quot;text&quot;===e.type},radio:function(e){return&quot;radio&quot;===e.type},checkbox:function(e){return&quot;checkbox&quot;===e.type},file:function(e){return&quot;file&quot;===e.type},password:function(e){return&quot;password&quot;===e.type},submit:function(e){return&quot;submit&quot;===e.type},image:function(e){return&quot;image&quot;===e.type},reset:function(e){return&quot;reset&quot;===e.type},button:function(e){return&quot;button&quot;===e.type||e.nodeName.toUpperCase()===&quot;BUTTON&quot;},input:function(e){return/input|select|textarea|button/i.test(e.nodeName)}},setFilters:{first:function(r,e){return e===0},last:function(s,r,e,t){return r===t.length-1},even:function(r,e){return e%2===0},odd:function(r,e){return e%2===1},lt:function(s,r,e){return r&lt;e[3]-0},gt:function(s,r,e){return r&gt;e[3]-0},nth:function(s,r,e){return e[3]-0==r},eq:function(s,r,e){return e[3]-0==r}},filter:{PSEUDO:function(w,s,t,x){var r=s[1],u=f.filters[r];if(u){return u(w,t,s,x)}else{if(r===&quot;contains&quot;){return(w.textContent||w.innerText||&quot;&quot;).indexOf(s[3])&gt;=0}else{if(r===&quot;not&quot;){var v=s[3];for(var t=0,e=v.length;t&lt;e;t++){if(v[t]===w){return false}}return true}}}},CHILD:function(e,t){var w=t[1],r=e;switch(w){case&quot;only&quot;:case&quot;first&quot;:while(r=r.previousSibling){if(r.nodeType===1){return false}}if(w==&quot;first&quot;){return true}r=e;case&quot;last&quot;:while(r=r.nextSibling){if(r.nodeType===1){return false}}return true;case&quot;nth&quot;:var s=t[2],z=t[3];if(s==1&amp;&amp;z==0){return true}var v=t[0],y=e.parentNode;if(y&amp;&amp;(y.sizcache!==v||!e.nodeIndex)){var u=0;for(r=y.firstChild;r;r=r.nextSibling){if(r.nodeType===1){r.nodeIndex=++u}}y.sizcache=v}var x=e.nodeIndex-z;if(s==0){return x==0}else{return(x%s==0&amp;&amp;x/s&gt;=0)}}},ID:function(r,e){return r.nodeType===1&amp;&amp;r.getAttribute(&quot;id&quot;)===e},TAG:function(r,e){return(e===&quot;*&quot;&amp;&amp;r.nodeType===1)||r.nodeName===e},CLASS:function(r,e){return(&quot; &quot;+(r.className||r.getAttribute(&quot;class&quot;))+&quot; &quot;).indexOf(e)&gt;-1},ATTR:function(v,t){var s=t[1],e=f.attrHandle[s]?f.attrHandle[s](v):v[s]!=null?v[s]:v.getAttribute(s),w=e+&quot;&quot;,u=t[2],r=t[4];return e==null?u===&quot;!=&quot;:u===&quot;=&quot;?w===r:u===&quot;*=&quot;?w.indexOf(r)&gt;=0:u===&quot;~=&quot;?(&quot; &quot;+w+&quot; &quot;).indexOf(r)&gt;=0:!r?w&amp;&amp;e!==false:u===&quot;!=&quot;?w!=r:u===&quot;^=&quot;?w.indexOf(r)===0:u===&quot;$=&quot;?w.substr(w.length-r.length)===r:u===&quot;|=&quot;?w===r||w.substr(0,r.length+1)===r+&quot;-&quot;:false},POS:function(u,r,s,v){var e=r[2],t=f.setFilters[e];if(t){return t(u,s,r,v)}}}};var j=f.match.POS;for(var l in f.match){f.match[l]=new RegExp(f.match[l].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var a=function(r,e){r=Array.prototype.slice.call(r);if(e){e.push.apply(e,r);return e}return r};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(k){a=function(u,t){var r=t||[];if(d.call(u)===&quot;[object Array]&quot;){Array.prototype.push.apply(r,u)}else{if(typeof u.length===&quot;number&quot;){for(var s=0,e=u.length;s&lt;e;s++){r.push(u[s])}}else{for(var s=0;u[s];s++){r.push(u[s])}}}return r}}var c;if(document.documentElement.compareDocumentPosition){c=function(r,e){var s=r.compareDocumentPosition(e)&amp;4?-1:r===e?0:1;if(s===0){n=true}return s}}else{if(&quot;sourceIndex&quot; in document.documentElement){c=function(r,e){var s=r.sourceIndex-e.sourceIndex;if(s===0){n=true}return s}}else{if(document.createRange){c=function(t,r){var s=t.ownerDocument.createRange(),e=r.ownerDocument.createRange();s.setStart(t,0);s.setEnd(t,0);e.setStart(r,0);e.setEnd(r,0);var u=s.compareBoundaryPoints(Range.START_TO_END,e);if(u===0){n=true}return u}}}}(function(){var r=document.createElement(&quot;div&quot;),s=&quot;script&quot;+(new Date).getTime();r.innerHTML=&quot;&lt;a name='&quot;+s+&quot;'/&gt;&quot;;var e=document.documentElement;e.insertBefore(r,e.firstChild);if(!!document.getElementById(s)){f.find.ID=function(u,v,w){if(typeof v.getElementById!==&quot;undefined&quot;&amp;&amp;!w){var t=v.getElementById(u[1]);return t?t.id===u[1]||typeof t.getAttributeNode!==&quot;undefined&quot;&amp;&amp;t.getAttributeNode(&quot;id&quot;).nodeValue===u[1]?[t]:undefined:[]}};f.filter.ID=function(v,t){var u=typeof v.getAttributeNode!==&quot;undefined&quot;&amp;&amp;v.getAttributeNode(&quot;id&quot;);return v.nodeType===1&amp;&amp;u&amp;&amp;u.nodeValue===t}}e.removeChild(r)})();(function(){var e=document.createElement(&quot;div&quot;);e.appendChild(document.createComment(&quot;&quot;));if(e.getElementsByTagName(&quot;*&quot;).length&gt;0){f.find.TAG=function(r,v){var u=v.getElementsByTagName(r[1]);if(r[1]===&quot;*&quot;){var t=[];for(var s=0;u[s];s++){if(u[s].nodeType===1){t.push(u[s])}}u=t}return u}}e.innerHTML=&quot;&lt;a href='#'&gt;&lt;/a&gt;&quot;;if(e.firstChild&amp;&amp;typeof e.firstChild.getAttribute!==&quot;undefined&quot;&amp;&amp;e.firstChild.getAttribute(&quot;href&quot;)!==&quot;#&quot;){f.attrHandle.href=function(r){return r.getAttribute(&quot;href&quot;,2)}}})();if(document.querySelectorAll){(function(){var e=b,s=document.createElement(&quot;div&quot;);s.innerHTML=&quot;&lt;p class='TEST'&gt;&lt;/p&gt;&quot;;if(s.querySelectorAll&amp;&amp;s.querySelectorAll(&quot;.TEST&quot;).length===0){return}b=function(w,v,t,u){v=v||document;if(!u&amp;&amp;v.nodeType===9&amp;&amp;!o(v)){try{return a(v.querySelectorAll(w),t)}catch(x){}}return e(w,v,t,u)};for(var r in e){b[r]=e[r]}})()}if(document.getElementsByClassName&amp;&amp;document.documentElement.getElementsByClassName){(function(){var e=document.createElement(&quot;div&quot;);e.innerHTML=&quot;&lt;div class='test e'&gt;&lt;/div&gt;&lt;div class='test'&gt;&lt;/div&gt;&quot;;if(e.getElementsByClassName(&quot;e&quot;).length===0){return}e.lastChild.className=&quot;e&quot;;if(e.getElementsByClassName(&quot;e&quot;).length===1){return}f.order.splice(1,0,&quot;CLASS&quot;);f.find.CLASS=function(r,s,t){if(typeof s.getElementsByClassName!==&quot;undefined&quot;&amp;&amp;!t){return s.getElementsByClassName(r[1])}}})()}function m(r,w,v,A,x,z){var y=r==&quot;previousSibling&quot;&amp;&amp;!z;for(var t=0,s=A.length;t&lt;s;t++){var e=A[t];if(e){if(y&amp;&amp;e.nodeType===1){e.sizcache=v;e.sizset=t}e=e[r];var u=false;while(e){if(e.sizcache===v){u=A[e.sizset];break}if(e.nodeType===1&amp;&amp;!z){e.sizcache=v;e.sizset=t}if(e.nodeName===w){u=e;break}e=e[r]}A[t]=u}}}function q(r,w,v,A,x,z){var y=r==&quot;previousSibling&quot;&amp;&amp;!z;for(var t=0,s=A.length;t&lt;s;t++){var e=A[t];if(e){if(y&amp;&amp;e.nodeType===1){e.sizcache=v;e.sizset=t}e=e[r];var u=false;while(e){if(e.sizcache===v){u=A[e.sizset];break}if(e.nodeType===1){if(!z){e.sizcache=v;e.sizset=t}if(typeof w!==&quot;string&quot;){if(e===w){u=true;break}}else{if(b.filter(w,[e]).length&gt;0){u=e;break}}}e=e[r]}A[t]=u}}}var h=document.compareDocumentPosition?function(r,e){return r.compareDocumentPosition(e)&amp;16}:function(r,e){return r!==e&amp;&amp;(r.contains?r.contains(e):true)};var o=function(e){return e.nodeType===9&amp;&amp;e.documentElement.nodeName!==&quot;HTML&quot;||!!e.ownerDocument&amp;&amp;e.ownerDocument.documentElement.nodeName!==&quot;HTML&quot;};var g=function(e,x){var t=[],u=&quot;&quot;,v,s=x.nodeType?[x]:x;while((v=f.match.PSEUDO.exec(e))){u+=v[0];e=e.replace(f.match.PSEUDO,&quot;&quot;)}e=f.relative[e]?e+&quot;*&quot;:e;for(var w=0,r=s.length;w&lt;r;w++){b(e,s[w],t)}return b.filter(u,t)};window.tinymce.dom.Sizzle=b})();(function(d){var f=d.each,c=d.DOM,b=d.isIE,e=d.isWebKit,a;d.create(&quot;tinymce.dom.EventUtils&quot;,{EventUtils:function(){this.inits=[];this.events=[]},add:function(m,p,l,j){var g,h=this,i=h.events,k;if(p instanceof Array){k=[];f(p,function(o){k.push(h.add(m,o,l,j))});return k}if(m&amp;&amp;m.hasOwnProperty&amp;&amp;m instanceof Array){k=[];f(m,function(n){n=c.get(n);k.push(h.add(n,p,l,j))});return k}m=c.get(m);if(!m){return}g=function(n){if(h.disabled){return}n=n||window.event;if(n&amp;&amp;b){if(!n.target){n.target=n.srcElement}d.extend(n,h._stoppers)}if(!j){return l(n)}return l.call(j,n)};if(p==&quot;unload&quot;){d.unloads.unshift({func:g});return g}if(p==&quot;init&quot;){if(h.domLoaded){g()}else{h.inits.push(g)}return g}i.push({obj:m,name:p,func:l,cfunc:g,scope:j});h._add(m,p,g);return l},remove:function(l,m,k){var h=this,g=h.events,i=false,j;if(l&amp;&amp;l.hasOwnProperty&amp;&amp;l instanceof Array){j=[];f(l,function(n){n=c.get(n);j.push(h.remove(n,m,k))});return j}l=c.get(l);f(g,function(o,n){if(o.obj==l&amp;&amp;o.name==m&amp;&amp;(!k||(o.func==k||o.cfunc==k))){g.splice(n,1);h._remove(l,m,o.cfunc);i=true;return false}});return i},clear:function(l){var j=this,g=j.events,h,k;if(l){l=c.get(l);for(h=g.length-1;h&gt;=0;h--){k=g[h];if(k.obj===l){j._remove(k.obj,k.name,k.cfunc);k.obj=k.cfunc=null;g.splice(h,1)}}}},cancel:function(g){if(!g){return false}this.stop(g);return this.prevent(g)},stop:function(g){if(g.stopPropagation){g.stopPropagation()}else{g.cancelBubble=true}return false},prevent:function(g){if(g.preventDefault){g.preventDefault()}else{g.returnValue=false}return false},destroy:function(){var g=this;f(g.events,function(j,h){g._remove(j.obj,j.name,j.cfunc);j.obj=j.cfunc=null});g.events=[];g=null},_add:function(h,i,g){if(h.attachEvent){h.attachEvent(&quot;on&quot;+i,g)}else{if(h.addEventListener){h.addEventListener(i,g,false)}else{h[&quot;on&quot;+i]=g}}},_remove:function(i,j,h){if(i){try{if(i.detachEvent){i.detachEvent(&quot;on&quot;+j,h)}else{if(i.removeEventListener){i.removeEventListener(j,h,false)}else{i[&quot;on&quot;+j]=null}}}catch(g){}}},_pageInit:function(h){var g=this;if(g.domLoaded){return}g.domLoaded=true;f(g.inits,function(i){i()});g.inits=[]},_wait:function(i){var g=this,h=i.document;if(i.tinyMCE_GZ&amp;&amp;tinyMCE_GZ.loaded){g.domLoaded=1;return}if(h.attachEvent){h.attachEvent(&quot;onreadystatechange&quot;,function(){if(h.readyState===&quot;complete&quot;){h.detachEvent(&quot;onreadystatechange&quot;,arguments.callee);g._pageInit(i)}});if(h.documentElement.doScroll&amp;&amp;i==i.top){(function(){if(g.domLoaded){return}try{h.documentElement.doScroll(&quot;left&quot;)}catch(j){setTimeout(arguments.callee,0);return}g._pageInit(i)})()}}else{if(h.addEventListener){g._add(i,&quot;DOMContentLoaded&quot;,function(){g._pageInit(i)})}}g._add(i,&quot;load&quot;,function(){g._pageInit(i)})},_stoppers:{preventDefault:function(){this.returnValue=false},stopPropagation:function(){this.cancelBubble=true}}});a=d.dom.Event=new d.dom.EventUtils();a._wait(window);d.addUnload(function(){a.destroy()})})(tinymce);(function(a){var b=a.each;a.create(&quot;tinymce.dom.Element&quot;,{Element:function(g,e){var c=this,f,d;e=e||{};c.id=g;c.dom=f=e.dom||a.DOM;c.settings=e;if(!a.isIE){d=c.dom.get(c.id)}b([&quot;getPos&quot;,&quot;getRect&quot;,&quot;getParent&quot;,&quot;add&quot;,&quot;setStyle&quot;,&quot;getStyle&quot;,&quot;setStyles&quot;,&quot;setAttrib&quot;,&quot;setAttribs&quot;,&quot;getAttrib&quot;,&quot;addClass&quot;,&quot;removeClass&quot;,&quot;hasClass&quot;,&quot;getOuterHTML&quot;,&quot;setOuterHTML&quot;,&quot;remove&quot;,&quot;show&quot;,&quot;hide&quot;,&quot;isHidden&quot;,&quot;setHTML&quot;,&quot;get&quot;],function(h){c[h]=function(){var j=[g],k;for(k=0;k&lt;arguments.length;k++){j.push(arguments[k])}j=f[h].apply(f,j);c.update(h);return j}})},on:function(e,d,c){return a.dom.Event.add(this.id,e,d,c)},getXY:function(){return{x:parseInt(this.getStyle(&quot;left&quot;)),y:parseInt(this.getStyle(&quot;top&quot;))}},getSize:function(){var c=this.dom.get(this.id);return{w:parseInt(this.getStyle(&quot;width&quot;)||c.clientWidth),h:parseInt(this.getStyle(&quot;height&quot;)||c.clientHeight)}},moveTo:function(c,d){this.setStyles({left:c,top:d})},moveBy:function(c,e){var d=this.getXY();this.moveTo(d.x+c,d.y+e)},resizeTo:function(c,d){this.setStyles({width:c,height:d})},resizeBy:function(c,e){var d=this.getSize();this.resizeTo(d.w+c,d.h+e)},update:function(d){var e=this,c,f=e.dom;if(a.isIE6&amp;&amp;e.settings.blocker){d=d||&quot;&quot;;if(d.indexOf(&quot;get&quot;)===0||d.indexOf(&quot;has&quot;)===0||d.indexOf(&quot;is&quot;)===0){return}if(d==&quot;remove&quot;){f.remove(e.blocker);return}if(!e.blocker){e.blocker=f.uniqueId();c=f.add(e.settings.container||f.getRoot(),&quot;iframe&quot;,{id:e.blocker,style:&quot;position:absolute;&quot;,frameBorder:0,src:'javascript:&quot;&quot;'});f.setStyle(c,&quot;opacity&quot;,0)}else{c=f.get(e.blocker)}f.setStyle(c,&quot;left&quot;,e.getStyle(&quot;left&quot;,1));f.setStyle(c,&quot;top&quot;,e.getStyle(&quot;top&quot;,1));f.setStyle(c,&quot;width&quot;,e.getStyle(&quot;width&quot;,1));f.setStyle(c,&quot;height&quot;,e.getStyle(&quot;height&quot;,1));f.setStyle(c,&quot;display&quot;,e.getStyle(&quot;display&quot;,1));f.setStyle(c,&quot;zIndex&quot;,parseInt(e.getStyle(&quot;zIndex&quot;,1)||0)-1)}}})})(tinymce);(function(c){function e(f){return f.replace(/[\n\r]+/g,&quot;&quot;)}var b=c.is,a=c.isIE,d=c.each;c.create(&quot;tinymce.dom.Selection&quot;,{Selection:function(i,h,g){var f=this;f.dom=i;f.win=h;f.serializer=g;d([&quot;onBeforeSetContent&quot;,&quot;onBeforeGetContent&quot;,&quot;onSetContent&quot;,&quot;onGetContent&quot;],function(j){f[j]=new c.util.Dispatcher(f)});if(!f.win.getSelection){f.tridentSel=new c.dom.TridentSelection(f)}c.addUnload(f.destroy,f)},getContent:function(g){var f=this,h=f.getRng(),l=f.dom.create(&quot;body&quot;),j=f.getSel(),i,k,m;g=g||{};i=k=&quot;&quot;;g.get=true;g.format=g.format||&quot;html&quot;;f.onBeforeGetContent.dispatch(f,g);if(g.format==&quot;text&quot;){return f.isCollapsed()?&quot;&quot;:(h.text||(j.toString?j.toString():&quot;&quot;))}if(h.cloneContents){m=h.cloneContents();if(m){l.appendChild(m)}}else{if(b(h.item)||b(h.htmlText)){l.innerHTML=h.item?h.item(0).outerHTML:h.htmlText}else{l.innerHTML=h.toString()}}if(/^\s/.test(l.innerHTML)){i=&quot; &quot;}if(/\s+$/.test(l.innerHTML)){k=&quot; &quot;}g.getInner=true;g.content=f.isCollapsed()?&quot;&quot;:i+f.serializer.serialize(l,g)+k;f.onGetContent.dispatch(f,g);return g.content},setContent:function(i,g){var f=this,j=f.getRng(),l,k=f.win.document;g=g||{format:&quot;html&quot;};g.set=true;i=g.content=f.dom.processHTML(i);f.onBeforeSetContent.dispatch(f,g);i=g.content;if(j.insertNode){i+='&lt;span id=&quot;__caret&quot;&gt;_&lt;/span&gt;';j.deleteContents();j.insertNode(f.getRng().createContextualFragment(i));l=f.dom.get(&quot;__caret&quot;);j=k.createRange();j.setStartBefore(l);j.setEndAfter(l);f.setRng(j);f.dom.remove(&quot;__caret&quot;)}else{if(j.item){k.execCommand(&quot;Delete&quot;,false,null);j=f.getRng()}j.pasteHTML(i)}f.onSetContent.dispatch(f,g)},getStart:function(){var f=this,g=f.getRng(),h;if(a){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(1);h=g.parentElement();if(h&amp;&amp;h.nodeName==&quot;BODY&quot;){return h.firstChild}return h}else{h=g.startContainer;if(h.nodeName==&quot;BODY&quot;){return h.firstChild}return f.dom.getParent(h,&quot;*&quot;)}},getEnd:function(){var f=this,g=f.getRng(),h;if(a){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(0);h=g.parentElement();if(h&amp;&amp;h.nodeName==&quot;BODY&quot;){return h.lastChild}return h}else{h=g.endContainer;if(h.nodeName==&quot;BODY&quot;){return h.lastChild}return f.dom.getParent(h,&quot;*&quot;)}},getBookmark:function(x){var j=this,m=j.getRng(),f,n,l,u=j.dom.getViewPort(j.win),v,p,z,o,w=-16777215,k,h=j.dom.getRoot(),g=0,i=0,y;n=u.x;l=u.y;if(x){return{rng:m,scrollX:n,scrollY:l}}if(a){if(m.item){v=m.item(0);d(j.dom.select(v.nodeName),function(s,r){if(v==s){p=r;return false}});return{tag:v.nodeName,index:p,scrollX:n,scrollY:l}}f=j.dom.doc.body.createTextRange();f.moveToElementText(h);f.collapse(true);z=Math.abs(f.move(&quot;character&quot;,w));f=m.duplicate();f.collapse(true);p=Math.abs(f.move(&quot;character&quot;,w));f=m.duplicate();f.collapse(false);o=Math.abs(f.move(&quot;character&quot;,w))-p;return{start:p-z,length:o,scrollX:n,scrollY:l}}v=j.getNode();k=j.getSel();if(!k){return null}if(v&amp;&amp;v.nodeName==&quot;IMG&quot;){return{scrollX:n,scrollY:l}}function q(A,D,t){var s=j.dom.doc.createTreeWalker(A,NodeFilter.SHOW_TEXT,null,false),E,B=0,C={};while((E=s.nextNode())!=null){if(E==D){C.start=B}if(E==t){C.end=B;return C}B+=e(E.nodeValue||&quot;&quot;).length}return null}if(k.anchorNode==k.focusNode&amp;&amp;k.anchorOffset==k.focusOffset){v=q(h,k.anchorNode,k.focusNode);if(!v){return{scrollX:n,scrollY:l}}e(k.anchorNode.nodeValue||&quot;&quot;).replace(/^\s+/,function(r){g=r.length});return{start:Math.max(v.start+k.anchorOffset-g,0),end:Math.max(v.end+k.focusOffset-g,0),scrollX:n,scrollY:l,beg:k.anchorOffset-g==0}}else{v=q(h,m.startContainer,m.endContainer);if(!v){return{scrollX:n,scrollY:l}}return{start:Math.max(v.start+m.startOffset-g,0),end:Math.max(v.end+m.endOffset-i,0),scrollX:n,scrollY:l,beg:m.startOffset-g==0}}},moveToBookmark:function(n){var o=this,g=o.getRng(),p=o.getSel(),j=o.dom.getRoot(),m,h,k;function i(q,t,D){var B=o.dom.doc.createTreeWalker(q,NodeFilter.SHOW_TEXT,null,false),x,s=0,A={},u,C,z,y;while((x=B.nextNode())!=null){z=y=0;k=x.nodeValue||&quot;&quot;;h=e(k).length;s+=h;if(s&gt;=t&amp;&amp;!A.startNode){u=t-(s-h);if(n.beg&amp;&amp;u&gt;=h){continue}A.startNode=x;A.startOffset=u+y}if(s&gt;=D){A.endNode=x;A.endOffset=D-(s-h)+y;return A}}return null}if(!n){return false}o.win.scrollTo(n.scrollX,n.scrollY);if(a){o.tridentSel.destroy();if(g=n.rng){try{g.select()}catch(l){}return true}o.win.focus();if(n.tag){g=j.createControlRange();d(o.dom.select(n.tag),function(r,q){if(q==n.index){g.addElement(r)}})}else{try{if(n.start&lt;0){return true}g=p.createRange();g.moveToElementText(j);g.collapse(true);g.moveStart(&quot;character&quot;,n.start);g.moveEnd(&quot;character&quot;,n.length)}catch(f){return true}}try{g.select()}catch(l){}return true}if(!p){return false}if(n.rng){p.removeAllRanges();p.addRange(n.rng)}else{if(b(n.start)&amp;&amp;b(n.end)){try{m=i(j,n.start,n.end);if(m){g=o.dom.doc.createRange();g.setStart(m.startNode,m.startOffset);g.setEnd(m.endNode,m.endOffset);p.removeAllRanges();p.addRange(g)}if(!c.isOpera){o.win.focus()}}catch(l){}}}},select:function(g,l){var p=this,f=p.getRng(),q=p.getSel(),o,m,k,j=p.win.document;function h(u,t){var s,r;if(u){s=j.createTreeWalker(u,NodeFilter.SHOW_TEXT,null,false);while(u=s.nextNode()){r=u;if(c.trim(u.nodeValue).length!=0){if(t){return u}else{r=u}}}}return r}if(a){try{o=j.body;if(/^(IMG|TABLE)$/.test(g.nodeName)){f=o.createControlRange();f.addElement(g)}else{f=o.createTextRange();f.moveToElementText(g)}f.select()}catch(i){}}else{if(l){m=h(g,1)||p.dom.select(&quot;br:first&quot;,g)[0];k=h(g,0)||p.dom.select(&quot;br:last&quot;,g)[0];if(m&amp;&amp;k){f=j.createRange();if(m.nodeName==&quot;BR&quot;){f.setStartBefore(m)}else{f.setStart(m,0)}if(k.nodeName==&quot;BR&quot;){f.setEndBefore(k)}else{f.setEnd(k,k.nodeValue.length)}}else{f.selectNode(g)}}else{f.selectNode(g)}p.setRng(f)}return g},isCollapsed:function(){var f=this,h=f.getRng(),g=f.getSel();if(!h||h.item){return false}return !g||h.boundingWidth==0||h.collapsed},collapse:function(f){var g=this,h=g.getRng(),i;if(h.item){i=h.item(0);h=this.win.document.body.createTextRange();h.moveToElementText(i)}h.collapse(!!f);g.setRng(h)},getSel:function(){var g=this,f=this.win;return f.getSelection?f.getSelection():f.document.selection},getRng:function(j){var g=this,h,i;if(j&amp;&amp;g.tridentSel){return g.tridentSel.getRangeAt(0)}try{if(h=g.getSel()){i=h.rangeCount&gt;0?h.getRangeAt(0):(h.createRange?h.createRange():g.win.document.createRange())}}catch(f){}if(!i){i=a?g.win.document.body.createTextRange():g.win.document.createRange()}return i},setRng:function(i){var h,g=this;if(!g.tridentSel){h=g.getSel();if(h){h.removeAllRanges();h.addRange(i)}}else{if(i.cloneRange){g.tridentSel.addRange(i);return}try{i.select()}catch(f){}}},setNode:function(g){var f=this;f.setContent(f.dom.getOuterHTML(g));return g},getNode:function(){var f=this,h=f.getRng(),g=f.getSel(),i;if(!a){if(!h){return f.dom.getRoot()}i=h.commonAncestorContainer;if(!h.collapsed){if(c.isWebKit&amp;&amp;g.anchorNode&amp;&amp;g.anchorNode.nodeType==1){return g.anchorNode.childNodes[g.anchorOffset]}if(h.startContainer==h.endContainer){if(h.startOffset-h.endOffset&lt;2){if(h.startContainer.hasChildNodes()){i=h.startContainer.childNodes[h.startOffset]}}}}return f.dom.getParent(i,&quot;*&quot;)}return h.item?h.item(0):h.parentElement()},getSelectedBlocks:function(g,f){var i=this,j=i.dom,m,h,l,k=[];m=j.getParent(g||i.getStart(),j.isBlock);h=j.getParent(f||i.getEnd(),j.isBlock);if(m){k.push(m)}if(m&amp;&amp;h&amp;&amp;m!=h){l=m;while((l=l.nextSibling)&amp;&amp;l!=h){if(j.isBlock(l)){k.push(l)}}}if(h&amp;&amp;m!=h){k.push(h)}return k},destroy:function(g){var f=this;f.win=null;if(f.tridentSel){f.tridentSel.destroy()}if(!g){c.removeUnload(f.destroy)}}})})(tinymce);(function(a){a.create(&quot;tinymce.dom.XMLWriter&quot;,{node:null,XMLWriter:function(c){function b(){var e=document.implementation;if(!e||!e.createDocument){try{return new ActiveXObject(&quot;MSXML2.DOMDocument&quot;)}catch(d){}try{return new ActiveXObject(&quot;Microsoft.XmlDom&quot;)}catch(d){}}else{return e.createDocument(&quot;&quot;,&quot;&quot;,null)}}this.doc=b();this.valid=a.isOpera||a.isWebKit;this.reset()},reset:function(){var b=this,c=b.doc;if(c.firstChild){c.removeChild(c.firstChild)}b.node=c.appendChild(c.createElement(&quot;html&quot;))},writeStartElement:function(c){var b=this;b.node=b.node.appendChild(b.doc.createElement(c))},writeAttribute:function(c,b){if(this.valid){b=b.replace(/&gt;/g,&quot;%MCGT%&quot;)}this.node.setAttribute(c,b)},writeEndElement:function(){this.node=this.node.parentNode},writeFullEndElement:function(){var b=this,c=b.node;c.appendChild(b.doc.createTextNode(&quot;&quot;));b.node=c.parentNode},writeText:function(b){if(this.valid){b=b.replace(/&gt;/g,&quot;%MCGT%&quot;)}this.node.appendChild(this.doc.createTextNode(b))},writeCDATA:function(b){this.node.appendChild(this.doc.createCDATASection(b))},writeComment:function(b){if(a.isIE){b=b.replace(/^\-|\-$/g,&quot; &quot;)}this.node.appendChild(this.doc.createComment(b.replace(/\-\-/g,&quot; &quot;)))},getContent:function(){var b;b=this.doc.xml||new XMLSerializer().serializeToString(this.doc);b=b.replace(/&lt;\?[^?]+\?&gt;|&lt;html&gt;|&lt;\/html&gt;|&lt;html\/&gt;|&lt;!DOCTYPE[^&gt;]+&gt;/g,&quot;&quot;);b=b.replace(/ ?\/&gt;/g,&quot; /&gt;&quot;);if(this.valid){b=b.replace(/\%MCGT%/g,&quot;&amp;gt;&quot;)}return b}})})(tinymce);(function(a){a.create(&quot;tinymce.dom.StringWriter&quot;,{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(b){this.settings=a.extend({indent_char:&quot; &quot;,indentation:0},b);this.reset()},reset:function(){this.indent=&quot;&quot;;this.str=&quot;&quot;;this.tags=[];this.count=0},writeStartElement:function(b){this._writeAttributesEnd();this.writeRaw(&quot;&lt;&quot;+b);this.tags.push(b);this.inAttr=true;this.count++;this.elementCount=this.count},writeAttribute:function(d,b){var c=this;c.writeRaw(&quot; &quot;+c.encode(d)+'=&quot;'+c.encode(b)+'&quot;')},writeEndElement:function(){var b;if(this.tags.length&gt;0){b=this.tags.pop();if(this._writeAttributesEnd(1)){this.writeRaw(&quot;&lt;/&quot;+b+&quot;&gt;&quot;)}if(this.settings.indentation&gt;0){this.writeRaw(&quot;\n&quot;)}}},writeFullEndElement:function(){if(this.tags.length&gt;0){this._writeAttributesEnd();this.writeRaw(&quot;&lt;/&quot;+this.tags.pop()+&quot;&gt;&quot;);if(this.settings.indentation&gt;0){this.writeRaw(&quot;\n&quot;)}}},writeText:function(b){this._writeAttributesEnd();this.writeRaw(this.encode(b));this.count++},writeCDATA:function(b){this._writeAttributesEnd();this.writeRaw(&quot;&lt;![CDATA[&quot;+b+&quot;]]&gt;&quot;);this.count++},writeComment:function(b){this._writeAttributesEnd();this.writeRaw(&quot;&lt;!-- &quot;+b+&quot;--&gt;&quot;);this.count++},writeRaw:function(b){this.str+=b},encode:function(b){return b.replace(/[&lt;&gt;&amp;&quot;]/g,function(c){switch(c){case&quot;&lt;&quot;:return&quot;&amp;lt;&quot;;case&quot;&gt;&quot;:return&quot;&amp;gt;&quot;;case&quot;&amp;&quot;:return&quot;&amp;amp;&quot;;case'&quot;':return&quot;&amp;quot;&quot;}return c})},getContent:function(){return this.str},_writeAttributesEnd:function(b){if(!this.inAttr){return}this.inAttr=false;if(b&amp;&amp;this.elementCount==this.count){this.writeRaw(&quot; /&gt;&quot;);return false}this.writeRaw(&quot;&gt;&quot;);return true}})})(tinymce);(function(e){var g=e.extend,f=e.each,b=e.util.Dispatcher,d=e.isIE,a=e.isGecko;function c(h){return h.replace(/([?+*])/g,&quot;.$1&quot;)}e.create(&quot;tinymce.dom.Serializer&quot;,{Serializer:function(j){var i=this;i.key=0;i.onPreProcess=new b(i);i.onPostProcess=new b(i);try{i.writer=new e.dom.XMLWriter()}catch(h){i.writer=new e.dom.StringWriter()}i.settings=j=g({dom:e.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_|sizset|sizcache)/,closed:/^(br|hr|input|meta|img|link|param|area)$/,entity_encoding:&quot;named&quot;,entities:&quot;160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro&quot;,valid_elements:&quot;*[*]&quot;,extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:1,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:&quot;simple&quot;,indent_char:&quot;\t&quot;,indent_levels:1,remove_linebreaks:1,remove_redundant_brs:1,element_format:&quot;xhtml&quot;},j);i.dom=j.dom;if(j.remove_redundant_brs){i.onPostProcess.add(function(k,l){l.content=l.content.replace(/(&lt;br \/&gt;\s*)+&lt;\/(p|h[1-6]|div|li)&gt;/gi,function(n,m,o){if(/^&lt;br \/&gt;\s*&lt;\//.test(n)){return&quot;&lt;/&quot;+o+&quot;&gt;&quot;}return n})})}if(j.element_format==&quot;html&quot;){i.onPostProcess.add(function(k,l){l.content=l.content.replace(/&lt;([^&gt;]+) \/&gt;/g,&quot;&lt;$1&gt;&quot;)})}if(j.fix_list_elements){i.onPreProcess.add(function(v,s){var l,y,w=[&quot;ol&quot;,&quot;ul&quot;],u,t,q,k=/^(OL|UL)$/,z;function m(r,x){var o=x.split(&quot;,&quot;),p;while((r=r.previousSibling)!=null){for(p=0;p&lt;o.length;p++){if(r.nodeName==o[p]){return r}}}return null}for(y=0;y&lt;w.length;y++){l=i.dom.select(w[y],s.node);for(u=0;u&lt;l.length;u++){t=l[u];q=t.parentNode;if(k.test(q.nodeName)){z=m(t,&quot;LI&quot;);if(!z){z=i.dom.create(&quot;li&quot;);z.innerHTML=&quot;&amp;nbsp;&quot;;z.appendChild(t);q.insertBefore(z,q.firstChild)}else{z.appendChild(t)}}}}})}if(j.fix_table_elements){i.onPreProcess.add(function(k,l){if(!e.isOpera||opera.buildNumber()&gt;=1767){f(i.dom.select(&quot;p table&quot;,l.node).reverse(),function(p){var o=i.dom.getParent(p.parentNode,&quot;table,p&quot;);if(o.nodeName!=&quot;TABLE&quot;){try{i.dom.split(o,p)}catch(m){}}})}})}},setEntities:function(p){var n=this,j,m,h={},o=&quot;&quot;,k;if(n.entityLookup){return}j=p.split(&quot;,&quot;);for(m=0;m&lt;j.length;m+=2){k=j[m];if(k==34||k==38||k==60||k==62){continue}h[String.fromCharCode(j[m])]=j[m+1];k=parseInt(j[m]).toString(16);o+=&quot;\\u&quot;+&quot;0000&quot;.substring(k.length)+k}if(!o){n.settings.entity_encoding=&quot;raw&quot;;return}n.entitiesRE=new RegExp(&quot;[&quot;+o+&quot;]&quot;,&quot;g&quot;);n.entityLookup=h},setValidChildRules:function(h){this.childRules=null;this.addValidChildRules(h)},addValidChildRules:function(k){var j=this,l,h,i;if(!k){return}l=&quot;A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment&quot;;h=&quot;A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment&quot;;i=&quot;H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP&quot;;f(k.split(&quot;,&quot;),function(n){var o=n.split(/\[|\]/),m;n=&quot;&quot;;f(o[1].split(&quot;|&quot;),function(p){if(n){n+=&quot;|&quot;}switch(p){case&quot;%itrans&quot;:p=h;break;case&quot;%itrans_na&quot;:p=h.substring(2);break;case&quot;%istrict&quot;:p=l;break;case&quot;%istrict_na&quot;:p=l.substring(2);break;case&quot;%btrans&quot;:p=i;break;case&quot;%bstrict&quot;:p=i;break}n+=p});m=new RegExp(&quot;^(&quot;+n.toLowerCase()+&quot;)$&quot;,&quot;i&quot;);f(o[0].split(&quot;/&quot;),function(p){j.childRules=j.childRules||{};j.childRules[p]=m})});k=&quot;&quot;;f(j.childRules,function(n,m){if(k){k+=&quot;|&quot;}k+=m});j.parentElementsRE=new RegExp(&quot;^(&quot;+k.toLowerCase()+&quot;)$&quot;,&quot;i&quot;)},setRules:function(i){var h=this;h._setup();h.rules={};h.wildRules=[];h.validElements={};return h.addRules(i)},addRules:function(i){var h=this,j;if(!i){return}h._setup();f(i.split(&quot;,&quot;),function(m){var q=m.split(/\[|\]/),l=q[0].split(&quot;/&quot;),r,k,o,n=[];if(j){k=e.extend([],j.attribs)}if(q.length&gt;1){f(q[1].split(&quot;|&quot;),function(u){var p={},t;k=k||[];u=u.replace(/::/g,&quot;~&quot;);u=/^([!\-])?([\w*.?~_\-]+|)([=:&lt;])?(.+)?$/.exec(u);u[2]=u[2].replace(/~/g,&quot;:&quot;);if(u[1]==&quot;!&quot;){r=r||[];r.push(u[2])}if(u[1]==&quot;-&quot;){for(t=0;t&lt;k.length;t++){if(k[t].name==u[2]){k.splice(t,1);return}}}switch(u[3]){case&quot;=&quot;:p.defaultVal=u[4]||&quot;&quot;;break;case&quot;:&quot;:p.forcedVal=u[4];break;case&quot;&lt;&quot;:p.validVals=u[4].split(&quot;?&quot;);break}if(/[*.?]/.test(u[2])){o=o||[];p.nameRE=new RegExp(&quot;^&quot;+c(u[2])+&quot;$&quot;);o.push(p)}else{p.name=u[2];k.push(p)}n.push(u[2])})}f(l,function(v,u){var w=v.charAt(0),t=1,p={};if(j){if(j.noEmpty){p.noEmpty=j.noEmpty}if(j.fullEnd){p.fullEnd=j.fullEnd}if(j.padd){p.padd=j.padd}}switch(w){case&quot;-&quot;:p.noEmpty=true;break;case&quot;+&quot;:p.fullEnd=true;break;case&quot;#&quot;:p.padd=true;break;default:t=0}l[u]=v=v.substring(t);h.validElements[v]=1;if(/[*.?]/.test(l[0])){p.nameRE=new RegExp(&quot;^&quot;+c(l[0])+&quot;$&quot;);h.wildRules=h.wildRules||{};h.wildRules.push(p)}else{p.name=l[0];if(l[0]==&quot;@&quot;){j=p}h.rules[v]=p}p.attribs=k;if(r){p.requiredAttribs=r}if(o){v=&quot;&quot;;f(n,function(s){if(v){v+=&quot;|&quot;}v+=&quot;(&quot;+c(s)+&quot;)&quot;});p.validAttribsRE=new RegExp(&quot;^&quot;+v.toLowerCase()+&quot;$&quot;);p.wildAttribs=o}})});i=&quot;&quot;;f(h.validElements,function(m,l){if(i){i+=&quot;|&quot;}if(l!=&quot;@&quot;){i+=l}});h.validElementsRE=new RegExp(&quot;^(&quot;+c(i.toLowerCase())+&quot;)$&quot;)},findRule:function(m){var j=this,l=j.rules,h,k;j._setup();k=l[m];if(k){return k}l=j.wildRules;for(h=0;h&lt;l.length;h++){if(l[h].nameRE.test(m)){return l[h]}}return null},findAttribRule:function(h,l){var j,k=h.wildAttribs;for(j=0;j&lt;k.length;j++){if(k[j].nameRE.test(l)){return k[j]}}return null},serialize:function(r,q){var m,k=this,p,i,j,l;k._setup();q=q||{};q.format=q.format||&quot;html&quot;;k.processObj=q;if(d){l=[];f(r.getElementsByTagName(&quot;option&quot;),function(o){var h=k.dom.getAttrib(o,&quot;selected&quot;);l.push(h?h:null)})}r=r.cloneNode(true);if(d){f(r.getElementsByTagName(&quot;option&quot;),function(o,h){k.dom.setAttrib(o,&quot;selected&quot;,l[h])})}j=r.ownerDocument.implementation;if(j.createHTMLDocument&amp;&amp;(e.isOpera&amp;&amp;opera.buildNumber()&gt;=1767)){p=j.createHTMLDocument(&quot;&quot;);f(r.nodeName==&quot;BODY&quot;?r.childNodes:[r],function(h){p.body.appendChild(p.importNode(h,true))});if(r.nodeName!=&quot;BODY&quot;){r=p.body.firstChild}else{r=p.body}i=k.dom.doc;k.dom.doc=p}k.key=&quot;&quot;+(parseInt(k.key)+1);if(!q.no_events){q.node=r;k.onPreProcess.dispatch(k,q)}k.writer.reset();k._serializeNode(r,q.getInner);q.content=k.writer.getContent();if(i){k.dom.doc=i}if(!q.no_events){k.onPostProcess.dispatch(k,q)}k._postProcess(q);q.node=null;return e.trim(q.content)},_postProcess:function(n){var i=this,k=i.settings,j=n.content,m=[],l;if(n.format==&quot;html&quot;){l=i._protect({content:j,patterns:[{pattern:/(&lt;script[^&gt;]*&gt;)(.*?)(&lt;\/script&gt;)/g},{pattern:/(&lt;noscript[^&gt;]*&gt;)(.*?)(&lt;\/noscript&gt;)/g},{pattern:/(&lt;style[^&gt;]*&gt;)(.*?)(&lt;\/style&gt;)/g},{pattern:/(&lt;pre[^&gt;]*&gt;)(.*?)(&lt;\/pre&gt;)/g,encode:1},{pattern:/(&lt;!--\[CDATA\[)(.*?)(\]\]--&gt;)/g}]});j=l.content;if(k.entity_encoding!==&quot;raw&quot;){j=i._encode(j)}if(!n.set){j=j.replace(/&lt;p&gt;\s+&lt;\/p&gt;|&lt;p([^&gt;]+)&gt;\s+&lt;\/p&gt;/g,k.entity_encoding==&quot;numeric&quot;?&quot;&lt;p$1&gt;&amp;#160;&lt;/p&gt;&quot;:&quot;&lt;p$1&gt;&amp;nbsp;&lt;/p&gt;&quot;);if(k.remove_linebreaks){j=j.replace(/\r?\n|\r/g,&quot; &quot;);j=j.replace(/(&lt;[^&gt;]+&gt;)\s+/g,&quot;$1 &quot;);j=j.replace(/\s+(&lt;\/[^&gt;]+&gt;)/g,&quot; $1&quot;);j=j.replace(/&lt;(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^&gt;]+)&gt;\s+/g,&quot;&lt;$1 $2&gt;&quot;);j=j.replace(/&lt;(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)&gt;\s+/g,&quot;&lt;$1&gt;&quot;);j=j.replace(/\s+&lt;\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)&gt;/g,&quot;&lt;/$1&gt;&quot;)}if(k.apply_source_formatting&amp;&amp;k.indent_mode==&quot;simple&quot;){j=j.replace(/&lt;(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^&gt;]+)&gt;\s*/g,&quot;\n&lt;$1$2$3&gt;\n&quot;);j=j.replace(/\s*&lt;(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^&gt;]+)&gt;/g,&quot;\n&lt;$1$2&gt;&quot;);j=j.replace(/&lt;\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)&gt;\s*/g,&quot;&lt;/$1&gt;\n&quot;);j=j.replace(/\n\n/g,&quot;\n&quot;)}}j=i._unprotect(j,l);j=j.replace(/&lt;!--\[CDATA\[([\s\S]+)\]\]--&gt;/g,&quot;&lt;![CDATA[$1]]&gt;&quot;);if(k.entity_encoding==&quot;raw&quot;){j=j.replace(/&lt;p&gt;&amp;nbsp;&lt;\/p&gt;|&lt;p([^&gt;]+)&gt;&amp;nbsp;&lt;\/p&gt;/g,&quot;&lt;p$1&gt;\u00a0&lt;/p&gt;&quot;)}j=j.replace(/&lt;noscript([^&gt;]+|)&gt;([\s\S]*?)&lt;\/noscript&gt;/g,function(h,p,o){return&quot;&lt;noscript&quot;+p+&quot;&gt;&quot;+i.dom.decode(o.replace(/&lt;!--|--&gt;/g,&quot;&quot;))+&quot;&lt;/noscript&gt;&quot;})}n.content=j},_serializeNode:function(D,o){var z=this,A=z.settings,x=z.writer,q,j,u,F,E,G,B,h,y,k,r,C,p,m;if(!A.node_filter||A.node_filter(D)){switch(D.nodeType){case 1:if(D.hasAttribute?D.hasAttribute(&quot;mce_bogus&quot;):D.getAttribute(&quot;mce_bogus&quot;)){return}p=false;q=D.hasChildNodes();k=D.getAttribute(&quot;mce_name&quot;)||D.nodeName.toLowerCase();if(d){if(D.scopeName!==&quot;HTML&quot;&amp;&amp;D.scopeName!==&quot;html&quot;){k=D.scopeName+&quot;:&quot;+k}}if(k.indexOf(&quot;mce:&quot;)===0){k=k.substring(4)}if(!z.validElementsRE||!z.validElementsRE.test(k)||(z.invalidElementsRE&amp;&amp;z.invalidElementsRE.test(k))||o){p=true;break}if(d){if(A.fix_content_duplication){if(D.mce_serialized==z.key){return}D.mce_serialized=z.key}if(k.charAt(0)==&quot;/&quot;){k=k.substring(1)}}else{if(a){if(D.nodeName===&quot;BR&quot;&amp;&amp;D.getAttribute(&quot;type&quot;)==&quot;_moz&quot;){return}}}if(z.childRules){if(z.parentElementsRE.test(z.elementName)){if(!z.childRules[z.elementName].test(k)){p=true;break}}z.elementName=k}r=z.findRule(k);k=r.name||k;m=A.closed.test(k);if((!q&amp;&amp;r.noEmpty)||(d&amp;&amp;!k)){p=true;break}if(r.requiredAttribs){G=r.requiredAttribs;for(F=G.length-1;F&gt;=0;F--){if(this.dom.getAttrib(D,G[F])!==&quot;&quot;){break}}if(F==-1){p=true;break}}x.writeStartElement(k);if(r.attribs){for(F=0,B=r.attribs,E=B.length;F&lt;E;F++){G=B[F];y=z._getAttrib(D,G);if(y!==null){x.writeAttribute(G.name,y)}}}if(r.validAttribsRE){B=z.dom.getAttribs(D);for(F=B.length-1;F&gt;-1;F--){h=B[F];if(h.specified){G=h.nodeName.toLowerCase();if(A.invalid_attrs.test(G)||!r.validAttribsRE.test(G)){continue}C=z.findAttribRule(r,G);y=z._getAttrib(D,C,G);if(y!==null){x.writeAttribute(G,y)}}}}if(k===&quot;script&quot;&amp;&amp;e.trim(D.innerHTML)){x.writeText(&quot;// &quot;);x.writeCDATA(D.innerHTML.replace(/&lt;!--|--&gt;|&lt;\[CDATA\[|\]\]&gt;/g,&quot;&quot;));q=false;break}if(r.padd){if(q&amp;&amp;(u=D.firstChild)&amp;&amp;u.nodeType===1&amp;&amp;D.childNodes.length===1){if(u.hasAttribute?u.hasAttribute(&quot;mce_bogus&quot;):u.getAttribute(&quot;mce_bogus&quot;)){x.writeText(&quot;\u00a0&quot;)}}else{if(!q){x.writeText(&quot;\u00a0&quot;)}}}break;case 3:if(z.childRules&amp;&amp;z.parentElementsRE.test(z.elementName)){if(!z.childRules[z.elementName].test(D.nodeName)){return}}return x.writeText(D.nodeValue);case 4:return x.writeCDATA(D.nodeValue);case 8:return x.writeComment(D.nodeValue)}}else{if(D.nodeType==1){q=D.hasChildNodes()}}if(q&amp;&amp;!m){u=D.firstChild;while(u){z._serializeNode(u);z.elementName=k;u=u.nextSibling}}if(!p){if(!m){x.writeFullEndElement()}else{x.writeEndElement()}}},_protect:function(j){var i=this;j.items=j.items||[];function h(l){return l.replace(/[\r\n\\]/g,function(m){if(m===&quot;\n&quot;){return&quot;\\n&quot;}else{if(m===&quot;\\&quot;){return&quot;\\\\&quot;}}return&quot;\\r&quot;})}function k(l){return l.replace(/\\[\\rn]/g,function(m){if(m===&quot;\\n&quot;){return&quot;\n&quot;}else{if(m===&quot;\\\\&quot;){return&quot;\\&quot;}}return&quot;\r&quot;})}f(j.patterns,function(l){j.content=k(h(j.content).replace(l.pattern,function(n,o,m,p){m=k(m);if(l.encode){m=i._encode(m)}j.items.push(m);return o+&quot;&lt;!--mce:&quot;+(j.items.length-1)+&quot;--&gt;&quot;+p}))});return j},_unprotect:function(i,j){i=i.replace(/\&lt;!--mce:([0-9]+)--\&gt;/g,function(k,h){return j.items[parseInt(h)]});j.items=[];return i},_encode:function(m){var j=this,k=j.settings,i;if(k.entity_encoding!==&quot;raw&quot;){if(k.entity_encoding.indexOf(&quot;named&quot;)!=-1){j.setEntities(k.entities);i=j.entityLookup;m=m.replace(j.entitiesRE,function(h){var l;if(l=i[h]){h=&quot;&amp;&quot;+l+&quot;;&quot;}return h})}if(k.entity_encoding.indexOf(&quot;numeric&quot;)!=-1){m=m.replace(/[\u007E-\uFFFF]/g,function(h){return&quot;&amp;#&quot;+h.charCodeAt(0)+&quot;;&quot;})}}return m},_setup:function(){var h=this,i=this.settings;if(h.done){return}h.done=1;h.setRules(i.valid_elements);h.addRules(i.extended_valid_elements);h.addValidChildRules(i.valid_child_elements);if(i.invalid_elements){h.invalidElementsRE=new RegExp(&quot;^(&quot;+c(i.invalid_elements.replace(/,/g,&quot;|&quot;).toLowerCase())+&quot;)$&quot;)}if(i.attrib_value_filter){h.attribValueFilter=i.attribValueFilter}},_getAttrib:function(m,j,h){var l,k;h=h||j.name;if(j.forcedVal&amp;&amp;(k=j.forcedVal)){if(k===&quot;{$uid}&quot;){return this.dom.uniqueId()}return k}k=this.dom.getAttrib(m,h);switch(h){case&quot;rowspan&quot;:case&quot;colspan&quot;:if(k==&quot;1&quot;){k=&quot;&quot;}break}if(this.attribValueFilter){k=this.attribValueFilter(h,k,m)}if(j.validVals){for(l=j.validVals.length-1;l&gt;=0;l--){if(k==j.validVals[l]){break}}if(l==-1){return null}}if(k===&quot;&quot;&amp;&amp;typeof(j.defaultVal)!=&quot;undefined&quot;){k=j.defaultVal;if(k===&quot;{$uid}&quot;){return this.dom.uniqueId()}return k}else{if(h==&quot;class&quot;&amp;&amp;this.processObj.get){k=k.replace(/\s?mceItem\w+\s?/g,&quot;&quot;)}}if(k===&quot;&quot;){return null}return k}})})(tinymce);(function(tinymce){var each=tinymce.each,Event=tinymce.dom.Event;tinymce.create(&quot;tinymce.dom.ScriptLoader&quot;,{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={}},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0},markDone:function(u){this.lookup[u]={state:2,url:u}},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&amp;&amp;o.state==2){cb.call(s||this)}return o}o={state:0,url:u,func:cb,scope:s||this};if(pr){t.queue.unshift(o)}else{t.queue.push(o)}lo[u]=o;return o},load:function(u,cb,s){var t=this,o;if(o=t.lookup[u]){if(cb&amp;&amp;o.state==2){cb.call(s||t)}return o}function loadScript(u){if(Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:tinymce._addVer(u),error:t.settings.error,async:false,success:function(co){t.eval(co)}})}else{document.write('&lt;script type=&quot;text/javascript&quot; src=&quot;'+tinymce._addVer(u)+'&quot;&gt;&lt;\/script&gt;')}}if(!tinymce.is(u,&quot;string&quot;)){each(u,function(u){loadScript(u)});if(cb){cb.call(s||t)}}else{loadScript(u);if(cb){cb.call(s||t)}}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb){cb.call(s||t)}each(t.queueCallbacks,function(o){o.func.call(o.scope)})})}else{if(cb){t.queueCallbacks.push({func:cb,scope:s||t})}}},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co)}catch(ex){eval(co,w)}}else{w.execScript(co)}},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func){o.func.call(o.scope||t)}}function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--}else{load(o)}});if(l===0&amp;&amp;cb){cb.call(s||t);cb=0}}function load(o){if(o.state&gt;0){return}o.state=1;tinymce.dom.ScriptLoader.loadScript(o.url,function(){done(o);allDone()})}each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o)}else{o=lo[u]}if(o.state&gt;0){return}if(!Event.domLoaded&amp;&amp;!t.settings.strict_mode){var ix,ol=&quot;&quot;;if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone()});if(tinymce.isIE){ol=' onreadystatechange=&quot;'}else{ol=' onload=&quot;'}ol+=&quot;tinymce.dom.ScriptLoader._onLoad(this,'&quot;+u+&quot;',&quot;+ix+');&quot;'}document.write('&lt;script type=&quot;text/javascript&quot; src=&quot;'+tinymce._addVer(u)+'&quot;'+ol+&quot;&gt;&lt;\/script&gt;&quot;);if(!o.func){done(o)}}else{load(o)}});allDone()},&quot;static&quot;:{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState==&quot;complete&quot;){this._funcs[ix].call(this)}},loadScript:function(u,cb){var id=tinymce.DOM.uniqueId(),e;function done(){Event.clear(id);tinymce.DOM.remove(id);if(cb){cb.call(document,u);cb=0}}if(tinymce.isIE){tinymce.util.XHR.send({url:tinymce._addVer(u),async:false,success:function(co){window.execScript(co);done()}})}else{e=tinymce.DOM.create(&quot;script&quot;,{id:id,type:&quot;text/javascript&quot;,src:tinymce._addVer(u)});Event.add(e,&quot;load&quot;,done);(document.getElementsByTagName(&quot;head&quot;)[0]||document.body).appendChild(e)}}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader()})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create(&quot;tinymce.ui.Control&quot;,{Control:function(e,d){this.id=e;this.settings=d=d||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix=&quot;&quot;;this.scope=d.scope||this;this.disabled=0;this.active=0},setDisabled:function(d){var f;if(d!=this.disabled){f=b.get(this.id);if(f&amp;&amp;this.settings.unavailable_prefix){if(d){this.prevTitle=f.title;f.title=this.settings.unavailable_prefix+&quot;: &quot;+f.title}else{f.title=this.prevTitle}}this.setState(&quot;Disabled&quot;,d);this.setState(&quot;Enabled&quot;,!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState(&quot;Active&quot;,d);this.active=d}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create(&quot;tinymce.ui.Container:tinymce.ui.Control&quot;,{Container:function(b,a){this.parent(b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create(&quot;tinymce.ui.Separator:tinymce.ui.Control&quot;,{Separator:function(b,a){this.parent(b,a);this.classPrefix=&quot;mceSeparator&quot;},renderHTML:function(){return tinymce.DOM.createHTML(&quot;span&quot;,{&quot;class&quot;:this.classPrefix})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create(&quot;tinymce.ui.MenuItem:tinymce.ui.Control&quot;,{MenuItem:function(g,f){this.parent(g,f);this.classPrefix=&quot;mceMenuItem&quot;},setSelected:function(f){this.setState(&quot;Selected&quot;,f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create(&quot;tinymce.ui.Menu:tinymce.ui.MenuItem&quot;,{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},&quot;items&quot;,f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},&quot;items&quot;,f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},&quot;items&quot;,f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create(&quot;tinymce.ui.DropMenu:tinymce.ui.Menu&quot;,{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&amp;&amp;!g.icons){g[&quot;class&quot;]+=&quot; mceNoIcons&quot;}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix=&quot;mceMenu&quot;},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j[&quot;class&quot;]=j[&quot;class&quot;]||i[&quot;class&quot;];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},update:function(){var i=this,j=i.settings,g=c.get(&quot;menu_&quot;+i.id+&quot;_tbl&quot;),l=c.get(&quot;menu_&quot;+i.id+&quot;_co&quot;),h,k;h=j.max_width?Math.min(g.clientWidth,j.max_width):g.clientWidth;k=j.max_height?Math.min(g.clientHeight,j.max_height):g.clientHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,&quot;width&quot;,h)}if(j.max_height){c.setStyle(l,&quot;height&quot;,k);if(g.clientHeight&lt;j.max_height){c.setStyle(l,&quot;overflow&quot;,&quot;hidden&quot;)}}},showMenu:function(p,n,r){var z=this,A=z.settings,o,g=c.getViewPort(),u,l,v,q,i=2,k,j,m=z.classPrefix;z.collapse(1);if(z.isMenuVisible){return}if(!z.rendered){o=c.add(z.settings.container,z.renderNode());f(z.items,function(h){h.postRender()});z.element=new b(&quot;menu_&quot;+z.id,{blocker:1,container:A.container})}else{o=c.get(&quot;menu_&quot;+z.id)}if(!e.isOpera){c.setStyles(o,{left:-65535,top:-65535})}c.show(o);z.update();p+=A.offset_x||0;n+=A.offset_y||0;g.w-=4;g.h-=4;if(A.constrain){u=o.clientWidth-i;l=o.clientHeight-i;v=g.x+g.w;q=g.y+g.h;if((p+A.vp_offset_x+u)&gt;v){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)&gt;q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,&quot;click&quot;,function(s){var h;s=s.target;if(s&amp;&amp;(s=c.getParent(s,&quot;tr&quot;))&amp;&amp;!c.hasClass(s,m+&quot;ItemSub&quot;)){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return a.cancel(s)}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,&quot;mouseover&quot;,function(w){var h,t,s;w=w.target;if(w&amp;&amp;(w=c.getParent(w,&quot;tr&quot;))){h=z.items[w.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(w&amp;&amp;c.hasClass(w,m+&quot;ItemSub&quot;)){t=c.getRect(w);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+&quot;ItemActive&quot;)}}})}z.onShowMenu.dispatch(z);if(A.keyboard_focus){a.add(o,&quot;keydown&quot;,z._keyHandler,z);c.select(&quot;a&quot;,&quot;menu_&quot;+z.id)[0].focus();z._focusIdx=0}},hideMenu:function(j){var g=this,i=c.get(&quot;menu_&quot;+g.id),h;if(!g.isMenuVisible){return}a.remove(i,&quot;mouseover&quot;,g.mouseOverFunc);a.remove(i,&quot;click&quot;,g.mouseClickFunc);a.remove(i,&quot;keydown&quot;,g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+&quot;ItemActive&quot;)}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&amp;&amp;(h=c.get(&quot;menu_&quot;+g.id))){g._add(c.select(&quot;tbody&quot;,h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get(&quot;menu_&quot;+g.id);a.remove(h,&quot;mouseover&quot;,g.mouseOverFunc);a.remove(h,&quot;click&quot;,g.mouseClickFunc);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create(&quot;div&quot;,{id:&quot;menu_&quot;+i.id,&quot;class&quot;:j[&quot;class&quot;],style:&quot;position:absolute;left:0;top:0;z-index:200000&quot;});k=c.add(g,&quot;div&quot;,{id:&quot;menu_&quot;+i.id+&quot;_co&quot;,&quot;class&quot;:i.classPrefix+(j[&quot;class&quot;]?&quot; &quot;+j[&quot;class&quot;]:&quot;&quot;)});i.element=new b(&quot;menu_&quot;+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,&quot;span&quot;,{&quot;class&quot;:i.classPrefix+&quot;Line&quot;})}l=c.add(k,&quot;table&quot;,{id:&quot;menu_&quot;+i.id+&quot;_tbl&quot;,border:0,cellPadding:0,cellSpacing:0});h=c.add(l,&quot;tbody&quot;);f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_keyHandler:function(j){var i=this,h=j.keyCode;function g(m){var k=i._focusIdx+m,l=c.select(&quot;a&quot;,&quot;menu_&quot;+i.id)[k];if(l){i._focusIdx=k;l.focus()}}switch(h){case 38:g(-1);return;case 40:g(1);return;case 13:return;case 27:return this.hideMenu()}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,&quot;tr&quot;,{id:h.id,&quot;class&quot;:m+&quot;ItemSeparator&quot;});c.add(l,&quot;td&quot;,{&quot;class&quot;:m+&quot;ItemSeparator&quot;});if(i=l.previousSibling){c.addClass(i,&quot;mceLast&quot;)}return}i=l=c.add(j,&quot;tr&quot;,{id:h.id,&quot;class&quot;:m+&quot;Item &quot;+m+&quot;ItemEnabled&quot;});i=k=c.add(i,&quot;td&quot;);i=p=c.add(i,&quot;a&quot;,{href:&quot;javascript:;&quot;,onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;});c.addClass(k,q[&quot;class&quot;]);g=c.add(i,&quot;span&quot;,{&quot;class&quot;:&quot;mceIcon&quot;+(q.icon?&quot; mce_&quot;+q.icon:&quot;&quot;)});if(q.icon_src){c.add(g,&quot;img&quot;,{src:q.icon_src})}i=c.add(i,q.element||&quot;span&quot;,{&quot;class&quot;:&quot;mceText&quot;,title:h.settings.title},h.settings.title);if(h.settings.style){c.setAttrib(i,&quot;style&quot;,h.settings.style)}if(j.childNodes.length==1){c.addClass(l,&quot;mceFirst&quot;)}if((i=l.previousSibling)&amp;&amp;c.hasClass(i,m+&quot;ItemSeparator&quot;)){c.addClass(l,&quot;mceFirst&quot;)}if(h.collapse){c.addClass(l,m+&quot;ItemSub&quot;)}if(i=l.previousSibling){c.removeClass(i,&quot;mceLast&quot;)}c.addClass(l,&quot;mceLast&quot;)}})})(tinymce);(function(b){var a=b.DOM;b.create(&quot;tinymce.ui.Button:tinymce.ui.Control&quot;,{Button:function(d,c){this.parent(d,c);this.classPrefix=&quot;mceButton&quot;},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||&quot;&quot;);d='&lt;a id=&quot;'+this.id+'&quot; href=&quot;javascript:;&quot; class=&quot;'+f+&quot; &quot;+f+&quot;Enabled &quot;+e[&quot;class&quot;]+(c?&quot; &quot;+f+&quot;Labeled&quot;:&quot;&quot;)+'&quot; onmousedown=&quot;return false;&quot; onclick=&quot;return false;&quot; title=&quot;'+a.encode(e.title)+'&quot;&gt;';if(e.image){d+='&lt;img class=&quot;mceIcon&quot; src=&quot;'+e.image+'&quot; /&gt;'+c+&quot;&lt;/a&gt;&quot;}else{d+='&lt;span class=&quot;mceIcon '+e[&quot;class&quot;]+'&quot;&gt;&lt;/span&gt;'+(c?'&lt;span class=&quot;'+f+'Label&quot;&gt;'+c+&quot;&lt;/span&gt;&quot;:&quot;&quot;)+&quot;&lt;/a&gt;&quot;}return d},postRender:function(){var c=this,d=c.settings;b.dom.Event.add(c.id,&quot;click&quot;,function(f){if(!c.isDisabled()){return d.onclick.call(d.scope,f)}})}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create(&quot;tinymce.ui.ListBox:tinymce.ui.Control&quot;,{ListBox:function(h,g){var f=this;f.parent(h,g);f.items=[];f.onChange=new a(f);f.onPostRender=new a(f);f.onAdd=new a(f);f.onRenderMenu=new d.util.Dispatcher(this);f.classPrefix=&quot;mceListBox&quot;},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&amp;&amp;h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){var g=this,h,i;if(f!=g.selectedIndex){h=c.get(g.id+&quot;_text&quot;);i=g.items[f];if(i){g.selectedValue=i.value;g.selectedIndex=f;c.setHTML(h,c.encode(i.title));c.removeClass(h,&quot;mceTitle&quot;)}else{c.setHTML(h,c.encode(g.settings.title));c.addClass(h,&quot;mceTitle&quot;);g.selectedValue=g.selectedIndex=null}h=0}},add:function(i,f,h){var g=this;h=h||{};h=d.extend(h,{title:i,value:f});g.items.push(h);g.onAdd.dispatch(g,h)},getLength:function(){return this.items.length},renderHTML:function(){var i=&quot;&quot;,f=this,g=f.settings,j=f.classPrefix;i='&lt;table id=&quot;'+f.id+'&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;'+j+&quot; &quot;+j+&quot;Enabled&quot;+(g[&quot;class&quot;]?(&quot; &quot;+g[&quot;class&quot;]):&quot;&quot;)+'&quot;&gt;&lt;tbody&gt;&lt;tr&gt;';i+=&quot;&lt;td&gt;&quot;+c.createHTML(&quot;a&quot;,{id:f.id+&quot;_text&quot;,href:&quot;javascript:;&quot;,&quot;class&quot;:&quot;mceText&quot;,onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;},c.encode(f.settings.title))+&quot;&lt;/td&gt;&quot;;i+=&quot;&lt;td&gt;&quot;+c.createHTML(&quot;a&quot;,{id:f.id+&quot;_open&quot;,tabindex:-1,href:&quot;javascript:;&quot;,&quot;class&quot;:&quot;mceOpen&quot;,onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;},&quot;&lt;span&gt;&lt;/span&gt;&quot;)+&quot;&lt;/td&gt;&quot;;i+=&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;;return i},showMenu:function(){var g=this,j,i,h=c.get(this.id),f;if(g.isDisabled()||g.items.length==0){return}if(g.menu&amp;&amp;g.menu.isMenuVisible){return g.hideMenu()}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}j=c.getPos(this.settings.menu_container);i=c.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.keyboard_focus=!d.isOpera;if(g.oldID){f.items[g.oldID].setSelected(0)}e(g.items,function(k){if(k.value===g.selectedValue){f.items[k.id].setSelected(1);g.oldID=k.id}});f.showMenu(0,h.clientHeight);b.add(c.doc,&quot;mousedown&quot;,g.hideMenu,g);c.addClass(g.id,g.classPrefix+&quot;Selected&quot;)},hideMenu:function(g){var f=this;if(g&amp;&amp;g.type==&quot;mousedown&quot;&amp;&amp;(g.target.id==f.id+&quot;_text&quot;||g.target.id==f.id+&quot;_open&quot;)){return}if(!g||!c.getParent(g.target,&quot;.mceMenu&quot;)){c.removeClass(f.id,f.classPrefix+&quot;Selected&quot;);b.remove(c.doc,&quot;mousedown&quot;,f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}},renderMenu:function(){var g=this,f;f=g.settings.control_manager.createDropMenu(g.id+&quot;_menu&quot;,{menu_line:1,&quot;class&quot;:g.classPrefix+&quot;Menu mceNoIcons&quot;,max_width:150,max_height:150});f.onHideMenu.add(g.hideMenu,g);f.add({title:g.settings.title,&quot;class&quot;:&quot;mceMenuItemTitle&quot;,onclick:function(){if(g.settings.onselect(&quot;&quot;)!==false){g.select(&quot;&quot;)}}});e(g.items,function(h){h.id=c.uniqueId();h.onclick=function(){if(g.settings.onselect(h.value)!==false){g.select(h.value)}};f.add(h)});g.onRenderMenu.dispatch(g,f);g.menu=f},postRender:function(){var f=this,g=f.classPrefix;b.add(f.id,&quot;click&quot;,f.showMenu,f);b.add(f.id+&quot;_text&quot;,&quot;focus&quot;,function(h){if(!f._focused){f.keyDownHandler=b.add(f.id+&quot;_text&quot;,&quot;keydown&quot;,function(l){var i=-1,j,k=l.keyCode;e(f.items,function(m,n){if(f.selectedValue==m.value){i=n}});if(k==38){j=f.items[i-1]}else{if(k==40){j=f.items[i+1]}else{if(k==13){j=f.selectedValue;f.selectedValue=null;f.settings.onselect(j);return b.cancel(l)}}}if(j){f.hideMenu();f.select(j.value)}})}f._focused=1});b.add(f.id+&quot;_text&quot;,&quot;blur&quot;,function(){b.remove(f.id+&quot;_text&quot;,&quot;keydown&quot;,f.keyDownHandler);f._focused=0});if(d.isIE6||!c.boxModel){b.add(f.id,&quot;mouseover&quot;,function(){if(!c.hasClass(f.id,g+&quot;Disabled&quot;)){c.addClass(f.id,g+&quot;Hover&quot;)}});b.add(f.id,&quot;mouseout&quot;,function(){if(!c.hasClass(f.id,g+&quot;Disabled&quot;)){c.removeClass(f.id,g+&quot;Hover&quot;)}})}f.onPostRender.dispatch(f,c.get(f.id))},destroy:function(){this.parent();b.clear(this.id+&quot;_text&quot;);b.clear(this.id+&quot;_open&quot;)}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create(&quot;tinymce.ui.NativeListBox:tinymce.ui.ListBox&quot;,{NativeListBox:function(g,f){this.parent(g,f);this.classPrefix=&quot;mceNativeListBox&quot;},setDisabled:function(f){c.get(this.id).disabled=f},isDisabled:function(){return c.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&amp;&amp;h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){c.get(this.id).selectedIndex=f+1;this.selectedValue=this.items[f]?this.items[f].value:null},add:function(j,g,f){var i,h=this;f=f||{};f.value=g;if(h.isRendered()){c.add(c.get(this.id),&quot;option&quot;,f,j)}i={title:j,value:g,attribs:f};h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return c.get(this.id).options.length-1},renderHTML:function(){var g,f=this;g=c.createHTML(&quot;option&quot;,{value:&quot;&quot;},&quot;-- &quot;+f.settings.title+&quot; --&quot;);e(f.items,function(h){g+=c.createHTML(&quot;option&quot;,{value:h.value},h.title)});g=c.createHTML(&quot;select&quot;,{id:f.id,&quot;class&quot;:&quot;mceNativeListBox&quot;},g);return g},postRender:function(){var g=this,h;g.rendered=true;function f(j){var i=g.items[j.target.selectedIndex-1];if(i&amp;&amp;(i=i.value)){g.onChange.dispatch(g,i);if(g.settings.onselect){g.settings.onselect(i)}}}b.add(g.id,&quot;change&quot;,f);b.add(g.id,&quot;keydown&quot;,function(j){var i;b.remove(g.id,&quot;change&quot;,h);i=b.add(g.id,&quot;blur&quot;,function(){b.add(g.id,&quot;change&quot;,f);b.remove(g.id,&quot;blur&quot;,i)});if(j.keyCode==13||j.keyCode==32){f(j);return b.cancel(j)}});g.onPostRender.dispatch(g,c.get(g.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create(&quot;tinymce.ui.MenuButton:tinymce.ui.Button&quot;,{MenuButton:function(f,e){this.parent(f,e);this.onRenderMenu=new c.util.Dispatcher(this);e.menu_container=e.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.clientHeight);a.add(b.doc,&quot;mousedown&quot;,g.hideMenu,g);g.setState(&quot;Selected&quot;,1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+&quot;_menu&quot;,{menu_line:1,&quot;class&quot;:this.classPrefix+&quot;Menu&quot;,icons:f.settings.icons});e.onHideMenu.add(f.hideMenu,f);f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&amp;&amp;g.type==&quot;mousedown&quot;&amp;&amp;b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+&quot;_open&quot;})){return}if(!g||!b.getParent(g.target,&quot;.mceMenu&quot;)){f.setState(&quot;Selected&quot;,0);a.remove(b.doc,&quot;mousedown&quot;,f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,&quot;click&quot;,function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create(&quot;tinymce.ui.SplitButton:tinymce.ui.MenuButton&quot;,{SplitButton:function(f,e){this.parent(f,e);this.classPrefix=&quot;mceSplitButton&quot;},renderHTML:function(){var i,f=this,g=f.settings,e;i=&quot;&lt;tbody&gt;&lt;tr&gt;&quot;;if(g.image){e=b.createHTML(&quot;img &quot;,{src:g.image,&quot;class&quot;:&quot;mceAction &quot;+g[&quot;class&quot;]})}else{e=b.createHTML(&quot;span&quot;,{&quot;class&quot;:&quot;mceAction &quot;+g[&quot;class&quot;]},&quot;&quot;)}i+=&quot;&lt;td&gt;&quot;+b.createHTML(&quot;a&quot;,{id:f.id+&quot;_action&quot;,href:&quot;javascript:;&quot;,&quot;class&quot;:&quot;mceAction &quot;+g[&quot;class&quot;],onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;,title:g.title},e)+&quot;&lt;/td&gt;&quot;;e=b.createHTML(&quot;span&quot;,{&quot;class&quot;:&quot;mceOpen &quot;+g[&quot;class&quot;]});i+=&quot;&lt;td&gt;&quot;+b.createHTML(&quot;a&quot;,{id:f.id+&quot;_open&quot;,href:&quot;javascript:;&quot;,&quot;class&quot;:&quot;mceOpen &quot;+g[&quot;class&quot;],onclick:&quot;return false;&quot;,onmousedown:&quot;return false;&quot;,title:g.title},e)+&quot;&lt;/td&gt;&quot;;i+=&quot;&lt;/tr&gt;&lt;/tbody&gt;&quot;;return b.createHTML(&quot;table&quot;,{id:f.id,&quot;class&quot;:&quot;mceSplitButton mceSplitButtonEnabled &quot;+g[&quot;class&quot;],cellpadding:&quot;0&quot;,cellspacing:&quot;0&quot;,onmousedown:&quot;return false;&quot;,title:g.title},i)},postRender:function(){var e=this,f=e.settings;if(f.onclick){a.add(e.id+&quot;_action&quot;,&quot;click&quot;,function(){if(!e.isDisabled()){f.onclick(e.value)}})}a.add(e.id+&quot;_open&quot;,&quot;click&quot;,e.showMenu,e);a.add(e.id+&quot;_open&quot;,&quot;focus&quot;,function(){e._focused=1});a.add(e.id+&quot;_open&quot;,&quot;blur&quot;,function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,&quot;mouseover&quot;,function(){if(!b.hasClass(e.id,&quot;mceSplitButtonDisabled&quot;)){b.addClass(e.id,&quot;mceSplitButtonHover&quot;)}});a.add(e.id,&quot;mouseout&quot;,function(){if(!b.hasClass(e.id,&quot;mceSplitButtonDisabled&quot;)){b.removeClass(e.id,&quot;mceSplitButtonHover&quot;)}})}},destroy:function(){this.parent();a.clear(this.id+&quot;_action&quot;);a.clear(this.id+&quot;_open&quot;)}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create(&quot;tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton&quot;,{ColorSplitButton:function(h,g){var f=this;f.parent(h,g);f.settings=g=d.extend({colors:&quot;000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF&quot;,grid_width:8,default_color:&quot;#888888&quot;},f.settings);f.onShowMenu=new d.util.Dispatcher(f);f.onHideMenu=new d.util.Dispatcher(f);f.value=g.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+&quot;_menu&quot;);c.addClass(i,&quot;mceSplitButtonSelected&quot;);h=c.getPos(i);c.setStyles(f.id+&quot;_menu&quot;,{left:h.x,top:h.y+i.clientHeight,zIndex:200000});i=0;a.add(c.doc,&quot;mousedown&quot;,f.hideMenu,f);f.onShowMenu.dispatch(f);if(f._focused){f._keyHandler=a.add(f.id+&quot;_menu&quot;,&quot;keydown&quot;,function(k){if(k.keyCode==27){f.hideMenu()}});c.select(&quot;a&quot;,f.id+&quot;_menu&quot;)[0].focus()}f.isMenuVisible=1},hideMenu:function(g){var f=this;if(g&amp;&amp;g.type==&quot;mousedown&quot;&amp;&amp;c.getParent(g.target,function(h){return h.id===f.id+&quot;_open&quot;})){return}if(!g||!c.getParent(g.target,&quot;.mceSplitButtonMenu&quot;)){c.removeClass(f.id,&quot;mceSplitButtonSelected&quot;);a.remove(c.doc,&quot;mousedown&quot;,f.hideMenu,f);a.remove(f.id+&quot;_menu&quot;,&quot;keydown&quot;,f._keyHandler);c.hide(f.id+&quot;_menu&quot;)}f.onHideMenu.dispatch(f);f.isMenuVisible=0},renderMenu:function(){var k=this,f,j=0,l=k.settings,p,h,o,g;g=c.add(l.menu_container,&quot;div&quot;,{id:k.id+&quot;_menu&quot;,&quot;class&quot;:l.menu_class+&quot; &quot;+l[&quot;class&quot;],style:&quot;position:absolute;left:0;top:-1000px;&quot;});f=c.add(g,&quot;div&quot;,{&quot;class&quot;:l[&quot;class&quot;]+&quot; mceSplitButtonMenu&quot;});c.add(f,&quot;span&quot;,{&quot;class&quot;:&quot;mceMenuLine&quot;});p=c.add(f,&quot;table&quot;,{&quot;class&quot;:&quot;mceColorSplitMenu&quot;});h=c.add(p,&quot;tbody&quot;);j=0;e(b(l.colors,&quot;array&quot;)?l.colors:l.colors.split(&quot;,&quot;),function(i){i=i.replace(/^#/,&quot;&quot;);if(!j--){o=c.add(h,&quot;tr&quot;);j=l.grid_width-1}p=c.add(o,&quot;td&quot;);p=c.add(p,&quot;a&quot;,{href:&quot;javascript:;&quot;,style:{backgroundColor:&quot;#&quot;+i},mce_color:&quot;#&quot;+i})});if(l.more_colors_func){p=c.add(h,&quot;tr&quot;);p=c.add(p,&quot;td&quot;,{colspan:l.grid_width,&quot;class&quot;:&quot;mceMoreColors&quot;});p=c.add(p,&quot;a&quot;,{id:k.id+&quot;_more&quot;,href:&quot;javascript:;&quot;,onclick:&quot;return false;&quot;,&quot;class&quot;:&quot;mceMoreColors&quot;},l.more_colors_title);a.add(p,&quot;click&quot;,function(i){l.more_colors_func.call(l.more_colors_scope||this);return a.cancel(i)})}c.addClass(f,&quot;mceColorSplitMenu&quot;);a.add(k.id+&quot;_menu&quot;,&quot;click&quot;,function(i){var m;i=i.target;if(i.nodeName==&quot;A&quot;&amp;&amp;(m=i.getAttribute(&quot;mce_color&quot;))){k.setColor(m)}return a.cancel(i)});return g},setColor:function(g){var f=this;c.setStyle(f.id+&quot;_preview&quot;,&quot;backgroundColor&quot;,g);f.value=g;f.hideMenu();f.settings.onselect(g)},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+&quot;_action&quot;,&quot;div&quot;,{id:g+&quot;_preview&quot;,&quot;class&quot;:&quot;mceColorPreview&quot;});c.setStyle(f.id+&quot;_preview&quot;,&quot;backgroundColor&quot;,f.value)},destroy:function(){this.parent();a.clear(this.id+&quot;_menu&quot;);a.clear(this.id+&quot;_more&quot;);c.remove(this.id+&quot;_menu&quot;)}})})(tinymce);tinymce.create(&quot;tinymce.ui.Toolbar:tinymce.ui.Container&quot;,{renderHTML:function(){var l=this,e=&quot;&quot;,g,j,b=tinymce.DOM,m=l.settings,d,a,f,k;k=l.controls;for(d=0;d&lt;k.length;d++){j=k[d];a=k[d-1];f=k[d+1];if(d===0){g=&quot;mceToolbarStart&quot;;if(j.Button){g+=&quot; mceToolbarStartButton&quot;}else{if(j.SplitButton){g+=&quot; mceToolbarStartSplitButton&quot;}else{if(j.ListBox){g+=&quot; mceToolbarStartListBox&quot;}}}e+=b.createHTML(&quot;td&quot;,{&quot;class&quot;:g},b.createHTML(&quot;span&quot;,null,&quot;&lt;!-- IE --&gt;&quot;))}if(a&amp;&amp;j.ListBox){if(a.Button||a.SplitButton){e+=b.createHTML(&quot;td&quot;,{&quot;class&quot;:&quot;mceToolbarEnd&quot;},b.createHTML(&quot;span&quot;,null,&quot;&lt;!-- IE --&gt;&quot;))}}if(b.stdMode){e+='&lt;td style=&quot;position: relative&quot;&gt;'+j.renderHTML()+&quot;&lt;/td&gt;&quot;}else{e+=&quot;&lt;td&gt;&quot;+j.renderHTML()+&quot;&lt;/td&gt;&quot;}if(f&amp;&amp;j.ListBox){if(f.Button||f.SplitButton){e+=b.createHTML(&quot;td&quot;,{&quot;class&quot;:&quot;mceToolbarStart&quot;},b.createHTML(&quot;span&quot;,null,&quot;&lt;!-- IE --&gt;&quot;))}}}g=&quot;mceToolbarEnd&quot;;if(j.Button){g+=&quot; mceToolbarEndButton&quot;}else{if(j.SplitButton){g+=&quot; mceToolbarEndSplitButton&quot;}else{if(j.ListBox){g+=&quot; mceToolbarEndListBox&quot;}}}e+=b.createHTML(&quot;td&quot;,{&quot;class&quot;:g},b.createHTML(&quot;span&quot;,null,&quot;&lt;!-- IE --&gt;&quot;));return b.createHTML(&quot;table&quot;,{id:l.id,&quot;class&quot;:&quot;mceToolbar&quot;+(m[&quot;class&quot;]?&quot; &quot;+m[&quot;class&quot;]:&quot;&quot;),cellpadding:&quot;0&quot;,cellspacing:&quot;0&quot;,align:l.settings.align||&quot;&quot;},&quot;&lt;tbody&gt;&lt;tr&gt;&quot;+e+&quot;&lt;/tr&gt;&lt;/tbody&gt;&quot;)}});(function(b){var a=b.util.Dispatcher,c=b.each;b.create(&quot;tinymce.AddOnManager&quot;,{items:[],urls:{},lookup:{},onAdd:new a(this),get:function(d){return this.lookup[d]},requireLangPack:function(f){var d,e=b.EditorManager.settings;if(e&amp;&amp;e.language){d=this.urls[f]+&quot;/langs/&quot;+e.language+&quot;.js&quot;;if(!b.dom.Event.domLoaded&amp;&amp;!e.strict_mode){b.ScriptLoader.load(d)}else{b.ScriptLoader.add(d)}}},add:function(e,d){this.items.push(d);this.lookup[e]=d;this.onAdd.dispatch(this,e,d);return d},load:function(h,e,d,g){var f=this;if(f.urls[h]){return}if(e.indexOf(&quot;/&quot;)!=0&amp;&amp;e.indexOf(&quot;://&quot;)==-1){e=b.baseURL+&quot;/&quot;+e}f.urls[h]=e.substring(0,e.lastIndexOf(&quot;/&quot;));b.ScriptLoader.add(e,d,g)}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(f){var g=f.each,h=f.extend,e=f.DOM,a=f.dom.Event,c=f.ThemeManager,b=f.PluginManager,d=f.explode;f.create(&quot;static tinymce.EditorManager&quot;,{editors:{},i18n:{},activeEditor:null,preInit:function(){var i=this,j=window.location;f.documentBaseURL=j.href.replace(/[\?#].*$/,&quot;&quot;).replace(/[\/\\][^\/]+$/,&quot;&quot;);if(!/[\/\\]$/.test(f.documentBaseURL)){f.documentBaseURL+=&quot;/&quot;}f.baseURL=new f.util.URI(f.documentBaseURL).toAbsolute(f.baseURL);f.EditorManager.baseURI=new f.util.URI(f.baseURL);i.onBeforeUnload=new f.util.Dispatcher(i);a.add(window,&quot;beforeunload&quot;,function(k){i.onBeforeUnload.dispatch(i,k)})},init:function(q){var p=this,l,k=f.ScriptLoader,o,n,i=[],m;function j(u,v,r){var t=u[v];if(!t){return}if(f.is(t,&quot;string&quot;)){r=t.replace(/\.\w+$/,&quot;&quot;);r=r?f.resolve(r):0;t=f.resolve(t)}return t.apply(r||this,Array.prototype.slice.call(arguments,2))}q=h({theme:&quot;simple&quot;,language:&quot;en&quot;,strict_loading_mode:document.contentType==&quot;application/xhtml+xml&quot;},q);p.settings=q;if(!a.domLoaded&amp;&amp;!q.strict_loading_mode){if(q.language){k.add(f.baseURL+&quot;/langs/&quot;+q.language+&quot;.js&quot;)}if(q.theme&amp;&amp;q.theme.charAt(0)!=&quot;-&quot;&amp;&amp;!c.urls[q.theme]){c.load(q.theme,&quot;themes/&quot;+q.theme+&quot;/editor_template&quot;+f.suffix+&quot;.js&quot;)}if(q.plugins){l=d(q.plugins);g(l,function(r){if(r&amp;&amp;r.charAt(0)!=&quot;-&quot;&amp;&amp;!b.urls[r]){if(!f.isWebKit&amp;&amp;r==&quot;safari&quot;){return}b.load(r,&quot;plugins/&quot;+r+&quot;/editor_plugin&quot;+f.suffix+&quot;.js&quot;)}})}k.loadQueue()}a.add(document,&quot;init&quot;,function(){var r,t;j(q,&quot;onpageload&quot;);if(q.browsers){r=false;g(d(q.browsers),function(u){switch(u){case&quot;ie&quot;:case&quot;msie&quot;:if(f.isIE){r=true}break;case&quot;gecko&quot;:if(f.isGecko){r=true}break;case&quot;safari&quot;:case&quot;webkit&quot;:if(f.isWebKit){r=true}break;case&quot;opera&quot;:if(f.isOpera){r=true}break}});if(!r){return}}switch(q.mode){case&quot;exact&quot;:r=q.elements||&quot;&quot;;if(r.length&gt;0){g(d(r),function(u){if(e.get(u)){m=new f.Editor(u,q);i.push(m);m.render(1)}else{o=0;g(document.forms,function(v){g(v.elements,function(w){if(w.name===u){u=&quot;mce_editor_&quot;+o;e.setAttrib(w,&quot;id&quot;,u);m=new f.Editor(u,q);i.push(m);m.render(1)}})})}})}break;case&quot;textareas&quot;:case&quot;specific_textareas&quot;:function s(v,u){return u.constructor===RegExp?u.test(v.className):e.hasClass(v,u)}g(e.select(&quot;textarea&quot;),function(u){if(q.editor_deselector&amp;&amp;s(u,q.editor_deselector)){return}if(!q.editor_selector||s(u,q.editor_selector)){n=e.get(u.name);if(!u.id&amp;&amp;!n){u.id=u.name}if(!u.id||p.get(u.id)){u.id=e.uniqueId()}m=new f.Editor(u.id,q);i.push(m);m.render(1)}});break}if(q.oninit){r=t=0;g(i,function(u){t++;if(!u.initialized){u.onInit.add(function(){r++;if(r==t){j(q,&quot;oninit&quot;)}})}else{r++}if(r==t){j(q,&quot;oninit&quot;)}})}})},get:function(i){return this.editors[i]},getInstanceById:function(i){return this.get(i)},add:function(i){this.editors[i.id]=i;this._setActive(i);return i},remove:function(j){var i=this;if(!i.editors[j.id]){return null}delete i.editors[j.id];if(i.activeEditor==j){i._setActive(null);g(i.editors,function(k){i._setActive(k);return false})}j.destroy();return j},execCommand:function(o,m,l){var n=this,k=n.get(l),i;switch(o){case&quot;mceFocus&quot;:k.focus();return true;case&quot;mceAddEditor&quot;:case&quot;mceAddControl&quot;:if(!n.get(l)){new f.Editor(l,n.settings).render()}return true;case&quot;mceAddFrameControl&quot;:i=l.window;i.tinyMCE=tinyMCE;i.tinymce=f;f.DOM.doc=i.document;f.DOM.win=i;k=new f.Editor(l.element_id,l);k.render();if(f.isIE){function j(){k.destroy();i.detachEvent(&quot;onunload&quot;,j);i=i.tinyMCE=i.tinymce=null}i.attachEvent(&quot;onunload&quot;,j)}l.page_window=null;return true;case&quot;mceRemoveEditor&quot;:case&quot;mceRemoveControl&quot;:if(k){k.remove()}return true;case&quot;mceToggleEditor&quot;:if(!k){n.execCommand(&quot;mceAddControl&quot;,0,l);return true}if(k.isHidden()){k.show()}else{k.hide()}return true}if(n.activeEditor){return n.activeEditor.execCommand(o,m,l)}return false},execInstanceCommand:function(m,l,k,j){var i=this.get(m);if(i){return i.execCommand(l,k,j)}return false},triggerSave:function(){g(this.editors,function(i){i.save()})},addI18n:function(k,l){var i,j=this.i18n;if(!f.is(k,&quot;string&quot;)){g(k,function(n,m){g(n,function(q,p){g(q,function(s,r){if(p===&quot;common&quot;){j[m+&quot;.&quot;+r]=s}else{j[m+&quot;.&quot;+p+&quot;.&quot;+r]=s}})})})}else{g(l,function(n,m){j[k+&quot;.&quot;+m]=n})}},_setActive:function(i){this.selectedInstance=this.activeEditor=i}});f.EditorManager.preInit()})(tinymce);var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(n){var o=n.DOM,k=n.dom.Event,f=n.extend,l=n.util.Dispatcher;var j=n.each,a=n.isGecko,b=n.isIE,e=n.isWebKit;var d=n.is,h=n.ThemeManager,c=n.PluginManager,i=n.EditorManager;var p=n.inArray,m=n.grep,g=n.explode;n.create(&quot;tinymce.Editor&quot;,{Editor:function(u,r){var q=this;q.id=q.editorId=u;q.execCommands={};q.queryStateCommands={};q.queryValueCommands={};q.isNotDirty=false;q.plugins={};j([&quot;onPreInit&quot;,&quot;onBeforeRenderUI&quot;,&quot;onPostRender&quot;,&quot;onInit&quot;,&quot;onRemove&quot;,&quot;onActivate&quot;,&quot;onDeactivate&quot;,&quot;onClick&quot;,&quot;onEvent&quot;,&quot;onMouseUp&quot;,&quot;onMouseDown&quot;,&quot;onDblClick&quot;,&quot;onKeyDown&quot;,&quot;onKeyUp&quot;,&quot;onKeyPress&quot;,&quot;onContextMenu&quot;,&quot;onSubmit&quot;,&quot;onReset&quot;,&quot;onPaste&quot;,&quot;onPreProcess&quot;,&quot;onPostProcess&quot;,&quot;onBeforeSetContent&quot;,&quot;onBeforeGetContent&quot;,&quot;onSetContent&quot;,&quot;onGetContent&quot;,&quot;onLoadContent&quot;,&quot;onSaveContent&quot;,&quot;onNodeChange&quot;,&quot;onChange&quot;,&quot;onBeforeExecCommand&quot;,&quot;onExecCommand&quot;,&quot;onUndo&quot;,&quot;onRedo&quot;,&quot;onVisualAid&quot;,&quot;onSetProgressState&quot;],function(s){q[s]=new l(q)});q.settings=r=f({id:u,language:&quot;en&quot;,docs_language:&quot;en&quot;,theme:&quot;simple&quot;,skin:&quot;default&quot;,delta_width:0,delta_height:0,popup_css:&quot;&quot;,plugins:&quot;&quot;,document_base_url:n.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;',visual_table_class:&quot;mceItemTable&quot;,visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:&quot;xx-small,x-small,small,medium,large,x-large,xx-large&quot;,apply_source_formatting:1,directionality:&quot;ltr&quot;,forced_root_block:&quot;p&quot;,valid_elements:&quot;@[id|class|style|title|dir&lt;ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p,-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big&quot;,hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:&quot;30px&quot;,keep_styles:1,fix_table_elements:1,removeformat_selector:&quot;span,b,strong,em,i,font,u,strike&quot;},r);q.documentBaseURI=new n.util.URI(r.document_base_url||n.documentBaseURL,{base_uri:tinyMCE.baseURI});q.baseURI=i.baseURI;q.execCallback(&quot;setup&quot;,q)},render:function(u){var v=this,w=v.settings,x=v.id,q=n.ScriptLoader;if(!k.domLoaded){k.add(document,&quot;init&quot;,function(){v.render()});return}if(!u){w.strict_loading_mode=1;tinyMCE.settings=w}if(!v.getElement()){return}if(w.strict_loading_mode){q.settings.strict_mode=w.strict_loading_mode;n.DOM.settings.strict=1}if(!/TEXTAREA|INPUT/i.test(v.getElement().nodeName)&amp;&amp;w.hidden_input&amp;&amp;o.getParent(x,&quot;form&quot;)){o.insertAfter(o.create(&quot;input&quot;,{type:&quot;hidden&quot;,name:x}),x)}if(n.WindowManager){v.windowManager=new n.WindowManager(v)}if(w.encoding==&quot;xml&quot;){v.onGetContent.add(function(s,t){if(t.save){t.content=o.encode(t.content)}})}if(w.add_form_submit_trigger){v.onSubmit.addToTop(function(){if(v.initialized){v.save();v.isNotDirty=1}})}if(w.add_unload_trigger){v._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(v.initialized&amp;&amp;!v.destroyed&amp;&amp;!v.isHidden()){v.save({format:&quot;raw&quot;,no_events:true})}})}n.addUnload(v.destroy,v);if(w.submit_patch){v.onBeforeRenderUI.add(function(){var s=v.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&amp;&amp;!s.submit.length){v.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){i.triggerSave();v.isNotDirty=1;return v.formElement._mceOldSubmit(v.formElement)}}s=null})}function r(){if(w.language){q.add(n.baseURL+&quot;/langs/&quot;+w.language+&quot;.js&quot;)}if(w.theme&amp;&amp;w.theme.charAt(0)!=&quot;-&quot;&amp;&amp;!h.urls[w.theme]){h.load(w.theme,&quot;themes/&quot;+w.theme+&quot;/editor_template&quot;+n.suffix+&quot;.js&quot;)}j(g(w.plugins),function(s){if(s&amp;&amp;s.charAt(0)!=&quot;-&quot;&amp;&amp;!c.urls[s]){if(!e&amp;&amp;s==&quot;safari&quot;){return}c.load(s,&quot;plugins/&quot;+s+&quot;/editor_plugin&quot;+n.suffix+&quot;.js&quot;)}});q.loadQueue(function(){if(!v.removed){v.init()}})}r()},init:function(){var v,F=this,G=F.settings,C,z,B=F.getElement(),r,q,D,y,A,E;i.add(F);if(G.theme){G.theme=G.theme.replace(/-/,&quot;&quot;);r=h.get(G.theme);F.theme=new r();if(F.theme.init&amp;&amp;G.init_theme){F.theme.init(F,h.urls[G.theme]||n.documentBaseURL.replace(/\/$/,&quot;&quot;))}}j(g(G.plugins.replace(/\-/g,&quot;&quot;)),function(w){var H=c.get(w),t=c.urls[w]||n.documentBaseURL.replace(/\/$/,&quot;&quot;),s;if(H){s=new H(F,t);F.plugins[w]=s;if(s.init){s.init(F,t)}}});if(G.popup_css!==false){if(G.popup_css){G.popup_css=F.documentBaseURI.toAbsolute(G.popup_css)}else{G.popup_css=F.baseURI.toAbsolute(&quot;themes/&quot;+G.theme+&quot;/skins/&quot;+G.skin+&quot;/dialog.css&quot;)}}if(G.popup_css_add){G.popup_css+=&quot;,&quot;+F.documentBaseURI.toAbsolute(G.popup_css_add)}F.controlManager=new n.ControlManager(F);F.undoManager=new n.UndoManager(F);F.undoManager.onAdd.add(function(t,s){if(!s.initial){return F.onChange.dispatch(F,s,t)}});F.undoManager.onUndo.add(function(t,s){return F.onUndo.dispatch(F,s,t)});F.undoManager.onRedo.add(function(t,s){return F.onRedo.dispatch(F,s,t)});if(G.custom_undo_redo){F.onExecCommand.add(function(t,w,u,H,s){if(w!=&quot;Undo&quot;&amp;&amp;w!=&quot;Redo&quot;&amp;&amp;w!=&quot;mceRepaint&quot;&amp;&amp;(!s||!s.skip_undo)){F.undoManager.add()}})}F.onExecCommand.add(function(s,t){if(!/^(FontName|FontSize)$/.test(t)){F.nodeChanged()}});if(a){function x(s,t){if(!t||!t.initial){F.execCommand(&quot;mceRepaint&quot;)}}F.onUndo.add(x);F.onRedo.add(x);F.onSetContent.add(x)}F.onBeforeRenderUI.dispatch(F,F.controlManager);if(G.render_ui){C=G.width||B.style.width||B.offsetWidth;z=G.height||B.style.height||B.offsetHeight;F.orgDisplay=B.style.display;E=/^[0-9\.]+(|px)$/i;if(E.test(&quot;&quot;+C)){C=Math.max(parseInt(C)+(r.deltaWidth||0),100)}if(E.test(&quot;&quot;+z)){z=Math.max(parseInt(z)+(r.deltaHeight||0),100)}r=F.theme.renderUI({targetNode:B,width:C,height:z,deltaWidth:G.delta_width,deltaHeight:G.delta_height});F.editorContainer=r.editorContainer}if(document.domain&amp;&amp;location.hostname!=document.domain){n.relaxedDomain=document.domain}o.setStyles(r.sizeContainer||r.editorContainer,{width:C,height:z});z=(r.iframeHeight||z)+(typeof(z)==&quot;number&quot;?(r.deltaHeight||0):&quot;&quot;);if(z&lt;100){z=100}F.iframeHTML=G.doctype+'&lt;html&gt;&lt;head xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;';if(G.document_base_url!=n.documentBaseURL){F.iframeHTML+='&lt;base href=&quot;'+F.documentBaseURI.getURI()+'&quot; /&gt;'}F.iframeHTML+='&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;';if(n.relaxedDomain){F.iframeHTML+='&lt;script type=&quot;text/javascript&quot;&gt;document.domain = &quot;'+n.relaxedDomain+'&quot;;&lt;\/script&gt;'}y=G.body_id||&quot;tinymce&quot;;if(y.indexOf(&quot;=&quot;)!=-1){y=F.getParam(&quot;body_id&quot;,&quot;&quot;,&quot;hash&quot;);y=y[F.id]||y}A=G.body_class||&quot;&quot;;if(A.indexOf(&quot;=&quot;)!=-1){A=F.getParam(&quot;body_class&quot;,&quot;&quot;,&quot;hash&quot;);A=A[F.id]||&quot;&quot;}F.iframeHTML+='&lt;/head&gt;&lt;body id=&quot;'+y+'&quot; class=&quot;mceContentBody '+A+'&quot;&gt;&lt;/body&gt;&lt;/html&gt;';if(n.relaxedDomain){if(b||(n.isOpera&amp;&amp;parseFloat(opera.version())&gt;=9.5)){D='javascript:(function(){document.open();document.domain=&quot;'+document.domain+'&quot;;var ed = window.parent.tinyMCE.get(&quot;'+F.id+'&quot;);document.write(ed.iframeHTML);document.close();ed.setupIframe();})()'}else{if(n.isOpera){D='javascript:(function(){document.open();document.domain=&quot;'+document.domain+'&quot;;document.close();ed.setupIframe();})()'}}}v=o.add(r.iframeContainer,&quot;iframe&quot;,{id:F.id+&quot;_ifr&quot;,src:D||'javascript:&quot;&quot;',frameBorder:&quot;0&quot;,style:{width:&quot;100%&quot;,height:z}});F.contentAreaContainer=r.iframeContainer;o.get(r.editorContainer).style.display=F.orgDisplay;o.get(F.id).style.display=&quot;none&quot;;if(!b||!n.relaxedDomain){F.setupIframe()}B=v=r=null},setupIframe:function(){var z=this,A=z.settings,u=o.get(z.id),v=z.getDoc(),r,x;if(!b||!n.relaxedDomain){v.open();v.write(z.iframeHTML);v.close()}if(!b){try{if(!A.readonly){v.designMode=&quot;On&quot;}}catch(w){}}if(b){x=z.getBody();o.hide(x);if(!A.readonly){x.contentEditable=true}o.show(x)}z.dom=new n.dom.DOMUtils(z.getDoc(),{keep_values:true,url_converter:z.convertURL,url_converter_scope:z,hex_colors:A.force_hex_style_colors,class_filter:A.class_filter,update_styles:1,fix_ie_paragraphs:1});z.serializer=new n.dom.Serializer(f(A,{valid_elements:A.verify_html===false?&quot;*[*]&quot;:A.valid_elements,dom:z.dom}));z.selection=new n.dom.Selection(z.dom,z.getWin(),z.serializer);z.forceBlocks=new n.ForceBlocks(z,{forced_root_block:A.forced_root_block});z.editorCommands=new n.EditorCommands(z);z.serializer.onPreProcess.add(function(s,t){return z.onPreProcess.dispatch(z,t,s)});z.serializer.onPostProcess.add(function(s,t){return z.onPostProcess.dispatch(z,t,s)});z.onPreInit.dispatch(z);if(!A.gecko_spellcheck){z.getBody().spellcheck=0}if(!A.readonly){z._addEvents()}z.controlManager.onPostRender.dispatch(z,z.controlManager);z.onPostRender.dispatch(z);if(A.directionality){z.getBody().dir=A.directionality}if(A.nowrap){z.getBody().style.whiteSpace=&quot;nowrap&quot;}if(A.custom_elements){function y(s,t){j(g(A.custom_elements),function(B){var C;if(B.indexOf(&quot;~&quot;)===0){B=B.substring(1);C=&quot;span&quot;}else{C=&quot;div&quot;}t.content=t.content.replace(new RegExp(&quot;&lt;(&quot;+B+&quot;)([^&gt;]*)&gt;&quot;,&quot;g&quot;),&quot;&lt;&quot;+C+' mce_name=&quot;$1&quot;$2&gt;');t.content=t.content.replace(new RegExp(&quot;&lt;/(&quot;+B+&quot;)&gt;&quot;,&quot;g&quot;),&quot;&lt;/&quot;+C+&quot;&gt;&quot;)})}z.onBeforeSetContent.add(y);z.onPostProcess.add(function(s,t){if(t.set){y(s,t)}})}if(A.handle_node_change_callback){z.onNodeChange.add(function(t,s,B){z.execCallback(&quot;handle_node_change_callback&quot;,z.id,B,-1,-1,true,z.selection.isCollapsed())})}if(A.save_callback){z.onSaveContent.add(function(s,B){var t=z.execCallback(&quot;save_callback&quot;,z.id,B.content,z.getBody());if(t){B.content=t}})}if(A.onchange_callback){z.onChange.add(function(t,s){z.execCallback(&quot;onchange_callback&quot;,z,s)})}if(A.convert_newlines_to_brs){z.onBeforeSetContent.add(function(s,t){if(t.initial){t.content=t.content.replace(/\r?\n/g,&quot;&lt;br /&gt;&quot;)}})}if(A.fix_nesting&amp;&amp;b){z.onBeforeSetContent.add(function(s,t){t.content=z._fixNesting(t.content)})}if(A.preformatted){z.onPostProcess.add(function(s,t){t.content=t.content.replace(/^\s*&lt;pre.*?&gt;/,&quot;&quot;);t.content=t.content.replace(/&lt;\/pre&gt;\s*$/,&quot;&quot;);if(t.set){t.content='&lt;pre class=&quot;mceItemHidden&quot;&gt;'+t.content+&quot;&lt;/pre&gt;&quot;}})}if(A.verify_css_classes){z.serializer.attribValueFilter=function(D,B){var C,t;if(D==&quot;class&quot;){if(!z.classesRE){t=z.dom.getClasses();if(t.length&gt;0){C=&quot;&quot;;j(t,function(s){C+=(C?&quot;|&quot;:&quot;&quot;)+s[&quot;class&quot;]});z.classesRE=new RegExp(&quot;(&quot;+C+&quot;)&quot;,&quot;gi&quot;)}}return !z.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(B)||z.classesRE.test(B)?B:&quot;&quot;}return B}}if(A.convert_fonts_to_spans){z._convertFonts()}if(A.inline_styles){z._convertInlineElements()}if(A.cleanup_callback){z.onBeforeSetContent.add(function(s,t){t.content=z.execCallback(&quot;cleanup_callback&quot;,&quot;insert_to_editor&quot;,t.content,t)});z.onPreProcess.add(function(s,t){if(t.set){z.execCallback(&quot;cleanup_callback&quot;,&quot;insert_to_editor_dom&quot;,t.node,t)}if(t.get){z.execCallback(&quot;cleanup_callback&quot;,&quot;get_from_editor_dom&quot;,t.node,t)}});z.onPostProcess.add(function(s,t){if(t.set){t.content=z.execCallback(&quot;cleanup_callback&quot;,&quot;insert_to_editor&quot;,t.content,t)}if(t.get){t.content=z.execCallback(&quot;cleanup_callback&quot;,&quot;get_from_editor&quot;,t.content,t)}})}if(A.save_callback){z.onGetContent.add(function(s,t){if(t.save){t.content=z.execCallback(&quot;save_callback&quot;,z.id,t.content,z.getBody())}})}if(A.handle_event_callback){z.onEvent.add(function(s,t,B){if(z.execCallback(&quot;handle_event_callback&quot;,t,s,B)===false){k.cancel(t)}})}z.onSetContent.add(function(){z.addVisual(z.getBody())});if(A.padd_empty_editor){z.onPostProcess.add(function(s,t){t.content=t.content.replace(/^(&lt;p[^&gt;]*&gt;(&amp;nbsp;|&amp;#160;|\s|\u00a0|)&lt;\/p&gt;[\r\n]*|&lt;br \/&gt;[\r\n]*)$/,&quot;&quot;)})}if(a){function q(s,t){j(s.dom.select(&quot;a&quot;),function(C){var B=C.parentNode;if(s.dom.isBlock(B)&amp;&amp;B.lastChild===C){s.dom.add(B,&quot;br&quot;,{mce_bogus:1})}})}z.onExecCommand.add(function(s,t){if(t===&quot;CreateLink&quot;){q(s)}});z.onSetContent.add(z.selection.onSetContent.add(q));if(!A.readonly){try{v.designMode=&quot;Off&quot;;v.designMode=&quot;On&quot;}catch(w){}}}setTimeout(function(){if(z.removed){return}z.load({initial:true,format:(A.cleanup_on_startup?&quot;html&quot;:&quot;raw&quot;)});z.startContent=z.getContent({format:&quot;raw&quot;});z.undoManager.add({initial:true});z.initialized=true;z.onInit.dispatch(z);z.execCallback(&quot;setupcontent_callback&quot;,z.id,z.getBody(),z.getDoc());z.execCallback(&quot;init_instance_callback&quot;,z);z.focus(true);z.nodeChanged({initial:1});if(A.content_css){n.each(g(A.content_css),function(s){z.dom.loadCSS(z.documentBaseURI.toAbsolute(s))})}if(A.auto_focus){setTimeout(function(){var s=i.get(A.auto_focus);s.selection.select(s.getBody(),1);s.selection.collapse(1);s.getWin().focus()},100)}},1);u=null},focus:function(r){var u,q=this,s=q.settings.content_editable;if(!r){if(!s&amp;&amp;(!b||q.selection.getNode().ownerDocument!=q.getDoc())){q.getWin().focus()}}if(i.activeEditor!=q){if((u=i.activeEditor)!=null){u.onDeactivate.dispatch(u,q)}q.onActivate.dispatch(q,u)}i._setActive(q)},execCallback:function(v){var q=this,u=q.settings[v],r;if(!u){return}if(q.callbackLookup&amp;&amp;(r=q.callbackLookup[v])){u=r.func;r=r.scope}if(d(u,&quot;string&quot;)){r=u.replace(/\.\w+$/,&quot;&quot;);r=r?n.resolve(r):0;u=n.resolve(u);q.callbackLookup=q.callbackLookup||{};q.callbackLookup[v]={func:u,scope:r}}return u.apply(r||q,Array.prototype.slice.call(arguments,1))},translate:function(q){var t=this.settings.language||&quot;en&quot;,r=i.i18n;if(!q){return&quot;&quot;}return r[t+&quot;.&quot;+q]||q.replace(/{\#([^}]+)\}/g,function(u,s){return r[t+&quot;.&quot;+s]||&quot;{#&quot;+s+&quot;}&quot;})},getLang:function(r,q){return i.i18n[(this.settings.language||&quot;en&quot;)+&quot;.&quot;+r]||(d(q)?q:&quot;{#&quot;+r+&quot;}&quot;)},getParam:function(w,s,q){var t=n.trim,r=d(this.settings[w])?this.settings[w]:s,u;if(q===&quot;hash&quot;){u={};if(d(r,&quot;string&quot;)){j(r.indexOf(&quot;=&quot;)&gt;0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(&quot;,&quot;),function(x){x=x.split(&quot;=&quot;);if(x.length&gt;1){u[t(x[0])]=t(x[1])}else{u[t(x[0])]=t(x)}})}else{u=r}return u}return r},nodeChanged:function(u){var q=this,r=q.selection,v=r.getNode()||q.getBody();if(q.initialized){q.onNodeChange.dispatch(q,u?u.controlManager||q.controlManager:q.controlManager,b&amp;&amp;v.ownerDocument!=q.getDoc()?q.getBody():v,r.isCollapsed(),u)}},addButton:function(u,r){var q=this;q.buttons=q.buttons||{};q.buttons[u]=r},addCommand:function(t,r,q){this.execCommands[t]={func:r,scope:q||this}},addQueryStateHandler:function(t,r,q){this.queryStateCommands[t]={func:r,scope:q||this}},addQueryValueHandler:function(t,r,q){this.queryValueCommands[t]={func:r,scope:q||this}},addShortcut:function(s,v,q,u){var r=this,w;if(!r.settings.custom_shortcuts){return false}r.shortcuts=r.shortcuts||{};if(d(q,&quot;string&quot;)){w=q;q=function(){r.execCommand(w,false,null)}}if(d(q,&quot;object&quot;)){w=q;q=function(){r.execCommand(w[0],w[1],w[2])}}j(g(s),function(t){var x={func:q,scope:u||this,desc:v,alt:false,ctrl:false,shift:false};j(g(t,&quot;+&quot;),function(y){switch(y){case&quot;alt&quot;:case&quot;ctrl&quot;:case&quot;shift&quot;:x[y]=true;break;default:x.charCode=y.charCodeAt(0);x.keyCode=y.toUpperCase().charCodeAt(0)}});r.shortcuts[(x.ctrl?&quot;ctrl&quot;:&quot;&quot;)+&quot;,&quot;+(x.alt?&quot;alt&quot;:&quot;&quot;)+&quot;,&quot;+(x.shift?&quot;shift&quot;:&quot;&quot;)+&quot;,&quot;+x.keyCode]=x});return true},execCommand:function(x,w,z,q){var u=this,v=0,y,r;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(x)&amp;&amp;(!q||!q.skip_focus)){u.focus()}y={};u.onBeforeExecCommand.dispatch(u,x,w,z,y);if(y.terminate){return false}if(u.execCallback(&quot;execcommand_callback&quot;,u.id,u.selection.getNode(),x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}if(y=u.execCommands[x]){r=y.func.call(y.scope,w,z);if(r!==true){u.onExecCommand.dispatch(u,x,w,z,q);return r}}j(u.plugins,function(s){if(s.execCommand&amp;&amp;s.execCommand(x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);v=1;return false}});if(v){return true}if(u.theme&amp;&amp;u.theme.execCommand&amp;&amp;u.theme.execCommand(x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}if(n.GlobalCommands.execCommand(u,x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}if(u.editorCommands.execCommand(x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}u.getDoc().execCommand(x,w,z);u.onExecCommand.dispatch(u,x,w,z,q)},queryCommandState:function(w){var r=this,v,u;if(r._isHidden()){return}if(v=r.queryStateCommands[w]){u=v.func.call(v.scope);if(u!==true){return u}}v=r.editorCommands.queryCommandState(w);if(v!==-1){return v}try{return this.getDoc().queryCommandState(w)}catch(q){}},queryCommandValue:function(w){var r=this,v,u;if(r._isHidden()){return}if(v=r.queryValueCommands[w]){u=v.func.call(v.scope);if(u!==true){return u}}v=r.editorCommands.queryCommandValue(w);if(d(v)){return v}try{return this.getDoc().queryCommandValue(w)}catch(q){}},show:function(){var q=this;o.show(q.getContainer());o.hide(q.id);q.load()},hide:function(){var q=this,r=q.getDoc();if(b&amp;&amp;r){r.execCommand(&quot;SelectAll&quot;)}q.save();o.hide(q.getContainer());o.setStyle(q.id,&quot;display&quot;,q.orgDisplay)},isHidden:function(){return !o.isHidden(this.id)},setProgressState:function(q,r,s){this.onSetProgressState.dispatch(this,q,r,s);return q},load:function(u){var q=this,s=q.getElement(),r;if(s){u=u||{};u.load=true;r=q.setContent(d(s.value)?s.value:s.innerHTML,u);u.element=s;if(!u.no_events){q.onLoadContent.dispatch(q,u)}u.element=s=null;return r}},save:function(v){var q=this,u=q.getElement(),r,s;if(!u||!q.initialized){return}v=v||{};v.save=true;if(!v.no_events){q.undoManager.typing=0;q.undoManager.add()}v.element=u;r=v.content=q.getContent(v);if(!v.no_events){q.onSaveContent.dispatch(q,v)}r=v.content;if(!/TEXTAREA|INPUT/i.test(u.nodeName)){u.innerHTML=r;if(s=o.getParent(q.id,&quot;form&quot;)){j(s.elements,function(t){if(t.name==q.id){t.value=r;return false}})}}else{u.value=r}v.element=u=null;return r},setContent:function(r,s){var q=this;s=s||{};s.format=s.format||&quot;html&quot;;s.set=true;s.content=r;if(!s.no_events){q.onBeforeSetContent.dispatch(q,s)}if(!n.isIE&amp;&amp;(r.length===0||/^\s+$/.test(r))){s.content=q.dom.setHTML(q.getBody(),'&lt;br mce_bogus=&quot;1&quot; /&gt;');s.format=&quot;raw&quot;}s.content=q.dom.setHTML(q.getBody(),n.trim(s.content));if(s.format!=&quot;raw&quot;&amp;&amp;q.settings.cleanup){s.getInner=true;s.content=q.dom.setHTML(q.getBody(),q.serializer.serialize(q.getBody(),s))}if(!s.no_events){q.onSetContent.dispatch(q,s)}return s.content},getContent:function(s){var q=this,r;s=s||{};s.format=s.format||&quot;html&quot;;s.get=true;if(!s.no_events){q.onBeforeGetContent.dispatch(q,s)}if(s.format!=&quot;raw&quot;&amp;&amp;q.settings.cleanup){s.getInner=true;r=q.serializer.serialize(q.getBody(),s)}else{r=q.getBody().innerHTML}r=r.replace(/^\s*|\s*$/g,&quot;&quot;);s.content=r;if(!s.no_events){q.onGetContent.dispatch(q,s)}return s.content},isDirty:function(){var q=this;return n.trim(q.startContent)!=n.trim(q.getContent({format:&quot;raw&quot;,no_events:1}))&amp;&amp;!q.isNotDirty},getContainer:function(){var q=this;if(!q.container){q.container=o.get(q.editorContainer||q.id+&quot;_parent&quot;)}return q.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return o.get(this.settings.content_element||this.id)},getWin:function(){var q=this,r;if(!q.contentWindow){r=o.get(q.id+&quot;_ifr&quot;);if(r){q.contentWindow=r.contentWindow}}return q.contentWindow},getDoc:function(){var r=this,q;if(!r.contentDocument){q=r.getWin();if(q){r.contentDocument=q.document}}return r.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(q,x,w){var r=this,v=r.settings;if(v.urlconverter_callback){return r.execCallback(&quot;urlconverter_callback&quot;,q,w,true,x)}if(!v.convert_urls||(w&amp;&amp;w.nodeName==&quot;LINK&quot;)||q.indexOf(&quot;file:&quot;)===0){return q}if(v.relative_urls){return r.documentBaseURI.toRelative(q)}q=r.documentBaseURI.toAbsolute(q,v.remove_script_host);return q},addVisual:function(u){var q=this,r=q.settings;u=u||q.getBody();if(!d(q.hasVisual)){q.hasVisual=r.visual}j(q.dom.select(&quot;table,a&quot;,u),function(t){var s;switch(t.nodeName){case&quot;TABLE&quot;:s=q.dom.getAttrib(t,&quot;border&quot;);if(!s||s==&quot;0&quot;){if(q.hasVisual){q.dom.addClass(t,r.visual_table_class)}else{q.dom.removeClass(t,r.visual_table_class)}}return;case&quot;A&quot;:s=q.dom.getAttrib(t,&quot;name&quot;);if(s){if(q.hasVisual){q.dom.addClass(t,&quot;mceItemAnchor&quot;)}else{q.dom.removeClass(t,&quot;mceItemAnchor&quot;)}}return}});q.onVisualAid.dispatch(q,u,q.hasVisual)},remove:function(){var q=this,r=q.getContainer();q.removed=1;q.hide();q.execCallback(&quot;remove_instance_callback&quot;,q);q.onRemove.dispatch(q);q.onExecCommand.listeners=[];i.remove(q);o.remove(r)},destroy:function(r){var q=this;if(q.destroyed){return}if(!r){n.removeUnload(q.destroy);tinyMCE.onBeforeUnload.remove(q._beforeUnload);if(q.theme&amp;&amp;q.theme.destroy){q.theme.destroy()}q.controlManager.destroy();q.selection.destroy();q.dom.destroy();if(!q.settings.content_editable){k.clear(q.getWin());k.clear(q.getDoc())}k.clear(q.getBody());k.clear(q.formElement)}if(q.formElement){q.formElement.submit=q.formElement._mceOldSubmit;q.formElement._mceOldSubmit=null}q.contentAreaContainer=q.formElement=q.container=q.settings.content_element=q.bodyElement=q.contentDocument=q.contentWindow=null;if(q.selection){q.selection=q.selection.win=q.selection.dom=q.selection.dom.doc=null}q.destroyed=1},_addEvents:function(){var w=this,v,y=w.settings,x={mouseup:&quot;onMouseUp&quot;,mousedown:&quot;onMouseDown&quot;,click:&quot;onClick&quot;,keyup:&quot;onKeyUp&quot;,keydown:&quot;onKeyDown&quot;,keypress:&quot;onKeyPress&quot;,submit:&quot;onSubmit&quot;,reset:&quot;onReset&quot;,contextmenu:&quot;onContextMenu&quot;,dblclick:&quot;onDblClick&quot;,paste:&quot;onPaste&quot;};function u(t,A){var s=t.type;if(w.removed){return}if(w.onEvent.dispatch(w,t,A)!==false){w[x[t.fakeType||t.type]].dispatch(w,t,A)}}j(x,function(t,s){switch(s){case&quot;contextmenu&quot;:if(n.isOpera){w.dom.bind(w.getBody(),&quot;mousedown&quot;,function(A){if(A.ctrlKey){A.fakeType=&quot;contextmenu&quot;;u(A)}})}else{w.dom.bind(w.getBody(),s,u)}break;case&quot;paste&quot;:w.dom.bind(w.getBody(),s,function(A){u(A)});break;case&quot;submit&quot;:case&quot;reset&quot;:w.dom.bind(w.getElement().form||o.getParent(w.id,&quot;form&quot;),s,u);break;default:w.dom.bind(y.content_editable?w.getBody():w.getDoc(),s,u)}});w.dom.bind(y.content_editable?w.getBody():(a?w.getDoc():w.getWin()),&quot;focus&quot;,function(s){w.focus(true)});if(n.isGecko){w.dom.bind(w.getDoc(),&quot;DOMNodeInserted&quot;,function(t){var s;t=t.target;if(t.nodeType===1&amp;&amp;t.nodeName===&quot;IMG&quot;&amp;&amp;(s=t.getAttribute(&quot;mce_src&quot;))){t.src=w.documentBaseURI.toAbsolute(s)}})}if(a){function q(){var B=this,D=B.getDoc(),C=B.settings;if(a&amp;&amp;!C.readonly){if(B._isHidden()){try{if(!C.content_editable){D.designMode=&quot;On&quot;}}catch(A){}}try{D.execCommand(&quot;styleWithCSS&quot;,0,false)}catch(A){if(!B._isHidden()){try{D.execCommand(&quot;useCSS&quot;,0,true)}catch(A){}}}if(!C.table_inline_editing){try{D.execCommand(&quot;enableInlineTableEditing&quot;,false,false)}catch(A){}}if(!C.object_resizing){try{D.execCommand(&quot;enableObjectResizing&quot;,false,false)}catch(A){}}}}w.onBeforeExecCommand.add(q);w.onMouseDown.add(q)}w.onMouseUp.add(w.nodeChanged);w.onClick.add(w.nodeChanged);w.onKeyUp.add(function(s,t){var A=t.keyCode;if((A&gt;=33&amp;&amp;A&lt;=36)||(A&gt;=37&amp;&amp;A&lt;=40)||A==13||A==45||A==46||A==8||(n.isMac&amp;&amp;(A==91||A==93))||t.ctrlKey){w.nodeChanged()}});w.onReset.add(function(){w.setContent(w.startContent,{format:&quot;raw&quot;})});if(y.custom_shortcuts){if(y.custom_undo_redo_keyboard_shortcuts){w.addShortcut(&quot;ctrl+z&quot;,w.getLang(&quot;undo_desc&quot;),&quot;Undo&quot;);w.addShortcut(&quot;ctrl+y&quot;,w.getLang(&quot;redo_desc&quot;),&quot;Redo&quot;)}if(a){w.addShortcut(&quot;ctrl+b&quot;,w.getLang(&quot;bold_desc&quot;),&quot;Bold&quot;);w.addShortcut(&quot;ctrl+i&quot;,w.getLang(&quot;italic_desc&quot;),&quot;Italic&quot;);w.addShortcut(&quot;ctrl+u&quot;,w.getLang(&quot;underline_desc&quot;),&quot;Underline&quot;)}for(v=1;v&lt;=6;v++){w.addShortcut(&quot;ctrl+&quot;+v,&quot;&quot;,[&quot;FormatBlock&quot;,false,&quot;&lt;h&quot;+v+&quot;&gt;&quot;])}w.addShortcut(&quot;ctrl+7&quot;,&quot;&quot;,[&quot;FormatBlock&quot;,false,&quot;&lt;p&gt;&quot;]);w.addShortcut(&quot;ctrl+8&quot;,&quot;&quot;,[&quot;FormatBlock&quot;,false,&quot;&lt;div&gt;&quot;]);w.addShortcut(&quot;ctrl+9&quot;,&quot;&quot;,[&quot;FormatBlock&quot;,false,&quot;&lt;address&gt;&quot;]);function z(t){var s=null;if(!t.altKey&amp;&amp;!t.ctrlKey&amp;&amp;!t.metaKey){return s}j(w.shortcuts,function(A){if(n.isMac&amp;&amp;A.ctrl!=t.metaKey){return}else{if(!n.isMac&amp;&amp;A.ctrl!=t.ctrlKey){return}}if(A.alt!=t.altKey){return}if(A.shift!=t.shiftKey){return}if(t.keyCode==A.keyCode||(t.charCode&amp;&amp;t.charCode==A.charCode)){s=A;return false}});return s}w.onKeyUp.add(function(s,t){var A=z(t);if(A){return k.cancel(t)}});w.onKeyPress.add(function(s,t){var A=z(t);if(A){return k.cancel(t)}});w.onKeyDown.add(function(s,t){var A=z(t);if(A){A.func.call(A.scope);return k.cancel(t)}})}if(n.isIE){w.dom.bind(w.getDoc(),&quot;controlselect&quot;,function(A){var t=w.resizeInfo,s;A=A.target;if(A.nodeName!==&quot;IMG&quot;){return}if(t){w.dom.unbind(t.node,t.ev,t.cb)}if(!w.dom.hasClass(A,&quot;mceItemNoResize&quot;)){ev=&quot;resizeend&quot;;s=w.dom.bind(A,ev,function(C){var B;C=C.target;if(B=w.dom.getStyle(C,&quot;width&quot;)){w.dom.setAttrib(C,&quot;width&quot;,B.replace(/[^0-9%]+/g,&quot;&quot;));w.dom.setStyle(C,&quot;width&quot;,&quot;&quot;)}if(B=w.dom.getStyle(C,&quot;height&quot;)){w.dom.setAttrib(C,&quot;height&quot;,B.replace(/[^0-9%]+/g,&quot;&quot;));w.dom.setStyle(C,&quot;height&quot;,&quot;&quot;)}})}else{ev=&quot;resizestart&quot;;s=w.dom.bind(A,&quot;resizestart&quot;,k.cancel,k)}t=w.resizeInfo={node:A,ev:ev,cb:s}});w.onKeyDown.add(function(s,t){switch(t.keyCode){case 8:if(w.selection.getRng().item){w.selection.getRng().item(0).removeNode();return k.cancel(t)}}})}if(n.isOpera){w.onClick.add(function(s,t){k.prevent(t)})}if(y.custom_undo_redo){function r(){w.undoManager.typing=0;w.undoManager.add()}if(n.isIE){w.dom.bind(w.getWin(),&quot;blur&quot;,function(s){var t;if(w.selection){t=w.selection.getNode();if(!w.removed&amp;&amp;t.ownerDocument&amp;&amp;t.ownerDocument!=w.getDoc()){r()}}})}else{w.dom.bind(w.getDoc(),&quot;blur&quot;,function(){if(w.selection&amp;&amp;!w.removed){r()}})}w.onMouseDown.add(r);w.onKeyUp.add(function(s,t){if((t.keyCode&gt;=33&amp;&amp;t.keyCode&lt;=36)||(t.keyCode&gt;=37&amp;&amp;t.keyCode&lt;=40)||t.keyCode==13||t.keyCode==45||t.ctrlKey){w.undoManager.typing=0;w.undoManager.add()}});w.onKeyDown.add(function(s,t){if((t.keyCode&gt;=33&amp;&amp;t.keyCode&lt;=36)||(t.keyCode&gt;=37&amp;&amp;t.keyCode&lt;=40)||t.keyCode==13||t.keyCode==45){if(w.undoManager.typing){w.undoManager.add();w.undoManager.typing=0}return}if(!w.undoManager.typing){w.undoManager.add();w.undoManager.typing=1}})}},_convertInlineElements:function(){var z=this,B=z.settings,r=z.dom,y,w,u,A,q;function x(s,t){if(!B.inline_styles){return}if(t.get){j(z.dom.select(&quot;table,u,strike&quot;,t.node),function(v){switch(v.nodeName){case&quot;TABLE&quot;:if(y=r.getAttrib(v,&quot;height&quot;)){r.setStyle(v,&quot;height&quot;,y);r.setAttrib(v,&quot;height&quot;,&quot;&quot;)}break;case&quot;U&quot;:case&quot;STRIKE&quot;:v.style.textDecoration=v.nodeName==&quot;U&quot;?&quot;underline&quot;:&quot;line-through&quot;;r.setAttrib(v,&quot;mce_style&quot;,&quot;&quot;);r.setAttrib(v,&quot;mce_name&quot;,&quot;span&quot;);break}})}else{if(t.set){j(z.dom.select(&quot;table,span&quot;,t.node).reverse(),function(v){if(v.nodeName==&quot;TABLE&quot;){if(y=r.getStyle(v,&quot;height&quot;)){r.setAttrib(v,&quot;height&quot;,y.replace(/[^0-9%]+/g,&quot;&quot;))}}else{if(v.style.textDecoration==&quot;underline&quot;){u=&quot;u&quot;}else{if(v.style.textDecoration==&quot;line-through&quot;){u=&quot;strike&quot;}else{u=&quot;&quot;}}if(u){v.style.textDecoration=&quot;&quot;;r.setAttrib(v,&quot;mce_style&quot;,&quot;&quot;);w=r.create(u,{style:r.getAttrib(v,&quot;style&quot;)});r.replace(w,v,1)}}})}}}z.onPreProcess.add(x);if(!B.cleanup_on_startup){z.onSetContent.add(function(s,t){if(t.initial){x(z,{node:z.getBody(),set:1})}})}},_convertFonts:function(){var w=this,x=w.settings,z=w.dom,v,r,q,u;if(!x.inline_styles){return}v=[8,10,12,14,18,24,36];r=[&quot;xx-small&quot;,&quot;x-small&quot;,&quot;small&quot;,&quot;medium&quot;,&quot;large&quot;,&quot;x-large&quot;,&quot;xx-large&quot;];if(q=x.font_size_style_values){q=g(q)}if(u=x.font_size_classes){u=g(u)}function y(B){var C,A,t,s;if(!x.inline_styles){return}t=w.dom.select(&quot;font&quot;,B);for(s=t.length-1;s&gt;=0;s--){C=t[s];A=z.create(&quot;span&quot;,{style:z.getAttrib(C,&quot;style&quot;),&quot;class&quot;:z.getAttrib(C,&quot;class&quot;)});z.setStyles(A,{fontFamily:z.getAttrib(C,&quot;face&quot;),color:z.getAttrib(C,&quot;color&quot;),backgroundColor:C.style.backgroundColor});if(C.size){if(q){z.setStyle(A,&quot;fontSize&quot;,q[parseInt(C.size)-1])}else{z.setAttrib(A,&quot;class&quot;,u[parseInt(C.size)-1])}}z.setAttrib(A,&quot;mce_style&quot;,&quot;&quot;);z.replace(A,C,1)}}w.onPreProcess.add(function(s,t){if(t.get){y(t.node)}});w.onSetContent.add(function(s,t){if(t.initial){y(t.node)}})},_isHidden:function(){var q;if(!a){return 0}q=this.selection.getSel();return(!q||!q.rangeCount||q.rangeCount==0)},_fixNesting:function(r){var t=[],q;r=r.replace(/&lt;(\/)?([^\s&gt;]+)[^&gt;]*?&gt;/g,function(u,s,w){var v;if(s===&quot;/&quot;){if(!t.length){return&quot;&quot;}if(w!==t[t.length-1].tag){for(q=t.length-1;q&gt;=0;q--){if(t[q].tag===w){t[q].close=1;break}}return&quot;&quot;}else{t.pop();if(t.length&amp;&amp;t[t.length-1].close){u=u+&quot;&lt;/&quot;+t[t.length-1].tag+&quot;&gt;&quot;;t.pop()}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(w)){return u}if(/\/&gt;$/.test(u)){return u}t.push({tag:w})}return u});for(q=t.length-1;q&gt;=0;q--){r+=&quot;&lt;/&quot;+t[q].tag+&quot;&gt;&quot;}return r}})})(tinymce);(function(d){var f=d.each,c=d.isIE,a=d.isGecko,b=d.isOpera,e=d.isWebKit;d.create(&quot;tinymce.EditorCommands&quot;,{EditorCommands:function(g){this.editor=g},execCommand:function(k,j,l){var h=this,g=h.editor,i;switch(k){case&quot;mceResetDesignMode&quot;:case&quot;mceBeginUndoLevel&quot;:return true;case&quot;unlink&quot;:h.UnLink();return true;case&quot;JustifyLeft&quot;:case&quot;JustifyCenter&quot;:case&quot;JustifyRight&quot;:case&quot;JustifyFull&quot;:h.mceJustify(k,k.substring(7).toLowerCase());return true;default:i=this[k];if(i){i.call(this,j,l);return true}}return false},Indent:function(){var g=this.editor,l=g.dom,j=g.selection,k,h,i;h=g.settings.indentation;i=/[a-z%]+$/i.exec(h);h=parseInt(h);if(g.settings.inline_styles&amp;&amp;(!this.queryStateInsertUnorderedList()&amp;&amp;!this.queryStateInsertOrderedList())){f(j.getSelectedBlocks(),function(m){l.setStyle(m,&quot;paddingLeft&quot;,(parseInt(m.style.paddingLeft||0)+h)+i)});return}g.getDoc().execCommand(&quot;Indent&quot;,false,null);if(c){l.getParent(j.getNode(),function(m){if(m.nodeName==&quot;BLOCKQUOTE&quot;){m.dir=m.style.cssText=&quot;&quot;}})}},Outdent:function(){var h=this.editor,m=h.dom,k=h.selection,l,g,i,j;i=h.settings.indentation;j=/[a-z%]+$/i.exec(i);i=parseInt(i);if(h.settings.inline_styles&amp;&amp;(!this.queryStateInsertUnorderedList()&amp;&amp;!this.queryStateInsertOrderedList())){f(k.getSelectedBlocks(),function(n){g=Math.max(0,parseInt(n.style.paddingLeft||0)-i);m.setStyle(n,&quot;paddingLeft&quot;,g?g+j:&quot;&quot;)});return}h.getDoc().execCommand(&quot;Outdent&quot;,false,null)},mceSetContent:function(h,g){this.editor.setContent(g)},mceToggleVisualAid:function(){var g=this.editor;g.hasVisual=!g.hasVisual;g.addVisual()},mceReplaceContent:function(h,g){var i=this.editor.selection;i.setContent(g.replace(/\{\$selection\}/g,i.getContent({format:&quot;text&quot;})))},mceInsertLink:function(i,h){var g=this.editor,j=g.selection,k=g.dom.getParent(j.getNode(),&quot;a&quot;);if(d.is(h,&quot;string&quot;)){h={href:h}}function l(m){f(h,function(o,n){g.dom.setAttrib(m,n,o)})}if(!k){g.execCommand(&quot;CreateLink&quot;,false,&quot;javascript:mctmp(0);&quot;);f(g.dom.select(&quot;a[href=javascript:mctmp(0);]&quot;),function(m){l(m)})}else{if(h.href){l(k)}else{g.dom.remove(k,1)}}},UnLink:function(){var g=this.editor,h=g.selection;if(h.isCollapsed()){h.select(h.getNode())}g.getDoc().execCommand(&quot;unlink&quot;,false,null);h.collapse(0)},FontName:function(i,h){var j=this,g=j.editor,k=g.selection,l;if(!h){if(k.isCollapsed()){k.select(k.getNode())}}else{if(g.settings.convert_fonts_to_spans){j._applyInlineStyle(&quot;span&quot;,{style:{fontFamily:h}})}else{g.getDoc().execCommand(&quot;FontName&quot;,false,h)}}},FontSize:function(j,i){var h=this.editor,l=h.settings,k,g;if(l.convert_fonts_to_spans&amp;&amp;i&gt;=1&amp;&amp;i&lt;=7){g=d.explode(l.font_size_style_values);k=d.explode(l.font_size_classes);if(k){i=k[i-1]||i}else{i=g[i-1]||i}}if(i&gt;=1&amp;&amp;i&lt;=7){h.getDoc().execCommand(&quot;FontSize&quot;,false,i)}else{this._applyInlineStyle(&quot;span&quot;,{style:{fontSize:i}})}},queryCommandValue:function(h){var g=this[&quot;queryValue&quot;+h];if(g){return g.call(this,h)}return false},queryCommandState:function(h){var g;switch(h){case&quot;JustifyLeft&quot;:case&quot;JustifyCenter&quot;:case&quot;JustifyRight&quot;:case&quot;JustifyFull&quot;:return this.queryStateJustify(h,h.substring(7).toLowerCase());default:if(g=this[&quot;queryState&quot;+h]){return g.call(this,h)}}return -1},_queryState:function(h){try{return this.editor.getDoc().queryCommandState(h)}catch(g){}},_queryVal:function(h){try{return this.editor.getDoc().queryCommandValue(h)}catch(g){}},queryValueFontSize:function(){var h=this.editor,g=0,i;if(i=h.dom.getParent(h.selection.getNode(),&quot;span&quot;)){g=i.style.fontSize}if(!g&amp;&amp;(b||e)){if(i=h.dom.getParent(h.selection.getNode(),&quot;font&quot;)){g=i.size}return g}return g||this._queryVal(&quot;FontSize&quot;)},queryValueFontName:function(){var h=this.editor,g=0,i;if(i=h.dom.getParent(h.selection.getNode(),&quot;font&quot;)){g=i.face}if(i=h.dom.getParent(h.selection.getNode(),&quot;span&quot;)){g=i.style.fontFamily.replace(/, /g,&quot;,&quot;).replace(/[\'\&quot;]/g,&quot;&quot;).toLowerCase()}if(!g){g=this._queryVal(&quot;FontName&quot;)}return g},mceJustify:function(o,p){var k=this.editor,m=k.selection,g=m.getNode(),q=g.nodeName,h,j,i=k.dom,l;if(k.settings.inline_styles&amp;&amp;this.queryStateJustify(o,p)){l=1}h=i.getParent(g,k.dom.isBlock);if(q==&quot;IMG&quot;){if(p==&quot;full&quot;){return}if(l){if(p==&quot;center&quot;){i.setStyle(h||g.parentNode,&quot;textAlign&quot;,&quot;&quot;)}i.setStyle(g,&quot;float&quot;,&quot;&quot;);this.mceRepaint();return}if(p==&quot;center&quot;){if(h&amp;&amp;/^(TD|TH)$/.test(h.nodeName)){h=0}if(!h||h.childNodes.length&gt;1){j=i.create(&quot;p&quot;);j.appendChild(g.cloneNode(false));if(h){i.insertAfter(j,h)}else{i.insertAfter(j,g)}i.remove(g);g=j.firstChild;h=j}i.setStyle(h,&quot;textAlign&quot;,p);i.setStyle(g,&quot;float&quot;,&quot;&quot;)}else{i.setStyle(g,&quot;float&quot;,p);i.setStyle(h||g.parentNode,&quot;textAlign&quot;,&quot;&quot;)}this.mceRepaint();return}if(k.settings.inline_styles&amp;&amp;k.settings.forced_root_block){if(l){p=&quot;&quot;}f(m.getSelectedBlocks(i.getParent(m.getStart(),i.isBlock),i.getParent(m.getEnd(),i.isBlock)),function(n){i.setAttrib(n,&quot;align&quot;,&quot;&quot;);i.setStyle(n,&quot;textAlign&quot;,p==&quot;full&quot;?&quot;justify&quot;:p)});return}else{if(!l){k.getDoc().execCommand(o,false,null)}}if(k.settings.inline_styles){if(l){i.getParent(k.selection.getNode(),function(r){if(r.style&amp;&amp;r.style.textAlign){i.setStyle(r,&quot;textAlign&quot;,&quot;&quot;)}});return}f(i.select(&quot;*&quot;),function(s){var r=s.align;if(r){if(r==&quot;full&quot;){r=&quot;justify&quot;}i.setStyle(s,&quot;textAlign&quot;,r);i.setAttrib(s,&quot;align&quot;,&quot;&quot;)}})}},mceSetCSSClass:function(h,g){this.mceSetStyleInfo(0,{command:&quot;setattrib&quot;,name:&quot;class&quot;,value:g})},getSelectedElement:function(){var w=this,o=w.editor,n=o.dom,s=o.selection,h=s.getRng(),l,k,u,p,j,g,q,i,x,v;if(s.isCollapsed()||h.item){return s.getNode()}v=o.settings.merge_styles_invalid_parents;if(d.is(v,&quot;string&quot;)){v=new RegExp(v,&quot;i&quot;)}if(c){l=h.duplicate();l.collapse(true);u=l.parentElement();k=h.duplicate();k.collapse(false);p=k.parentElement();if(u!=p){l.move(&quot;character&quot;,1);u=l.parentElement()}if(u==p){l=h.duplicate();l.moveToElementText(u);if(l.compareEndPoints(&quot;StartToStart&quot;,h)==0&amp;&amp;l.compareEndPoints(&quot;EndToEnd&quot;,h)==0){return v&amp;&amp;v.test(u.nodeName)?null:u}}}else{function m(r){return n.getParent(r,&quot;*&quot;)}u=h.startContainer;p=h.endContainer;j=h.startOffset;g=h.endOffset;if(!h.collapsed){if(u==p){if(j-g&lt;2){if(u.hasChildNodes()){i=u.childNodes[j];return v&amp;&amp;v.test(i.nodeName)?null:i}}}}if(u.nodeType!=3||p.nodeType!=3){return null}if(j==0){i=m(u);if(i&amp;&amp;i.firstChild!=u){i=null}}if(j==u.nodeValue.length){q=u.nextSibling;if(q&amp;&amp;q.nodeType==1){i=u.nextSibling}}if(g==0){q=p.previousSibling;if(q&amp;&amp;q.nodeType==1){x=q}}if(g==p.nodeValue.length){x=m(p);if(x&amp;&amp;x.lastChild!=p){x=null}}if(i==x){return v&amp;&amp;i&amp;&amp;v.test(i.nodeName)?null:i}}return null},mceSetStyleInfo:function(n,m){var q=this,h=q.editor,j=h.getDoc(),g=h.dom,i,k,r=h.selection,p=m.wrapper||&quot;span&quot;,k=r.getBookmark(),o;function l(t,s){if(t.nodeType==1){switch(m.command){case&quot;setattrib&quot;:return g.setAttrib(t,m.name,m.value);case&quot;setstyle&quot;:return g.setStyle(t,m.name,m.value);case&quot;removeformat&quot;:return g.setAttrib(t,&quot;class&quot;,&quot;&quot;)}}}o=h.settings.merge_styles_invalid_parents;if(d.is(o,&quot;string&quot;)){o=new RegExp(o,&quot;i&quot;)}if((i=q.getSelectedElement())&amp;&amp;!h.settings.force_span_wrappers){l(i,1)}else{j.execCommand(&quot;FontName&quot;,false,&quot;__&quot;);f(g.select(&quot;span,font&quot;),function(u){var s,t;if(g.getAttrib(u,&quot;face&quot;)==&quot;__&quot;||u.style.fontFamily===&quot;__&quot;){s=g.create(p,{mce_new:&quot;1&quot;});l(s);f(u.childNodes,function(v){s.appendChild(v.cloneNode(true))});g.replace(s,u)}})}f(g.select(p).reverse(),function(t){var s=t.parentNode;if(!g.getAttrib(t,&quot;mce_new&quot;)){s=g.getParent(t,&quot;*[mce_new]&quot;);if(s){g.remove(t,1)}}});f(g.select(p).reverse(),function(t){var s=t.parentNode;if(!s||!g.getAttrib(t,&quot;mce_new&quot;)){return}if(h.settings.force_span_wrappers&amp;&amp;s.nodeName!=&quot;SPAN&quot;){return}if(s.nodeName==p.toUpperCase()&amp;&amp;s.childNodes.length==1){return g.remove(s,1)}if(t.nodeType==1&amp;&amp;(!o||!o.test(s.nodeName))&amp;&amp;s.childNodes.length==1){l(s);g.setAttrib(t,&quot;class&quot;,&quot;&quot;)}});f(g.select(p).reverse(),function(s){if(g.getAttrib(s,&quot;mce_new&quot;)||(g.getAttribs(s).length&lt;=1&amp;&amp;s.className===&quot;&quot;)){if(!g.getAttrib(s,&quot;class&quot;)&amp;&amp;!g.getAttrib(s,&quot;style&quot;)){return g.remove(s,1)}g.setAttrib(s,&quot;mce_new&quot;,&quot;&quot;)}});r.moveToBookmark(k)},queryStateJustify:function(k,h){var g=this.editor,j=g.selection.getNode(),i=g.dom;if(j&amp;&amp;j.nodeName==&quot;IMG&quot;){if(i.getStyle(j,&quot;float&quot;)==h){return 1}return j.parentNode.style.textAlign==h}j=i.getParent(g.selection.getStart(),function(l){return l.nodeType==1&amp;&amp;l.style.textAlign});if(h==&quot;full&quot;){h=&quot;justify&quot;}if(g.settings.inline_styles){return(j&amp;&amp;j.style.textAlign==h)}return this._queryState(k)},ForeColor:function(i,h){var g=this.editor;if(g.settings.convert_fonts_to_spans){this._applyInlineStyle(&quot;span&quot;,{style:{color:h}});return}else{g.getDoc().execCommand(&quot;ForeColor&quot;,false,h)}},HiliteColor:function(i,k){var h=this,g=h.editor,j=g.getDoc();if(g.settings.convert_fonts_to_spans){this._applyInlineStyle(&quot;span&quot;,{style:{backgroundColor:k}});return}function l(n){if(!a){return}try{j.execCommand(&quot;styleWithCSS&quot;,0,n)}catch(m){j.execCommand(&quot;useCSS&quot;,0,!n)}}if(a||b){l(true);j.execCommand(&quot;hilitecolor&quot;,false,k);l(false)}else{j.execCommand(&quot;BackColor&quot;,false,k)}},FormatBlock:function(n,h){var o=this,l=o.editor,p=l.selection,j=l.dom,g,k,m;function i(q){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(q.nodeName)}g=j.getParent(p.getNode(),function(q){return i(q)});if(g){if((c&amp;&amp;i(g.parentNode))||g.nodeName==&quot;DIV&quot;){k=l.dom.create(h);f(j.getAttribs(g),function(q){j.setAttrib(k,q.nodeName,j.getAttrib(g,q.nodeName))});m=p.getBookmark();j.replace(k,g,1);p.moveToBookmark(m);l.nodeChanged();return}}h=l.settings.forced_root_block?(h||&quot;&lt;p&gt;&quot;):h;if(h.indexOf(&quot;&lt;&quot;)==-1){h=&quot;&lt;&quot;+h+&quot;&gt;&quot;}if(d.isGecko){h=h.replace(/&lt;(div|blockquote|code|dt|dd|dl|samp)&gt;/gi,&quot;$1&quot;)}l.getDoc().execCommand(&quot;FormatBlock&quot;,false,h)},mceCleanup:function(){var h=this.editor,i=h.selection,g=i.getBookmark();h.setContent(h.getContent());i.moveToBookmark(g)},mceRemoveNode:function(j,k){var h=this.editor,i=h.selection,g,l=k||i.getNode();if(l==h.getBody()){return}g=i.getBookmark();h.dom.remove(l,1);i.moveToBookmark(g);h.nodeChanged()},mceSelectNodeDepth:function(i,j){var g=this.editor,h=g.selection,k=0;g.dom.getParent(h.getNode(),function(l){if(l.nodeType==1&amp;&amp;k++==j){h.select(l);g.nodeChanged();return false}},g.getBody())},mceSelectNode:function(h,g){this.editor.selection.select(g)},mceInsertContent:function(g,h){this.editor.selection.setContent(h)},mceInsertRawHTML:function(h,i){var g=this.editor;g.selection.setContent(&quot;tiny_mce_marker&quot;);g.setContent(g.getContent().replace(/tiny_mce_marker/g,i))},mceRepaint:function(){var i,g,j=this.editor;if(d.isGecko){try{i=j.selection;g=i.getBookmark(true);if(i.getSel()){i.getSel().selectAllChildren(j.getBody())}i.collapse(true);i.moveToBookmark(g)}catch(h){}}},queryStateUnderline:function(){var g=this.editor,h=g.selection.getNode();if(h&amp;&amp;h.nodeName==&quot;A&quot;){return false}return this._queryState(&quot;Underline&quot;)},queryStateOutdent:function(){var g=this.editor,h;if(g.settings.inline_styles){if((h=g.dom.getParent(g.selection.getStart(),g.dom.isBlock))&amp;&amp;parseInt(h.style.paddingLeft)&gt;0){return true}if((h=g.dom.getParent(g.selection.getEnd(),g.dom.isBlock))&amp;&amp;parseInt(h.style.paddingLeft)&gt;0){return true}}return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList()||(!g.settings.inline_styles&amp;&amp;!!g.dom.getParent(g.selection.getNode(),&quot;BLOCKQUOTE&quot;))},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),&quot;UL&quot;)},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),&quot;OL&quot;)},queryStatemceBlockQuote:function(){return !!this.editor.dom.getParent(this.editor.selection.getStart(),function(g){return g.nodeName===&quot;BLOCKQUOTE&quot;})},_applyInlineStyle:function(o,j,m){var q=this,n=q.editor,l=n.dom,i,p={},k,r;o=o.toUpperCase();if(m&amp;&amp;m.check_classes&amp;&amp;j[&quot;class&quot;]){m.check_classes.push(j[&quot;class&quot;])}function h(){f(l.select(o).reverse(),function(t){var s=0;f(l.getAttribs(t),function(u){if(u.nodeName.substring(0,1)!=&quot;_&quot;&amp;&amp;l.getAttrib(t,u.nodeName)!=&quot;&quot;){s++}});if(s==0){l.remove(t,1)}})}function g(){var s;f(l.select(&quot;span,font&quot;),function(t){if(t.style.fontFamily==&quot;mceinline&quot;||t.face==&quot;mceinline&quot;){if(!s){s=n.selection.getBookmark()}j._mce_new=&quot;1&quot;;l.replace(l.create(o,j),t,1)}});f(l.select(o+&quot;[_mce_new]&quot;),function(u){function t(v){if(v.nodeType==1){f(j.style,function(x,w){l.setStyle(v,w,&quot;&quot;)});if(j[&quot;class&quot;]&amp;&amp;v.className&amp;&amp;m){f(m.check_classes,function(w){if(l.hasClass(v,w)){l.removeClass(v,w)}})}}}f(l.select(o,u),t);if(u.parentNode&amp;&amp;u.parentNode.nodeType==1&amp;&amp;u.parentNode.childNodes.length==1){t(u.parentNode)}l.getParent(u.parentNode,function(v){if(v.nodeType==1){if(j.style){f(j.style,function(y,x){var w;if(!p[x]&amp;&amp;(w=l.getStyle(v,x))){if(w===y){l.setStyle(u,x,&quot;&quot;)}p[x]=1}})}if(j[&quot;class&quot;]&amp;&amp;v.className&amp;&amp;m){f(m.check_classes,function(w){if(l.hasClass(v,w)){l.removeClass(u,w)}})}}return false});u.removeAttribute(&quot;_mce_new&quot;)});h();n.selection.moveToBookmark(s);return !!s}n.focus();n.getDoc().execCommand(&quot;FontName&quot;,false,&quot;mceinline&quot;);g();if(k=q._applyInlineStyle.keyhandler){n.onKeyUp.remove(k);n.onKeyPress.remove(k);n.onKeyDown.remove(k);n.onSetContent.remove(q._applyInlineStyle.chandler)}if(n.selection.isCollapsed()){if(!c){f(l.getParents(n.selection.getNode(),&quot;span&quot;),function(s){f(j.style,function(u,t){var w;if(w=l.getStyle(s,t)){if(w==u){l.setStyle(s,t,&quot;&quot;);r=2;return false}r=1;return false}});if(r){return false}});if(r==2){i=n.selection.getBookmark();h();n.selection.moveToBookmark(i);window.setTimeout(function(){n.nodeChanged()},1);return}}q._pendingStyles=d.extend(q._pendingStyles||{},j.style);q._applyInlineStyle.chandler=n.onSetContent.add(function(){delete q._pendingStyles});q._applyInlineStyle.keyhandler=k=function(s){if(q._pendingStyles){j.style=q._pendingStyles;delete q._pendingStyles}if(g()){n.onKeyDown.remove(q._applyInlineStyle.keyhandler);n.onKeyPress.remove(q._applyInlineStyle.keyhandler)}if(s.type==&quot;keyup&quot;){n.onKeyUp.remove(q._applyInlineStyle.keyhandler)}};n.onKeyDown.add(k);n.onKeyPress.add(k);n.onKeyUp.add(k)}else{q._pendingStyles=0}}})})(tinymce);(function(a){a.create(&quot;tinymce.UndoManager&quot;,{index:0,data:null,typing:0,UndoManager:function(c){var d=this,b=a.util.Dispatcher;d.editor=c;d.data=[];d.onAdd=new b(this);d.onUndo=new b(this);d.onRedo=new b(this)},add:function(d){var g=this,f,e=g.editor,c,h=e.settings,j;d=d||{};d.content=d.content||e.getContent({format:&quot;raw&quot;,no_events:1});d.content=d.content.replace(/^\s*|\s*$/g,&quot;&quot;);j=g.data[g.index&gt;0&amp;&amp;(g.index==0||g.index==g.data.length)?g.index-1:g.index];if(!d.initial&amp;&amp;j&amp;&amp;d.content==j.content){return null}if(h.custom_undo_redo_levels){if(g.data.length&gt;h.custom_undo_redo_levels){for(f=0;f&lt;g.data.length-1;f++){g.data[f]=g.data[f+1]}g.data.length--;g.index=g.data.length}}if(h.custom_undo_redo_restore_selection&amp;&amp;!d.initial){d.bookmark=c=d.bookmark||e.selection.getBookmark()}if(g.index&lt;g.data.length){g.index++}if(g.data.length===0&amp;&amp;!d.initial){return null}g.data.length=g.index+1;g.data[g.index++]=d;if(d.initial){g.index=0}if(g.data.length==2&amp;&amp;g.data[0].initial){g.data[0].bookmark=c}g.onAdd.dispatch(g,d);e.isNotDirty=0;return d},undo:function(){var e=this,c=e.editor,b=b,d;if(e.typing){e.add();e.typing=0}if(e.index&gt;0){if(e.index==e.data.length&amp;&amp;e.index&gt;1){d=e.index;e.typing=0;if(!e.add()){e.index=d}--e.index}b=e.data[--e.index];c.setContent(b.content,{format:&quot;raw&quot;});c.selection.moveToBookmark(b.bookmark);e.onUndo.dispatch(e,b)}return b},redo:function(){var d=this,c=d.editor,b=null;if(d.index&lt;d.data.length-1){b=d.data[++d.index];c.setContent(b.content,{format:&quot;raw&quot;});c.selection.moveToBookmark(b.bookmark);d.onRedo.dispatch(d,b)}return b},clear:function(){var b=this;b.data=[];b.index=0;b.typing=0;b.add({initial:true})},hasUndo:function(){return this.index!=0||this.typing},hasRedo:function(){return this.index&lt;this.data.length-1}})})(tinymce);(function(i){var h,c,a,b,g,f;h=i.dom.Event;c=i.isIE;a=i.isGecko;b=i.isOpera;g=i.each;f=i.extend;function e(k,l){var j=l.ownerDocument.createRange();j.setStart(k.endContainer,k.endOffset);j.setEndAfter(l);return j.cloneContents().textContent.length==0}function d(j){j=j.innerHTML;j=j.replace(/&lt;(img|hr|table|input|select|textarea)[ \&gt;]/gi,&quot;-&quot;);j=j.replace(/&lt;[^&gt;]+&gt;/g,&quot;&quot;);return j.replace(/[ \t\r\n]+/g,&quot;&quot;)==&quot;&quot;}i.create(&quot;tinymce.ForceBlocks&quot;,{ForceBlocks:function(k){var l=this,m=k.settings,n;l.editor=k;l.dom=k.dom;n=(m.forced_root_block||&quot;p&quot;).toLowerCase();m.element=n.toUpperCase();k.onPreInit.add(l.setup,l);l.reOpera=new RegExp(&quot;(\\u00a0|&amp;#160;|&amp;nbsp;)&lt;/&quot;+n+&quot;&gt;&quot;,&quot;gi&quot;);l.rePadd=new RegExp(&quot;&lt;p( )([^&gt;]+)&gt;&lt;\\/p&gt;|&lt;p( )([^&gt;]+)\\/&gt;|&lt;p( )([^&gt;]+)&gt;\\s+&lt;\\/p&gt;|&lt;p&gt;&lt;\\/p&gt;|&lt;p\\/&gt;|&lt;p&gt;\\s+&lt;\\/p&gt;&quot;.replace(/p/g,n),&quot;gi&quot;);l.reNbsp2BR1=new RegExp(&quot;&lt;p( )([^&gt;]+)&gt;[\\s\\u00a0]+&lt;\\/p&gt;|&lt;p&gt;[\\s\\u00a0]+&lt;\\/p&gt;&quot;.replace(/p/g,n),&quot;gi&quot;);l.reNbsp2BR2=new RegExp(&quot;&lt;%p()([^&gt;]+)&gt;(&amp;nbsp;|&amp;#160;)&lt;\\/%p&gt;|&lt;%p&gt;(&amp;nbsp;|&amp;#160;)&lt;\\/%p&gt;&quot;.replace(/%p/g,n),&quot;gi&quot;);l.reBR2Nbsp=new RegExp(&quot;&lt;p( )([^&gt;]+)&gt;\\s*&lt;br \\/&gt;\\s*&lt;\\/p&gt;|&lt;p&gt;\\s*&lt;br \\/&gt;\\s*&lt;\\/p&gt;&quot;.replace(/p/g,n),&quot;gi&quot;);function j(p,q){if(b){q.content=q.content.replace(l.reOpera,&quot;&lt;/&quot;+n+&quot;&gt;&quot;)}q.content=q.content.replace(l.rePadd,&quot;&lt;&quot;+n+&quot;$1$2$3$4$5$6&gt;\u00a0&lt;/&quot;+n+&quot;&gt;&quot;);if(!c&amp;&amp;!b&amp;&amp;q.set){q.content=q.content.replace(l.reNbsp2BR1,&quot;&lt;&quot;+n+&quot;$1$2&gt;&lt;br /&gt;&lt;/&quot;+n+&quot;&gt;&quot;);q.content=q.content.replace(l.reNbsp2BR2,&quot;&lt;&quot;+n+&quot;$1$2&gt;&lt;br /&gt;&lt;/&quot;+n+&quot;&gt;&quot;)}else{q.content=q.content.replace(l.reBR2Nbsp,&quot;&lt;&quot;+n+&quot;$1$2&gt;\u00a0&lt;/&quot;+n+&quot;&gt;&quot;)}}k.onBeforeSetContent.add(j);k.onPostProcess.add(j);if(m.forced_root_block){k.onInit.add(l.forceRoots,l);k.onSetContent.add(l.forceRoots,l);k.onBeforeGetContent.add(l.forceRoots,l)}},setup:function(){var k=this,j=k.editor,l=j.settings;if(l.forced_root_block){j.onKeyUp.add(k.forceRoots,k);j.onPreProcess.add(k.forceRoots,k)}if(l.force_br_newlines){if(c){j.onKeyPress.add(function(o,q){var r,p=o.selection;if(q.keyCode==13&amp;&amp;p.getNode().nodeName!=&quot;LI&quot;){p.setContent('&lt;br id=&quot;__&quot; /&gt; ',{format:&quot;raw&quot;});r=o.dom.get(&quot;__&quot;);r.removeAttribute(&quot;id&quot;);p.select(r);p.collapse();return h.cancel(q)}})}return}if(!c&amp;&amp;l.force_p_newlines){j.onKeyPress.add(function(n,o){if(o.keyCode==13&amp;&amp;!o.shiftKey){if(!k.insertPara(o)){h.cancel(o)}}});if(a){j.onKeyDown.add(function(n,o){if((o.keyCode==8||o.keyCode==46)&amp;&amp;!o.shiftKey){k.backspaceDelete(o,o.keyCode==8)}})}}function m(o,n){var p=j.dom.create(n);g(o.attributes,function(q){if(q.specified&amp;&amp;q.nodeValue){p.setAttribute(q.nodeName.toLowerCase(),q.nodeValue)}});g(o.childNodes,function(q){p.appendChild(q.cloneNode(true))});o.parentNode.replaceChild(p,o);return p}j.onPreProcess.add(function(n,p){g(n.dom.select(&quot;p,h1,h2,h3,h4,h5,h6,div&quot;,p.node),function(o){if(d(o)){g(n.dom.select(&quot;span,em,strong,b,i&quot;,p.node),function(q){if(!q.hasChildNodes()){q.appendChild(n.getDoc().createTextNode(&quot;\u00a0&quot;));return false}})}})});if(c){if(l.element!=&quot;P&quot;){j.onKeyPress.add(function(n,o){k.lastElm=n.selection.getNode().nodeName});j.onKeyUp.add(function(p,r){var t,q=p.selection,s=q.getNode(),o=p.getBody();if(o.childNodes.length===1&amp;&amp;s.nodeName==&quot;P&quot;){s=m(s,l.element);q.select(s);q.collapse();p.nodeChanged()}else{if(r.keyCode==13&amp;&amp;!r.shiftKey&amp;&amp;k.lastElm!=&quot;P&quot;){t=p.dom.getParent(s,&quot;p&quot;);if(t){m(t,l.element);p.nodeChanged()}}}})}}},find:function(p,l,m){var k=this.editor,j=k.getDoc().createTreeWalker(p,4,null,false),o=-1;while(p=j.nextNode()){o++;if(l==0&amp;&amp;p==m){return o}if(l==1&amp;&amp;o==m){return p}}return -1},forceRoots:function(p,D){var u=this,p=u.editor,H=p.getBody(),E=p.getDoc(),K=p.selection,v=K.getSel(),w=K.getRng(),I=-2,o,B,j,k,F=-16777215;var G,l,J,A,x,m=H.childNodes,z,y,q;for(z=m.length-1;z&gt;=0;z--){G=m[z];if(G.nodeType===3||(!u.dom.isBlock(G)&amp;&amp;G.nodeType!==8&amp;&amp;!/^(script|mce:script|style|mce:style)$/i.test(G.nodeName))){if(!l){if(G.nodeType!=3||/[^\s]/g.test(G.nodeValue)){if(I==-2&amp;&amp;w){if(!c){if(w.startContainer.nodeType==1&amp;&amp;(y=w.startContainer.childNodes[w.startOffset])&amp;&amp;y.nodeType==1){q=y.getAttribute(&quot;id&quot;);y.setAttribute(&quot;id&quot;,&quot;__mce&quot;)}else{if(p.dom.getParent(w.startContainer,function(n){return n===H})){B=w.startOffset;j=w.endOffset;I=u.find(H,0,w.startContainer);o=u.find(H,0,w.endContainer)}}}else{k=E.body.createTextRange();k.moveToElementText(H);k.collapse(1);J=k.move(&quot;character&quot;,F)*-1;k=w.duplicate();k.collapse(1);A=k.move(&quot;character&quot;,F)*-1;k=w.duplicate();k.collapse(0);x=(k.move(&quot;character&quot;,F)*-1)-A;I=A-J;o=x}}l=p.dom.create(p.settings.forced_root_block);G.parentNode.replaceChild(l,G);l.appendChild(G)}}else{if(l.hasChildNodes()){l.insertBefore(G,l.firstChild)}else{l.appendChild(G)}}}else{l=null}}if(I!=-2){if(!c){l=H.getElementsByTagName(p.settings.element)[0];w=E.createRange();if(I!=-1){w.setStart(u.find(H,1,I),B)}else{w.setStart(l,0)}if(o!=-1){w.setEnd(u.find(H,1,o),j)}else{w.setEnd(l,0)}if(v){v.removeAllRanges();v.addRange(w)}}else{try{w=v.createRange();w.moveToElementText(H);w.collapse(1);w.moveStart(&quot;character&quot;,I);w.moveEnd(&quot;character&quot;,o);w.select()}catch(C){}}}else{if(!c&amp;&amp;(y=p.dom.get(&quot;__mce&quot;))){if(q){y.setAttribute(&quot;id&quot;,q)}else{y.removeAttribute(&quot;id&quot;)}w=E.createRange();w.setStartBefore(y);w.setEndBefore(y);K.setRng(w)}}},getParentBlock:function(k){var j=this.dom;return j.getParent(k,j.isBlock)},insertPara:function(N){var B=this,p=B.editor,J=p.dom,O=p.getDoc(),S=p.settings,C=p.selection.getSel(),D=C.getRangeAt(0),R=O.body;var G,H,E,L,K,m,k,o,u,j,z,Q,l,q,F,I=J.getViewPort(p.getWin()),x,A,w;G=O.createRange();G.setStart(C.anchorNode,C.anchorOffset);G.collapse(true);H=O.createRange();H.setStart(C.focusNode,C.focusOffset);H.collapse(true);E=G.compareBoundaryPoints(G.START_TO_END,H)&lt;0;L=E?C.anchorNode:C.focusNode;K=E?C.anchorOffset:C.focusOffset;m=E?C.focusNode:C.anchorNode;k=E?C.focusOffset:C.anchorOffset;if(L===m&amp;&amp;/^(TD|TH)$/.test(L.nodeName)){if(L.firstChild.nodeName==&quot;BR&quot;){J.remove(L.firstChild)}if(L.childNodes.length==0){p.dom.add(L,S.element,null,&quot;&lt;br /&gt;&quot;);Q=p.dom.add(L,S.element,null,&quot;&lt;br /&gt;&quot;)}else{F=L.innerHTML;L.innerHTML=&quot;&quot;;p.dom.add(L,S.element,null,F);Q=p.dom.add(L,S.element,null,&quot;&lt;br /&gt;&quot;)}D=O.createRange();D.selectNodeContents(Q);D.collapse(1);p.selection.setRng(D);return false}if(L==R&amp;&amp;m==R&amp;&amp;R.firstChild&amp;&amp;p.dom.isBlock(R.firstChild)){L=m=L.firstChild;K=k=0;G=O.createRange();G.setStart(L,0);H=O.createRange();H.setStart(m,0)}L=L.nodeName==&quot;HTML&quot;?O.body:L;L=L.nodeName==&quot;BODY&quot;?L.firstChild:L;m=m.nodeName==&quot;HTML&quot;?O.body:m;m=m.nodeName==&quot;BODY&quot;?m.firstChild:m;o=B.getParentBlock(L);u=B.getParentBlock(m);j=o?o.nodeName:S.element;if(B.dom.getParent(o,&quot;ol,ul,pre&quot;)){return true}if(o&amp;&amp;(o.nodeName==&quot;CAPTION&quot;||/absolute|relative|fixed/gi.test(J.getStyle(o,&quot;position&quot;,1)))){j=S.element;o=null}if(u&amp;&amp;(u.nodeName==&quot;CAPTION&quot;||/absolute|relative|fixed/gi.test(J.getStyle(o,&quot;position&quot;,1)))){j=S.element;u=null}if(/(TD|TABLE|TH|CAPTION)/.test(j)||(o&amp;&amp;j==&quot;DIV&quot;&amp;&amp;/left|right/gi.test(J.getStyle(o,&quot;float&quot;,1)))){j=S.element;o=u=null}z=(o&amp;&amp;o.nodeName==j)?o.cloneNode(0):p.dom.create(j);Q=(u&amp;&amp;u.nodeName==j)?u.cloneNode(0):p.dom.create(j);Q.removeAttribute(&quot;id&quot;);if(/^(H[1-6])$/.test(j)&amp;&amp;e(D,o)){Q=p.dom.create(S.element)}F=l=L;do{if(F==R||F.nodeType==9||B.dom.isBlock(F)||/(TD|TABLE|TH|CAPTION)/.test(F.nodeName)){break}l=F}while((F=F.previousSibling?F.previousSibling:F.parentNode));F=q=m;do{if(F==R||F.nodeType==9||B.dom.isBlock(F)||/(TD|TABLE|TH|CAPTION)/.test(F.nodeName)){break}q=F}while((F=F.nextSibling?F.nextSibling:F.parentNode));if(l.nodeName==j){G.setStart(l,0)}else{G.setStartBefore(l)}G.setEnd(L,K);z.appendChild(G.cloneContents()||O.createTextNode(&quot;&quot;));try{H.setEndAfter(q)}catch(M){}H.setStart(m,k);Q.appendChild(H.cloneContents()||O.createTextNode(&quot;&quot;));D=O.createRange();if(!l.previousSibling&amp;&amp;l.parentNode.nodeName==j){D.setStartBefore(l.parentNode)}else{if(G.startContainer.nodeName==j&amp;&amp;G.startOffset==0){D.setStartBefore(G.startContainer)}else{D.setStart(G.startContainer,G.startOffset)}}if(!q.nextSibling&amp;&amp;q.parentNode.nodeName==j){D.setEndAfter(q.parentNode)}else{D.setEnd(H.endContainer,H.endOffset)}D.deleteContents();if(b){p.getWin().scrollTo(0,I.y)}if(z.firstChild&amp;&amp;z.firstChild.nodeName==j){z.innerHTML=z.firstChild.innerHTML}if(Q.firstChild&amp;&amp;Q.firstChild.nodeName==j){Q.innerHTML=Q.firstChild.innerHTML}if(d(z)){z.innerHTML=&quot;&lt;br /&gt;&quot;}function P(y,s){var r=[],U,T,t;y.innerHTML=&quot;&quot;;if(S.keep_styles){T=s;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(T.nodeName)){U=T.cloneNode(false);J.setAttrib(U,&quot;id&quot;,&quot;&quot;);r.push(U)}}while(T=T.parentNode)}if(r.length&gt;0){for(t=r.length-1,U=y;t&gt;=0;t--){U=U.appendChild(r[t])}r[0].innerHTML=b?&quot;&amp;nbsp;&quot;:&quot;&lt;br /&gt;&quot;;return r[0]}else{y.innerHTML=b?&quot;&amp;nbsp;&quot;:&quot;&lt;br /&gt;&quot;}}if(d(Q)){w=P(Q,m)}if(b&amp;&amp;parseFloat(opera.version())&lt;9.5){D.insertNode(z);D.insertNode(Q)}else{D.insertNode(Q);D.insertNode(z)}Q.normalize();z.normalize();function v(r){return O.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false).nextNode()||r}D=O.createRange();D.selectNodeContents(a?v(w||Q):w||Q);D.collapse(1);C.removeAllRanges();C.addRange(D);x=p.dom.getPos(Q).y;A=Q.clientHeight;if(x&lt;I.y||x+A&gt;I.y+I.h){p.getWin().scrollTo(0,x&lt;I.y?x:x-I.h+25)}return false},backspaceDelete:function(o,x){var z=this,m=z.editor,s=m.getBody(),l=m.dom,k,p=m.selection,j=p.getRng(),q=j.startContainer,k,u,v;if(q&amp;&amp;m.dom.isBlock(q)&amp;&amp;!/^(TD|TH)$/.test(q.nodeName)&amp;&amp;x){if(q.childNodes.length==0||(q.childNodes.length==1&amp;&amp;q.firstChild.nodeName==&quot;BR&quot;)){k=q;while((k=k.previousSibling)&amp;&amp;!m.dom.isBlock(k)){}if(k){if(q!=s.firstChild){u=m.dom.doc.createTreeWalker(k,NodeFilter.SHOW_TEXT,null,false);while(v=u.nextNode()){k=v}j=m.getDoc().createRange();j.setStart(k,k.nodeValue?k.nodeValue.length:0);j.setEnd(k,k.nodeValue?k.nodeValue.length:0);p.setRng(j);m.dom.remove(q)}return h.cancel(o)}}}function y(n){var r;n=n.target;if(n&amp;&amp;n.parentNode&amp;&amp;n.nodeName==&quot;BR&quot;&amp;&amp;(k=z.getParentBlock(n))){r=n.previousSibling;h.remove(s,&quot;DOMNodeInserted&quot;,y);if(r&amp;&amp;r.nodeType==3&amp;&amp;/\s+$/.test(r.nodeValue)){return}if(n.previousSibling||n.nextSibling){m.dom.remove(n)}}}h._add(s,&quot;DOMNodeInserted&quot;,y);window.setTimeout(function(){h._remove(s,&quot;DOMNodeInserted&quot;,y)},1)}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each,e=c.extend;c.create(&quot;tinymce.ControlManager&quot;,{ControlManager:function(f,j){var h=this,g;j=j||{};h.editor=f;h.controls={};h.onAdd=new c.util.Dispatcher(h);h.onPostRender=new c.util.Dispatcher(h);h.prefix=j.prefix||f.id+&quot;_&quot;;h._cls={};h.onPostRender.add(function(){d(h.controls,function(i){i.postRender()})})},get:function(f){return this.controls[this.prefix+f]||this.controls[f]},setActive:function(h,f){var g=null;if(g=this.get(h)){g.setActive(f)}return g},setDisabled:function(h,f){var g=null;if(g=this.get(h)){g.setDisabled(f)}return g},add:function(g){var f=this;if(g){f.controls[g.id]=g;f.onAdd.dispatch(g,f)}return g},createControl:function(i){var h,g=this,f=g.editor;d(f.plugins,function(j){if(j.createControl){h=j.createControl(i,g);if(h){return false}}});switch(i){case&quot;|&quot;:case&quot;separator&quot;:return g.createSeparator()}if(!h&amp;&amp;f.buttons&amp;&amp;(h=f.buttons[i])){return g.createButton(i,h)}return g.add(h)},createDropMenu:function(f,n,h){var m=this,i=m.editor,j,g,k,l;n=e({&quot;class&quot;:&quot;mceDropDown&quot;,constrain:i.settings.constrain_menus},n);n[&quot;class&quot;]=n[&quot;class&quot;]+&quot; &quot;+i.getParam(&quot;skin&quot;)+&quot;Skin&quot;;if(k=i.getParam(&quot;skin_variant&quot;)){n[&quot;class&quot;]+=&quot; &quot;+i.getParam(&quot;skin&quot;)+&quot;Skin&quot;+k.substring(0,1).toUpperCase()+k.substring(1)}f=m.prefix+f;l=h||m._cls.dropmenu||c.ui.DropMenu;j=m.controls[f]=new l(f,n);j.onAddItem.add(function(r,q){var p=q.settings;p.title=i.getLang(p.title,p.title);if(!p.onclick){p.onclick=function(o){i.execCommand(p.cmd,p.ui||false,p.value)}}});i.onRemove.add(function(){j.destroy()});if(c.isIE){j.onShowMenu.add(function(){i.focus();g=i.selection.getBookmark(1)});j.onHideMenu.add(function(){if(g){i.selection.moveToBookmark(g);g=0}})}return m.add(j)},createListBox:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.scope=i.scope||g;if(!i.onselect){i.onselect=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}i=e({title:i.title,&quot;class&quot;:&quot;mce_&quot;+m,scope:i.scope,control_manager:h},i);m=h.prefix+m;if(g.settings.use_native_selects){k=new c.ui.NativeListBox(m,i)}else{f=l||h._cls.listbox||c.ui.ListBox;k=new f(m,i)}h.controls[m]=k;if(c.isWebKit){k.onPostRender.add(function(p,o){a.add(o,&quot;mousedown&quot;,function(){g.bookmark=g.selection.getBookmark(1)});a.add(o,&quot;focus&quot;,function(){g.selection.moveToBookmark(g.bookmark);g.bookmark=null})})}if(k.hideMenu){g.onMouseDown.add(k.hideMenu,k)}return h.add(k)},createButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.label=g.translate(i.label);i.scope=i.scope||g;if(!i.onclick&amp;&amp;!i.menu_button){i.onclick=function(){g.execCommand(i.cmd,i.ui||false,i.value)}}i=e({title:i.title,&quot;class&quot;:&quot;mce_&quot;+m,unavailable_prefix:g.getLang(&quot;unavailable&quot;,&quot;&quot;),scope:i.scope,control_manager:h},i);m=h.prefix+m;if(i.menu_button){f=l||h._cls.menubutton||c.ui.MenuButton;k=new f(m,i);g.onMouseDown.add(k.hideMenu,k)}else{f=h._cls.button||c.ui.Button;k=new f(m,i)}return h.add(k)},createMenuButton:function(h,f,g){f=f||{};f.menu_button=1;return this.createButton(h,f,g)},createSplitButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.scope=i.scope||g;if(!i.onclick){i.onclick=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}if(!i.onselect){i.onselect=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}i=e({title:i.title,&quot;class&quot;:&quot;mce_&quot;+m,scope:i.scope,control_manager:h},i);m=h.prefix+m;f=l||h._cls.splitbutton||c.ui.SplitButton;k=h.add(new f(m,i));g.onMouseDown.add(k.hideMenu,k);return k},createColorSplitButton:function(f,n,h){var l=this,j=l.editor,i,k,m,g;if(l.get(f)){return null}n.title=j.translate(n.title);n.scope=n.scope||j;if(!n.onclick){n.onclick=function(o){if(c.isIE){g=j.selection.getBookmark(1)}j.execCommand(n.cmd,n.ui||false,o||n.value)}}if(!n.onselect){n.onselect=function(o){j.execCommand(n.cmd,n.ui||false,o||n.value)}}n=e({title:n.title,&quot;class&quot;:&quot;mce_&quot;+f,menu_class:j.getParam(&quot;skin&quot;)+&quot;Skin&quot;,scope:n.scope,more_colors_title:j.getLang(&quot;more_colors&quot;)},n);f=l.prefix+f;m=h||l._cls.colorsplitbutton||c.ui.ColorSplitButton;k=new m(f,n);j.onMouseDown.add(k.hideMenu,k);j.onRemove.add(function(){k.destroy()});if(c.isIE){k.onShowMenu.add(function(){j.focus();g=j.selection.getBookmark(1)});k.onHideMenu.add(function(){if(g){j.selection.moveToBookmark(g);g=0}})}return l.add(k)},createToolbar:function(k,h,j){var i,g=this,f;k=g.prefix+k;f=j||g._cls.toolbar||c.ui.Toolbar;i=new f(k,h);if(g.get(k)){return null}return g.add(i)},createSeparator:function(g){var f=g||this._cls.separator||c.ui.Separator;return new f()},setControlType:function(g,f){return this._cls[g.toLowerCase()]=f},destroy:function(){d(this.controls,function(f){f.destroy()});this.controls=null}})})(tinymce);(function(d){var a=d.util.Dispatcher,e=d.each,c=d.isIE,b=d.isOpera;d.create(&quot;tinymce.WindowManager&quot;,{WindowManager:function(f){var g=this;g.editor=f;g.onOpen=new a(g);g.onClose=new a(g);g.params={};g.features={}},open:function(z,h){var v=this,k=&quot;&quot;,n,m,i=v.editor.settings.dialog_type==&quot;modal&quot;,q,o,j,g=d.DOM.getViewPort(),r;z=z||{};h=h||{};o=b?g.w:screen.width;j=b?g.h:screen.height;z.name=z.name||&quot;mc_&quot;+new Date().getTime();z.width=parseInt(z.width||320);z.height=parseInt(z.height||240);z.resizable=true;z.left=z.left||parseInt(o/2)-(z.width/2);z.top=z.top||parseInt(j/2)-(z.height/2);h.inline=false;h.mce_width=z.width;h.mce_height=z.height;h.mce_auto_focus=z.auto_focus;if(i){if(c){z.center=true;z.help=false;z.dialogWidth=z.width+&quot;px&quot;;z.dialogHeight=z.height+&quot;px&quot;;z.scroll=z.scrollbars||false}}e(z,function(p,f){if(d.is(p,&quot;boolean&quot;)){p=p?&quot;yes&quot;:&quot;no&quot;}if(!/^(name|url)$/.test(f)){if(c&amp;&amp;i){k+=(k?&quot;;&quot;:&quot;&quot;)+f+&quot;:&quot;+p}else{k+=(k?&quot;,&quot;:&quot;&quot;)+f+&quot;=&quot;+p}}});v.features=z;v.params=h;v.onOpen.dispatch(v,z,h);r=z.url||z.file;r=d._addVer(r);try{if(c&amp;&amp;i){q=1;window.showModalDialog(r,window,k)}else{q=window.open(r,z.name,k)}}catch(l){}if(!q){alert(v.editor.getLang(&quot;popup_blocked&quot;))}},close:function(f){f.close();this.onClose.dispatch(this)},createInstance:function(i,h,g,m,l,k){var j=d.resolve(i);return new j(h,g,m,l,k)},confirm:function(h,f,i,g){g=g||window;f.call(i||this,g.confirm(this._decode(this.editor.getLang(h,h))))},alert:function(h,f,j,g){var i=this;g=g||window;g.alert(i._decode(i.editor.getLang(h,h)));if(f){f.call(j||i)}},_decode:function(f){return d.DOM.decode(f).replace(/\\n/g,&quot;\n&quot;)}})}(tinymce));(function(a){a.CommandManager=function(){var c={},b={},d={};function e(i,h,g,f){if(typeof(h)==&quot;string&quot;){h=[h]}a.each(h,function(j){i[j.toLowerCase()]={func:g,scope:f}})}a.extend(this,{add:function(h,g,f){e(c,h,g,f)},addQueryStateHandler:function(h,g,f){e(b,h,g,f)},addQueryValueHandler:function(h,g,f){e(d,h,g,f)},execCommand:function(g,j,i,h,f){if(j=c[j.toLowerCase()]){if(j.func.call(g||j.scope,i,h,f)!==false){return true}}},queryCommandValue:function(){if(cmd=d[cmd.toLowerCase()]){return cmd.func.call(scope||cmd.scope,ui,value,args)}},queryCommandState:function(){if(cmd=b[cmd.toLowerCase()]){return cmd.func.call(scope||cmd.scope,ui,value,args)}}})};a.GlobalCommands=new a.CommandManager()})(tinymce);(function(b){function a(i,d,h,m){var j,g,e,l,f;function k(p,o){do{if(p.parentNode==o){return p}p=p.parentNode}while(p)}function c(o){m(o);b.walk(o,m,&quot;childNodes&quot;)}j=i.findCommonAncestor(d,h);e=k(d,j)||d;l=k(h,j)||h;for(g=d;g&amp;&amp;g!=e;g=g.parentNode){for(f=g.nextSibling;f;f=f.nextSibling){c(f)}}if(e!=l){for(g=e.nextSibling;g&amp;&amp;g!=l;g=g.nextSibling){c(g)}}else{c(e)}for(g=h;g&amp;&amp;g!=l;g=g.parentNode){for(f=g.previousSibling;f;f=f.previousSibling){c(f)}}}b.GlobalCommands.add(&quot;RemoveFormat&quot;,function(){var m=this,l=m.dom,u=m.selection,d=u.getRng(1),e=[],h,f,j,q,g,o,c,i;function k(s){var r;l.getParent(s,function(v){if(l.is(v,m.getParam(&quot;removeformat_selector&quot;))){r=v}return l.isBlock(v)},m.getBody());return r}function p(r){if(l.is(r,m.getParam(&quot;removeformat_selector&quot;))){e.push(r)}}function t(r){p(r);b.walk(r,p,&quot;childNodes&quot;)}h=u.getBookmark();q=d.startContainer;o=d.endContainer;g=d.startOffset;c=d.endOffset;q=q.nodeType==1?q.childNodes[Math.min(g,q.childNodes.length-1)]:q;o=o.nodeType==1?o.childNodes[Math.min(g==c?c:c-1,o.childNodes.length-1)]:o;if(q==o){f=k(q);if(q.nodeType==3){if(f&amp;&amp;f.nodeType==1){i=q.splitText(g);i.splitText(c-g);l.split(f,i);u.moveToBookmark(h)}return}t(l.split(f,q)||q)}else{f=k(q);j=k(o);if(f){if(q.nodeType==3){if(g==q.nodeValue.length){q.nodeValue+=&quot;\uFEFF&quot;}q=q.splitText(g)}}if(j){if(o.nodeType==3){o.splitText(c)}}if(f&amp;&amp;f==j){l.replace(l.create(&quot;span&quot;,{id:&quot;__end&quot;},o.cloneNode(true)),o)}if(f){f=l.split(f,q)}else{f=q}if(i=l.get(&quot;__end&quot;)){o=i;j=k(o)}if(j){j=l.split(j,o)}else{j=o}a(l,f,j,p);if(q.nodeValue==&quot;\uFEFF&quot;){q.nodeValue=&quot;&quot;}t(o);t(q)}b.each(e,function(r){l.remove(r,1)});l.remove(&quot;__end&quot;,1);u.moveToBookmark(h)})})(tinymce);(function(a){a.GlobalCommands.add(&quot;mceBlockQuote&quot;,function(){var j=this,o=j.selection,f=j.dom,l,k,e,d,p,c,m,h,b;function g(i){return f.getParent(i,function(q){return q.nodeName===&quot;BLOCKQUOTE&quot;})}l=f.getParent(o.getStart(),f.isBlock);k=f.getParent(o.getEnd(),f.isBlock);if(p=g(l)){if(l!=k||l.childNodes.length&gt;1||(l.childNodes.length==1&amp;&amp;l.firstChild.nodeName!=&quot;BR&quot;)){d=o.getBookmark()}if(g(k)){m=p.cloneNode(false);while(e=k.nextSibling){m.appendChild(e.parentNode.removeChild(e))}}if(m){f.insertAfter(m,p)}b=o.getSelectedBlocks(l,k);for(h=b.length-1;h&gt;=0;h--){f.insertAfter(b[h],p)}if(/^\s*$/.test(p.innerHTML)){f.remove(p,1)}if(m&amp;&amp;/^\s*$/.test(m.innerHTML)){f.remove(m,1)}if(!d){if(!a.isIE){c=j.getDoc().createRange();c.setStart(l,0);c.setEnd(l,0);o.setRng(c)}else{o.select(l);o.collapse(0);if(f.getParent(o.getStart(),f.isBlock)!=l){c=o.getRng();c.move(&quot;character&quot;,-1);c.select()}}}else{j.selection.moveToBookmark(d)}return}if(a.isIE&amp;&amp;!l&amp;&amp;!k){j.getDoc().execCommand(&quot;Indent&quot;);e=g(o.getNode());e.style.margin=e.dir=&quot;&quot;;return}if(!l||!k){return}if(l!=k||l.childNodes.length&gt;1||(l.childNodes.length==1&amp;&amp;l.firstChild.nodeName!=&quot;BR&quot;)){d=o.getBookmark()}a.each(o.getSelectedBlocks(g(o.getStart()),g(o.getEnd())),function(i){if(i.nodeName==&quot;BLOCKQUOTE&quot;&amp;&amp;!p){p=i;return}if(!p){p=f.create(&quot;blockquote&quot;);i.parentNode.insertBefore(p,i)}if(i.nodeName==&quot;BLOCKQUOTE&quot;&amp;&amp;p){e=i.firstChild;while(e){p.appendChild(e.cloneNode(true));e=e.nextSibling}f.remove(i);return}p.appendChild(f.remove(i))});if(!d){if(!a.isIE){c=j.getDoc().createRange();c.setStart(l,0);c.setEnd(l,0);o.setRng(c)}else{o.select(l);o.collapse(1)}}else{o.moveToBookmark(d)}})})(tinymce);(function(a){a.each([&quot;Cut&quot;,&quot;Copy&quot;,&quot;Paste&quot;],function(b){a.GlobalCommands.add(b,function(){var c=this,e=c.getDoc();try{e.execCommand(b,false,null);if(!e.queryCommandEnabled(b)){throw&quot;Error&quot;}}catch(d){if(a.isGecko){c.windowManager.confirm(c.getLang(&quot;clipboard_msg&quot;),function(f){if(f){open(&quot;http://www.mozilla.org/editor/midasdemo/securityprefs.html&quot;,&quot;_blank&quot;)}})}else{c.windowManager.alert(c.getLang(&quot;clipboard_no_support&quot;))}}})})})(tinymce);(function(a){a.GlobalCommands.add(&quot;InsertHorizontalRule&quot;,function(){if(a.isOpera){return this.getDoc().execCommand(&quot;InsertHorizontalRule&quot;,false,&quot;&quot;)}this.selection.setContent(&quot;&lt;hr /&gt;&quot;)})})(tinymce);(function(){var a=tinymce.GlobalCommands;a.add([&quot;mceEndUndoLevel&quot;,&quot;mceAddUndoLevel&quot;],function(){this.undoManager.add()});a.add(&quot;Undo&quot;,function(){var b=this;if(b.settings.custom_undo_redo){b.undoManager.undo();b.nodeChanged();return true}return false});a.add(&quot;Redo&quot;,function(){var b=this;if(b.settings.custom_undo_redo){b.undoManager.redo();b.nodeChanged();return true}return false})})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/tiny_mce.js</filename>
    </modified>
    <modified>
      <diff>@@ -2,4 +2,4 @@
 // Uncomment and change this document.domain value if you are loading the script cross subdomains
 // document.domain = 'moxiecode.com';
 
-var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance(&quot;tinymce.dom.DOMUtils&quot;,document);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg(&quot;mce_inline&quot;);b.id=b.getWindowArg(&quot;mce_window_id&quot;);b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return window.dialogArguments||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var e=this,g,a=document.body,c=e.dom.getViewPort(window),d,f;d=e.getWindowArg(&quot;mce_width&quot;)-c.w;f=e.getWindowArg(&quot;mce_height&quot;)-c.h;if(e.isWindow){window.resizeBy(d,f)}else{e.editor.windowManager.resizeBy(d,f,e.id)}},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(&quot;simple&quot;)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&amp;&amp;tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg(&quot;plugin_url&quot;)||b.getWindowArg(&quot;theme_url&quot;);if(a&amp;&amp;b.editor.settings.language&amp;&amp;b.features.translate_i18n!==false){a+=&quot;/langs/&quot;+b.editor.settings.language+&quot;_dlg.js&quot;;if(!tinymce.ScriptLoader.isDone(a)){document.write('&lt;script type=&quot;text/javascript&quot; src=&quot;'+tinymce._addVer(a)+'&quot;&gt;&lt;\/script&gt;');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand(&quot;mceColorPicker&quot;,true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback(&quot;file_browser_callback&quot;,a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);tinymce=tinyMCE=a.editor=a.params=a.dom=a.dom.doc=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName==&quot;INPUT&quot;&amp;&amp;(a.type==&quot;submit&quot;||a.type==&quot;button&quot;)){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=this,d=document.title,e,c,a;if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^&quot;][^\s&gt;]+)/gi,' $1=&quot;$2&quot;')}document.dir=b.editor.getParam(&quot;directionality&quot;,&quot;&quot;);if((a=b.editor.translate(c))&amp;&amp;a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&amp;&amp;a!=d){document.title=d=a}}document.body.style.display=&quot;&quot;;if(tinymce.isIE){document.attachEvent(&quot;onmouseup&quot;,tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select(&quot;head&quot;)[0],&quot;base&quot;,{target:&quot;_self&quot;})}b.restoreSelection();b.resizeToInnerSize();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&amp;&amp;!b.isWindow){tinymce.dom.Event._add(document,&quot;focus&quot;,function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select(&quot;select&quot;),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg(&quot;mce_auto_focus&quot;,true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,&quot;mceFocus&quot;)&amp;&amp;!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){a=a.target||a.srcElement;if(a.onchange){a.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_wait:function(){var a=this,b;if(tinymce.isIE&amp;&amp;document.location.protocol!=&quot;https:&quot;){document.write(&quot;&lt;script id=__ie_onload defer src='javascript:\&quot;\&quot;';&gt;&lt;\/script&gt;&quot;);document.getElementById(&quot;__ie_onload&quot;).onreadystatechange=function(){if(this.readyState==&quot;complete&quot;){a._onDOMLoaded();document.getElementById(&quot;__ie_onload&quot;).onreadystatechange=null}}}else{if(tinymce.isIE||tinymce.isWebKit){b=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(b);a._onDOMLoaded()}},10)}else{window.addEventListener(&quot;DOMContentLoaded&quot;,function(){a._onDOMLoaded()},false)}}}};tinyMCEPopup.init();tinyMCEPopup._wait();
\ No newline at end of file
+var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance(&quot;tinymce.dom.DOMUtils&quot;,document);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg(&quot;mce_inline&quot;);b.id=b.getWindowArg(&quot;mce_window_id&quot;);b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&amp;&amp;window.dialogArguments)||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var e=this,g,a=document.body,c=e.dom.getViewPort(window),d,f;d=e.getWindowArg(&quot;mce_width&quot;)-c.w;f=e.getWindowArg(&quot;mce_height&quot;)-c.h;if(e.isWindow){window.resizeBy(d,f)}else{e.editor.windowManager.resizeBy(d,f,e.id)}},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&amp;&amp;tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg(&quot;plugin_url&quot;)||b.getWindowArg(&quot;theme_url&quot;);if(a&amp;&amp;b.editor.settings.language&amp;&amp;b.features.translate_i18n!==false){a+=&quot;/langs/&quot;+b.editor.settings.language+&quot;_dlg.js&quot;;if(!tinymce.ScriptLoader.isDone(a)){document.write('&lt;script type=&quot;text/javascript&quot; src=&quot;'+tinymce._addVer(a)+'&quot;&gt;&lt;\/script&gt;');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand(&quot;mceColorPicker&quot;,true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback(&quot;file_browser_callback&quot;,a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);tinymce=tinyMCE=a.editor=a.params=a.dom=a.dom.doc=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName==&quot;INPUT&quot;&amp;&amp;(a.type==&quot;submit&quot;||a.type==&quot;button&quot;)){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=tinyMCEPopup,d=document.title,e,c,a;if(b.domLoaded){return}b.domLoaded=1;if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^&quot;][^\s&gt;]+)/gi,' $1=&quot;$2&quot;')}document.dir=b.editor.getParam(&quot;directionality&quot;,&quot;&quot;);if((a=b.editor.translate(c))&amp;&amp;a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&amp;&amp;a!=d){document.title=d=a}}document.body.style.display=&quot;&quot;;if(tinymce.isIE){document.attachEvent(&quot;onmouseup&quot;,tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select(&quot;head&quot;)[0],&quot;base&quot;,{target:&quot;_self&quot;})}b.restoreSelection();b.resizeToInnerSize();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&amp;&amp;!b.isWindow){tinymce.dom.Event._add(document,&quot;focus&quot;,function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select(&quot;select&quot;),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg(&quot;mce_auto_focus&quot;,true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,&quot;mceFocus&quot;)&amp;&amp;!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){a=a.target||a.srcElement;if(a.onchange){a.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_wait:function(){if(document.attachEvent){document.attachEvent(&quot;onreadystatechange&quot;,function(){if(document.readyState===&quot;complete&quot;){document.detachEvent(&quot;onreadystatechange&quot;,arguments.callee);tinyMCEPopup._onDOMLoaded()}});if(document.documentElement.doScroll&amp;&amp;window==window.top){(function(){if(tinyMCEPopup.domLoaded){return}try{document.documentElement.doScroll(&quot;left&quot;)}catch(a){setTimeout(arguments.callee,0);return}tinyMCEPopup._onDOMLoaded()})()}document.attachEvent(&quot;onload&quot;,tinyMCEPopup._onDOMLoaded)}else{if(document.addEventListener){window.addEventListener(&quot;DOMContentLoaded&quot;,tinyMCEPopup._onDOMLoaded,false);window.addEventListener(&quot;load&quot;,tinyMCEPopup._onDOMLoaded,false)}}}};tinyMCEPopup.init();tinyMCEPopup._wait();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/tiny_mce_popup.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,18 +1,23 @@
 var tinymce = {
 	majorVersion : '3',
-	minorVersion : '2.2.3',
-	releaseDate : '2009-03-26',
+	minorVersion : '2.7',
+	releaseDate : '2009-09-22',
 
 	_init : function() {
 		var t = this, d = document, w = window, na = navigator, ua = na.userAgent, i, nl, n, base, p, v;
 
-		// Browser checks
 		t.isOpera = w.opera &amp;&amp; opera.buildNumber;
+
 		t.isWebKit = /WebKit/.test(ua);
+
 		t.isIE = !t.isWebKit &amp;&amp; !t.isOpera &amp;&amp; (/MSIE/gi).test(ua) &amp;&amp; (/Explorer/gi).test(na.appName);
+
 		t.isIE6 = t.isIE &amp;&amp; /MSIE [56]/.test(ua);
+
 		t.isGecko = !t.isWebKit &amp;&amp; /Gecko/.test(ua);
+
 		t.isMac = ua.indexOf('Mac') != -1;
+
 		t.isAir = /adobeair/i.test(ua);
 
 		// TinyMCE .NET webcontrol might be setting the values for TinyMCE
@@ -39,7 +44,7 @@ var tinymce = {
 		}
 
 		function getBase(n) {
-			if (n.src &amp;&amp; /tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)) {
+			if (n.src &amp;&amp; /tiny_mce(|_gzip|_jquery|_prototype)(_dev|_src)?.js/.test(n.src)) {
 				if (/_(src|dev)\.js/g.test(n.src))
 					t.suffix = '_src';
 
@@ -49,7 +54,9 @@ var tinymce = {
 				t.baseURL = n.src.substring(0, n.src.lastIndexOf('/'));
 
 				// If path to script is relative and a base href was found add that one infront
-				if (base &amp;&amp; t.baseURL.indexOf('://') == -1)
+				// the src property will always be an absolute one on non IE browsers and IE 8
+				// so this logic will basically only be executed on older IE versions
+				if (base &amp;&amp; t.baseURL.indexOf('://') == -1 &amp;&amp; t.baseURL.indexOf('/') !== 0)
 					t.baseURL = base + t.baseURL;
 
 				return t.baseURL;
@@ -90,7 +97,6 @@ var tinymce = {
 		return n == t;
 	},
 
-
 	each : function(o, cb, s) {
 		var n, l;
 
@@ -118,6 +124,7 @@ var tinymce = {
 		return 1;
 	},
 
+
 	map : function(a, f) {
 		var o = [];
 
@@ -167,11 +174,11 @@ var tinymce = {
 		return o;
 	},
 
+
 	trim : function(s) {
 		return (s ? '' + s : '').replace(/^\s*|\s*$/g, '');
 	},
 
-
 	create : function(s, p) {
 		var t = this, sp, ns, cn, scn, c, de = 0;
 
@@ -296,7 +303,7 @@ var tinymce = {
 		o = o || window;
 
 		n = n.split('.');
-		for (i=0, l = n.length; i&lt;l; i++) {
+		for (i = 0, l = n.length; i &lt; l; i++) {
 			o = o[n[i]];
 
 			if (!o)
@@ -332,7 +339,7 @@ var tinymce = {
 						w.removeEventListener('unload', unload, false);
 
 					// Destroy references
-					t.unloads = o = li = w = unload = null;
+					t.unloads = o = li = w = unload = 0;
 
 					// Run garbarge collector on IE
 					if (window.CollectGarbage)
@@ -350,19 +357,22 @@ var tinymce = {
 						d.detachEvent('onstop', stop);
 
 						// Call unload handler
-						unload();
+						if (unload)
+							unload();
 
-						d = null;
+						d = 0;
 					};
 
 					// Fire unload when the currently loading page is stopped
-					d.attachEvent('onstop', stop);
+					if (d)
+						d.attachEvent('onstop', stop);
 
 					// Remove onstop listener after a while to prevent the unload function
 					// to execute if the user presses cancel in an onbeforeunload
 					// confirm dialog and then presses the browser stop button
 					window.setTimeout(function() {
-						d.detachEvent('onstop', stop);
+						if (d)
+							d.detachEvent('onstop', stop);
 					}, 0);
 				}
 			};
@@ -480,11 +490,14 @@ tinymce.create('tinymce.util.Dispatcher', {
 		URI : function(u, s) {
 			var t = this, o, a, b;
 
+			// Trim whitespace
+			u = tinymce.trim(u);
+
 			// Default settings
 			s = t.settings = s || {};
 
 			// Strange app protocol or local anchor
-			if (/^(mailto|tel|news|javascript|about):/i.test(u) || /^\s*#/.test(u)) {
+			if (/^(mailto|tel|news|javascript|about|data):/i.test(u) || /^\s*#/.test(u)) {
 				t.source = u;
 				return;
 			}
@@ -493,8 +506,8 @@ tinymce.create('tinymce.util.Dispatcher', {
 			if (u.indexOf('/') === 0 &amp;&amp; u.indexOf('//') !== 0)
 				u = (s.base_uri ? s.base_uri.protocol || 'http' : 'http') + '://mce_host' + u;
 
-			// Relative path
-			if (u.indexOf(':/') === -1 &amp;&amp; u.indexOf('//') !== 0)
+			// Relative path http:// or protocol relative //path
+			if (!/^\w*:?\/\//.test(u))
 				u = (s.base_uri.protocol || 'http') + '://mce_host' + t.toAbsPath(s.base_uri.path, u);
 
 			// Parse URL (Credits goes to Steave, http://blog.stevenlevithan.com/archives/parseuri)
@@ -572,7 +585,7 @@ tinymce.create('tinymce.util.Dispatcher', {
 		toAbsolute : function(u, nh) {
 			var u = new tinymce.util.URI(u, {base_uri : this});
 
-			return u.getURI(this.host == u.host ? nh : 0);
+			return u.getURI(this.host == u.host &amp;&amp; this.protocol == u.protocol ? nh : 0);
 		},
 
 		toRelPath : function(base, path) {
@@ -618,7 +631,7 @@ tinymce.create('tinymce.util.Dispatcher', {
 		},
 
 		toAbsPath : function(base, path) {
-			var i, nb = 0, o = [], tr;
+			var i, nb = 0, o = [], tr, outPath;
 
 			// Split paths
 			tr = /\/$/.test(path) ? '/' : '';
@@ -658,9 +671,19 @@ tinymce.create('tinymce.util.Dispatcher', {
 
 			// If /a/b/c or /
 			if (i &lt;= 0)
-				return '/' + o.reverse().join('/') + tr;
+				outPath = o.reverse().join('/');
+			else
+				outPath = base.slice(0, i).join('/') + '/' + o.reverse().join('/');
 
-			return '/' + base.slice(0, i).join('/') + '/' + o.reverse().join('/') + tr;
+			// Add front / if it's needed
+			if (outPath.indexOf('/') !== 0)
+				outPath = '/' + outPath;
+
+			// Add traling / if it's needed
+			if (tr &amp;&amp; outPath.lastIndexOf('/') !== outPath.length - 1)
+				outPath += tr;
+
+			return outPath;
 		},
 
 		getURI : function(nh) {
@@ -698,8 +721,7 @@ tinymce.create('tinymce.util.Dispatcher', {
 
 			return t.source;
 		}
-
-		});
+	});
 })();
 (function() {
 	var each = tinymce.each;
@@ -769,8 +791,7 @@ tinymce.create('tinymce.util.Dispatcher', {
 
 			this.set(n, '', d, p, d);
 		}
-
-		});
+	});
 })();
 tinymce.create('static tinymce.util.JSON', {
 	serialize : function(o) {
@@ -857,6 +878,8 @@ tinymce.create('static tinymce.util.XHR', {
 			if (o.content_type)
 				x.setRequestHeader('Content-Type', o.content_type);
 
+			x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
+
 			x.send(o.data);
 
 			function ready() {
@@ -878,8 +901,7 @@ tinymce.create('static tinymce.util.XHR', {
 			// Wait for response, onReadyStateChange can not be used since it leaks memory in IE
 			t = w.setTimeout(ready, 10);
 		}
-
-		}
+	}
 });
 (function() {
 	var extend = tinymce.extend, JSON = tinymce.util.JSON, XHR = tinymce.util.XHR;
@@ -932,8 +954,7 @@ tinymce.create('static tinymce.util.XHR', {
 				return new tinymce.util.JSONRequest().send(o);
 			}
 		}
-
-		});
+	});
 }());(function(tinymce) {
 	// Shorten names
 	var each = tinymce.each, is = tinymce.is;
@@ -970,7 +991,7 @@ tinymce.create('static tinymce.util.XHR', {
 			t.boxModel = !tinymce.isIE || d.compatMode == &quot;CSS1Compat&quot;; 
 			t.stdMode = d.documentMode === 8;
 
-			this.settings = s = tinymce.extend({
+			t.settings = s = tinymce.extend({
 				keep_values : false,
 				hex_colors : 1,
 				process_html : 1
@@ -1046,10 +1067,6 @@ tinymce.create('static tinymce.util.XHR', {
 			};
 		},
 
-		is : function(n, patt) {
-			return tinymce.dom.Sizzle.matches(patt, n.nodeType ? [n] : n).length &gt; 0;
-		},
-
 		getParent : function(n, f, r) {
 			return this.getParents(n, f, r, false);
 		},
@@ -1077,7 +1094,7 @@ tinymce.create('static tinymce.util.XHR', {
 			}
 
 			while (n) {
-				if (n == r)
+				if (n == r || !n.nodeType || n.nodeType === 9)
 					break;
 
 				if (!f || f(n)) {
@@ -1108,6 +1125,14 @@ tinymce.create('static tinymce.util.XHR', {
 			return e;
 		},
 
+		getNext : function(node, selector) {
+			return this._findSib(node, selector, 'nextSibling');
+		},
+
+		getPrev : function(node, selector) {
+			return this._findSib(node, selector, 'previousSibling');
+		},
+
 
 		select : function(pa, s) {
 			var t = this;
@@ -1115,6 +1140,10 @@ tinymce.create('static tinymce.util.XHR', {
 			return tinymce.dom.Sizzle(pa, t.get(s) || t.get(t.settings.root_element) || t.doc, []);
 		},
 
+		is : function(n, patt) {
+			return tinymce.dom.Sizzle.matches(patt, n.nodeType ? [n] : n).length &gt; 0;
+		},
+
 
 		add : function(p, n, a, h, c) {
 			var t = this;
@@ -1191,7 +1220,6 @@ tinymce.create('static tinymce.util.XHR', {
 			});
 		},
 
-
 		setStyle : function(n, na, v) {
 			var t = this;
 
@@ -1361,7 +1389,6 @@ tinymce.create('static tinymce.util.XHR', {
 			});
 		},
 
-
 		getAttrib : function(e, n, dv) {
 			var v, t = this;
 
@@ -1389,6 +1416,18 @@ tinymce.create('static tinymce.util.XHR', {
 			if (!v)
 				v = e.getAttribute(n, 2);
 
+			// Check boolean attribs
+			if (/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(n)) {
+				if (e[t.props[n]] === true &amp;&amp; v === '')
+					return n;
+
+				return v ? n : '';
+			}
+
+			// Inner input elements will override attributes on form elements
+			if (e.nodeName === &quot;FORM&quot; &amp;&amp; e.getAttributeNode(n))
+				return e.getAttributeNode(n).nodeValue;
+
 			if (n === 'style') {
 				v = v || e.style.cssText;
 
@@ -1464,49 +1503,44 @@ tinymce.create('static tinymce.util.XHR', {
 					default:
 						// IE has odd anonymous function for event attributes
 						if (n.indexOf('on') === 0 &amp;&amp; v)
-							v = ('' + v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/, '$1');
+							v = ('' + v).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, '$1');
 				}
 			}
 
 			return (v !== undefined &amp;&amp; v !== null &amp;&amp; v !== '') ? '' + v : dv;
 		},
 
-		getPos : function(n) {
+		getPos : function(n, ro) {
 			var t = this, x = 0, y = 0, e, d = t.doc, r;
 
 			n = t.get(n);
+			ro = ro || d.body;
 
-			// Use getBoundingClientRect on IE, Opera has it but it's not perfect
-			if (n &amp;&amp; isIE &amp;&amp; !t.stdMode) {
-				n = n.getBoundingClientRect();
-				e = t.boxModel ? d.documentElement : d.body;
-				x = t.getStyle(t.select('html')[0], 'borderWidth'); // Remove border
-				x = (x == 'medium' || t.boxModel &amp;&amp; !t.isIE6) &amp;&amp; 2 || x;
-				n.top += t.win.self != t.win.top ? 2 : 0; // IE adds some strange extra cord if used in a frameset
+			if (n) {
+				// Use getBoundingClientRect on IE, Opera has it but it's not perfect
+				if (isIE &amp;&amp; !t.stdMode) {
+					n = n.getBoundingClientRect();
+					e = t.boxModel ? d.documentElement : d.body;
+					x = t.getStyle(t.select('html')[0], 'borderWidth'); // Remove border
+					x = (x == 'medium' || t.boxModel &amp;&amp; !t.isIE6) &amp;&amp; 2 || x;
+					n.top += t.win.self != t.win.top ? 2 : 0; // IE adds some strange extra cord if used in a frameset
 
-				return {x : n.left + e.scrollLeft - x, y : n.top + e.scrollTop - x};
-			}
+					return {x : n.left + e.scrollLeft - x, y : n.top + e.scrollTop - x};
+				}
 
-			r = n;
-			while (r) {
-				x += r.offsetLeft || 0;
-				y += r.offsetTop || 0;
-				r = r.offsetParent;
-			}
+				r = n;
+				while (r &amp;&amp; r != ro &amp;&amp; r.nodeType) {
+					x += r.offsetLeft || 0;
+					y += r.offsetTop || 0;
+					r = r.offsetParent;
+				}
 
-			r = n;
-			while (r) {
-				// Opera 9.25 bug fix, fixed in 9.50
-				if (!/^table-row|inline.*/i.test(t.getStyle(r, &quot;display&quot;, 1))) {
+				r = n.parentNode;
+				while (r &amp;&amp; r != ro &amp;&amp; r.nodeType) {
 					x -= r.scrollLeft || 0;
 					y -= r.scrollTop || 0;
+					r = r.parentNode;
 				}
-
-				r = r.parentNode;
-
-				// No node type or document type
-				if (!r.nodeType || r.nodeType == 9 || r.nodeName.toLowerCase() == 'body')
-					break;
 			}
 
 			return {x : x, y : y};
@@ -1634,21 +1668,36 @@ tinymce.create('static tinymce.util.XHR', {
 		},
 
 		loadCSS : function(u) {
-			var t = this, d = t.doc;
+			var t = this, d = t.doc, head;
 
 			if (!u)
 				u = '';
 
+			head = t.select('head')[0];
+
 			each(u.split(','), function(u) {
+				var link;
+
 				if (t.files[u])
 					return;
 
 				t.files[u] = true;
-				t.add(t.select('head')[0], 'link', {rel : 'stylesheet', href : tinymce._addVer(u)});
+				link = t.create('link', {rel : 'stylesheet', href : tinymce._addVer(u)});
+
+				// IE 8 has a bug where dynamically loading stylesheets would produce a 1 item remaining bug
+				// This fix seems to resolve that issue by realcing the document ones a stylesheet finishes loading
+				// It's ugly but it seems to work fine.
+				if (isIE &amp;&amp; d.documentMode) {
+					link.onload = function() {
+						d.recalc();
+						link.onload = null;
+					};
+				}
+
+				head.appendChild(link);
 			});
 		},
 
-
 		addClass : function(e, c) {
 			return this.run(e, function(e) {
 				var o;
@@ -1707,7 +1756,6 @@ tinymce.create('static tinymce.util.XHR', {
 			return !e || e.style.display == 'none' || this.getStyle(e, 'display') == 'none';
 		},
 
-
 		uniqueId : function(p) {
 			return (!p ? 'mce_' : p) + (this.counter++);
 		},
@@ -1777,7 +1825,7 @@ tinymce.create('static tinymce.util.XHR', {
 					if (x) {
 						// So if we replace the p elements with divs and mark them and then replace them back to paragraphs
 						// after we use innerHTML we can fix the DOM tree
-						h = h.replace(/&lt;p ([^&gt;]+)&gt;|&lt;p&gt;/g, '&lt;div $1 mce_tmp=&quot;1&quot;&gt;');
+						h = h.replace(/&lt;p ([^&gt;]+)&gt;|&lt;p&gt;/ig, '&lt;div $1 mce_tmp=&quot;1&quot;&gt;');
 						h = h.replace(/&lt;\/p&gt;/g, '&lt;/div&gt;');
 
 						// Set the new HTML with DIVs
@@ -1828,7 +1876,7 @@ tinymce.create('static tinymce.util.XHR', {
 		},
 
 		processHTML : function(h) {
-			var t = this, s = t.settings;
+			var t = this, s = t.settings, codeBlocks = [];
 
 			if (!s.process_html)
 				return h;
@@ -1848,7 +1896,7 @@ tinymce.create('static tinymce.util.XHR', {
 			// Store away src and href in mce_src and mce_href since browsers mess them up
 			if (s.keep_values) {
 				// Wrap scripts and styles in comments for serialization purposes
-				if (/&lt;script|style/.test(h)) {
+				if (/&lt;script|noscript|style/i.test(h)) {
 					function trim(s) {
 						// Remove prefix and suffix code for element
 						s = s.replace(/(&lt;!--\[CDATA\[|\]\]--&gt;)/g, '\n');
@@ -1859,32 +1907,66 @@ tinymce.create('static tinymce.util.XHR', {
 						return s;
 					};
 
-					// Preserve script elements
-					h = h.replace(/&lt;script([^&gt;]+|)&gt;([\s\S]*?)&lt;\/script&gt;/g, function(v, a, b) {
-						// Remove prefix and suffix code for script element
-						b = trim(b);
-
+					// Wrap the script contents in CDATA and keep them from executing
+					h = h.replace(/&lt;script([^&gt;]+|)&gt;([\s\S]*?)&lt;\/script&gt;/gi, function(v, attribs, text) {
 						// Force type attribute
-						if (!a)
-							a = ' type=&quot;text/javascript&quot;';
+						if (!attribs)
+							attribs = ' type=&quot;text/javascript&quot;';
+
+						// Convert the src attribute of the scripts
+						attribs = attribs.replace(/src=\&quot;([^\&quot;]+)\&quot;?/i, function(a, url) {
+							if (s.url_converter)
+								url = t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(url), 'src', 'script'));
 
-						// Wrap contents in a comment
-						if (b)
-							b = '&lt;!--\n' + b + '\n// --&gt;';
+							return 'mce_src=&quot;' + url + '&quot;';
+						});
 
-						// Output fake element
-						return '&lt;mce:script' + a + '&gt;' + b + '&lt;/mce:script&gt;';
+						// Wrap text contents
+						if (tinymce.trim(text)) {
+							codeBlocks.push(trim(text));
+							text = '&lt;!--\nMCE_SCRIPT:' + (codeBlocks.length - 1) + '\n// --&gt;';
+						}
+
+						return '&lt;mce:script' + attribs + '&gt;' + text + '&lt;/mce:script&gt;';
 					});
 
-					// Preserve style elements
-					h = h.replace(/&lt;style([^&gt;]+|)&gt;([\s\S]*?)&lt;\/style&gt;/g, function(v, a, b) {
-						b = trim(b);
-						return '&lt;mce:style' + a + '&gt;&lt;!--\n' + b + '\n--&gt;&lt;/mce:style&gt;&lt;style' + a + ' mce_bogus=&quot;1&quot;&gt;' + b + '&lt;/style&gt;';
+					// Wrap style elements
+					h = h.replace(/&lt;style([^&gt;]+|)&gt;([\s\S]*?)&lt;\/style&gt;/gi, function(v, attribs, text) {
+						// Wrap text contents
+						if (text) {
+							codeBlocks.push(trim(text));
+							text = '&lt;!--\nMCE_SCRIPT:' + (codeBlocks.length - 1) + '\n--&gt;';
+						}
+
+						return '&lt;mce:style' + attribs + '&gt;' + text + '&lt;/mce:style&gt;&lt;style ' + attribs + ' mce_bogus=&quot;1&quot;&gt;' + text + '&lt;/style&gt;';
+					});
+
+					// Wrap noscript elements
+					h = h.replace(/&lt;noscript([^&gt;]+|)&gt;([\s\S]*?)&lt;\/noscript&gt;/g, function(v, attribs, text) {
+						return '&lt;mce:noscript' + attribs + '&gt;&lt;!--' + t.encode(text).replace(/--/g, '&amp;#45;&amp;#45;') + '--&gt;&lt;/mce:noscript&gt;';
 					});
 				}
 
 				h = h.replace(/&lt;!\[CDATA\[([\s\S]+)\]\]&gt;/g, '&lt;!--[CDATA[$1]]--&gt;');
 
+				// Remove false bool attributes and force attributes into xhtml style attr=&quot;attr&quot;
+				h = h.replace(/&lt;([\w:]+) [^&gt;]*(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)[^&gt;]*&gt;/gi, function(val) {
+					function handle(val, name, value) {
+						// Remove false/0 attribs
+						if (value === 'false' || value === '0')
+							return '';
+
+						return ' ' + name + '=&quot;' + name + '&quot;';
+					};
+
+					val = val.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=[\&quot;]([^\&quot;]+)[\&quot;]/gi, handle); // W3C
+					val = val.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=[\']([^\']+)[\']/gi, handle); // W3C
+					val = val.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=([^\s\&quot;\'&gt;]+)/gi, handle); // IE
+					val = val.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)([\s&gt;])/gi, ' $1=&quot;$1&quot;$2'); // Force attr=&quot;attr&quot;
+
+					return val;
+				});
+
 				// Process all tags with src, href or style
 				h = h.replace(/&lt;([\w:]+) [^&gt;]*(src|href|style|shape|coords)[^&gt;]*&gt;/gi, function(a, n) {
 					function handle(m, b, c) {
@@ -1895,25 +1977,12 @@ tinymce.create('static tinymce.util.XHR', {
 							return m;
 
 						if (b == 'style') {
-							// Why did I need this one?
-							//if (isIE)
-							//	u = t.serializeStyle(t.parseStyle(u));
-
 							// No mce_style for elements with these since they might get resized by the user
 							if (t._isRes(c))
 								return m;
 
-							if (s.hex_colors) {
-								u = u.replace(/rgb\([^\)]+\)/g, function(v) {
-									return t.toHex(v);
-								});
-							}
-
-							if (s.url_converter) {
-								u = u.replace(/url\([\'\&quot;]?([^\)\'\&quot;]+)\)/g, function(x, c) {
-									return 'url(' + t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), b, n)) + ')';
-								});
-							}
+							// Parse and serialize the style to convert for example uppercase styles like &quot;BORDER: 1px&quot;
+							u = t.encode(t.serializeStyle(t.parseStyle(u)));
 						} else if (b != 'coords' &amp;&amp; b != 'shape') {
 							if (s.url_converter)
 								u = t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), b, n));
@@ -1927,6 +1996,11 @@ tinymce.create('static tinymce.util.XHR', {
 
 					return a.replace(/ (src|href|style|coords|shape)=([^\s\&quot;\'&gt;]+)/gi, handle); // IE
 				});
+
+				// Restore script blocks
+				h = h.replace(/MCE_SCRIPT:([0-9]+)/g, function(val, idx) {
+					return codeBlocks[idx];
+				});
 			}
 
 			return h;
@@ -1952,25 +2026,41 @@ tinymce.create('static tinymce.util.XHR', {
 		setOuterHTML : function(e, h, d) {
 			var t = this;
 
-			return this.run(e, function(e) {
+			function setHTML(e, h, d) {
 				var n, tp;
+				
+				tp = d.createElement(&quot;body&quot;);
+				tp.innerHTML = h;
+
+				n = tp.lastChild;
+				while (n) {
+					t.insertAfter(n.cloneNode(true), e);
+					n = n.previousSibling;
+				}
+
+				t.remove(e);
+			};
 
+			return this.run(e, function(e) {
 				e = t.get(e);
-				d = d || e.ownerDocument || t.doc;
-
-				if (isIE &amp;&amp; e.nodeType == 1)
-					e.outerHTML = h;
-				else {
-					tp = d.createElement(&quot;body&quot;);
-					tp.innerHTML = h;
-
-					n = tp.lastChild;
-					while (n) {
-						t.insertAfter(n.cloneNode(true), e);
-						n = n.previousSibling;
-					}
 
-					t.remove(e);
+				// Only set HTML on elements
+				if (e.nodeType == 1) {
+					d = d || e.ownerDocument || t.doc;
+
+					if (isIE) {
+						try {
+							// Try outerHTML for IE it sometimes produces an unknown runtime error
+							if (isIE &amp;&amp; e.nodeType == 1)
+								e.outerHTML = h;
+							else
+								setHTML(e, h, d);
+						} catch (ex) {
+							// Fix for unknown runtime error
+							setHTML(e, h, d);
+						}
+					} else
+						setHTML(e, h, d);
 				}
 			});
 		},
@@ -2018,7 +2108,6 @@ tinymce.create('static tinymce.util.XHR', {
 			}) : s;
 		},
 
-
 		insertAfter : function(n, r) {
 			var t = this;
 
@@ -2039,17 +2128,15 @@ tinymce.create('static tinymce.util.XHR', {
 			});
 		},
 
-
 		isBlock : function(n) {
 			if (n.nodeType &amp;&amp; n.nodeType !== 1)
 				return false;
 
 			n = n.nodeName || n;
 
-			return /^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TR|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);
+			return /^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TH|TBODY|TR|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);
 		},
 
-
 		replace : function(n, o, k) {
 			var t = this;
 
@@ -2075,7 +2162,6 @@ tinymce.create('static tinymce.util.XHR', {
 			});
 		},
 
-
 		findCommonAncestor : function(a, b) {
 			var ps = a, pe;
 
@@ -2219,9 +2305,13 @@ tinymce.create('static tinymce.util.XHR', {
 				if (n.nodeName == 'OBJECT')
 					return n.attributes;
 
+				// IE doesn't keep the selected attribute if you clone option elements
+				if (n.nodeName === 'OPTION' &amp;&amp; this.getAttrib(n, 'selected'))
+					o.push({specified : 1, nodeName : 'selected'});
+
 				// It's crazy that this is faster in IE but it's because it returns all attributes all the time
-				n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi, function(a, b) {
-					o.push({specified : 1, nodeName : b});
+				n.cloneNode(false).outerHTML.replace(/&lt;\/?[\w:]+ ?|=[\&quot;][^\&quot;]+\&quot;|=\'[^\']+\'|=\w+|&gt;/gi, '').replace(/[\w:]+/gi, function(a) {
+					o.push({specified : 1, nodeName : a});
 				});
 
 				return o;
@@ -2233,7 +2323,10 @@ tinymce.create('static tinymce.util.XHR', {
 		destroy : function(s) {
 			var t = this;
 
-			t.win = t.doc = t.root = null;
+			if (t.events)
+				t.events.destroy();
+
+			t.win = t.doc = t.root = t.events = null;
 
 			// Manual destroy then remove unload handler
 			if (!s)
@@ -2272,16 +2365,29 @@ tinymce.create('static tinymce.util.XHR', {
 				return n.replace(/[ \t\r\n]+|&amp;nbsp;|&amp;#160;/g, '') == '';
 			};
 
+			// Added until Gecko can create real HTML documents using implementation.createHTMLDocument
+			// this is to future proof it if Gecko decides to implement the error checking for range methods.
+			function nodeIndex(n) {
+				var i = 0;
+
+				while (n.previousSibling) {
+					i++;
+					n = n.previousSibling;
+				}
+
+				return i;
+			};
+
 			if (pe &amp;&amp; e) {
 				// Get before chunk
-				r.setStartBefore(pe);
-				r.setEndBefore(e);
+				r.setStart(pe.parentNode, nodeIndex(pe));
+				r.setEnd(e.parentNode, nodeIndex(e));
 				bef = r.extractContents();
 
 				// Get after chunk
 				r = t.createRng();
-				r.setStartAfter(e);
-				r.setEndAfter(pe);
+				r.setStart(e.parentNode, nodeIndex(e) + 1);
+				r.setEnd(pe.parentNode, nodeIndex(pe) + 1);
 				aft = r.extractContents();
 
 				// Insert chunks and remove parent
@@ -2310,6 +2416,46 @@ tinymce.create('static tinymce.util.XHR', {
 			}
 		},
 
+		bind : function(target, name, func, scope) {
+			var t = this;
+
+			if (!t.events)
+				t.events = new tinymce.dom.EventUtils();
+
+			return t.events.add(target, name, func, scope || this);
+		},
+
+		unbind : function(target, name, func) {
+			var t = this;
+
+			if (!t.events)
+				t.events = new tinymce.dom.EventUtils();
+
+			return t.events.remove(target, name, func);
+		},
+
+
+		_findSib : function(node, selector, name) {
+			var t = this, f = selector;
+
+			if (node) {
+				// If expression make a function of it using is
+				if (is(f, 'string')) {
+					f = function(node) {
+						return t.is(node, selector);
+					};
+				}
+
+				// Loop all siblings
+				for (node = node[name]; node; node = node[name]) {
+					if (f(node))
+						return node;
+				}
+			}
+
+			return null;
+		},
+
 		_isRes : function(c) {
 			// Is live resizble element
 			return /^(top|left|bottom|right|width|height)/i.test(c) || /;\s*(top|left|bottom|right|width|height)/i.test(c);
@@ -2344,10 +2490,8 @@ tinymce.create('static tinymce.util.XHR', {
 			return s;
 		}
 		*/
+	});
 
-		});
-
-	// Setup page DOM
 	tinymce.DOM = new tinymce.dom.DOMUtils(document, {process_html : 0});
 })(tinymce);
 (function(ns) {
@@ -2541,10 +2685,6 @@ tinymce.create('static tinymce.util.XHR', {
 		},
 
 /*
-		toString : function() {
-			// Not implemented
-		},
-
 		detach : function() {
 			// Not implemented
 		},
@@ -3052,105 +3192,127 @@ tinymce.create('static tinymce.util.XHR', {
 })(tinymce.dom);
 (function() {
 	function Selection(selection) {
-		var t = this;
+		var t = this, invisibleChar = '\uFEFF', range, lastIERng;
 
-		function getRange() {
-			var dom = selection.dom, ieRange = selection.getRng(), domRange = dom.createRng(), startPos = {}, endPos = {};
-
-			// Handle control selection
-			if (ieRange.item) {
-				domRange.setStartBefore(ieRange.item(0));
-				domRange.setEndAfter(ieRange.item(0));
+		function compareRanges(rng1, rng2) {
+			if (rng1 &amp;&amp; rng2) {
+				// Both are control ranges and the selected element matches
+				if (rng1.item &amp;&amp; rng2.item &amp;&amp; rng1.item(0) === rng2.item(0))
+					return 1;
 
-				return domRange;
+				// Both are text ranges and the range matches
+				if (rng1.isEqual &amp;&amp; rng2.isEqual &amp;&amp; rng2.isEqual(rng1))
+					return 1;
 			}
 
-			function findEndPoint(ie_rng, start, pos) {
-				var rng, rng2, startElement;
-
-				rng = ie_rng.duplicate();
-				rng.collapse(start);
-				element = rng.parentElement();
-
-				// If element is block then we need to move one character
-				// since the selection has a extra invisible character
-				if (element.currentStyle.display == 'block') {
-					rng = ie_rng.duplicate();
-					rng2 = ie_rng.duplicate();
+			return 0;
+		};
 
-					// Move one character at beginning/end of selection
-					if (start)
-						rng.moveStart('character', 1);
-					else
-						rng.moveEnd('character', -1);
+		function getRange() {
+			var dom = selection.dom, ieRange = selection.getRng(), domRange = dom.createRng(), startPos, endPos, element, sc, ec, collapsed;
 
-					// The range shouldn't have been changed so lets restore it
-					if (rng.text != rng2.text)
-						rng = rng2;
+			function findIndex(element) {
+				var nl = element.parentNode.childNodes, i;
 
-					rng.collapse(start);
-					element = rng.parentElement();
+				for (i = nl.length - 1; i &gt;= 0; i--) {
+					if (nl[i] == element)
+						return i;
 				}
 
-				pos.parent = element;
-				pos.range = rng;
+				return -1;
 			};
 
-			function findIndexAndOffset(pos) {
-				var rng = pos.range, i, nl, marker, sibling, idx = 0;
-
-				// Set parent and offset
-				pos.offset = 0;
-				pos.parent = rng.parentElement();
+			function findEndPoint(start) {
+				var rng = ieRange.duplicate(), parent, i, nl, n, offset = 0, index = 0, pos, tmpRng;
 
-				// Insert marker
-				rng.pasteHTML('&lt;span id=&quot;_mce&quot;&gt;&lt;/span&gt;');
-				marker = dom.get('_mce');
+				// Insert marker character
+				rng.collapse(start);
+				parent = rng.parentElement();
+				rng.pasteHTML(invisibleChar); // Needs to be a pasteHTML instead of .text = since IE has a bug with nodeValue
 
-				// Find the makers node index excluding text node fragmentation
-				nl = pos.parent.childNodes;
+				// Find marker character
+				nl = parent.childNodes;
 				for (i = 0; i &lt; nl.length; i++) {
-					if (nl[i] == marker) {
-						pos.index = idx;
-						break;
-					}
-
-					if (i &gt; 0 &amp;&amp; (nl[i].nodeType != 3 || nl[i - 1].nodeType != 3))
-						idx++;
-				}
+					n = nl[i];
+
+					// Calculate node index excluding text node fragmentation
+					if (i &gt; 0 &amp;&amp; (n.nodeType !== 3 || nl[i - 1].nodeType !== 3))
+						index++;
+
+					// If text node then calculate offset
+					if (n.nodeType === 3) {
+						// Look for marker
+						pos = n.nodeValue.indexOf(invisibleChar);
+						if (pos !== -1) {
+							offset += pos;
+							break;
+						}
 
-				// Figure out the character offset excluding text node fragmentation
-				sibling = marker.previousSibling;
-				if (sibling) {
-					if (sibling.nodeType === 3) {
-						do {
-							pos.offset += sibling.nodeValue.length;
-						} while ((sibling = sibling.previousSibling) &amp;&amp; sibling.nodeType == 3);
+						offset += n.nodeValue.length;
 					} else
-						pos.index++;
+						offset = 0;
 				}
 
-				// Remove the marker
-				dom.remove(marker);
+				// Remove marker character
+				rng.moveStart('character', -1);
+				rng.text = '';
 
-				return pos;
+				return {index : index, offset : offset, parent : parent};
 			};
 
-			// Find end points
-			findEndPoint(ieRange, true, startPos);
-			findEndPoint(ieRange, false, endPos);
+			// If selection is outside the current document just return an empty range
+			element = ieRange.item ? ieRange.item(0) : ieRange.parentElement();
+			if (element.ownerDocument != dom.doc)
+				return domRange;
+
+			// Handle control selection or text selection of a image
+			if (ieRange.item || !element.hasChildNodes()) {
+				domRange.setStart(element.parentNode, findIndex(element));
+				domRange.setEnd(domRange.startContainer, domRange.startOffset + 1);
+
+				return domRange;
+			}
+
+			// Check collapsed state
+			collapsed = selection.isCollapsed();
 
-			// Find start and end positions
-			findIndexAndOffset(startPos);
-			findIndexAndOffset(endPos);
+			// Find start and end pos index and offset
+			startPos = findEndPoint(true);
+			endPos = findEndPoint(false);
 
 			// Normalize the elements to avoid fragmented dom
 			startPos.parent.normalize();
 			endPos.parent.normalize();
 
-			// Set start and end points of the domRange
-			domRange.setStart(startPos.parent.childNodes[startPos.index], startPos.offset);
-			domRange.setEnd(endPos.parent.childNodes[endPos.index], endPos.offset);
+			// Set start container and offset
+			sc = startPos.parent.childNodes[Math.min(startPos.index, startPos.parent.childNodes.length - 1)];
+
+			if (sc.nodeType != 3)
+				domRange.setStart(startPos.parent, startPos.index);
+			else
+				domRange.setStart(startPos.parent.childNodes[startPos.index], startPos.offset);
+
+			// Set end container and offset
+			ec = endPos.parent.childNodes[Math.min(endPos.index, endPos.parent.childNodes.length - 1)];
+
+			if (ec.nodeType != 3) {
+				if (!collapsed)
+					endPos.index++;
+
+				domRange.setEnd(endPos.parent, endPos.index);
+			} else
+				domRange.setEnd(endPos.parent.childNodes[endPos.index], endPos.offset);
+
+			// If not collapsed then make sure offsets are valid
+			if (!collapsed) {
+				sc = domRange.startContainer;
+				if (sc.nodeType == 1)
+					domRange.setStart(sc, Math.min(domRange.startOffset, sc.childNodes.length));
+
+				ec = domRange.endContainer;
+				if (ec.nodeType == 1)
+					domRange.setEnd(ec, Math.min(domRange.endOffset, ec.childNodes.length));
+			}
 
 			// Restore selection to new range
 			t.addRange(domRange);
@@ -3159,68 +3321,136 @@ tinymce.create('static tinymce.util.XHR', {
 		};
 
 		this.addRange = function(rng) {
-			var ieRng, startPos, endPos, body = selection.dom.doc.body;
+			var ieRng, body = selection.dom.doc.body, startPos, endPos, sc, so, ec, eo;
+
+			// Setup some shorter versions
+			sc = rng.startContainer;
+			so = rng.startOffset;
+			ec = rng.endContainer;
+			eo = rng.endOffset;
+			ieRng = body.createTextRange();
+
+			// Find element
+			sc = sc.nodeType == 1 ? sc.childNodes[Math.min(so, sc.childNodes.length - 1)] : sc;
+			ec = ec.nodeType == 1 ? ec.childNodes[Math.min(so == eo ? eo : eo - 1, ec.childNodes.length - 1)] : ec;
+
+			// Single element selection
+			if (sc == ec &amp;&amp; sc.nodeType == 1) {
+				// Make control selection for some elements
+				if (/^(IMG|TABLE)$/.test(sc.nodeName) &amp;&amp; so != eo) {
+					ieRng = body.createControlRange();
+					ieRng.addElement(sc);
+				} else {
+					ieRng = body.createTextRange();
+
+					// Padd empty elements with invisible character
+					if (!sc.hasChildNodes() &amp;&amp; sc.canHaveHTML)
+						sc.innerHTML = invisibleChar;
+
+					// Select element contents
+					ieRng.moveToElementText(sc);
+
+					// If it's only containing a padding remove it so the caret remains
+					if (sc.innerHTML == invisibleChar) {
+						ieRng.collapse(true);
+						sc.removeChild(sc.firstChild);
+					}
+				}
+
+				if (so == eo)
+					ieRng.collapse(eo &lt;= rng.endContainer.childNodes.length - 1);
+
+				ieRng.select();
 
-			// Element selection, then make a control range
-			if (rng.startContainer.nodeType == 1) {
-				ieRng = body.createControlRange();
-				ieRng.addElement(rng.startContainer.childNodes[rng.startOffset]);
 				return;
 			}
 
-			function findPos(start) {
-				var container, offset, rng2, pos;
+			function getCharPos(container, offset) {
+				var nodeVal, rng, pos;
 
-				// Get container and offset
-				container = start ? rng.startContainer : rng.endContainer;
-				offset = start ? rng.startOffset : rng.endOffset;
+				if (container.nodeType != 3)
+					return -1;
 
-				// Insert marker character
-				container.nodeValue = container.nodeValue.substring(0, offset) + '\uFEFF' + container.nodeValue.substring(offset);
+				nodeVal = container.nodeValue;
+				rng = body.createTextRange();
 
-				// Create range for whole parent element
-				rng2 = body.createTextRange();
-				rng2.moveToElementText(container.parentNode);
-				pos = rng2.text.indexOf('\uFEFF');
-				container.nodeValue = container.nodeValue.replace(/\uFEFF/, '');
+				// Insert marker at offset position
+				container.nodeValue = nodeVal.substring(0, offset) + invisibleChar + nodeVal.substring(offset);
 
-				if (start)
-					startPos = pos;
-				else
-					endPos = pos;
+				// Find char pos of marker and remove it
+				rng.moveToElementText(container.parentNode);
+				rng.findText(invisibleChar);
+				pos = Math.abs(rng.moveStart('character', -0xFFFFF));
+				container.nodeValue = nodeVal;
+
+				return pos;
 			};
 
-			function setPos(start) {
-				var rng2, container = start ? rng.startContainer : rng.endContainer;
+			// Collapsed range
+			if (rng.collapsed) {
+				pos = getCharPos(sc, so);
 
-				rng2 = body.createTextRange();
-				rng2.moveToElementText(container.parentNode);
-				rng2.collapse(true);
-				rng2.move('character', start ? startPos : endPos);
+				ieRng = body.createTextRange();
+				ieRng.move('character', pos);
+				ieRng.select();
 
-				if (start)
-					ieRng.setEndPoint('StartToStart', rng2);
-				else
-					ieRng.setEndPoint('EndToStart', rng2);
-			};
+				return;
+			} else {
+				// If same text container
+				if (sc == ec &amp;&amp; sc.nodeType == 3) {
+					startPos = getCharPos(sc, so);
 
-			// Create IE specific range
-			ieRng = body.createTextRange();
+					ieRng = body.createTextRange();
+					ieRng.move('character', startPos);
+					ieRng.moveEnd('character', eo - so);
+					ieRng.select();
 
-			// Find start/end pos
-			findPos(true);
-			findPos(false);
+					return;
+				}
+
+				// Get caret positions
+				startPos = getCharPos(sc, so);
+				endPos = getCharPos(ec, eo);
+				ieRng = body.createTextRange();
+
+				// Move start of range to start character position or start element
+				if (startPos == -1) {
+					ieRng.moveToElementText(sc);
+					startPos = 0;
+				} else
+					ieRng.move('character', startPos);
 
-			// Set start/end pos
-			setPos(true);
-			setPos(false);
+				// Move end of range to end character position or end element
+				tmpRng = body.createTextRange();
 
-			ieRng.select();
+				if (endPos == -1)
+					tmpRng.moveToElementText(ec);
+				else
+					tmpRng.move('character', endPos);
+
+				ieRng.setEndPoint('EndToEnd', tmpRng);
+				ieRng.select();
+
+				return;
+			}
 		};
 
 		this.getRangeAt = function() {
-			// todo: Implement range caching here later
-			return getRange();
+			// Setup new range if the cache is empty
+			if (!range || !compareRanges(lastIERng, selection.getRng())) {
+				range = getRange();
+
+				// Store away text range for next call
+				lastIERng = selection.getRng();
+			}
+
+			// Return cached range
+			return range;
+		};
+
+		this.destroy = function() {
+			// Destroy cached range and last IE range to avoid memory leaks
+			lastIERng = range = null;
 		};
 	};
 
@@ -3239,9 +3469,7 @@ tinymce.create('static tinymce.util.XHR', {
 var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['&quot;][^'&quot;]*['&quot;]|[^[\]'&quot;]+)+\]|\\.|[^ &gt;+~,(\[\\]+)+|[&gt;+~])(\s*,\s*)?/g,
 	done = 0,
 	toString = Object.prototype.toString,
-	arraySplice = Array.prototype.splice,
-	arrayPush = Array.prototype.push,
-	arraySort = Array.prototype.sort;
+	hasDuplicate = false;
 
 var Sizzle = function(selector, context, results, seed) {
 	results = results || [];
@@ -3337,17 +3565,17 @@ var Sizzle = function(selector, context, results, seed) {
 
 	if ( toString.call(checkSet) === &quot;[object Array]&quot; ) {
 		if ( !prune ) {
-			arrayPush.apply( results, checkSet );
+			results.push.apply( results, checkSet );
 		} else if ( context &amp;&amp; context.nodeType === 1 ) {
 			for ( var i = 0; checkSet[i] != null; i++ ) {
 				if ( checkSet[i] &amp;&amp; (checkSet[i] === true || checkSet[i].nodeType === 1 &amp;&amp; contains(context, checkSet[i])) ) {
-					arrayPush.call( results, set[i] );
+					results.push( set[i] );
 				}
 			}
 		} else {
 			for ( var i = 0; checkSet[i] != null; i++ ) {
 				if ( checkSet[i] &amp;&amp; checkSet[i].nodeType === 1 ) {
-					arrayPush.call( results, set[i] );
+					results.push( set[i] );
 				}
 			}
 		}
@@ -3366,12 +3594,12 @@ var Sizzle = function(selector, context, results, seed) {
 Sizzle.uniqueSort = function(results){
 	if ( sortOrder ) {
 		hasDuplicate = false;
-		arraySort.call(results, sortOrder);
+		results.sort(sortOrder);
 
 		if ( hasDuplicate ) {
 			for ( var i = 1; i &lt; results.length; i++ ) {
 				if ( results[i] === results[i-1] ) {
-					arraySplice.call(results, i--, 1);
+					results.splice(i--, 1);
 				}
 			}
 		}
@@ -3896,7 +4124,7 @@ var makeArray = function(array, results) {
 	array = Array.prototype.slice.call( array );
 
 	if ( results ) {
-		arrayPush.apply( results, array );
+		results.push.apply( results, array );
 		return results;
 	}
 	
@@ -3952,10 +4180,10 @@ if ( document.documentElement.compareDocumentPosition ) {
 } else if ( document.createRange ) {
 	sortOrder = function( a, b ) {
 		var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
-		aRange.selectNode(a);
-		aRange.collapse(true);
-		bRange.selectNode(b);
-		bRange.collapse(true);
+		aRange.setStart(a, 0);
+		aRange.setEnd(a, 0);
+		bRange.setStart(b, 0);
+		bRange.setEnd(b, 0);
 		var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
 		if ( ret === 0 ) {
 			hasDuplicate = true;
@@ -3968,9 +4196,9 @@ if ( document.documentElement.compareDocumentPosition ) {
 // querying by getElementById (and provide a workaround)
 (function(){
 	// We're going to inject a fake input element with a specified name
-	var form = document.createElement(&quot;form&quot;),
+	var form = document.createElement(&quot;div&quot;),
 		id = &quot;script&quot; + (new Date).getTime();
-	form.innerHTML = &quot;&lt;input name='&quot; + id + &quot;'/&gt;&quot;;
+	form.innerHTML = &quot;&lt;a name='&quot; + id + &quot;'/&gt;&quot;;
 
 	// Inject it into the root element, check its status, and remove it quickly
 	var root = document.documentElement;
@@ -4201,18 +4429,30 @@ var posProcess = function(selector, context){
 window.tinymce.dom.Sizzle = Sizzle;
 
 })();
+
 (function(tinymce) {
 	// Shorten names
 	var each = tinymce.each, DOM = tinymce.DOM, isIE = tinymce.isIE, isWebKit = tinymce.isWebKit, Event;
 
-	tinymce.create('static tinymce.dom.Event', {
-		inits : [],
-		events : [],
-
+	tinymce.create('tinymce.dom.EventUtils', {
+		EventUtils : function() {
+			this.inits = [];
+			this.events = [];
+		},
 
 		add : function(o, n, f, s) {
 			var cb, t = this, el = t.events, r;
 
+			if (n instanceof Array) {
+				r = [];
+
+				each(n, function(n) {
+					r.push(t.add(o, n, f, s));
+				});
+
+				return r;
+			}
+
 			// Handle array
 			if (o &amp;&amp; o.hasOwnProperty &amp;&amp; o instanceof Array) {
 				r = [];
@@ -4232,11 +4472,20 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			// Setup event callback
 			cb = function(e) {
+				// Is all events disabled
+				if (t.disabled)
+					return;
+
 				e = e || window.event;
 
-				// Patch in target in IE it's W3C valid
-				if (e &amp;&amp; !e.target &amp;&amp; isIE)
-					e.target = e.srcElement;
+				// Patch in target, preventDefault and stopPropagation in IE it's W3C valid
+				if (e &amp;&amp; isIE) {
+					if (!e.target)
+						e.target = e.srcElement;
+
+					// Patch in preventDefault, stopPropagation methods for W3C compatibility
+					tinymce.extend(e, t._stoppers);
+				}
 
 				if (!s)
 					return f(e);
@@ -4319,12 +4568,12 @@ window.tinymce.dom.Sizzle = Sizzle;
 			}
 		},
 
-
 		cancel : function(e) {
 			if (!e)
 				return false;
 
 			this.stop(e);
+
 			return this.prevent(e);
 		},
 
@@ -4346,8 +4595,8 @@ window.tinymce.dom.Sizzle = Sizzle;
 			return false;
 		},
 
-		_unload : function() {
-			var t = Event;
+		destroy : function() {
+			var t = this;
 
 			each(t.events, function(e, i) {
 				t._remove(e.obj, e.name, e.cfunc);
@@ -4382,63 +4631,87 @@ window.tinymce.dom.Sizzle = Sizzle;
 			}
 		},
 
-		_pageInit : function() {
-			var e = Event;
+		_pageInit : function(win) {
+			var t = this;
 
-			// Safari on Mac fires this twice
-			if (e.domLoaded)
+			// Keep it from running more than once
+			if (t.domLoaded)
 				return;
 
-			e._remove(window, 'DOMContentLoaded', e._pageInit);
-			e.domLoaded = true;
+			t.domLoaded = true;
 
-			each(e.inits, function(c) {
+			each(t.inits, function(c) {
 				c();
 			});
 
-			e.inits = [];
+			t.inits = [];
 		},
 
-		_wait : function() {
-			var t;
+		_wait : function(win) {
+			var t = this, doc = win.document;
 
 			// No need since the document is already loaded
-			if (window.tinyMCE_GZ &amp;&amp; tinyMCE_GZ.loaded) {
-				Event.domLoaded = 1;
+			if (win.tinyMCE_GZ &amp;&amp; tinyMCE_GZ.loaded) {
+				t.domLoaded = 1;
 				return;
 			}
 
-			if (isIE &amp;&amp; document.location.protocol != 'https:') {
-				// Fake DOMContentLoaded on IE
-				document.write('&lt;script id=__ie_onload defer src=\'javascript:&quot;&quot;\';&gt;&lt;\/script&gt;');
-				DOM.get(&quot;__ie_onload&quot;).onreadystatechange = function() {
-					if (this.readyState == &quot;complete&quot;) {
-						Event._pageInit();
-						DOM.get(&quot;__ie_onload&quot;).onreadystatechange = null; // Prevent leak
+			// Use IE method
+			if (doc.attachEvent) {
+				doc.attachEvent(&quot;onreadystatechange&quot;, function() {
+					if (doc.readyState === &quot;complete&quot;) {
+						doc.detachEvent(&quot;onreadystatechange&quot;, arguments.callee);
+						t._pageInit(win);
 					}
-				};
-			} else {
-				Event._add(window, 'DOMContentLoaded', Event._pageInit, Event);
+				});
+
+				if (doc.documentElement.doScroll &amp;&amp; win == win.top) {
+					(function() {
+						if (t.domLoaded)
+							return;
 
-				if (isIE || isWebKit) {
-					t = setInterval(function() {
-						if (/loaded|complete/.test(document.readyState)) {
-							clearInterval(t);
-							Event._pageInit();
+						try {
+							// If IE is used, use the trick by Diego Perini
+							// http://javascript.nwbox.com/IEContentLoaded/
+							doc.documentElement.doScroll(&quot;left&quot;);
+						} catch (ex) {
+							setTimeout(arguments.callee, 0);
+							return;
 						}
-					}, 10);
+
+						t._pageInit(win);
+					})();
 				}
+			} else if (doc.addEventListener) {
+				t._add(win, 'DOMContentLoaded', function() {
+					t._pageInit(win);
+				});
 			}
-		}
 
-		});
+			t._add(win, 'load', function() {
+				t._pageInit(win);
+			});
+		},
 
-	// Shorten name
-	Event = tinymce.dom.Event;
+		_stoppers : {
+			preventDefault :  function() {
+				this.returnValue = false;
+			},
+
+			stopPropagation : function() {
+				this.cancelBubble = true;
+			}
+		}
+	});
+
+	Event = tinymce.dom.Event = new tinymce.dom.EventUtils();
 
 	// Dispatch DOM content loaded event for IE and Safari
-	Event._wait();
-	tinymce.addUnload(Event._unload);
+	Event._wait(window);
+
+	tinymce.addUnload(function() {
+		Event.destroy();
+	});
 })(tinymce);
 (function(tinymce) {
 	var each = tinymce.each;
@@ -4564,8 +4837,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 				dom.setStyle(b, 'zIndex', parseInt(t.getStyle('zIndex', 1) || 0) - 1);
 			}
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	function trimNl(s) {
@@ -4743,7 +5015,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 			sy = vp.y;
 
 			// Simple bookmark fast but not as persistent
-			if (si == 'simple')
+			if (si)
 				return {rng : r, scrollX : sx, scrollY : sy};
 
 			// Handle IE
@@ -4905,6 +5177,8 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			// Handle explorer
 			if (isIE) {
+				t.tridentSel.destroy();
+
 				// Handle simple
 				if (r = b.rng) {
 					try {
@@ -5196,12 +5470,14 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			t.win = null;
 
+			if (t.tridentSel)
+				t.tridentSel.destroy();
+
 			// Manual destroy then remove unload handler
 			if (!s)
 				tinymce.removeUnload(t.destroy);
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	tinymce.create('tinymce.dom.XMLWriter', {
@@ -5269,7 +5545,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 		},
 
 		writeCDATA : function(v) {
-			this.node.appendChild(this.doc.createCDATA(v));
+			this.node.appendChild(this.doc.createCDATASection(v));
 		},
 
 		writeComment : function(v) {
@@ -5292,8 +5568,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			return h;
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	tinymce.create('tinymce.dom.StringWriter', {
@@ -5306,7 +5581,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 		StringWriter : function(s) {
 			this.settings = tinymce.extend({
 				indent_char : ' ',
-				indentation : 1
+				indentation : 0
 			}, s);
 
 			this.reset();
@@ -5419,8 +5694,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			return true;
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	// Shorten names
@@ -5451,11 +5725,10 @@ window.tinymce.dom.Sizzle = Sizzle;
 				valid_nodes : 0,
 				node_filter : 0,
 				attr_filter : 0,
-				invalid_attrs : /^(mce_|_moz_)/,
-				closed : /(br|hr|input|meta|img|link|param)/,
+				invalid_attrs : /^(mce_|_moz_|sizset|sizcache)/,
+				closed : /^(br|hr|input|meta|img|link|param|area)$/,
 				entity_encoding : 'named',
 				entities : '160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',
-				bool_attrs : /(checked|disabled|readonly|selected|nowrap)/,
 				valid_elements : '*[*]',
 				extended_valid_elements : 0,
 				valid_child_elements : 0,
@@ -5479,8 +5752,14 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			if (s.remove_redundant_brs) {
 				t.onPostProcess.add(function(se, o) {
-					// Remove BR elements at end of list elements since they get rendered in IE
-					o.content = o.content.replace(/&lt;br \/&gt;(\s*&lt;\/li&gt;)/g, '$1');
+					// Remove single BR at end of block elements since they get rendered
+					o.content = o.content.replace(/(&lt;br \/&gt;\s*)+&lt;\/(p|h[1-6]|div|li)&gt;/gi, function(a, b, c) {
+						// Check if it's a single element
+						if (/^&lt;br \/&gt;\s*&lt;\//.test(a))
+							return '&lt;/' + c + '&gt;';
+
+						return a;
+					});
 				});
 			}
 
@@ -5533,9 +5812,21 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			if (s.fix_table_elements) {
 				t.onPreProcess.add(function(se, o) {
-					each(t.dom.select('p table', o.node), function(n) {
-						t.dom.split(t.dom.getParent(n, 'p'), n);
-					});
+					// Since Opera will crash if you attach the node to a dynamic document we need to brrowser sniff a specific build
+					// so Opera users with an older version will have to live with less compaible output not much we can do here
+					if (!tinymce.isOpera || opera.buildNumber() &gt;= 1767) {
+						each(t.dom.select('p table', o.node).reverse(), function(n) {
+							var parent = t.dom.getParent(n.parentNode, 'table,p');
+
+							if (parent.nodeName != 'TABLE') {
+								try {
+									t.dom.split(parent, n);
+								} catch (ex) {
+									// IE can sometimes fire an unknown runtime error so we just ignore it
+								}
+							}
+						});
+					}
 				});
 			}
 		},
@@ -5851,13 +6142,58 @@ window.tinymce.dom.Sizzle = Sizzle;
 		},
 
 		serialize : function(n, o) {
-			var h, t = this;
+			var h, t = this, doc, oldDoc, impl, selected;
 
 			t._setup();
 			o = o || {};
 			o.format = o.format || 'html';
 			t.processObj = o;
+
+			// IE looses the selected attribute on option elements so we need to store it
+			// See: http://support.microsoft.com/kb/829907
+			if (isIE) {
+				selected = [];
+				each(n.getElementsByTagName('option'), function(n) {
+					var v = t.dom.getAttrib(n, 'selected');
+
+					selected.push(v ? v : null);
+				});
+			}
+
 			n = n.cloneNode(true);
+
+			// IE looses the selected attribute on option elements so we need to restore it
+			if (isIE) {
+				each(n.getElementsByTagName('option'), function(n, i) {
+					t.dom.setAttrib(n, 'selected', selected[i]);
+				});
+			}
+
+			// Nodes needs to be attached to something in WebKit/Opera
+			// Older builds of Opera crashes if you attach the node to an document created dynamically
+			// and since we can't feature detect a crash we need to sniff the acutal build number
+			// This fix will make DOM ranges and make Sizzle happy!
+			impl = n.ownerDocument.implementation;
+			if (impl.createHTMLDocument &amp;&amp; (tinymce.isOpera &amp;&amp; opera.buildNumber() &gt;= 1767)) {
+				// Create an empty HTML document
+				doc = impl.createHTMLDocument(&quot;&quot;);
+
+				// Add the element or it's children if it's a body element to the new document
+				each(n.nodeName == 'BODY' ? n.childNodes : [n], function(node) {
+					doc.body.appendChild(doc.importNode(node, true));
+				});
+
+				// Grab first child or body element for serialization
+				if (n.nodeName != 'BODY')
+					n = doc.body.firstChild;
+				else
+					n = doc.body;
+
+				// set the new document in DOMUtils so createElement etc works
+				oldDoc = t.dom.doc;
+				t.dom.doc = doc;
+			}
+
 			t.key = '' + (parseInt(t.key) + 1);
 
 			// Pre process
@@ -5873,6 +6209,10 @@ window.tinymce.dom.Sizzle = Sizzle;
 			// Post process
 			o.content = t.writer.getContent();
 
+			// Restore the old document if it was changed
+			if (oldDoc)
+				t.dom.doc = oldDoc;
+
 			if (!o.no_events)
 				t.onPostProcess.dispatch(t, o);
 
@@ -5893,6 +6233,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 					content : h,
 					patterns : [
 						{pattern : /(&lt;script[^&gt;]*&gt;)(.*?)(&lt;\/script&gt;)/g},
+						{pattern : /(&lt;noscript[^&gt;]*&gt;)(.*?)(&lt;\/noscript&gt;)/g},
 						{pattern : /(&lt;style[^&gt;]*&gt;)(.*?)(&lt;\/style&gt;)/g},
 						{pattern : /(&lt;pre[^&gt;]*&gt;)(.*?)(&lt;\/pre&gt;)/g, encode : 1},
 						{pattern : /(&lt;!--\[CDATA\[)(.*?)(\]\]--&gt;)/g}
@@ -5945,13 +6286,18 @@ window.tinymce.dom.Sizzle = Sizzle;
 				// Restore the \u00a0 character if raw mode is enabled
 				if (s.entity_encoding == 'raw')
 					h = h.replace(/&lt;p&gt;&amp;nbsp;&lt;\/p&gt;|&lt;p([^&gt;]+)&gt;&amp;nbsp;&lt;\/p&gt;/g, '&lt;p$1&gt;\u00a0&lt;/p&gt;');
+
+				// Restore noscript elements
+				h = h.replace(/&lt;noscript([^&gt;]+|)&gt;([\s\S]*?)&lt;\/noscript&gt;/g, function(v, attribs, text) {
+					return '&lt;noscript' + attribs + '&gt;' + t.dom.decode(text.replace(/&lt;!--|--&gt;/g, '')) + '&lt;/noscript&gt;';
+				});
 			}
 
 			o.content = h;
 		},
 
 		_serializeNode : function(n, inn) {
-			var t = this, s = t.settings, w = t.writer, hc, el, cn, i, l, a, at, no, v, nn, ru, ar, iv;
+			var t = this, s = t.settings, w = t.writer, hc, el, cn, i, l, a, at, no, v, nn, ru, ar, iv, closed;
 
 			if (!s.node_filter || s.node_filter(n)) {
 				switch (n.nodeType) {
@@ -5974,7 +6320,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 							nn = nn.substring(4);
 
 						// Check if valid
-						if (!t.validElementsRE.test(nn) || (t.invalidElementsRE &amp;&amp; t.invalidElementsRE.test(nn)) || inn) {
+						if (!t.validElementsRE || !t.validElementsRE.test(nn) || (t.invalidElementsRE &amp;&amp; t.invalidElementsRE.test(nn)) || inn) {
 							iv = true;
 							break;
 						}
@@ -6011,6 +6357,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 						ru = t.findRule(nn);
 						nn = ru.name || nn;
+						closed = s.closed.test(nn);
 
 						// Skip empty nodes or empty node name in IE
 						if ((!hc &amp;&amp; ru.noEmpty) || (isIE &amp;&amp; !nn)) {
@@ -6068,6 +6415,14 @@ window.tinymce.dom.Sizzle = Sizzle;
 							}
 						}
 
+						// Write text from script
+						if (nn === 'script' &amp;&amp; tinymce.trim(n.innerHTML)) {
+							w.writeText('// '); // Padd it with a comment so it will parse on older browsers
+							w.writeCDATA(n.innerHTML.replace(/&lt;!--|--&gt;|&lt;\[CDATA\[|\]\]&gt;/g, '')); // Remove comments and cdata stuctures
+							hc = false;
+							break;
+						}
+
 						// Padd empty nodes with a &amp;nbsp;
 						if (ru.padd) {
 							// If it has only one bogus child, padd it anyway workaround for &lt;td&gt;&lt;br /&gt;&lt;/td&gt; bug
@@ -6098,7 +6453,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 			} else if (n.nodeType == 1)
 				hc = n.hasChildNodes();
 
-			if (hc) {
+			if (hc &amp;&amp; !closed) {
 				cn = n.firstChild;
 
 				while (cn) {
@@ -6110,7 +6465,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			// Write element end
 			if (!iv) {
-				if (hc || !s.closed.test(nn))
+				if (!closed)
 					w.writeFullEndElement();
 				else
 					w.writeEndElement();
@@ -6231,16 +6586,6 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			v = this.dom.getAttrib(n, na);
 
-			// Bool attr
-			if (this.settings.bool_attrs.test(na) &amp;&amp; v) {
-				v = ('' + v).toLowerCase();
-
-				if (v === 'false' || v === '0')
-					return null;
-
-				v = na;
-			}
-
 			switch (na) {
 				case 'rowspan':
 				case 'colspan':
@@ -6283,8 +6628,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 
 			return v;
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	var each = tinymce.each, Event = tinymce.dom.Event;
@@ -6556,8 +6900,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 				}
 			}
 		}
-
-		});
+	});
 
 	// Global script loader
 	tinymce.ScriptLoader = new tinymce.dom.ScriptLoader();
@@ -6661,12 +7004,13 @@ window.tinymce.dom.Sizzle = Sizzle;
 		destroy : function() {
 			tinymce.dom.Event.clear(this.id);
 		}
-
-		});
+	});
 })(tinymce);tinymce.create('tinymce.ui.Container:tinymce.ui.Control', {
 	Container : function(id, s) {
 		this.parent(id, s);
+
 		this.controls = [];
+
 		this.lookup = {};
 	},
 
@@ -6680,8 +7024,7 @@ window.tinymce.dom.Sizzle = Sizzle;
 	get : function(n) {
 		return this.lookup[n];
 	}
-
-	});
+});
 
 tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 	Separator : function(id, s) {
@@ -6692,8 +7035,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 	renderHTML : function() {
 		return tinymce.DOM.createHTML('span', {'class' : this.classPrefix});
 	}
-
-	});
+});
 (function(tinymce) {
 	var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, walk = tinymce.walk;
 
@@ -6721,8 +7063,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			if (is(t.selected))
 				t.setSelected(t.selected);
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, walk = tinymce.walk;
@@ -6820,8 +7161,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 
 			return m;
 		}
-
-		});
+	});
 })(tinymce);(function(tinymce) {
 	var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, Event = tinymce.dom.Event, Element = tinymce.dom.Element;
 
@@ -6935,7 +7275,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 
 				e = e.target;
 
-				if (e &amp;&amp; (e = DOM.getParent(e, 'TR')) &amp;&amp; !DOM.hasClass(e, cp + 'ItemSub')) {
+				if (e &amp;&amp; (e = DOM.getParent(e, 'tr')) &amp;&amp; !DOM.hasClass(e, cp + 'ItemSub')) {
 					m = t.items[e.id];
 
 					if (m.isDisabled())
@@ -6962,7 +7302,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 					var m, r, mi;
 
 					e = e.target;
-					if (e &amp;&amp; (e = DOM.getParent(e, 'TR'))) {
+					if (e &amp;&amp; (e = DOM.getParent(e, 'tr'))) {
 						m = t.items[e.id];
 
 						if (t.lastMenu)
@@ -7148,8 +7488,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 
 			DOM.addClass(ro, 'mceLast');
 		}
-
-		});
+	});
 })(tinymce);(function(tinymce) {
 	var DOM = tinymce.DOM;
 
@@ -7181,8 +7520,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 					return s.onclick.call(s.scope, e);
 			});
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher;
@@ -7192,11 +7530,17 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			var t = this;
 
 			t.parent(id, s);
+
 			t.items = [];
+
 			t.onChange = new Dispatcher(t);
+
 			t.onPostRender = new Dispatcher(t);
+
 			t.onAdd = new Dispatcher(t);
+
 			t.onRenderMenu = new tinymce.util.Dispatcher(this);
+
 			t.classPrefix = 'mceListBox';
 		},
 
@@ -7432,9 +7776,9 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			this.parent();
 
 			Event.clear(this.id + '_text');
+			Event.clear(this.id + '_open');
 		}
-
-		});
+	});
 })(tinymce);(function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher;
 
@@ -7562,15 +7906,16 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 
 			t.onPostRender.dispatch(t, DOM.get(t.id));
 		}
-
-		});
+	});
 })(tinymce);(function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each;
 
 	tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button', {
 		MenuButton : function(id, s) {
 			this.parent(id, s);
+
 			this.onRenderMenu = new tinymce.util.Dispatcher(this);
+
 			s.menu_container = s.menu_container || DOM.doc.body;
 		},
 
@@ -7649,8 +7994,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 				}
 			});
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each;
@@ -7715,8 +8059,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			Event.clear(this.id + '_action');
 			Event.clear(this.id + '_open');
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, is = tinymce.is, each = tinymce.each;
@@ -7734,6 +8077,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			}, t.settings);
 
 			t.onShowMenu = new tinymce.util.Dispatcher(t);
+
 			t.onHideMenu = new tinymce.util.Dispatcher(t);
 
 			t.value = s.default_color;
@@ -7765,6 +8109,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			e = 0;
 
 			Event.add(DOM.doc, 'mousedown', t.hideMenu, t);
+			t.onShowMenu.dispatch(t);
 
 			if (t._focused) {
 				t._keyHandler = Event.add(t.id + '_menu', 'keydown', function(e) {
@@ -7775,8 +8120,6 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 				DOM.select('a', t.id + '_menu')[0].focus(); // Select first link
 			}
 
-			t.onShowMenu.dispatch(t);
-
 			t.isMenuVisible = 1;
 		},
 
@@ -7882,8 +8225,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			Event.clear(this.id + '_more');
 			DOM.remove(this.id + '_menu');
 		}
-
-		});
+	});
 })(tinymce);
 tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 	renderHTML : function() {
@@ -7946,8 +8288,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 
 		return dom.createHTML('table', {id : t.id, 'class' : 'mceToolbar' + (s['class'] ? ' ' + s['class'] : ''), cellpadding : '0', cellspacing : '0', align : t.settings.align || ''}, '&lt;tbody&gt;&lt;tr&gt;' + h + '&lt;/tr&gt;&lt;/tbody&gt;');
 	}
-
-	});
+});
 (function(tinymce) {
 	var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each;
 
@@ -7955,6 +8296,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 		items : [],
 		urls : {},
 		lookup : {},
+
 		onAdd : new Dispatcher(this),
 
 		get : function(n) {
@@ -7994,19 +8336,22 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 			t.urls[n] = u.substring(0, u.lastIndexOf('/'));
 			tinymce.ScriptLoader.add(u, cb, s);
 		}
-
-		});
+	});
 
 	// Create plugin and theme managers
 	tinymce.PluginManager = new tinymce.AddOnManager();
 	tinymce.ThemeManager = new tinymce.AddOnManager();
-}(tinymce));(function(tinymce) {
+}(tinymce));
+
+(function(tinymce) {
 	// Shorten names
 	var each = tinymce.each, extend = tinymce.extend, DOM = tinymce.DOM, Event = tinymce.dom.Event, ThemeManager = tinymce.ThemeManager, PluginManager = tinymce.PluginManager, explode = tinymce.explode;
 
 	tinymce.create('static tinymce.EditorManager', {
 		editors : {},
+
 		i18n : {},
+	
 		activeEditor : null,
 
 		preInit : function() {
@@ -8020,10 +8365,6 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 			tinymce.baseURL = new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);
 			tinymce.EditorManager.baseURI = new tinymce.util.URI(tinymce.baseURL);
 
-			// User specified a document.domain value
-			if (document.domain &amp;&amp; lo.hostname != document.domain)
-				tinymce.relaxedDomain = document.domain;
-
 			// Add before unload listener
 			// This was required since IE was leaking memory if you added and removed beforeunload listeners
 			// with attachEvent/detatchEvent so this only adds one listener and instances can the attach to the onBeforeUnload event
@@ -8075,10 +8416,6 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 				if (s.plugins) {
 					pl = explode(s.plugins);
 
-					// Load compat2x first
-					if (tinymce.inArray(pl, 'compat2x') != -1)
-						PluginManager.load('compat2x', 'plugins/compat2x/editor_plugin' + tinymce.suffix + '.js');
-
 					// Load rest if plugins
 					each(pl, function(v) {
 						if (v &amp;&amp; v.charAt(0) != '-' &amp;&amp; !PluginManager.urls[v]) {
@@ -8247,6 +8584,8 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 
 			// Select another editor since the active one was removed
 			if (t.activeEditor == e) {
+				t._setActive(null);
+
 				each(t.editors, function(e) {
 					t._setActive(e);
 					return false; // Break
@@ -8371,13 +8710,11 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 		_setActive : function(e) {
 			this.selectedInstance = this.activeEditor = e;
 		}
-
-		});
+	});
 
 	tinymce.EditorManager.preInit();
 })(tinymce);
 
-// Short for editor manager window.tinyMCE is needed when TinyMCE gets loaded though a XHR call
 var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 (function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, Dispatcher = tinymce.util.Dispatcher;
@@ -8390,53 +8727,90 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			var t = this;
 
 			t.id = t.editorId = id;
+
 			t.execCommands = {};
 			t.queryStateCommands = {};
 			t.queryValueCommands = {};
+
+			t.isNotDirty = false;
+
 			t.plugins = {};
 
 			// Add events to the editor
 			each([
 				'onPreInit',
+
 				'onBeforeRenderUI',
+
 				'onPostRender',
+
 				'onInit',
+
 				'onRemove',
+
 				'onActivate',
+
 				'onDeactivate',
+
 				'onClick',
+
 				'onEvent',
+
 				'onMouseUp',
+
 				'onMouseDown',
+
 				'onDblClick',
+
 				'onKeyDown',
+
 				'onKeyUp',
+
 				'onKeyPress',
+
 				'onContextMenu',
+
 				'onSubmit',
+
 				'onReset',
+
 				'onPaste',
+
 				'onPreProcess',
+
 				'onPostProcess',
+
 				'onBeforeSetContent',
+
 				'onBeforeGetContent',
+
 				'onSetContent',
+
 				'onGetContent',
+
 				'onLoadContent',
+
 				'onSaveContent',
+
 				'onNodeChange',
+
 				'onChange',
+
 				'onBeforeExecCommand',
+
 				'onExecCommand',
+
 				'onUndo',
+
 				'onRedo',
+
 				'onVisualAid',
+
 				'onSetProgressState'
 			], function(e) {
 				t[e] = new Dispatcher(t);
 			});
 
-			// Default editor config
 			t.settings = s = extend({
 				id : id,
 				language : 'en',
@@ -8471,7 +8845,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				apply_source_formatting : 1,
 				directionality : 'ltr',
 				forced_root_block : 'p',
-				valid_elements : '@[id|class|style|title|dir&lt;ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',
+				valid_elements : '@[id|class|style|title|dir&lt;ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p,-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',
 				hidden_input : 1,
 				padd_empty_editor : 1,
 				render_ui : 1,
@@ -8483,10 +8857,10 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				removeformat_selector : 'span,b,strong,em,i,font,u,strike'
 			}, s);
 
-			// Setup URIs
 			t.documentBaseURI = new tinymce.util.URI(s.document_base_url || tinymce.documentBaseURL, {
 				base_uri : tinyMCE.baseURI
 			});
+
 			t.baseURI = EditorManager.baseURI;
 
 			// Call setup
@@ -8571,7 +8945,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 							EditorManager.triggerSave();
 							t.isNotDirty = 1;
 
-							return this._mceOldSubmit(this);
+							return t.formElement._mceOldSubmit(t.formElement);
 						};
 					}
 
@@ -8604,12 +8978,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				});
 			};
 
-			// Load compat2x first
-			if (s.plugins.indexOf('compat2x') != -1) {
-				PluginManager.load('compat2x', 'plugins/compat2x/editor_plugin' + tinymce.suffix + '.js');
-				sl.loadQueue(loadScripts);
-			} else
-				loadScripts();
+			loadScripts();
 		},
 
 		init : function() {
@@ -8617,7 +8986,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 			EditorManager.add(t);
 
-			// Create theme
 			if (s.theme) {
 				s.theme = s.theme.replace(/-/, '');
 				o = ThemeManager.get(s.theme);
@@ -8652,8 +9020,8 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			if (s.popup_css_add)
 				s.popup_css += ',' + t.documentBaseURI.toAbsolute(s.popup_css_add);
 
-			// Setup control factory
 			t.controlManager = new tinymce.ControlManager(t);
+
 			t.undoManager = new tinymce.UndoManager(t);
 
 			// Pass through
@@ -8724,6 +9092,10 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			}
 
 
+			// User specified a document.domain value
+			if (document.domain &amp;&amp; location.hostname != document.domain)
+				tinymce.relaxedDomain = document.domain;
+
 			// Resize editor
 			DOM.setStyles(o.sizeContainer || o.editorContainer, {
 				width : w,
@@ -8734,7 +9106,13 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			if (h &lt; 100)
 				h = 100;
 
-			t.iframeHTML = s.doctype + '&lt;html&gt;&lt;head xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;base href=&quot;' + t.documentBaseURI.getURI() + '&quot; /&gt;';
+			t.iframeHTML = s.doctype + '&lt;html&gt;&lt;head xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;';
+
+			// We only need to override paths if we have to
+			// IE has a bug where it remove site absolute urls to relative ones if this is specified
+			if (s.document_base_url != tinymce.documentBaseURL)
+				t.iframeHTML += '&lt;base href=&quot;' + t.documentBaseURI.getURI() + '&quot; /&gt;';
+
 			t.iframeHTML += '&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;';
 
 			if (tinymce.relaxedDomain)
@@ -8817,8 +9195,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				DOM.show(b);
 			}
 
-			// Setup objects
-			t.dom = new tinymce.DOM.DOMUtils(t.getDoc(), {
+			t.dom = new tinymce.dom.DOMUtils(t.getDoc(), {
 				keep_values : true,
 				url_converter : t.convertURL,
 				url_converter_scope : t,
@@ -8828,26 +9205,13 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				fix_ie_paragraphs : 1
 			});
 
-			t.serializer = new tinymce.dom.Serializer({
-				entity_encoding : s.entity_encoding,
-				entities : s.entities,
+			t.serializer = new tinymce.dom.Serializer(extend(s, {
 				valid_elements : s.verify_html === false ? '*[*]' : s.valid_elements,
-				extended_valid_elements : s.extended_valid_elements,
-				valid_child_elements : s.valid_child_elements,
-				invalid_elements : s.invalid_elements,
-				fix_table_elements : s.fix_table_elements,
-				fix_list_elements : s.fix_list_elements,
-				fix_content_duplication : s.fix_content_duplication,
-				convert_fonts_to_spans : s.convert_fonts_to_spans,
-				font_size_classes  : s.font_size_classes,
-				font_size_style_values : s.font_size_style_values,
-				apply_source_formatting : s.apply_source_formatting,
-				remove_linebreaks : s.remove_linebreaks,
-				element_format : s.element_format,
 				dom : t.dom
-			});
+			}));
 
 			t.selection = new tinymce.dom.Selection(t.dom, t.getWin(), t.serializer);
+
 			t.forceBlocks = new tinymce.ForceBlocks(t, {
 				forced_root_block : s.forced_root_block
 			});
@@ -8879,9 +9243,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			if (s.nowrap)
 				t.getBody().style.whiteSpace = &quot;nowrap&quot;;
 
-			if (s.auto_resize)
-				t.onNodeChange.add(t.resizeToContent, t);
-
 			if (s.custom_elements) {
 				function handleCustom(ed, o) {
 					each(explode(s.custom_elements), function(v) {
@@ -8901,7 +9262,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				t.onBeforeSetContent.add(handleCustom);
 				t.onPostProcess.add(function(ed, o) {
 					if (o.set)
-						handleCustom(ed, o)
+						handleCustom(ed, o);
 				});
 			}
 
@@ -9030,9 +9391,9 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				});
 			}
 
-			// Fix gecko link bug, when a link is placed at the end of block elements there is
-			// no way to move the caret behind the link. This fix adds a bogus br element after the link
 			if (isGecko) {
+				// Fix gecko link bug, when a link is placed at the end of block elements there is
+				// no way to move the caret behind the link. This fix adds a bogus br element after the link
 				function fixLinks(ed, o) {
 					each(ed.dom.select('a'), function(n) {
 						var pn = n.parentNode;
@@ -9048,17 +9409,17 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				});
 
 				t.onSetContent.add(t.selection.onSetContent.add(fixLinks));
-			}
 
-			if (isGecko &amp;&amp; !s.readonly) {
-				try {
-					// Design mode must be set here once again to fix a bug where
-					// Ctrl+A/Delete/Backspace didn't work if the editor was added using mceAddControl then removed then added again
-					d.designMode = 'Off';
-					d.designMode = 'On';
-				} catch (ex) {
-					// Will fail on Gecko if the editor is placed in an hidden container element
-					// The design mode will be set ones the editor is focused
+				if (!s.readonly) {
+					try {
+						// Design mode must be set here once again to fix a bug where
+						// Ctrl+A/Delete/Backspace didn't work if the editor was added using mceAddControl then removed then added again
+						d.designMode = 'Off';
+						d.designMode = 'On';
+					} catch (ex) {
+						// Will fail on Gecko if the editor is placed in an hidden container element
+						// The design mode will be set ones the editor is focused
+					}
 				}
 			}
 
@@ -9425,12 +9786,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			return b;
 		},
 
-		resizeToContent : function() {
-			var t = this;
-
-			DOM.setStyle(t.id + &quot;_ifr&quot;, 'height', t.getBody().scrollHeight);
-		},
-
 		load : function(o) {
 			var t = this, e = t.getElement(), h;
 
@@ -9765,51 +10120,33 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 					case 'contextmenu':
 						if (tinymce.isOpera) {
 							// Fake contextmenu on Opera
-							Event.add(t.getBody(), 'mousedown', function(e) {
+							t.dom.bind(t.getBody(), 'mousedown', function(e) {
 								if (e.ctrlKey) {
 									e.fakeType = 'contextmenu';
 									eventHandler(e);
 								}
 							});
 						} else
-							Event.add(t.getBody(), k, eventHandler);
+							t.dom.bind(t.getBody(), k, eventHandler);
 						break;
 
 					case 'paste':
-						Event.add(t.getBody(), k, function(e) {
-							var tx, h, el, r;
-
-							// Get plain text data
-							if (e.clipboardData)
-								tx = e.clipboardData.getData('text/plain');
-							else if (tinymce.isIE)
-								tx = t.getWin().clipboardData.getData('Text');
-
-							// Get HTML data
-							/*if (tinymce.isIE) {
-								el = DOM.add(DOM.doc.body, 'div', {style : 'visibility:hidden;overflow:hidden;position:absolute;width:1px;height:1px'});
-								r = DOM.doc.body.createTextRange();
-								r.moveToElementText(el);
-								r.execCommand('Paste');
-								h = el.innerHTML;
-								DOM.remove(el);
-							}*/
-
-							eventHandler(e, {text : tx, html : h});
+						t.dom.bind(t.getBody(), k, function(e) {
+							eventHandler(e);
 						});
 						break;
 
 					case 'submit':
 					case 'reset':
-						Event.add(t.getElement().form || DOM.getParent(t.id, 'form'), k, eventHandler);
+						t.dom.bind(t.getElement().form || DOM.getParent(t.id, 'form'), k, eventHandler);
 						break;
 
 					default:
-						Event.add(s.content_editable ? t.getBody() : t.getDoc(), k, eventHandler);
+						t.dom.bind(s.content_editable ? t.getBody() : t.getDoc(), k, eventHandler);
 				}
 			});
 
-			Event.add(s.content_editable ? t.getBody() : (isGecko ? t.getDoc() : t.getWin()), 'focus', function(e) {
+			t.dom.bind(s.content_editable ? t.getBody() : (isGecko ? t.getDoc() : t.getWin()), 'focus', function(e) {
 				t.focus(true);
 			});
 
@@ -9827,7 +10164,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 					})
 				});*/
 
-				Event.add(t.getDoc(), 'DOMNodeInserted', function(e) {
+				t.dom.bind(t.getDoc(), 'DOMNodeInserted', function(e) {
 					var v;
 
 					e = e.target;
@@ -9964,7 +10301,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			if (tinymce.isIE) {
 				// Fix so resize will only update the width and height attributes not the styles of an image
 				// It will also block mceItemNoResize items
-				Event.add(t.getDoc(), 'controlselect', function(e) {
+				t.dom.bind(t.getDoc(), 'controlselect', function(e) {
 					var re = t.resizeInfo, cb;
 
 					e = e.target;
@@ -9974,11 +10311,11 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 						return;
 
 					if (re)
-						Event.remove(re.node, re.ev, re.cb);
+						t.dom.unbind(re.node, re.ev, re.cb);
 
 					if (!t.dom.hasClass(e, 'mceItemNoResize')) {
 						ev = 'resizeend';
-						cb = Event.add(e, ev, function(e) {
+						cb = t.dom.bind(e, ev, function(e) {
 							var v;
 
 							e = e.target;
@@ -9995,7 +10332,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 						});
 					} else {
 						ev = 'resizestart';
-						cb = Event.add(e, 'resizestart', Event.cancel, Event);
+						cb = t.dom.bind(e, 'resizestart', Event.cancel, Event);
 					}
 
 					re = t.resizeInfo = {
@@ -10015,6 +10352,16 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 							}
 					}
 				});
+
+				/*if (t.dom.boxModel) {
+					t.getBody().style.height = '100%';
+
+					Event.add(t.getWin(), 'resize', function(e) {
+						var docElm = t.getDoc().documentElement;
+
+						docElm.style.height = (docElm.offsetHeight - 10) + 'px';
+					});
+				}*/
 			}
 
 			if (tinymce.isOpera) {
@@ -10032,7 +10379,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 				// Add undo level on editor blur
 				if (tinymce.isIE) {
-					Event.add(t.getWin(), 'blur', function(e) {
+					t.dom.bind(t.getWin(), 'blur', function(e) {
 						var n;
 
 						// Check added for fullscreen bug
@@ -10045,7 +10392,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 						}
 					});
 				} else {
-					Event.add(t.getDoc(), 'blur', function() {
+					t.dom.bind(t.getDoc(), 'blur', function() {
 						if (t.selection &amp;&amp; !t.removed)
 							addUndo();
 					});
@@ -10268,8 +10615,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 			return s;
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	var each = tinymce.each, isIE = tinymce.isIE, isGecko = tinymce.isGecko, isOpera = tinymce.isOpera, isWebKit = tinymce.isWebKit;
@@ -10386,7 +10732,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		},
 
 		mceInsertLink : function(u, v) {
-			var ed = this.editor, s = ed.selection, e = ed.dom.getParent(s.getNode(), 'A');
+			var ed = this.editor, s = ed.selection, e = ed.dom.getParent(s.getNode(), 'a');
 
 			if (tinymce.is(v, 'string'))
 				v = {href : v};
@@ -10501,11 +10847,11 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		queryValueFontSize : function() {
 			var ed = this.editor, v = 0, p;
 
-			if (p = ed.dom.getParent(ed.selection.getNode(), 'SPAN'))
+			if (p = ed.dom.getParent(ed.selection.getNode(), 'span'))
 				v = p.style.fontSize;
 
 			if (!v &amp;&amp; (isOpera || isWebKit)) {
-				if (p = ed.dom.getParent(ed.selection.getNode(), 'FONT'))
+				if (p = ed.dom.getParent(ed.selection.getNode(), 'font'))
 					v = p.size;
 
 				return v;
@@ -10517,10 +10863,10 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		queryValueFontName : function() {
 			var ed = this.editor, v = 0, p;
 
-			if (p = ed.dom.getParent(ed.selection.getNode(), 'FONT'))
+			if (p = ed.dom.getParent(ed.selection.getNode(), 'font'))
 				v = p.face;
 
-			if (p = ed.dom.getParent(ed.selection.getNode(), 'SPAN'))
+			if (p = ed.dom.getParent(ed.selection.getNode(), 'span'))
 				v = p.style.fontFamily.replace(/, /g, ',').replace(/[\'\&quot;]/g, '').toLowerCase();
 
 			if (!v)
@@ -11323,8 +11669,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		hasRedo : function() {
 			return this.index &lt; this.data.length - 1;
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	// Shorten names
@@ -11337,6 +11682,26 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 	each = tinymce.each;
 	extend = tinymce.extend;
 
+	// Checks if the selection/caret is at the end of the specified block element
+	function isAtEnd(rng, par) {
+		var rng2 = par.ownerDocument.createRange();
+
+		rng2.setStart(rng.endContainer, rng.endOffset);
+		rng2.setEndAfter(par);
+
+		// Get number of characters to the right of the cursor if it's zero then we are at the end and need to merge the next block element
+		return rng2.cloneContents().textContent.length == 0;
+	};
+
+	function isEmpty(n) {
+		n = n.innerHTML;
+
+		n = n.replace(/&lt;(img|hr|table|input|select|textarea)[ \&gt;]/gi, '-'); // Keep these convert them to - chars
+		n = n.replace(/&lt;[^&gt;]+&gt;/g, ''); // Remove all tags
+
+		return n.replace(/[ \t\r\n]+/g, '') == '';
+	};
+
 	tinymce.create('tinymce.ForceBlocks', {
 		ForceBlocks : function(ed) {
 			var t = this, s = ed.settings, elm;
@@ -11353,7 +11718,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			t.reNbsp2BR1 = new RegExp('&lt;p( )([^&gt;]+)&gt;[\\s\\u00a0]+&lt;\\\/p&gt;|&lt;p&gt;[\\s\\u00a0]+&lt;\\\/p&gt;'.replace(/p/g, elm), 'gi');
 			t.reNbsp2BR2 = new RegExp('&lt;%p()([^&gt;]+)&gt;(&amp;nbsp;|&amp;#160;)&lt;\\\/%p&gt;|&lt;%p&gt;(&amp;nbsp;|&amp;#160;)&lt;\\\/%p&gt;'.replace(/%p/g, elm), 'gi');
 			t.reBR2Nbsp = new RegExp('&lt;p( )([^&gt;]+)&gt;\\s*&lt;br \\\/&gt;\\s*&lt;\\\/p&gt;|&lt;p&gt;\\s*&lt;br \\\/&gt;\\s*&lt;\\\/p&gt;'.replace(/p/g, elm), 'gi');
-			t.reTrailBr = new RegExp('\\s*&lt;br \\/&gt;\\s*&lt;\\\/p&gt;'.replace(/p/g, elm), 'gi');
 
 			function padd(ed, o) {
 				if (isOpera)
@@ -11365,10 +11729,8 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 					// Use &amp;nbsp; instead of BR in padded paragraphs
 					o.content = o.content.replace(t.reNbsp2BR1, '&lt;' + elm + '$1$2&gt;&lt;br /&gt;&lt;/' + elm + '&gt;');
 					o.content = o.content.replace(t.reNbsp2BR2, '&lt;' + elm + '$1$2&gt;&lt;br /&gt;&lt;/' + elm + '&gt;');
-				} else {
+				} else
 					o.content = o.content.replace(t.reBR2Nbsp, '&lt;' + elm + '$1$2&gt;\u00a0&lt;/' + elm + '&gt;');
-					o.content = o.content.replace(t.reTrailBr, '&lt;/' + elm + '&gt;');
-				}
 			};
 
 			ed.onBeforeSetContent.add(padd);
@@ -11454,29 +11816,47 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				return ne;
 			};
 
-			// Replaces IE:s auto generated paragraphs with the specified element name
-			if (isIE &amp;&amp; s.element != 'P') {
-				ed.onKeyPress.add(function(ed, e) {
-					t.lastElm = ed.selection.getNode().nodeName;
+			// Padd empty inline elements within block elements
+			// For example: &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; becomes &lt;p&gt;&lt;strong&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
+			ed.onPreProcess.add(function(ed, o) {
+				each(ed.dom.select('p,h1,h2,h3,h4,h5,h6,div', o.node), function(p) {
+					if (isEmpty(p)) {
+						each(ed.dom.select('span,em,strong,b,i', o.node), function(n) {
+							if (!n.hasChildNodes()) {
+								n.appendChild(ed.getDoc().createTextNode('\u00a0'));
+								return false; // Break the loop one padding is enough
+							}
+						});
+					}
 				});
+			});
 
-				ed.onKeyUp.add(function(ed, e) {
-					var bl, sel = ed.selection, n = sel.getNode(), b = ed.getBody();
+			// IE specific fixes
+			if (isIE) {
+				// Replaces IE:s auto generated paragraphs with the specified element name
+				if (s.element != 'P') {
+					ed.onKeyPress.add(function(ed, e) {
+						t.lastElm = ed.selection.getNode().nodeName;
+					});
 
-					if (b.childNodes.length === 1 &amp;&amp; n.nodeName == 'P') {
-						n = ren(n, s.element);
-						sel.select(n);
-						sel.collapse();
-						ed.nodeChanged();
-					} else if (e.keyCode == 13 &amp;&amp; !e.shiftKey &amp;&amp; t.lastElm != 'P') {
-						bl = ed.dom.getParent(n, 'P');
+					ed.onKeyUp.add(function(ed, e) {
+						var bl, sel = ed.selection, n = sel.getNode(), b = ed.getBody();
 
-						if (bl) {
-							ren(bl, s.element);
+						if (b.childNodes.length === 1 &amp;&amp; n.nodeName == 'P') {
+							n = ren(n, s.element);
+							sel.select(n);
+							sel.collapse();
 							ed.nodeChanged();
+						} else if (e.keyCode == 13 &amp;&amp; !e.shiftKey &amp;&amp; t.lastElm != 'P') {
+							bl = ed.dom.getParent(n, 'p');
+
+							if (bl) {
+								ren(bl, s.element);
+								ed.nodeChanged();
+							}
 						}
-					}
-				});
+					});
+				}
 			}
 		},
 
@@ -11511,7 +11891,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				nx = nl[i];
 
 				// Is text or non block element
-				if (nx.nodeType == 3 || (!t.dom.isBlock(nx) &amp;&amp; nx.nodeType != 8)) {
+				if (nx.nodeType === 3 || (!t.dom.isBlock(nx) &amp;&amp; nx.nodeType !== 8 &amp;&amp; !/^(script|mce:script|style|mce:style)$/i.test(nx.nodeName))) {
 					if (!bl) {
 						// Create new block but ignore whitespace
 						if (nx.nodeType != 3 || /[^\s]/g.test(nx.nodeValue)) {
@@ -11551,9 +11931,11 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 								}
 							}
 
+							// Uses replaceChild instead of cloneNode since it removes selected attribute from option elements on IE
+							// See: http://support.microsoft.com/kb/829907
 							bl = ed.dom.create(ed.settings.forced_root_block);
-							bl.appendChild(nx.cloneNode(1));
 							nx.parentNode.replaceChild(bl, nx);
+							bl.appendChild(nx);
 						}
 					} else {
 						if (bl.hasChildNodes())
@@ -11624,14 +12006,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			var t = this, ed = t.editor, dom = ed.dom, d = ed.getDoc(), se = ed.settings, s = ed.selection.getSel(), r = s.getRangeAt(0), b = d.body;
 			var rb, ra, dir, sn, so, en, eo, sb, eb, bn, bef, aft, sc, ec, n, vp = dom.getViewPort(ed.getWin()), y, ch, car;
 
-			function isEmpty(n) {
-				n = n.innerHTML;
-				n = n.replace(/&lt;(img|hr|table)/gi, '-'); // Keep these convert them to - chars
-				n = n.replace(/&lt;[^&gt;]+&gt;/g, ''); // Remove all tags
-
-				return n.replace(/[ \t\r\n]+/g, '') == '';
-			};
-
 			// If root blocks are forced then use Operas default behavior since it's really good
 // Removed due to bug: #1853816
 //			if (se.forced_root_block &amp;&amp; isOpera)
@@ -11660,11 +12034,19 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 			// If selection is in empty table cell
 			if (sn === en &amp;&amp; /^(TD|TH)$/.test(sn.nodeName)) {
-				dom.remove(sn.firstChild); // Remove BR
+				if (sn.firstChild.nodeName == 'BR')
+					dom.remove(sn.firstChild); // Remove BR
 
 				// Create two new block elements
-				ed.dom.add(sn, se.element, null, '&lt;br /&gt;');
-				aft = ed.dom.add(sn, se.element, null, '&lt;br /&gt;');
+				if (sn.childNodes.length == 0) {
+					ed.dom.add(sn, se.element, null, '&lt;br /&gt;');
+					aft = ed.dom.add(sn, se.element, null, '&lt;br /&gt;');
+				} else {
+					n = sn.innerHTML;
+					sn.innerHTML = '';
+					ed.dom.add(sn, se.element, null, n);
+					aft = ed.dom.add(sn, se.element, null, '&lt;br /&gt;');
+				}
 
 				// Move caret into the last one
 				r = d.createRange();
@@ -11697,7 +12079,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			bn = sb ? sb.nodeName : se.element; // Get block name to create
 
 			// Return inside list use default browser behavior
-			if (t.dom.getParent(sb, 'OL,UL,PRE'))
+			if (t.dom.getParent(sb, 'ol,ul,pre'))
 				return true;
 
 			// If caption or absolute layers then always generate new blocks within
@@ -11726,7 +12108,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			aft.removeAttribute('id');
 
 			// Is header and cursor is at the end, then force paragraph under
-			if (/^(H[1-6])$/.test(bn) &amp;&amp; sn.nodeValue &amp;&amp; so == sn.nodeValue.length)
+			if (/^(H[1-6])$/.test(bn) &amp;&amp; isAtEnd(r, sb))
 				aft = ed.dom.create(se.element);
 
 			// Find start chop node
@@ -11871,7 +12253,46 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		},
 
 		backspaceDelete : function(e, bs) {
-			var t = this, ed = t.editor, b = ed.getBody(), n, se = ed.selection, r = se.getRng(), sc = r.startContainer, n, w, tn;
+			var t = this, ed = t.editor, b = ed.getBody(), dom = ed.dom, n, se = ed.selection, r = se.getRng(), sc = r.startContainer, n, w, tn;
+
+			/*
+			var par, rng, nextBlock;
+
+			// Delete key will not merge paragraphs on Gecko so we need to do this manually
+			// Hitting the delete key at the following caret position doesn't merge the elements &lt;p&gt;A|&lt;/p&gt;&lt;p&gt;B&lt;/p&gt;
+			// This logic will merge them into this: &lt;p&gt;A|B&lt;/p&gt;
+			if (e.keyCode == 46) {
+				if (r.collapsed) {
+					par = dom.getParent(sc, 'p,h1,h2,h3,h4,h5,h6,div');
+
+					if (par) {
+						rng = dom.createRng();
+
+						rng.setStart(sc, r.startOffset);
+						rng.setEndAfter(par);
+
+						// Get number of characters to the right of the cursor if it's zero then we are at the end and need to merge the next block element
+						if (dom.getOuterHTML(rng.cloneContents()).replace(/&lt;[^&gt;]+&gt;/g, '').length == 0) {
+							nextBlock = dom.getNext(par, 'p,h1,h2,h3,h4,h5,h6,div');
+
+							// Copy all children from next sibling block and remove it
+							if (nextBlock) {
+								each(nextBlock.childNodes, function(node) {
+									par.appendChild(node.cloneNode(true));
+								});
+
+								dom.remove(nextBlock);
+							}
+
+							// Block the default even since the Gecko team might eventually fix this
+							// We will remove this logic once they do we can't feature detect this one
+							e.preventDefault();
+							return;
+						}
+					}
+				}
+			}
+			*/
 
 			// The caret sometimes gets stuck in Gecko if you delete empty paragraphs
 			// This workaround removes the element by hand and moves the caret to the previous element
@@ -12050,6 +12471,9 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			// Fix for bug #1897785, #1898007
 			if (tinymce.isIE) {
 				c.onShowMenu.add(function() {
+					// IE 8 needs focus in order to store away a range with the current collapsed caret location
+					ed.focus();
+
 					bm = ed.selection.getBookmark(1);
 				});
 
@@ -12102,7 +12526,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				c.onPostRender.add(function(c, n) {
 					// Store bookmark on mousedown
 					Event.add(n, 'mousedown', function() {
-						ed.bookmark = ed.selection.getBookmark('simple');
+						ed.bookmark = ed.selection.getBookmark(1);
 					});
 
 					// Restore on focus, since it might be lost
@@ -12213,7 +12637,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				s.onclick = function(v) {
 					if (tinymce.isIE)
 						bm = ed.selection.getBookmark(1);
-	
+
 					ed.execCommand(s.cmd, s.ui || false, v || s.value);
 				};
 			}
@@ -12244,6 +12668,12 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 			// Fix for bug #1897785, #1898007
 			if (tinymce.isIE) {
+				c.onShowMenu.add(function() {
+					// IE 8 needs focus in order to store away a range with the current collapsed caret location
+					ed.focus();
+					bm = ed.selection.getBookmark(1);
+				});
+
 				c.onHideMenu.add(function() {
 					if (bm) {
 						ed.selection.moveToBookmark(bm);
@@ -12277,7 +12707,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		setControlType : function(n, c) {
 			return this._cls[n.toLowerCase()] = c;
 		},
-
+	
 		destroy : function() {
 			each(this.controls, function(c) {
 				c.destroy();
@@ -12285,8 +12715,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 			this.controls = null;
 		}
-
-		});
+	});
 })(tinymce);
 (function(tinymce) {
 	var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each, isIE = tinymce.isIE, isOpera = tinymce.isOpera;
@@ -12397,8 +12826,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		_decode : function(s) {
 			return tinymce.DOM.decode(s).replace(/\\n/g, '\n');
 		}
-
-		});
+	});
 }(tinymce));(function(tinymce) {
 	tinymce.CommandManager = function() {
 		var execCommands = {}, queryStateCommands = {}, queryValueCommands = {};
@@ -12499,7 +12927,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 					sp = n;
 
 				return dom.isBlock(n);
-			}, ed.getBody())
+			}, ed.getBody());
 
 			return sp;
 		};
@@ -12519,8 +12947,8 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		ec = r.endContainer;
 		so = r.startOffset;
 		eo = r.endOffset;
-		sc = sc.nodeType == 1 ? sc.childNodes[so] : sc;
-		ec = ec.nodeType == 1 ? ec.childNodes[eo - 1] : ec;
+		sc = sc.nodeType == 1 ? sc.childNodes[Math.min(so, sc.childNodes.length - 1)] : sc;
+		ec = ec.nodeType == 1 ? ec.childNodes[Math.min(so == eo ? eo : eo - 1, ec.childNodes.length - 1)] : ec;
 
 		// Same container
 		if (sc == ec) { // TEXT_NODE
@@ -12748,10 +13176,16 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				doc.execCommand(cmd, false, null);
 
 				// On WebKit the command will just be ignored if it's not enabled
-				if (!doc.queryCommandSupported(cmd))
+				if (!doc.queryCommandEnabled(cmd))
 					throw 'Error';
 			} catch (ex) {
-				ed.windowManager.alert(ed.getLang('clipboard_no_support'));
+				if (tinymce.isGecko) {
+					ed.windowManager.confirm(ed.getLang('clipboard_msg'), function(s) {
+						if (s)
+							open('http://www.mozilla.org/editor/midasdemo/securityprefs.html', '_blank');
+					});
+				} else
+					ed.windowManager.alert(ed.getLang('clipboard_no_support'));
 			}
 		});
 	});</diff>
      <filename>lib/tiny_mce/tiny_mce_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: form_utils.js 996 2009-02-06 17:32:20Z spocke $
+ * $Id: form_utils.js 1184 2009-08-11 11:47:27Z spocke $
  *
  * Various form utilitiy functions.
  *
@@ -92,7 +92,7 @@ function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
 function getSelectValue(form_obj, field_name) {
 	var elm = form_obj.elements[field_name];
 
-	if (elm == null || elm.options == null)
+	if (elm == null || elm.options == null || elm.selectedIndex === -1)
 		return &quot;&quot;;
 
 	return elm.options[elm.selectedIndex].value;</diff>
      <filename>lib/tiny_mce/utils/form_utils.js</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lib/.DS_Store</filename>
    </removed>
    <removed>
      <filename>lib/tiny_mce/plugins/compat2x/editor_plugin.js</filename>
    </removed>
    <removed>
      <filename>lib/tiny_mce/plugins/compat2x/editor_plugin_src.js</filename>
    </removed>
    <removed>
      <filename>lib/tiny_mce/plugins/paste/blank.htm</filename>
    </removed>
    <removed>
      <filename>lib/tiny_mce/plugins/paste/css/blank.css</filename>
    </removed>
    <removed>
      <filename>lib/tiny_mce/plugins/paste/css/pasteword.css</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>a3aa9bf8539578341d8c7f270e1c20d3d16ed5af</id>
    </parent>
  </parents>
  <author>
    <name>Sebastien Grosjean</name>
    <email>public@zencocoon.com</email>
  </author>
  <url>http://github.com/ZenCocoon/inplacericheditor/commit/111e2c8fe2f72408ced1b84ce3fc0c1186b26500</url>
  <id>111e2c8fe2f72408ced1b84ce3fc0c1186b26500</id>
  <committed-date>2009-10-08T04:49:53-07:00</committed-date>
  <authored-date>2009-10-08T04:49:53-07:00</authored-date>
  <message>Update to TinyMCE 3.2.7</message>
  <tree>e6688c496bff052b163e6a1975d3021c5f419e60</tree>
  <committer>
    <name>Sebastien Grosjean</name>
    <email>public@zencocoon.com</email>
  </committer>
</commit>
