<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>.gitignore</filename>
    </added>
    <added>
      <filename>lib/controls.js</filename>
    </added>
    <added>
      <filename>lib/effects.js</filename>
    </added>
    <added>
      <filename>lib/patch_inplaceeditor_1-8-2.js</filename>
    </added>
    <added>
      <filename>lib/prototype.js</filename>
    </added>
    <added>
      <filename>lib/tiny_mce/plugins/preview/preview.html</filename>
    </added>
    <added>
      <filename>lib/tiny_mce/plugins/tabfocus/editor_plugin.js</filename>
    </added>
    <added>
      <filename>lib/tiny_mce/plugins/tabfocus/editor_plugin_src.js</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff></diff>
      <filename>lib/.DS_Store</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,8 @@
-// Patch InPlaceEditor script.aculo.us 1.8.1 to add editOnBlank feature
+// Patch InPlaceEditor script.aculo.us 1.8.2 to add editOnBlank feature
 // Author : Sebastien Grosjean - ZenCocoon (http://www.zencocoon.com)
-// Version : 1.1
+// Version : 1.2
 //
-// Please be aware that it's patching the actual version of InPlaceEditor (script.aculo.us 1.8.1)
+// Please be aware that it's patching the actual version of InPlaceEditor (script.aculo.us 1.8.2)
 // and it can make more damages on previous or later versions.
 Object.extend(Ajax.InPlaceEditor.prototype, {
   initialize: function(element, url, options) {</diff>
      <filename>lib/patch_inplaceeditor_editonblank_1-8-1.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/langs/en.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/license.txt</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advhr/css/advhr.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.AdvancedHRPlugin',{init:function(ed,url){ed.addCommand('mceAdvancedHr',function(){ed.windowManager.open({file:url+'/rule.htm',width:250+parseInt(ed.getLang('advhr.delta_width',0)),height:160+parseInt(ed.getLang('advhr.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('advhr',{title:'advhr.advhr_desc',cmd:'mceAdvancedHr'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('advhr',n.nodeName=='HR');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='HR')ed.selection.select(e);});},getInfo:function(){return{longname:'Advanced HR',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('advhr',tinymce.plugins.AdvancedHRPlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.AdvancedHRPlugin&quot;,{init:function(a,b){a.addCommand(&quot;mceAdvancedHr&quot;,function(){a.windowManager.open({file:b+&quot;/rule.htm&quot;,width:250+parseInt(a.getLang(&quot;advhr.delta_width&quot;,0)),height:160+parseInt(a.getLang(&quot;advhr.delta_height&quot;,0)),inline:1},{plugin_url:b})});a.addButton(&quot;advhr&quot;,{title:&quot;advhr.advhr_desc&quot;,cmd:&quot;mceAdvancedHr&quot;});a.onNodeChange.add(function(d,c,e){c.setActive(&quot;advhr&quot;,e.nodeName==&quot;HR&quot;)});a.onClick.add(function(c,d){d=d.target;if(d.nodeName===&quot;HR&quot;){c.selection.select(d)}})},getInfo:function(){return{longname:&quot;Advanced HR&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;advhr&quot;,tinymce.plugins.AdvancedHRPlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/advhr/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advhr/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advhr/js/rule.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advhr/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/mctabs.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/form_utils.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/advhr.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;form onsubmit=&quot;AdvHRDialog.update();return false;&quot; action=&quot;#&quot;&gt;
@@ -22,7 +21,7 @@
 			&lt;table border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;
                     &lt;tr&gt;
                         &lt;td&gt;&lt;label for=&quot;width&quot;&gt;{#advhr_dlg.width}&lt;/label&gt;&lt;/td&gt;
-                        &lt;td nowrap=&quot;nowrap&quot;&gt;
+                        &lt;td class=&quot;nowrap&quot;&gt;
                             &lt;input id=&quot;width&quot; name=&quot;width&quot; type=&quot;text&quot; value=&quot;&quot; class=&quot;mceFocus&quot; /&gt;
                             &lt;select name=&quot;width2&quot; id=&quot;width2&quot;&gt;
                                 &lt;option value=&quot;&quot;&gt;px&lt;/option&gt;</diff>
      <filename>lib/tiny_mce/plugins/advhr/rule.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advimage/css/advimage.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.AdvancedImagePlugin',{init:function(ed,url){ed.addCommand('mceAdvImage',function(){if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({file:url+'/image.htm',width:480+parseInt(ed.getLang('advimage.delta_width',0)),height:385+parseInt(ed.getLang('advimage.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('image',{title:'advimage.image_desc',cmd:'mceAdvImage'});},getInfo:function(){return{longname:'Advanced image',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('advimage',tinymce.plugins.AdvancedImagePlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.AdvancedImagePlugin&quot;,{init:function(a,b){a.addCommand(&quot;mceAdvImage&quot;,function(){if(a.dom.getAttrib(a.selection.getNode(),&quot;class&quot;).indexOf(&quot;mceItem&quot;)!=-1){return}a.windowManager.open({file:b+&quot;/image.htm&quot;,width:480+parseInt(a.getLang(&quot;advimage.delta_width&quot;,0)),height:385+parseInt(a.getLang(&quot;advimage.delta_height&quot;,0)),inline:1},{plugin_url:b})});a.addButton(&quot;image&quot;,{title:&quot;advimage.image_desc&quot;,cmd:&quot;mceAdvImage&quot;})},getInfo:function(){return{longname:&quot;Advanced image&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;advimage&quot;,tinymce.plugins.AdvancedImagePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/advimage/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advimage/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/editable_selects.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/image.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/advimage.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;advimage&quot; style=&quot;display: none&quot;&gt;
     &lt;form onsubmit=&quot;ImageDialog.insert();return false;&quot; action=&quot;#&quot;&gt; 
@@ -38,7 +37,7 @@
 							&lt;/tr&gt;
 							&lt;tr&gt;
 								&lt;td&gt;&lt;label for=&quot;src_list&quot;&gt;{#advimage_dlg.image_list}&lt;/label&gt;&lt;/td&gt;
-								&lt;td&gt;&lt;select id=&quot;src_list&quot; name=&quot;src_list&quot; onchange=&quot;document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;document.getElementById('title').value=this.options[this.selectedIndex].text;ImageDialog.showPreviewImage(this.options[this.selectedIndex].value);&quot;&gt;&lt;/select&gt;&lt;/td&gt;
+								&lt;td&gt;&lt;select id=&quot;src_list&quot; name=&quot;src_list&quot; onchange=&quot;document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;document.getElementById('title').value=this.options[this.selectedIndex].text;ImageDialog.showPreviewImage(this.options[this.selectedIndex].value);&quot;&gt;&lt;option value=&quot;&quot;&gt;&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
 							&lt;/tr&gt;
 							&lt;tr&gt; 
 								&lt;td class=&quot;column1&quot;&gt;&lt;label id=&quot;altlabel&quot; for=&quot;alt&quot;&gt;{#advimage_dlg.alt}&lt;/label&gt;&lt;/td&gt; 
@@ -89,7 +88,7 @@
 
 						&lt;tr&gt;
 							&lt;td class=&quot;column1&quot;&gt;&lt;label id=&quot;widthlabel&quot; for=&quot;width&quot;&gt;{#advimage_dlg.dimensions}&lt;/label&gt;&lt;/td&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;
 								&lt;input name=&quot;width&quot; type=&quot;text&quot; id=&quot;width&quot; value=&quot;&quot; size=&quot;5&quot; maxlength=&quot;5&quot; class=&quot;size&quot; onchange=&quot;ImageDialog.changeHeight();&quot; /&gt; x 
 								&lt;input name=&quot;height&quot; type=&quot;text&quot; id=&quot;height&quot; value=&quot;&quot; size=&quot;5&quot; maxlength=&quot;5&quot; class=&quot;size&quot; onchange=&quot;ImageDialog.changeWidth();&quot; /&gt; px
 							&lt;/td&gt;
@@ -123,7 +122,7 @@
 
 						&lt;tr&gt;
 							&lt;td&gt;&lt;label for=&quot;class_list&quot;&gt;{#class_name}&lt;/label&gt;&lt;/td&gt;
-							&lt;td colspan=&quot;2&quot;&gt;&lt;select id=&quot;class_list&quot; name=&quot;class_list&quot; class=&quot;mceEditableSelect&quot;&gt;&lt;/select&gt;&lt;/td&gt;
+							&lt;td colspan=&quot;2&quot;&gt;&lt;select id=&quot;class_list&quot; name=&quot;class_list&quot; class=&quot;mceEditableSelect&quot;&gt;&lt;option value=&quot;&quot;&gt;&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 
 						&lt;tr&gt;
@@ -158,7 +157,7 @@
 							&lt;/tr&gt;
 							&lt;tr&gt;
 								&lt;td&gt;&lt;label for=&quot;over_list&quot;&gt;{#advimage_dlg.image_list}&lt;/label&gt;&lt;/td&gt;
-								&lt;td&gt;&lt;select id=&quot;over_list&quot; name=&quot;over_list&quot; onchange=&quot;document.getElementById('onmouseoversrc').value=this.options[this.selectedIndex].value;&quot;&gt;&lt;/select&gt;&lt;/td&gt;
+								&lt;td&gt;&lt;select id=&quot;over_list&quot; name=&quot;over_list&quot; onchange=&quot;document.getElementById('onmouseoversrc').value=this.options[this.selectedIndex].value;&quot;&gt;&lt;option value=&quot;&quot;&gt;&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
 							&lt;/tr&gt;
 							&lt;tr&gt; 
 								&lt;td class=&quot;column1&quot;&gt;&lt;label id=&quot;onmouseoutsrclabel&quot; for=&quot;onmouseoutsrc&quot;&gt;{#advimage_dlg.mouseout}&lt;/label&gt;&lt;/td&gt; 
@@ -171,7 +170,7 @@
 							&lt;/tr&gt;
 							&lt;tr&gt;
 								&lt;td&gt;&lt;label for=&quot;out_list&quot;&gt;{#advimage_dlg.image_list}&lt;/label&gt;&lt;/td&gt;
-								&lt;td&gt;&lt;select id=&quot;out_list&quot; name=&quot;out_list&quot; onchange=&quot;document.getElementById('onmouseoutsrc').value=this.options[this.selectedIndex].value;&quot;&gt;&lt;/select&gt;&lt;/td&gt;
+								&lt;td&gt;&lt;select id=&quot;out_list&quot; name=&quot;out_list&quot; onchange=&quot;document.getElementById('onmouseoutsrc').value=this.options[this.selectedIndex].value;&quot;&gt;&lt;option value=&quot;&quot;&gt;&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
 							&lt;/tr&gt;
 					&lt;/table&gt;
 				&lt;/fieldset&gt;</diff>
      <filename>lib/tiny_mce/plugins/advimage/image.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advimage/img/sample.gif</filename>
    </modified>
    <modified>
      <diff>@@ -103,7 +103,7 @@ var ImageDialog = {
 
 		if (tinyMCEPopup.getParam(&quot;accessibility_warnings&quot;, 1)) {
 			if (!f.alt.value) {
-				tinyMCEPopup.editor.windowManager.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {
+				tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {
 					if (s)
 						t.insertAndClose();
 				});
@@ -272,6 +272,7 @@ var ImageDialog = {
 			cl = tinyMCEPopup.editor.dom.getClasses();
 
 		if (cl.length &gt; 0) {
+			lst.options.length = 0;
 			lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
 
 			tinymce.each(cl, function(o) {
@@ -285,6 +286,7 @@ var ImageDialog = {
 		var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
 
 		l = window[l];
+		lst.options.length = 0;
 
 		if (l &amp;&amp; l.length &gt; 0) {
 			lst.options[lst.options.length] = new Option('', '');</diff>
      <filename>lib/tiny_mce/plugins/advimage/js/image.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advimage/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advlink/css/advlink.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.AdvancedLinkPlugin',{init:function(ed,url){this.editor=ed;ed.addCommand('mceAdvLink',function(){var se=ed.selection;if(se.isCollapsed()&amp;&amp;!ed.dom.getParent(se.getNode(),'A'))return;ed.windowManager.open({file:url+'/link.htm',width:480+parseInt(ed.getLang('advlink.delta_width',0)),height:400+parseInt(ed.getLang('advlink.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('link',{title:'advlink.link_desc',cmd:'mceAdvLink'});ed.addShortcut('ctrl+k','advlink.advlink_desc','mceAdvLink');ed.onNodeChange.add(function(ed,cm,n,co){cm.setDisabled('link',co&amp;&amp;n.nodeName!='A');cm.setActive('link',n.nodeName=='A'&amp;&amp;!n.name);});},getInfo:function(){return{longname:'Advanced link',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('advlink',tinymce.plugins.AdvancedLinkPlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.AdvancedLinkPlugin&quot;,{init:function(a,b){this.editor=a;a.addCommand(&quot;mceAdvLink&quot;,function(){var c=a.selection;if(c.isCollapsed()&amp;&amp;!a.dom.getParent(c.getNode(),&quot;A&quot;)){return}a.windowManager.open({file:b+&quot;/link.htm&quot;,width:480+parseInt(a.getLang(&quot;advlink.delta_width&quot;,0)),height:400+parseInt(a.getLang(&quot;advlink.delta_height&quot;,0)),inline:1},{plugin_url:b})});a.addButton(&quot;link&quot;,{title:&quot;advlink.link_desc&quot;,cmd:&quot;mceAdvLink&quot;});a.addShortcut(&quot;ctrl+k&quot;,&quot;advlink.advlink_desc&quot;,&quot;mceAdvLink&quot;);a.onNodeChange.add(function(d,c,f,e){c.setDisabled(&quot;link&quot;,e&amp;&amp;f.nodeName!=&quot;A&quot;);c.setActive(&quot;link&quot;,f.nodeName==&quot;A&quot;&amp;&amp;!f.name)})},getInfo:function(){return{longname:&quot;Advanced link&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;advlink&quot;,tinymce.plugins.AdvancedLinkPlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/advlink/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advlink/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -116,7 +116,7 @@ function checkPrefix(n) {
 	if (n.value &amp;&amp; Validator.isEmail(n) &amp;&amp; !/^\s*mailto:/i.test(n.value) &amp;&amp; confirm(tinyMCEPopup.getLang('advlink_dlg.is_email')))
 		n.value = 'mailto:' + n.value;
 
-	if (/^\s*www./i.test(n.value) &amp;&amp; confirm(tinyMCEPopup.getLang('advlink_dlg.is_external')))
+	if (/^\s*www\./i.test(n.value) &amp;&amp; confirm(tinyMCEPopup.getLang('advlink_dlg.is_external')))
 		n.value = 'http://' + n.value;
 }
 
@@ -402,6 +402,7 @@ function insertAction() {
 
 	// Create new anchor elements
 	if (elm == null) {
+		inst.getDoc().execCommand(&quot;unlink&quot;, false, null);
 		tinyMCEPopup.execCommand(&quot;CreateLink&quot;, false, &quot;#mce_temp_url#&quot;, {skip_undo : 1});
 
 		elementArray = tinymce.grep(inst.dom.select(&quot;a&quot;), function(n) {return inst.dom.getAttrib(n, 'href') == '#mce_temp_url#';});
@@ -428,7 +429,6 @@ function setAllAttribs(elm) {
 	var target = getSelectValue(formObj, 'targetlist');
 
 	setAttrib(elm, 'href', href);
-	setAttrib(elm, 'mce_href', href);
 	setAttrib(elm, 'title');
 	setAttrib(elm, 'target', target == '_self' ? '' : target);
 	setAttrib(elm, 'id');
@@ -464,7 +464,7 @@ function setAllAttribs(elm) {
 function getSelectValue(form_obj, field_name) {
 	var elm = form_obj.elements[field_name];
 
-	if (elm == null || elm.options == null)
+	if (!elm || elm.options == null || elm.selectedIndex == -1)
 		return &quot;&quot;;
 
 	return elm.options[elm.selectedIndex].value;</diff>
      <filename>lib/tiny_mce/plugins/advlink/js/advlink.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/advlink/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/validate.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/advlink.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/advlink.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;advlink&quot; style=&quot;display: none&quot;&gt;
     &lt;form onsubmit=&quot;insertAction();return false;&quot; action=&quot;#&quot;&gt;
@@ -28,7 +27,7 @@
 
 					&lt;table border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;
 						&lt;tr&gt;
-						  &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;hreflabel&quot; for=&quot;href&quot;&gt;{#advlink_dlg.url}&lt;/label&gt;&lt;/td&gt;
+						  &lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;hreflabel&quot; for=&quot;href&quot;&gt;{#advlink_dlg.url}&lt;/label&gt;&lt;/td&gt;
 						  &lt;td&gt;&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
 								&lt;tr&gt;
 								  &lt;td&gt;&lt;input id=&quot;href&quot; name=&quot;href&quot; type=&quot;text&quot; class=&quot;mceFocus&quot; value=&quot;&quot; onchange=&quot;selectByValue(this.form,'linklisthref',this.value);&quot; /&gt;&lt;/td&gt;
@@ -38,25 +37,25 @@
 						&lt;/tr&gt;
 						&lt;tr id=&quot;linklisthrefrow&quot;&gt;
 							&lt;td class=&quot;column1&quot;&gt;&lt;label for=&quot;linklisthref&quot;&gt;{#advlink_dlg.list}&lt;/label&gt;&lt;/td&gt;
-							&lt;td colspan=&quot;2&quot; id=&quot;linklisthrefcontainer&quot;&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td colspan=&quot;2&quot; id=&quot;linklisthrefcontainer&quot;&gt;&lt;select id=&quot;linklisthref&quot;&gt;&lt;option value=&quot;&quot;&gt;&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
 							&lt;td class=&quot;column1&quot;&gt;&lt;label for=&quot;anchorlist&quot;&gt;{#advlink_dlg.anchor_names}&lt;/label&gt;&lt;/td&gt;
-							&lt;td colspan=&quot;2&quot; id=&quot;anchorlistcontainer&quot;&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td colspan=&quot;2&quot; id=&quot;anchorlistcontainer&quot;&gt;&lt;select id=&quot;anchorlist&quot;&gt;&lt;option value=&quot;&quot;&gt;&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
 							&lt;td&gt;&lt;label id=&quot;targetlistlabel&quot; for=&quot;targetlist&quot;&gt;{#advlink_dlg.target}&lt;/label&gt;&lt;/td&gt;
-							&lt;td id=&quot;targetlistcontainer&quot;&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td id=&quot;targetlistcontainer&quot;&gt;&lt;select id=&quot;targetlist&quot;&gt;&lt;option value=&quot;&quot;&gt;&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;titlelabel&quot; for=&quot;title&quot;&gt;{#advlink_dlg.titlefield}&lt;/label&gt;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;titlelabel&quot; for=&quot;title&quot;&gt;{#advlink_dlg.titlefield}&lt;/label&gt;&lt;/td&gt;
 							&lt;td&gt;&lt;input id=&quot;title&quot; name=&quot;title&quot; type=&quot;text&quot; value=&quot;&quot; /&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
 							&lt;td&gt;&lt;label id=&quot;classlabel&quot; for=&quot;classlist&quot;&gt;{#class_name}&lt;/label&gt;&lt;/td&gt;
 							&lt;td&gt;
 								 &lt;select id=&quot;classlist&quot; name=&quot;classlist&quot; onchange=&quot;changeClass();&quot;&gt;
-									&lt;option value=&quot;&quot; selected&gt;{#not_set}&lt;/option&gt;
+									&lt;option value=&quot;&quot; selected=&quot;selected&quot;&gt;{#not_set}&lt;/option&gt;
 								 &lt;/select&gt;
 							&lt;/td&gt;
 						&lt;/tr&gt;
@@ -73,7 +72,7 @@
 
 					&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;4&quot;&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;popupurl&quot;&gt;{#advlink_dlg.popup_url}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;popupurl&quot;&gt;{#advlink_dlg.popup_url}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;
 								&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
 									&lt;tr&gt;
@@ -84,19 +83,19 @@
 							&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;popupname&quot;&gt;{#advlink_dlg.popup_name}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;popupname&quot;&gt;{#advlink_dlg.popup_name}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;popupname&quot; id=&quot;popupname&quot; value=&quot;&quot; onchange=&quot;buildOnClick();&quot; /&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label&gt;{#advlink_dlg.popup_size}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label&gt;{#advlink_dlg.popup_size}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;
 								&lt;input type=&quot;text&quot; id=&quot;popupwidth&quot; name=&quot;popupwidth&quot; value=&quot;&quot; onchange=&quot;buildOnClick();&quot; /&gt; x
 								&lt;input type=&quot;text&quot; id=&quot;popupheight&quot; name=&quot;popupheight&quot; value=&quot;&quot; onchange=&quot;buildOnClick();&quot; /&gt; px
 							&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot; id=&quot;labelleft&quot;&gt;&lt;label&gt;{#advlink_dlg.popup_position}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;
+							&lt;td class=&quot;nowrap&quot; id=&quot;labelleft&quot;&gt;&lt;label&gt;{#advlink_dlg.popup_position}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;
 								&lt;input type=&quot;text&quot; id=&quot;popupleft&quot; name=&quot;popupleft&quot; value=&quot;&quot; onchange=&quot;buildOnClick();&quot; /&gt; /                                
 								&lt;input type=&quot;text&quot; id=&quot;popuptop&quot; name=&quot;popuptop&quot; value=&quot;&quot; onchange=&quot;buildOnClick();&quot; /&gt; (c /c = center)
 							&lt;/td&gt;
@@ -109,27 +108,27 @@
 						&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;4&quot;&gt;
 							&lt;tr&gt;
 								&lt;td&gt;&lt;input type=&quot;checkbox&quot; id=&quot;popuplocation&quot; name=&quot;popuplocation&quot; class=&quot;checkbox&quot; onchange=&quot;buildOnClick();&quot; /&gt;&lt;/td&gt;
-								&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;popuplocationlabel&quot; for=&quot;popuplocation&quot;&gt;{#advlink_dlg.popup_location}&lt;/label&gt;&lt;/td&gt;
+								&lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;popuplocationlabel&quot; for=&quot;popuplocation&quot;&gt;{#advlink_dlg.popup_location}&lt;/label&gt;&lt;/td&gt;
 								&lt;td&gt;&lt;input type=&quot;checkbox&quot; id=&quot;popupscrollbars&quot; name=&quot;popupscrollbars&quot; class=&quot;checkbox&quot; onchange=&quot;buildOnClick();&quot; /&gt;&lt;/td&gt;
-								&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupscrollbarslabel&quot; for=&quot;popupscrollbars&quot;&gt;{#advlink_dlg.popup_scrollbars}&lt;/label&gt;&lt;/td&gt;
+								&lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupscrollbarslabel&quot; for=&quot;popupscrollbars&quot;&gt;{#advlink_dlg.popup_scrollbars}&lt;/label&gt;&lt;/td&gt;
 							&lt;/tr&gt;
 							&lt;tr&gt;
 								&lt;td&gt;&lt;input type=&quot;checkbox&quot; id=&quot;popupmenubar&quot; name=&quot;popupmenubar&quot; class=&quot;checkbox&quot; onchange=&quot;buildOnClick();&quot; /&gt;&lt;/td&gt;
-								&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupmenubarlabel&quot; for=&quot;popupmenubar&quot;&gt;{#advlink_dlg.popup_menubar}&lt;/label&gt;&lt;/td&gt;
+								&lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupmenubarlabel&quot; for=&quot;popupmenubar&quot;&gt;{#advlink_dlg.popup_menubar}&lt;/label&gt;&lt;/td&gt;
 								&lt;td&gt;&lt;input type=&quot;checkbox&quot; id=&quot;popupresizable&quot; name=&quot;popupresizable&quot; class=&quot;checkbox&quot; onchange=&quot;buildOnClick();&quot; /&gt;&lt;/td&gt;
-								&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupresizablelabel&quot; for=&quot;popupresizable&quot;&gt;{#advlink_dlg.popup_resizable}&lt;/label&gt;&lt;/td&gt;
+								&lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupresizablelabel&quot; for=&quot;popupresizable&quot;&gt;{#advlink_dlg.popup_resizable}&lt;/label&gt;&lt;/td&gt;
 							&lt;/tr&gt;
 							&lt;tr&gt;
 								&lt;td&gt;&lt;input type=&quot;checkbox&quot; id=&quot;popuptoolbar&quot; name=&quot;popuptoolbar&quot; class=&quot;checkbox&quot; onchange=&quot;buildOnClick();&quot; /&gt;&lt;/td&gt;
-								&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;popuptoolbarlabel&quot; for=&quot;popuptoolbar&quot;&gt;{#advlink_dlg.popup_toolbar}&lt;/label&gt;&lt;/td&gt;
+								&lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;popuptoolbarlabel&quot; for=&quot;popuptoolbar&quot;&gt;{#advlink_dlg.popup_toolbar}&lt;/label&gt;&lt;/td&gt;
 								&lt;td&gt;&lt;input type=&quot;checkbox&quot; id=&quot;popupdependent&quot; name=&quot;popupdependent&quot; class=&quot;checkbox&quot; onchange=&quot;buildOnClick();&quot; /&gt;&lt;/td&gt;
-								&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupdependentlabel&quot; for=&quot;popupdependent&quot;&gt;{#advlink_dlg.popup_dependent}&lt;/label&gt;&lt;/td&gt;
+								&lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupdependentlabel&quot; for=&quot;popupdependent&quot;&gt;{#advlink_dlg.popup_dependent}&lt;/label&gt;&lt;/td&gt;
 							&lt;/tr&gt;
 							&lt;tr&gt;
 								&lt;td&gt;&lt;input type=&quot;checkbox&quot; id=&quot;popupstatus&quot; name=&quot;popupstatus&quot; class=&quot;checkbox&quot; onchange=&quot;buildOnClick();&quot; /&gt;&lt;/td&gt;
-								&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupstatuslabel&quot; for=&quot;popupstatus&quot;&gt;{#advlink_dlg.popup_statusbar}&lt;/label&gt;&lt;/td&gt;
+								&lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupstatuslabel&quot; for=&quot;popupstatus&quot;&gt;{#advlink_dlg.popup_statusbar}&lt;/label&gt;&lt;/td&gt;
 								&lt;td&gt;&lt;input type=&quot;checkbox&quot; id=&quot;popupreturn&quot; name=&quot;popupreturn&quot; class=&quot;checkbox&quot; onchange=&quot;buildOnClick();&quot; checked=&quot;checked&quot; /&gt;&lt;/td&gt;
-								&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupreturnlabel&quot; for=&quot;popupreturn&quot;&gt;{#advlink_dlg.popup_return}&lt;/label&gt;&lt;/td&gt;
+								&lt;td class=&quot;nowrap&quot;&gt;&lt;label id=&quot;popupreturnlabel&quot; for=&quot;popupreturn&quot;&gt;{#advlink_dlg.popup_return}&lt;/label&gt;&lt;/td&gt;
 							&lt;/tr&gt;
 						&lt;/table&gt;
 					&lt;/fieldset&gt;</diff>
      <filename>lib/tiny_mce/plugins/advlink/link.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.AutoSavePlugin',{init:function(ed,url){var t=this;t.editor=ed;window.onbeforeunload=tinymce.plugins.AutoSavePlugin._beforeUnloadHandler;},getInfo:function(){return{longname:'Auto save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},'static':{_beforeUnloadHandler:function(){var msg;tinymce.each(tinyMCE.editors,function(ed){if(ed.getParam(&quot;fullscreen_is_enabled&quot;))return;if(ed.isDirty()){msg=ed.getLang(&quot;autosave.unload_msg&quot;);return false;}});return msg;}}});tinymce.PluginManager.add('autosave',tinymce.plugins.AutoSavePlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.AutoSavePlugin&quot;,{init:function(a,b){var c=this;c.editor=a;window.onbeforeunload=tinymce.plugins.AutoSavePlugin._beforeUnloadHandler},getInfo:function(){return{longname:&quot;Auto save&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},&quot;static&quot;:{_beforeUnloadHandler:function(){var a;tinymce.each(tinyMCE.editors,function(b){if(b.getParam(&quot;fullscreen_is_enabled&quot;)){return}if(b.isDirty()){a=b.getLang(&quot;autosave.unload_msg&quot;);return false}});return a}}});tinymce.PluginManager.add(&quot;autosave&quot;,tinymce.plugins.AutoSavePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/autosave/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/autosave/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.BBCodePlugin',{init:function(ed,url){var t=this,dialect=ed.getParam('bbcode_dialect','punbb').toLowerCase();ed.onBeforeSetContent.add(function(ed,o){o.content=t['_'+dialect+'_bbcode2html'](o.content);});ed.onPostProcess.add(function(ed,o){if(o.set)o.content=t['_'+dialect+'_bbcode2html'](o.content);if(o.get)o.content=t['_'+dialect+'_html2bbcode'](o.content);});},getInfo:function(){return{longname:'BBCode Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_punbb_html2bbcode:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/&lt;a.*?href=\&quot;(.*?)\&quot;.*?&gt;(.*?)&lt;\/a&gt;/gi,&quot;[url=$1]$2[/url]&quot;);rep(/&lt;font.*?color=\&quot;(.*?)\&quot;.*?class=\&quot;codeStyle\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[code][color=$1]$2[/color][/code]&quot;);rep(/&lt;font.*?color=\&quot;(.*?)\&quot;.*?class=\&quot;quoteStyle\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[quote][color=$1]$2[/color][/quote]&quot;);rep(/&lt;font.*?class=\&quot;codeStyle\&quot;.*?color=\&quot;(.*?)\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[code][color=$1]$2[/color][/code]&quot;);rep(/&lt;font.*?class=\&quot;quoteStyle\&quot;.*?color=\&quot;(.*?)\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[quote][color=$1]$2[/color][/quote]&quot;);rep(/&lt;span style=\&quot;color: ?(.*?);\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[color=$1]$2[/color]&quot;);rep(/&lt;font.*?color=\&quot;(.*?)\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[color=$1]$2[/color]&quot;);rep(/&lt;span style=\&quot;font-size:(.*?);\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[size=$1]$2[/size]&quot;);rep(/&lt;font&gt;(.*?)&lt;\/font&gt;/gi,&quot;$1&quot;);rep(/&lt;img.*?src=\&quot;(.*?)\&quot;.*?\/&gt;/gi,&quot;[img]$1[/img]&quot;);rep(/&lt;span class=\&quot;codeStyle\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[code]$1[/code]&quot;);rep(/&lt;span class=\&quot;quoteStyle\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[quote]$1[/quote]&quot;);rep(/&lt;strong class=\&quot;codeStyle\&quot;&gt;(.*?)&lt;\/strong&gt;/gi,&quot;[code][b]$1[/b][/code]&quot;);rep(/&lt;strong class=\&quot;quoteStyle\&quot;&gt;(.*?)&lt;\/strong&gt;/gi,&quot;[quote][b]$1[/b][/quote]&quot;);rep(/&lt;em class=\&quot;codeStyle\&quot;&gt;(.*?)&lt;\/em&gt;/gi,&quot;[code][i]$1[/i][/code]&quot;);rep(/&lt;em class=\&quot;quoteStyle\&quot;&gt;(.*?)&lt;\/em&gt;/gi,&quot;[quote][i]$1[/i][/quote]&quot;);rep(/&lt;u class=\&quot;codeStyle\&quot;&gt;(.*?)&lt;\/u&gt;/gi,&quot;[code][u]$1[/u][/code]&quot;);rep(/&lt;u class=\&quot;quoteStyle\&quot;&gt;(.*?)&lt;\/u&gt;/gi,&quot;[quote][u]$1[/u][/quote]&quot;);rep(/&lt;\/(strong|b)&gt;/gi,&quot;[/b]&quot;);rep(/&lt;(strong|b)&gt;/gi,&quot;[b]&quot;);rep(/&lt;\/(em|i)&gt;/gi,&quot;[/i]&quot;);rep(/&lt;(em|i)&gt;/gi,&quot;[i]&quot;);rep(/&lt;\/u&gt;/gi,&quot;[/u]&quot;);rep(/&lt;span style=\&quot;text-decoration: ?underline;\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[u]$1[/u]&quot;);rep(/&lt;u&gt;/gi,&quot;[u]&quot;);rep(/&lt;blockquote[^&gt;]*&gt;/gi,&quot;[quote]&quot;);rep(/&lt;\/blockquote&gt;/gi,&quot;[/quote]&quot;);rep(/&lt;br \/&gt;/gi,&quot;\n&quot;);rep(/&lt;br\/&gt;/gi,&quot;\n&quot;);rep(/&lt;br&gt;/gi,&quot;\n&quot;);rep(/&lt;p&gt;/gi,&quot;&quot;);rep(/&lt;\/p&gt;/gi,&quot;\n&quot;);rep(/&amp;nbsp;/gi,&quot; &quot;);rep(/&amp;quot;/gi,&quot;\&quot;&quot;);rep(/&amp;lt;/gi,&quot;&lt;&quot;);rep(/&amp;gt;/gi,&quot;&gt;&quot;);rep(/&amp;amp;/gi,&quot;&amp;&quot;);return s;},_punbb_bbcode2html:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/\n/gi,&quot;&lt;br /&gt;&quot;);rep(/\[b\]/gi,&quot;&lt;strong&gt;&quot;);rep(/\[\/b\]/gi,&quot;&lt;/strong&gt;&quot;);rep(/\[i\]/gi,&quot;&lt;em&gt;&quot;);rep(/\[\/i\]/gi,&quot;&lt;/em&gt;&quot;);rep(/\[u\]/gi,&quot;&lt;u&gt;&quot;);rep(/\[\/u\]/gi,&quot;&lt;/u&gt;&quot;);rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,&quot;&lt;a href=\&quot;$1\&quot;&gt;$2&lt;/a&gt;&quot;);rep(/\[url\](.*?)\[\/url\]/gi,&quot;&lt;a href=\&quot;$1\&quot;&gt;$1&lt;/a&gt;&quot;);rep(/\[img\](.*?)\[\/img\]/gi,&quot;&lt;img src=\&quot;$1\&quot; /&gt;&quot;);rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,&quot;&lt;font color=\&quot;$1\&quot;&gt;$2&lt;/font&gt;&quot;);rep(/\[code\](.*?)\[\/code\]/gi,&quot;&lt;span class=\&quot;codeStyle\&quot;&gt;$1&lt;/span&gt;&amp;nbsp;&quot;);rep(/\[quote.*?\](.*?)\[\/quote\]/gi,&quot;&lt;span class=\&quot;quoteStyle\&quot;&gt;$1&lt;/span&gt;&amp;nbsp;&quot;);return s;}});tinymce.PluginManager.add('bbcode',tinymce.plugins.BBCodePlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.BBCodePlugin&quot;,{init:function(a,b){var d=this,c=a.getParam(&quot;bbcode_dialect&quot;,&quot;punbb&quot;).toLowerCase();a.onBeforeSetContent.add(function(e,f){f.content=d[&quot;_&quot;+c+&quot;_bbcode2html&quot;](f.content)});a.onPostProcess.add(function(e,f){if(f.set){f.content=d[&quot;_&quot;+c+&quot;_bbcode2html&quot;](f.content)}if(f.get){f.content=d[&quot;_&quot;+c+&quot;_html2bbcode&quot;](f.content)}})},getInfo:function(){return{longname:&quot;BBCode Plugin&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_punbb_html2bbcode:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/&lt;a.*?href=\&quot;(.*?)\&quot;.*?&gt;(.*?)&lt;\/a&gt;/gi,&quot;[url=$1]$2[/url]&quot;);b(/&lt;font.*?color=\&quot;(.*?)\&quot;.*?class=\&quot;codeStyle\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[code][color=$1]$2[/color][/code]&quot;);b(/&lt;font.*?color=\&quot;(.*?)\&quot;.*?class=\&quot;quoteStyle\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[quote][color=$1]$2[/color][/quote]&quot;);b(/&lt;font.*?class=\&quot;codeStyle\&quot;.*?color=\&quot;(.*?)\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[code][color=$1]$2[/color][/code]&quot;);b(/&lt;font.*?class=\&quot;quoteStyle\&quot;.*?color=\&quot;(.*?)\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[quote][color=$1]$2[/color][/quote]&quot;);b(/&lt;span style=\&quot;color: ?(.*?);\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[color=$1]$2[/color]&quot;);b(/&lt;font.*?color=\&quot;(.*?)\&quot;.*?&gt;(.*?)&lt;\/font&gt;/gi,&quot;[color=$1]$2[/color]&quot;);b(/&lt;span style=\&quot;font-size:(.*?);\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[size=$1]$2[/size]&quot;);b(/&lt;font&gt;(.*?)&lt;\/font&gt;/gi,&quot;$1&quot;);b(/&lt;img.*?src=\&quot;(.*?)\&quot;.*?\/&gt;/gi,&quot;[img]$1[/img]&quot;);b(/&lt;span class=\&quot;codeStyle\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[code]$1[/code]&quot;);b(/&lt;span class=\&quot;quoteStyle\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[quote]$1[/quote]&quot;);b(/&lt;strong class=\&quot;codeStyle\&quot;&gt;(.*?)&lt;\/strong&gt;/gi,&quot;[code][b]$1[/b][/code]&quot;);b(/&lt;strong class=\&quot;quoteStyle\&quot;&gt;(.*?)&lt;\/strong&gt;/gi,&quot;[quote][b]$1[/b][/quote]&quot;);b(/&lt;em class=\&quot;codeStyle\&quot;&gt;(.*?)&lt;\/em&gt;/gi,&quot;[code][i]$1[/i][/code]&quot;);b(/&lt;em class=\&quot;quoteStyle\&quot;&gt;(.*?)&lt;\/em&gt;/gi,&quot;[quote][i]$1[/i][/quote]&quot;);b(/&lt;u class=\&quot;codeStyle\&quot;&gt;(.*?)&lt;\/u&gt;/gi,&quot;[code][u]$1[/u][/code]&quot;);b(/&lt;u class=\&quot;quoteStyle\&quot;&gt;(.*?)&lt;\/u&gt;/gi,&quot;[quote][u]$1[/u][/quote]&quot;);b(/&lt;\/(strong|b)&gt;/gi,&quot;[/b]&quot;);b(/&lt;(strong|b)&gt;/gi,&quot;[b]&quot;);b(/&lt;\/(em|i)&gt;/gi,&quot;[/i]&quot;);b(/&lt;(em|i)&gt;/gi,&quot;[i]&quot;);b(/&lt;\/u&gt;/gi,&quot;[/u]&quot;);b(/&lt;span style=\&quot;text-decoration: ?underline;\&quot;&gt;(.*?)&lt;\/span&gt;/gi,&quot;[u]$1[/u]&quot;);b(/&lt;u&gt;/gi,&quot;[u]&quot;);b(/&lt;blockquote[^&gt;]*&gt;/gi,&quot;[quote]&quot;);b(/&lt;\/blockquote&gt;/gi,&quot;[/quote]&quot;);b(/&lt;br \/&gt;/gi,&quot;\n&quot;);b(/&lt;br\/&gt;/gi,&quot;\n&quot;);b(/&lt;br&gt;/gi,&quot;\n&quot;);b(/&lt;p&gt;/gi,&quot;&quot;);b(/&lt;\/p&gt;/gi,&quot;\n&quot;);b(/&amp;nbsp;/gi,&quot; &quot;);b(/&amp;quot;/gi,'&quot;');b(/&amp;lt;/gi,&quot;&lt;&quot;);b(/&amp;gt;/gi,&quot;&gt;&quot;);b(/&amp;amp;/gi,&quot;&amp;&quot;);return a},_punbb_bbcode2html:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/\n/gi,&quot;&lt;br /&gt;&quot;);b(/\[b\]/gi,&quot;&lt;strong&gt;&quot;);b(/\[\/b\]/gi,&quot;&lt;/strong&gt;&quot;);b(/\[i\]/gi,&quot;&lt;em&gt;&quot;);b(/\[\/i\]/gi,&quot;&lt;/em&gt;&quot;);b(/\[u\]/gi,&quot;&lt;u&gt;&quot;);b(/\[\/u\]/gi,&quot;&lt;/u&gt;&quot;);b(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'&lt;a href=&quot;$1&quot;&gt;$2&lt;/a&gt;');b(/\[url\](.*?)\[\/url\]/gi,'&lt;a href=&quot;$1&quot;&gt;$1&lt;/a&gt;');b(/\[img\](.*?)\[\/img\]/gi,'&lt;img src=&quot;$1&quot; /&gt;');b(/\[color=(.*?)\](.*?)\[\/color\]/gi,'&lt;font color=&quot;$1&quot;&gt;$2&lt;/font&gt;');b(/\[code\](.*?)\[\/code\]/gi,'&lt;span class=&quot;codeStyle&quot;&gt;$1&lt;/span&gt;&amp;nbsp;');b(/\[quote.*?\](.*?)\[\/quote\]/gi,'&lt;span class=&quot;quoteStyle&quot;&gt;$1&lt;/span&gt;&amp;nbsp;');return a}});tinymce.PluginManager.add(&quot;bbcode&quot;,tinymce.plugins.BBCodePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/bbcode/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/bbcode/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,is=tinymce.is;tinymce.create('tinymce.plugins.Compat2x',{getInfo:function(){return{longname:'Compat2x',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x',version:tinyMCE.majorVersion+&quot;.&quot;+tinyMCE.minorVersion};}});(function(){tinymce.extend(tinyMCE,{addToLang:function(p,l){each(l,function(v,k){tinyMCE.i18n[(tinyMCE.settings.language||'en')+'.'+(p?p+'_':'')+k]=v;});},getInstanceById:function(n){return this.get(n);}});})();(function(){var EditorManager=tinymce.EditorManager;tinyMCE.instances={};tinyMCE.plugins={};tinymce.PluginManager.onAdd.add(function(pm,n,p){tinyMCE.plugins[n]=p;});tinyMCE.majorVersion=tinymce.majorVersion;tinyMCE.minorVersion=tinymce.minorVersion;tinyMCE.releaseDate=tinymce.releaseDate;tinyMCE.baseURL=tinymce.baseURL;tinyMCE.isIE=tinyMCE.isMSIE=tinymce.isIE||tinymce.isOpera;tinyMCE.isMSIE5=tinymce.isIE;tinyMCE.isMSIE5_0=tinymce.isIE;tinyMCE.isMSIE7=tinymce.isIE;tinyMCE.isGecko=tinymce.isGecko;tinyMCE.isSafari=tinymce.isWebKit;tinyMCE.isOpera=tinymce.isOpera;tinyMCE.isMac=false;tinyMCE.isNS7=false;tinyMCE.isNS71=false;tinyMCE.compat=true;TinyMCE_Engine=tinyMCE;tinymce.extend(tinyMCE,{getParam:function(n,dv){return this.activeEditor.getParam(n,dv);},addEvent:function(e,na,f,sc){tinymce.dom.Event.add(e,na,f,sc||this);},getControlHTML:function(n){return EditorManager.activeEditor.controlManager.createControl(n);},loadCSS:function(u){tinymce.DOM.loadCSS(u);},importCSS:function(doc,u){if(doc==document)this.loadCSS(u);else new tinymce.dom.DOMUtils(doc).loadCSS(u);},log:function(){console.debug.apply(console,arguments);},getLang:function(n,dv){var v=EditorManager.activeEditor.getLang(n.replace(/^lang_/g,''),dv);if(/^[0-9\-.]+$/g.test(v))return parseInt(v);return v;},isInstance:function(o){return o!=null&amp;&amp;typeof(o)==&quot;object&quot;&amp;&amp;o.execCommand;},triggerNodeChange:function(){EditorManager.activeEditor.nodeChanged();},regexpReplace:function(in_str,reg_exp,replace_str,opts){var re;if(in_str==null)return in_str;if(typeof(opts)==&quot;undefined&quot;)opts='g';re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str);},trim:function(s){return tinymce.trim(s);},xmlEncode:function(s){return tinymce.DOM.encode(s);},explode:function(s,d){var o=[];tinymce.each(s.split(d),function(v){if(v!='')o.push(v);});return o;},switchClass:function(id,cls){var b;if(/^mceButton/.test(cls)){b=EditorManager.activeEditor.controlManager.get(id);if(!b)return;switch(cls){case&quot;mceButtonNormal&quot;:b.setDisabled(false);b.setActive(false);return;case&quot;mceButtonDisabled&quot;:b.setDisabled(true);return;case&quot;mceButtonSelected&quot;:b.setActive(true);b.setDisabled(false);return;}}},addCSSClass:function(e,n,b){return tinymce.DOM.addClass(e,n,b);},hasCSSClass:function(e,n){return tinymce.DOM.hasClass(e,n);},removeCSSClass:function(e,n){return tinymce.DOM.removeClass(e,n);},getCSSClasses:function(){var cl=EditorManager.activeEditor.dom.getClasses(),o=[];each(cl,function(c){o.push(c['class']);});return o;},setWindowArg:function(n,v){EditorManager.activeEditor.windowManager.params[n]=v;},getWindowArg:function(n,dv){var wm=EditorManager.activeEditor.windowManager,v;v=wm.getParam(n);if(v==='')return'';return v||wm.getFeature(n)||dv;},getParentNode:function(n,f){return this._getDOM().getParent(n,f);},selectElements:function(n,na,f){var i,a=[],nl,x;for(x=0,na=na.split(',');x&lt;na.length;x++)for(i=0,nl=n.getElementsByTagName(na[x]);i&lt;nl.length;i++)(!f||f(nl[i]))&amp;&amp;a.push(nl[i]);return a;},getNodeTree:function(n,na,t,nn){return this.selectNodes(n,function(n){return(!t||n.nodeType==t)&amp;&amp;(!nn||n.nodeName==nn);},na?na:[]);},getAttrib:function(e,n,dv){return this._getDOM().getAttrib(e,n,dv);},setAttrib:function(e,n,v){return this._getDOM().setAttrib(e,n,v);},getElementsByAttributeValue:function(n,e,a,v){var i,nl=n.getElementsByTagName(e),o=[];for(i=0;i&lt;nl.length;i++){if(tinyMCE.getAttrib(nl[i],a).indexOf(v)!=-1)o[o.length]=nl[i];}return o;},selectNodes:function(n,f,a){var i;if(!a)a=[];if(f(n))a[a.length]=n;if(n.hasChildNodes()){for(i=0;i&lt;n.childNodes.length;i++)tinyMCE.selectNodes(n.childNodes[i],f,a);}return a;},getContent:function(){return EditorManager.activeEditor.getContent();},getParentElement:function(n,na,f){if(na)na=new RegExp('^('+na.toUpperCase().replace(/,/g,'|')+')$','g');return this._getDOM().getParent(n,function(n){return n.nodeType==1&amp;&amp;(!na||na.test(n.nodeName))&amp;&amp;(!f||f(n));},this.activeEditor.getBody());},importPluginLanguagePack:function(n){tinymce.PluginManager.requireLangPack(n);},getButtonHTML:function(cn,lang,img,c,u,v){var ed=EditorManager.activeEditor;img=img.replace(/\{\$pluginurl\}/g,tinyMCE.pluginURL);img=img.replace(/\{\$themeurl\}/g,tinyMCE.themeURL);lang=lang.replace(/^lang_/g,'');return ed.controlManager.createButton(cn,{title:lang,command:c,ui:u,value:v,scope:this,'class':'compat',image:img});},addSelectAccessibility:function(e,s,w){if(!s._isAccessible){s.onkeydown=tinyMCE.accessibleEventHandler;s.onblur=tinyMCE.accessibleEventHandler;s._isAccessible=true;s._win=w;}return false;},accessibleEventHandler:function(e){var elm,win=this._win;e=tinymce.isIE?win.event:e;elm=tinymce.isIE?e.srcElement:e.target;if(e.type==&quot;blur&quot;){if(elm.oldonchange){elm.onchange=elm.oldonchange;elm.oldonchange=null;}return true;}if(elm.nodeName==&quot;SELECT&quot;&amp;&amp;!elm.oldonchange){elm.oldonchange=elm.onchange;elm.onchange=null;}if(e.keyCode==13||e.keyCode==32){elm.onchange=elm.oldonchange;elm.onchange();elm.oldonchange=null;tinyMCE.cancelEvent(e);return false;}return true;},cancelEvent:function(e){return tinymce.dom.Event.cancel(e);},handleVisualAid:function(e){EditorManager.activeEditor.addVisual(e);},getAbsPosition:function(n,r){return tinymce.DOM.getPos(n,r);},cleanupEventStr:function(s){s=&quot;&quot;+s;s=s.replace('function anonymous()\n{\n','');s=s.replace('\n}','');s=s.replace(/^return true;/gi,'');return s;},getVisualAidClass:function(s){return s;},parseStyle:function(s){return this._getDOM().parseStyle(s);},serializeStyle:function(s){return this._getDOM().serializeStyle(s);},openWindow:function(tpl,args){var ed=EditorManager.activeEditor,o={},n;for(n in tpl)o[n]=tpl[n];tpl=o;args=args||{};tpl.url=new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);tpl.inline=tpl.inline||args.inline;ed.windowManager.open(tpl,args);},closeWindow:function(win){EditorManager.activeEditor.windowManager.close(win);},getOuterHTML:function(e){return tinymce.DOM.getOuterHTML(e);},setOuterHTML:function(e,h,d){return tinymce.DOM.setOuterHTML(e,h,d);},hasPlugin:function(n){return tinymce.PluginManager.get(n)!=null;},_setEventsEnabled:function(){},addPlugin:function(pn,f){var t=this;function PluginWrapper(ed){tinyMCE.selectedInstance=ed;ed.onInit.add(function(){t.settings=ed.settings;t.settings['base_href']=tinyMCE.documentBasePath;tinyMCE.settings=t.settings;tinyMCE.documentBasePath=ed.documentBasePath;if(f.initInstance)f.initInstance(ed);ed.contentDocument=ed.getDoc();ed.contentWindow=ed.getWin();ed.undoRedo=ed.undoManager;ed.startContent=ed.getContent({format:'raw'});tinyMCE.instances[ed.id]=ed;tinyMCE.loadedFiles=[];});ed.onActivate.add(function(){tinyMCE.settings=ed.settings;tinyMCE.selectedInstance=ed;});if(f.handleNodeChange){ed.onNodeChange.add(function(ed,cm,n){f.handleNodeChange(ed.id,n,0,0,false,!ed.selection.isCollapsed());});}if(f.onChange){ed.onChange.add(function(ed,n){return f.onChange(ed);});}if(f.cleanup){ed.onGetContent.add(function(){});}this.getInfo=function(){return f.getInfo();};this.createControl=function(n){tinyMCE.pluginURL=tinymce.baseURL+'/plugins/'+pn;tinyMCE.themeURL=tinymce.baseURL+'/themes/'+tinyMCE.activeEditor.settings.theme;if(f.getControlHTML)return f.getControlHTML(n);return null;};this.execCommand=function(cmd,ui,val){if(f.execCommand)return f.execCommand(ed.id,ed.getBody(),cmd,ui,val);return false;};};tinymce.PluginManager.add(pn,PluginWrapper);},_getDOM:function(){return tinyMCE.activeEditor?tinyMCE.activeEditor.dom:tinymce.DOM;},convertRelativeToAbsoluteURL:function(b,u){return new tinymce.util.URI(b).toAbsolute(u);},convertAbsoluteURLToRelativeURL:function(b,u){return new tinymce.util.URI(b).toRelative(u);}});tinymce.extend(tinymce.Editor.prototype,{getFocusElement:function(){return this.selection.getNode();},getData:function(n){if(!this.data)this.data=[];if(!this.data[n])this.data[n]=[];return this.data[n];},hasPlugin:function(n){return this.plugins[n]!=null;},getContainerWin:function(){return window;},getHTML:function(raw){return this.getContent({format:raw?'raw':'html'});},setHTML:function(h){this.setContent(h);},getSel:function(){return this.selection.getSel();},getRng:function(){return this.selection.getRng();},isHidden:function(){var s;if(!tinymce.isGecko)return false;s=this.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},translate:function(s){var c=this.settings.language,o;if(!s)return s;o=tinymce.EditorManager.i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{#'+b+'}';});o=o.replace(/{\$lang_([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{$lang_'+b+'}';});return o;},repaint:function(){this.execCommand('mceRepaint');}});tinymce.extend(tinymce.dom.Selection.prototype,{getSelectedText:function(){return this.getContent({format:'text'});},getSelectedHTML:function(){return this.getContent({format:'html'});},getFocusElement:function(){return this.getNode();},selectNode:function(node,collapse,select_text_node,to_start){var t=this;t.select(node,select_text_node||0);if(!is(collapse))collapse=true;if(collapse){if(!is(to_start))to_start=true;t.collapse(to_start);}}});}).call(this);tinymce.PluginManager.add('compat2x',tinymce.plugins.Compat2x);})();
\ No newline at end of file
+(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.is;tinymce.create(&quot;tinymce.plugins.Compat2x&quot;,{getInfo:function(){return{longname:&quot;Compat2x&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x&quot;,version:tinyMCE.majorVersion+&quot;.&quot;+tinyMCE.minorVersion}}});(function(){tinymce.extend(tinyMCE,{addToLang:function(f,e){d(e,function(h,g){tinyMCE.i18n[(tinyMCE.settings.language||&quot;en&quot;)+&quot;.&quot;+(f?f+&quot;_&quot;:&quot;&quot;)+g]=h})},getInstanceById:function(e){return this.get(e)}})})();(function(){var e=tinymce.EditorManager;tinyMCE.instances={};tinyMCE.plugins={};tinymce.PluginManager.onAdd.add(function(f,h,g){tinyMCE.plugins[h]=g});tinyMCE.majorVersion=tinymce.majorVersion;tinyMCE.minorVersion=tinymce.minorVersion;tinyMCE.releaseDate=tinymce.releaseDate;tinyMCE.baseURL=tinymce.baseURL;tinyMCE.isIE=tinyMCE.isMSIE=tinymce.isIE||tinymce.isOpera;tinyMCE.isMSIE5=tinymce.isIE;tinyMCE.isMSIE5_0=tinymce.isIE;tinyMCE.isMSIE7=tinymce.isIE;tinyMCE.isGecko=tinymce.isGecko;tinyMCE.isSafari=tinymce.isWebKit;tinyMCE.isOpera=tinymce.isOpera;tinyMCE.isMac=false;tinyMCE.isNS7=false;tinyMCE.isNS71=false;tinyMCE.compat=true;TinyMCE_Engine=tinyMCE;tinymce.extend(tinyMCE,{getParam:function(g,f){return this.activeEditor.getParam(g,f)},addEvent:function(i,g,h,j){tinymce.dom.Event.add(i,g,h,j||this)},getControlHTML:function(f){return e.activeEditor.controlManager.createControl(f)},loadCSS:function(f){tinymce.DOM.loadCSS(f)},importCSS:function(g,f){if(g==document){this.loadCSS(f)}else{new tinymce.dom.DOMUtils(g).loadCSS(f)}},log:function(){console.debug.apply(console,arguments)},getLang:function(h,g){var f=e.activeEditor.getLang(h.replace(/^lang_/g,&quot;&quot;),g);if(/^[0-9\-.]+$/g.test(f)){return parseInt(f)}return f},isInstance:function(f){return f!=null&amp;&amp;typeof(f)==&quot;object&quot;&amp;&amp;f.execCommand},triggerNodeChange:function(){e.activeEditor.nodeChanged()},regexpReplace:function(j,f,h,i){var g;if(j==null){return j}if(typeof(i)==&quot;undefined&quot;){i=&quot;g&quot;}g=new RegExp(f,i);return j.replace(g,h)},trim:function(f){return tinymce.trim(f)},xmlEncode:function(f){return tinymce.DOM.encode(f)},explode:function(f,h){var g=[];tinymce.each(f.split(h),function(i){if(i!=&quot;&quot;){g.push(i)}});return g},switchClass:function(h,g){var f;if(/^mceButton/.test(g)){f=e.activeEditor.controlManager.get(h);if(!f){return}switch(g){case&quot;mceButtonNormal&quot;:f.setDisabled(false);f.setActive(false);return;case&quot;mceButtonDisabled&quot;:f.setDisabled(true);return;case&quot;mceButtonSelected&quot;:f.setActive(true);f.setDisabled(false);return}}},addCSSClass:function(g,h,f){return tinymce.DOM.addClass(g,h,f)},hasCSSClass:function(f,g){return tinymce.DOM.hasClass(f,g)},removeCSSClass:function(f,g){return tinymce.DOM.removeClass(f,g)},getCSSClasses:function(){var f=e.activeEditor.dom.getClasses(),g=[];d(f,function(h){g.push(h[&quot;class&quot;])});return g},setWindowArg:function(g,f){e.activeEditor.windowManager.params[g]=f},getWindowArg:function(i,g){var h=e.activeEditor.windowManager,f;f=h.getParam(i);if(f===&quot;&quot;){return&quot;&quot;}return f||h.getFeature(i)||g},getParentNode:function(h,g){return this._getDOM().getParent(h,g)},selectElements:function(o,k,m){var l,j=[],h,g;for(g=0,k=k.split(&quot;,&quot;);g&lt;k.length;g++){for(l=0,h=o.getElementsByTagName(k[g]);l&lt;h.length;l++){(!m||m(h[l]))&amp;&amp;j.push(h[l])}}return j},getNodeTree:function(i,f,g,h){return this.selectNodes(i,function(j){return(!g||j.nodeType==g)&amp;&amp;(!h||j.nodeName==h)},f?f:[])},getAttrib:function(g,h,f){return this._getDOM().getAttrib(g,h,f)},setAttrib:function(g,h,f){return this._getDOM().setAttrib(g,h,f)},getElementsByAttributeValue:function(m,k,g,h){var j,f=m.getElementsByTagName(k),l=[];for(j=0;j&lt;f.length;j++){if(tinyMCE.getAttrib(f[j],g).indexOf(h)!=-1){l[l.length]=f[j]}}return l},selectNodes:function(k,j,g){var h;if(!g){g=[]}if(j(k)){g[g.length]=k}if(k.hasChildNodes()){for(h=0;h&lt;k.childNodes.length;h++){tinyMCE.selectNodes(k.childNodes[h],j,g)}}return g},getContent:function(){return e.activeEditor.getContent()},getParentElement:function(i,g,h){if(g){g=new RegExp(&quot;^(&quot;+g.toUpperCase().replace(/,/g,&quot;|&quot;)+&quot;)$&quot;,&quot;g&quot;)}return this._getDOM().getParent(i,function(f){return f.nodeType==1&amp;&amp;(!g||g.test(f.nodeName))&amp;&amp;(!h||h(f))},this.activeEditor.getBody())},importPluginLanguagePack:function(f){tinymce.PluginManager.requireLangPack(f)},getButtonHTML:function(l,j,h,k,i,g){var f=e.activeEditor;h=h.replace(/\{\$pluginurl\}/g,tinyMCE.pluginURL);h=h.replace(/\{\$themeurl\}/g,tinyMCE.themeURL);j=j.replace(/^lang_/g,&quot;&quot;);return f.controlManager.createButton(l,{title:j,command:k,ui:i,value:g,scope:this,&quot;class&quot;:&quot;compat&quot;,image:h})},addSelectAccessibility:function(h,g,f){if(!g._isAccessible){g.onkeydown=tinyMCE.accessibleEventHandler;g.onblur=tinyMCE.accessibleEventHandler;g._isAccessible=true;g._win=f}return false},accessibleEventHandler:function(g){var h,f=this._win;g=tinymce.isIE?f.event:g;h=tinymce.isIE?g.srcElement:g.target;if(g.type==&quot;blur&quot;){if(h.oldonchange){h.onchange=h.oldonchange;h.oldonchange=null}return true}if(h.nodeName==&quot;SELECT&quot;&amp;&amp;!h.oldonchange){h.oldonchange=h.onchange;h.onchange=null}if(g.keyCode==13||g.keyCode==32){h.onchange=h.oldonchange;h.onchange();h.oldonchange=null;tinyMCE.cancelEvent(g);return false}return true},cancelEvent:function(f){return tinymce.dom.Event.cancel(f)},handleVisualAid:function(f){e.activeEditor.addVisual(f)},getAbsPosition:function(g,f){return tinymce.DOM.getPos(g,f)},cleanupEventStr:function(f){f=&quot;&quot;+f;f=f.replace(&quot;function anonymous()\n{\n&quot;,&quot;&quot;);f=f.replace(&quot;\n}&quot;,&quot;&quot;);f=f.replace(/^return true;/gi,&quot;&quot;);return f},getVisualAidClass:function(f){return f},parseStyle:function(f){return this._getDOM().parseStyle(f)},serializeStyle:function(f){return this._getDOM().serializeStyle(f)},openWindow:function(h,g){var f=e.activeEditor,i={},j;for(j in h){i[j]=h[j]}h=i;g=g||{};h.url=new tinymce.util.URI(tinymce.ThemeManager.themeURLs[f.settings.theme]).toAbsolute(h.file);h.inline=h.inline||g.inline;f.windowManager.open(h,g)},closeWindow:function(f){e.activeEditor.windowManager.close(f)},getOuterHTML:function(f){return tinymce.DOM.getOuterHTML(f)},setOuterHTML:function(g,f,i){return tinymce.DOM.setOuterHTML(g,f,i)},hasPlugin:function(f){return tinymce.PluginManager.get(f)!=null},_setEventsEnabled:function(){},addPlugin:function(g,i){var h=this;function j(f){tinyMCE.selectedInstance=f;f.onInit.add(function(){h.settings=f.settings;h.settings.base_href=tinyMCE.documentBasePath;tinyMCE.settings=h.settings;tinyMCE.documentBasePath=f.documentBasePath;if(i.initInstance){i.initInstance(f)}f.contentDocument=f.getDoc();f.contentWindow=f.getWin();f.undoRedo=f.undoManager;f.startContent=f.getContent({format:&quot;raw&quot;});tinyMCE.instances[f.id]=f;tinyMCE.loadedFiles=[]});f.onActivate.add(function(){tinyMCE.settings=f.settings;tinyMCE.selectedInstance=f});if(i.handleNodeChange){f.onNodeChange.add(function(l,k,m){i.handleNodeChange(l.id,m,0,0,false,!l.selection.isCollapsed())})}if(i.onChange){f.onChange.add(function(k,l){return i.onChange(k)})}if(i.cleanup){f.onGetContent.add(function(){})}this.getInfo=function(){return i.getInfo()};this.createControl=function(k){tinyMCE.pluginURL=tinymce.baseURL+&quot;/plugins/&quot;+g;tinyMCE.themeURL=tinymce.baseURL+&quot;/themes/&quot;+tinyMCE.activeEditor.settings.theme;if(i.getControlHTML){return i.getControlHTML(k)}return null};this.execCommand=function(l,k,m){if(i.execCommand){return i.execCommand(f.id,f.getBody(),l,k,m)}return false}}tinymce.PluginManager.add(g,j)},_getDOM:function(){return tinyMCE.activeEditor?tinyMCE.activeEditor.dom:tinymce.DOM},convertRelativeToAbsoluteURL:function(f,g){return new tinymce.util.URI(f).toAbsolute(g)},convertAbsoluteURLToRelativeURL:function(f,g){return new tinymce.util.URI(f).toRelative(g)}});tinymce.extend(tinymce.Editor.prototype,{getFocusElement:function(){return this.selection.getNode()},getData:function(f){if(!this.data){this.data=[]}if(!this.data[f]){this.data[f]=[]}return this.data[f]},hasPlugin:function(f){return this.plugins[f]!=null},getContainerWin:function(){return window},getHTML:function(f){return this.getContent({format:f?&quot;raw&quot;:&quot;html&quot;})},setHTML:function(f){this.setContent(f)},getSel:function(){return this.selection.getSel()},getRng:function(){return this.selection.getRng()},isHidden:function(){var f;if(!tinymce.isGecko){return false}f=this.getSel();return(!f||!f.rangeCount||f.rangeCount==0)},translate:function(f){var h=this.settings.language,g;if(!f){return f}g=tinymce.EditorManager.i18n[h+&quot;.&quot;+f]||f.replace(/{\#([^}]+)\}/g,function(j,i){return tinymce.EditorManager.i18n[h+&quot;.&quot;+i]||&quot;{#&quot;+i+&quot;}&quot;});g=g.replace(/{\$lang_([^}]+)\}/g,function(j,i){return tinymce.EditorManager.i18n[h+&quot;.&quot;+i]||&quot;{$lang_&quot;+i+&quot;}&quot;});return g},repaint:function(){this.execCommand(&quot;mceRepaint&quot;)}});tinymce.extend(tinymce.dom.Selection.prototype,{getSelectedText:function(){return this.getContent({format:&quot;text&quot;})},getSelectedHTML:function(){return this.getContent({format:&quot;html&quot;})},getFocusElement:function(){return this.getNode()},selectNode:function(i,j,g,f){var h=this;h.select(i,g||0);if(!b(j)){j=true}if(j){if(!b(f)){f=true}h.collapse(f)}}})}).call(this);tinymce.PluginManager.add(&quot;compat2x&quot;,tinymce.plugins.Compat2x)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/compat2x/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/compat2x/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var Event=tinymce.dom.Event,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.ContextMenu',{init:function(ed){var t=this;t.editor=ed;t.onContextMenu=new tinymce.util.Dispatcher(this);ed.onContextMenu.add(function(ed,e){if(!e.ctrlKey){t._getMenu(ed).showMenu(e.clientX,e.clientY);Event.add(ed.getDoc(),'click',hide);Event.cancel(e);}});function hide(){if(t._menu){t._menu.removeAll();t._menu.destroy();Event.remove(ed.getDoc(),'click',hide);}};ed.onMouseDown.add(hide);ed.onKeyDown.add(hide);},getInfo:function(){return{longname:'Contextmenu',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_getMenu:function(ed){var t=this,m=t._menu,se=ed.selection,col=se.isCollapsed(),el=se.getNode()||ed.getBody(),am,p1,p2;if(m){m.removeAll();m.destroy();}p1=DOM.getPos(ed.getContentAreaContainer());p2=DOM.getPos(ed.getContainer());m=ed.controlManager.createDropMenu('contextmenu',{offset_x:p1.x+ed.getParam('contextmenu_offset_x',0),offset_y:p1.y+ed.getParam('contextmenu_offset_y',0),constrain:1});t._menu=m;m.add({title:'advanced.cut_desc',icon:'cut',cmd:'Cut'}).setDisabled(col);m.add({title:'advanced.copy_desc',icon:'copy',cmd:'Copy'}).setDisabled(col);m.add({title:'advanced.paste_desc',icon:'paste',cmd:'Paste'});if((el.nodeName=='A'&amp;&amp;!ed.dom.getAttrib(el,'name'))||!col){m.addSeparator();m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});}m.addSeparator();m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();am=m.addMenu({title:'contextmenu.align'});am.add({title:'contextmenu.left',icon:'justifyleft',cmd:'JustifyLeft'});am.add({title:'contextmenu.center',icon:'justifycenter',cmd:'JustifyCenter'});am.add({title:'contextmenu.right',icon:'justifyright',cmd:'JustifyRight'});am.add({title:'contextmenu.full',icon:'justifyfull',cmd:'JustifyFull'});t.onContextMenu.dispatch(t,m,el,col);return m;}});tinymce.PluginManager.add('contextmenu',tinymce.plugins.ContextMenu);})();
\ No newline at end of file
+(function(){var a=tinymce.dom.Event,c=tinymce.each,b=tinymce.DOM;tinymce.create(&quot;tinymce.plugins.ContextMenu&quot;,{init:function(d){var f=this;f.editor=d;f.onContextMenu=new tinymce.util.Dispatcher(this);d.onContextMenu.add(function(g,h){if(!h.ctrlKey){f._getMenu(g).showMenu(h.clientX,h.clientY);a.add(g.getDoc(),&quot;click&quot;,e);a.cancel(h)}});function e(){if(f._menu){f._menu.removeAll();f._menu.destroy();a.remove(d.getDoc(),&quot;click&quot;,e)}}d.onMouseDown.add(e);d.onKeyDown.add(e)},getInfo:function(){return{longname:&quot;Contextmenu&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_getMenu:function(h){var l=this,f=l._menu,i=h.selection,e=i.isCollapsed(),d=i.getNode()||h.getBody(),g,k,j;if(f){f.removeAll();f.destroy()}k=b.getPos(h.getContentAreaContainer());j=b.getPos(h.getContainer());f=h.controlManager.createDropMenu(&quot;contextmenu&quot;,{offset_x:k.x+h.getParam(&quot;contextmenu_offset_x&quot;,0),offset_y:k.y+h.getParam(&quot;contextmenu_offset_y&quot;,0),constrain:1});l._menu=f;f.add({title:&quot;advanced.cut_desc&quot;,icon:&quot;cut&quot;,cmd:&quot;Cut&quot;}).setDisabled(e);f.add({title:&quot;advanced.copy_desc&quot;,icon:&quot;copy&quot;,cmd:&quot;Copy&quot;}).setDisabled(e);f.add({title:&quot;advanced.paste_desc&quot;,icon:&quot;paste&quot;,cmd:&quot;Paste&quot;});if((d.nodeName==&quot;A&quot;&amp;&amp;!h.dom.getAttrib(d,&quot;name&quot;))||!e){f.addSeparator();f.add({title:&quot;advanced.link_desc&quot;,icon:&quot;link&quot;,cmd:h.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();f.add({title:&quot;advanced.image_desc&quot;,icon:&quot;image&quot;,cmd:h.plugins.advimage?&quot;mceAdvImage&quot;:&quot;mceImage&quot;,ui:true});f.addSeparator();g=f.addMenu({title:&quot;contextmenu.align&quot;});g.add({title:&quot;contextmenu.left&quot;,icon:&quot;justifyleft&quot;,cmd:&quot;JustifyLeft&quot;});g.add({title:&quot;contextmenu.center&quot;,icon:&quot;justifycenter&quot;,cmd:&quot;JustifyCenter&quot;});g.add({title:&quot;contextmenu.right&quot;,icon:&quot;justifyright&quot;,cmd:&quot;JustifyRight&quot;});g.add({title:&quot;contextmenu.full&quot;,icon:&quot;justifyfull&quot;,cmd:&quot;JustifyFull&quot;});l.onContextMenu.dispatch(l,f,d,e);return f}});tinymce.PluginManager.add(&quot;contextmenu&quot;,tinymce.plugins.ContextMenu)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/contextmenu/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/contextmenu/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.Directionality',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceDirectionLTR',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,&quot;dir&quot;)!=&quot;ltr&quot;)ed.dom.setAttrib(e,&quot;dir&quot;,&quot;ltr&quot;);else ed.dom.setAttrib(e,&quot;dir&quot;,&quot;&quot;);}ed.nodeChanged();});ed.addCommand('mceDirectionRTL',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,&quot;dir&quot;)!=&quot;rtl&quot;)ed.dom.setAttrib(e,&quot;dir&quot;,&quot;rtl&quot;);else ed.dom.setAttrib(e,&quot;dir&quot;,&quot;&quot;);}ed.nodeChanged();});ed.addButton('ltr',{title:'directionality.ltr_desc',cmd:'mceDirectionLTR'});ed.addButton('rtl',{title:'directionality.rtl_desc',cmd:'mceDirectionRTL'});ed.onNodeChange.add(t._nodeChange,t);},getInfo:function(){return{longname:'Directionality',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var dom=ed.dom,dir;n=dom.getParent(n,dom.isBlock);if(!n){cm.setDisabled('ltr',1);cm.setDisabled('rtl',1);return;}dir=dom.getAttrib(n,'dir');cm.setActive('ltr',dir==&quot;ltr&quot;);cm.setDisabled('ltr',0);cm.setActive('rtl',dir==&quot;rtl&quot;);cm.setDisabled('rtl',0);}});tinymce.PluginManager.add('directionality',tinymce.plugins.Directionality);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.Directionality&quot;,{init:function(a,b){var c=this;c.editor=a;a.addCommand(&quot;mceDirectionLTR&quot;,function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,&quot;dir&quot;)!=&quot;ltr&quot;){a.dom.setAttrib(d,&quot;dir&quot;,&quot;ltr&quot;)}else{a.dom.setAttrib(d,&quot;dir&quot;,&quot;&quot;)}}a.nodeChanged()});a.addCommand(&quot;mceDirectionRTL&quot;,function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,&quot;dir&quot;)!=&quot;rtl&quot;){a.dom.setAttrib(d,&quot;dir&quot;,&quot;rtl&quot;)}else{a.dom.setAttrib(d,&quot;dir&quot;,&quot;&quot;)}}a.nodeChanged()});a.addButton(&quot;ltr&quot;,{title:&quot;directionality.ltr_desc&quot;,cmd:&quot;mceDirectionLTR&quot;});a.addButton(&quot;rtl&quot;,{title:&quot;directionality.rtl_desc&quot;,cmd:&quot;mceDirectionRTL&quot;});a.onNodeChange.add(c._nodeChange,c)},getInfo:function(){return{longname:&quot;Directionality&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_nodeChange:function(b,a,e){var d=b.dom,c;e=d.getParent(e,d.isBlock);if(!e){a.setDisabled(&quot;ltr&quot;,1);a.setDisabled(&quot;rtl&quot;,1);return}c=d.getAttrib(e,&quot;dir&quot;);a.setActive(&quot;ltr&quot;,c==&quot;ltr&quot;);a.setDisabled(&quot;ltr&quot;,0);a.setActive(&quot;rtl&quot;,c==&quot;rtl&quot;);a.setDisabled(&quot;rtl&quot;,0)}});tinymce.PluginManager.add(&quot;directionality&quot;,tinymce.plugins.Directionality)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/directionality/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/directionality/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.EmotionsPlugin',{init:function(ed,url){ed.addCommand('mceEmotion',function(){ed.windowManager.open({file:url+'/emotions.htm',width:250+parseInt(ed.getLang('emotions.delta_width',0)),height:160+parseInt(ed.getLang('emotions.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('emotions',{title:'emotions.emotions_desc',cmd:'mceEmotion'});},getInfo:function(){return{longname:'Emotions',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('emotions',tinymce.plugins.EmotionsPlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.EmotionsPlugin&quot;,{init:function(a,b){a.addCommand(&quot;mceEmotion&quot;,function(){a.windowManager.open({file:b+&quot;/emotions.htm&quot;,width:250+parseInt(a.getLang(&quot;emotions.delta_width&quot;,0)),height:160+parseInt(a.getLang(&quot;emotions.delta_height&quot;,0)),inline:1},{plugin_url:b})});a.addButton(&quot;emotions&quot;,{title:&quot;emotions.emotions_desc&quot;,cmd:&quot;mceEmotion&quot;})},getInfo:function(){return{longname:&quot;Emotions&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;emotions&quot;,tinymce.plugins.EmotionsPlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/emotions/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,9 @@
-&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
+&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
 &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
 &lt;head&gt;
 	&lt;title&gt;{#emotions_dlg.title}&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/emotions.js&quot;&gt;&lt;/script&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body style=&quot;display: none&quot;&gt;
 	&lt;div align=&quot;center&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/emotions/emotions.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-cool.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-cry.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-embarassed.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-frown.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-innocent.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-kiss.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-laughing.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-sealed.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-smile.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-surprised.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-undecided.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-wink.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/img/smiley-yell.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/js/emotions.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/emotions/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/example/dialog.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.PluginManager.requireLangPack('example');tinymce.create('tinymce.plugins.ExamplePlugin',{init:function(ed,url){ed.addCommand('mceExample',function(){ed.windowManager.open({file:url+'/dialog.htm',width:320+parseInt(ed.getLang('example.delta_width',0)),height:120+parseInt(ed.getLang('example.delta_height',0)),inline:1},{plugin_url:url,some_custom_arg:'custom arg'});});ed.addButton('example',{title:'example.desc',cmd:'mceExample',image:url+'/img/example.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('example',n.nodeName=='IMG');});},createControl:function(n,cm){return null;},getInfo:function(){return{longname:'Example plugin',author:'Some author',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',version:&quot;1.0&quot;};}});tinymce.PluginManager.add('example',tinymce.plugins.ExamplePlugin);})();
\ No newline at end of file
+(function(){tinymce.PluginManager.requireLangPack(&quot;example&quot;);tinymce.create(&quot;tinymce.plugins.ExamplePlugin&quot;,{init:function(a,b){a.addCommand(&quot;mceExample&quot;,function(){a.windowManager.open({file:b+&quot;/dialog.htm&quot;,width:320+parseInt(a.getLang(&quot;example.delta_width&quot;,0)),height:120+parseInt(a.getLang(&quot;example.delta_height&quot;,0)),inline:1},{plugin_url:b,some_custom_arg:&quot;custom arg&quot;})});a.addButton(&quot;example&quot;,{title:&quot;example.desc&quot;,cmd:&quot;mceExample&quot;,image:b+&quot;/img/example.gif&quot;});a.onNodeChange.add(function(d,c,e){c.setActive(&quot;example&quot;,e.nodeName==&quot;IMG&quot;)})},createControl:function(b,a){return null},getInfo:function(){return{longname:&quot;Example plugin&quot;,author:&quot;Some author&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example&quot;,version:&quot;1.0&quot;}}});tinymce.PluginManager.add(&quot;example&quot;,tinymce.plugins.ExamplePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/example/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/example/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/example/img/example.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/example/js/dialog.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/example/langs/en.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/example/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/fullpage/css/fullpage.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.FullPagePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceFullPageProperties',function(){ed.windowManager.open({file:url+'/fullpage.htm',width:430+parseInt(ed.getLang('fullpage.delta_width',0)),height:495+parseInt(ed.getLang('fullpage.delta_height',0)),inline:1},{plugin_url:url,head_html:t.head});});ed.addButton('fullpage',{title:'fullpage.desc',cmd:'mceFullPageProperties'});ed.onBeforeSetContent.add(t._setContent,t);ed.onSetContent.add(t._setBodyAttribs,t);ed.onGetContent.add(t._getContent,t);},getInfo:function(){return{longname:'Fullpage',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_setBodyAttribs:function(ed,o){var bdattr,i,len,kv,k,v,t,attr=this.head.match(/body(.*?)&gt;/i);if(attr&amp;&amp;attr[1]){bdattr=attr[1].match(/\s*(\w+\s*=\s*&quot;.*?&quot;|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);for(i=0,len=bdattr.length;i&lt;len;i++){kv=bdattr[i].split('=');k=kv[0].replace(/\s/,'');v=kv[1];if(v){v=v.replace(/^\s+/,'').replace(/\s+$/,'');t=v.match(/^[&quot;'](.*)[&quot;']$/);if(t)v=t[1];}else v=k;ed.dom.setAttrib(ed.getBody(),'style',v);}}},_createSerializer:function(){return new tinymce.dom.Serializer({dom:this.editor.dom,apply_source_formatting:true});},_setContent:function(ed,o){var t=this,sp,ep,c=o.content,v,st='';c=c.replace(/&lt;(\/?)BODY/gi,'&lt;$1body');sp=c.indexOf('&lt;body');if(sp!=-1){sp=c.indexOf('&gt;',sp);t.head=c.substring(0,sp+1);ep=c.indexOf('&lt;/body',sp);if(ep==-1)ep=c.indexOf('&lt;/body',ep);o.content=c.substring(sp+1,ep);t.foot=c.substring(ep);function low(s){return s.replace(/&lt;\/?[A-Z]+/g,function(a){return a.toLowerCase();})};t.head=low(t.head);t.foot=low(t.foot);}else{t.head='';if(ed.getParam('fullpage_default_xml_pi'))t.head+='&lt;?xml version=&quot;1.0&quot; encoding=&quot;'+ed.getParam('fullpage_default_encoding','ISO-8859-1')+'&quot; ?&gt;\n';t.head+=ed.getParam('fullpage_default_doctype','&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;');t.head+='\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;'+ed.getParam('fullpage_default_title','Untitled document')+'&lt;/title&gt;\n';if(v=ed.getParam('fullpage_default_encoding'))t.head+='&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;'+v+'&quot; /&gt;\n';if(v=ed.getParam('fullpage_default_font_family'))st+='font-family: '+v+';';if(v=ed.getParam('fullpage_default_font_size'))st+='font-size: '+v+';';if(v=ed.getParam('fullpage_default_text_color'))st+='color: '+v+';';t.head+='&lt;/head&gt;\n&lt;body'+(st?' style=&quot;'+st+'&quot;':'')+'&gt;\n';t.foot='\n&lt;/body&gt;\n&lt;/html&gt;';}},_getContent:function(ed,o){var t=this;o.content=tinymce.trim(t.head)+'\n'+tinymce.trim(o.content)+'\n'+tinymce.trim(t.foot);}});tinymce.PluginManager.add('fullpage',tinymce.plugins.FullPagePlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.FullPagePlugin&quot;,{init:function(a,b){var c=this;c.editor=a;a.addCommand(&quot;mceFullPageProperties&quot;,function(){a.windowManager.open({file:b+&quot;/fullpage.htm&quot;,width:430+parseInt(a.getLang(&quot;fullpage.delta_width&quot;,0)),height:495+parseInt(a.getLang(&quot;fullpage.delta_height&quot;,0)),inline:1},{plugin_url:b,head_html:c.head})});a.addButton(&quot;fullpage&quot;,{title:&quot;fullpage.desc&quot;,cmd:&quot;mceFullPageProperties&quot;});a.onBeforeSetContent.add(c._setContent,c);a.onSetContent.add(c._setBodyAttribs,c);a.onGetContent.add(c._getContent,c)},getInfo:function(){return{longname:&quot;Fullpage&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_setBodyAttribs:function(d,a){var l,c,e,g,b,h,j,f=this.head.match(/body(.*?)&gt;/i);if(f&amp;&amp;f[1]){l=f[1].match(/\s*(\w+\s*=\s*&quot;.*?&quot;|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);if(l){for(c=0,e=l.length;c&lt;e;c++){g=l[c].split(&quot;=&quot;);b=g[0].replace(/\s/,&quot;&quot;);h=g[1];if(h){h=h.replace(/^\s+/,&quot;&quot;).replace(/\s+$/,&quot;&quot;);j=h.match(/^[&quot;'](.*)[&quot;']$/);if(j){h=j[1]}}else{h=b}d.dom.setAttrib(d.getBody(),&quot;style&quot;,h)}}}},_createSerializer:function(){return new tinymce.dom.Serializer({dom:this.editor.dom,apply_source_formatting:true})},_setContent:function(d,b){var h=this,a,j,f=b.content,g,i=&quot;&quot;;if(b.source_view&amp;&amp;d.getParam(&quot;fullpage_hide_in_source_view&quot;)){return}f=f.replace(/&lt;(\/?)BODY/gi,&quot;&lt;$1body&quot;);a=f.indexOf(&quot;&lt;body&quot;);if(a!=-1){a=f.indexOf(&quot;&gt;&quot;,a);h.head=f.substring(0,a+1);j=f.indexOf(&quot;&lt;/body&quot;,a);if(j==-1){j=f.indexOf(&quot;&lt;/body&quot;,j)}b.content=f.substring(a+1,j);h.foot=f.substring(j);function e(c){return c.replace(/&lt;\/?[A-Z]+/g,function(k){return k.toLowerCase()})}h.head=e(h.head);h.foot=e(h.foot)}else{h.head=&quot;&quot;;if(d.getParam(&quot;fullpage_default_xml_pi&quot;)){h.head+='&lt;?xml version=&quot;1.0&quot; encoding=&quot;'+d.getParam(&quot;fullpage_default_encoding&quot;,&quot;ISO-8859-1&quot;)+'&quot; ?&gt;\n'}h.head+=d.getParam(&quot;fullpage_default_doctype&quot;,'&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;');h.head+=&quot;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;&quot;+d.getParam(&quot;fullpage_default_title&quot;,&quot;Untitled document&quot;)+&quot;&lt;/title&gt;\n&quot;;if(g=d.getParam(&quot;fullpage_default_encoding&quot;)){h.head+='&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;'+g+'&quot; /&gt;\n'}if(g=d.getParam(&quot;fullpage_default_font_family&quot;)){i+=&quot;font-family: &quot;+g+&quot;;&quot;}if(g=d.getParam(&quot;fullpage_default_font_size&quot;)){i+=&quot;font-size: &quot;+g+&quot;;&quot;}if(g=d.getParam(&quot;fullpage_default_text_color&quot;)){i+=&quot;color: &quot;+g+&quot;;&quot;}h.head+=&quot;&lt;/head&gt;\n&lt;body&quot;+(i?' style=&quot;'+i+'&quot;':&quot;&quot;)+&quot;&gt;\n&quot;;h.foot=&quot;\n&lt;/body&gt;\n&lt;/html&gt;&quot;}},_getContent:function(a,c){var b=this;if(!c.source_view||!a.getParam(&quot;fullpage_hide_in_source_view&quot;)){c.content=tinymce.trim(b.head)+&quot;\n&quot;+tinymce.trim(c.content)+&quot;\n&quot;+tinymce.trim(b.foot)}}});tinymce.PluginManager.add(&quot;fullpage&quot;,tinymce.plugins.FullPagePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/fullpage/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 827 2008-04-29 15:02:42Z spocke $
+ * $Id: editor_plugin_src.js 1029 2009-02-24 22:32:21Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -51,21 +51,23 @@
 			if (attr &amp;&amp; attr[1]) {
 				bdattr = attr[1].match(/\s*(\w+\s*=\s*&quot;.*?&quot;|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);
 
-				for(i = 0, len = bdattr.length; i &lt; len; i++) {
-					kv = bdattr[i].split('=');
-					k = kv[0].replace(/\s/,'');
-					v = kv[1];
+				if (bdattr) {
+					for(i = 0, len = bdattr.length; i &lt; len; i++) {
+						kv = bdattr[i].split('=');
+						k = kv[0].replace(/\s/,'');
+						v = kv[1];
 
-					if (v) {
-						v = v.replace(/^\s+/,'').replace(/\s+$/,'');
-						t = v.match(/^[&quot;'](.*)[&quot;']$/);
+						if (v) {
+							v = v.replace(/^\s+/,'').replace(/\s+$/,'');
+							t = v.match(/^[&quot;'](.*)[&quot;']$/);
 
-						if (t)
-							v = t[1];
-					} else
-						v = k;
+							if (t)
+								v = t[1];
+						} else
+							v = k;
 
-					ed.dom.setAttrib(ed.getBody(), 'style', v);
+						ed.dom.setAttrib(ed.getBody(), 'style', v);
+					}
 				}
 			}
 		},
@@ -80,6 +82,9 @@
 		_setContent : function(ed, o) {
 			var t = this, sp, ep, c = o.content, v, st = '';
 
+			if (o.source_view &amp;&amp; ed.getParam('fullpage_hide_in_source_view'))
+				return;
+
 			// Parse out head, body and footer
 			c = c.replace(/&lt;(\/?)BODY/gi, '&lt;$1body');
 			sp = c.indexOf('&lt;body');
@@ -131,7 +136,8 @@
 		_getContent : function(ed, o) {
 			var t = this;
 
-			o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot);
+			if (!o.source_view || !ed.getParam('fullpage_hide_in_source_view'))
+				o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot);
 		}
 	});
 </diff>
      <filename>lib/tiny_mce/plugins/fullpage/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/form_utils.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/fullpage.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/fullpage.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;advlink&quot; style=&quot;display: none&quot;&gt;
     &lt;form onsubmit=&quot;updateAction();return false;&quot; name=&quot;fullpage&quot; action=&quot;#&quot;&gt;
@@ -26,27 +25,27 @@
 
 					&lt;table border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;metatitle&quot;&gt;{#fullpage_dlg.meta_title}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;metatitle&quot;&gt;{#fullpage_dlg.meta_title}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;&lt;input type=&quot;text&quot; id=&quot;metatitle&quot; name=&quot;metatitle&quot; value=&quot;&quot; class=&quot;mceFocus&quot; /&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;metakeywords&quot;&gt;{#fullpage_dlg.meta_keywords}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;metakeywords&quot;&gt;{#fullpage_dlg.meta_keywords}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;&lt;textarea id=&quot;metakeywords&quot; name=&quot;metakeywords&quot; rows=&quot;4&quot;&gt;&lt;/textarea&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;metadescription&quot;&gt;{#fullpage_dlg.meta_description}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;metadescription&quot;&gt;{#fullpage_dlg.meta_description}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;&lt;textarea id=&quot;metadescription&quot; name=&quot;metadescription&quot; rows=&quot;4&quot;&gt;&lt;/textarea&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;metaauthor&quot;&gt;{#fullpage_dlg.author}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;metaauthor&quot;&gt;{#fullpage_dlg.author}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;&lt;input type=&quot;text&quot; id=&quot;metaauthor&quot; name=&quot;metaauthor&quot; value=&quot;&quot; /&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;metacopyright&quot;&gt;{#fullpage_dlg.copyright}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;metacopyright&quot;&gt;{#fullpage_dlg.copyright}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;&lt;input type=&quot;text&quot; id=&quot;metacopyright&quot; name=&quot;metacopyright&quot; value=&quot;&quot; /&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;metarobots&quot;&gt;{#fullpage_dlg.meta_robots}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;metarobots&quot;&gt;{#fullpage_dlg.meta_robots}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;
 								&lt;select id=&quot;metarobots&quot; name=&quot;metarobots&quot;&gt;
 											&lt;option value=&quot;&quot;&gt;{#not_set}&lt;/option&gt; 
@@ -73,7 +72,7 @@
 							&lt;/td&gt; 
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;doctypes&quot;&gt;{#fullpage_dlg.doctypes}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;doctypes&quot;&gt;{#fullpage_dlg.doctypes}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;
 								&lt;select id=&quot;doctypes&quot; name=&quot;doctypes&quot;&gt;
 										&lt;option value=&quot;&quot;&gt;{#not_set}&lt;/option&gt;
@@ -81,7 +80,7 @@
 							&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;langcode&quot;&gt;{#fullpage_dlg.langcode}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;langcode&quot;&gt;{#fullpage_dlg.langcode}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;&lt;input type=&quot;text&quot; id=&quot;langcode&quot; name=&quot;langcode&quot; value=&quot;&quot; /&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
@@ -95,7 +94,7 @@
 							&lt;/td&gt; 
 						&lt;/tr&gt;
 						&lt;tr&gt;
-							&lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;xml_pi&quot;&gt;{#fullpage_dlg.xml_pi}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
+							&lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;xml_pi&quot;&gt;{#fullpage_dlg.xml_pi}&lt;/label&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td&gt;&lt;input type=&quot;checkbox&quot; id=&quot;xml_pi&quot; name=&quot;xml_pi&quot; class=&quot;checkbox&quot; /&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 					&lt;/table&gt;</diff>
      <filename>lib/tiny_mce/plugins/fullpage/fullpage.htm</filename>
    </modified>
    <modified>
      <diff>@@ -143,7 +143,7 @@ function init() {
 
 		switch (eq.toLowerCase()) {
 			case &quot;content-type&quot;:
-				tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, value, 1);
+				tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, va, 1);
 
 				// Override XML encoding
 				if (tmp != &quot;&quot;)
@@ -374,7 +374,6 @@ function updateAction() {
 }
 
 function changedStyleField(field) {
-	//alert(field.id);
 }
 
 function setMeta(he, k, v) {</diff>
      <filename>lib/tiny_mce/plugins/fullpage/js/fullpage.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/fullpage/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.plugins.FullScreenPlugin',{init:function(ed,url){var t=this,s={},vp;t.editor=ed;ed.addCommand('mceFullScreen',function(){var win,de=DOM.doc.documentElement;if(ed.getParam('fullscreen_is_enabled')){if(ed.getParam('fullscreen_new_window'))closeFullscreen();else{DOM.win.setTimeout(function(){tinymce.dom.Event.remove(DOM.win,'resize',t.resizeFunc);tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format:'raw'}),{format:'raw'});tinyMCE.remove(ed);DOM.remove('mce_fullscreen_container');de.style.overflow=ed.getParam('fullscreen_html_overflow');DOM.setStyle(DOM.doc.body,'overflow',ed.getParam('fullscreen_overflow'));DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'),ed.getParam('fullscreen_scrolly'));tinyMCE.settings=tinyMCE.oldSettings;},10);}return;}if(ed.getParam('fullscreen_new_window')){win=DOM.win.open(url+&quot;/fullscreen.htm&quot;,&quot;mceFullScreenPopup&quot;,&quot;fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=&quot;+screen.availWidth+&quot;,height=&quot;+screen.availHeight);try{win.resizeTo(screen.availWidth,screen.availHeight);}catch(e){}}else{tinyMCE.oldSettings=tinyMCE.settings;s.fullscreen_overflow=DOM.getStyle(DOM.doc.body,'overflow',1)||'auto';s.fullscreen_html_overflow=DOM.getStyle(de,'overflow',1);vp=DOM.getViewPort();s.fullscreen_scrollx=vp.x;s.fullscreen_scrolly=vp.y;if(tinymce.isOpera&amp;&amp;s.fullscreen_overflow=='visible')s.fullscreen_overflow='auto';if(tinymce.isIE&amp;&amp;s.fullscreen_overflow=='scroll')s.fullscreen_overflow='auto';if(s.fullscreen_overflow=='0px')s.fullscreen_overflow='';DOM.setStyle(DOM.doc.body,'overflow','hidden');de.style.overflow='hidden';vp=DOM.getViewPort();DOM.win.scrollTo(0,0);if(tinymce.isIE)vp.h-=1;n=DOM.add(DOM.doc.body,'div',{id:'mce_fullscreen_container',style:'position:absolute;top:0;left:0;width:'+vp.w+'px;height:'+vp.h+'px;z-index:200000;'});DOM.add(n,'div',{id:'mce_fullscreen'});tinymce.each(ed.settings,function(v,n){s[n]=v;});s.id='mce_fullscreen';s.width=n.clientWidth;s.height=n.clientHeight-15;s.fullscreen_is_enabled=true;s.fullscreen_editor_id=ed.id;s.theme_advanced_resizing=false;s.save_onsavecallback=function(){ed.setContent(tinyMCE.get(s.id).getContent({format:'raw'}),{format:'raw'});ed.execCommand('mceSave');};tinymce.each(ed.getParam('fullscreen_settings'),function(v,k){s[k]=v;});if(s.theme_advanced_toolbar_location==='external')s.theme_advanced_toolbar_location='top';t.fullscreenEditor=new tinymce.Editor('mce_fullscreen',s);t.fullscreenEditor.onInit.add(function(){t.fullscreenEditor.setContent(ed.getContent());t.fullscreenEditor.focus();});t.fullscreenEditor.render();tinyMCE.add(t.fullscreenEditor);t.fullscreenElement=new tinymce.dom.Element('mce_fullscreen_container');t.fullscreenElement.update();t.resizeFunc=tinymce.dom.Event.add(DOM.win,'resize',function(){var vp=tinymce.DOM.getViewPort();t.fullscreenEditor.theme.resizeTo(vp.w,vp.h);});}});ed.addButton('fullscreen',{title:'fullscreen.desc',cmd:'mceFullScreen'});ed.onNodeChange.add(function(ed,cm){cm.setActive('fullscreen',ed.getParam('fullscreen_is_enabled'));});},getInfo:function(){return{longname:'Fullscreen',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('fullscreen',tinymce.plugins.FullScreenPlugin);})();
\ No newline at end of file
+(function(){var a=tinymce.DOM;tinymce.create(&quot;tinymce.plugins.FullScreenPlugin&quot;,{init:function(c,d){var e=this,f={},b;e.editor=c;c.addCommand(&quot;mceFullScreen&quot;,function(){var h,i=a.doc.documentElement;if(c.getParam(&quot;fullscreen_is_enabled&quot;)){if(c.getParam(&quot;fullscreen_new_window&quot;)){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,&quot;resize&quot;,e.resizeFunc);tinyMCE.get(c.getParam(&quot;fullscreen_editor_id&quot;)).setContent(c.getContent({format:&quot;raw&quot;}),{format:&quot;raw&quot;});tinyMCE.remove(c);a.remove(&quot;mce_fullscreen_container&quot;);i.style.overflow=c.getParam(&quot;fullscreen_html_overflow&quot;);a.setStyle(a.doc.body,&quot;overflow&quot;,c.getParam(&quot;fullscreen_overflow&quot;));a.win.scrollTo(c.getParam(&quot;fullscreen_scrollx&quot;),c.getParam(&quot;fullscreen_scrolly&quot;));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(c.getParam(&quot;fullscreen_new_window&quot;)){h=a.win.open(d+&quot;/fullscreen.htm&quot;,&quot;mceFullScreenPopup&quot;,&quot;fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=&quot;+screen.availWidth+&quot;,height=&quot;+screen.availHeight);try{h.resizeTo(screen.availWidth,screen.availHeight)}catch(g){}}else{tinyMCE.oldSettings=tinyMCE.settings;f.fullscreen_overflow=a.getStyle(a.doc.body,&quot;overflow&quot;,1)||&quot;auto&quot;;f.fullscreen_html_overflow=a.getStyle(i,&quot;overflow&quot;,1);b=a.getViewPort();f.fullscreen_scrollx=b.x;f.fullscreen_scrolly=b.y;if(tinymce.isOpera&amp;&amp;f.fullscreen_overflow==&quot;visible&quot;){f.fullscreen_overflow=&quot;auto&quot;}if(tinymce.isIE&amp;&amp;f.fullscreen_overflow==&quot;scroll&quot;){f.fullscreen_overflow=&quot;auto&quot;}if(tinymce.isIE&amp;&amp;(f.fullscreen_html_overflow==&quot;visible&quot;||f.fullscreen_html_overflow==&quot;scroll&quot;)){f.fullscreen_html_overflow=&quot;auto&quot;}if(f.fullscreen_overflow==&quot;0px&quot;){f.fullscreen_overflow=&quot;&quot;}a.setStyle(a.doc.body,&quot;overflow&quot;,&quot;hidden&quot;);i.style.overflow=&quot;hidden&quot;;b=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){b.h-=1}n=a.add(a.doc.body,&quot;div&quot;,{id:&quot;mce_fullscreen_container&quot;,style:&quot;position:&quot;+(tinymce.isIE6||(tinymce.isIE&amp;&amp;!a.boxModel)?&quot;absolute&quot;:&quot;fixed&quot;)+&quot;;top:0;left:0;width:&quot;+b.w+&quot;px;height:&quot;+b.h+&quot;px;z-index:200000;&quot;});a.add(n,&quot;div&quot;,{id:&quot;mce_fullscreen&quot;});tinymce.each(c.settings,function(j,k){f[k]=j});f.id=&quot;mce_fullscreen&quot;;f.width=n.clientWidth;f.height=n.clientHeight-15;f.fullscreen_is_enabled=true;f.fullscreen_editor_id=c.id;f.theme_advanced_resizing=false;f.save_onsavecallback=function(){c.setContent(tinyMCE.get(f.id).getContent({format:&quot;raw&quot;}),{format:&quot;raw&quot;});c.execCommand(&quot;mceSave&quot;)};tinymce.each(c.getParam(&quot;fullscreen_settings&quot;),function(l,j){f[j]=l});if(f.theme_advanced_toolbar_location===&quot;external&quot;){f.theme_advanced_toolbar_location=&quot;top&quot;}e.fullscreenEditor=new tinymce.Editor(&quot;mce_fullscreen&quot;,f);e.fullscreenEditor.onInit.add(function(){e.fullscreenEditor.setContent(c.getContent());e.fullscreenEditor.focus()});e.fullscreenEditor.render();tinyMCE.add(e.fullscreenEditor);e.fullscreenElement=new tinymce.dom.Element(&quot;mce_fullscreen_container&quot;);e.fullscreenElement.update();e.resizeFunc=tinymce.dom.Event.add(a.win,&quot;resize&quot;,function(){var j=tinymce.DOM.getViewPort();e.fullscreenEditor.theme.resizeTo(j.w,j.h)})}});c.addButton(&quot;fullscreen&quot;,{title:&quot;fullscreen.desc&quot;,cmd:&quot;mceFullScreen&quot;});c.onNodeChange.add(function(h,g){g.setActive(&quot;fullscreen&quot;,h.getParam(&quot;fullscreen_is_enabled&quot;))})},getInfo:function(){return{longname:&quot;Fullscreen&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;fullscreen&quot;,tinymce.plugins.FullScreenPlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/fullscreen/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 766 2008-04-03 20:37:06Z spocke $
+ * $Id: editor_plugin_src.js 923 2008-09-09 16:45:29Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -60,6 +60,10 @@
 					if (tinymce.isIE &amp;&amp; s.fullscreen_overflow == 'scroll')
 						s.fullscreen_overflow = 'auto';
 
+					// Fixes an IE bug where the scrollbars doesn't reappear
+					if (tinymce.isIE &amp;&amp; (s.fullscreen_html_overflow == 'visible' || s.fullscreen_html_overflow == 'scroll'))
+						s.fullscreen_html_overflow = 'auto'; 
+
 					if (s.fullscreen_overflow == '0px')
 						s.fullscreen_overflow = '';
 
@@ -71,7 +75,7 @@
 					if (tinymce.isIE)
 						vp.h -= 1;
 
-					n = DOM.add(DOM.doc.body, 'div', {id : 'mce_fullscreen_container', style : 'position:absolute;top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});
+					n = DOM.add(DOM.doc.body, 'div', {id : 'mce_fullscreen_container', style : 'position:' + (tinymce.isIE6 || (tinymce.isIE &amp;&amp; !DOM.boxModel) ? 'absolute' : 'fixed') + ';top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});
 					DOM.add(n, 'div', {id : 'mce_fullscreen'});
 
 					tinymce.each(ed.settings, function(v, n) {</diff>
      <filename>lib/tiny_mce/plugins/fullscreen/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -96,7 +96,6 @@
 		// Add onunload
 		tinymce.dom.Event.add(window, &quot;beforeunload&quot;, unloadHandler);
 	&lt;/script&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body style=&quot;margin:0;overflow:hidden;width:100%;height:100%&quot; scrolling=&quot;no&quot; scroll=&quot;no&quot;&gt;
 &lt;form onsubmit=&quot;doParentSubmit();&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/fullscreen/fullscreen.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.IESpell',{init:function(ed,url){var t=this,sp;if(!tinymce.isIE)return;t.editor=ed;ed.addCommand('mceIESpell',function(){try{sp=new ActiveXObject(&quot;ieSpell.ieSpellExtension&quot;);sp.CheckDocumentNode(ed.getDoc().documentElement);}catch(e){if(e.number==-2146827859){ed.windowManager.confirm(ed.getLang(&quot;iespell.download&quot;),function(s){if(s)window.open('http://www.iespell.com/download.php','ieSpellDownload','');});}else ed.windowManager.alert(&quot;Error Loading ieSpell: Exception &quot;+e.number);}});ed.addButton('iespell',{title:'iespell.iespell_desc',cmd:'mceIESpell'});},getInfo:function(){return{longname:'IESpell (IE Only)',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('iespell',tinymce.plugins.IESpell);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.IESpell&quot;,{init:function(a,b){var c=this,d;if(!tinymce.isIE){return}c.editor=a;a.addCommand(&quot;mceIESpell&quot;,function(){try{d=new ActiveXObject(&quot;ieSpell.ieSpellExtension&quot;);d.CheckDocumentNode(a.getDoc().documentElement)}catch(f){if(f.number==-2146827859){a.windowManager.confirm(a.getLang(&quot;iespell.download&quot;),function(e){if(e){window.open(&quot;http://www.iespell.com/download.php&quot;,&quot;ieSpellDownload&quot;,&quot;&quot;)}})}else{a.windowManager.alert(&quot;Error Loading ieSpell: Exception &quot;+f.number)}}});a.addButton(&quot;iespell&quot;,{title:&quot;iespell.iespell_desc&quot;,cmd:&quot;mceIESpell&quot;})},getInfo:function(){return{longname:&quot;IESpell (IE Only)&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;iespell&quot;,tinymce.plugins.IESpell)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/iespell/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/iespell/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var DOM=tinymce.DOM,Element=tinymce.dom.Element,Event=tinymce.dom.Event,each=tinymce.each,is=tinymce.is;tinymce.create('tinymce.plugins.InlinePopups',{init:function(ed,url){ed.onBeforeRenderUI.add(function(){ed.windowManager=new tinymce.InlineWindowManager(ed);DOM.loadCSS(url+'/skins/'+(ed.settings.inlinepopups_skin||'clearlooks2')+&quot;/window.css&quot;);});},getInfo:function(){return{longname:'InlinePopups',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager',{InlineWindowManager:function(ed){var t=this;t.parent(ed);t.zIndex=300000;t.count=0;},open:function(f,p){var t=this,id,opt='',ed=t.editor,dw=0,dh=0,vp,po,mdf,clf,we,w,u;f=f||{};p=p||{};if(!f.inline)return t.parent(f,p);if(!f.type)t.bookmark=ed.selection.getBookmark('simple');id=DOM.uniqueId();vp=DOM.getViewPort();f.width=parseInt(f.width||320);f.height=parseInt(f.height||240)+(tinymce.isIE?8:0);f.min_width=parseInt(f.min_width||150);f.min_height=parseInt(f.min_height||100);f.max_width=parseInt(f.max_width||2000);f.max_height=parseInt(f.max_height||2000);f.left=f.left||Math.round(Math.max(vp.x,vp.x+(vp.w/ 2.0) - (f.width /2.0)));f.top=f.top||Math.round(Math.max(vp.y,vp.y+(vp.h/ 2.0) - (f.height /2.0)));f.movable=f.resizable=true;p.mce_width=f.width;p.mce_height=f.height;p.mce_inline=true;p.mce_window_id=id;p.mce_auto_focus=f.auto_focus;t.features=f;t.params=p;t.onOpen.dispatch(t,f,p);if(f.type){opt+=' mceModal';if(f.type)opt+=' mce'+f.type.substring(0,1).toUpperCase()+f.type.substring(1);f.resizable=false;}if(f.statusbar)opt+=' mceStatusbar';if(f.resizable)opt+=' mceResizable';if(f.minimizable)opt+=' mceMinimizable';if(f.maximizable)opt+=' mceMaximizable';if(f.movable)opt+=' mceMovable';t._addAll(DOM.doc.body,['div',{id:id,'class':ed.settings.inlinepopups_skin||'clearlooks2',style:'width:100px;height:100px'},['div',{id:id+'_wrapper','class':'mceWrapper'+opt},['div',{id:id+'_top','class':'mceTop'},['div',{'class':'mceLeft'}],['div',{'class':'mceCenter'}],['div',{'class':'mceRight'}],['span',{id:id+'_title'},f.title||'']],['div',{id:id+'_middle','class':'mceMiddle'},['div',{id:id+'_left','class':'mceLeft'}],['span',{id:id+'_content'}],['div',{id:id+'_right','class':'mceRight'}]],['div',{id:id+'_bottom','class':'mceBottom'},['div',{'class':'mceLeft'}],['div',{'class':'mceCenter'}],['div',{'class':'mceRight'}],['span',{id:id+'_status'},'Content']],['a',{'class':'mceMove',tabindex:'-1',href:'javascript:;'}],['a',{'class':'mceMin',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{'class':'mceMax',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{'class':'mceMed',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{'class':'mceClose',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{id:id+'_resize_n','class':'mceResize mceResizeN',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_s','class':'mceResize mceResizeS',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_w','class':'mceResize mceResizeW',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_e','class':'mceResize mceResizeE',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_nw','class':'mceResize mceResizeNW',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_ne','class':'mceResize mceResizeNE',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_sw','class':'mceResize mceResizeSW',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_se','class':'mceResize mceResizeSE',tabindex:'-1',href:'javascript:;'}]]]);DOM.setStyles(id,{top:-10000,left:-10000});if(tinymce.isGecko)DOM.setStyle(id,'overflow','auto');if(!f.type){dw+=DOM.get(id+'_left').clientWidth;dw+=DOM.get(id+'_right').clientWidth;dh+=DOM.get(id+'_top').clientHeight;dh+=DOM.get(id+'_bottom').clientHeight;}DOM.setStyles(id,{top:f.top,left:f.left,width:f.width+dw,height:f.height+dh});u=f.url||f.file;if(u){if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&amp;')+'mce_rdomain='+tinymce.relaxedDomain;u=tinymce._addVer(u);}if(!f.type){DOM.add(id+'_content','iframe',{id:id+'_ifr',src:'javascript:&quot;&quot;',frameBorder:0,style:'border:0;width:10px;height:10px'});DOM.setStyles(id+'_ifr',{width:f.width,height:f.height});DOM.setAttrib(id+'_ifr','src',u);}else{DOM.add(id+'_wrapper','a',{id:id+'_ok','class':'mceButton mceOk',href:'javascript:;',onmousedown:'return false;'},'Ok');if(f.type=='confirm')DOM.add(id+'_wrapper','a',{'class':'mceButton mceCancel',href:'javascript:;',onmousedown:'return false;'},'Cancel');DOM.add(id+'_middle','div',{'class':'mceIcon'});DOM.setHTML(id+'_content',f.content.replace('\n','&lt;br /&gt;'));}mdf=Event.add(id,'mousedown',function(e){var n=e.target,w,vp;w=t.windows[id];t.focus(id);if(n.nodeName=='A'||n.nodeName=='a'){if(n.className=='mceMax'){w.oldPos=w.element.getXY();w.oldSize=w.element.getSize();vp=DOM.getViewPort();vp.w-=2;vp.h-=2;w.element.moveTo(vp.x,vp.y);w.element.resizeTo(vp.w,vp.h);DOM.setStyles(id+'_ifr',{width:vp.w-w.deltaWidth,height:vp.h-w.deltaHeight});DOM.addClass(id+'_wrapper','mceMaximized');}else if(n.className=='mceMed'){w.element.moveTo(w.oldPos.x,w.oldPos.y);w.element.resizeTo(w.oldSize.w,w.oldSize.h);w.iframeElement.resizeTo(w.oldSize.w-w.deltaWidth,w.oldSize.h-w.deltaHeight);DOM.removeClass(id+'_wrapper','mceMaximized');}else if(n.className=='mceMove')return t._startDrag(id,e,n.className);else if(DOM.hasClass(n,'mceResize'))return t._startDrag(id,e,n.className.substring(13));}});clf=Event.add(id,'click',function(e){var n=e.target;t.focus(id);if(n.nodeName=='A'||n.nodeName=='a'){switch(n.className){case'mceClose':t.close(null,id);return Event.cancel(e);case'mceButton mceOk':case'mceButton mceCancel':f.button_func(n.className=='mceButton mceOk');return Event.cancel(e);}}});t.windows=t.windows||{};w=t.windows[id]={id:id,mousedown_func:mdf,click_func:clf,element:new Element(id,{blocker:1,container:ed.getContainer()}),iframeElement:new Element(id+'_ifr'),features:f,deltaWidth:dw,deltaHeight:dh};w.iframeElement.on('focus',function(){t.focus(id);});if(t.count==0&amp;&amp;t.editor.getParam('dialog_type')=='modal'){DOM.add(DOM.doc.body,'div',{id:'mceModalBlocker','class':(t.editor.settings.inlinepopups_skin||'clearlooks2')+'_modalBlocker',style:{left:vp.x,top:vp.y,zIndex:t.zIndex-1}});DOM.show('mceModalBlocker');}else DOM.setStyle('mceModalBlocker','z-index',t.zIndex-1);t.focus(id);t._fixIELayout(id,1);if(DOM.get(id+'_ok'))DOM.get(id+'_ok').focus();t.count++;return w;},focus:function(id){var t=this,w=t.windows[id];w.zIndex=this.zIndex++;w.element.setStyle('zIndex',w.zIndex);w.element.update();id=id+'_wrapper';DOM.removeClass(t.lastId,'mceFocus');DOM.addClass(id,'mceFocus');t.lastId=id;},_addAll:function(te,ne){var i,n,t=this,dom=tinymce.DOM;if(is(ne,'string'))te.appendChild(dom.doc.createTextNode(ne));else if(ne.length){te=te.appendChild(dom.create(ne[0],ne[1]));for(i=2;i&lt;ne.length;i++)t._addAll(te,ne[i]);}},_startDrag:function(id,se,ac){var t=this,mu,mm,d=DOM.doc,eb,w=t.windows[id],we=w.element,sp=we.getXY(),p,sz,ph,cp,vp,sx,sy,sex,sey,dx,dy,dw,dh;cp={x:0,y:0};vp=DOM.getViewPort();vp.w-=2;vp.h-=2;sex=se.screenX;sey=se.screenY;dx=dy=dw=dh=0;mu=Event.add(d,'mouseup',function(e){Event.remove(d,'mouseup',mu);Event.remove(d,'mousemove',mm);if(eb)eb.remove();we.moveBy(dx,dy);we.resizeBy(dw,dh);sz=we.getSize();DOM.setStyles(id+'_ifr',{width:sz.w-w.deltaWidth,height:sz.h-w.deltaHeight});t._fixIELayout(id,1);return Event.cancel(e);});if(ac!='Move')startMove();function startMove(){if(eb)return;t._fixIELayout(id,0);DOM.add(d.body,'div',{id:'mceEventBlocker','class':'mceEventBlocker '+(t.editor.settings.inlinepopups_skin||'clearlooks2'),style:{left:vp.x,top:vp.y,zIndex:t.zIndex+1}});eb=new Element('mceEventBlocker');eb.update();p=we.getXY();sz=we.getSize();sx=cp.x+p.x-vp.x;sy=cp.y+p.y-vp.y;DOM.add(eb.get(),'div',{id:'mcePlaceHolder','class':'mcePlaceHolder',style:{left:sx,top:sy,width:sz.w,height:sz.h}});ph=new Element('mcePlaceHolder');};mm=Event.add(d,'mousemove',function(e){var x,y,v;startMove();x=e.screenX-sex;y=e.screenY-sey;switch(ac){case'ResizeW':dx=x;dw=0-x;break;case'ResizeE':dw=x;break;case'ResizeN':case'ResizeNW':case'ResizeNE':if(ac==&quot;ResizeNW&quot;){dx=x;dw=0-x;}else if(ac==&quot;ResizeNE&quot;)dw=x;dy=y;dh=0-y;break;case'ResizeS':case'ResizeSW':case'ResizeSE':if(ac==&quot;ResizeSW&quot;){dx=x;dw=0-x;}else if(ac==&quot;ResizeSE&quot;)dw=x;dh=y;break;case'mceMove':dx=x;dy=y;break;}if(dw&lt;(v=w.features.min_width-sz.w)){if(dx!==0)dx+=dw-v;dw=v;}if(dh&lt;(v=w.features.min_height-sz.h)){if(dy!==0)dy+=dh-v;dh=v;}dw=Math.min(dw,w.features.max_width-sz.w);dh=Math.min(dh,w.features.max_height-sz.h);dx=Math.max(dx,vp.x-(sx+vp.x));dy=Math.max(dy,vp.y-(sy+vp.y));dx=Math.min(dx,(vp.w+vp.x)-(sx+sz.w+vp.x));dy=Math.min(dy,(vp.h+vp.y)-(sy+sz.h+vp.y));if(dx+dy!==0){if(sx+dx&lt;0)dx=0;if(sy+dy&lt;0)dy=0;ph.moveTo(sx+dx,sy+dy);}if(dw+dh!==0)ph.resizeTo(sz.w+dw,sz.h+dh);return Event.cancel(e);});return Event.cancel(se);},resizeBy:function(dw,dh,id){var w=this.windows[id];if(w){w.element.resizeBy(dw,dh);w.iframeElement.resizeBy(dw,dh);}},close:function(win,id){var t=this,w,d=DOM.doc,ix=0,fw,id;id=t._findId(id||win);t.count--;if(t.count==0)DOM.remove('mceModalBlocker');if(!id&amp;&amp;win){t.parent(win);return;}if(w=t.windows[id]){t.onClose.dispatch(t);Event.remove(d,'mousedown',w.mousedownFunc);Event.remove(d,'click',w.clickFunc);Event.clear(id);Event.clear(id+'_ifr');DOM.setAttrib(id+'_ifr','src','javascript:&quot;&quot;');w.element.remove();delete t.windows[id];each(t.windows,function(w){if(w.zIndex&gt;ix){fw=w;ix=w.zIndex;}});if(fw)t.focus(fw.id);}},setTitle:function(w,ti){var e;w=this._findId(w);if(e=DOM.get(w+'_title'))e.innerHTML=DOM.encode(ti);},alert:function(txt,cb,s){var t=this,w;w=t.open({title:t,type:'alert',button_func:function(s){if(cb)cb.call(s||t,s);t.close(null,w.id);},content:DOM.encode(t.editor.getLang(txt,txt)),inline:1,width:400,height:130});},confirm:function(txt,cb,s){var t=this,w;w=t.open({title:t,type:'confirm',button_func:function(s){if(cb)cb.call(s||t,s);t.close(null,w.id);},content:DOM.encode(t.editor.getLang(txt,txt)),inline:1,width:400,height:130});},_findId:function(w){var t=this;if(typeof(w)=='string')return w;each(t.windows,function(wo){var ifr=DOM.get(wo.id+'_ifr');if(ifr&amp;&amp;w==ifr.contentWindow){w=wo.id;return false;}});return w;},_fixIELayout:function(id,s){var w,img;if(!tinymce.isIE6)return;each(['n','s','w','e','nw','ne','sw','se'],function(v){var e=DOM.get(id+'_resize_'+v);DOM.setStyles(e,{width:s?e.clientWidth:'',height:s?e.clientHeight:'',cursor:DOM.getStyle(e,'cursor',1)});DOM.setStyle(id+&quot;_bottom&quot;,'bottom','-1px');e=0;});if(w=this.windows[id]){w.element.hide();w.element.show();each(DOM.select('div,a',id),function(e,i){if(e.currentStyle.backgroundImage!='none'){img=new Image();img.src=e.currentStyle.backgroundImage.replace(/url\(\&quot;(.+)\&quot;\)/,'$1');}});DOM.get(id).style.filter='';}}});tinymce.PluginManager.add('inlinepopups',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(&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</diff>
      <filename>lib/tiny_mce/plugins/inlinepopups/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 809 2008-04-17 14:41:31Z spocke $
+ * $Id: editor_plugin_src.js 999 2009-02-10 17:42:58Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -35,6 +35,7 @@
 			t.parent(ed);
 			t.zIndex = 300000;
 			t.count = 0;
+			t.windows = {};
 		},
 
 		open : function(f, p) {
@@ -237,7 +238,6 @@
 			});
 
 			// Add window
-			t.windows = t.windows || {};
 			w = t.windows[id] = {
 				id : id,
 				mousedown_func : mdf,
@@ -254,17 +254,20 @@
 			});
 
 			// Setup blocker
-			if (t.count == 0 &amp;&amp; t.editor.getParam('dialog_type') == 'modal') {
+			if (t.count == 0 &amp;&amp; t.editor.getParam('dialog_type', 'modal') == 'modal') {
 				DOM.add(DOM.doc.body, 'div', {
 					id : 'mceModalBlocker',
 					'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker',
-					style : {left : vp.x, top : vp.y, zIndex : t.zIndex - 1}
+					style : {zIndex : t.zIndex - 1}
 				});
 
 				DOM.show('mceModalBlocker'); // Reduces flicker in IE
 			} else
 				DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1);
 
+			if (tinymce.isIE6 || /Firefox\/2\./.test(navigator.userAgent) || (tinymce.isIE &amp;&amp; !DOM.boxModel))
+				DOM.setStyles('mceModalBlocker', {position : 'absolute', left : vp.x, top : vp.y, width : vp.w - 2, height : vp.h - 2});
+
 			t.focus(id);
 			t._fixIELayout(id, 1);
 
@@ -278,16 +281,18 @@
 		},
 
 		focus : function(id) {
-			var t = this, w = t.windows[id];
-
-			w.zIndex = this.zIndex++;
-			w.element.setStyle('zIndex', w.zIndex);
-			w.element.update();
+			var t = this, w;
 
-			id = id + '_wrapper';
-			DOM.removeClass(t.lastId, 'mceFocus');
-			DOM.addClass(id, 'mceFocus');
-			t.lastId = id;
+			if (w = t.windows[id]) {
+				w.zIndex = this.zIndex++;
+				w.element.setStyle('zIndex', w.zIndex);
+				w.element.update();
+
+				id = id + '_wrapper';
+				DOM.removeClass(t.lastId, 'mceFocus');
+				DOM.addClass(id, 'mceFocus');
+				t.lastId = id;
+			}
 		},
 
 		_addAll : function(te, ne) {
@@ -349,8 +354,12 @@
 				DOM.add(d.body, 'div', {
 					id : 'mceEventBlocker',
 					'class' : 'mceEventBlocker ' + (t.editor.settings.inlinepopups_skin || 'clearlooks2'),
-					style : {left : vp.x, top : vp.y, zIndex : t.zIndex + 1}
+					style : {zIndex : t.zIndex + 1}
 				});
+
+				if (tinymce.isIE6 || (tinymce.isIE &amp;&amp; !DOM.boxModel))
+					DOM.setStyles('mceEventBlocker', {position : 'absolute', left : vp.x, top : vp.y, width : vp.w - 2, height : vp.h - 2});
+
 				eb = new Element('mceEventBlocker');
 				eb.update();
 
@@ -470,17 +479,17 @@
 
 			id = t._findId(id || win);
 
-			t.count--;
-
-			if (t.count == 0)
-				DOM.remove('mceModalBlocker');
-
 			// Probably not inline
-			if (!id &amp;&amp; win) {
+			if (!t.windows[id]) {
 				t.parent(win);
 				return;
 			}
 
+			t.count--;
+
+			if (t.count == 0)
+				DOM.remove('mceModalBlocker');
+
 			if (w = t.windows[id]) {
 				t.onClose.dispatch(t);
 				Event.remove(d, 'mousedown', w.mousedownFunc);</diff>
      <filename>lib/tiny_mce/plugins/inlinepopups/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif</filename>
    </modified>
    <modified>
      <diff>@@ -6,9 +6,9 @@
 /* General */
 .clearlooks2 {position:absolute; direction:ltr}
 .clearlooks2 .mceWrapper {position:static}
-.mceEventBlocker {position:absolute; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
-.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; filter:alpha(opacity=50)}
-.clearlooks2_modalBlocker {position:absolute; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; filter:alpha(opacity=60); display:none}
+.mceEventBlocker {position:fixed; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
+.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50)}
+.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60); display:none}
 
 /* Top */
 .clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:23px}</diff>
      <filename>lib/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/inlinepopups/template.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.InsertDateTime',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertDate',function(){var str=t._getDateTime(new Date(),ed.getParam(&quot;plugin_insertdate_dateFormat&quot;,ed.getLang('insertdatetime.date_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addCommand('mceInsertTime',function(){var str=t._getDateTime(new Date(),ed.getParam(&quot;plugin_insertdate_timeFormat&quot;,ed.getLang('insertdatetime.time_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addButton('insertdate',{title:'insertdatetime.insertdate_desc',cmd:'mceInsertDate'});ed.addButton('inserttime',{title:'insertdatetime.inserttime_desc',cmd:'mceInsertTime'});},getInfo:function(){return{longname:'Insert date/time',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_getDateTime:function(d,fmt){var ed=this.editor;function addZeros(value,len){value=&quot;&quot;+value;if(value.length&lt;len){for(var i=0;i&lt;(len-value.length);i++)value=&quot;0&quot;+value;}return value;};fmt=fmt.replace(&quot;%D&quot;,&quot;%m/%d/%y&quot;);fmt=fmt.replace(&quot;%r&quot;,&quot;%I:%M:%S %p&quot;);fmt=fmt.replace(&quot;%Y&quot;,&quot;&quot;+d.getFullYear());fmt=fmt.replace(&quot;%y&quot;,&quot;&quot;+d.getYear());fmt=fmt.replace(&quot;%m&quot;,addZeros(d.getMonth()+1,2));fmt=fmt.replace(&quot;%d&quot;,addZeros(d.getDate(),2));fmt=fmt.replace(&quot;%H&quot;,&quot;&quot;+addZeros(d.getHours(),2));fmt=fmt.replace(&quot;%M&quot;,&quot;&quot;+addZeros(d.getMinutes(),2));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;+ed.getLang(&quot;insertdatetime.months_long&quot;).split(',')[d.getMonth()]);fmt=fmt.replace(&quot;%b&quot;,&quot;&quot;+ed.getLang(&quot;insertdatetime.months_short&quot;).split(',')[d.getMonth()]);fmt=fmt.replace(&quot;%A&quot;,&quot;&quot;+ed.getLang(&quot;insertdatetime.day_long&quot;).split(',')[d.getDay()]);fmt=fmt.replace(&quot;%a&quot;,&quot;&quot;+ed.getLang(&quot;insertdatetime.day_short&quot;).split(',')[d.getDay()]);fmt=fmt.replace(&quot;%%&quot;,&quot;%&quot;);return fmt;}});tinymce.PluginManager.add('insertdatetime',tinymce.plugins.InsertDateTime);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.InsertDateTime&quot;,{init:function(a,b){var c=this;c.editor=a;a.addCommand(&quot;mceInsertDate&quot;,function(){var d=c._getDateTime(new Date(),a.getParam(&quot;plugin_insertdate_dateFormat&quot;,a.getLang(&quot;insertdatetime.date_fmt&quot;)));a.execCommand(&quot;mceInsertContent&quot;,false,d)});a.addCommand(&quot;mceInsertTime&quot;,function(){var d=c._getDateTime(new Date(),a.getParam(&quot;plugin_insertdate_timeFormat&quot;,a.getLang(&quot;insertdatetime.time_fmt&quot;)));a.execCommand(&quot;mceInsertContent&quot;,false,d)});a.addButton(&quot;insertdate&quot;,{title:&quot;insertdatetime.insertdate_desc&quot;,cmd:&quot;mceInsertDate&quot;});a.addButton(&quot;inserttime&quot;,{title:&quot;insertdatetime.inserttime_desc&quot;,cmd:&quot;mceInsertTime&quot;})},getInfo:function(){return{longname:&quot;Insert date/time&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_getDateTime:function(e,a){var c=this.editor;function b(g,d){g=&quot;&quot;+g;if(g.length&lt;d){for(var f=0;f&lt;(d-g.length);f++){g=&quot;0&quot;+g}}return g}a=a.replace(&quot;%D&quot;,&quot;%m/%d/%y&quot;);a=a.replace(&quot;%r&quot;,&quot;%I:%M:%S %p&quot;);a=a.replace(&quot;%Y&quot;,&quot;&quot;+e.getFullYear());a=a.replace(&quot;%y&quot;,&quot;&quot;+e.getYear());a=a.replace(&quot;%m&quot;,b(e.getMonth()+1,2));a=a.replace(&quot;%d&quot;,b(e.getDate(),2));a=a.replace(&quot;%H&quot;,&quot;&quot;+b(e.getHours(),2));a=a.replace(&quot;%M&quot;,&quot;&quot;+b(e.getMinutes(),2));a=a.replace(&quot;%S&quot;,&quot;&quot;+b(e.getSeconds(),2));a=a.replace(&quot;%I&quot;,&quot;&quot;+((e.getHours()+11)%12+1));a=a.replace(&quot;%p&quot;,&quot;&quot;+(e.getHours()&lt;12?&quot;AM&quot;:&quot;PM&quot;));a=a.replace(&quot;%B&quot;,&quot;&quot;+c.getLang(&quot;insertdatetime.months_long&quot;).split(&quot;,&quot;)[e.getMonth()]);a=a.replace(&quot;%b&quot;,&quot;&quot;+c.getLang(&quot;insertdatetime.months_short&quot;).split(&quot;,&quot;)[e.getMonth()]);a=a.replace(&quot;%A&quot;,&quot;&quot;+c.getLang(&quot;insertdatetime.day_long&quot;).split(&quot;,&quot;)[e.getDay()]);a=a.replace(&quot;%a&quot;,&quot;&quot;+c.getLang(&quot;insertdatetime.day_short&quot;).split(&quot;,&quot;)[e.getDay()]);a=a.replace(&quot;%%&quot;,&quot;%&quot;);return a}});tinymce.PluginManager.add(&quot;insertdatetime&quot;,tinymce.plugins.InsertDateTime)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/insertdatetime/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/insertdatetime/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.Layer',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertLayer',t._insertLayer,t);ed.addCommand('mceMoveForward',function(){t._move(1);});ed.addCommand('mceMoveBackward',function(){t._move(-1);});ed.addCommand('mceMakeAbsolute',function(){t._toggleAbsolute();});ed.addButton('moveforward',{title:'layer.forward_desc',cmd:'mceMoveForward'});ed.addButton('movebackward',{title:'layer.backward_desc',cmd:'mceMoveBackward'});ed.addButton('absolute',{title:'layer.absolute_desc',cmd:'mceMakeAbsolute'});ed.addButton('insertlayer',{title:'layer.insertlayer_desc',cmd:'mceInsertLayer'});ed.onInit.add(function(){if(tinymce.isIE)ed.getDoc().execCommand('2D-Position',false,true);});ed.onNodeChange.add(t._nodeChange,t);ed.onVisualAid.add(t._visualAid,t);},getInfo:function(){return{longname:'Layer',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var le,p;le=this._getParentLayer(n);p=ed.dom.getParent(n,'DIV,P,IMG');if(!p){cm.setDisabled('absolute',1);cm.setDisabled('moveforward',1);cm.setDisabled('movebackward',1);}else{cm.setDisabled('absolute',0);cm.setDisabled('moveforward',!le);cm.setDisabled('movebackward',!le);cm.setActive('absolute',le&amp;&amp;le.style.position.toLowerCase()==&quot;absolute&quot;);}},_visualAid:function(ed,e,s){var dom=ed.dom;tinymce.each(dom.select('div,p',e),function(e){if(/^(absolute|relative|static)$/i.test(e.style.position)){if(s)dom.addClass(e,'mceItemVisualAid');else dom.removeClass(e,'mceItemVisualAid');}});},_move:function(d){var ed=this.editor,i,z=[],le=this._getParentLayer(ed.selection.getNode()),ci=-1,fi=-1,nl;nl=[];tinymce.walk(ed.getBody(),function(n){if(n.nodeType==1&amp;&amp;/^(absolute|relative|static)$/i.test(n.style.position))nl.push(n);},'childNodes');for(i=0;i&lt;nl.length;i++){z[i]=nl[i].style.zIndex?parseInt(nl[i].style.zIndex):0;if(ci&lt;0&amp;&amp;nl[i]==le)ci=i;}if(d&lt;0){for(i=0;i&lt;z.length;i++){if(z[i]&lt;z[ci]){fi=i;break;}}if(fi&gt;-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else{if(z[ci]&gt;0)nl[ci].style.zIndex=z[ci]-1;}}else{for(i=0;i&lt;z.length;i++){if(z[i]&gt;z[ci]){fi=i;break;}}if(fi&gt;-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else nl[ci].style.zIndex=z[ci]+1;}ed.execCommand('mceRepaint');},_getParentLayer:function(n){return this.editor.dom.getParent(n,function(n){return n.nodeType==1&amp;&amp;/^(absolute|relative|static)$/i.test(n.style.position);});},_insertLayer:function(){var ed=this.editor,p=ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(),'*'));ed.dom.add(ed.getBody(),'div',{style:{position:'absolute',left:p.x,top:(p.y&gt;20?p.y:20),width:100,height:100},'class':'mceItemVisualAid'},ed.selection.getContent()||ed.getLang('layer.content'));},_toggleAbsolute:function(){var ed=this.editor,le=this._getParentLayer(ed.selection.getNode());if(!le)le=ed.dom.getParent(ed.selection.getNode(),'DIV,P,IMG');if(le){if(le.style.position.toLowerCase()==&quot;absolute&quot;){ed.dom.setStyles(le,{position:'',left:'',top:'',width:'',height:''});ed.dom.removeClass(le,'mceItemVisualAid');}else{if(le.style.left==&quot;&quot;)le.style.left=20+'px';if(le.style.top==&quot;&quot;)le.style.top=20+'px';if(le.style.width==&quot;&quot;)le.style.width=le.width?(le.width+'px'):'100px';if(le.style.height==&quot;&quot;)le.style.height=le.height?(le.height+'px'):'100px';le.style.position=&quot;absolute&quot;;ed.addVisual(ed.getBody());}ed.execCommand('mceRepaint');ed.nodeChanged();}}});tinymce.PluginManager.add('layer',tinymce.plugins.Layer);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.Layer&quot;,{init:function(a,b){var c=this;c.editor=a;a.addCommand(&quot;mceInsertLayer&quot;,c._insertLayer,c);a.addCommand(&quot;mceMoveForward&quot;,function(){c._move(1)});a.addCommand(&quot;mceMoveBackward&quot;,function(){c._move(-1)});a.addCommand(&quot;mceMakeAbsolute&quot;,function(){c._toggleAbsolute()});a.addButton(&quot;moveforward&quot;,{title:&quot;layer.forward_desc&quot;,cmd:&quot;mceMoveForward&quot;});a.addButton(&quot;movebackward&quot;,{title:&quot;layer.backward_desc&quot;,cmd:&quot;mceMoveBackward&quot;});a.addButton(&quot;absolute&quot;,{title:&quot;layer.absolute_desc&quot;,cmd:&quot;mceMakeAbsolute&quot;});a.addButton(&quot;insertlayer&quot;,{title:&quot;layer.insertlayer_desc&quot;,cmd:&quot;mceInsertLayer&quot;});a.onInit.add(function(){if(tinymce.isIE){a.getDoc().execCommand(&quot;2D-Position&quot;,false,true)}});a.onNodeChange.add(c._nodeChange,c);a.onVisualAid.add(c._visualAid,c)},getInfo:function(){return{longname:&quot;Layer&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_nodeChange:function(b,a,e){var c,d;c=this._getParentLayer(e);d=b.dom.getParent(e,&quot;DIV,P,IMG&quot;);if(!d){a.setDisabled(&quot;absolute&quot;,1);a.setDisabled(&quot;moveforward&quot;,1);a.setDisabled(&quot;movebackward&quot;,1)}else{a.setDisabled(&quot;absolute&quot;,0);a.setDisabled(&quot;moveforward&quot;,!c);a.setDisabled(&quot;movebackward&quot;,!c);a.setActive(&quot;absolute&quot;,c&amp;&amp;c.style.position.toLowerCase()==&quot;absolute&quot;)}},_visualAid:function(a,c,b){var d=a.dom;tinymce.each(d.select(&quot;div,p&quot;,c),function(f){if(/^(absolute|relative|static)$/i.test(f.style.position)){if(b){d.addClass(f,&quot;mceItemVisualAid&quot;)}else{d.removeClass(f,&quot;mceItemVisualAid&quot;)}}})},_move:function(h){var b=this.editor,f,g=[],e=this._getParentLayer(b.selection.getNode()),c=-1,j=-1,a;a=[];tinymce.walk(b.getBody(),function(d){if(d.nodeType==1&amp;&amp;/^(absolute|relative|static)$/i.test(d.style.position)){a.push(d)}},&quot;childNodes&quot;);for(f=0;f&lt;a.length;f++){g[f]=a[f].style.zIndex?parseInt(a[f].style.zIndex):0;if(c&lt;0&amp;&amp;a[f]==e){c=f}}if(h&lt;0){for(f=0;f&lt;g.length;f++){if(g[f]&lt;g[c]){j=f;break}}if(j&gt;-1){a[c].style.zIndex=g[j];a[j].style.zIndex=g[c]}else{if(g[c]&gt;0){a[c].style.zIndex=g[c]-1}}}else{for(f=0;f&lt;g.length;f++){if(g[f]&gt;g[c]){j=f;break}}if(j&gt;-1){a[c].style.zIndex=g[j];a[j].style.zIndex=g[c]}else{a[c].style.zIndex=g[c]+1}}b.execCommand(&quot;mceRepaint&quot;)},_getParentLayer:function(a){return this.editor.dom.getParent(a,function(b){return b.nodeType==1&amp;&amp;/^(absolute|relative|static)$/i.test(b.style.position)})},_insertLayer:function(){var a=this.editor,b=a.dom.getPos(a.dom.getParent(a.selection.getNode(),&quot;*&quot;));a.dom.add(a.getBody(),&quot;div&quot;,{style:{position:&quot;absolute&quot;,left:b.x,top:(b.y&gt;20?b.y:20),width:100,height:100},&quot;class&quot;:&quot;mceItemVisualAid&quot;},a.selection.getContent()||a.getLang(&quot;layer.content&quot;))},_toggleAbsolute:function(){var a=this.editor,b=this._getParentLayer(a.selection.getNode());if(!b){b=a.dom.getParent(a.selection.getNode(),&quot;DIV,P,IMG&quot;)}if(b){if(b.style.position.toLowerCase()==&quot;absolute&quot;){a.dom.setStyles(b,{position:&quot;&quot;,left:&quot;&quot;,top:&quot;&quot;,width:&quot;&quot;,height:&quot;&quot;});a.dom.removeClass(b,&quot;mceItemVisualAid&quot;)}else{if(b.style.left==&quot;&quot;){b.style.left=20+&quot;px&quot;}if(b.style.top==&quot;&quot;){b.style.top=20+&quot;px&quot;}if(b.style.width==&quot;&quot;){b.style.width=b.width?(b.width+&quot;px&quot;):&quot;100px&quot;}if(b.style.height==&quot;&quot;){b.style.height=b.height?(b.height+&quot;px&quot;):&quot;100px&quot;}b.style.position=&quot;absolute&quot;;a.addVisual(a.getBody())}a.execCommand(&quot;mceRepaint&quot;);a.nodeChanged()}}});tinymce.PluginManager.add(&quot;layer&quot;,tinymce.plugins.Layer)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/layer/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/layer/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/css/content.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/css/media.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.MediaPlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;function isMediaElm(n){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);};ed.onPreInit.add(function(){ed.serializer.addRules('param[name|value|_value]');});ed.addCommand('mceMedia',function(){ed.windowManager.open({file:url+'/media.htm',width:430+parseInt(ed.getLang('media.delta_width',0)),height:470+parseInt(ed.getLang('media.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('media',{title:'media.desc',cmd:'mceMedia'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('media',n.nodeName=='IMG'&amp;&amp;isMediaElm(n));});ed.onInit.add(function(){var lo={mceItemFlash:'flash',mceItemShockWave:'shockwave',mceItemWindowsMedia:'windowsmedia',mceItemQuickTime:'quicktime',mceItemRealMedia:'realmedia'};if(ed.settings.content_css!==false)ed.dom.loadCSS(url+&quot;/css/content.css&quot;);if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.name=='img'){each(lo,function(v,k){if(ed.dom.hasClass(o.node,k)){o.name=v;o.title=ed.dom.getAttrib(o.node,'title');return false;}});}});}if(ed&amp;&amp;ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){if(e.nodeName=='IMG'&amp;&amp;/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)){m.add({title:'media.edit',icon:'media',cmd:'mceMedia'});}});}});ed.onBeforeSetContent.add(function(ed,o){var h=o.content;h=h.replace(/&lt;script[^&gt;]*&gt;\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*&lt;\/script&gt;/gi,function(a,b,c){var o=t._parse(c);return'&lt;img class=&quot;mceItem'+b+'&quot; title=&quot;'+ed.dom.encode(c)+'&quot; src=&quot;'+url+'/img/trans.gif&quot; width=&quot;'+o.width+'&quot; height=&quot;'+o.height+'&quot; /&gt;'});h=h.replace(/&lt;object([^&gt;]*)&gt;/gi,'&lt;span class=&quot;mceItemObject&quot; $1&gt;');h=h.replace(/&lt;embed([^&gt;]*)\/&gt;/gi,'&lt;span class=&quot;mceItemEmbed&quot; $1&gt;');h=h.replace(/&lt;embed([^&gt;]*)&gt;/gi,'&lt;span class=&quot;mceItemEmbed&quot; $1&gt;');h=h.replace(/&lt;\/(object|embed)([^&gt;]*)&gt;/gi,'&lt;/span&gt;');h=h.replace(/&lt;param([^&gt;]*)&gt;/gi,function(a,b){return'&lt;span '+b.replace(/value=/gi,'_value=')+' class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;'});h=h.replace(/\/ class=\&quot;mceItemParam\&quot;&gt;&lt;\/span&gt;/gi,'class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;');o.content=h;});ed.onSetContent.add(function(){t._spansToImgs(ed.getBody());});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;if(o.set){t._spansToImgs(o.node);each(dom.select('IMG',o.node),function(n){var p;if(isMediaElm(n)){p=t._parse(n.title);dom.setAttrib(n,'width',dom.getAttrib(n,'width',p.width||100));dom.setAttrib(n,'height',dom.getAttrib(n,'height',p.height||100));}});}if(o.get){each(dom.select('IMG',o.node),function(n){var ci,cb,mt;if(ed.getParam('media_use_script')){if(isMediaElm(n))n.className=n.className.replace(/mceItem/g,'mceTemp');return;}switch(n.className){case'mceItemFlash':ci='d27cdb6e-ae6d-11cf-96b8-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='application/x-shockwave-flash';break;case'mceItemShockWave':ci='166b1bca-3f9c-11cf-8075-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';mt='application/x-director';break;case'mceItemWindowsMedia':ci=ed.getParam('media_wmp6_compatible')?'05589fa1-c356-11ce-bf01-00aa0055595a':'6bf52a52-394a-11d3-b153-00c04f79faa6';cb='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';mt='application/x-mplayer2';break;case'mceItemQuickTime':ci='02bf25d5-8c17-4b23-bc80-d3488abddc6b';cb='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';mt='video/quicktime';break;case'mceItemRealMedia':ci='cfcdaa03-8be4-11cf-b84b-0020afbbccfa';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='audio/x-pn-realaudio-plugin';break;}if(ci){dom.replace(t._buildObj({classid:ci,codebase:cb,type:mt},n),n);}});}});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/_value=/g,'value=');});if(ed.getParam('media_use_script')){function getAttr(s,n){n=new RegExp(n+'=\&quot;([^\&quot;]+)\&quot;','g').exec(s);return n?ed.dom.decode(n[1]):'';};ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/&lt;img[^&gt;]+&gt;/g,function(im){var cl=getAttr(im,'class');if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)){at=t._parse(getAttr(im,'title'));at.width=getAttr(im,'width');at.height=getAttr(im,'height');im='&lt;script type=&quot;text/javascript&quot;&gt;write'+cl.substring(7)+'({'+t._serialize(at)+'});&lt;/script&gt;';}return im;});});}},getInfo:function(){return{longname:'Media',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_buildObj:function(o,n){var ob,ed=this.editor,dom=ed.dom,p=this._parse(n.title);p.width=o.width=dom.getAttrib(n,'width')||100;p.height=o.height=dom.getAttrib(n,'height')||100;ob=dom.create('span',{mce_name:'object',classid:&quot;clsid:&quot;+o.classid,codebase:o.codebase,width:o.width,height:o.height});if(p.src)p.src=ed.convertURL(p.src,'src',n);each(p,function(v,k){if(!/^(width|height|codebase|classid)$/.test(k)){if(o.type=='application/x-mplayer2'&amp;&amp;k=='src')k='url';dom.add(ob,'span',{mce_name:'param',name:k,'_value':v});}});dom.add(ob,'span',tinymce.extend({mce_name:'embed',type:o.type},p));return ob;},_spansToImgs:function(p){var t=this,dom=t.editor.dom,im,ci;each(dom.select('span',p),function(n){if(dom.getAttrib(n,'class')=='mceItemObject'){ci=dom.getAttrib(n,&quot;classid&quot;).toLowerCase().replace(/\s+/g,'');switch(ci){case'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':dom.replace(t._createImg('mceItemFlash',n),n);break;case'clsid:166b1bca-3f9c-11cf-8075-444553540000':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':case'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':case'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}return;}if(dom.getAttrib(n,'class')=='mceItemEmbed'){switch(dom.getAttrib(n,'type')){case'application/x-shockwave-flash':dom.replace(t._createImg('mceItemFlash',n),n);break;case'application/x-director':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'application/x-mplayer2':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'video/quicktime':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'audio/x-pn-realaudio-plugin':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}}});},_createImg:function(cl,n){var im,dom=this.editor.dom,pa={},ti='';im=dom.create('img',{src:this.url+'/img/trans.gif',width:dom.getAttrib(n,'width')||100,height:dom.getAttrib(n,'height')||100,'class':cl});each(['id','name','width','height','bgcolor','align','flashvars','src','wmode'],function(na){var v=dom.getAttrib(n,na);if(v)pa[na]=v;});each(dom.select('span',n),function(n){if(dom.hasClass(n,'mceItemParam'))pa[dom.getAttrib(n,'name')]=dom.getAttrib(n,'_value');});if(pa.movie){pa.src=pa.movie;delete pa.movie;}delete pa.width;delete pa.height;im.title=this._serialize(pa);return im;},_parse:function(s){return tinymce.util.JSON.parse('{'+s+'}');},_serialize:function(o){return tinymce.util.JSON.serialize(o).replace(/[{}]/g,'');}});tinymce.PluginManager.add('media',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.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</diff>
      <filename>lib/tiny_mce/plugins/media/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 870 2008-06-13 09:25:41Z spocke $
+ * $Id: editor_plugin_src.js 1037 2009-03-02 16:41:15Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -21,7 +21,7 @@
 
 			ed.onPreInit.add(function() {
 				// Force in _value parameter this extra parameter is required for older Opera versions
-				ed.serializer.addRules('param[name|value|_value]');
+				ed.serializer.addRules('param[name|value|_mce_value]');
 			});
 
 			// Register commands
@@ -52,6 +52,12 @@
 					mceItemRealMedia : 'realmedia'
 				};
 
+				ed.selection.onSetContent.add(function() {
+					t._spansToImgs(ed.getBody());
+				});
+
+				ed.selection.onBeforeSetContent.add(t._objectsToSpans, t);
+
 				if (ed.settings.content_css !== false)
 					ed.dom.loadCSS(url + &quot;/css/content.css&quot;);
 
@@ -78,24 +84,7 @@
 				}
 			});
 
-			ed.onBeforeSetContent.add(function(ed, o) {
-				var h = o.content;
-
-				h = h.replace(/&lt;script[^&gt;]*&gt;\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*&lt;\/script&gt;/gi, function(a, b, c) {
-					var o = t._parse(c);
-
-					return '&lt;img class=&quot;mceItem' + b + '&quot; title=&quot;' + ed.dom.encode(c) + '&quot; src=&quot;' + url + '/img/trans.gif&quot; width=&quot;' + o.width + '&quot; height=&quot;' + o.height + '&quot; /&gt;'
-				});
-
-				h = h.replace(/&lt;object([^&gt;]*)&gt;/gi, '&lt;span class=&quot;mceItemObject&quot; $1&gt;');
-				h = h.replace(/&lt;embed([^&gt;]*)\/&gt;/gi, '&lt;span class=&quot;mceItemEmbed&quot; $1&gt;');
-				h = h.replace(/&lt;embed([^&gt;]*)&gt;/gi, '&lt;span class=&quot;mceItemEmbed&quot; $1&gt;');
-				h = h.replace(/&lt;\/(object|embed)([^&gt;]*)&gt;/gi, '&lt;/span&gt;');
-				h = h.replace(/&lt;param([^&gt;]*)&gt;/gi, function(a, b) {return '&lt;span ' + b.replace(/value=/gi, '_value=') + ' class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;'});
-				h = h.replace(/\/ class=\&quot;mceItemParam\&quot;&gt;&lt;\/span&gt;/gi, 'class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;');
-
-				o.content = h;
-			});
+			ed.onBeforeSetContent.add(t._objectsToSpans, t);
 
 			ed.onSetContent.add(function() {
 				t._spansToImgs(ed.getBody());
@@ -173,17 +162,17 @@
 			});
 
 			ed.onPostProcess.add(function(ed, o) {
-				o.content = o.content.replace(/_value=/g, 'value=');
+				o.content = o.content.replace(/_mce_value=/g, 'value=');
 			});
 
-			if (ed.getParam('media_use_script')) {
-				function getAttr(s, n) {
-					n = new RegExp(n + '=\&quot;([^\&quot;]+)\&quot;', 'g').exec(s);
+			function getAttr(s, n) {
+				n = new RegExp(n + '=\&quot;([^\&quot;]+)\&quot;', 'g').exec(s);
 
-					return n ? ed.dom.decode(n[1]) : '';
-				};
+				return n ? ed.dom.decode(n[1]) : '';
+			};
 
-				ed.onPostProcess.add(function(ed, o) {
+			ed.onPostProcess.add(function(ed, o) {
+				if (ed.getParam('media_use_script')) {
 					o.content = o.content.replace(/&lt;img[^&gt;]+&gt;/g, function(im) {
 						var cl = getAttr(im, 'class');
 
@@ -196,8 +185,8 @@
 
 						return im;
 					});
-				});
-			}
+				}
+			});
 		},
 
 		getInfo : function() {
@@ -211,35 +200,72 @@
 		},
 
 		// Private methods
+		_objectsToSpans : function(ed, o) {
+			var t = this, h = o.content;
+
+			h = h.replace(/&lt;script[^&gt;]*&gt;\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*&lt;\/script&gt;/gi, function(a, b, c) {
+				var o = t._parse(c);
+
+				return '&lt;img class=&quot;mceItem' + b + '&quot; title=&quot;' + ed.dom.encode(c) + '&quot; src=&quot;' + t.url + '/img/trans.gif&quot; width=&quot;' + o.width + '&quot; height=&quot;' + o.height + '&quot; /&gt;'
+			});
+
+			h = h.replace(/&lt;object([^&gt;]*)&gt;/gi, '&lt;span class=&quot;mceItemObject&quot; $1&gt;');
+			h = h.replace(/&lt;embed([^&gt;]*)\/?&gt;/gi, '&lt;span class=&quot;mceItemEmbed&quot; $1&gt;&lt;/span&gt;');
+			h = h.replace(/&lt;embed([^&gt;]*)&gt;/gi, '&lt;span class=&quot;mceItemEmbed&quot; $1&gt;');
+			h = h.replace(/&lt;\/(object)([^&gt;]*)&gt;/gi, '&lt;/span&gt;');
+			h = h.replace(/&lt;\/embed&gt;/gi, '');
+			h = h.replace(/&lt;param([^&gt;]*)&gt;/gi, function(a, b) {return '&lt;span ' + b.replace(/value=/gi, '_mce_value=') + ' class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;'});
+			h = h.replace(/\/ class=\&quot;mceItemParam\&quot;&gt;&lt;\/span&gt;/gi, 'class=&quot;mceItemParam&quot;&gt;&lt;/span&gt;');
+
+			o.content = h;
+		},
 
 		_buildObj : function(o, n) {
-			var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title);
+			var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title), stc;
+			
+			stc = ed.getParam('media_strict', true) &amp;&amp; o.type == 'application/x-shockwave-flash';
 
 			p.width = o.width = dom.getAttrib(n, 'width') || 100;
 			p.height = o.height = dom.getAttrib(n, 'height') || 100;
 
-			ob = dom.create('span', {
-				mce_name : 'object',
-				classid : &quot;clsid:&quot; + o.classid,
-				codebase : o.codebase,
-				width : o.width,
-				height : o.height
-			});
-
 			if (p.src)
 				p.src = ed.convertURL(p.src, 'src', n);
 
+			if (stc) {
+				ob = dom.create('span', {
+					id : p.id,
+					mce_name : 'object',
+					type : 'application/x-shockwave-flash',
+					data : p.src,
+					style : dom.getAttrib(n, 'style'),
+					width : o.width,
+					height : o.height
+				});
+			} else {
+				ob = dom.create('span', {
+					id : p.id,
+					mce_name : 'object',
+					classid : &quot;clsid:&quot; + o.classid,
+					style : dom.getAttrib(n, 'style'),
+					codebase : o.codebase,
+					width : o.width,
+					height : o.height
+				});
+			}
+
 			each (p, function(v, k) {
-				if (!/^(width|height|codebase|classid)$/.test(k)) {
+				if (!/^(width|height|codebase|classid|id|_cx|_cy)$/.test(k)) {
 					// Use url instead of src in IE for Windows media
-					if (o.type == 'application/x-mplayer2' &amp;&amp; k == 'src')
+					if (o.type == 'application/x-mplayer2' &amp;&amp; k == 'src' &amp;&amp; !p.url)
 						k = 'url';
 
-					dom.add(ob, 'span', {mce_name : 'param', name : k, '_value' : v});
+					if (v)
+						dom.add(ob, 'span', {mce_name : 'param', name : k, '_mce_value' : v});
 				}
 			});
 
-			dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type}, p));
+			if (!stc)
+				dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type, style : dom.getAttrib(n, 'style')}, p));
 
 			return ob;
 		},
@@ -313,18 +339,21 @@
 		},
 
 		_createImg : function(cl, n) {
-			var im, dom = this.editor.dom, pa = {}, ti = '';
+			var im, dom = this.editor.dom, pa = {}, ti = '', args;
+
+			args = ['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode', 'allowfullscreen', 'quality'];	
 
 			// Create image
 			im = dom.create('img', {
 				src : this.url + '/img/trans.gif',
 				width : dom.getAttrib(n, 'width') || 100,
 				height : dom.getAttrib(n, 'height') || 100,
+				style : dom.getAttrib(n, 'style'),
 				'class' : cl
 			});
 
 			// Setup base parameters
-			each(['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode'], function(na) {
+			each(args, function(na) {
 				var v = dom.getAttrib(n, na);
 
 				if (v)
@@ -334,7 +363,7 @@
 			// Add optional parameters
 			each(dom.select('span', n), function(n) {
 				if (dom.hasClass(n, 'mceItemParam'))
-					pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_value');
+					pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_mce_value');
 			});
 
 			// Use src not movie
@@ -343,6 +372,17 @@
 				delete pa.movie;
 			}
 
+			// Merge with embed args
+			n = dom.select('.mceItemEmbed', n)[0];
+			if (n) {
+				each(args, function(na) {
+					var v = dom.getAttrib(n, na);
+
+					if (v &amp;&amp; !pa[na])
+						pa[na] = v;
+				});
+			}
+
 			delete pa.width;
 			delete pa.height;
 </diff>
      <filename>lib/tiny_mce/plugins/media/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/img/flash.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/img/flv_player.swf</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/img/quicktime.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/img/realmedia.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/img/shockwave.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/img/trans.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/img/windowsmedia.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/js/embed.js</filename>
    </modified>
    <modified>
      <diff>@@ -183,7 +183,7 @@ function insertMedia() {
 	tinyMCEPopup.restoreSelection();
 
 	if (!AutoValidator.validate(f)) {
-		alert(ed.getLang('invalid_data'));
+		tinyMCEPopup.alert(ed.getLang('invalid_data'));
 		return false;
 	}
 
@@ -218,7 +218,7 @@ function insertMedia() {
 				break;
 		}
 
-		if (fe.width != f.width.value || fe.height != f.height.height)
+		if (fe.width != f.width.value || fe.height != f.height.value)
 			ed.execCommand('mceRepaint');
 
 		fe.title = serializeParameters();
@@ -359,7 +359,9 @@ function changedType(t) {
 	d.getElementById('shockwave_options').style.display = 'none';
 	d.getElementById('wmp_options').style.display = 'none';
 	d.getElementById('rmp_options').style.display = 'none';
-	d.getElementById(t + '_options').style.display = 'block';
+
+	if (t)
+		d.getElementById(t + '_options').style.display = 'block';
 }
 
 function serializeParameters() {
@@ -467,7 +469,7 @@ function setBool(pl, p, n) {
 	if (typeof(pl[n]) == &quot;undefined&quot;)
 		return;
 
-	document.forms[0].elements[p + &quot;_&quot; + n].checked = pl[n];
+	document.forms[0].elements[p + &quot;_&quot; + n].checked = pl[n] != 'false';
 }
 
 function setStr(pl, p, n) {
@@ -488,7 +490,7 @@ function getBool(p, n, d, tv, fv) {
 	tv = typeof(tv) == 'undefined' ? 'true' : &quot;'&quot; + jsEncode(tv) + &quot;'&quot;;
 	fv = typeof(fv) == 'undefined' ? 'false' : &quot;'&quot; + jsEncode(fv) + &quot;'&quot;;
 
-	return (v == d) ? '' : n + (v ? ':' + tv + ',' : ':' + fv + ',');
+	return (v == d) ? '' : n + (v ? ':' + tv + ',' : &quot;:\'&quot; + fv + &quot;\',&quot;);
 }
 
 function getStr(p, n, d) {
@@ -600,7 +602,7 @@ function generatePreview(c) {
 
 	// Avoid annoying warning about insecure items
 	if (!tinymce.isIE || document.location.protocol != 'https:') {
-		h += '&lt;object classid=&quot;clsid:' + cls + '&quot; codebase=&quot;' + codebase + '&quot; width=&quot;' + pl.width + '&quot; height=&quot;' + pl.height + '&quot; id=&quot;' + pl.id + '&quot; name=&quot;' + pl.name + '&quot; align=&quot;' + pl.align + '&quot;&gt;';
+		h += '&lt;object classid=&quot;' + cls + '&quot; codebase=&quot;' + codebase + '&quot; width=&quot;' + pl.width + '&quot; height=&quot;' + pl.height + '&quot; id=&quot;' + pl.id + '&quot; name=&quot;' + pl.name + '&quot; align=&quot;' + pl.align + '&quot;&gt;';
 
 		for (n in pl) {
 			h += '&lt;param name=&quot;' + n + '&quot; value=&quot;' + pl[n] + '&quot;&gt;';</diff>
      <filename>lib/tiny_mce/plugins/media/js/media.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/media/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/form_utils.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/editable_selects.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/media.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body style=&quot;display: none&quot;&gt;
     &lt;form onsubmit=&quot;insertMedia();return false;&quot; action=&quot;#&quot;&gt;
@@ -52,7 +51,7 @@
 							&lt;/tr&gt;
 							&lt;tr id=&quot;linklistrow&quot;&gt;
 								&lt;td&gt;&lt;label for=&quot;linklist&quot;&gt;{#media_dlg.list}&lt;/label&gt;&lt;/td&gt;
-								&lt;td id=&quot;linklistcontainer&quot;&gt;&amp;nbsp;&lt;/td&gt;
+								&lt;td id=&quot;linklistcontainer&quot;&gt;&lt;select id=&quot;linklist&quot;&gt;&lt;option value=&quot;&quot;&gt;&lt;/option&gt;&lt;/select&gt;&lt;/td&gt;
 							&lt;/tr&gt;
 							&lt;tr&gt;
 								&lt;td&gt;&lt;label for=&quot;width&quot;&gt;{#media_dlg.size}&lt;/label&gt;&lt;/td&gt;
@@ -260,8 +259,7 @@
 							&lt;td&gt;&lt;label for=&quot;flv_defaultvolume&quot;&gt;{#media_dlg.flv_defaultvolume}&lt;/label&gt;&lt;/td&gt;
 							&lt;td&gt;&lt;input type=&quot;text&quot; id=&quot;flv_defaultvolume&quot; name=&quot;flv_defaultvolume&quot; onchange=&quot;generatePreview();&quot; /&gt;&lt;/td&gt;
 
-							&lt;td&gt;&lt;label for=&quot;flv_starttime&quot;&gt;{#media_dlg.flv_starttime}&lt;/label&gt;&lt;/td&gt;
-							&lt;td&gt;&lt;input type=&quot;text&quot; id=&quot;flv_starttime&quot; name=&quot;flv_starttime&quot; onchange=&quot;generatePreview();&quot; /&gt;&lt;/td&gt;
+
 						&lt;/tr&gt;
 
 						&lt;tr&gt;</diff>
      <filename>lib/tiny_mce/plugins/media/media.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.Nonbreaking',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceNonBreaking',function(){ed.execCommand('mceInsertContent',false,(ed.plugins.visualchars&amp;&amp;ed.plugins.visualchars.state)?'&lt;span class=&quot;mceItemHidden mceVisualNbsp&quot;&gt;&amp;middot;&lt;/span&gt;':'&amp;nbsp;');});ed.addButton('nonbreaking',{title:'nonbreaking.nonbreaking_desc',cmd:'mceNonBreaking'});if(ed.getParam('nonbreaking_force_tab')){ed.onKeyDown.add(function(ed,e){if(tinymce.isIE&amp;&amp;e.keyCode==9){ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');tinymce.dom.Event.cancel(e);}});}},getInfo:function(){return{longname:'Nonbreaking space',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('nonbreaking',tinymce.plugins.Nonbreaking);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.Nonbreaking&quot;,{init:function(a,b){var c=this;c.editor=a;a.addCommand(&quot;mceNonBreaking&quot;,function(){a.execCommand(&quot;mceInsertContent&quot;,false,(a.plugins.visualchars&amp;&amp;a.plugins.visualchars.state)?'&lt;span class=&quot;mceItemHidden mceVisualNbsp&quot;&gt;&amp;middot;&lt;/span&gt;':&quot;&amp;nbsp;&quot;)});a.addButton(&quot;nonbreaking&quot;,{title:&quot;nonbreaking.nonbreaking_desc&quot;,cmd:&quot;mceNonBreaking&quot;});if(a.getParam(&quot;nonbreaking_force_tab&quot;)){a.onKeyDown.add(function(d,f){if(tinymce.isIE&amp;&amp;f.keyCode==9){d.execCommand(&quot;mceNonBreaking&quot;);d.execCommand(&quot;mceNonBreaking&quot;);d.execCommand(&quot;mceNonBreaking&quot;);tinymce.dom.Event.cancel(f)}})}},getInfo:function(){return{longname:&quot;Nonbreaking space&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;nonbreaking&quot;,tinymce.plugins.Nonbreaking)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/nonbreaking/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/nonbreaking/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.NonEditablePlugin',{init:function(ed,url){var t=this,editClass,nonEditClass;t.editor=ed;editClass=ed.getParam(&quot;noneditable_editable_class&quot;,&quot;mceEditable&quot;);nonEditClass=ed.getParam(&quot;noneditable_noneditable_class&quot;,&quot;mceNonEditable&quot;);ed.onNodeChange.addToTop(function(ed,cm,n){var sc,ec;sc=ed.dom.getParent(ed.selection.getStart(),function(n){return ed.dom.hasClass(n,nonEditClass);});ec=ed.dom.getParent(ed.selection.getEnd(),function(n){return ed.dom.hasClass(n,nonEditClass);});if(sc||ec){t._setDisabled(1);return false;}else t._setDisabled(0);});},getInfo:function(){return{longname:'Non editable elements',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_block:function(ed,e){var k=e.keyCode;if((k&gt;32&amp;&amp;k&lt;41)||(k&gt;111&amp;&amp;k&lt;124))return;return Event.cancel(e);},_setDisabled:function(s){var t=this,ed=t.editor;tinymce.each(ed.controlManager.controls,function(c){c.setDisabled(s);});if(s!==t.disabled){if(s){ed.onKeyDown.addToTop(t._block);ed.onKeyPress.addToTop(t._block);ed.onKeyUp.addToTop(t._block);ed.onPaste.addToTop(t._block);}else{ed.onKeyDown.remove(t._block);ed.onKeyPress.remove(t._block);ed.onKeyUp.remove(t._block);ed.onPaste.remove(t._block);}t.disabled=s;}}});tinymce.PluginManager.add('noneditable',tinymce.plugins.NonEditablePlugin);})();
\ No newline at end of file
+(function(){var a=tinymce.dom.Event;tinymce.create(&quot;tinymce.plugins.NonEditablePlugin&quot;,{init:function(d,e){var f=this,c,b;f.editor=d;c=d.getParam(&quot;noneditable_editable_class&quot;,&quot;mceEditable&quot;);b=d.getParam(&quot;noneditable_noneditable_class&quot;,&quot;mceNonEditable&quot;);d.onNodeChange.addToTop(function(h,g,k){var j,i;j=h.dom.getParent(h.selection.getStart(),function(l){return h.dom.hasClass(l,b)});i=h.dom.getParent(h.selection.getEnd(),function(l){return h.dom.hasClass(l,b)});if(j||i){f._setDisabled(1);return false}else{f._setDisabled(0)}})},getInfo:function(){return{longname:&quot;Non editable elements&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_block:function(c,d){var b=d.keyCode;if((b&gt;32&amp;&amp;b&lt;41)||(b&gt;111&amp;&amp;b&lt;124)){return}return a.cancel(d)},_setDisabled:function(d){var c=this,b=c.editor;tinymce.each(b.controlManager.controls,function(e){e.setDisabled(d)});if(d!==c.disabled){if(d){b.onKeyDown.addToTop(c._block);b.onKeyPress.addToTop(c._block);b.onKeyUp.addToTop(c._block);b.onPaste.addToTop(c._block)}else{b.onKeyDown.remove(c._block);b.onKeyPress.remove(c._block);b.onKeyUp.remove(c._block);b.onPaste.remove(c._block)}c.disabled=d}}});tinymce.PluginManager.add(&quot;noneditable&quot;,tinymce.plugins.NonEditablePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/noneditable/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/noneditable/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/pagebreak/css/content.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.PageBreakPlugin',{init:function(ed,url){var pb='&lt;img src=&quot;'+url+'/img/trans.gif&quot; class=&quot;mcePageBreak mceItemNoResize&quot; /&gt;',cls='mcePageBreak',sep=ed.getParam('pagebreak_separator','&lt;!-- pagebreak --&gt;'),pbRE;pbRE=new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(a){return'\\'+a;}),'g');ed.addCommand('mcePageBreak',function(){ed.execCommand('mceInsertContent',0,pb);});ed.addButton('pagebreak',{title:'pagebreak.desc',cmd:cls});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+&quot;/css/content.css&quot;);if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.node.nodeName=='IMG'&amp;&amp;ed.dom.hasClass(o.node,cls))o.name='pagebreak';});}});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='IMG'&amp;&amp;ed.dom.hasClass(e,cls))ed.selection.select(e);});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('pagebreak',n.nodeName==='IMG'&amp;&amp;ed.dom.hasClass(n,cls));});ed.onBeforeSetContent.add(function(ed,o){o.content=o.content.replace(pbRE,pb);});ed.onPostProcess.add(function(ed,o){if(o.get)o.content=o.content.replace(/&lt;img[^&gt;]+&gt;/g,function(im){if(im.indexOf('class=&quot;mcePageBreak')!==-1)im=sep;return im;});});},getInfo:function(){return{longname:'PageBreak',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('pagebreak',tinymce.plugins.PageBreakPlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.PageBreakPlugin&quot;,{init:function(b,d){var f='&lt;img src=&quot;'+d+'/img/trans.gif&quot; class=&quot;mcePageBreak mceItemNoResize&quot; /&gt;',a=&quot;mcePageBreak&quot;,c=b.getParam(&quot;pagebreak_separator&quot;,&quot;&lt;!-- pagebreak --&gt;&quot;),e;e=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(g){return&quot;\\&quot;+g}),&quot;g&quot;);b.addCommand(&quot;mcePageBreak&quot;,function(){b.execCommand(&quot;mceInsertContent&quot;,0,f)});b.addButton(&quot;pagebreak&quot;,{title:&quot;pagebreak.desc&quot;,cmd:a});b.onInit.add(function(){if(b.settings.content_css!==false){b.dom.loadCSS(d+&quot;/css/content.css&quot;)}if(b.theme.onResolveName){b.theme.onResolveName.add(function(g,h){if(h.node.nodeName==&quot;IMG&quot;&amp;&amp;b.dom.hasClass(h.node,a)){h.name=&quot;pagebreak&quot;}})}});b.onClick.add(function(g,h){h=h.target;if(h.nodeName===&quot;IMG&quot;&amp;&amp;g.dom.hasClass(h,a)){g.selection.select(h)}});b.onNodeChange.add(function(h,g,i){g.setActive(&quot;pagebreak&quot;,i.nodeName===&quot;IMG&quot;&amp;&amp;h.dom.hasClass(i,a))});b.onBeforeSetContent.add(function(g,h){h.content=h.content.replace(e,f)});b.onPostProcess.add(function(g,h){if(h.get){h.content=h.content.replace(/&lt;img[^&gt;]+&gt;/g,function(i){if(i.indexOf('class=&quot;mcePageBreak')!==-1){i=c}return i})}})},getInfo:function(){return{longname:&quot;PageBreak&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;pagebreak&quot;,tinymce.plugins.PageBreakPlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/pagebreak/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/pagebreak/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/pagebreak/img/pagebreak.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/pagebreak/img/trans.gif</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,6 @@
 &lt;title&gt;blank_page&lt;/title&gt;
 &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
 &lt;link href=&quot;css/blank.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-&lt;base target=&quot;_self&quot; /&gt;
 &lt;script type=&quot;text/javascript&quot;&gt;
 function init() {
 	if (parent.tinymce.isIE)</diff>
      <filename>lib/tiny_mce/plugins/paste/blank.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/paste/css/blank.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/paste/css/pasteword.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.PastePlugin',{init:function(ed,url){var t=this;t.editor=ed;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);});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);});ed.addCommand('mceSelectAll',function(){ed.execCommand('selectall');});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'});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:'Paste text/word',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',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('delete');if(html&amp;&amp;html.length&gt;0)ed.execCommand('mcePasteWord',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(bLinebreaks){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;');if((pos=content.indexOf('&lt;/p&gt;&lt;p&gt;'))!=-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,'&lt;br /&gt;');content=content.replace(/\r/g,'&lt;br /&gt;');content=content.replace(/\n/g,'&lt;br /&gt;');}}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('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','before',content);var rl=ed.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]);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;');}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);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 --');content=content.replace(new RegExp('&lt;(!--)([^&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;]*)','gi'),&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;]*)','gi'),&quot;&lt;$1$3&quot;);break;}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;);content=content.replace(/-- page break --/gi,&quot;&quot;);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(!tinymce.isIE&amp;&amp;!this.editor.getParam('force_p_newlines')){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,'&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,'');}content=content.replace(/--list--/gi,&quot;&quot;);if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','after',content);this.editor.execCommand(&quot;mceInsertContent&quot;,false,content);if(this.editor.getParam('paste_force_cleanup_wordpaste',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+='\\'+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(''+mdot+'|'+bull+'|--list--|&amp;nbsp;',&quot;gi&quot;),'');ul.appendChild(li);np=p.nextSibling;while(np){if(np.nodeType==3&amp;&amp;new RegExp('^\\s$','m').test(np.nodeValue)){np=np.nextSibling;continue;}if(search==mdot){if(np.nodeType==1&amp;&amp;new RegExp('^o(\\s+|&amp;nbsp;)').test(np.innerHTML)){if(!prevul){prevul=ul;ul=ed.dom.create(&quot;ul&quot;);prevul.appendChild(ul);}np.innerHTML=np.innerHTML.replace(/^o/,'');}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(''+mdot+'|'+bull+'|--list--|&amp;nbsp;',&quot;gi&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('_TinyMCE_clipboardHTML');if(!div){var div=document.createElement('DIV');div.id='_TinyMCE_clipboardHTML';with(div.style){visibility='hidden';overflow='hidden';position='absolute';width=1;height=1;}document.body.appendChild(div);}div.innerHTML='';var rng=document.body.createTextRange();rng.moveToElementText(div);rng.execCommand('Paste');var html=div.innerHTML;div.innerHTML='';return html;}});tinymce.PluginManager.add('paste',tinymce.plugins.PastePlugin);})();
\ No newline at end of file
+(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</diff>
      <filename>lib/tiny_mce/plugins/paste/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 862 2008-06-02 20:09:06Z spocke $
+ * $Id: editor_plugin_src.js 919 2008-09-08 20:31:23Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -107,6 +107,10 @@
 			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)) {
@@ -172,7 +176,7 @@
 				if (ed.getParam('paste_insert_word_content_callback'))
 					content = ed.execCallback('paste_insert_word_content_callback', 'before', content);
 
-				var rl = ed.getParam(&quot;paste_replace_list&quot;, '\u2122,&lt;sup&gt;TM&lt;/sup&gt;,\u2026,...,\u201c|\u201d,&quot;,\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
+				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]);
 
@@ -185,7 +189,8 @@
 				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(new RegExp('&lt;(!--)([^&gt;]*)(--)&gt;', 'g'), &quot;&quot;);  // Word comments
+				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
 
 				if (this.editor.getParam(&quot;paste_remove_spans&quot;, true))
 					content = content.replace(/&lt;\/?span[^&gt;]*&gt;/gi, &quot;&quot;);</diff>
      <filename>lib/tiny_mce/plugins/paste/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/paste/js/pastetext.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/paste/js/pasteword.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/paste/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,6 @@
 	&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot; /&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/pastetext.js&quot;&gt;&lt;/script&gt;
-	&lt;base target=&quot;_self&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();return false;&quot; action=&quot;#&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/paste/pastetext.htm</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,6 @@
 	&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;base target=&quot;_self&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;</diff>
      <filename>lib/tiny_mce/plugins/paste/pasteword.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.Preview',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mcePreview',t._preview,t);ed.addButton('preview',{title:'preview.preview_desc',cmd:'mcePreview'});},getInfo:function(){return{longname:'Preview',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_preview:function(){var ed=this.editor,win,html,c,pos,pos2,css,i,page=ed.getParam(&quot;plugin_preview_pageurl&quot;,null),w=ed.getParam(&quot;plugin_preview_width&quot;,&quot;550&quot;),h=ed.getParam(&quot;plugin_preview_height&quot;,&quot;600&quot;);if(page){ed.windowManager.open({file:ed.getParam(&quot;plugin_preview_pageurl&quot;,null),width:w,height:h},{resizable:&quot;yes&quot;,scrollbars:&quot;yes&quot;,inline:1});}else{win=window.open(&quot;&quot;,&quot;mcePreview&quot;,&quot;menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width=&quot;+w+&quot;,height=&quot;+h);html=&quot;&quot;;c=ed.getContent();pos=c.indexOf('&lt;body');css=ed.getParam(&quot;content_css&quot;,'').split(',');tinymce.map(css,function(u){return ed.documentBaseURI.toAbsolute(u);});if(pos!=-1){pos=c.indexOf('&gt;',pos);pos2=c.lastIndexOf('&lt;/body&gt;');c=c.substring(pos+1,pos2);}html+=ed.getParam('doctype');html+='&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;';html+='&lt;head&gt;';html+='&lt;title&gt;'+ed.getLang('preview.preview_desc')+'&lt;/title&gt;';html+='&lt;base href=&quot;'+ed.documentBaseURI.getURI()+'&quot; /&gt;';html+='&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;';for(i=0;i&lt;css.length;i++)html+='&lt;link href=&quot;'+css[i]+'&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;';html+='&lt;/head&gt;';html+='&lt;body dir=&quot;'+ed.getParam(&quot;directionality&quot;)+'&quot; onload=&quot;window.opener.tinymce.EditorManager.get(\''+ed.id+'\').plugins[\'preview\']._onLoad(window,document);&quot;&gt;';html+=c;html+='&lt;/body&gt;';html+='&lt;/html&gt;';win.document.write(html);win.document.close();}},_onLoad:function(w,d){var t=this,nl,i,el=[],sv,ne;t._doc=d;w.writeFlash=t._writeFlash;w.writeShockWave=t._writeShockWave;w.writeQuickTime=t._writeQuickTime;w.writeRealMedia=t._writeRealMedia;w.writeWindowsMedia=t._writeWindowsMedia;w.writeEmbed=t._writeEmbed;nl=d.getElementsByTagName(&quot;script&quot;);for(i=0;i&lt;nl.length;i++){sv=tinymce.isIE?nl[i].innerHTML:nl[i].firstChild.nodeValue;if(new RegExp('write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\\(.*','g').test(sv))el[el.length]=nl[i];}for(i=0;i&lt;el.length;i++){ne=d.createElement(&quot;div&quot;);ne.innerHTML=d._embeds[i];el[i].parentNode.insertBefore(ne.firstChild,el[i]);}},_writeFlash:function(p){p.src=this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('D27CDB6E-AE6D-11cf-96B8-444553540000','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0','application/x-shockwave-flash',p);},_writeShockWave:function(p){this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('166B1BCA-3F9C-11CF-8075-444553540000','http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0','application/x-director',p);},_writeQuickTime:function(p){this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('02BF25D5-8C17-4B23-BC80-D3488ABDDC6B','http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0','video/quicktime',p);},_writeRealMedia:function(p){this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0','audio/x-pn-realaudio-plugin',p);},_writeWindowsMedia:function(p){this.editor.documentBaseURI.toAbsolute(p.src);p.url=p.src;TinyMCE_PreviewPlugin._writeEmbed('6BF52A52-394A-11D3-B153-00C04F79FAA6','http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701','application/x-mplayer2',p);},_writeEmbed:function(cls,cb,mt,p){var h='',n,d=t._doc,ne,c;h+='&lt;object classid=&quot;clsid:'+cls+'&quot; codebase=&quot;'+cb+'&quot;';h+=typeof(p.id)!=&quot;undefined&quot;?'id=&quot;'+p.id+'&quot;':'';h+=typeof(p.name)!=&quot;undefined&quot;?'name=&quot;'+p.name+'&quot;':'';h+=typeof(p.width)!=&quot;undefined&quot;?'width=&quot;'+p.width+'&quot;':'';h+=typeof(p.height)!=&quot;undefined&quot;?'height=&quot;'+p.height+'&quot;':'';h+=typeof(p.align)!=&quot;undefined&quot;?'align=&quot;'+p.align+'&quot;':'';h+='&gt;';for(n in p)h+='&lt;param name=&quot;'+n+'&quot; value=&quot;'+p[n]+'&quot;&gt;';h+='&lt;embed type=&quot;'+mt+'&quot;';for(n in p)h+=n+'=&quot;'+p[n]+'&quot; ';h+='&gt;&lt;/embed&gt;&lt;/object&gt;';d._embeds[d._embeds.length]=h;}});tinymce.PluginManager.add('preview',tinymce.plugins.Preview);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.Preview&quot;,{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand(&quot;mcePreview&quot;,function(){a.windowManager.open({file:a.getParam(&quot;plugin_preview_pageurl&quot;,b+&quot;/preview.html&quot;),width:parseInt(a.getParam(&quot;plugin_preview_width&quot;,&quot;550&quot;)),height:parseInt(a.getParam(&quot;plugin_preview_height&quot;,&quot;600&quot;)),resizable:&quot;yes&quot;,scrollbars:&quot;yes&quot;,popup_css:c?c.join(&quot;,&quot;):a.baseURI.toAbsolute(&quot;themes/&quot;+a.settings.theme+&quot;/skins/&quot;+a.settings.skin+&quot;/content.css&quot;),inline:a.getParam(&quot;plugin_preview_inline&quot;,1)},{base:a.documentBaseURI.getURI()})});a.addButton(&quot;preview&quot;,{title:&quot;preview.preview_desc&quot;,cmd:&quot;mcePreview&quot;})},getInfo:function(){return{longname:&quot;Preview&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;preview&quot;,tinymce.plugins.Preview)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/preview/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 537 2008-01-14 16:38:33Z spocke $
+ * $Id: editor_plugin_src.js 1056 2009-03-13 12:47:03Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -8,11 +8,29 @@
 (function() {
 	tinymce.create('tinymce.plugins.Preview', {
 		init : function(ed, url) {
-			var t = this;
+			var t = this, css = tinymce.explode(ed.settings.content_css);
 
 			t.editor = ed;
 
-			ed.addCommand('mcePreview', t._preview, t);
+			// Force absolute CSS urls	
+			tinymce.each(css, function(u, k) {
+				css[k] = ed.documentBaseURI.toAbsolute(u);
+			});
+
+			ed.addCommand('mcePreview', function() {
+				ed.windowManager.open({
+					file : ed.getParam(&quot;plugin_preview_pageurl&quot;, url + &quot;/preview.html&quot;),
+					width : parseInt(ed.getParam(&quot;plugin_preview_width&quot;, &quot;550&quot;)),
+					height : parseInt(ed.getParam(&quot;plugin_preview_height&quot;, &quot;600&quot;)),
+					resizable : &quot;yes&quot;,
+					scrollbars : &quot;yes&quot;,
+					popup_css : css ? css.join(',') : ed.baseURI.toAbsolute(&quot;themes/&quot; + ed.settings.theme + &quot;/skins/&quot; + ed.settings.skin + &quot;/content.css&quot;),
+					inline : ed.getParam(&quot;plugin_preview_inline&quot;, 1)
+				}, {
+					base : ed.documentBaseURI.getURI()
+				});
+			});
+
 			ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'});
 		},
 
@@ -24,161 +42,6 @@
 				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
 				version : tinymce.majorVersion + &quot;.&quot; + tinymce.minorVersion
 			};
-		},
-
-		// Private methods
-
-		_preview : function() {
-			var ed = this.editor, win, html, c, pos, pos2, css, i, page = ed.getParam(&quot;plugin_preview_pageurl&quot;, null), w = ed.getParam(&quot;plugin_preview_width&quot;, &quot;550&quot;), h = ed.getParam(&quot;plugin_preview_height&quot;, &quot;600&quot;);
-
-			// Use a custom preview page
-			if (page) {
-				ed.windowManager.open({
-					file : ed.getParam(&quot;plugin_preview_pageurl&quot;, null),
-					width : w,
-					height : h
-				}, {
-					resizable : &quot;yes&quot;,
-					scrollbars : &quot;yes&quot;,
-					inline : 1
-				});
-			} else {
-				win = window.open(&quot;&quot;, &quot;mcePreview&quot;, &quot;menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width=&quot; + w + &quot;,height=&quot;  + h);
-				html = &quot;&quot;;
-				c = ed.getContent();
-				pos = c.indexOf('&lt;body');
-				css = ed.getParam(&quot;content_css&quot;, '').split(',');
-
-				tinymce.map(css, function(u) {
-					return ed.documentBaseURI.toAbsolute(u);
-				});
-
-				if (pos != -1) {
-					pos = c.indexOf('&gt;', pos);
-					pos2 = c.lastIndexOf('&lt;/body&gt;');
-					c = c.substring(pos + 1, pos2);
-				}
-
-				html += ed.getParam('doctype');
-				html += '&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;';
-				html += '&lt;head&gt;';
-				html += '&lt;title&gt;' + ed.getLang('preview.preview_desc') + '&lt;/title&gt;';
-				html += '&lt;base href=&quot;' + ed.documentBaseURI.getURI() + '&quot; /&gt;';
-				html += '&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;';
-
-				for (i=0; i&lt;css.length; i++)
-					html += '&lt;link href=&quot;' + css[i] + '&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;';
-
-				html += '&lt;/head&gt;';
-				html += '&lt;body dir=&quot;' + ed.getParam(&quot;directionality&quot;) + '&quot; onload=&quot;window.opener.tinymce.EditorManager.get(\'' + ed.id + '\').plugins[\'preview\']._onLoad(window,document);&quot;&gt;';
-				html += c;
-				html += '&lt;/body&gt;';
-				html += '&lt;/html&gt;';
-
-				win.document.write(html);
-				win.document.close();
-			}
-		},
-
-		_onLoad : function(w, d) {
-			var t = this, nl, i, el = [], sv, ne;
-
-			t._doc = d;
-			w.writeFlash = t._writeFlash;
-			w.writeShockWave = t._writeShockWave;
-			w.writeQuickTime = t._writeQuickTime;
-			w.writeRealMedia = t._writeRealMedia;
-			w.writeWindowsMedia = t._writeWindowsMedia;
-			w.writeEmbed = t._writeEmbed;
-
-			nl = d.getElementsByTagName(&quot;script&quot;);
-			for (i=0; i&lt;nl.length; i++) {
-				sv = tinymce.isIE ? nl[i].innerHTML : nl[i].firstChild.nodeValue;
-
-				if (new RegExp('write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\\(.*', 'g').test(sv))
-					el[el.length] = nl[i];
-			}
-
-			for (i=0; i&lt;el.length; i++) {
-				ne = d.createElement(&quot;div&quot;);
-				ne.innerHTML = d._embeds[i];
-				el[i].parentNode.insertBefore(ne.firstChild, el[i]);
-			}
-		},
-
-		_writeFlash : function(p) {
-			p.src = this.editor.documentBaseURI.toAbsolute(p.src);
-			TinyMCE_PreviewPlugin._writeEmbed(
-				'D27CDB6E-AE6D-11cf-96B8-444553540000',
-				'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
-				'application/x-shockwave-flash',
-				p
-			);
-		},
-
-		_writeShockWave : function(p) {
-			this.editor.documentBaseURI.toAbsolute(p.src);
-			TinyMCE_PreviewPlugin._writeEmbed(
-				'166B1BCA-3F9C-11CF-8075-444553540000',
-				'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
-				'application/x-director',
-				p
-			);
-		},
-
-		_writeQuickTime : function(p) {
-			this.editor.documentBaseURI.toAbsolute(p.src);
-			TinyMCE_PreviewPlugin._writeEmbed(
-				'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
-				'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
-				'video/quicktime',
-				p
-			);
-		},
-
-		_writeRealMedia : function(p) {
-			this.editor.documentBaseURI.toAbsolute(p.src);
-			TinyMCE_PreviewPlugin._writeEmbed(
-				'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
-				'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
-				'audio/x-pn-realaudio-plugin',
-				p
-			);
-		},
-
-		_writeWindowsMedia : function(p) {
-			this.editor.documentBaseURI.toAbsolute(p.src);
-			p.url = p.src;
-			TinyMCE_PreviewPlugin._writeEmbed(
-				'6BF52A52-394A-11D3-B153-00C04F79FAA6',
-				'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
-				'application/x-mplayer2',
-				p
-			);
-		},
-
-		_writeEmbed : function(cls, cb, mt, p) {
-			var h = '', n, d = t._doc, ne, c;
-
-			h += '&lt;object classid=&quot;clsid:' + cls + '&quot; codebase=&quot;' + cb + '&quot;';
-			h += typeof(p.id) != &quot;undefined&quot; ? 'id=&quot;' + p.id + '&quot;' : '';
-			h += typeof(p.name) != &quot;undefined&quot; ? 'name=&quot;' + p.name + '&quot;' : '';
-			h += typeof(p.width) != &quot;undefined&quot; ? 'width=&quot;' + p.width + '&quot;' : '';
-			h += typeof(p.height) != &quot;undefined&quot; ? 'height=&quot;' + p.height + '&quot;' : '';
-			h += typeof(p.align) != &quot;undefined&quot; ? 'align=&quot;' + p.align + '&quot;' : '';
-			h += '&gt;';
-
-			for (n in p)
-				h += '&lt;param name=&quot;' + n + '&quot; value=&quot;' + p[n] + '&quot;&gt;';
-
-			h += '&lt;embed type=&quot;' + mt + '&quot;';
-
-			for (n in p)
-				h += n + '=&quot;' + p[n] + '&quot; ';
-
-			h += '&gt;&lt;/embed&gt;&lt;/object&gt;';
-
-			d._embeds[d._embeds.length] = h;
 		}
 	});
 </diff>
      <filename>lib/tiny_mce/plugins/preview/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/preview/example.html</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/preview/jscripts/embed.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.Print',{init:function(ed,url){ed.addCommand('mcePrint',function(){ed.getWin().print();});ed.addButton('print',{title:'print.print_desc',cmd:'mcePrint'});},getInfo:function(){return{longname:'Print',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('print',tinymce.plugins.Print);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.Print&quot;,{init:function(a,b){a.addCommand(&quot;mcePrint&quot;,function(){a.getWin().print()});a.addButton(&quot;print&quot;,{title:&quot;print.print_desc&quot;,cmd:&quot;mcePrint&quot;})},getInfo:function(){return{longname:&quot;Print&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;print&quot;,tinymce.plugins.Print)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/print/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/print/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/safari/blank.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var Event=tinymce.dom.Event,grep=tinymce.grep,each=tinymce.each,inArray=tinymce.inArray,isOldWebKit=tinymce.isOldWebKit;tinymce.create('tinymce.plugins.Safari',{init:function(ed){var t=this,dom;if(!tinymce.isWebKit)return;t.editor=ed;t.webKitFontSizes=['x-small','small','medium','large','x-large','xx-large','-webkit-xxx-large'];t.namedFontSizes=['xx-small','x-small','small','medium','large','x-large','xx-large'];ed.onPaste.add(function(ed,e){function removeStyles(e){e=e.target;if(e.nodeType==1){e.style.cssText='';each(ed.dom.select('*',e),function(e){e.style.cssText='';});}};Event.add(ed.getDoc(),'DOMNodeInserted',removeStyles);window.setTimeout(function(){Event.remove(ed.getDoc(),'DOMNodeInserted',removeStyles);},0);});ed.onKeyUp.add(function(ed,e){var h,b;if(e.keyCode==46||e.keyCode==8){b=ed.getBody();h=b.innerHTML;if(b.childNodes.length==1&amp;&amp;!/&lt;(img|hr)/.test(h)&amp;&amp;tinymce.trim(h.replace(/&lt;[^&gt;]+&gt;/g,'')).length==0)ed.setContent('',{format:'raw'});}});ed.addCommand('FormatBlock',function(u,v){var dom=ed.dom,e=dom.getParent(ed.selection.getNode(),dom.isBlock);if(e)dom.replace(dom.create(v),e,1);else ed.getDoc().execCommand(&quot;FormatBlock&quot;,false,v);});ed.addCommand('mceInsertContent',function(u,v){ed.getDoc().execCommand(&quot;InsertText&quot;,false,'mce_marker');ed.getBody().innerHTML=ed.getBody().innerHTML.replace(/mce_marker/g,v+'&lt;span id=&quot;_mce_tmp&quot;&gt;XX&lt;/span&gt;');ed.selection.select(ed.dom.get('_mce_tmp'));ed.getDoc().execCommand(&quot;Delete&quot;,false,' ');});ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&amp;&amp;(e.shiftKey||ed.settings.force_br_newlines&amp;&amp;ed.selection.getNode().nodeName!='LI')){t._insertBR(ed);Event.cancel(e);}});ed.addQueryValueHandler('FontSize',function(u,v){var e,v;if((e=ed.dom.getParent(ed.selection.getStart(),'span'))&amp;&amp;(v=e.style.fontSize))return tinymce.inArray(t.namedFontSizes,v)+1;if((e=ed.dom.getParent(ed.selection.getEnd(),'span'))&amp;&amp;(v=e.style.fontSize))return tinymce.inArray(t.namedFontSizes,v)+1;return ed.getDoc().queryCommandValue('FontSize');});ed.addQueryValueHandler('FontName',function(u,v){var e,v;if((e=ed.dom.getParent(ed.selection.getStart(),'span'))&amp;&amp;(v=e.style.fontFamily))return v.replace(/, /g,',');if((e=ed.dom.getParent(ed.selection.getEnd(),'span'))&amp;&amp;(v=e.style.fontFamily))return v.replace(/, /g,',');return ed.getDoc().queryCommandValue('FontName');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName=='IMG'){t.selElm=e;ed.selection.select(e);}else t.selElm=null;});ed.onInit.add(function(){t._fixWebKitSpans();if(isOldWebKit)t._patchSafari2x(ed);});ed.onSetContent.add(function(){dom=ed.dom;each(['strong','b','em','u','strike','sub','sup','a'],function(v){each(grep(dom.select(v)).reverse(),function(n){var nn=n.nodeName.toLowerCase(),st;if(nn=='a'){if(n.name)dom.replace(dom.create('img',{mce_name:'a',name:n.name,'class':'mceItemAnchor'}),n);return;}switch(nn){case'b':case'strong':if(nn=='b')nn='strong';st='font-weight: bold;';break;case'em':st='font-style: italic;';break;case'u':st='text-decoration: underline;';break;case'sub':st='vertical-align: sub;';break;case'sup':st='vertical-align: super;';break;case'strike':st='text-decoration: line-through;';break;}dom.replace(dom.create('span',{mce_name:nn,style:st,'class':'Apple-style-span'}),n,1);});});});ed.onPreProcess.add(function(ed,o){dom=ed.dom;each(grep(o.node.getElementsByTagName('span')).reverse(),function(n){var v,bg;if(o.get){if(dom.hasClass(n,'Apple-style-span')){bg=n.style.backgroundColor;switch(dom.getAttrib(n,'mce_name')){case'font':if(!ed.settings.convert_fonts_to_spans)dom.setAttrib(n,'style','');break;case'strong':case'em':case'sub':case'sup':dom.setAttrib(n,'style','');break;case'strike':case'u':if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');else dom.setAttrib(n,'mce_name','');break;default:if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');}if(bg)n.style.backgroundColor=bg;}}if(dom.hasClass(n,'mceItemRemoved'))dom.remove(n,1);});});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/&lt;br \/&gt;&lt;\/(h[1-6]|div|p|address|pre)&gt;/g,'&lt;/$1&gt;');o.content=o.content.replace(/ id=\&quot;undefined\&quot;/g,'');});},getInfo:function(){return{longname:'Safari compatibility',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_fixWebKitSpans:function(){var t=this,ed=t.editor;if(!isOldWebKit){Event.add(ed.getDoc(),'DOMNodeInserted',function(e){e=e.target;if(e&amp;&amp;e.nodeType==1)t._fixAppleSpan(e);});}else{ed.onExecCommand.add(function(){each(ed.dom.select('span'),function(n){t._fixAppleSpan(n);});ed.nodeChanged();});}},_fixAppleSpan:function(e){var ed=this.editor,dom=ed.dom,fz=this.webKitFontSizes,fzn=this.namedFontSizes,s=ed.settings,st,p;if(dom.getAttrib(e,'mce_fixed'))return;if(e.nodeName=='SPAN'&amp;&amp;e.className=='Apple-style-span'){st=e.style;if(!s.convert_fonts_to_spans){if(st.fontSize){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'size',inArray(fz,st.fontSize)+1);}if(st.fontFamily){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'face',st.fontFamily);}if(st.color){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'color',dom.toHex(st.color));}if(st.backgroundColor){dom.setAttrib(e,'mce_name','font');dom.setStyle(e,'background-color',st.backgroundColor);}}else{if(st.fontSize)dom.setStyle(e,'fontSize',fzn[inArray(fz,st.fontSize)]);}if(st.fontWeight=='bold')dom.setAttrib(e,'mce_name','strong');if(st.fontStyle=='italic')dom.setAttrib(e,'mce_name','em');if(st.textDecoration=='underline')dom.setAttrib(e,'mce_name','u');if(st.textDecoration=='line-through')dom.setAttrib(e,'mce_name','strike');if(st.verticalAlign=='super')dom.setAttrib(e,'mce_name','sup');if(st.verticalAlign=='sub')dom.setAttrib(e,'mce_name','sub');dom.setAttrib(e,'mce_fixed','1');}},_patchSafari2x:function(ed){var t=this,setContent,getNode,dom=ed.dom,lr;if(ed.windowManager.onBeforeOpen){ed.windowManager.onBeforeOpen.add(function(){r=ed.selection.getRng();});}ed.selection.select=function(n){this.getSel().setBaseAndExtent(n,0,n,1);};getNode=ed.selection.getNode;ed.selection.getNode=function(){return t.selElm||getNode.call(this);};ed.selection.getRng=function(){var t=this,s=t.getSel(),d=ed.getDoc(),r,rb,ra,di;if(s.anchorNode){r=d.createRange();try{rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(1);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(1);di=rb.compareBoundaryPoints(rb.START_TO_END,ra)&lt;0;r.setStart(di?s.anchorNode:s.focusNode,di?s.anchorOffset:s.focusOffset);r.setEnd(di?s.focusNode:s.anchorNode,di?s.focusOffset:s.anchorOffset);lr=r;}catch(ex){}}return r||lr;};setContent=ed.selection.setContent;ed.selection.setContent=function(h,s){var r=this.getRng(),b;try{setContent.call(this,h,s);}catch(ex){b=dom.create('body');b.innerHTML=h;each(b.childNodes,function(n){r.insertNode(n.cloneNode(true));});}};},_insertBR:function(ed){var dom=ed.dom,s=ed.selection,r=s.getRng(),br;r.insertNode(br=dom.create('br'));r.setStartAfter(br);r.setEndAfter(br);s.setRng(r);if(s.getSel().focusNode==br.previousSibling){s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'),br));s.collapse(1);}ed.getWin().scrollTo(0,dom.getPos(s.getRng().startContainer).y);}});tinymce.PluginManager.add('safari',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.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</diff>
      <filename>lib/tiny_mce/plugins/safari/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,30 @@
  */
 
 (function() {
-	var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray, isOldWebKit = tinymce.isOldWebKit;
+	var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray;
+
+	function isEmpty(d, e, f) {
+		var w, n;
+
+		w = d.createTreeWalker(e, NodeFilter.SHOW_ALL, null, false);
+		while (n = w.nextNode()) {
+			// Filter func
+			if (f) {
+				if (!f(n))
+					return false;
+			}
+
+			// Non whitespace text node
+			if (n.nodeType == 3 &amp;&amp; n.nodeValue &amp;&amp; /[^\s\u00a0]+/.test(n.nodeValue))
+				return false;
+
+			// Is non text element byt still content
+			if (n.nodeType == 1 &amp;&amp; /^(HR|IMG|TABLE)$/.test(n.nodeName))
+				return false;
+		}
+
+		return true;
+	};
 
 	tinymce.create('tinymce.plugins.Safari', {
 		init : function(ed) {
@@ -20,10 +43,17 @@
 			t.webKitFontSizes = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', '-webkit-xxx-large'];
 			t.namedFontSizes = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large'];
 
-			// Safari will crash if the build in createlink command is used
-/*			ed.addCommand('CreateLink', function(u, v) {
-				ed.execCommand(&quot;mceInsertContent&quot;, false, '&lt;a href=&quot;' + dom.encode(v) + '&quot;&gt;' + ed.selection.getContent() + '&lt;/a&gt;');
-			});*/
+			// Safari CreateLink command will not work correctly on images that is aligned
+			ed.addCommand('CreateLink', function(u, v) {
+				var n = ed.selection.getNode(), dom = ed.dom, a;
+
+				if (n &amp;&amp; (/^(left|right)$/i.test(dom.getStyle(n, 'float', 1)) || /^(left|right)$/i.test(dom.getAttrib(n, 'align')))) {
+					a = dom.create('a', {href : v}, n.cloneNode());
+					n.parentNode.replaceChild(a, n);
+					ed.selection.select(a);
+				} else
+					ed.getDoc().execCommand(&quot;CreateLink&quot;, false, v);
+			});
 
 			ed.onPaste.add(function(ed, e) {
 				function removeStyles(e) {
@@ -46,16 +76,26 @@
 			});
 
 			ed.onKeyUp.add(function(ed, e) {
-				var h, b;
+				var h, b, r, n, s;
 
 				// If backspace or delete key
 				if (e.keyCode == 46 || e.keyCode == 8) {
 					b = ed.getBody();
 					h = b.innerHTML;
+					s = ed.selection;
 
 					// If there is no text content or images or hr elements then remove everything
-					if (b.childNodes.length == 1 &amp;&amp; !/&lt;(img|hr)/.test(h) &amp;&amp; tinymce.trim(h.replace(/&lt;[^&gt;]+&gt;/g, '')).length == 0)
-						ed.setContent('', {format : 'raw'});
+					if (b.childNodes.length == 1 &amp;&amp; !/&lt;(img|hr)/.test(h) &amp;&amp; tinymce.trim(h.replace(/&lt;[^&gt;]+&gt;/g, '')).length == 0) {
+						// Inject paragrah and bogus br
+						ed.setContent('&lt;p&gt;&lt;br mce_bogus=&quot;1&quot; /&gt;&lt;/p&gt;', {format : 'raw'});
+
+						// Move caret before bogus br
+						n = b.firstChild;
+						r = s.getRng();
+						r.setStart(n, 0);
+						r.setEnd(n, 0);
+						s.setRng(r);
+					}
 				}
 			});
 
@@ -72,49 +112,88 @@
 			// Workaround for InsertHTML bug, http://bugs.webkit.org/show_bug.cgi?id=16382
 			ed.addCommand('mceInsertContent', function(u, v) {
 				ed.getDoc().execCommand(&quot;InsertText&quot;, false, 'mce_marker');
-				ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, v + '&lt;span id=&quot;_mce_tmp&quot;&gt;XX&lt;/span&gt;');
+				ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, ed.dom.processHTML(v) + '&lt;span id=&quot;_mce_tmp&quot;&gt;XX&lt;/span&gt;');
 				ed.selection.select(ed.dom.get('_mce_tmp'));
 				ed.getDoc().execCommand(&quot;Delete&quot;, false, ' ');
 			});
 
-			// Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973
 			ed.onKeyPress.add(function(ed, e) {
-				if (e.keyCode == 13 &amp;&amp; (e.shiftKey || ed.settings.force_br_newlines &amp;&amp; ed.selection.getNode().nodeName != 'LI')) {
-					t._insertBR(ed);
-					Event.cancel(e);
-				}
-			});
+				var se, li, lic, r1, r2, n, sel, doc, be, af, pa;
 
-			// Safari returns incorrect values
-			ed.addQueryValueHandler('FontSize', function(u, v) {
-				var e, v;
+				if (e.keyCode == 13) {
+					sel = ed.selection;
+					se = sel.getNode();
 
-				// Check for the real font size at the start of selection
-				if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) &amp;&amp; (v = e.style.fontSize))
-					return tinymce.inArray(t.namedFontSizes, v) + 1;
+					// Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973
+					if (e.shiftKey || ed.settings.force_br_newlines &amp;&amp; se.nodeName != 'LI') {
+						t._insertBR(ed);
+						Event.cancel(e);
+					}
 
-				// Check for the real font size at the end of selection
-				if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) &amp;&amp; (v = e.style.fontSize))
-					return tinymce.inArray(t.namedFontSizes, v) + 1;
+					// Workaround for DIV elements produced by Safari
+					if (li = dom.getParent(se, 'LI')) {
+						lic = dom.getParent(li, 'OL,UL');
+						doc = ed.getDoc();
 
-				// Return default value it's better than nothing right!
-				return ed.getDoc().queryCommandValue('FontSize');
-			});
+						pa = dom.create('p');
+						dom.add(pa, 'br', {mce_bogus : &quot;1&quot;});
+
+						if (isEmpty(doc, li)) {
+							// If list in list then use browser default behavior
+							if (n = dom.getParent(lic.parentNode, 'LI,OL,UL'))
+								return;
+
+							n = dom.getParent(lic, 'p,h1,h2,h3,h4,h5,h6,div') || lic;
 
-			// Safari returns incorrect values
-			ed.addQueryValueHandler('FontName', function(u, v) {
-				var e, v;
+							// Create range from the start of block element to the list item
+							r1 = doc.createRange();
+							r1.setStartBefore(n);
+							r1.setEndBefore(li);
 
-				// Check for the real font name at the start of selection
-				if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) &amp;&amp; (v = e.style.fontFamily))
-					return v.replace(/, /g, ',');
+							// Create range after the list to the end of block element
+							r2 = doc.createRange();
+							r2.setStartAfter(li);
+							r2.setEndAfter(n);
 
-				// Check for the real font name at the end of selection
-				if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) &amp;&amp; (v = e.style.fontFamily))
-					return v.replace(/, /g, ',');
+							be = r1.cloneContents();
+							af = r2.cloneContents();
 
-				// Return default value it's better than nothing right!
-				return ed.getDoc().queryCommandValue('FontName');
+							if (!isEmpty(doc, af))
+								dom.insertAfter(af, n);
+
+							dom.insertAfter(pa, n);
+
+							if (!isEmpty(doc, be))
+								dom.insertAfter(be, n);
+
+							dom.remove(n);
+
+							n = pa.firstChild;
+							r1 = doc.createRange();
+							r1.setStartBefore(n);
+							r1.setEndBefore(n);
+							sel.setRng(r1);
+
+							return Event.cancel(e);
+						}
+					}
+				}
+			});
+
+			// Safari doesn't place lists outside block elements
+			ed.onExecCommand.add(function(ed, cmd) {
+				var sel, dom, bl, bm;
+
+				if (cmd == 'InsertUnorderedList' || cmd == 'InsertOrderedList') {
+					sel = ed.selection;
+					dom = ed.dom;
+
+					if (bl = dom.getParent(sel.getNode(), function(n) {return /^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName);})) {
+						bm = sel.getBookmark();
+						dom.remove(bl, 1);
+						sel.moveToBookmark(bm);
+					}
+				}
 			});
 
 			// Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250
@@ -128,36 +207,8 @@
 					t.selElm = null;
 			});
 
-/*			ed.onBeforeExecCommand.add(function(ed, c, b) {
-				var r = t.bookmarkRng;
-
-				// Restore selection
-				if (r) {
-					ed.selection.setRng(r);
-					t.bookmarkRng = null;
-					//console.debug('restore', r.startContainer, r.startOffset, r.endContainer, r.endOffset);
-				}
-			});*/
-
 			ed.onInit.add(function() {
 				t._fixWebKitSpans();
-
-/*				ed.windowManager.onOpen.add(function() {
-					var r = ed.selection.getRng();
-
-					// Store selection if valid
-					if (r.startContainer != ed.getDoc()) {
-						t.bookmarkRng = r.cloneRange();
-						//console.debug('store', r.startContainer, r.startOffset, r.endContainer, r.endOffset);
-					}
-				});
-
-				ed.windowManager.onClose.add(function() {
-					t.bookmarkRng = null;
-				});*/
-
-				if (isOldWebKit)
-					t._patchSafari2x(ed);
 			});
 
 			ed.onSetContent.add(function() {
@@ -283,24 +334,13 @@
 		_fixWebKitSpans : function() {
 			var t = this, ed = t.editor;
 
-			if (!isOldWebKit) {
-				// Use mutator events on new WebKit
-				Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {
-					e = e.target;
-
-					if (e &amp;&amp; e.nodeType == 1)
-						t._fixAppleSpan(e);
-				});
-			} else {
-				// Do post command processing in old WebKit since the browser crashes on Mutator events :(
-				ed.onExecCommand.add(function() {
-					each(ed.dom.select('span'), function(n) {
-						t._fixAppleSpan(n);
-					});
+			// Use mutator events on new WebKit
+			Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {
+				e = e.target;
 
-					ed.nodeChanged();
-				});
-			}
+				if (e &amp;&amp; e.nodeType == 1)
+					t._fixAppleSpan(e);
+			});
 		},
 
 		_fixAppleSpan : function(e) {
@@ -360,78 +400,6 @@
 			}
 		},
 
-		_patchSafari2x : function(ed) {
-			var t = this, setContent, getNode, dom = ed.dom, lr;
-
-			// Inline dialogs
-			if (ed.windowManager.onBeforeOpen) {
-				ed.windowManager.onBeforeOpen.add(function() {
-					r = ed.selection.getRng();
-				});
-			}
-
-			// Fake select on 2.x
-			ed.selection.select = function(n) {
-				this.getSel().setBaseAndExtent(n, 0, n, 1);
-			};
-
-			getNode = ed.selection.getNode;
-			ed.selection.getNode = function() {
-				return t.selElm || getNode.call(this);
-			};
-
-			// Fake range on Safari 2.x
-			ed.selection.getRng = function() {
-				var t = this, s = t.getSel(), d = ed.getDoc(), r, rb, ra, di;
-
-				// Fake range on Safari 2.x
-				if (s.anchorNode) {
-					r = d.createRange();
-
-					try {
-						// Setup before range
-						rb = d.createRange();
-						rb.setStart(s.anchorNode, s.anchorOffset);
-						rb.collapse(1);
-
-						// Setup after range
-						ra = d.createRange();
-						ra.setStart(s.focusNode, s.focusOffset);
-						ra.collapse(1);
-
-						// Setup start/end points by comparing locations
-						di = rb.compareBoundaryPoints(rb.START_TO_END, ra) &lt; 0;
-						r.setStart(di ? s.anchorNode : s.focusNode, di ? s.anchorOffset : s.focusOffset);
-						r.setEnd(di ? s.focusNode : s.anchorNode, di ? s.focusOffset : s.anchorOffset);
-
-						lr = r;
-					} catch (ex) {
-						// Sometimes fails, at least we tried to do it by the book. I hope Safari 2.x will go disappear soooon!!!
-					}
-				}
-
-				return r || lr;
-			};
-
-			// Fix setContent so it works
-			setContent = ed.selection.setContent;
-			ed.selection.setContent = function(h, s) {
-				var r = this.getRng(), b;
-
-				try {
-					setContent.call(this, h, s);
-				} catch (ex) {
-					// Workaround for Safari 2.x
-					b = dom.create('body');
-					b.innerHTML = h;
-
-					each(b.childNodes, function(n) {
-						r.insertNode(n.cloneNode(true));
-					});
-				}
-			};
-		},
-
 		_insertBR : function(ed) {
 			var dom = ed.dom, s = ed.selection, r = s.getRng(), br;
 </diff>
      <filename>lib/tiny_mce/plugins/safari/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.Save',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceSave',t._save,t);ed.addCommand('mceCancel',t._cancel,t);ed.addButton('save',{title:'save.save_desc',cmd:'mceSave'});ed.addButton('cancel',{title:'save.cancel_desc',cmd:'mceCancel'});ed.onNodeChange.add(t._nodeChange,t);ed.addShortcut('ctrl+s',ed.getLang('save.save_desc'),'mceSave');},getInfo:function(){return{longname:'Save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var ed=this.editor;if(ed.getParam('save_enablewhendirty')){cm.setDisabled('save',!ed.isDirty());cm.setDisabled('cancel',!ed.isDirty());}},_save:function(){var ed=this.editor,formObj,os,i,elementId;formObj=tinymce.DOM.get(ed.id).form||tinymce.DOM.getParent(ed.id,'form');if(ed.getParam(&quot;save_enablewhendirty&quot;)&amp;&amp;!ed.isDirty())return;tinyMCE.triggerSave();if(os=ed.getParam(&quot;save_onsavecallback&quot;)){if(ed.execCallback('save_onsavecallback',ed)){ed.startContent=tinymce.trim(ed.getContent({format:'raw'}));ed.nodeChanged();}return;}if(formObj){ed.isNotDirty=true;if(formObj.onsubmit==null||formObj.onsubmit()!=false)formObj.submit();ed.nodeChanged();}else ed.windowManager.alert(&quot;Error: No form element found.&quot;);},_cancel:function(){var ed=this.editor,os,h=tinymce.trim(ed.startContent);if(os=ed.getParam(&quot;save_oncancelcallback&quot;)){ed.execCallback('save_oncancelcallback',ed);return;}ed.setContent(h);ed.undoManager.clear();ed.nodeChanged();}});tinymce.PluginManager.add('save',tinymce.plugins.Save);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.Save&quot;,{init:function(a,b){var c=this;c.editor=a;a.addCommand(&quot;mceSave&quot;,c._save,c);a.addCommand(&quot;mceCancel&quot;,c._cancel,c);a.addButton(&quot;save&quot;,{title:&quot;save.save_desc&quot;,cmd:&quot;mceSave&quot;});a.addButton(&quot;cancel&quot;,{title:&quot;save.cancel_desc&quot;,cmd:&quot;mceCancel&quot;});a.onNodeChange.add(c._nodeChange,c);a.addShortcut(&quot;ctrl+s&quot;,a.getLang(&quot;save.save_desc&quot;),&quot;mceSave&quot;)},getInfo:function(){return{longname:&quot;Save&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_nodeChange:function(b,a,c){var b=this.editor;if(b.getParam(&quot;save_enablewhendirty&quot;)){a.setDisabled(&quot;save&quot;,!b.isDirty());a.setDisabled(&quot;cancel&quot;,!b.isDirty())}},_save:function(){var c=this.editor,a,e,d,b;a=tinymce.DOM.get(c.id).form||tinymce.DOM.getParent(c.id,&quot;form&quot;);if(c.getParam(&quot;save_enablewhendirty&quot;)&amp;&amp;!c.isDirty()){return}tinyMCE.triggerSave();if(e=c.getParam(&quot;save_onsavecallback&quot;)){if(c.execCallback(&quot;save_onsavecallback&quot;,c)){c.startContent=tinymce.trim(c.getContent({format:&quot;raw&quot;}));c.nodeChanged()}return}if(a){c.isNotDirty=true;if(a.onsubmit==null||a.onsubmit()!=false){a.submit()}c.nodeChanged()}else{c.windowManager.alert(&quot;Error: No form element found.&quot;)}},_cancel:function(){var a=this.editor,c,b=tinymce.trim(a.startContent);if(c=a.getParam(&quot;save_oncancelcallback&quot;)){a.execCallback(&quot;save_oncancelcallback&quot;,a);return}a.setContent(b);a.undoManager.clear();a.nodeChanged()}});tinymce.PluginManager.add(&quot;save&quot;,tinymce.plugins.Save)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/save/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/save/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/searchreplace/css/searchreplace.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.SearchReplacePlugin',{init:function(ed,url){function open(m){ed.windowManager.open({file:url+'/searchreplace.htm',width:420+parseInt(ed.getLang('searchreplace.delta_width',0)),height:160+parseInt(ed.getLang('searchreplace.delta_height',0)),inline:1,auto_focus:0},{mode:m,search_string:ed.selection.getContent({format:'text'}),plugin_url:url});};ed.addCommand('mceSearch',function(){open('search');});ed.addCommand('mceReplace',function(){open('replace');});ed.addButton('search',{title:'searchreplace.search_desc',cmd:'mceSearch'});ed.addButton('replace',{title:'searchreplace.replace_desc',cmd:'mceReplace'});ed.addShortcut('ctrl+f','searchreplace.search_desc','mceSearch');},getInfo:function(){return{longname:'Search/Replace',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('searchreplace',tinymce.plugins.SearchReplacePlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.SearchReplacePlugin&quot;,{init:function(a,c){function b(d){a.windowManager.open({file:c+&quot;/searchreplace.htm&quot;,width:420+parseInt(a.getLang(&quot;searchreplace.delta_width&quot;,0)),height:160+parseInt(a.getLang(&quot;searchreplace.delta_height&quot;,0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:&quot;text&quot;}),plugin_url:c})}a.addCommand(&quot;mceSearch&quot;,function(){b(&quot;search&quot;)});a.addCommand(&quot;mceReplace&quot;,function(){b(&quot;replace&quot;)});a.addButton(&quot;search&quot;,{title:&quot;searchreplace.search_desc&quot;,cmd:&quot;mceSearch&quot;});a.addButton(&quot;replace&quot;,{title:&quot;searchreplace.replace_desc&quot;,cmd:&quot;mceReplace&quot;});a.addShortcut(&quot;ctrl+f&quot;,&quot;searchreplace.search_desc&quot;,&quot;mceSearch&quot;)},getInfo:function(){return{longname:&quot;Search/Replace&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;searchreplace&quot;,tinymce.plugins.SearchReplacePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/searchreplace/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/searchreplace/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -42,6 +42,9 @@ var SearchReplaceDialog = {
 		ca = f[m + '_panel_casesensitivebox'].checked;
 		rs = f['replace_panel_replacestring'].value;
 
+		if (s == '')
+			return;
+
 		function fix() {
 			// Correct Firefox graphics glitches
 			r = se.getRng().cloneRange();
@@ -62,6 +65,10 @@ var SearchReplaceDialog = {
 
 		switch (a) {
 			case 'all':
+				// Move caret to beginning of text
+				ed.execCommand('SelectAll');
+				ed.selection.collapse(true);
+
 				if (tinymce.isIE) {
 					while (r.findText(s, b ? -1 : 1, fl)) {
 						r.scrollIntoView();
@@ -79,14 +86,16 @@ var SearchReplaceDialog = {
 				}
 
 				if (fo)
-					wm.alert(ed.getLang('searchreplace_dlg.allreplaced'));
+					tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced'));
 				else
-					wm.alert(ed.getLang('searchreplace_dlg.notfound'));
+					tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
 
 				return;
 
 			case 'current':
-				replace();
+				if (!ed.selection.isCollapsed())
+					replace();
+
 				break;
 		}
 
@@ -102,12 +111,12 @@ var SearchReplaceDialog = {
 				r.scrollIntoView();
 				r.select();
 			} else
-				wm.alert(ed.getLang('searchreplace_dlg.notfound'));
+				tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
 
 			tinyMCEPopup.storeSelection();
 		} else {
 			if (!w.find(s, ca, b, false, false, false, false))
-				wm.alert(ed.getLang('searchreplace_dlg.notfound'));
+				tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
 			else
 				fix();
 		}</diff>
      <filename>lib/tiny_mce/plugins/searchreplace/js/searchreplace.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/searchreplace/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/form_utils.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/searchreplace.js&quot;&gt;&lt;/script&gt;
 	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/searchreplace.css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body style=&quot;display:none;&quot;&gt;
 &lt;form onsubmit=&quot;SearchReplaceDialog.searchNext('none');return false;&quot; action=&quot;#&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/searchreplace/searchreplace.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/spellchecker/css/content.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var JSONRequest=tinymce.util.JSONRequest,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.SpellcheckerPlugin',{getInfo:function(){return{longname:'Spellchecker',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},init:function(ed,url){var t=this,cm;t.url=url;t.editor=ed;ed.addCommand('mceSpellCheck',function(){if(!t.active){ed.setProgressState(1);t._sendRPC('checkWords',[t.selectedLang,t._getWords()],function(r){if(r.length&gt;0){t.active=1;t._markWords(r);ed.setProgressState(0);ed.nodeChanged();}else{ed.setProgressState(0);ed.windowManager.alert('spellchecker.no_mpell');}});}else t._done();});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+'/css/content.css');});ed.onClick.add(t._showMenu,t);ed.onContextMenu.add(t._showMenu,t);ed.onBeforeGetContent.add(function(){if(t.active)t._removeWords();});ed.onNodeChange.add(function(ed,cm){cm.setActive('spellchecker',t.active);});ed.onSetContent.add(function(){t._done();});ed.onBeforeGetContent.add(function(){t._done();});ed.onBeforeExecCommand.add(function(ed,cmd){if(cmd=='mceFullScreen')t._done();});t.languages={};each(ed.getParam('spellchecker_languages','+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv','hash'),function(v,k){if(k.indexOf('+')===0){k=k.substring(1);t.selectedLang=v;}t.languages[k]=v;});},createControl:function(n,cm){var t=this,c,ed=t.editor;if(n=='spellchecker'){c=cm.createSplitButton(n,{title:'spellchecker.desc',cmd:'mceSpellCheck',scope:t});c.onRenderMenu.add(function(c,m){m.add({title:'spellchecker.langs','class':'mceMenuItemTitle'}).setDisabled(1);each(t.languages,function(v,k){var o={icon:1},mi;o.onclick=function(){mi.setSelected(1);t.selectedItem.setSelected(0);t.selectedItem=mi;t.selectedLang=v;};o.title=k;mi=m.add(o);mi.setSelected(v==t.selectedLang);if(v==t.selectedLang)t.selectedItem=mi;})});return c;}},_walk:function(n,f){var d=this.editor.getDoc(),w;if(d.createTreeWalker){w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while((n=w.nextNode())!=null)f.call(this,n);}else tinymce.walk(n,f,'childNodes');},_getSeparators:function(){var re='',i,str=this.editor.getParam('spellchecker_word_separator_chars','\\s!&quot;#$%&amp;()*+,-./:;&lt;=&gt;?@[\]^_{|}&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;&#239;&#191;&#189;\u201d\u201c');for(i=0;i&lt;str.length;i++)re+='\\'+str.charAt(i);return re;},_getWords:function(){var ed=this.editor,wl=[],tx='',lo={};this._walk(ed.getBody(),function(n){if(n.nodeType==3)tx+=n.nodeValue+' ';});tx=tx.replace(new RegExp('([0-9]|['+this._getSeparators()+'])','g'),' ');tx=tinymce.trim(tx.replace(/(\s+)/g,' '));each(tx.split(' '),function(v){if(!lo[v]){wl.push(v);lo[v]=1;}});return wl;},_removeWords:function(w){var ed=this.editor,dom=ed.dom,se=ed.selection,b=se.getBookmark();each(dom.select('span').reverse(),function(n){if(n&amp;&amp;(dom.hasClass(n,'mceItemHiddenSpellWord')||dom.hasClass(n,'mceItemHidden'))){if(!w||dom.decode(n.innerHTML)==w)dom.remove(n,1);}});se.moveToBookmark(b);},_markWords:function(wl){var r1,r2,r3,r4,r5,w='',ed=this.editor,re=this._getSeparators(),dom=ed.dom,nl=[];var se=ed.selection,b=se.getBookmark();each(wl,function(v){w+=(w?'|':'')+v;});r1=new RegExp('(['+re+'])('+w+')(['+re+'])','g');r2=new RegExp('^('+w+')','g');r3=new RegExp('('+w+')(['+re+']?)$','g');r4=new RegExp('^('+w+')(['+re+']?)$','g');r5=new RegExp('('+w+')(['+re+'])','g');this._walk(this.editor.getBody(),function(n){if(n.nodeType==3){nl.push(n);}});each(nl,function(n){var v;if(n.nodeType==3){v=n.nodeValue;if(r1.test(v)||r2.test(v)||r3.test(v)||r4.test(v)){v=dom.encode(v);v=v.replace(r5,'&lt;span class=&quot;mceItemHiddenSpellWord&quot;&gt;$1&lt;/span&gt;$2');v=v.replace(r3,'&lt;span class=&quot;mceItemHiddenSpellWord&quot;&gt;$1&lt;/span&gt;$2');dom.replace(dom.create('span',{'class':'mceItemHidden'},v),n);}}});se.moveToBookmark(b);},_showMenu:function(ed,e){var t=this,ed=t.editor,m=t._menu,p1,dom=ed.dom,vp=dom.getViewPort(ed.getWin());if(!m){p1=DOM.getPos(ed.getContentAreaContainer());m=ed.controlManager.createDropMenu('spellcheckermenu',{offset_x:p1.x,offset_y:p1.y,'class':'mceNoIcons'});t._menu=m;}if(dom.hasClass(e.target,'mceItemHiddenSpellWord')){m.removeAll();m.add({title:'spellchecker.wait','class':'mceMenuItemTitle'}).setDisabled(1);t._sendRPC('getSuggestions',[t.selectedLang,dom.decode(e.target.innerHTML)],function(r){m.removeAll();if(r.length&gt;0){m.add({title:'spellchecker.sug','class':'mceMenuItemTitle'}).setDisabled(1);each(r,function(v){m.add({title:v,onclick:function(){dom.replace(ed.getDoc().createTextNode(v),e.target);t._checkDone();}});});m.addSeparator();}else m.add({title:'spellchecker.no_sug','class':'mceMenuItemTitle'}).setDisabled(1);m.add({title:'spellchecker.ignore_word',onclick:function(){dom.remove(e.target,1);t._checkDone();}});m.add({title:'spellchecker.ignore_words',onclick:function(){t._removeWords(dom.decode(e.target.innerHTML));t._checkDone();}});m.update();});ed.selection.select(e.target);p1=dom.getPos(e.target);m.showMenu(p1.x,p1.y+e.target.offsetHeight-vp.y);return tinymce.dom.Event.cancel(e);}else m.hideMenu();},_checkDone:function(){var t=this,ed=t.editor,dom=ed.dom,o;each(dom.select('span'),function(n){if(n&amp;&amp;dom.hasClass(n,'mceItemHiddenSpellWord')){o=true;return false;}});if(!o)t._done();},_done:function(){var t=this,la=t.active;if(t.active){t.active=0;t._removeWords();if(t._menu)t._menu.hideMenu();if(la)t.editor.nodeChanged();}},_sendRPC:function(m,p,cb){var t=this,url=t.editor.getParam(&quot;spellchecker_rpc_url&quot;,&quot;{backend}&quot;);if(url=='{backend}'){t.editor.setProgressState(0);alert('Please specify: spellchecker_rpc_url');return;}JSONRequest.sendRPC({url:url,method:m,params:p,success:cb,error:function(e,x){t.editor.setProgressState(0);t.editor.windowManager.alert(e.errstr||('Error response: '+x.responseText));}});}});tinymce.PluginManager.add('spellchecker',tinymce.plugins.SpellcheckerPlugin);})();
\ No newline at end of file
+(function(){var a=tinymce.util.JSONRequest,c=tinymce.each,b=tinymce.DOM;tinymce.create(&quot;tinymce.plugins.SpellcheckerPlugin&quot;,{getInfo:function(){return{longname:&quot;Spellchecker&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},init:function(e,f){var g=this,d;g.url=f;g.editor=e;e.addCommand(&quot;mceSpellCheck&quot;,function(){if(!g.active){e.setProgressState(1);g._sendRPC(&quot;checkWords&quot;,[g.selectedLang,g._getWords()],function(h){if(h.length&gt;0){g.active=1;g._markWords(h);e.setProgressState(0);e.nodeChanged()}else{e.setProgressState(0);e.windowManager.alert(&quot;spellchecker.no_mpell&quot;)}})}else{g._done()}});e.onInit.add(function(){if(e.settings.content_css!==false){e.dom.loadCSS(f+&quot;/css/content.css&quot;)}});e.onClick.add(g._showMenu,g);e.onContextMenu.add(g._showMenu,g);e.onBeforeGetContent.add(function(){if(g.active){g._removeWords()}});e.onNodeChange.add(function(i,h){h.setActive(&quot;spellchecker&quot;,g.active)});e.onSetContent.add(function(){g._done()});e.onBeforeGetContent.add(function(){g._done()});e.onBeforeExecCommand.add(function(h,i){if(i==&quot;mceFullScreen&quot;){g._done()}});g.languages={};c(e.getParam(&quot;spellchecker_languages&quot;,&quot;+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv&quot;,&quot;hash&quot;),function(i,h){if(h.indexOf(&quot;+&quot;)===0){h=h.substring(1);g.selectedLang=i}g.languages[h]=i})},createControl:function(h,d){var f=this,g,e=f.editor;if(h==&quot;spellchecker&quot;){g=d.createSplitButton(h,{title:&quot;spellchecker.desc&quot;,cmd:&quot;mceSpellCheck&quot;,scope:f});g.onRenderMenu.add(function(j,i){i.add({title:&quot;spellchecker.langs&quot;,&quot;class&quot;:&quot;mceMenuItemTitle&quot;}).setDisabled(1);c(f.languages,function(n,m){var p={icon:1},l;p.onclick=function(){l.setSelected(1);f.selectedItem.setSelected(0);f.selectedItem=l;f.selectedLang=n};p.title=m;l=i.add(p);l.setSelected(n==f.selectedLang);if(n==f.selectedLang){f.selectedItem=l}})});return g}},_walk:function(i,g){var h=this.editor.getDoc(),e;if(h.createTreeWalker){e=h.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,false);while((i=e.nextNode())!=null){g.call(this,i)}}else{tinymce.walk(i,g,&quot;childNodes&quot;)}},_getSeparators:function(){var e=&quot;&quot;,d,f=this.editor.getParam(&quot;spellchecker_word_separator_chars&quot;,'\\s!&quot;#$%&amp;()*+,-./:;&lt;=&gt;?@[]^_{|}&#167;&#169;&#171;&#174;&#177;&#182;&#183;&#184;&#187;&#188;&#189;&#190;&#191;&#215;&#247;&#164;\u201d\u201c');for(d=0;d&lt;f.length;d++){e+=&quot;\\&quot;+f.charAt(d)}return e},_getWords:function(){var e=this.editor,g=[],d=&quot;&quot;,f={};this._walk(e.getBody(),function(h){if(h.nodeType==3){d+=h.nodeValue+&quot; &quot;}});d=d.replace(new RegExp(&quot;([0-9]|[&quot;+this._getSeparators()+&quot;])&quot;,&quot;g&quot;),&quot; &quot;);d=tinymce.trim(d.replace(/(\s+)/g,&quot; &quot;));c(d.split(&quot; &quot;),function(h){if(!f[h]){g.push(h);f[h]=1}});return g},_removeWords:function(e){var f=this.editor,h=f.dom,g=f.selection,d=g.getBookmark();c(h.select(&quot;span&quot;).reverse(),function(i){if(i&amp;&amp;(h.hasClass(i,&quot;mceItemHiddenSpellWord&quot;)||h.hasClass(i,&quot;mceItemHidden&quot;))){if(!e||h.decode(i.innerHTML)==e){h.remove(i,1)}}});g.moveToBookmark(d)},_markWords:function(o){var i,h,g,f,e,n=&quot;&quot;,k=this.editor,p=this._getSeparators(),j=k.dom,d=[];var l=k.selection,m=l.getBookmark();c(o,function(q){n+=(n?&quot;|&quot;:&quot;&quot;)+q});i=new RegExp(&quot;([&quot;+p+&quot;])(&quot;+n+&quot;)([&quot;+p+&quot;])&quot;,&quot;g&quot;);h=new RegExp(&quot;^(&quot;+n+&quot;)&quot;,&quot;g&quot;);g=new RegExp(&quot;(&quot;+n+&quot;)([&quot;+p+&quot;]?)$&quot;,&quot;g&quot;);f=new RegExp(&quot;^(&quot;+n+&quot;)([&quot;+p+&quot;]?)$&quot;,&quot;g&quot;);e=new RegExp(&quot;(&quot;+n+&quot;)([&quot;+p+&quot;])&quot;,&quot;g&quot;);this._walk(this.editor.getBody(),function(q){if(q.nodeType==3){d.push(q)}});c(d,function(r){var q;if(r.nodeType==3){q=r.nodeValue;if(i.test(q)||h.test(q)||g.test(q)||f.test(q)){q=j.encode(q);q=q.replace(e,'&lt;span class=&quot;mceItemHiddenSpellWord&quot;&gt;$1&lt;/span&gt;$2');q=q.replace(g,'&lt;span class=&quot;mceItemHiddenSpellWord&quot;&gt;$1&lt;/span&gt;$2');j.replace(j.create(&quot;span&quot;,{&quot;class&quot;:&quot;mceItemHidden&quot;},q),r)}}});l.moveToBookmark(m)},_showMenu:function(g,i){var h=this,g=h.editor,d=h._menu,k,j=g.dom,f=j.getViewPort(g.getWin());if(!d){k=b.getPos(g.getContentAreaContainer());d=g.controlManager.createDropMenu(&quot;spellcheckermenu&quot;,{offset_x:k.x,offset_y:k.y,&quot;class&quot;:&quot;mceNoIcons&quot;});h._menu=d}if(j.hasClass(i.target,&quot;mceItemHiddenSpellWord&quot;)){d.removeAll();d.add({title:&quot;spellchecker.wait&quot;,&quot;class&quot;:&quot;mceMenuItemTitle&quot;}).setDisabled(1);h._sendRPC(&quot;getSuggestions&quot;,[h.selectedLang,j.decode(i.target.innerHTML)],function(e){d.removeAll();if(e.length&gt;0){d.add({title:&quot;spellchecker.sug&quot;,&quot;class&quot;:&quot;mceMenuItemTitle&quot;}).setDisabled(1);c(e,function(l){d.add({title:l,onclick:function(){j.replace(g.getDoc().createTextNode(l),i.target);h._checkDone()}})});d.addSeparator()}else{d.add({title:&quot;spellchecker.no_sug&quot;,&quot;class&quot;:&quot;mceMenuItemTitle&quot;}).setDisabled(1)}d.add({title:&quot;spellchecker.ignore_word&quot;,onclick:function(){j.remove(i.target,1);h._checkDone()}});d.add({title:&quot;spellchecker.ignore_words&quot;,onclick:function(){h._removeWords(j.decode(i.target.innerHTML));h._checkDone()}});d.update()});g.selection.select(i.target);k=j.getPos(i.target);d.showMenu(k.x,k.y+i.target.offsetHeight-f.y);return tinymce.dom.Event.cancel(i)}else{d.hideMenu()}},_checkDone:function(){var e=this,d=e.editor,g=d.dom,f;c(g.select(&quot;span&quot;),function(h){if(h&amp;&amp;g.hasClass(h,&quot;mceItemHiddenSpellWord&quot;)){f=true;return false}});if(!f){e._done()}},_done:function(){var d=this,e=d.active;if(d.active){d.active=0;d._removeWords();if(d._menu){d._menu.hideMenu()}if(e){d.editor.nodeChanged()}}},_sendRPC:function(e,h,d){var g=this,f=g.editor.getParam(&quot;spellchecker_rpc_url&quot;,&quot;{backend}&quot;);if(f==&quot;{backend}&quot;){g.editor.setProgressState(0);alert(&quot;Please specify: spellchecker_rpc_url&quot;);return}a.sendRPC({url:f,method:e,params:h,success:d,error:function(j,i){g.editor.setProgressState(0);g.editor.windowManager.alert(j.errstr||(&quot;Error response: &quot;+i.responseText))}})}});tinymce.PluginManager.add(&quot;spellchecker&quot;,tinymce.plugins.SpellcheckerPlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/spellchecker/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/spellchecker/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/spellchecker/img/wline.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/style/css/props.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.StylePlugin',{init:function(ed,url){ed.addCommand('mceStyleProps',function(){ed.windowManager.open({file:url+'/props.htm',width:480+parseInt(ed.getLang('style.delta_width',0)),height:320+parseInt(ed.getLang('style.delta_height',0)),inline:1},{plugin_url:url,style_text:ed.selection.getNode().style.cssText});});ed.addCommand('mceSetElementStyle',function(ui,v){if(e=ed.selection.getNode()){ed.dom.setAttrib(e,'style',v);ed.execCommand('mceRepaint');}});ed.onNodeChange.add(function(ed,cm,n){cm.setDisabled('styleprops',n.nodeName==='BODY');});ed.addButton('styleprops',{title:'style.desc',cmd:'mceStyleProps'});},getInfo:function(){return{longname:'Style',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('style',tinymce.plugins.StylePlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.StylePlugin&quot;,{init:function(a,b){a.addCommand(&quot;mceStyleProps&quot;,function(){a.windowManager.open({file:b+&quot;/props.htm&quot;,width:480+parseInt(a.getLang(&quot;style.delta_width&quot;,0)),height:320+parseInt(a.getLang(&quot;style.delta_height&quot;,0)),inline:1},{plugin_url:b,style_text:a.selection.getNode().style.cssText})});a.addCommand(&quot;mceSetElementStyle&quot;,function(d,c){if(e=a.selection.getNode()){a.dom.setAttrib(e,&quot;style&quot;,c);a.execCommand(&quot;mceRepaint&quot;)}});a.onNodeChange.add(function(d,c,f){c.setDisabled(&quot;styleprops&quot;,f.nodeName===&quot;BODY&quot;)});a.addButton(&quot;styleprops&quot;,{title:&quot;style.desc&quot;,cmd:&quot;mceStyleProps&quot;})},getInfo:function(){return{longname:&quot;Style&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;style&quot;,tinymce.plugins.StylePlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/style/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/style/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/style/js/props.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/style/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/form_utils.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/props.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/props.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 
 &lt;body id=&quot;styleprops&quot; style=&quot;display: none&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/style/props.htm</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/editable_selects.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/cell.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/cell.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;tablecell&quot; style=&quot;display: none&quot;&gt;
 	&lt;form onsubmit=&quot;updateAction();return false;&quot; action=&quot;#&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/table/cell.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/table/css/cell.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/table/css/row.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/table/css/table.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TablePlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;each([['table','table.desc','mceInsertTable',true],['delete_table','table.del','mceTableDelete'],['delete_col','table.delete_col_desc','mceTableDeleteCol'],['delete_row','table.delete_row_desc','mceTableDeleteRow'],['col_after','table.col_after_desc','mceTableInsertColAfter'],['col_before','table.col_before_desc','mceTableInsertColBefore'],['row_after','table.row_after_desc','mceTableInsertRowAfter'],['row_before','table.row_before_desc','mceTableInsertRowBefore'],['row_props','table.row_desc','mceTableRowProps',true],['cell_props','table.cell_desc','mceTableCellProps',true],['split_cells','table.split_cells_desc','mceTableSplitCells',true],['merge_cells','table.merge_cells_desc','mceTableMergeCells',true]],function(c){ed.addButton(c[0],{title:c[1],cmd:c[2],ui:c[3]});});ed.onInit.add(function(){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();if(ed.dom.getParent(e,'td')||ed.dom.getParent(e,'th')){m.removeAll();if(el.nodeName=='A'&amp;&amp;!ed.dom.getAttrib(el,'name')){m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});m.addSeparator();}if(el.nodeName=='IMG'&amp;&amp;el.className.indexOf('mceItem')==-1){m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();}m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true,value:{action:'insert'}});m.add({title:'table.props_desc',icon:'table_props',cmd:'mceInsertTable',ui:true});m.add({title:'table.del',icon:'delete_table',cmd:'mceTableDelete',ui:true});m.addSeparator();sm=m.addMenu({title:'table.cell'});sm.add({title:'table.cell_desc',icon:'cell_props',cmd:'mceTableCellProps',ui:true});sm.add({title:'table.split_cells_desc',icon:'split_cells',cmd:'mceTableSplitCells',ui:true});sm.add({title:'table.merge_cells_desc',icon:'merge_cells',cmd:'mceTableMergeCells',ui:true});sm=m.addMenu({title:'table.row'});sm.add({title:'table.row_desc',icon:'row_props',cmd:'mceTableRowProps',ui:true});sm.add({title:'table.row_before_desc',icon:'row_before',cmd:'mceTableInsertRowBefore'});sm.add({title:'table.row_after_desc',icon:'row_after',cmd:'mceTableInsertRowAfter'});sm.add({title:'table.delete_row_desc',icon:'delete_row',cmd:'mceTableDeleteRow'});sm.addSeparator();sm.add({title:'table.cut_row_desc',icon:'cut',cmd:'mceTableCutRow'});sm.add({title:'table.copy_row_desc',icon:'copy',cmd:'mceTableCopyRow'});sm.add({title:'table.paste_row_before_desc',icon:'paste',cmd:'mceTablePasteRowBefore'});sm.add({title:'table.paste_row_after_desc',icon:'paste',cmd:'mceTablePasteRowAfter'});sm=m.addMenu({title:'table.col'});sm.add({title:'table.col_before_desc',icon:'col_before',cmd:'mceTableInsertColBefore'});sm.add({title:'table.col_after_desc',icon:'col_after',cmd:'mceTableInsertColAfter'});sm.add({title:'table.delete_col_desc',icon:'delete_col',cmd:'mceTableDeleteCol'});}else m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true});});}});ed.onKeyDown.add(function(ed,e){if(e.keyCode==9&amp;&amp;ed.dom.getParent(ed.selection.getNode(),'TABLE')){if(!tinymce.isGecko&amp;&amp;!tinymce.isOpera){tinyMCE.execInstanceCommand(ed.editorId,&quot;mceTableMoveToNextRow&quot;,true);return tinymce.dom.Event.cancel(e);}ed.undoManager.add();}});if(!tinymce.isIE){if(ed.getParam('table_selection',true)){ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='TABLE')ed.selection.select(e);});}}ed.onNodeChange.add(function(ed,cm,n){var p=ed.dom.getParent(n,'td,th,caption');cm.setActive('table',n.nodeName==='TABLE'||!!p);if(p&amp;&amp;p.nodeName==='CAPTION')p=null;cm.setDisabled('delete_table',!p);cm.setDisabled('delete_col',!p);cm.setDisabled('delete_table',!p);cm.setDisabled('delete_row',!p);cm.setDisabled('col_after',!p);cm.setDisabled('col_before',!p);cm.setDisabled('row_after',!p);cm.setDisabled('row_before',!p);cm.setDisabled('row_props',!p);cm.setDisabled('cell_props',!p);cm.setDisabled('split_cells',!p||(parseInt(ed.dom.getAttrib(p,'colspan','1'))&lt;2&amp;&amp;parseInt(ed.dom.getAttrib(p,'rowspan','1'))&lt;2));cm.setDisabled('merge_cells',!p);});if(!tinymce.isIE){ed.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/&lt;(td|th)([^&gt;]+|)&gt;\s*&lt;\/(td|th)&gt;/g,tinymce.isOpera?'&lt;$1$2&gt;&amp;nbsp;&lt;/$1&gt;':'&lt;$1$2&gt;&lt;br mce_bogus=&quot;1&quot; /&gt;&lt;/$1&gt;');});}},execCommand:function(cmd,ui,val){var ed=this.editor,b;switch(cmd){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;:ed.execCommand('mceBeginUndoLevel');this._doExecCommand(cmd,ui,val);ed.execCommand('mceEndUndoLevel');return true;}return false;},getInfo:function(){return{longname:'Tables',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_doExecCommand:function(command,user_interface,value){var inst=this.editor,ed=inst,url=this.url;var focusElm=inst.selection.getNode();var trElm=inst.dom.getParent(focusElm,&quot;tr&quot;);var tdElm=inst.dom.getParent(focusElm,&quot;td,th&quot;);var tableElm=inst.dom.getParent(focusElm,&quot;table&quot;);var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute(&quot;border&quot;):&quot;&quot;;if(trElm&amp;&amp;tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i&lt;ar.length;i++){if(ar[i].length&gt;0&amp;&amp;inArray(ar[i],v))return true;if(ar[i]==v)return true;}return false;}function select(dx,dy){var td;grid=getTableGrid(tableElm);dx=dx||0;dy=dy||0;dx=Math.max(cpos.cellindex+dx,0);dy=Math.max(cpos.rowindex+dy,0);inst.execCommand('mceRepaint');td=getCell(grid,dy,dx);if(td){inst.selection.select(td.firstChild||td);inst.selection.collapse(1);}};function makeTD(){var newTD=doc.createElement(&quot;td&quot;);if(!tinymce.isIE)newTD.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;';}function getColRowSpan(td){var colspan=inst.dom.getAttrib(td,&quot;colspan&quot;);var rowspan=inst.dom.getAttrib(td,&quot;rowspan&quot;);colspan=colspan==&quot;&quot;?1:parseInt(colspan);rowspan=rowspan==&quot;&quot;?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan};}function getCellPos(grid,td){var x,y;for(y=0;y&lt;grid.length;y++){for(x=0;x&lt;grid[y].length;x++){if(grid[y][x]==td)return{cellindex:x,rowindex:y};}}return null;}function getCell(grid,row,col){if(grid[row]&amp;&amp;grid[row][col])return grid[row][col];return null;}function getNextCell(table,cell){var cells=[],x=0,i,j,cell,nextCell;for(i=0;i&lt;table.rows.length;i++)for(j=0;j&lt;table.rows[i].cells.length;j++,x++)cells[x]=table.rows[i].cells[j];for(i=0;i&lt;cells.length;i++)if(cells[i]==cell)if(nextCell=cells[i+1])return nextCell;}function getTableGrid(table){var grid=[],rows=table.rows,x,y,td,sd,xstart,x2,y2;for(y=0;y&lt;rows.length;y++){for(x=0;x&lt;rows[y].cells.length;x++){td=rows[y].cells[x];sd=getColRowSpan(td);for(xstart=x;grid[y]&amp;&amp;grid[y][xstart];xstart++);for(y2=y;y2&lt;y+sd['rowspan'];y2++){if(!grid[y2])grid[y2]=[];for(x2=xstart;x2&lt;xstart+sd['colspan'];x2++)grid[y2][x2]=td;}}}return grid;}function trimRow(table,tr,td,new_tr){var grid=getTableGrid(table),cpos=getCellPos(grid,td);var cells,lastElm;if(new_tr.cells.length!=tr.childNodes.length){cells=tr.childNodes;lastElm=null;for(var x=0;td=getCell(grid,cpos.rowindex,x);x++){var remove=true;var sd=getColRowSpan(td);if(inArray(cells,td)){new_tr.childNodes[x]._delete=true;}else if((lastElm==null||td!=lastElm)&amp;&amp;sd.colspan&gt;1){for(var i=x;i&lt;x+td.colSpan;i++)new_tr.childNodes[i]._delete=true;}if((lastElm==null||td!=lastElm)&amp;&amp;sd.rowspan&gt;1)td.rowSpan=sd.rowspan+1;lastElm=td;}deleteMarked(tableElm);}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node;}return null;}function nextElm(node,names){var namesAr=names.split(',');while((node=node.nextSibling)!=null){for(var i=0;i&lt;namesAr.length;i++){if(node.nodeName.toLowerCase()==namesAr[i].toLowerCase())return node;}}return null;}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,&quot;TR&quot;);if(tr._delete){tr.parentNode.removeChild(tr);continue;}var td=tr.cells[0];if(td.cells&gt;1){do{var nexttd=nextElm(td,&quot;TD,TH&quot;);if(td._delete)td.parentNode.removeChild(td);}while((td=nexttd)!=null);}}while((tr=next)!=null);}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,&quot;TR&quot;);for(var i=1;i&lt;rowspan&amp;&amp;trNext;i++){var newTD=doc.createElement(&quot;td&quot;);if(!tinymce.isIE)newTD.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;';if(tinymce.isIE)trNext.insertBefore(newTD,trNext.cells(td_elm.cellIndex));else trNext.insertBefore(newTD,trNext.cells[td_elm.cellIndex]);trNext=nextElm(trNext,&quot;TR&quot;);}}function copyRow(doc,table,tr){var grid=getTableGrid(table);var newTR=tr.cloneNode(false);var cpos=getCellPos(grid,tr.cells[0]);var lastCell=null;var tableBorder=inst.dom.getAttrib(table,&quot;border&quot;);var tdElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){var newTD=null;if(lastCell!=tdElm){for(var i=0;i&lt;tr.cells.length;i++){if(tdElm==tr.cells[i]){newTD=tdElm.cloneNode(true);break;}}}if(newTD==null){newTD=doc.createElement(&quot;td&quot;);if(!tinymce.isIE)newTD.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;';}newTD.colSpan=1;newTD.rowSpan=1;newTR.appendChild(newTD);lastCell=tdElm;}return newTR;}switch(command){case&quot;mceTableMoveToNextRow&quot;:var nextCell=getNextCell(tableElm,tdElm);if(!nextCell){inst.execCommand(&quot;mceTableInsertRowAfter&quot;,tdElm);nextCell=getNextCell(tableElm,tdElm);}inst.selection.select(nextCell);inst.selection.collapse(true);return true;case&quot;mceTableRowProps&quot;:if(trElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/row.htm',width:400+parseInt(inst.getLang('table.rowprops_delta_width',0)),height:295+parseInt(inst.getLang('table.rowprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case&quot;mceTableCellProps&quot;:if(tdElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/cell.htm',width:400+parseInt(inst.getLang('table.cellprops_delta_width',0)),height:295+parseInt(inst.getLang('table.cellprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case&quot;mceInsertTable&quot;:if(user_interface){inst.windowManager.open({url:url+'/table.htm',width:400+parseInt(inst.getLang('table.table_delta_width',0)),height:320+parseInt(inst.getLang('table.table_delta_height',0)),inline:1},{plugin_url:url,action:value?value.action:0});}return true;case&quot;mceTableDelete&quot;:var table=inst.dom.getParent(inst.selection.getNode(),&quot;table&quot;);if(table){table.parentNode.removeChild(table);inst.execCommand('mceRepaint');}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(!tableElm)return true;if(trElm&amp;&amp;tableElm!=trElm.parentNode)tableElm=trElm.parentNode;if(tableElm&amp;&amp;trElm){switch(command){case&quot;mceTableCutRow&quot;:if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);inst.execCommand(&quot;mceTableDeleteRow&quot;);break;case&quot;mceTableCopyRow&quot;:if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);break;case&quot;mceTablePasteRowBefore&quot;:if(!trElm||!tdElm)return true;var newTR=inst.tableRowClipboard.cloneNode(true);var prevTR=prevElm(trElm,&quot;TR&quot;);if(prevTR!=null)trimRow(tableElm,prevTR,prevTR.cells[0],newTR);trElm.parentNode.insertBefore(newTR,trElm);break;case&quot;mceTablePasteRowAfter&quot;:if(!trElm||!tdElm)return true;var nextTR=nextElm(trElm,&quot;TR&quot;);var newTR=inst.tableRowClipboard.cloneNode(true);trimRow(tableElm,trElm,tdElm,newTR);if(nextTR==null)trElm.parentNode.appendChild(newTR);else nextTR.parentNode.insertBefore(newTR,nextTR);break;case&quot;mceTableInsertRowBefore&quot;:if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement(&quot;tr&quot;);var lastTDElm=null;cpos.rowindex--;if(cpos.rowindex&lt;0)cpos.rowindex=0;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement(&quot;td&quot;);if(!tinymce.isIE)newTD.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}trElm.parentNode.insertBefore(newTR,trElm);select(0,1);break;case&quot;mceTableInsertRowAfter&quot;:if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement(&quot;tr&quot;);var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement(&quot;td&quot;);if(!tinymce.isIE)newTD.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}if(newTR.hasChildNodes()){var nextTR=nextElm(trElm,&quot;TR&quot;);if(nextTR)nextTR.parentNode.insertBefore(newTR,nextTR);else tableElm.appendChild(newTR);}select(0,1);break;case&quot;mceTableDeleteRow&quot;:if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);if(grid.length==1&amp;&amp;tableElm.nodeName=='TBODY'){inst.dom.remove(inst.dom.getParent(tableElm,&quot;table&quot;));return true;}var cells=trElm.cells;var nextTR=nextElm(trElm,&quot;TR&quot;);for(var x=0;x&lt;cells.length;x++){if(cells[x].rowSpan&gt;1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD);}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan&gt;1){tdElm.rowSpan=sd.rowspan-1;}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true;}lastTDElm=tdElm;}}deleteMarked(tableElm);select(0,-1);break;case&quot;mceTableInsertColBefore&quot;:if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;';newTD.rowSpan=tdElm.rowSpan;tdElm.parentNode.insertBefore(newTD,tdElm);}else tdElm.colSpan++;lastTDElm=tdElm;}}select();break;case&quot;mceTableInsertColAfter&quot;:if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;';newTD.rowSpan=tdElm.rowSpan;var nextTD=nextElm(tdElm,&quot;TD,TH&quot;);if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD);}else tdElm.colSpan++;lastTDElm=tdElm;}}select(1);break;case&quot;mceTableDeleteCol&quot;:if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if((grid.length&gt;1&amp;&amp;grid[0].length&lt;=1)&amp;&amp;tableElm.nodeName=='TBODY'){inst.dom.remove(inst.dom.getParent(tableElm,&quot;table&quot;));return true;}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']&gt;1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm);}lastTDElm=tdElm;}}select(-1);break;case&quot;mceTableSplitCells&quot;:if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata[&quot;colspan&quot;];var rowspan=spandata[&quot;rowspan&quot;];if(colspan&gt;1||rowspan&gt;1){tdElm.colSpan=1;for(var i=1;i&lt;colspan;i++){var newTD=doc.createElement(&quot;td&quot;);if(!tinymce.isIE)newTD.innerHTML='&lt;br mce_bogus=&quot;1&quot;/&gt;';trElm.insertBefore(newTD,nextElm(tdElm,&quot;TD,TH&quot;));if(rowspan&gt;1)addRows(newTD,trElm,rowspan);}addRows(tdElm,trElm,rowspan);}tableElm=inst.dom.getParent(inst.selection.getNode(),&quot;table&quot;);break;case&quot;mceTableMergeCells&quot;:var rows=[];var sel=inst.selection.getSel();var grid=getTableGrid(tableElm);if(tinymce.isIE||sel.rangeCount==1){if(user_interface){var sp=getColRowSpan(tdElm);inst.windowManager.open({url:url+'/merge_cells.htm',width:240+parseInt(inst.getLang('table.merge_cells_delta_width',0)),height:110+parseInt(inst.getLang('table.merge_cells_delta_height',0)),inline:1},{action:&quot;update&quot;,numcols:sp.colspan,numrows:sp.rowspan,plugin_url:url});return true;}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((&quot;&quot;+numRows)==&quot;NaN&quot;)numRows=1;if((&quot;&quot;+numCols)==&quot;NaN&quot;)numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y&lt;grid.length;y++){var rowCells=[];for(var x=cpos.cellindex;x&lt;grid[y].length;x++){var td=getCell(grid,y,x);if(td&amp;&amp;!inArray(rows,td)&amp;&amp;!inArray(rowCells,td)){var cp=getCellPos(grid,td);if(cp.cellindex&lt;cpos.cellindex+numCols&amp;&amp;cp.rowindex&lt;cpos.rowindex+numRows)rowCells[rowCells.length]=td;}}if(rowCells.length&gt;0)rows[rows.length]=rowCells;var td=getCell(grid,cpos.rowindex,cpos.cellindex);each(ed.dom.select('br',td),function(e,i){if(i&gt;0&amp;&amp;ed.dom.getAttrib('mce_bogus'))ed.dom.remove(e);});}}}else{var cells=[];var sel=inst.selection.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount&lt;2)return true;for(var i=0;i&lt;sel.rangeCount;i++){var rng=sel.getRangeAt(i);var tdElm=rng.startContainer.childNodes[rng.startOffset];if(!tdElm)break;if(tdElm.nodeName==&quot;TD&quot;||tdElm.nodeName==&quot;TH&quot;)cells[cells.length]=tdElm;}var tRows=tableElm.rows;for(var y=0;y&lt;tRows.length;y++){var rowCells=[];for(var x=0;x&lt;tRows[y].cells.length;x++){var td=tRows[y].cells[x];for(var i=0;i&lt;cells.length;i++){if(td==cells[i]){rowCells[rowCells.length]=td;}}}if(rowCells.length&gt;0)rows[rows.length]=rowCells;}var curRow=[];var lastTR=null;for(var y=0;y&lt;grid.length;y++){for(var x=0;x&lt;grid[y].length;x++){grid[y][x]._selected=false;for(var i=0;i&lt;cells.length;i++){if(grid[y][x]==cells[i]){if(x1==-1){x1=x;y1=y;}x2=x;y2=y;grid[y][x]._selected=true;}}}}for(var y=y1;y&lt;=y2;y++){for(var x=x1;x&lt;=x2;x++){if(!grid[y][x]._selected){alert(&quot;Invalid selection for merge.&quot;);return true;}}}}var rowSpan=1,colSpan=1;var lastRowSpan=-1;for(var y=0;y&lt;rows.length;y++){var rowColSpan=0;for(var x=0;x&lt;rows[y].length;x++){var sd=getColRowSpan(rows[y][x]);rowColSpan+=sd['colspan'];if(lastRowSpan!=-1&amp;&amp;sd['rowspan']!=lastRowSpan){alert(&quot;Invalid selection for merge.&quot;);return true;}lastRowSpan=sd['rowspan'];}if(rowColSpan&gt;colSpan)colSpan=rowColSpan;lastRowSpan=-1;}var lastColSpan=-1;for(var x=0;x&lt;rows[0].length;x++){var colRowSpan=0;for(var y=0;y&lt;rows.length;y++){var sd=getColRowSpan(rows[y][x]);colRowSpan+=sd['rowspan'];if(lastColSpan!=-1&amp;&amp;sd['colspan']!=lastColSpan){alert(&quot;Invalid selection for merge.&quot;);return true;}lastColSpan=sd['colspan'];}if(colRowSpan&gt;rowSpan)rowSpan=colRowSpan;lastColSpan=-1;}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y&lt;rows.length;y++){for(var x=0;x&lt;rows[y].length;x++){var html=rows[y][x].innerHTML;var chk=html.replace(/[ \t\r\n]/g,&quot;&quot;);if(chk!=&quot;&lt;br/&gt;&quot;&amp;&amp;chk!=&quot;&lt;br&gt;&quot;&amp;&amp;chk!='&lt;br mce_bogus=&quot;1&quot;/&gt;'&amp;&amp;(x+y&gt;0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&amp;&amp;!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&amp;&amp;cellElm.rowSpan&gt;1)cellElm.rowSpan--;lastCell=cellElm;}if(tdElm.rowSpan&gt;1)tdElm.rowSpan--;}}}}each(ed.dom.select('br',tdElm),function(e,i){if(i&gt;0&amp;&amp;ed.dom.getAttrib(e,'mce_bogus'))ed.dom.remove(e);});break;}tableElm=inst.dom.getParent(inst.selection.getNode(),&quot;table&quot;);inst.addVisual(tableElm);inst.nodeChanged();}return true;}return false;}});tinymce.PluginManager.add('table',tinymce.plugins.TablePlugin);})();
\ No newline at end of file
+(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</diff>
      <filename>lib/tiny_mce/plugins/table/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 853 2008-05-27 08:05:35Z spocke $
+ * $Id: editor_plugin_src.js 953 2008-11-04 10:16:50Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -33,6 +33,27 @@
 				ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]});
 			});
 
+			if (ed.getParam('inline_styles')) {
+				// Force move of attribs to styles in strict mode
+				ed.onPreProcess.add(function(ed, o) {
+					var dom = ed.dom;
+
+					each(dom.select('table', o.node), function(n) {
+						var v;
+
+						if (v = dom.getAttrib(n, 'width')) {
+							dom.setStyle(n, 'width', v);
+							dom.setAttrib(n, 'width');
+						}
+
+						if (v = dom.getAttrib(n, 'height')) {
+							dom.setStyle(n, 'height', v);
+							dom.setAttrib(n, 'height');
+						}
+					});
+				});
+			}
+
 			ed.onInit.add(function() {
 				if (ed &amp;&amp; ed.plugins.contextmenu) {
 					ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {
@@ -728,7 +749,7 @@
 								if (!trElm || !tdElm)
 									return true;
 
-								var grid = getTableGrid(tableElm);
+								var grid = getTableGrid(inst.dom.getParent(tableElm, &quot;table&quot;));
 								var cpos = getCellPos(grid, tdElm);
 								var lastTDElm = null;
 
@@ -759,7 +780,7 @@
 								if (!trElm || !tdElm)
 									return true;
 
-								var grid = getTableGrid(tableElm);
+								var grid = getTableGrid(inst.dom.getParent(tableElm, &quot;table&quot;));
 								var cpos = getCellPos(grid, tdElm);
 								var lastTDElm = null;
 </diff>
      <filename>lib/tiny_mce/plugins/table/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -73,14 +73,24 @@ function updateAction() {
 			var celltype = getSelectValue(formObj, 'celltype');
 			var scope = getSelectValue(formObj, 'scope');
 
-			if (ed.getParam(&quot;accessibility_warnings&quot;)) {
+			function doUpdate(s) {
+				if (s) {
+					updateCell(tdElm);
+
+					ed.addVisual();
+					ed.nodeChanged();
+					inst.execCommand('mceEndUndoLevel');
+					tinyMCEPopup.close();
+				}
+			};
+
+			if (ed.getParam(&quot;accessibility_warnings&quot;, 1)) {
 				if (celltype == &quot;th&quot; &amp;&amp; scope == &quot;&quot;)
-					var answer = confirm(ed.getLang('table_dlg.missing_scope', '', true));
+					tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);
 				else
-					var answer = true;
+					doUpdate(1);
 
-				if (!answer)
-					return;
+				return;
 			}
 
 			updateCell(tdElm);</diff>
      <filename>lib/tiny_mce/plugins/table/js/cell.js</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ function mergeCells() {
 	tinyMCEPopup.restoreSelection();
 
 	if (!AutoValidator.validate(f)) {
-		alert(tinyMCEPopup.getLang('invalid_data'));
+		tinyMCEPopup.alert(tinyMCEPopup.getLang('invalid_data'));
 		return false;
 	}
 </diff>
      <filename>lib/tiny_mce/plugins/table/js/merge_cells.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/table/js/row.js</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ function insertTable() {
 	tinyMCEPopup.restoreSelection();
 
 	if (!AutoValidator.validate(formObj)) {
-		alert(inst.getLang('invalid_data'));
+		tinyMCEPopup.alert(inst.getLang('invalid_data'));
 		return false;
 	}
 
@@ -46,13 +46,13 @@ function insertTable() {
 
 	// Validate table size
 	if (colLimit &amp;&amp; cols &gt; colLimit) {
-		inst.windowManager.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));
+		tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));
 		return false;
 	} else if (rowLimit &amp;&amp; rows &gt; rowLimit) {
-		inst.windowManager.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));
+		tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));
 		return false;
 	} else if (cellLimit &amp;&amp; cols * rows &gt; cellLimit) {
-		inst.windowManager.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));
+		tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));
 		return false;
 	}
 
@@ -87,7 +87,7 @@ function insertTable() {
 			elm.insertBefore(capEl, elm.firstChild);
 		}
 
-		if (width &amp;&amp; /(pt|em|cm)$/.test(width)) {
+		if (width &amp;&amp; inst.settings.inline_styles) {
 			dom.setStyle(elm, 'width', width);
 			dom.setAttrib(elm, 'width', '');
 		} else {
@@ -100,10 +100,13 @@ function insertTable() {
 		dom.setAttrib(elm, 'bgColor', '');
 		dom.setAttrib(elm, 'background', '');
 
-		if (height) {
+		if (height &amp;&amp; inst.settings.inline_styles) {
 			dom.setStyle(elm, 'height', height);
 			dom.setAttrib(elm, 'height', '');
-		}
+		} else {
+			dom.setAttrib(elm, 'height', height, true);
+			dom.setStyle(elm, 'height', '');
+ 		}
 
 		if (background != '')
 			elm.style.backgroundImage = &quot;url('&quot; + background + &quot;')&quot;;
@@ -149,7 +152,7 @@ function insertTable() {
 	html += makeAttrib('cellpadding', cellpadding);
 	html += makeAttrib('cellspacing', cellspacing);
 
-	if (width &amp;&amp; /(pt|em|cm)$/.test(width)) {
+	if (width &amp;&amp; inst.settings.inline_styles) {
 		if (style)
 			style += '; ';
 
@@ -200,7 +203,30 @@ function insertTable() {
 	html += &quot;&lt;/table&gt;&quot;;
 
 	inst.execCommand('mceBeginUndoLevel');
-	inst.execCommand('mceInsertContent', false, html);
+
+	// Move table
+	if (inst.settings.fix_table_elements) {
+		var bm = inst.selection.getBookmark(), patt = '';
+
+		inst.execCommand('mceInsertContent', false, '&lt;br class=&quot;_mce_marker&quot; /&gt;');
+
+		tinymce.each('h1,h2,h3,h4,h5,h6,p'.split(','), function(n) {
+			if (patt)
+				patt += ',';
+
+			patt += n + ' ._mce_marker';
+		});
+
+		tinymce.each(inst.dom.select(patt), function(n) {
+			inst.dom.split(inst.dom.getParent(n, 'h1,h2,h3,h4,h5,h6,p'), n);
+		});
+
+		dom.setOuterHTML(dom.select('._mce_marker')[0], html);
+
+		inst.selection.moveToBookmark(bm);
+	} else
+		inst.execCommand('mceInsertContent', false, html);
+
 	inst.addVisual();
 	inst.execCommand('mceEndUndoLevel');
 </diff>
      <filename>lib/tiny_mce/plugins/table/js/table.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/table/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -6,9 +6,8 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/mctabs.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/validate.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/merge_cells.js&quot;&gt;&lt;/script&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
-&lt;body style=&quot;margin: 8px&quot; style=&quot;display: none&quot;&gt;
+&lt;body style=&quot;margin: 8px&quot;&gt;
 &lt;form onsubmit=&quot;mergeCells();return false;&quot; action=&quot;#&quot;&gt;
 	&lt;fieldset&gt;
 		&lt;legend&gt;{#table_dlg.merge_cells_title}&lt;/legend&gt;</diff>
      <filename>lib/tiny_mce/plugins/table/merge_cells.htm</filename>
    </modified>
    <modified>
      <diff>@@ -8,10 +8,9 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/editable_selects.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/row.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/row.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;tablerow&quot; style=&quot;display: none&quot;&gt;
-	&lt;form onsubmit=&quot;updateAction();return false;&quot;&gt;
+	&lt;form onsubmit=&quot;updateAction();return false;&quot; action=&quot;#&quot;&gt;
 		&lt;div class=&quot;tabs&quot;&gt;
 			&lt;ul&gt;
 				&lt;li id=&quot;general_tab&quot; class=&quot;current&quot;&gt;&lt;span&gt;&lt;a href=&quot;javascript:mcTabs.displayTab('general_tab','general_panel');&quot; onmousedown=&quot;return false;&quot;&gt;{#table_dlg.general_tab}&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;</diff>
      <filename>lib/tiny_mce/plugins/table/row.htm</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/editable_selects.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/table.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/table.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;table&quot; style=&quot;display: none&quot;&gt;
 	&lt;form onsubmit=&quot;insertTable();return false;&quot; action=&quot;#&quot;&gt;
@@ -58,7 +57,7 @@
 								&lt;td&gt;&lt;label id=&quot;classlabel&quot; for=&quot;class&quot;&gt;{#class_name}&lt;/label&gt;&lt;/td&gt;
 								&lt;td colspan=&quot;3&quot;&gt;
 								 &lt;select id=&quot;class&quot; name=&quot;class&quot; class=&quot;mceEditableSelect&quot;&gt;
-									&lt;option value=&quot;&quot; selected&gt;{#not_set}&lt;/option&gt;
+									&lt;option value=&quot;&quot; selected=&quot;selected&quot;&gt;{#not_set}&lt;/option&gt;
 								 &lt;/select&gt;&lt;/td&gt;
 							  &lt;/tr&gt;
 							  &lt;tr&gt;</diff>
      <filename>lib/tiny_mce/plugins/table/table.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/template/blank.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/template/css/template.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TemplatePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceTemplate',function(ui){ed.windowManager.open({file:url+'/template.htm',width:ed.getParam('template_popup_width',750),height:ed.getParam('template_popup_height',600),inline:1},{plugin_url:url});});ed.addCommand('mceInsertTemplate',t._insertTemplate,t);ed.addButton('template',{title:'template.desc',cmd:'mceTemplate'});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;each(dom.select('div',o.node),function(e){if(dom.hasClass(e,'mceTmpl')){each(dom.select('*',e),function(e){if(dom.hasClass(e,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))e.innerHTML=t._getDateTime(new Date(),ed.getParam(&quot;template_mdate_format&quot;,ed.getLang(&quot;template.mdate_format&quot;)));});t._replaceVals(e);}});});},getInfo:function(){return{longname:'Template plugin',author:'Moxiecode Systems AB',authorurl:'http://www.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_insertTemplate:function(ui,v){var t=this,ed=t.editor,h,el,dom=ed.dom,sel=ed.selection.getContent();h=v.content;each(t.editor.getParam('template_replace_values'),function(v,k){if(typeof(v)!='function')h=h.replace(new RegExp('\\{\\$'+k+'\\}','g'),v);});el=dom.create('div',null,h);n=dom.select('.mceTmpl',el);if(n&amp;&amp;n.length&gt;0){el=dom.create('div',null);el.appendChild(n[0].cloneNode(true));}function hasClass(n,c){return new RegExp('\\b'+c+'\\b','g').test(n.className);};each(dom.select('*',el),function(n){if(hasClass(n,ed.getParam('template_cdate_classes','cdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam(&quot;template_cdate_format&quot;,ed.getLang(&quot;template.cdate_format&quot;)));if(hasClass(n,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam(&quot;template_mdate_format&quot;,ed.getLang(&quot;template.mdate_format&quot;)));if(hasClass(n,ed.getParam('template_selected_content_classes','selcontent').replace(/\s+/g,'|')))n.innerHTML=sel;});t._replaceVals(el);ed.execCommand('mceInsertContent',false,el.innerHTML);ed.addVisual();},_replaceVals:function(e){var dom=this.editor.dom,vl=this.editor.getParam('template_replace_values');each(dom.select('*',e),function(e){each(vl,function(v,k){if(dom.hasClass(e,k)){if(typeof(vl[k])=='function')vl[k](e);}});});},_getDateTime:function(d,fmt){if(!fmt)return&quot;&quot;;function addZeros(value,len){var i;value=&quot;&quot;+value;if(value.length&lt;len){for(i=0;i&lt;(len-value.length);i++)value=&quot;0&quot;+value;}return value;}fmt=fmt.replace(&quot;%D&quot;,&quot;%m/%d/%y&quot;);fmt=fmt.replace(&quot;%r&quot;,&quot;%I:%M:%S %p&quot;);fmt=fmt.replace(&quot;%Y&quot;,&quot;&quot;+d.getFullYear());fmt=fmt.replace(&quot;%y&quot;,&quot;&quot;+d.getYear());fmt=fmt.replace(&quot;%m&quot;,addZeros(d.getMonth()+1,2));fmt=fmt.replace(&quot;%d&quot;,addZeros(d.getDate(),2));fmt=fmt.replace(&quot;%H&quot;,&quot;&quot;+addZeros(d.getHours(),2));fmt=fmt.replace(&quot;%M&quot;,&quot;&quot;+addZeros(d.getMinutes(),2));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;%%&quot;,&quot;%&quot;);return fmt;}});tinymce.PluginManager.add('template',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;+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</diff>
      <filename>lib/tiny_mce/plugins/template/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/template/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/template/js/template.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/template/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,6 @@
 	&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/template.js&quot;&gt;&lt;/script&gt;
 	&lt;link href=&quot;css/template.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body onresize=&quot;TemplateDialog.resize();&quot;&gt; 
 	&lt;form onsubmit=&quot;TemplateDialog.insert();return false;&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/template/template.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.VisualChars',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceVisualChars',t._toggleVisualChars,t);ed.addButton('visualchars',{title:'visualchars.desc',cmd:'mceVisualChars'});ed.onBeforeGetContent.add(function(ed,o){if(t.state){t.state=true;t._toggleVisualChars();}});},getInfo:function(){return{longname:'Visual characters',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};},_toggleVisualChars:function(){var t=this,ed=t.editor,nl,i,h,d=ed.getDoc(),b=ed.getBody(),nv,s=ed.selection,bo;t.state=!t.state;ed.controlManager.setActive('visualchars',t.state);if(t.state){nl=[];tinymce.walk(b,function(n){if(n.nodeType==3&amp;&amp;n.nodeValue&amp;&amp;n.nodeValue.indexOf('\u00a0')!=-1)nl.push(n);},'childNodes');for(i=0;i&lt;nl.length;i++){nv=nl[i].nodeValue;nv=nv.replace(/(\u00a0+)/g,'&lt;span class=&quot;mceItemHidden mceVisualNbsp&quot;&gt;$1&lt;/span&gt;');nv=nv.replace(/\u00a0/g,'\u00b7');ed.dom.setOuterHTML(nl[i],nv,d);}}else{nl=tinymce.grep(ed.dom.select('span',b),function(n){return ed.dom.hasClass(n,'mceVisualNbsp');});for(i=0;i&lt;nl.length;i++)ed.dom.setOuterHTML(nl[i],nl[i].innerHTML.replace(/(&amp;middot;|\u00b7)/g,'&amp;nbsp;'),d);}}});tinymce.PluginManager.add('visualchars',tinymce.plugins.VisualChars);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.VisualChars&quot;,{init:function(a,b){var c=this;c.editor=a;a.addCommand(&quot;mceVisualChars&quot;,c._toggleVisualChars,c);a.addButton(&quot;visualchars&quot;,{title:&quot;visualchars.desc&quot;,cmd:&quot;mceVisualChars&quot;});a.onBeforeGetContent.add(function(d,e){if(c.state){c.state=true;c._toggleVisualChars()}})},getInfo:function(){return{longname:&quot;Visual characters&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},_toggleVisualChars:function(){var m=this,g=m.editor,a,e,f,k=g.getDoc(),l=g.getBody(),j,n=g.selection,c;m.state=!m.state;g.controlManager.setActive(&quot;visualchars&quot;,m.state);if(m.state){a=[];tinymce.walk(l,function(b){if(b.nodeType==3&amp;&amp;b.nodeValue&amp;&amp;b.nodeValue.indexOf(&quot;\u00a0&quot;)!=-1){a.push(b)}},&quot;childNodes&quot;);for(e=0;e&lt;a.length;e++){j=a[e].nodeValue;j=j.replace(/(\u00a0+)/g,'&lt;span class=&quot;mceItemHidden mceVisualNbsp&quot;&gt;$1&lt;/span&gt;');j=j.replace(/\u00a0/g,&quot;\u00b7&quot;);g.dom.setOuterHTML(a[e],j,k)}}else{a=tinymce.grep(g.dom.select(&quot;span&quot;,l),function(b){return g.dom.hasClass(b,&quot;mceVisualNbsp&quot;)});for(e=0;e&lt;a.length;e++){g.dom.setOuterHTML(a[e],a[e].innerHTML.replace(/(&amp;middot;|\u00b7)/g,&quot;&amp;nbsp;&quot;),k)}}}});tinymce.PluginManager.add(&quot;visualchars&quot;,tinymce.plugins.VisualChars)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/visualchars/editor_plugin.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/visualchars/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/element_common.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/abbr.js&quot;&gt;&lt;/script&gt;
 	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/popup.css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;insertAbbr();return false;&quot; action=&quot;#&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/abbr.htm</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/element_common.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/acronym.js&quot;&gt;&lt;/script&gt;
 	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/popup.css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;insertAcronym();return false;&quot; action=&quot;#&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/acronym.htm</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/form_utils.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/attributes.js&quot;&gt;&lt;/script&gt;
 	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/attributes.css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;insertAction();return false;&quot; action=&quot;#&quot;&gt;
@@ -36,12 +35,12 @@
 						&lt;td&gt;&lt;label id=&quot;classlabel&quot; for=&quot;classlist&quot;&gt;{#class_name}&lt;/label&gt;&lt;/td&gt;
 						&lt;td&gt;
 							&lt;select id=&quot;classlist&quot; name=&quot;classlist&quot; class=&quot;mceEditableSelect&quot;&gt;
-								&lt;option value=&quot;&quot; selected&gt;{#not_set}&lt;/option&gt;
+								&lt;option value=&quot;&quot; selected=&quot;selected&quot;&gt;{#not_set}&lt;/option&gt;
 							&lt;/select&gt;
 						&lt;/td&gt;
 					&lt;/tr&gt;
 					&lt;tr&gt;
-						&lt;td class=&quot;label&quot;&gt;&lt;label id=&quot;stylelabel&quot; for=&quot;class&quot;&gt;{#xhtmlxtras_dlg.attribute_label_style}&lt;/label&gt;:&lt;/td&gt; 
+						&lt;td class=&quot;label&quot;&gt;&lt;label id=&quot;stylelabel&quot; for=&quot;style&quot;&gt;{#xhtmlxtras_dlg.attribute_label_style}&lt;/label&gt;:&lt;/td&gt; 
 						&lt;td&gt;&lt;input id=&quot;style&quot; name=&quot;style&quot; type=&quot;text&quot; value=&quot;&quot; /&gt;&lt;/td&gt; 
 					&lt;/tr&gt;
 					&lt;tr&gt;</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/attributes.htm</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/element_common.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/cite.js&quot;&gt;&lt;/script&gt;
 	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/popup.css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;insertCite();return false;&quot; action=&quot;#&quot;&gt;</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/cite.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/css/attributes.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/css/popup.css</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/element_common.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/del.js&quot;&gt;&lt;/script&gt;
 	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/popup.css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;xhtmlxtrasins&quot; style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;insertDel();return false;&quot; action=&quot;#&quot;&gt;
@@ -31,7 +30,7 @@
 							&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
 								&lt;tr&gt; 
 									&lt;td&gt;&lt;input id=&quot;datetime&quot; name=&quot;datetime&quot; type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;19&quot; class=&quot;field mceFocus&quot; /&gt;&lt;/td&gt; 
-									&lt;td&gt;&lt;a href=&quot;javascript:insertDateTime('datetime');&quot; onmousedown=&quot;return false;&quot; class=&quot;browse&quot;&gt;&lt;span class=&quot;datetime&quot; alt=&quot;{#xhtmlxtras_dlg.insert_date}&quot; title=&quot;{#xhtmlxtras_dlg.insert_date}&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
+									&lt;td&gt;&lt;a href=&quot;javascript:insertDateTime('datetime');&quot; onmousedown=&quot;return false;&quot; class=&quot;browse&quot;&gt;&lt;span class=&quot;datetime&quot; title=&quot;{#xhtmlxtras_dlg.insert_date}&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
 								&lt;/tr&gt;
 							&lt;/table&gt;
 						&lt;/td&gt;</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/del.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){tinymce.create('tinymce.plugins.XHTMLXtrasPlugin',{init:function(ed,url){ed.addCommand('mceCite',function(){ed.windowManager.open({file:url+'/cite.htm',width:350+parseInt(ed.getLang('xhtmlxtras.cite_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.cite_delta_height',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAcronym',function(){ed.windowManager.open({file:url+'/acronym.htm',width:350+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAbbr',function(){ed.windowManager.open({file:url+'/abbr.htm',width:350+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceDel',function(){ed.windowManager.open({file:url+'/del.htm',width:340+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceIns',function(){ed.windowManager.open({file:url+'/ins.htm',width:340+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAttributes',function(){ed.windowManager.open({file:url+'/attributes.htm',width:380,height:370,inline:1},{plugin_url:url});});ed.addButton('cite',{title:'xhtmlxtras.cite_desc',cmd:'mceCite'});ed.addButton('acronym',{title:'xhtmlxtras.acronym_desc',cmd:'mceAcronym'});ed.addButton('abbr',{title:'xhtmlxtras.abbr_desc',cmd:'mceAbbr'});ed.addButton('del',{title:'xhtmlxtras.del_desc',cmd:'mceDel'});ed.addButton('ins',{title:'xhtmlxtras.ins_desc',cmd:'mceIns'});ed.addButton('attribs',{title:'xhtmlxtras.attribs_desc',cmd:'mceAttributes'});if(tinymce.isIE){function fix(ed,o){if(o.set){o.content=o.content.replace(/&lt;abbr([^&gt;]+)&gt;/gi,'&lt;html:abbr $1&gt;');o.content=o.content.replace(/&lt;\/abbr&gt;/gi,'&lt;/html:abbr&gt;');}};ed.onBeforeSetContent.add(fix);ed.onPostProcess.add(fix);}ed.onNodeChange.add(function(ed,cm,n,co){n=ed.dom.getParent(n,'CITE,ACRONYM,ABBR,DEL,INS');cm.setDisabled('cite',co);cm.setDisabled('acronym',co);cm.setDisabled('abbr',co);cm.setDisabled('del',co);cm.setDisabled('ins',co);cm.setDisabled('attribs',n&amp;&amp;n.nodeName=='BODY');if(n){cm.setDisabled(n.nodeName.toLowerCase(),0);cm.setActive(n.nodeName.toLowerCase(),1);}else{cm.setActive('cite',0);cm.setActive('acronym',0);cm.setActive('abbr',0);cm.setActive('del',0);cm.setActive('ins',0);}});},getInfo:function(){return{longname:'XHTML Xtras Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion};}});tinymce.PluginManager.add('xhtmlxtras',tinymce.plugins.XHTMLXtrasPlugin);})();
\ No newline at end of file
+(function(){tinymce.create(&quot;tinymce.plugins.XHTMLXtrasPlugin&quot;,{init:function(b,c){b.addCommand(&quot;mceCite&quot;,function(){b.windowManager.open({file:c+&quot;/cite.htm&quot;,width:350+parseInt(b.getLang(&quot;xhtmlxtras.cite_delta_width&quot;,0)),height:250+parseInt(b.getLang(&quot;xhtmlxtras.cite_delta_height&quot;,0)),inline:1},{plugin_url:c})});b.addCommand(&quot;mceAcronym&quot;,function(){b.windowManager.open({file:c+&quot;/acronym.htm&quot;,width:350+parseInt(b.getLang(&quot;xhtmlxtras.acronym_delta_width&quot;,0)),height:250+parseInt(b.getLang(&quot;xhtmlxtras.acronym_delta_width&quot;,0)),inline:1},{plugin_url:c})});b.addCommand(&quot;mceAbbr&quot;,function(){b.windowManager.open({file:c+&quot;/abbr.htm&quot;,width:350+parseInt(b.getLang(&quot;xhtmlxtras.abbr_delta_width&quot;,0)),height:250+parseInt(b.getLang(&quot;xhtmlxtras.abbr_delta_width&quot;,0)),inline:1},{plugin_url:c})});b.addCommand(&quot;mceDel&quot;,function(){b.windowManager.open({file:c+&quot;/del.htm&quot;,width:340+parseInt(b.getLang(&quot;xhtmlxtras.del_delta_width&quot;,0)),height:310+parseInt(b.getLang(&quot;xhtmlxtras.del_delta_width&quot;,0)),inline:1},{plugin_url:c})});b.addCommand(&quot;mceIns&quot;,function(){b.windowManager.open({file:c+&quot;/ins.htm&quot;,width:340+parseInt(b.getLang(&quot;xhtmlxtras.ins_delta_width&quot;,0)),height:310+parseInt(b.getLang(&quot;xhtmlxtras.ins_delta_width&quot;,0)),inline:1},{plugin_url:c})});b.addCommand(&quot;mceAttributes&quot;,function(){b.windowManager.open({file:c+&quot;/attributes.htm&quot;,width:380,height:370,inline:1},{plugin_url:c})});b.addButton(&quot;cite&quot;,{title:&quot;xhtmlxtras.cite_desc&quot;,cmd:&quot;mceCite&quot;});b.addButton(&quot;acronym&quot;,{title:&quot;xhtmlxtras.acronym_desc&quot;,cmd:&quot;mceAcronym&quot;});b.addButton(&quot;abbr&quot;,{title:&quot;xhtmlxtras.abbr_desc&quot;,cmd:&quot;mceAbbr&quot;});b.addButton(&quot;del&quot;,{title:&quot;xhtmlxtras.del_desc&quot;,cmd:&quot;mceDel&quot;});b.addButton(&quot;ins&quot;,{title:&quot;xhtmlxtras.ins_desc&quot;,cmd:&quot;mceIns&quot;});b.addButton(&quot;attribs&quot;,{title:&quot;xhtmlxtras.attribs_desc&quot;,cmd:&quot;mceAttributes&quot;});if(tinymce.isIE){function a(d,e){if(e.set){e.content=e.content.replace(/&lt;abbr([^&gt;]+)&gt;/gi,&quot;&lt;html:abbr $1&gt;&quot;);e.content=e.content.replace(/&lt;\/abbr&gt;/gi,&quot;&lt;/html:abbr&gt;&quot;)}}b.onBeforeSetContent.add(a);b.onPostProcess.add(a)}b.onNodeChange.add(function(e,d,g,f){g=e.dom.getParent(g,&quot;CITE,ACRONYM,ABBR,DEL,INS&quot;);d.setDisabled(&quot;cite&quot;,f);d.setDisabled(&quot;acronym&quot;,f);d.setDisabled(&quot;abbr&quot;,f);d.setDisabled(&quot;del&quot;,f);d.setDisabled(&quot;ins&quot;,f);d.setDisabled(&quot;attribs&quot;,g&amp;&amp;g.nodeName==&quot;BODY&quot;);d.setActive(&quot;cite&quot;,0);d.setActive(&quot;acronym&quot;,0);d.setActive(&quot;abbr&quot;,0);d.setActive(&quot;del&quot;,0);d.setActive(&quot;ins&quot;,0);if(g){do{d.setDisabled(g.nodeName.toLowerCase(),0);d.setActive(g.nodeName.toLowerCase(),1)}while(g=g.parentNode)}})},getInfo:function(){return{longname:&quot;XHTML Xtras Plugin&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,infourl:&quot;http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.PluginManager.add(&quot;xhtmlxtras&quot;,tinymce.plugins.XHTMLXtrasPlugin)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/editor_plugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -104,16 +104,18 @@
 				cm.setDisabled('del', co);
 				cm.setDisabled('ins', co);
 				cm.setDisabled('attribs', n &amp;&amp; n.nodeName == 'BODY');
+				cm.setActive('cite', 0);
+				cm.setActive('acronym', 0);
+				cm.setActive('abbr', 0);
+				cm.setActive('del', 0);
+				cm.setActive('ins', 0);
 
+				// Activate all
 				if (n) {
-					cm.setDisabled(n.nodeName.toLowerCase(), 0);
-					cm.setActive(n.nodeName.toLowerCase(), 1);
-				} else {
-					cm.setActive('cite', 0);
-					cm.setActive('acronym', 0);
-					cm.setActive('abbr', 0);
-					cm.setActive('del', 0);
-					cm.setActive('ins', 0);
+					do {
+						cm.setDisabled(n.nodeName.toLowerCase(), 0);
+						cm.setActive(n.nodeName.toLowerCase(), 1);
+					} while (n = n.parentNode);
 				}
 			});
 		},</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/element_common.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/ins.js&quot;&gt;&lt;/script&gt;
 	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/popup.css&quot; /&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;xhtmlxtrasins&quot; style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;insertIns();return false;&quot; action=&quot;#&quot;&gt;
@@ -31,7 +30,7 @@
 							&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
 								&lt;tr&gt; 
 									&lt;td&gt;&lt;input id=&quot;datetime&quot; name=&quot;datetime&quot; type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;19&quot; class=&quot;field mceFocus&quot; /&gt;&lt;/td&gt; 
-									&lt;td&gt;&lt;a href=&quot;javascript:insertDateTime('datetime');&quot; onmousedown=&quot;return false;&quot; class=&quot;browse&quot;&gt;&lt;span class=&quot;datetime&quot; alt=&quot;{#xhtmlxtras_dlg.insert_date}&quot; title=&quot;{#xhtmlxtras_dlg.insert_date}&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
+									&lt;td&gt;&lt;a href=&quot;javascript:insertDateTime('datetime');&quot; onmousedown=&quot;return false;&quot; class=&quot;browse&quot;&gt;&lt;span class=&quot;datetime&quot; title=&quot;{#xhtmlxtras_dlg.insert_date}&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
 								&lt;/tr&gt;
 							&lt;/table&gt;
 						&lt;/td&gt;</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/ins.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/js/abbr.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/js/acronym.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/js/attributes.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/js/cite.js</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,7 @@ function insertDel() {
 	if (elm == null) {
 		var s = SXE.inst.selection.getContent();
 		if(s.length &gt; 0) {
-			tinyMCEPopup.execCommand('mceInsertContent', false, '&lt;del id=&quot;#sxe_temp_del#&quot;&gt;' + s + '&lt;/del&gt;');
+			insertInlineElement('del');
 			var elementArray = tinymce.grep(SXE.inst.dom.select('del'), function(n) {return n.id == '#sxe_temp_del#';});
 			for (var i=0; i&lt;elementArray.length; i++) {
 				var elm = elementArray[i];
@@ -42,6 +42,16 @@ function insertDel() {
 	tinyMCEPopup.close();
 }
 
+function insertInlineElement(en) {
+	var ed = tinyMCEPopup.editor, dom = ed.dom;
+
+	ed.getDoc().execCommand('FontName', false, 'mceinline');
+	tinymce.each(dom.select(tinymce.isWebKit ? 'span' : 'font'), function(n) {
+		if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
+			dom.replace(dom.create(en), n, 1);
+	});
+}
+
 function removeDel() {
 	SXE.removeElement('del');
 	tinyMCEPopup.close();</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/js/del.js</filename>
    </modified>
    <modified>
      <diff>@@ -160,19 +160,19 @@ SXE.insertElement = function(element_name) {
 			if (tinymce.isIE &amp;&amp; element_name.indexOf('html:') == 0)
 				element_name = element_name.substring(5).toLowerCase();
 
-			h = '&lt;' + tagName + ' id=&quot;#sxe_temp_' + element_name + '#&quot;&gt;' + s + '&lt;/' + tagName + '&gt;';
-
-			tinyMCEPopup.execCommand('mceInsertContent', false, h);
-
-			var elementArray = tinymce.grep(SXE.inst.dom.select(element_name), function(n) {return n.id == '#sxe_temp_' + element_name + '#';});
+			insertInlineElement(element_name);
+			var elementArray = tinymce.grep(SXE.inst.dom.select(element_name));
 			for (var i=0; i&lt;elementArray.length; i++) {
 				var elm = elementArray[i];
 
-				elm.id = '';
-				elm.setAttribute('id', '');
-				elm.removeAttribute('id');
+				if (SXE.inst.dom.getAttrib(elm, '_mce_new')) {
+					elm.id = '';
+					elm.setAttribute('id', '');
+					elm.removeAttribute('id');
+					elm.removeAttribute('_mce_new');
 
-				setAllCommonAttribs(elm);
+					setAllCommonAttribs(elm);
+				}
 			}
 		}
 	} else {
@@ -218,4 +218,14 @@ SXE.removeClass = function(elm,cl) {
 SXE.addClass = function(elm,cl) {
 	if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += &quot; &quot; + cl : elm.className = cl;
 	return true;
-}
\ No newline at end of file
+}
+
+function insertInlineElement(en) {
+	var ed = tinyMCEPopup.editor, dom = ed.dom;
+
+	ed.getDoc().execCommand('FontName', false, 'mceinline');
+	tinymce.each(dom.select('span,font'), function(n) {
+		if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
+			dom.replace(dom.create(en, {_mce_new : 1}), n, 1);
+	});
+}</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/js/element_common.js</filename>
    </modified>
    <modified>
      <diff>@@ -26,7 +26,7 @@ function insertIns() {
 	if (elm == null) {
 		var s = SXE.inst.selection.getContent();
 		if(s.length &gt; 0) {
-			tinyMCEPopup.execCommand('mceInsertContent', false, '&lt;ins id=&quot;#sxe_temp_ins#&quot;&gt;' + s + '&lt;/ins&gt;');
+			insertInlineElement('INS');
 			var elementArray = tinymce.grep(SXE.inst.dom.select('ins'), function(n) {return n.id == '#sxe_temp_ins#';});
 			for (var i=0; i&lt;elementArray.length; i++) {
 				var elm = elementArray[i];
@@ -46,4 +46,14 @@ function removeIns() {
 	tinyMCEPopup.close();
 }
 
+function insertInlineElement(en) {
+	var ed = tinyMCEPopup.editor, dom = ed.dom;
+
+	ed.getDoc().execCommand('FontName', false, 'mceinline');
+	tinymce.each(dom.select(tinymce.isWebKit ? 'span' : 'font'), function(n) {
+		if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline')
+			dom.replace(dom.create(en), n, 1);
+	});
+}
+
 tinyMCEPopup.onInit.add(init);</diff>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/js/ins.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
+&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt; 
 &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
 &lt;head&gt;
 	&lt;title&gt;{#advanced_dlg.about_title}&lt;/title&gt;</diff>
      <filename>lib/tiny_mce/themes/advanced/about.htm</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,6 @@
 	&lt;title&gt;{#advanced_dlg.anchor_title}&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/anchor.js&quot;&gt;&lt;/script&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;AnchorDialog.update();return false;&quot; action=&quot;#&quot;&gt;
@@ -13,7 +12,7 @@
 			&lt;td colspan=&quot;2&quot; class=&quot;title&quot;&gt;{#advanced_dlg.anchor_title}&lt;/td&gt;
 		&lt;/tr&gt;
 		&lt;tr&gt;
-			&lt;td nowrap=&quot;nowrap&quot;&gt;{#advanced_dlg.anchor_name}:&lt;/td&gt;
+			&lt;td class=&quot;nowrap&quot;&gt;{#advanced_dlg.anchor_name}:&lt;/td&gt;
 			&lt;td&gt;&lt;input name=&quot;anchorName&quot; type=&quot;text&quot; class=&quot;mceFocus&quot; id=&quot;anchorName&quot; value=&quot;&quot; style=&quot;width: 200px&quot; /&gt;&lt;/td&gt;
 		&lt;/tr&gt;
 	&lt;/table&gt;</diff>
      <filename>lib/tiny_mce/themes/advanced/anchor.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,10 @@
-&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
+&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
 &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
 &lt;head&gt;
 	&lt;title&gt;{#advanced_dlg.charmap_title}&lt;/title&gt;
 	&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot; /&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/charmap.js&quot;&gt;&lt;/script&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;charmap&quot; style=&quot;display:none&quot;&gt;
 &lt;table align=&quot;center&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt;</diff>
      <filename>lib/tiny_mce/themes/advanced/charmap.htm</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,6 @@
 	&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;../../utils/mctabs.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/color_picker.js&quot;&gt;&lt;/script&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;colorpicker&quot; style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;insertAction();return false&quot; action=&quot;#&quot;&gt;
@@ -22,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; /&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>@@ -1 +1 @@
-(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,each=tinymce.each,Cookie=tinymce.util.Cookie,lastExtID,explode=tinymce.explode;tinymce.ThemeManager.requireLangPack('advanced');tinymce.create('tinymce.themes.AdvancedTheme',{controls:{bold:['bold_desc','Bold'],italic:['italic_desc','Italic'],underline:['underline_desc','Underline'],strikethrough:['striketrough_desc','Strikethrough'],justifyleft:['justifyleft_desc','JustifyLeft'],justifycenter:['justifycenter_desc','JustifyCenter'],justifyright:['justifyright_desc','JustifyRight'],justifyfull:['justifyfull_desc','JustifyFull'],bullist:['bullist_desc','InsertUnorderedList'],numlist:['numlist_desc','InsertOrderedList'],outdent:['outdent_desc','Outdent'],indent:['indent_desc','Indent'],cut:['cut_desc','Cut'],copy:['copy_desc','Copy'],paste:['paste_desc','Paste'],undo:['undo_desc','Undo'],redo:['redo_desc','Redo'],link:['link_desc','mceLink'],unlink:['unlink_desc','unlink'],image:['image_desc','mceImage'],cleanup:['cleanup_desc','mceCleanup'],help:['help_desc','mceHelp'],code:['code_desc','mceCodeEditor'],hr:['hr_desc','InsertHorizontalRule'],removeformat:['removeformat_desc','RemoveFormat'],sub:['sub_desc','subscript'],sup:['sup_desc','superscript'],forecolor:['forecolor_desc','ForeColor'],forecolorpicker:['forecolor_desc','mceForeColor'],backcolor:['backcolor_desc','HiliteColor'],backcolorpicker:['backcolor_desc','mceBackColor'],charmap:['charmap_desc','mceCharMap'],visualaid:['visualaid_desc','mceToggleVisualAid'],anchor:['anchor_desc','mceInsertAnchor'],newdocument:['newdocument_desc','mceNewDocument'],blockquote:['blockquote_desc','mceBlockQuote']},stateControls:['bold','italic','underline','strikethrough','bullist','numlist','justifyleft','justifycenter','justifyright','justifyfull','sub','sup','blockquote'],init:function(ed,url){var t=this,s,v;t.editor=ed;t.url=url;t.onResolveName=new tinymce.util.Dispatcher(this);t.settings=s=extend({theme_advanced_path:true,theme_advanced_toolbar_location:'bottom',theme_advanced_buttons1:&quot;bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect&quot;,theme_advanced_buttons2:&quot;bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code&quot;,theme_advanced_buttons3:&quot;hr,removeformat,visualaid,|,sub,sup,|,charmap&quot;,theme_advanced_blockformats:&quot;p,address,pre,h1,h2,h3,h4,h5,h6&quot;,theme_advanced_toolbar_align:&quot;center&quot;,theme_advanced_fonts:&quot;Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats&quot;,theme_advanced_font_sizes:&quot;1,2,3,4,5,6,7&quot;,theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1},ed.settings);if((v=s.theme_advanced_path_location)&amp;&amp;v!='none')s.theme_advanced_statusbar_location=s.theme_advanced_path_location;if(s.theme_advanced_statusbar_location=='none')s.theme_advanced_statusbar_location=0;ed.onInit.add(function(){ed.onNodeChange.add(t._nodeChanged,t);if(ed.settings.content_css!==false)ed.dom.loadCSS(ed.baseURI.toAbsolute(&quot;themes/advanced/skins/&quot;+ed.settings.skin+&quot;/content.css&quot;));});ed.onSetProgressState.add(function(ed,b,ti){var co,id=ed.id,tb;if(b){t.progressTimer=setTimeout(function(){co=ed.getContainer();co=co.insertBefore(DOM.create('DIV',{style:'position:relative'}),co.firstChild);tb=DOM.get(ed.id+'_tbl');DOM.add(co,'div',{id:id+'_blocker','class':'mceBlocker',style:{width:tb.clientWidth+2,height:tb.clientHeight+2}});DOM.add(co,'div',{id:id+'_progress','class':'mceProgress',style:{left:tb.clientWidth/ 2, top : tb.clientHeight /2}});},ti||0);}else{DOM.remove(id+'_blocker');DOM.remove(id+'_progress');clearTimeout(t.progressTimer);}});DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||&quot;themes/advanced/skins/&quot;+ed.settings.skin+&quot;/ui.css&quot;));if(s.skin_variant)DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||&quot;themes/advanced/skins/&quot;+ed.settings.skin+&quot;/ui_&quot;+s.skin_variant+&quot;.css&quot;));},createControl:function(n,cf){var cd,c;if(c=cf.createControl(n))return c;switch(n){case&quot;styleselect&quot;:return this._createStyleSelect();case&quot;formatselect&quot;:return this._createBlockFormats();case&quot;fontselect&quot;:return this._createFontSelect();case&quot;fontsizeselect&quot;:return this._createFontSizeSelect();case&quot;forecolor&quot;:return this._createForeColorMenu();case&quot;backcolor&quot;:return this._createBackColorMenu();}if((cd=this.controls[n]))return cf.createButton(n,{title:&quot;advanced.&quot;+cd[0],cmd:cd[1],ui:cd[2],value:cd[3]});},execCommand:function(cmd,ui,val){var f=this['_'+cmd];if(f){f.call(this,ui,val);return true;}return false;},_importClasses:function(e){var ed=this.editor,c=ed.controlManager.get('styleselect');if(c.getLength()==0){each(ed.dom.getClasses(),function(o){c.add(o['class'],o['class']);});}},_createStyleSelect:function(n){var t=this,ed=t.editor,cf=ed.controlManager,c=cf.createListBox('styleselect',{title:'advanced.style_select',onselect:function(v){if(c.selectedValue===v){ed.execCommand('mceSetStyleInfo',0,{command:'removeformat'});c.select();return false;}else ed.execCommand('mceSetCSSClass',0,v);}});if(c){each(ed.getParam('theme_advanced_styles','','hash'),function(v,k){if(v)c.add(t.editor.translate(k),v);});c.onPostRender.add(function(ed,n){Event.add(n.id+'_text','focus',t._importClasses,t);Event.add(n.id+'_text','mousedown',t._importClasses,t);});}return c;},_createFontSelect:function(){var c,t=this,ed=t.editor;c=ed.controlManager.createListBox('fontselect',{title:'advanced.fontdefault',cmd:'FontName'});if(c){each(ed.getParam('theme_advanced_fonts',t.settings.theme_advanced_fonts,'hash'),function(v,k){c.add(ed.translate(k),v,{style:v.indexOf('dings')==-1?'font-family:'+v:''});});}return c;},_createFontSizeSelect:function(){var t=this,ed=t.editor,c,lo=[&quot;1 (8 pt)&quot;,&quot;2 (10 pt)&quot;,&quot;3 (12 pt)&quot;,&quot;4 (14 pt)&quot;,&quot;5 (18 pt)&quot;,&quot;6 (24 pt)&quot;,&quot;7 (36 pt)&quot;],fz=[8,10,12,14,18,24,36];c=ed.controlManager.createListBox('fontsizeselect',{title:'advanced.font_size',cmd:'FontSize'});if(c){each(ed.getParam('theme_advanced_font_sizes',t.settings.theme_advanced_font_sizes,'hash'),function(v,k){c.add(k!=v?k:lo[parseInt(v)-1],v,{'style':'font-size:'+fz[v-1]+'pt','class':'mceFontSize'+v});});}return c;},_createBlockFormats:function(){var c,fmts={p:'advanced.paragraph',address:'advanced.address',pre:'advanced.pre',h1:'advanced.h1',h2:'advanced.h2',h3:'advanced.h3',h4:'advanced.h4',h5:'advanced.h5',h6:'advanced.h6',div:'advanced.div',blockquote:'advanced.blockquote',code:'advanced.code',dt:'advanced.dt',dd:'advanced.dd',samp:'advanced.samp'},t=this;c=t.editor.controlManager.createListBox('formatselect',{title:'advanced.block',cmd:'FormatBlock'});if(c){each(t.editor.getParam('theme_advanced_blockformats',t.settings.theme_advanced_blockformats,'hash'),function(v,k){c.add(t.editor.translate(k!=v?k:fmts[v]),v,{'class':'mce_formatPreview mce_'+v});});}return c;},_createForeColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_advanced_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_advanced_text_colors)o.colors=v;o.title='advanced.forecolor_desc';o.cmd='ForeColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('forecolor',o);return c;},_createBackColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_advanced_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_advanced_background_colors)o.colors=v;o.title='advanced.backcolor_desc';o.cmd='HiliteColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('backcolor',o);return c;},renderUI:function(o){var n,ic,tb,t=this,ed=t.editor,s=t.settings,sc,p,nl;n=p=DOM.create('span',{id:ed.id+'_parent','class':'mceEditor '+ed.settings.skin+'Skin'+(s.skin_variant?' '+ed.settings.skin+'Skin'+t._ufirst(s.skin_variant):'')});if(!DOM.boxModel)n=DOM.add(n,'div',{'class':'mceOldBoxModel'});n=sc=DOM.add(n,'table',{id:ed.id+'_tbl','class':'mceLayout',cellSpacing:0,cellPadding:0});n=tb=DOM.add(n,'tbody');switch((s.theme_advanced_layout_manager||'').toLowerCase()){case&quot;rowlayout&quot;:ic=t._rowLayout(s,tb,o);break;case&quot;customlayout&quot;:ic=ed.execCallback(&quot;theme_advanced_custom_layout&quot;,s,tb,o,p);break;default:ic=t._simpleLayout(s,tb,o,p);}n=o.targetNode;nl=DOM.stdMode?sc.getElementsByTagName('tr'):sc.rows;DOM.addClass(nl[0],'mceFirst');DOM.addClass(nl[nl.length-1],'mceLast');each(DOM.select('tr',tb),function(n){DOM.addClass(n.firstChild,'mceFirst');DOM.addClass(n.childNodes[n.childNodes.length-1],'mceLast');});if(DOM.get(s.theme_advanced_toolbar_container))DOM.get(s.theme_advanced_toolbar_container).appendChild(p);else DOM.insertAfter(p,n);Event.add(ed.id+'_path_row','click',function(e){e=e.target;if(e.nodeName=='A'){t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/,'$1'));return Event.cancel(e);}});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))Event.add(DOM.add(p,'a',{href:'#'},'&lt;!-- IE --&gt;'),'focus',function(){tinyMCE.get(ed.id).focus();});if(s.theme_advanced_toolbar_location=='external')o.deltaHeight=0;t.deltaHeight=o.deltaHeight;o.targetNode=null;return{iframeContainer:ic,editorContainer:ed.id+'_parent',sizeContainer:sc,deltaHeight:o.deltaHeight};},getInfo:function(){return{longname:'Advanced theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}},resizeBy:function(dw,dh){var e=DOM.get(this.editor.id+'_tbl');this.resizeTo(e.clientWidth+dw,e.clientHeight+dh);},resizeTo:function(w,h){var ed=this.editor,s=ed.settings,e=DOM.get(ed.id+'_tbl'),ifr=DOM.get(ed.id+'_ifr'),dh;w=Math.max(s.theme_advanced_resizing_min_width||100,w);h=Math.max(s.theme_advanced_resizing_min_height||100,h);w=Math.min(s.theme_advanced_resizing_max_width||0xFFFF,w);h=Math.min(s.theme_advanced_resizing_max_height||0xFFFF,h);dh=e.clientHeight-ifr.clientHeight;DOM.setStyle(ifr,'height',h-dh);DOM.setStyles(e,{width:w,height:h});},destroy:function(){var id=this.editor.id;Event.clear(id+'_resize');Event.clear(id+'_path_row');Event.clear(id+'_external_close');},_simpleLayout:function(s,tb,o,p){var t=this,ed=t.editor,lo=s.theme_advanced_toolbar_location,sl=s.theme_advanced_statusbar_location,n,ic,etb,c;if(lo=='top')t._addToolbars(tb,o);if(lo=='external'){n=c=DOM.create('div',{style:'position:relative'});n=DOM.add(n,'div',{id:ed.id+'_external','class':'mceExternalToolbar'});DOM.add(n,'a',{id:ed.id+'_external_close',href:'javascript:;','class':'mceExternalClose'});n=DOM.add(n,'table',{id:ed.id+'_tblext',cellSpacing:0,cellPadding:0});etb=DOM.add(n,'tbody');if(p.firstChild.className=='mceOldBoxModel')p.firstChild.appendChild(c);else p.insertBefore(c,p.firstChild);t._addToolbars(etb,o);ed.onMouseUp.add(function(){var e=DOM.get(ed.id+'_external');DOM.show(e);DOM.hide(lastExtID);var f=Event.add(ed.id+'_external_close','click',function(){DOM.hide(ed.id+'_external');Event.remove(ed.id+'_external_close','click',f);});DOM.show(e);DOM.setStyle(e,'top',0-DOM.getRect(ed.id+'_tblext').h-1);DOM.hide(e);DOM.show(e);e.style.filter='';lastExtID=ed.id+'_external';e=null;});}if(sl=='top')t._addStatusBar(tb,o);if(!s.theme_advanced_toolbar_container){n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});}if(lo=='bottom')t._addToolbars(tb,o);if(sl=='bottom')t._addStatusBar(tb,o);return ic;},_rowLayout:function(s,tb,o){var t=this,ed=t.editor,dc,da,cf=ed.controlManager,n,ic,to,a;dc=s.theme_advanced_containers_default_class||'';da=s.theme_advanced_containers_default_align||'center';each(explode(s.theme_advanced_containers||''),function(c,i){var v=s['theme_advanced_container_'+c]||'';switch(v.toLowerCase()){case'mceeditor':n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});break;case'mceelementpath':t._addStatusBar(tb,o);break;default:a=(s['theme_advanced_container_'+c+'_align']||da).toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(tb,'tr'),'td',{'class':'mceToolbar '+(s['theme_advanced_container_'+c+'_class']||dc)+' '+a||da});to=cf.createToolbar(&quot;toolbar&quot;+i);t._addControls(v,to);DOM.setHTML(n,to.renderHTML());o.deltaHeight-=s.theme_advanced_row_height;}});return ic;},_addControls:function(v,tb){var t=this,s=t.settings,di,cf=t.editor.controlManager;if(s.theme_advanced_disable&amp;&amp;!t._disabled){di={};each(explode(s.theme_advanced_disable),function(v){di[v]=1;});t._disabled=di;}else di=t._disabled;each(explode(v),function(n){var c;if(di&amp;&amp;di[n])return;if(n=='tablecontrols'){each([&quot;table&quot;,&quot;|&quot;,&quot;row_props&quot;,&quot;cell_props&quot;,&quot;|&quot;,&quot;row_before&quot;,&quot;row_after&quot;,&quot;delete_row&quot;,&quot;|&quot;,&quot;col_before&quot;,&quot;col_after&quot;,&quot;delete_col&quot;,&quot;|&quot;,&quot;split_cells&quot;,&quot;merge_cells&quot;],function(n){n=t.createControl(n,cf);if(n)tb.add(n);});return;}c=t.createControl(n,cf);if(c)tb.add(c);});},_addToolbars:function(c,o){var t=this,i,tb,ed=t.editor,s=t.settings,v,cf=ed.controlManager,di,n,h=[],a;a=s.theme_advanced_toolbar_align.toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(c,'tr'),'td',{'class':'mceToolbar '+a});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))h.push(DOM.createHTML('a',{href:'#',onfocus:'tinyMCE.get(\''+ed.id+'\').focus();'},'&lt;!-- IE --&gt;'));h.push(DOM.createHTML('a',{href:'#',accesskey:'q',title:ed.getLang(&quot;advanced.toolbar_focus&quot;)},'&lt;!-- IE --&gt;'));for(i=1;(v=s['theme_advanced_buttons'+i]);i++){tb=cf.createToolbar(&quot;toolbar&quot;+i,{'class':'mceToolbarRow'+i});if(s['theme_advanced_buttons'+i+'_add'])v+=','+s['theme_advanced_buttons'+i+'_add'];if(s['theme_advanced_buttons'+i+'_add_before'])v=s['theme_advanced_buttons'+i+'_add_before']+','+v;t._addControls(v,tb);h.push(tb.renderHTML());o.deltaHeight-=s.theme_advanced_row_height;}h.push(DOM.createHTML('a',{href:'#',accesskey:'z',title:ed.getLang(&quot;advanced.toolbar_focus&quot;),onfocus:'tinyMCE.getInstanceById(\''+ed.id+'\').focus();'},'&lt;!-- IE --&gt;'));DOM.setHTML(n,h.join(''));},_addStatusBar:function(tb,o){var n,t=this,ed=t.editor,s=t.settings,r,mf,me,td;n=DOM.add(tb,'tr');n=td=DOM.add(n,'td',{'class':'mceStatusbar'});n=DOM.add(n,'div',{id:ed.id+'_path_row'},s.theme_advanced_path?ed.translate('advanced.path')+': ':'&amp;nbsp;');DOM.add(n,'a',{href:'#',accesskey:'x'});if(s.theme_advanced_resizing&amp;&amp;!tinymce.isOldWebKit){DOM.add(td,'a',{id:ed.id+'_resize',href:'javascript:;',onclick:&quot;return false;&quot;,'class':'mceResize'});if(s.theme_advanced_resizing_use_cookie){ed.onPostRender.add(function(){var o=Cookie.getHash(&quot;TinyMCE_&quot;+ed.id+&quot;_size&quot;),c=DOM.get(ed.id+'_tbl');if(!o)return;if(s.theme_advanced_resize_horizontal)c.style.width=Math.max(10,o.cw)+'px';c.style.height=Math.max(10,o.ch)+'px';DOM.get(ed.id+'_ifr').style.height=Math.max(10,parseInt(o.ch)+t.deltaHeight)+'px';});}ed.onPostRender.add(function(){Event.add(ed.id+'_resize','mousedown',function(e){var c,p,w,h,n,pa;c=DOM.get(ed.id+'_tbl');w=c.clientWidth;h=c.clientHeight;miw=s.theme_advanced_resizing_min_width||100;mih=s.theme_advanced_resizing_min_height||100;maw=s.theme_advanced_resizing_max_width||0xFFFF;mah=s.theme_advanced_resizing_max_height||0xFFFF;p=DOM.add(DOM.get(ed.id+'_parent'),'div',{'class':'mcePlaceHolder'});DOM.setStyles(p,{width:w,height:h});DOM.hide(c);DOM.show(p);r={x:e.screenX,y:e.screenY,w:w,h:h,dx:null,dy:null};mf=Event.add(DOM.doc,'mousemove',function(e){var w,h;r.dx=e.screenX-r.x;r.dy=e.screenY-r.y;w=Math.max(miw,r.w+r.dx);h=Math.max(mih,r.h+r.dy);w=Math.min(maw,w);h=Math.min(mah,h);if(s.theme_advanced_resize_horizontal)p.style.width=w+'px';p.style.height=h+'px';return Event.cancel(e);});me=Event.add(DOM.doc,'mouseup',function(e){var ifr;Event.remove(DOM.doc,'mousemove',mf);Event.remove(DOM.doc,'mouseup',me);c.style.display='';DOM.remove(p);if(r.dx===null)return;ifr=DOM.get(ed.id+'_ifr');if(s.theme_advanced_resize_horizontal)c.style.width=Math.max(10,r.w+r.dx)+'px';c.style.height=Math.max(10,r.h+r.dy)+'px';ifr.style.height=Math.max(10,ifr.clientHeight+r.dy)+'px';if(s.theme_advanced_resizing_use_cookie){Cookie.setHash(&quot;TinyMCE_&quot;+ed.id+&quot;_size&quot;,{cw:r.w+r.dx,ch:r.h+r.dy});}});return Event.cancel(e);});});}o.deltaHeight-=21;n=tb=null;},_nodeChanged:function(ed,cm,n,co){var t=this,p,de=0,v,c,s=t.settings;tinymce.each(t.stateControls,function(c){cm.setActive(c,ed.queryCommandState(t.controls[c][1]));});cm.setActive('visualaid',ed.hasVisual);cm.setDisabled('undo',!ed.undoManager.hasUndo()&amp;&amp;!ed.typing);cm.setDisabled('redo',!ed.undoManager.hasRedo());cm.setDisabled('outdent',!ed.queryCommandState('Outdent'));p=DOM.getParent(n,'A');if(c=cm.get('link')){if(!p||!p.name){c.setDisabled(!p&amp;&amp;co);c.setActive(!!p);}}if(c=cm.get('unlink')){c.setDisabled(!p&amp;&amp;co);c.setActive(!!p&amp;&amp;!p.name);}if(c=cm.get('anchor')){c.setActive(!!p&amp;&amp;p.name);if(tinymce.isWebKit){p=DOM.getParent(n,'IMG');c.setActive(!!p&amp;&amp;DOM.getAttrib(p,'mce_name')=='a');}}p=DOM.getParent(n,'IMG');if(c=cm.get('image'))c.setActive(!!p&amp;&amp;n.className.indexOf('mceItem')==-1);if(c=cm.get('styleselect')){if(n.className){t._importClasses();c.select(n.className);}else c.select();}if(c=cm.get('formatselect')){p=DOM.getParent(n,DOM.isBlock);if(p)c.select(p.nodeName.toLowerCase());}if(c=cm.get('fontselect'))c.select(ed.queryCommandValue('FontName'));if(c=cm.get('fontsizeselect'))c.select(''+ed.queryCommandValue('FontSize'));if(s.theme_advanced_path&amp;&amp;s.theme_advanced_statusbar_location){p=DOM.get(ed.id+'_path')||DOM.add(ed.id+'_path_row','span',{id:ed.id+'_path'});DOM.setHTML(p,'');ed.dom.getParent(n,function(n){var na=n.nodeName.toLowerCase(),u,pi,ti='';if(n.nodeType!=1||(DOM.hasClass(n,'mceItemHidden')||DOM.hasClass(n,'mceItemRemoved')))return;if(v=DOM.getAttrib(n,'mce_name'))na=v;if(tinymce.isIE&amp;&amp;n.scopeName!=='HTML')na=n.scopeName+':'+na;na=na.replace(/mce\:/g,'');switch(na){case'b':na='strong';break;case'i':na='em';break;case'img':if(v=DOM.getAttrib(n,'src'))ti+='src: '+v+' ';break;case'a':if(v=DOM.getAttrib(n,'name')){ti+='name: '+v+' ';na+='#'+v;}if(v=DOM.getAttrib(n,'href'))ti+='href: '+v+' ';break;case'font':if(s.convert_fonts_to_spans)na='span';if(v=DOM.getAttrib(n,'face'))ti+='font: '+v+' ';if(v=DOM.getAttrib(n,'size'))ti+='size: '+v+' ';if(v=DOM.getAttrib(n,'color'))ti+='color: '+v+' ';break;case'span':if(v=DOM.getAttrib(n,'style'))ti+='style: '+v+' ';break;}if(v=DOM.getAttrib(n,'id'))ti+='id: '+v+' ';if(v=n.className){v=v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g,'');if(v&amp;&amp;v.indexOf('mceItem')==-1){ti+='class: '+v+' ';if(DOM.isBlock(n)||na=='img'||na=='span')na+='.'+v;}}na=na.replace(/(html:)/g,'');na={name:na,node:n,title:ti};t.onResolveName.dispatch(t,na);ti=na.title;na=na.name;pi=DOM.create('a',{'href':&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;,title:ti,'class':'mcePath_'+(de++)},na);if(p.hasChildNodes()){p.insertBefore(DOM.doc.createTextNode(' \u00bb '),p.firstChild);p.insertBefore(pi,p.firstChild);}else p.appendChild(pi);},ed.getBody());}},_sel:function(v){this.editor.execCommand('mceSelectNodeDepth',false,v);},_mceInsertAnchor:function(ui,v){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/anchor.htm',width:320+parseInt(ed.getLang('advanced.anchor_delta_width',0)),height:90+parseInt(ed.getLang('advanced.anchor_delta_height',0)),inline:true},{theme_url:this.url});},_mceCharMap:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/charmap.htm',width:550+parseInt(ed.getLang('advanced.charmap_delta_width',0)),height:250+parseInt(ed.getLang('advanced.charmap_delta_height',0)),inline:true},{theme_url:this.url});},_mceHelp:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/about.htm',width:480,height:380,inline:true},{theme_url:this.url});},_mceColorPicker:function(u,v){var ed=this.editor;v=v||{};ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/color_picker.htm',width:375+parseInt(ed.getLang('advanced.colorpicker_delta_width',0)),height:250+parseInt(ed.getLang('advanced.colorpicker_delta_height',0)),close_previous:false,inline:true},{input_color:v.color,func:v.func,theme_url:this.url});},_mceCodeEditor:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/source_editor.htm',width:parseInt(ed.getParam(&quot;theme_advanced_source_editor_width&quot;,720)),height:parseInt(ed.getParam(&quot;theme_advanced_source_editor_height&quot;,580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url});},_mceImage:function(ui,val){var ed=this.editor;if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/image.htm',width:355+parseInt(ed.getLang('advanced.image_delta_width',0)),height:275+parseInt(ed.getLang('advanced.image_delta_height',0)),inline:true},{theme_url:this.url});},_mceLink:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/link.htm',width:310+parseInt(ed.getLang('advanced.link_delta_width',0)),height:200+parseInt(ed.getLang('advanced.link_delta_height',0)),inline:true},{theme_url:this.url});},_mceNewDocument:function(){var ed=this.editor;ed.windowManager.confirm('advanced.newdocument',function(s){if(s)ed.execCommand('mceSetContent',false,'');});},_mceForeColor:function(){var t=this;this._mceColorPicker(0,{color:t.fgColor,func:function(co){t.fgColor=co;t.editor.execCommand('ForeColor',false,co);}});},_mceBackColor:function(){var t=this;this._mceColorPicker(0,{color:t.bgColor,func:function(co){t.bgColor=co;t.editor.execCommand('HiliteColor',false,co);}});},_ufirst:function(s){return s.substring(0,1).toUpperCase()+s.substring(1);}});tinymce.ThemeManager.add('advanced',tinymce.themes.AdvancedTheme);}());
\ No newline at end of file
+(function(e){var d=e.DOM,b=e.dom.Event,h=e.extend,f=e.each,a=e.util.Cookie,g,c=e.explode;e.ThemeManager.requireLangPack(&quot;advanced&quot;);e.create(&quot;tinymce.themes.AdvancedTheme&quot;,{sizes:[8,10,12,14,18,24,36],controls:{bold:[&quot;bold_desc&quot;,&quot;Bold&quot;],italic:[&quot;italic_desc&quot;,&quot;Italic&quot;],underline:[&quot;underline_desc&quot;,&quot;Underline&quot;],strikethrough:[&quot;striketrough_desc&quot;,&quot;Strikethrough&quot;],justifyleft:[&quot;justifyleft_desc&quot;,&quot;JustifyLeft&quot;],justifycenter:[&quot;justifycenter_desc&quot;,&quot;JustifyCenter&quot;],justifyright:[&quot;justifyright_desc&quot;,&quot;JustifyRight&quot;],justifyfull:[&quot;justifyfull_desc&quot;,&quot;JustifyFull&quot;],bullist:[&quot;bullist_desc&quot;,&quot;InsertUnorderedList&quot;],numlist:[&quot;numlist_desc&quot;,&quot;InsertOrderedList&quot;],outdent:[&quot;outdent_desc&quot;,&quot;Outdent&quot;],indent:[&quot;indent_desc&quot;,&quot;Indent&quot;],cut:[&quot;cut_desc&quot;,&quot;Cut&quot;],copy:[&quot;copy_desc&quot;,&quot;Copy&quot;],paste:[&quot;paste_desc&quot;,&quot;Paste&quot;],undo:[&quot;undo_desc&quot;,&quot;Undo&quot;],redo:[&quot;redo_desc&quot;,&quot;Redo&quot;],link:[&quot;link_desc&quot;,&quot;mceLink&quot;],unlink:[&quot;unlink_desc&quot;,&quot;unlink&quot;],image:[&quot;image_desc&quot;,&quot;mceImage&quot;],cleanup:[&quot;cleanup_desc&quot;,&quot;mceCleanup&quot;],help:[&quot;help_desc&quot;,&quot;mceHelp&quot;],code:[&quot;code_desc&quot;,&quot;mceCodeEditor&quot;],hr:[&quot;hr_desc&quot;,&quot;InsertHorizontalRule&quot;],removeformat:[&quot;removeformat_desc&quot;,&quot;RemoveFormat&quot;],sub:[&quot;sub_desc&quot;,&quot;subscript&quot;],sup:[&quot;sup_desc&quot;,&quot;superscript&quot;],forecolor:[&quot;forecolor_desc&quot;,&quot;ForeColor&quot;],forecolorpicker:[&quot;forecolor_desc&quot;,&quot;mceForeColor&quot;],backcolor:[&quot;backcolor_desc&quot;,&quot;HiliteColor&quot;],backcolorpicker:[&quot;backcolor_desc&quot;,&quot;mceBackColor&quot;],charmap:[&quot;charmap_desc&quot;,&quot;mceCharMap&quot;],visualaid:[&quot;visualaid_desc&quot;,&quot;mceToggleVisualAid&quot;],anchor:[&quot;anchor_desc&quot;,&quot;mceInsertAnchor&quot;],newdocument:[&quot;newdocument_desc&quot;,&quot;mceNewDocument&quot;],blockquote:[&quot;blockquote_desc&quot;,&quot;mceBlockQuote&quot;]},stateControls:[&quot;bold&quot;,&quot;italic&quot;,&quot;underline&quot;,&quot;strikethrough&quot;,&quot;bullist&quot;,&quot;numlist&quot;,&quot;justifyleft&quot;,&quot;justifycenter&quot;,&quot;justifyright&quot;,&quot;justifyfull&quot;,&quot;sub&quot;,&quot;sup&quot;,&quot;blockquote&quot;],init:function(j,k){var l=this,m,i,n;l.editor=j;l.url=k;l.onResolveName=new e.util.Dispatcher(this);l.settings=m=h({theme_advanced_path:true,theme_advanced_toolbar_location:&quot;bottom&quot;,theme_advanced_buttons1:&quot;bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect&quot;,theme_advanced_buttons2:&quot;bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code&quot;,theme_advanced_buttons3:&quot;hr,removeformat,visualaid,|,sub,sup,|,charmap&quot;,theme_advanced_blockformats:&quot;p,address,pre,h1,h2,h3,h4,h5,h6&quot;,theme_advanced_toolbar_align:&quot;center&quot;,theme_advanced_fonts:&quot;Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats&quot;,theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1,theme_advanced_font_sizes:&quot;1,2,3,4,5,6,7&quot;,readonly:j.settings.readonly},j.settings);if(!m.font_size_style_values){m.font_size_style_values=&quot;8pt,10pt,12pt,14pt,18pt,24pt,36pt&quot;}if(e.is(m.theme_advanced_font_sizes,&quot;string&quot;)){m.font_size_style_values=e.explode(m.font_size_style_values);m.font_size_classes=e.explode(m.font_size_classes||&quot;&quot;);n={};j.settings.theme_advanced_font_sizes=m.theme_advanced_font_sizes;f(j.getParam(&quot;theme_advanced_font_sizes&quot;,&quot;&quot;,&quot;hash&quot;),function(q,p){var o;if(p==q&amp;&amp;q&gt;=1&amp;&amp;q&lt;=7){p=q+&quot; (&quot;+l.sizes[q-1]+&quot;pt)&quot;;if(j.settings.convert_fonts_to_spans){o=m.font_size_classes[q-1];q=m.font_size_style_values[q-1]||(l.sizes[q-1]+&quot;pt&quot;)}}if(/^\s*\./.test(q)){o=q.replace(/\./g,&quot;&quot;)}n[p]=o?{&quot;class&quot;:o}:{fontSize:q}});m.theme_advanced_font_sizes=n}if((i=m.theme_advanced_path_location)&amp;&amp;i!=&quot;none&quot;){m.theme_advanced_statusbar_location=m.theme_advanced_path_location}if(m.theme_advanced_statusbar_location==&quot;none&quot;){m.theme_advanced_statusbar_location=0}j.onInit.add(function(){j.onNodeChange.add(l._nodeChanged,l);if(j.settings.content_css!==false){j.dom.loadCSS(j.baseURI.toAbsolute(&quot;themes/advanced/skins/&quot;+j.settings.skin+&quot;/content.css&quot;))}});j.onSetProgressState.add(function(q,o,r){var s,t=q.id,p;if(o){l.progressTimer=setTimeout(function(){s=q.getContainer();s=s.insertBefore(d.create(&quot;DIV&quot;,{style:&quot;position:relative&quot;}),s.firstChild);p=d.get(q.id+&quot;_tbl&quot;);d.add(s,&quot;div&quot;,{id:t+&quot;_blocker&quot;,&quot;class&quot;:&quot;mceBlocker&quot;,style:{width:p.clientWidth+2,height:p.clientHeight+2}});d.add(s,&quot;div&quot;,{id:t+&quot;_progress&quot;,&quot;class&quot;:&quot;mceProgress&quot;,style:{left:p.clientWidth/2,top:p.clientHeight/2}})},r||0)}else{d.remove(t+&quot;_blocker&quot;);d.remove(t+&quot;_progress&quot;);clearTimeout(l.progressTimer)}});d.loadCSS(m.editor_css?j.documentBaseURI.toAbsolute(m.editor_css):k+&quot;/skins/&quot;+j.settings.skin+&quot;/ui.css&quot;);if(m.skin_variant){d.loadCSS(k+&quot;/skins/&quot;+j.settings.skin+&quot;/ui_&quot;+m.skin_variant+&quot;.css&quot;)}},createControl:function(l,i){var j,k;if(k=i.createControl(l)){return k}switch(l){case&quot;styleselect&quot;:return this._createStyleSelect();case&quot;formatselect&quot;:return this._createBlockFormats();case&quot;fontselect&quot;:return this._createFontSelect();case&quot;fontsizeselect&quot;:return this._createFontSizeSelect();case&quot;forecolor&quot;:return this._createForeColorMenu();case&quot;backcolor&quot;:return this._createBackColorMenu()}if((j=this.controls[l])){return i.createButton(l,{title:&quot;advanced.&quot;+j[0],cmd:j[1],ui:j[2],value:j[3]})}},execCommand:function(k,j,l){var i=this[&quot;_&quot;+k];if(i){i.call(this,j,l);return true}return false},_importClasses:function(j){var i=this.editor,k=i.controlManager.get(&quot;styleselect&quot;);if(k.getLength()==0){f(i.dom.getClasses(),function(l){k.add(l[&quot;class&quot;],l[&quot;class&quot;])})}},_createStyleSelect:function(m){var j=this,i=j.editor,k=i.controlManager,l=k.createListBox(&quot;styleselect&quot;,{title:&quot;advanced.style_select&quot;,onselect:function(n){if(l.selectedValue===n){i.execCommand(&quot;mceSetStyleInfo&quot;,0,{command:&quot;removeformat&quot;});l.select();return false}else{i.execCommand(&quot;mceSetCSSClass&quot;,0,n)}}});if(l){f(i.getParam(&quot;theme_advanced_styles&quot;,&quot;&quot;,&quot;hash&quot;),function(o,n){if(o){l.add(j.editor.translate(n),o)}});l.onPostRender.add(function(o,p){if(!l.NativeListBox){b.add(p.id+&quot;_text&quot;,&quot;focus&quot;,j._importClasses,j);b.add(p.id+&quot;_text&quot;,&quot;mousedown&quot;,j._importClasses,j);b.add(p.id+&quot;_open&quot;,&quot;focus&quot;,j._importClasses,j);b.add(p.id+&quot;_open&quot;,&quot;mousedown&quot;,j._importClasses,j)}else{b.add(p.id,&quot;focus&quot;,j._importClasses,j)}})}return l},_createFontSelect:function(){var k,j=this,i=j.editor;k=i.controlManager.createListBox(&quot;fontselect&quot;,{title:&quot;advanced.fontdefault&quot;,cmd:&quot;FontName&quot;});if(k){f(i.getParam(&quot;theme_advanced_fonts&quot;,j.settings.theme_advanced_fonts,&quot;hash&quot;),function(m,l){k.add(i.translate(l),m,{style:m.indexOf(&quot;dings&quot;)==-1?&quot;font-family:&quot;+m:&quot;&quot;})})}return k},_createFontSizeSelect:function(){var m=this,k=m.editor,n,l=0,j=[];n=k.controlManager.createListBox(&quot;fontsizeselect&quot;,{title:&quot;advanced.font_size&quot;,onselect:function(i){if(i.fontSize){k.execCommand(&quot;FontSize&quot;,false,i.fontSize)}else{f(m.settings.theme_advanced_font_sizes,function(p,o){if(p[&quot;class&quot;]){j.push(p[&quot;class&quot;])}});k.editorCommands._applyInlineStyle(&quot;span&quot;,{&quot;class&quot;:i[&quot;class&quot;]},{check_classes:j})}}});if(n){f(m.settings.theme_advanced_font_sizes,function(o,i){var p=o.fontSize;if(p&gt;=1&amp;&amp;p&lt;=7){p=m.sizes[parseInt(p)-1]+&quot;pt&quot;}n.add(i,o,{style:&quot;font-size:&quot;+p,&quot;class&quot;:&quot;mceFontSize&quot;+(l++)+(&quot; &quot;+(o[&quot;class&quot;]||&quot;&quot;))})})}return n},_createBlockFormats:function(){var k,i={p:&quot;advanced.paragraph&quot;,address:&quot;advanced.address&quot;,pre:&quot;advanced.pre&quot;,h1:&quot;advanced.h1&quot;,h2:&quot;advanced.h2&quot;,h3:&quot;advanced.h3&quot;,h4:&quot;advanced.h4&quot;,h5:&quot;advanced.h5&quot;,h6:&quot;advanced.h6&quot;,div:&quot;advanced.div&quot;,blockquote:&quot;advanced.blockquote&quot;,code:&quot;advanced.code&quot;,dt:&quot;advanced.dt&quot;,dd:&quot;advanced.dd&quot;,samp:&quot;advanced.samp&quot;},j=this;k=j.editor.controlManager.createListBox(&quot;formatselect&quot;,{title:&quot;advanced.block&quot;,cmd:&quot;FormatBlock&quot;});if(k){f(j.editor.getParam(&quot;theme_advanced_blockformats&quot;,j.settings.theme_advanced_blockformats,&quot;hash&quot;),function(m,l){k.add(j.editor.translate(l!=m?l:i[m]),m,{&quot;class&quot;:&quot;mce_formatPreview mce_&quot;+m})})}return k},_createForeColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_text_colors){l.colors=i}if(k.theme_advanced_default_foreground_color){l.default_color=k.theme_advanced_default_foreground_color}l.title=&quot;advanced.forecolor_desc&quot;;l.cmd=&quot;ForeColor&quot;;l.scope=this;m=j.editor.controlManager.createColorSplitButton(&quot;forecolor&quot;,l);return m},_createBackColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_background_colors){l.colors=i}if(k.theme_advanced_default_background_color){l.default_color=k.theme_advanced_default_background_color}l.title=&quot;advanced.backcolor_desc&quot;;l.cmd=&quot;HiliteColor&quot;;l.scope=this;m=j.editor.controlManager.createColorSplitButton(&quot;backcolor&quot;,l);return m},renderUI:function(k){var m,l,q,v=this,r=v.editor,w=v.settings,u,j,i;m=j=d.create(&quot;span&quot;,{id:r.id+&quot;_parent&quot;,&quot;class&quot;:&quot;mceEditor &quot;+r.settings.skin+&quot;Skin&quot;+(w.skin_variant?&quot; &quot;+r.settings.skin+&quot;Skin&quot;+v._ufirst(w.skin_variant):&quot;&quot;)});if(!d.boxModel){m=d.add(m,&quot;div&quot;,{&quot;class&quot;:&quot;mceOldBoxModel&quot;})}m=u=d.add(m,&quot;table&quot;,{id:r.id+&quot;_tbl&quot;,&quot;class&quot;:&quot;mceLayout&quot;,cellSpacing:0,cellPadding:0});m=q=d.add(m,&quot;tbody&quot;);switch((w.theme_advanced_layout_manager||&quot;&quot;).toLowerCase()){case&quot;rowlayout&quot;:l=v._rowLayout(w,q,k);break;case&quot;customlayout&quot;:l=r.execCallback(&quot;theme_advanced_custom_layout&quot;,w,q,k,j);break;default:l=v._simpleLayout(w,q,k,j)}m=k.targetNode;i=d.stdMode?u.getElementsByTagName(&quot;tr&quot;):u.rows;d.addClass(i[0],&quot;mceFirst&quot;);d.addClass(i[i.length-1],&quot;mceLast&quot;);f(d.select(&quot;tr&quot;,q),function(o){d.addClass(o.firstChild,&quot;mceFirst&quot;);d.addClass(o.childNodes[o.childNodes.length-1],&quot;mceLast&quot;)});if(d.get(w.theme_advanced_toolbar_container)){d.get(w.theme_advanced_toolbar_container).appendChild(j)}else{d.insertAfter(j,m)}b.add(r.id+&quot;_path_row&quot;,&quot;click&quot;,function(n){n=n.target;if(n.nodeName==&quot;A&quot;){v._sel(n.className.replace(/^.*mcePath_([0-9]+).*$/,&quot;$1&quot;));return b.cancel(n)}});if(!r.getParam(&quot;accessibility_focus&quot;)){b.add(d.add(j,&quot;a&quot;,{href:&quot;#&quot;},&quot;&lt;!-- IE --&gt;&quot;),&quot;focus&quot;,function(){tinyMCE.get(r.id).focus()})}if(w.theme_advanced_toolbar_location==&quot;external&quot;){k.deltaHeight=0}v.deltaHeight=k.deltaHeight;k.targetNode=null;return{iframeContainer:l,editorContainer:r.id+&quot;_parent&quot;,sizeContainer:u,deltaHeight:k.deltaHeight}},getInfo:function(){return{longname:&quot;Advanced theme&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,version:e.majorVersion+&quot;.&quot;+e.minorVersion}},resizeBy:function(i,j){var k=d.get(this.editor.id+&quot;_tbl&quot;);this.resizeTo(k.clientWidth+i,k.clientHeight+j)},resizeTo:function(i,l){var j=this.editor,k=j.settings,n=d.get(j.id+&quot;_tbl&quot;),o=d.get(j.id+&quot;_ifr&quot;),m;i=Math.max(k.theme_advanced_resizing_min_width||100,i);l=Math.max(k.theme_advanced_resizing_min_height||100,l);i=Math.min(k.theme_advanced_resizing_max_width||65535,i);l=Math.min(k.theme_advanced_resizing_max_height||65535,l);m=n.clientHeight-o.clientHeight;d.setStyle(o,&quot;height&quot;,l-m);d.setStyles(n,{width:i,height:l})},destroy:function(){var i=this.editor.id;b.clear(i+&quot;_resize&quot;);b.clear(i+&quot;_path_row&quot;);b.clear(i+&quot;_external_close&quot;)},_simpleLayout:function(y,r,k,i){var x=this,u=x.editor,v=y.theme_advanced_toolbar_location,m=y.theme_advanced_statusbar_location,l,j,q,w;if(y.readonly){l=d.add(r,&quot;tr&quot;);l=j=d.add(l,&quot;td&quot;,{&quot;class&quot;:&quot;mceIframeContainer&quot;});return j}if(v==&quot;top&quot;){x._addToolbars(r,k)}if(v==&quot;external&quot;){l=w=d.create(&quot;div&quot;,{style:&quot;position:relative&quot;});l=d.add(l,&quot;div&quot;,{id:u.id+&quot;_external&quot;,&quot;class&quot;:&quot;mceExternalToolbar&quot;});d.add(l,&quot;a&quot;,{id:u.id+&quot;_external_close&quot;,href:&quot;javascript:;&quot;,&quot;class&quot;:&quot;mceExternalClose&quot;});l=d.add(l,&quot;table&quot;,{id:u.id+&quot;_tblext&quot;,cellSpacing:0,cellPadding:0});q=d.add(l,&quot;tbody&quot;);if(i.firstChild.className==&quot;mceOldBoxModel&quot;){i.firstChild.appendChild(w)}else{i.insertBefore(w,i.firstChild)}x._addToolbars(q,k);u.onMouseUp.add(function(){var o=d.get(u.id+&quot;_external&quot;);d.show(o);d.hide(g);var n=b.add(u.id+&quot;_external_close&quot;,&quot;click&quot;,function(){d.hide(u.id+&quot;_external&quot;);b.remove(u.id+&quot;_external_close&quot;,&quot;click&quot;,n)});d.show(o);d.setStyle(o,&quot;top&quot;,0-d.getRect(u.id+&quot;_tblext&quot;).h-1);d.hide(o);d.show(o);o.style.filter=&quot;&quot;;g=u.id+&quot;_external&quot;;o=null})}if(m==&quot;top&quot;){x._addStatusBar(r,k)}if(!y.theme_advanced_toolbar_container){l=d.add(r,&quot;tr&quot;);l=j=d.add(l,&quot;td&quot;,{&quot;class&quot;:&quot;mceIframeContainer&quot;})}if(v==&quot;bottom&quot;){x._addToolbars(r,k)}if(m==&quot;bottom&quot;){x._addStatusBar(r,k)}return j},_rowLayout:function(w,m,k){var v=this,p=v.editor,u,x,i=p.controlManager,l,j,r,q;u=w.theme_advanced_containers_default_class||&quot;&quot;;x=w.theme_advanced_containers_default_align||&quot;center&quot;;f(c(w.theme_advanced_containers||&quot;&quot;),function(s,o){var n=w[&quot;theme_advanced_container_&quot;+s]||&quot;&quot;;switch(n.toLowerCase()){case&quot;mceeditor&quot;:l=d.add(m,&quot;tr&quot;);l=j=d.add(l,&quot;td&quot;,{&quot;class&quot;:&quot;mceIframeContainer&quot;});break;case&quot;mceelementpath&quot;:v._addStatusBar(m,k);break;default:q=(w[&quot;theme_advanced_container_&quot;+s+&quot;_align&quot;]||x).toLowerCase();q=&quot;mce&quot;+v._ufirst(q);l=d.add(d.add(m,&quot;tr&quot;),&quot;td&quot;,{&quot;class&quot;:&quot;mceToolbar &quot;+(w[&quot;theme_advanced_container_&quot;+s+&quot;_class&quot;]||u)+&quot; &quot;+q||x});r=i.createToolbar(&quot;toolbar&quot;+o);v._addControls(n,r);d.setHTML(l,r.renderHTML());k.deltaHeight-=w.theme_advanced_row_height}});return j},_addControls:function(j,i){var k=this,l=k.settings,m,n=k.editor.controlManager;if(l.theme_advanced_disable&amp;&amp;!k._disabled){m={};f(c(l.theme_advanced_disable),function(o){m[o]=1});k._disabled=m}else{m=k._disabled}f(c(j),function(p){var o;if(m&amp;&amp;m[p]){return}if(p==&quot;tablecontrols&quot;){f([&quot;table&quot;,&quot;|&quot;,&quot;row_props&quot;,&quot;cell_props&quot;,&quot;|&quot;,&quot;row_before&quot;,&quot;row_after&quot;,&quot;delete_row&quot;,&quot;|&quot;,&quot;col_before&quot;,&quot;col_after&quot;,&quot;delete_col&quot;,&quot;|&quot;,&quot;split_cells&quot;,&quot;merge_cells&quot;],function(q){q=k.createControl(q,n);if(q){i.add(q)}});return}o=k.createControl(p,n);if(o){i.add(o)}})},_addToolbars:function(w,k){var z=this,p,m,r=z.editor,A=z.settings,y,j=r.controlManager,u,l,q=[],x;x=A.theme_advanced_toolbar_align.toLowerCase();x=&quot;mce&quot;+z._ufirst(x);l=d.add(d.add(w,&quot;tr&quot;),&quot;td&quot;,{&quot;class&quot;:&quot;mceToolbar &quot;+x});if(!r.getParam(&quot;accessibility_focus&quot;)){q.push(d.createHTML(&quot;a&quot;,{href:&quot;#&quot;,onfocus:&quot;tinyMCE.get('&quot;+r.id+&quot;').focus();&quot;},&quot;&lt;!-- IE --&gt;&quot;))}q.push(d.createHTML(&quot;a&quot;,{href:&quot;#&quot;,accesskey:&quot;q&quot;,title:r.getLang(&quot;advanced.toolbar_focus&quot;)},&quot;&lt;!-- IE --&gt;&quot;));for(p=1;(y=A[&quot;theme_advanced_buttons&quot;+p]);p++){m=j.createToolbar(&quot;toolbar&quot;+p,{&quot;class&quot;:&quot;mceToolbarRow&quot;+p});if(A[&quot;theme_advanced_buttons&quot;+p+&quot;_add&quot;]){y+=&quot;,&quot;+A[&quot;theme_advanced_buttons&quot;+p+&quot;_add&quot;]}if(A[&quot;theme_advanced_buttons&quot;+p+&quot;_add_before&quot;]){y=A[&quot;theme_advanced_buttons&quot;+p+&quot;_add_before&quot;]+&quot;,&quot;+y}z._addControls(y,m);q.push(m.renderHTML());k.deltaHeight-=A.theme_advanced_row_height}q.push(d.createHTML(&quot;a&quot;,{href:&quot;#&quot;,accesskey:&quot;z&quot;,title:r.getLang(&quot;advanced.toolbar_focus&quot;),onfocus:&quot;tinyMCE.getInstanceById('&quot;+r.id+&quot;').focus();&quot;},&quot;&lt;!-- IE --&gt;&quot;));d.setHTML(l,q.join(&quot;&quot;))},_addStatusBar:function(m,j){var k,v=this,p=v.editor,w=v.settings,i,q,u,l;k=d.add(m,&quot;tr&quot;);k=l=d.add(k,&quot;td&quot;,{&quot;class&quot;:&quot;mceStatusbar&quot;});k=d.add(k,&quot;div&quot;,{id:p.id+&quot;_path_row&quot;},w.theme_advanced_path?p.translate(&quot;advanced.path&quot;)+&quot;: &quot;:&quot;&amp;#160;&quot;);d.add(k,&quot;a&quot;,{href:&quot;#&quot;,accesskey:&quot;x&quot;});if(w.theme_advanced_resizing){d.add(l,&quot;a&quot;,{id:p.id+&quot;_resize&quot;,href:&quot;javascript:;&quot;,onclick:&quot;return false;&quot;,&quot;class&quot;:&quot;mceResize&quot;});if(w.theme_advanced_resizing_use_cookie){p.onPostRender.add(function(){var n=a.getHash(&quot;TinyMCE_&quot;+p.id+&quot;_size&quot;),r=d.get(p.id+&quot;_tbl&quot;);if(!n){return}if(w.theme_advanced_resize_horizontal){r.style.width=Math.max(10,n.cw)+&quot;px&quot;}r.style.height=Math.max(10,n.ch)+&quot;px&quot;;d.get(p.id+&quot;_ifr&quot;).style.height=Math.max(10,parseInt(n.ch)+v.deltaHeight)+&quot;px&quot;})}p.onPostRender.add(function(){b.add(p.id+&quot;_resize&quot;,&quot;mousedown&quot;,function(x){var z,t,o,s,y,r;z=d.get(p.id+&quot;_tbl&quot;);o=z.clientWidth;s=z.clientHeight;miw=w.theme_advanced_resizing_min_width||100;mih=w.theme_advanced_resizing_min_height||100;maw=w.theme_advanced_resizing_max_width||65535;mah=w.theme_advanced_resizing_max_height||65535;t=d.add(d.get(p.id+&quot;_parent&quot;),&quot;div&quot;,{&quot;class&quot;:&quot;mcePlaceHolder&quot;});d.setStyles(t,{width:o,height:s});d.hide(z);d.show(t);i={x:x.screenX,y:x.screenY,w:o,h:s,dx:null,dy:null};q=b.add(d.doc,&quot;mousemove&quot;,function(B){var n,A;i.dx=B.screenX-i.x;i.dy=B.screenY-i.y;n=Math.max(miw,i.w+i.dx);A=Math.max(mih,i.h+i.dy);n=Math.min(maw,n);A=Math.min(mah,A);if(w.theme_advanced_resize_horizontal){t.style.width=n+&quot;px&quot;}t.style.height=A+&quot;px&quot;;return b.cancel(B)});u=b.add(d.doc,&quot;mouseup&quot;,function(n){var A;b.remove(d.doc,&quot;mousemove&quot;,q);b.remove(d.doc,&quot;mouseup&quot;,u);z.style.display=&quot;&quot;;d.remove(t);if(i.dx===null){return}A=d.get(p.id+&quot;_ifr&quot;);if(w.theme_advanced_resize_horizontal){z.style.width=Math.max(10,i.w+i.dx)+&quot;px&quot;}z.style.height=Math.max(10,i.h+i.dy)+&quot;px&quot;;A.style.height=Math.max(10,A.clientHeight+i.dy)+&quot;px&quot;;if(w.theme_advanced_resizing_use_cookie){a.setHash(&quot;TinyMCE_&quot;+p.id+&quot;_size&quot;,{cw:i.w+i.dx,ch:i.h+i.dy})}});return b.cancel(x)})})}j.deltaHeight-=21;k=m=null},_nodeChanged:function(l,u,k,q){var y=this,i,r=0,x,m,z=y.settings,w,j,o;if(z.readonly){return}e.each(y.stateControls,function(n){u.setActive(n,l.queryCommandState(y.controls[n][1]))});u.setActive(&quot;visualaid&quot;,l.hasVisual);u.setDisabled(&quot;undo&quot;,!l.undoManager.hasUndo()&amp;&amp;!l.typing);u.setDisabled(&quot;redo&quot;,!l.undoManager.hasRedo());u.setDisabled(&quot;outdent&quot;,!l.queryCommandState(&quot;Outdent&quot;));i=d.getParent(k,&quot;A&quot;);if(m=u.get(&quot;link&quot;)){if(!i||!i.name){m.setDisabled(!i&amp;&amp;q);m.setActive(!!i)}}if(m=u.get(&quot;unlink&quot;)){m.setDisabled(!i&amp;&amp;q);m.setActive(!!i&amp;&amp;!i.name)}if(m=u.get(&quot;anchor&quot;)){m.setActive(!!i&amp;&amp;i.name);if(e.isWebKit){i=d.getParent(k,&quot;IMG&quot;);m.setActive(!!i&amp;&amp;d.getAttrib(i,&quot;mce_name&quot;)==&quot;a&quot;)}}i=d.getParent(k,&quot;IMG&quot;);if(m=u.get(&quot;image&quot;)){m.setActive(!!i&amp;&amp;k.className.indexOf(&quot;mceItem&quot;)==-1)}if(m=u.get(&quot;styleselect&quot;)){if(k.className){y._importClasses();m.select(k.className)}else{m.select()}}if(m=u.get(&quot;formatselect&quot;)){i=d.getParent(k,d.isBlock);if(i){m.select(i.nodeName.toLowerCase())}}if(l.settings.convert_fonts_to_spans){l.dom.getParent(k,function(p){if(p.nodeName===&quot;SPAN&quot;){if(!w&amp;&amp;p.className){w=p.className}if(!j&amp;&amp;p.style.fontSize){j=p.style.fontSize}if(!o&amp;&amp;p.style.fontFamily){o=p.style.fontFamily.replace(/[\&quot;\']+/g,&quot;&quot;).replace(/^([^,]+).*/,&quot;$1&quot;).toLowerCase()}}return false});if(m=u.get(&quot;fontselect&quot;)){m.select(function(n){return n.replace(/^([^,]+).*/,&quot;$1&quot;).toLowerCase()==o})}if(m=u.get(&quot;fontsizeselect&quot;)){m.select(function(n){if(n.fontSize&amp;&amp;n.fontSize===j){return true}if(n[&quot;class&quot;]&amp;&amp;n[&quot;class&quot;]===w){return true}})}}else{if(m=u.get(&quot;fontselect&quot;)){m.select(l.queryCommandValue(&quot;FontName&quot;))}if(m=u.get(&quot;fontsizeselect&quot;)){x=l.queryCommandValue(&quot;FontSize&quot;);m.select(function(n){return n.fontSize==x})}}if(z.theme_advanced_path&amp;&amp;z.theme_advanced_statusbar_location){i=d.get(l.id+&quot;_path&quot;)||d.add(l.id+&quot;_path_row&quot;,&quot;span&quot;,{id:l.id+&quot;_path&quot;});d.setHTML(i,&quot;&quot;);l.dom.getParent(k,function(A){var p=A.nodeName.toLowerCase(),s,v,t=&quot;&quot;;if(A.nodeType!=1||A.nodeName===&quot;BR&quot;||(d.hasClass(A,&quot;mceItemHidden&quot;)||d.hasClass(A,&quot;mceItemRemoved&quot;))){return}if(x=d.getAttrib(A,&quot;mce_name&quot;)){p=x}if(e.isIE&amp;&amp;A.scopeName!==&quot;HTML&quot;){p=A.scopeName+&quot;:&quot;+p}p=p.replace(/mce\:/g,&quot;&quot;);switch(p){case&quot;b&quot;:p=&quot;strong&quot;;break;case&quot;i&quot;:p=&quot;em&quot;;break;case&quot;img&quot;:if(x=d.getAttrib(A,&quot;src&quot;)){t+=&quot;src: &quot;+x+&quot; &quot;}break;case&quot;a&quot;:if(x=d.getAttrib(A,&quot;name&quot;)){t+=&quot;name: &quot;+x+&quot; &quot;;p+=&quot;#&quot;+x}if(x=d.getAttrib(A,&quot;href&quot;)){t+=&quot;href: &quot;+x+&quot; &quot;}break;case&quot;font&quot;:if(z.convert_fonts_to_spans){p=&quot;span&quot;}if(x=d.getAttrib(A,&quot;face&quot;)){t+=&quot;font: &quot;+x+&quot; &quot;}if(x=d.getAttrib(A,&quot;size&quot;)){t+=&quot;size: &quot;+x+&quot; &quot;}if(x=d.getAttrib(A,&quot;color&quot;)){t+=&quot;color: &quot;+x+&quot; &quot;}break;case&quot;span&quot;:if(x=d.getAttrib(A,&quot;style&quot;)){t+=&quot;style: &quot;+x+&quot; &quot;}break}if(x=d.getAttrib(A,&quot;id&quot;)){t+=&quot;id: &quot;+x+&quot; &quot;}if(x=A.className){x=x.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g,&quot;&quot;);if(x&amp;&amp;x.indexOf(&quot;mceItem&quot;)==-1){t+=&quot;class: &quot;+x+&quot; &quot;;if(d.isBlock(A)||p==&quot;img&quot;||p==&quot;span&quot;){p+=&quot;.&quot;+x}}}p=p.replace(/(html:)/g,&quot;&quot;);p={name:p,node:A,title:t};y.onResolveName.dispatch(y,p);t=p.title;p=p.name;v=d.create(&quot;a&quot;,{href:&quot;javascript:;&quot;,onmousedown:&quot;return false;&quot;,title:t,&quot;class&quot;:&quot;mcePath_&quot;+(r++)},p);if(i.hasChildNodes()){i.insertBefore(d.doc.createTextNode(&quot; \u00bb &quot;),i.firstChild);i.insertBefore(v,i.firstChild)}else{i.appendChild(v)}},l.getBody())}},_sel:function(i){this.editor.execCommand(&quot;mceSelectNodeDepth&quot;,false,i)},_mceInsertAnchor:function(k,j){var i=this.editor;i.windowManager.open({url:e.baseURL+&quot;/themes/advanced/anchor.htm&quot;,width:320+parseInt(i.getLang(&quot;advanced.anchor_delta_width&quot;,0)),height:90+parseInt(i.getLang(&quot;advanced.anchor_delta_height&quot;,0)),inline:true},{theme_url:this.url})},_mceCharMap:function(){var i=this.editor;i.windowManager.open({url:e.baseURL+&quot;/themes/advanced/charmap.htm&quot;,width:550+parseInt(i.getLang(&quot;advanced.charmap_delta_width&quot;,0)),height:250+parseInt(i.getLang(&quot;advanced.charmap_delta_height&quot;,0)),inline:true},{theme_url:this.url})},_mceHelp:function(){var i=this.editor;i.windowManager.open({url:e.baseURL+&quot;/themes/advanced/about.htm&quot;,width:480,height:380,inline:true},{theme_url:this.url})},_mceColorPicker:function(k,j){var i=this.editor;j=j||{};i.windowManager.open({url:e.baseURL+&quot;/themes/advanced/color_picker.htm&quot;,width:375+parseInt(i.getLang(&quot;advanced.colorpicker_delta_width&quot;,0)),height:250+parseInt(i.getLang(&quot;advanced.colorpicker_delta_height&quot;,0)),close_previous:false,inline:true},{input_color:j.color,func:j.func,theme_url:this.url})},_mceCodeEditor:function(j,k){var i=this.editor;i.windowManager.open({url:e.baseURL+&quot;/themes/advanced/source_editor.htm&quot;,width:parseInt(i.getParam(&quot;theme_advanced_source_editor_width&quot;,720)),height:parseInt(i.getParam(&quot;theme_advanced_source_editor_height&quot;,580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url})},_mceImage:function(j,k){var i=this.editor;if(i.dom.getAttrib(i.selection.getNode(),&quot;class&quot;).indexOf(&quot;mceItem&quot;)!=-1){return}i.windowManager.open({url:e.baseURL+&quot;/themes/advanced/image.htm&quot;,width:355+parseInt(i.getLang(&quot;advanced.image_delta_width&quot;,0)),height:275+parseInt(i.getLang(&quot;advanced.image_delta_height&quot;,0)),inline:true},{theme_url:this.url})},_mceLink:function(j,k){var i=this.editor;i.windowManager.open({url:e.baseURL+&quot;/themes/advanced/link.htm&quot;,width:310+parseInt(i.getLang(&quot;advanced.link_delta_width&quot;,0)),height:200+parseInt(i.getLang(&quot;advanced.link_delta_height&quot;,0)),inline:true},{theme_url:this.url})},_mceNewDocument:function(){var i=this.editor;i.windowManager.confirm(&quot;advanced.newdocument&quot;,function(j){if(j){i.execCommand(&quot;mceSetContent&quot;,false,&quot;&quot;)}})},_mceForeColor:function(){var i=this;this._mceColorPicker(0,{color:i.fgColor,func:function(j){i.fgColor=j;i.editor.execCommand(&quot;ForeColor&quot;,false,j)}})},_mceBackColor:function(){var i=this;this._mceColorPicker(0,{color:i.bgColor,func:function(j){i.bgColor=j;i.editor.execCommand(&quot;HiliteColor&quot;,false,j)}})},_ufirst:function(i){return i.substring(0,1).toUpperCase()+i.substring(1)}});e.ThemeManager.add(&quot;advanced&quot;,e.themes.AdvancedTheme)}(tinymce));
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/themes/advanced/editor_template.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,17 +1,19 @@
 /**
- * $Id: editor_template_src.js 852 2008-05-27 05:52:09Z spocke $
+ * $Id: editor_template_src.js 1045 2009-03-04 20:03:18Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright &#169; 2004-2008, Moxiecode Systems AB, All rights reserved.
  */
 
-(function() {
+(function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode;
 
 	// Tell it to load theme specific language pack(s)
 	tinymce.ThemeManager.requireLangPack('advanced');
 
 	tinymce.create('tinymce.themes.AdvancedTheme', {
+		sizes : [8, 10, 12, 14, 18, 24, 36],
+
 		// Control name lookup, format: title, command
 		controls : {
 			bold : ['bold_desc', 'Bold'],
@@ -55,7 +57,7 @@
 		stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'],
 
 		init : function(ed, url) {
-			var t = this, s, v;
+			var t = this, s, v, o;
 	
 			t.editor = ed;
 			t.url = url;
@@ -71,13 +73,46 @@
 				theme_advanced_blockformats : &quot;p,address,pre,h1,h2,h3,h4,h5,h6&quot;,
 				theme_advanced_toolbar_align : &quot;center&quot;,
 				theme_advanced_fonts : &quot;Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats&quot;,
-				theme_advanced_font_sizes : &quot;1,2,3,4,5,6,7&quot;,
 				theme_advanced_more_colors : 1,
 				theme_advanced_row_height : 23,
 				theme_advanced_resize_horizontal : 1,
-				theme_advanced_resizing_use_cookie : 1
+				theme_advanced_resizing_use_cookie : 1,
+				theme_advanced_font_sizes : &quot;1,2,3,4,5,6,7&quot;,
+				readonly : ed.settings.readonly
 			}, ed.settings);
 
+			// Setup default font_size_style_values
+			if (!s.font_size_style_values)
+				s.font_size_style_values = &quot;8pt,10pt,12pt,14pt,18pt,24pt,36pt&quot;;
+
+			if (tinymce.is(s.theme_advanced_font_sizes, 'string')) {
+				s.font_size_style_values = tinymce.explode(s.font_size_style_values);
+				s.font_size_classes = tinymce.explode(s.font_size_classes || '');
+
+				// Parse string value
+				o = {};
+				ed.settings.theme_advanced_font_sizes = s.theme_advanced_font_sizes;
+				each(ed.getParam('theme_advanced_font_sizes', '', 'hash'), function(v, k) {
+					var cl;
+
+					if (k == v &amp;&amp; v &gt;= 1 &amp;&amp; v &lt;= 7) {
+						k = v + ' (' + t.sizes[v - 1] + 'pt)';
+
+						if (ed.settings.convert_fonts_to_spans) {
+							cl = s.font_size_classes[v - 1];
+							v = s.font_size_style_values[v - 1] || (t.sizes[v - 1] + 'pt');
+						}
+					}
+
+					if (/^\s*\./.test(v))
+						cl = v.replace(/\./g, '');
+
+					o[k] = cl ? {'class' : cl} : {fontSize : v};
+				});
+
+				s.theme_advanced_font_sizes = o;
+			}
+
 			if ((v = s.theme_advanced_path_location) &amp;&amp; v != 'none')
 				s.theme_advanced_statusbar_location = s.theme_advanced_path_location;
 
@@ -111,10 +146,10 @@
 				}
 			});
 
-			DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || &quot;themes/advanced/skins/&quot; + ed.settings.skin + &quot;/ui.css&quot;));
+			DOM.loadCSS(s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : url + &quot;/skins/&quot; + ed.settings.skin + &quot;/ui.css&quot;);
 
 			if (s.skin_variant)
-				DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || &quot;themes/advanced/skins/&quot; + ed.settings.skin + &quot;/ui_&quot; + s.skin_variant + &quot;.css&quot;));
+				DOM.loadCSS(url + &quot;/skins/&quot; + ed.settings.skin + &quot;/ui_&quot; + s.skin_variant + &quot;.css&quot;);
 		},
 
 		createControl : function(n, cf) {
@@ -188,8 +223,13 @@
 				});
 
 				c.onPostRender.add(function(ed, n) {
-					Event.add(n.id + '_text', 'focus', t._importClasses, t);
-					Event.add(n.id + '_text', 'mousedown', t._importClasses, t);
+					if (!c.NativeListBox) {
+						Event.add(n.id + '_text', 'focus', t._importClasses, t);
+						Event.add(n.id + '_text', 'mousedown', t._importClasses, t);
+						Event.add(n.id + '_open', 'focus', t._importClasses, t);
+						Event.add(n.id + '_open', 'mousedown', t._importClasses, t);
+					} else
+						Event.add(n.id, 'focus', t._importClasses, t);
 				});
 			}
 
@@ -210,20 +250,29 @@
 		},
 
 		_createFontSizeSelect : function() {
-			var t = this, ed = t.editor, c, lo = [
-				&quot;1 (8 pt)&quot;,
-				&quot;2 (10 pt)&quot;,
-				&quot;3 (12 pt)&quot;,
-				&quot;4 (14 pt)&quot;,
-				&quot;5 (18 pt)&quot;,
-				&quot;6 (24 pt)&quot;,
-				&quot;7 (36 pt)&quot;
-			], fz = [8, 10, 12, 14, 18, 24, 36];
-
-			c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', cmd : 'FontSize'});
+			var t = this, ed = t.editor, c, i = 0, cl = [];
+
+			c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', onselect : function(v) {
+				if (v.fontSize)
+					ed.execCommand('FontSize', false, v.fontSize);
+				else {
+					each(t.settings.theme_advanced_font_sizes, function(v, k) {
+						if (v['class'])
+							cl.push(v['class']);
+					});
+
+					ed.editorCommands._applyInlineStyle('span', {'class' : v['class']}, {check_classes : cl});
+				}
+			}});
+
 			if (c) {
-				each(ed.getParam('theme_advanced_font_sizes', t.settings.theme_advanced_font_sizes, 'hash'), function(v, k) {
-					c.add(k != v ? k : lo[parseInt(v) - 1], v, {'style' : 'font-size:' + fz[v - 1] + 'pt', 'class' : 'mceFontSize' + v});
+				each(t.settings.theme_advanced_font_sizes, function(v, k) {
+					var fz = v.fontSize;
+
+					if (fz &gt;= 1 &amp;&amp; fz &lt;= 7)
+						fz = t.sizes[parseInt(fz) - 1] + 'pt';
+
+					c.add(k, v, {'style' : 'font-size:' + fz, 'class' : 'mceFontSize' + (i++) + (' ' + (v['class'] || ''))});
 				});
 			}
 
@@ -276,6 +325,9 @@
 			if (v = s.theme_advanced_text_colors)
 				o.colors = v;
 
+			if (s.theme_advanced_default_foreground_color)
+				o.default_color = s.theme_advanced_default_foreground_color;
+
 			o.title = 'advanced.forecolor_desc';
 			o.cmd = 'ForeColor';
 			o.scope = this;
@@ -302,6 +354,9 @@
 			if (v = s.theme_advanced_background_colors)
 				o.colors = v;
 
+			if (s.theme_advanced_default_background_color)
+				o.default_color = s.theme_advanced_default_background_color;
+
 			o.title = 'advanced.backcolor_desc';
 			o.cmd = 'HiliteColor';
 			o.scope = this;
@@ -385,7 +440,7 @@
 			}
 */
 
-			if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))
+			if (!ed.getParam('accessibility_focus'))
 				Event.add(DOM.add(p, 'a', {href : '#'}, '&lt;!-- IE --&gt;'), 'focus', function() {tinyMCE.get(ed.id).focus();});
 
 			if (s.theme_advanced_toolbar_location == 'external')
@@ -447,6 +502,12 @@
 		_simpleLayout : function(s, tb, o, p) {
 			var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c;
 
+			if (s.readonly) {
+				n = DOM.add(tb, 'tr');
+				n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
+				return ic;
+			}
+
 			// Create toolbar container at top
 			if (lo == 'top')
 				t._addToolbars(tb, o);
@@ -594,7 +655,7 @@
 
 			n = DOM.add(DOM.add(c, 'tr'), 'td', {'class' : 'mceToolbar ' + a});
 
-			if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))
+			if (!ed.getParam('accessibility_focus'))
 				h.push(DOM.createHTML('a', {href : '#', onfocus : 'tinyMCE.get(\'' + ed.id + '\').focus();'}, '&lt;!-- IE --&gt;'));
 
 			h.push(DOM.createHTML('a', {href : '#', accesskey : 'q', title : ed.getLang(&quot;advanced.toolbar_focus&quot;)}, '&lt;!-- IE --&gt;'));
@@ -626,10 +687,10 @@
 
 			n = DOM.add(tb, 'tr');
 			n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'});
-			n = DOM.add(n, 'div', {id : ed.id + '_path_row'}, s.theme_advanced_path ? ed.translate('advanced.path') + ': ' : '&amp;nbsp;');
+			n = DOM.add(n, 'div', {id : ed.id + '_path_row'}, s.theme_advanced_path ? ed.translate('advanced.path') + ': ' : '&amp;#160;');
 			DOM.add(n, 'a', {href : '#', accesskey : 'x'});
 
-			if (s.theme_advanced_resizing &amp;&amp; !tinymce.isOldWebKit) {
+			if (s.theme_advanced_resizing) {
 				DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : &quot;return false;&quot;, 'class' : 'mceResize'});
 
 				if (s.theme_advanced_resizing_use_cookie) {
@@ -741,7 +802,10 @@
 		},
 
 		_nodeChanged : function(ed, cm, n, co) {
-			var t = this, p, de = 0, v, c, s = t.settings;
+			var t = this, p, de = 0, v, c, s = t.settings, cl, fz, fn;
+
+			if (s.readonly)
+				return;
 
 			tinymce.each(t.stateControls, function(c) {
 				cm.setActive(c, ed.queryCommandState(t.controls[c][1]));
@@ -793,11 +857,48 @@
 					c.select(p.nodeName.toLowerCase());
 			}
 
-			if (c = cm.get('fontselect'))
-				c.select(ed.queryCommandValue('FontName'));
+			if (ed.settings.convert_fonts_to_spans) {
+				ed.dom.getParent(n, function(n) {
+					if (n.nodeName === 'SPAN') {
+						if (!cl &amp;&amp; n.className)
+							cl = n.className;
+
+						if (!fz &amp;&amp; n.style.fontSize)
+							fz = n.style.fontSize;
+
+						if (!fn &amp;&amp; n.style.fontFamily)
+							fn = n.style.fontFamily.replace(/[\&quot;\']+/g, '').replace(/^([^,]+).*/, '$1').toLowerCase();
+					}
 
-			if (c = cm.get('fontsizeselect'))
-				c.select('' + ed.queryCommandValue('FontSize'));
+					return false;
+				});
+
+				if (c = cm.get('fontselect')) {
+					c.select(function(v) {
+						return v.replace(/^([^,]+).*/, '$1').toLowerCase() == fn;
+					});
+				}
+
+				if (c = cm.get('fontsizeselect')) {
+					c.select(function(v) {
+						if (v.fontSize &amp;&amp; v.fontSize === fz)
+							return true;
+
+						if (v['class'] &amp;&amp; v['class'] === cl)
+							return true;
+					});
+				}
+			} else {
+				if (c = cm.get('fontselect'))
+					c.select(ed.queryCommandValue('FontName'));
+
+				if (c = cm.get('fontsizeselect')) {
+					v = ed.queryCommandValue('FontSize');
+					c.select(function(iv) {
+						return iv.fontSize == v;
+					});
+				}
+			}
 
 			if (s.theme_advanced_path &amp;&amp; s.theme_advanced_statusbar_location) {
 				p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'});
@@ -807,13 +908,13 @@
 					var na = n.nodeName.toLowerCase(), u, pi, ti = '';
 
 					// Ignore non element and hidden elements
-					if (n.nodeType != 1 || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')))
+					if (n.nodeType != 1 || n.nodeName === 'BR' || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')))
 						return;
 
 					// Fake name
 					if (v = DOM.getAttrib(n, 'mce_name'))
 						na = v;
-	
+
 					// Handle prefix
 					if (tinymce.isIE &amp;&amp; n.scopeName !== 'HTML')
 						na = n.scopeName + ':' + na;
@@ -1049,4 +1150,4 @@
 	});
 
 	tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme);
-}());
\ No newline at end of file
+}(tinymce));
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/themes/advanced/editor_template_src.js</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/mctabs.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/form_utils.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/image.js&quot;&gt;&lt;/script&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;image&quot; style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;ImageDialog.update();return false;&quot; action=&quot;#&quot;&gt;
@@ -20,7 +19,7 @@
 		&lt;div id=&quot;general_panel&quot; class=&quot;panel current&quot;&gt;
      &lt;table border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;
           &lt;tr&gt;
-            &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;src&quot;&gt;{#advanced_dlg.image_src}&lt;/label&gt;&lt;/td&gt;
+            &lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;src&quot;&gt;{#advanced_dlg.image_src}&lt;/label&gt;&lt;/td&gt;
             &lt;td&gt;&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
                 &lt;tr&gt;
                   &lt;td&gt;&lt;input id=&quot;src&quot; name=&quot;src&quot; type=&quot;text&quot; class=&quot;mceFocus&quot; value=&quot;&quot; style=&quot;width: 200px&quot; onchange=&quot;ImageDialog.getImageData();&quot; /&gt;&lt;/td&gt;
@@ -33,11 +32,11 @@
 			&lt;td&gt;&lt;select id=&quot;image_list&quot; name=&quot;image_list&quot; onchange=&quot;document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;&quot;&gt;&lt;/select&gt;&lt;/td&gt;
 		  &lt;/tr&gt;
           &lt;tr&gt;
-            &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;alt&quot;&gt;{#advanced_dlg.image_alt}&lt;/label&gt;&lt;/td&gt;
+            &lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;alt&quot;&gt;{#advanced_dlg.image_alt}&lt;/label&gt;&lt;/td&gt;
             &lt;td&gt;&lt;input id=&quot;alt&quot; name=&quot;alt&quot; type=&quot;text&quot; value=&quot;&quot; style=&quot;width: 200px&quot; /&gt;&lt;/td&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
-            &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;align&quot;&gt;{#advanced_dlg.image_align}&lt;/label&gt;&lt;/td&gt;
+            &lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;align&quot;&gt;{#advanced_dlg.image_align}&lt;/label&gt;&lt;/td&gt;
             &lt;td&gt;&lt;select id=&quot;align&quot; name=&quot;align&quot; onchange=&quot;ImageDialog.updateStyle();&quot;&gt;
                 &lt;option value=&quot;&quot;&gt;{#not_set}&lt;/option&gt;
                 &lt;option value=&quot;baseline&quot;&gt;{#advanced_dlg.image_align_baseline}&lt;/option&gt;
@@ -51,21 +50,21 @@
               &lt;/select&gt;&lt;/td&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
-            &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;width&quot;&gt;{#advanced_dlg.image_dimensions}&lt;/label&gt;&lt;/td&gt;
+            &lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;width&quot;&gt;{#advanced_dlg.image_dimensions}&lt;/label&gt;&lt;/td&gt;
             &lt;td&gt;&lt;input id=&quot;width&quot; name=&quot;width&quot; type=&quot;text&quot; value=&quot;&quot; size=&quot;3&quot; maxlength=&quot;5&quot; /&gt;
               x
               &lt;input id=&quot;height&quot; name=&quot;height&quot; type=&quot;text&quot; value=&quot;&quot; size=&quot;3&quot; maxlength=&quot;5&quot; /&gt;&lt;/td&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
-            &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;border&quot;&gt;{#advanced_dlg.image_border}&lt;/label&gt;&lt;/td&gt;
+            &lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;border&quot;&gt;{#advanced_dlg.image_border}&lt;/label&gt;&lt;/td&gt;
             &lt;td&gt;&lt;input id=&quot;border&quot; name=&quot;border&quot; type=&quot;text&quot; value=&quot;&quot; size=&quot;3&quot; maxlength=&quot;3&quot; onchange=&quot;ImageDialog.updateStyle();&quot; /&gt;&lt;/td&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
-            &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;vspace&quot;&gt;{#advanced_dlg.image_vspace}&lt;/label&gt;&lt;/td&gt;
+            &lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;vspace&quot;&gt;{#advanced_dlg.image_vspace}&lt;/label&gt;&lt;/td&gt;
             &lt;td&gt;&lt;input id=&quot;vspace&quot; name=&quot;vspace&quot; type=&quot;text&quot; value=&quot;&quot; size=&quot;3&quot; maxlength=&quot;3&quot; onchange=&quot;ImageDialog.updateStyle();&quot; /&gt;&lt;/td&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
-            &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;hspace&quot;&gt;{#advanced_dlg.image_hspace}&lt;/label&gt;&lt;/td&gt;
+            &lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;hspace&quot;&gt;{#advanced_dlg.image_hspace}&lt;/label&gt;&lt;/td&gt;
             &lt;td&gt;&lt;input id=&quot;hspace&quot; name=&quot;hspace&quot; type=&quot;text&quot; value=&quot;&quot; size=&quot;3&quot; maxlength=&quot;3&quot; onchange=&quot;ImageDialog.updateStyle();&quot; /&gt;&lt;/td&gt;
           &lt;/tr&gt;
         &lt;/table&gt;</diff>
      <filename>lib/tiny_mce/themes/advanced/image.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/img/colorpicker.jpg</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/img/icons.gif</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ function init() {
 	ed = tinyMCEPopup.editor;
 
 	// Give FF some time
-	window.setTimeout('insertHelpIFrame();', 10);
+	window.setTimeout(insertHelpIFrame, 10);
 
 	tcont = document.getElementById('plugintablecontainer');
 	document.getElementById('plugins_tab').style.display = 'none';</diff>
      <filename>lib/tiny_mce/themes/advanced/js/about.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/js/anchor.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/js/charmap.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/js/color_picker.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/js/image.js</filename>
    </modified>
    <modified>
      <diff>@@ -53,6 +53,7 @@ var LinkDialog = {
 
 		// Create new anchor elements
 		if (e == null) {
+			ed.getDoc().execCommand(&quot;unlink&quot;, false, null);
 			tinyMCEPopup.execCommand(&quot;CreateLink&quot;, false, &quot;#mce_temp_url#&quot;, {skip_undo : 1});
 
 			tinymce.each(ed.dom.select(&quot;a&quot;), function(n) {
@@ -92,7 +93,7 @@ var LinkDialog = {
 		if (n.value &amp;&amp; Validator.isEmail(n) &amp;&amp; !/^\s*mailto:/i.test(n.value) &amp;&amp; confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email')))
 			n.value = 'mailto:' + n.value;
 
-		if (/^\s*www./i.test(n.value) &amp;&amp; confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external')))
+		if (/^\s*www\./i.test(n.value) &amp;&amp; confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external')))
 			n.value = 'http://' + n.value;
 	},
 </diff>
      <filename>lib/tiny_mce/themes/advanced/js/link.js</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ tinyMCEPopup.requireLangPack();
 tinyMCEPopup.onInit.add(onLoadInit);
 
 function saveContent() {
-	tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value);
+	tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true});
 	tinyMCEPopup.close();
 }
 
@@ -13,7 +13,7 @@ function onLoadInit() {
 	if (tinymce.isGecko)
 		document.body.spellcheck = tinyMCEPopup.editor.getParam(&quot;gecko_spellcheck&quot;);
 
-	document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent();
+	document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true});
 
 	if (tinyMCEPopup.editor.getParam(&quot;theme_advanced_source_editor_wrap&quot;, true)) {
 		setWrap('soft');</diff>
      <filename>lib/tiny_mce/themes/advanced/js/source_editor.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/langs/en.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/langs/en_dlg.js</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,6 @@
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/form_utils.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;../../utils/validate.js&quot;&gt;&lt;/script&gt;
 	&lt;script type=&quot;text/javascript&quot; src=&quot;js/link.js&quot;&gt;&lt;/script&gt;
-	&lt;base target=&quot;_self&quot; /&gt;
 &lt;/head&gt;
 &lt;body id=&quot;link&quot; style=&quot;display: none&quot;&gt;
 &lt;form onsubmit=&quot;LinkDialog.update();return false;&quot; action=&quot;#&quot;&gt;
@@ -22,7 +21,7 @@
 
 		&lt;table border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;
           &lt;tr&gt;
-            &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;href&quot;&gt;{#advanced_dlg.link_url}&lt;/label&gt;&lt;/td&gt;
+            &lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;href&quot;&gt;{#advanced_dlg.link_url}&lt;/label&gt;&lt;/td&gt;
             &lt;td&gt;&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt; 
 				  &lt;tr&gt; 
 					&lt;td&gt;&lt;input id=&quot;href&quot; name=&quot;href&quot; type=&quot;text&quot; class=&quot;mceFocus&quot; value=&quot;&quot; style=&quot;width: 200px&quot; onchange=&quot;LinkDialog.checkPrefix(this);&quot; /&gt;&lt;/td&gt; 
@@ -39,7 +38,7 @@
 			&lt;td&gt;&lt;select id=&quot;target_list&quot; name=&quot;target_list&quot;&gt;&lt;/select&gt;&lt;/td&gt;
 		&lt;/tr&gt;
           &lt;tr&gt;
-            &lt;td nowrap=&quot;nowrap&quot;&gt;&lt;label for=&quot;linktitle&quot;&gt;{#advanced_dlg.link_titlefield}&lt;/label&gt;&lt;/td&gt;
+            &lt;td class=&quot;nowrap&quot;&gt;&lt;label for=&quot;linktitle&quot;&gt;{#advanced_dlg.link_titlefield}&lt;/label&gt;&lt;/td&gt;
             &lt;td&gt;&lt;input id=&quot;linktitle&quot; name=&quot;linktitle&quot; type=&quot;text&quot; value=&quot;&quot; style=&quot;width: 200px&quot; /&gt;&lt;/td&gt;
           &lt;/tr&gt;
 			&lt;tr&gt;</diff>
      <filename>lib/tiny_mce/themes/advanced/link.htm</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/default/content.css</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,7 @@ td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
 textarea {resize:none;outline:none;}
 a:link, a:visited {color:black;}
 a:hover {color:#2B6FB6;}
+.nowrap {white-space: nowrap}
 
 /* Forms */
 fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}
@@ -47,10 +48,11 @@ padding-bottom:2px;
 #cancel {background:url(img/buttons.png) 0 0;}
 
 /* Browse */
+a.pickcolor, a.browse {text-decoration:none}
 a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
 .mceOldBoxModel a.browse span {width:22px; height:20px;}
 a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}
-a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}
+a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
 a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}
 a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}
 .mceOldBoxModel a.pickcolor span {width:21px; height:17px;}</diff>
      <filename>lib/tiny_mce/themes/advanced/skins/default/dialog.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/default/img/buttons.png</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/default/img/items.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/default/img/menu_check.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/default/img/progress.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/default/img/tabs.gif</filename>
    </modified>
    <modified>
      <diff>@@ -37,7 +37,7 @@
 .defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px}
 .defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}
 .defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0}
-.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}
+.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
 .defaultSkin .mceButtonLabeled {width:auto}
 .defaultSkin .mceButtonLabeled span.mceIcon {float:left}
 .defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}
@@ -64,12 +64,11 @@
 .defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block}
 .defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;}
 .defaultSkin .mceSplitButton span.mceAction {width:20px; background:url(../../img/icons.gif) 20px 20px;}
-.defaultSkin .mceSplitButton a.mceOpen {width:9px; border:1px solid #F0F0EE;}
-.defaultSkin .mceSplitButton span.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0;}
+.defaultSkin .mceSplitButton a.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0; border:1px solid #F0F0EE;}
+.defaultSkin .mceSplitButton span.mceOpen {display:none}
 .defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0}
-.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {border:1px solid #0A246A;}
-.defaultSkin table.mceSplitButtonEnabled:hover span.mceOpen, .defaultSkin .mceSplitButtonHover span.mceOpen, .defaultSkin .mceSplitButtonSelected span.mceOpen {background-color:#B2BBD0}
-.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled span.mceOpen {opacity:0.3; filter:alpha(opacity=30)}
+.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {background-color:#B2BBD0; border:1px solid #0A246A;}
+.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled a.mceOpen {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
 .defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0}
 .defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;}
 
@@ -107,7 +106,7 @@
 .defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;}
 
 /* Progress,Resize */
-.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}
+.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50); background:#FFF}
 .defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
 .defaultSkin .mcePlaceHolder {border:1px dotted gray}
 </diff>
      <filename>lib/tiny_mce/themes/advanced/skins/default/ui.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/o2k7/content.css</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,7 @@ td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}
 textarea {resize:none;outline:none;}
 a:link, a:visited {color:black;}
 a:hover {color:#2B6FB6;}
+.nowrap {white-space: nowrap}
 
 /* Forms */
 fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}
@@ -47,10 +48,11 @@ padding-bottom:2px;
 #cancel {background:url(../default/img/buttons.png) 0 0;}
 
 /* Browse */
+a.pickcolor, a.browse {text-decoration:none}
 a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
 .mceOldBoxModel a.browse span {width:22px; height:20px;}
 a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}
-a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}
+a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
 a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}
 a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}
 .mceOldBoxModel a.pickcolor span {width:21px; height:17px;}</diff>
      <filename>lib/tiny_mce/themes/advanced/skins/o2k7/dialog.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png</filename>
    </modified>
    <modified>
      <diff>@@ -40,7 +40,7 @@
 .o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px}
 .o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}
 .o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px}
-.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}
+.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
 .o2k7Skin .mceButtonLabeled {width:auto}
 .o2k7Skin .mceButtonLabeled span.mceIcon {float:left}
 .o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}
@@ -66,11 +66,11 @@
 .o2k7Skin .mceSplitButton {background:url(img/button_bg.png)}
 .o2k7Skin .mceSplitButton a.mceAction {width:22px}
 .o2k7Skin .mceSplitButton span.mceAction {width:22px; background:url(../../img/icons.gif) 20px 20px}
-.o2k7Skin .mceSplitButton a.mceOpen {width:10px}
-.o2k7Skin .mceSplitButton span.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0}
+.o2k7Skin .mceSplitButton a.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0}
+.o2k7Skin .mceSplitButton span.mceOpen {display:none}
 .o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px}
-.o2k7Skin table.mceSplitButtonEnabled:hover span.mceOpen, .o2k7Skin .mceSplitButtonHover span.mceOpen, .o2k7Skin .mceSplitButtonSelected span.mceOpen {background-position:-44px -44px}
-.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; filter:alpha(opacity=30)}
+.o2k7Skin table.mceSplitButtonEnabled:hover a.mceOpen, .o2k7Skin .mceSplitButtonHover a.mceOpen, .o2k7Skin .mceSplitButtonSelected a.mceOpen {background-position:-44px -44px}
+.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
 .o2k7Skin .mceSplitButtonActive {background-position:0 -44px}
 
 /* ColorSplitButton */
@@ -107,7 +107,7 @@
 .o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;}
 
 /* Progress,Resize */
-.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}
+.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
 .o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
 .o2k7Skin .mcePlaceHolder {border:1px dotted gray}
 </diff>
      <filename>lib/tiny_mce/themes/advanced/skins/o2k7/ui.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,8 @@
 /* Black */
-.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton span.mceOpen, .o2k7SkinBlack .mceListBox .mceOpen {background-image:url(img/button_bg_black.png)}
+.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton a.mceOpen, .o2k7SkinBlack .mceListBox a.mceOpen {background-image:url(img/button_bg_black.png)}
 .o2k7SkinBlack table, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF}
 .o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0}
-.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0}
+.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7SkinBlack .mceListBoxHover .mceText, .o2k7SkinBlack .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0}
 .o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;}
-.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)}
-.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#FFE7A1}
\ No newline at end of file
+.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7SkinBlack .mceSplitButtonHover a.mceAction, .o2k7SkinBlack .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)}
+.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7SkinBlack .mceMenu .mceMenuItemActive {background-color:#FFE7A1}
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/themes/advanced/skins/o2k7/ui_black.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /* Silver */
-.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton span.mceOpen, .o2k7SkinSilver .mceListBox .mceOpen {background-image:url(img/button_bg_silver.png)}
+.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)}
 .o2k7SkinSilver table, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee}
 .o2k7SkinSilver .mceListBox .mceText {background:#FFF}
 .o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb}</diff>
      <filename>lib/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,6 @@
 	&lt;title&gt;{#advanced_dlg.code_title}&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/source_editor.js&quot;&gt;&lt;/script&gt;
-	&lt;base target=&quot;_self&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();return false;&quot; action=&quot;#&quot;&gt;</diff>
      <filename>lib/tiny_mce/themes/advanced/source_editor.htm</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-(function(){var DOM=tinymce.DOM;tinymce.ThemeManager.requireLangPack('simple');tinymce.create('tinymce.themes.SimpleTheme',{init:function(ed,url){var t=this,states=['Bold','Italic','Underline','Strikethrough','InsertUnorderedList','InsertOrderedList'],s=ed.settings;t.editor=ed;ed.onInit.add(function(){ed.onNodeChange.add(function(ed,cm){tinymce.each(states,function(c){cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));});});ed.dom.loadCSS(url+&quot;/skins/&quot;+s.skin+&quot;/content.css&quot;);});DOM.loadCSS((s.editor_css?ed.baseURI.toAbsolute(s.editor_css):'')||url+&quot;/skins/&quot;+s.skin+&quot;/ui.css&quot;);},renderUI:function(o){var t=this,n=o.targetNode,ic,tb,ed=t.editor,cf=ed.controlManager,sc;n=DOM.insertAfter(DOM.create('span',{id:ed.id+'_container','class':'mceEditor '+ed.settings.skin+'SimpleSkin'}),n);n=sc=DOM.add(n,'table',{cellPadding:0,cellSpacing:0,'class':'mceLayout'});n=tb=DOM.add(n,'tbody');n=DOM.add(tb,'tr');n=ic=DOM.add(DOM.add(n,'td'),'div',{'class':'mceIframeContainer'});n=DOM.add(DOM.add(tb,'tr',{'class':'last'}),'td',{'class':'mceToolbar mceLast',align:'center'});tb=t.toolbar=cf.createToolbar(&quot;tools1&quot;);tb.add(cf.createButton('bold',{title:'simple.bold_desc',cmd:'Bold'}));tb.add(cf.createButton('italic',{title:'simple.italic_desc',cmd:'Italic'}));tb.add(cf.createButton('underline',{title:'simple.underline_desc',cmd:'Underline'}));tb.add(cf.createButton('strikethrough',{title:'simple.striketrough_desc',cmd:'Strikethrough'}));tb.add(cf.createSeparator());tb.add(cf.createButton('undo',{title:'simple.undo_desc',cmd:'Undo'}));tb.add(cf.createButton('redo',{title:'simple.redo_desc',cmd:'Redo'}));tb.add(cf.createSeparator());tb.add(cf.createButton('cleanup',{title:'simple.cleanup_desc',cmd:'mceCleanup'}));tb.add(cf.createSeparator());tb.add(cf.createButton('insertunorderedlist',{title:'simple.bullist_desc',cmd:'InsertUnorderedList'}));tb.add(cf.createButton('insertorderedlist',{title:'simple.numlist_desc',cmd:'InsertOrderedList'}));tb.renderTo(n);return{iframeContainer:ic,editorContainer:ed.id+'_container',sizeContainer:sc,deltaHeight:-20};},getInfo:function(){return{longname:'Simple theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.ThemeManager.add('simple',tinymce.themes.SimpleTheme);})();
\ No newline at end of file
+(function(){var a=tinymce.DOM;tinymce.ThemeManager.requireLangPack(&quot;simple&quot;);tinymce.create(&quot;tinymce.themes.SimpleTheme&quot;,{init:function(c,d){var e=this,b=[&quot;Bold&quot;,&quot;Italic&quot;,&quot;Underline&quot;,&quot;Strikethrough&quot;,&quot;InsertUnorderedList&quot;,&quot;InsertOrderedList&quot;],f=c.settings;e.editor=c;c.onInit.add(function(){c.onNodeChange.add(function(h,g){tinymce.each(b,function(i){g.get(i.toLowerCase()).setActive(h.queryCommandState(i))})});c.dom.loadCSS(d+&quot;/skins/&quot;+f.skin+&quot;/content.css&quot;)});a.loadCSS((f.editor_css?c.documentBaseURI.toAbsolute(f.editor_css):&quot;&quot;)||d+&quot;/skins/&quot;+f.skin+&quot;/ui.css&quot;)},renderUI:function(h){var e=this,i=h.targetNode,b,c,d=e.editor,f=d.controlManager,g;i=a.insertAfter(a.create(&quot;span&quot;,{id:d.id+&quot;_container&quot;,&quot;class&quot;:&quot;mceEditor &quot;+d.settings.skin+&quot;SimpleSkin&quot;}),i);i=g=a.add(i,&quot;table&quot;,{cellPadding:0,cellSpacing:0,&quot;class&quot;:&quot;mceLayout&quot;});i=c=a.add(i,&quot;tbody&quot;);i=a.add(c,&quot;tr&quot;);i=b=a.add(a.add(i,&quot;td&quot;),&quot;div&quot;,{&quot;class&quot;:&quot;mceIframeContainer&quot;});i=a.add(a.add(c,&quot;tr&quot;,{&quot;class&quot;:&quot;last&quot;}),&quot;td&quot;,{&quot;class&quot;:&quot;mceToolbar mceLast&quot;,align:&quot;center&quot;});c=e.toolbar=f.createToolbar(&quot;tools1&quot;);c.add(f.createButton(&quot;bold&quot;,{title:&quot;simple.bold_desc&quot;,cmd:&quot;Bold&quot;}));c.add(f.createButton(&quot;italic&quot;,{title:&quot;simple.italic_desc&quot;,cmd:&quot;Italic&quot;}));c.add(f.createButton(&quot;underline&quot;,{title:&quot;simple.underline_desc&quot;,cmd:&quot;Underline&quot;}));c.add(f.createButton(&quot;strikethrough&quot;,{title:&quot;simple.striketrough_desc&quot;,cmd:&quot;Strikethrough&quot;}));c.add(f.createSeparator());c.add(f.createButton(&quot;undo&quot;,{title:&quot;simple.undo_desc&quot;,cmd:&quot;Undo&quot;}));c.add(f.createButton(&quot;redo&quot;,{title:&quot;simple.redo_desc&quot;,cmd:&quot;Redo&quot;}));c.add(f.createSeparator());c.add(f.createButton(&quot;cleanup&quot;,{title:&quot;simple.cleanup_desc&quot;,cmd:&quot;mceCleanup&quot;}));c.add(f.createSeparator());c.add(f.createButton(&quot;insertunorderedlist&quot;,{title:&quot;simple.bullist_desc&quot;,cmd:&quot;InsertUnorderedList&quot;}));c.add(f.createButton(&quot;insertorderedlist&quot;,{title:&quot;simple.numlist_desc&quot;,cmd:&quot;InsertOrderedList&quot;}));c.renderTo(i);return{iframeContainer:b,editorContainer:d.id+&quot;_container&quot;,sizeContainer:g,deltaHeight:-20}},getInfo:function(){return{longname:&quot;Simple theme&quot;,author:&quot;Moxiecode Systems AB&quot;,authorurl:&quot;http://tinymce.moxiecode.com&quot;,version:tinymce.majorVersion+&quot;.&quot;+tinymce.minorVersion}}});tinymce.ThemeManager.add(&quot;simple&quot;,tinymce.themes.SimpleTheme)})();
\ No newline at end of file</diff>
      <filename>lib/tiny_mce/themes/simple/editor_template.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: editor_template_src.js 752 2008-03-27 21:51:25Z spocke $
+ * $Id: editor_template_src.js 920 2008-09-09 14:05:33Z spocke $
  *
  * This file is meant to showcase how to create a simple theme. The advanced
  * theme is more suitable for production use.
@@ -30,7 +30,7 @@
 				ed.dom.loadCSS(url + &quot;/skins/&quot; + s.skin + &quot;/content.css&quot;);
 			});
 
-			DOM.loadCSS((s.editor_css ? ed.baseURI.toAbsolute(s.editor_css) : '') || url + &quot;/skins/&quot; + s.skin + &quot;/ui.css&quot;);
+			DOM.loadCSS((s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : '') || url + &quot;/skins/&quot; + s.skin + &quot;/ui.css&quot;);
 		},
 
 		renderUI : function(o) {</diff>
      <filename>lib/tiny_mce/themes/simple/editor_template_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/simple/img/icons.gif</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/simple/langs/en.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/simple/skins/default/content.css</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@
 .defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px}
 .defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}
 .defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0}
-.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; filter:alpha(opacity=30)}
+.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
 
 /* Separator */
 .defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px}</diff>
      <filename>lib/tiny_mce/themes/simple/skins/default/ui.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/simple/skins/o2k7/content.css</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png</filename>
    </modified>
    <modified>
      <diff>@@ -18,7 +18,7 @@
 .o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px}
 .o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}
 .o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px}
-.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; filter:alpha(opacity=30)}
+.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
 
 /* Separator */
 .o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}</diff>
      <filename>lib/tiny_mce/themes/simple/skins/o2k7/ui.css</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-var tinymce={majorVersion:'3',minorVersion:'1.0.1',releaseDate:'2008-06-18',_init:function(){var t=this,d=document,w=window,na=navigator,ua=na.userAgent,i,nl,n,base,p,v;t.isOpera=w.opera&amp;&amp;opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isOldWebKit=t.isWebKit&amp;&amp;!w.getSelection().getRangeAt;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;if(w.tinyMCEPreInit){t.suffix=tinyMCEPreInit.suffix;t.baseURL=tinyMCEPreInit.base;t.query=tinyMCEPreInit.query;return;}t.suffix='';nl=d.getElementsByTagName('base');for(i=0;i&lt;nl.length;i++){if(v=nl[i].href){if(/^https?:\/\/[^\/]+$/.test(v))v+='/';base=v?v.match(/.*\//)[0]:'';}}function getBase(n){if(n.src&amp;&amp;/tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)){if(/_(src|dev)\.js/g.test(n.src))t.suffix='_src';if((p=n.src.indexOf('?'))!=-1)t.query=n.src.substring(p+1);t.baseURL=n.src.substring(0,n.src.lastIndexOf('/'));if(base&amp;&amp;t.baseURL.indexOf('://')==-1)t.baseURL=base+t.baseURL;return t.baseURL;}return null;};nl=d.getElementsByTagName('script');for(i=0;i&lt;nl.length;i++){if(getBase(nl[i]))return;}n=d.getElementsByTagName('head')[0];if(n){nl=n.getElementsByTagName('script');for(i=0;i&lt;nl.length;i++){if(getBase(nl[i]))return;}}return;},is:function(o,t){var n=typeof(o);if(!t)return n!='undefined';if(t=='array'&amp;&amp;(o instanceof Array))return true;return n==t;},each:function(o,cb,s){var n,l;if(!o)return 0;s=s||o;if(typeof(o.length)!='undefined'){for(n=0,l=o.length;n&lt;l;n++){if(cb.call(s,o[n],n,o)===false)return 0;}}else{for(n in o){if(o.hasOwnProperty(n)){if(cb.call(s,o[n],n,o)===false)return 0;}}}return 1;},map:function(a,f){var o=[];tinymce.each(a,function(v){o.push(f(v));});return o;},grep:function(a,f){var o=[];tinymce.each(a,function(v){if(!f||f(v))o.push(v);});return o;},inArray:function(a,v){var i,l;if(a){for(i=0,l=a.length;i&lt;l;i++){if(a[i]===v)return i;}}return-1;},extend:function(o,e){var i,a=arguments;for(i=1;i&lt;a.length;i++){e=a[i];tinymce.each(e,function(v,n){if(typeof(v)!=='undefined')o[n]=v;});}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;s=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);cn=s[3].match(/(^|\.)(\w+)$/i)[2];ns=t.createNS(s[3].replace(/\.\w+$/,''));if(ns[cn])return;if(s[2]=='static'){ns[cn]=p;if(this.onCreate)this.onCreate(s[2],s[3],ns[cn]);return;}if(!p[cn]){p[cn]=function(){};de=1;}ns[cn]=p[cn];t.extend(ns[cn].prototype,p);if(s[5]){sp=t.resolve(s[5]).prototype;scn=s[5].match(/\.(\w+)$/i)[1];c=ns[cn];if(de){ns[cn]=function(){return sp[scn].apply(this,arguments);};}else{ns[cn]=function(){this.parent=sp[scn];return c.apply(this,arguments);};}ns[cn].prototype[cn]=ns[cn];t.each(sp,function(f,n){ns[cn].prototype[n]=sp[n];});t.each(p,function(f,n){if(sp[n]){ns[cn].prototype[n]=function(){this.parent=sp[n];return f.apply(this,arguments);};}else{if(n!=cn)ns[cn].prototype[n]=f;}});}t.each(p['static'],function(f,n){ns[cn][n]=f;});if(this.onCreate)this.onCreate(s[2],s[3],ns[cn].prototype);},walk:function(o,f,n,s){s=s||this;if(o){if(n)o=o[n];tinymce.each(o,function(o,i){if(f.call(s,o,i,n)===false)return false;tinymce.walk(o,f,n,s);});}},createNS:function(n,o){var i,v;o=o||window;n=n.split('.');for(i=0;i&lt;n.length;i++){v=n[i];if(!o[v])o[v]={};o=o[v];}return o;},resolve:function(n,o){var i,l;o=o||window;n=n.split('.');for(i=0,l=n.length;i&lt;l;i++){o=o[n[i]];if(!o)break;}return o;},addUnload:function(f,s){var t=this,w=window;f={func:f,scope:s||this};if(!t.unloads){function unload(){var li=t.unloads,o,n;if(li){for(n in li){o=li[n];if(o&amp;&amp;o.func)o.func.call(o.scope,1);}if(w.detachEvent){w.detachEvent('onbeforeunload',fakeUnload);w.detachEvent('onunload',unload);}else if(w.removeEventListener)w.removeEventListener('unload',unload,false);t.unloads=o=li=w=unload=null;if(window.CollectGarbage)window.CollectGarbage();}};function fakeUnload(){var d=document;if(d.readyState=='interactive'){function stop(){d.detachEvent('onstop',stop);unload();d=null;};d.attachEvent('onstop',stop);window.setTimeout(function(){d.detachEvent('onstop',stop);},0);}};if(w.attachEvent){w.attachEvent('onunload',unload);w.attachEvent('onbeforeunload',fakeUnload);}else if(w.addEventListener)w.addEventListener('unload',unload,false);t.unloads=[f];}else t.unloads.push(f);return f;},removeUnload:function(f){var u=this.unloads,r=null;tinymce.each(u,function(o,i){if(o&amp;&amp;o.func==f){u.splice(i,1);r=f;return false;}});return r;},explode:function(s,d){return s?tinymce.map(s.split(d||','),tinymce.trim):s;},_addVer:function(u){var v;if(!this.query)return u;v=(u.indexOf('?')==-1?'?':'&amp;')+this.query;if(u.indexOf('#')==-1)return u+v;return u.replace('#',v+'#');}};window.tinymce=tinymce;tinymce._init();tinymce.create('tinymce.util.Dispatcher',{scope:null,listeners:null,Dispatcher:function(s){this.scope=s||this;this.listeners=[];},add:function(cb,s){this.listeners.push({cb:cb,scope:s||this.scope});return cb;},addToTop:function(cb,s){this.listeners.unshift({cb:cb,scope:s||this.scope});return cb;},remove:function(cb){var l=this.listeners,o=null;tinymce.each(l,function(c,i){if(cb==c.cb){o=cb;l.splice(i,1);return false;}});return o;},dispatch:function(){var s,a=arguments,i,li=this.listeners,c;for(i=0;i&lt;li.length;i++){c=li[i];s=c.cb.apply(c.scope,a);if(s===false)break;}return s;}});(function(){var each=tinymce.each;tinymce.create('tinymce.util.URI',{URI:function(u,s){var t=this,o,a,b;s=t.settings=s||{};if(/^(mailto|news|javascript|about):/i.test(u)||/^\s*#/.test(u)){t.source=u;return;}if(u.indexOf('/')===0&amp;&amp;u.indexOf('//')!==0)u=(s.base_uri?s.base_uri.protocol||'http':'http')+'://mce_host'+u;if(u.indexOf('://')===-1&amp;&amp;u.indexOf('//')!==0)u=(s.base_uri.protocol||'http')+'://mce_host'+t.toAbsPath(s.base_uri.path,u);u=u.replace(/@@/g,'(mce_at)');u=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);each([&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(v,i){var s=u[i];if(s)s=s.replace(/\(mce_at\)/g,'@@');t[v]=s;});if(b=s.base_uri){if(!t.protocol)t.protocol=b.protocol;if(!t.userInfo)t.userInfo=b.userInfo;if(!t.port&amp;&amp;t.host=='mce_host')t.port=b.port;if(!t.host||t.host=='mce_host')t.host=b.host;t.source='';}},setPath:function(p){var t=this;p=/^(.*?)\/?(\w+)?$/.exec(p);t.path=p[0];t.directory=p[1];t.file=p[2];t.source='';t.getURI();},toRelative:function(u){var t=this,o;u=new tinymce.util.URI(u,{base_uri:t});if((u.host!='mce_host'&amp;&amp;t.host!=u.host&amp;&amp;u.host)||t.port!=u.port||t.protocol!=u.protocol)return u.getURI();o=t.toRelPath(t.path,u.path);if(u.query)o+='?'+u.query;if(u.anchor)o+='#'+u.anchor;return o;},toAbsolute:function(u,nh){var u=new tinymce.util.URI(u,{base_uri:this});return u.getURI(this.host==u.host?nh:0);},toRelPath:function(base,path){var items,bp=0,out='',i;base=base.substring(0,base.lastIndexOf('/'));base=base.split('/');items=path.split('/');if(base.length&gt;=items.length){for(i=0;i&lt;base.length;i++){if(i&gt;=items.length||base[i]!=items[i]){bp=i+1;break;}}}if(base.length&lt;items.length){for(i=0;i&lt;items.length;i++){if(i&gt;=base.length||base[i]!=items[i]){bp=i+1;break;}}}if(bp==1)return path;for(i=0;i&lt;base.length-(bp-1);i++)out+=&quot;../&quot;;for(i=bp-1;i&lt;items.length;i++){if(i!=bp-1)out+=&quot;/&quot;+items[i];else out+=items[i];}return out;},toAbsPath:function(base,path){var i,nb=0,o=[];base=base.split('/');path=path.split('/');each(base,function(k){if(k)o.push(k);});base=o;for(i=path.length-1,o=[];i&gt;=0;i--){if(path[i].length==0||path[i]==&quot;.&quot;)continue;if(path[i]=='..'){nb++;continue;}if(nb&gt;0){nb--;continue;}o.push(path[i]);}i=base.length-nb;if(i&lt;=0)return'/'+o.reverse().join('/');return'/'+base.slice(0,i).join('/')+'/'+o.reverse().join('/');},getURI:function(nh){var s,t=this;if(!t.source||nh){s='';if(!nh){if(t.protocol)s+=t.protocol+'://';if(t.userInfo)s+=t.userInfo+'@';if(t.host)s+=t.host;if(t.port)s+=':'+t.port;}if(t.path)s+=t.path;if(t.query)s+='?'+t.query;if(t.anchor)s+='#'+t.anchor;t.source=s;}return t.source;}});})();(function(){var each=tinymce.each;tinymce.create('static tinymce.util.Cookie',{getHash:function(n){var v=this.get(n),h;if(v){each(v.split('&amp;'),function(v){v=v.split('=');h=h||{};h[unescape(v[0])]=unescape(v[1]);});}return h;},setHash:function(n,v,e,p,d,s){var o='';each(v,function(v,k){o+=(!o?'':'&amp;')+escape(k)+'='+escape(v);});this.set(n,o,e,p,d,s);},get:function(n){var c=document.cookie,e,p=n+&quot;=&quot;,b;if(!c)return;b=c.indexOf(&quot;; &quot;+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null;}else b+=2;e=c.indexOf(&quot;;&quot;,b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e));},set:function(n,v,e,p,d,s){document.cookie=n+&quot;=&quot;+escape(v)+((e)?&quot;; expires=&quot;+e.toGMTString():&quot;&quot;)+((p)?&quot;; path=&quot;+escape(p):&quot;&quot;)+((d)?&quot;; domain=&quot;+d:&quot;&quot;)+((s)?&quot;; secure&quot;:&quot;&quot;);},remove:function(n,p){var d=new Date();d.setTime(d.getTime()-1000);this.set(n,'',d,p,d);}});})();tinymce.create('static tinymce.util.JSON',{serialize:function(o){var i,v,s=tinymce.util.JSON.serialize,t;if(o==null)return'null';t=typeof o;if(t=='string'){v='\bb\tt\nn\ff\rr\&quot;&quot;\'\'\\\\';return'&quot;'+o.replace(/([\u0080-\uFFFF\x00-\x1f\&quot;\'])/g,function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a;})+'&quot;';}if(t=='object'){if(o instanceof Array){for(i=0,v='[';i&lt;o.length;i++)v+=(i&gt;0?',':'')+s(o[i]);return v+']';}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length&gt;1?',&quot;':'&quot;')+i+'&quot;:'+s(o[i]):'';return v+'}';}return''+o;},parse:function(s){try{return eval('('+s+')');}catch(ex){}}});tinymce.create('static tinymce.util.XHR',{send:function(o){var x,t,w=window,c=0;o.scope=o.scope||this;o.success_scope=o.success_scope||o.scope;o.error_scope=o.error_scope||o.scope;o.async=o.async===false?false:true;o.data=o.data||'';function get(s){x=0;try{x=new ActiveXObject(s);}catch(ex){}return x;};x=w.XMLHttpRequest?new XMLHttpRequest():get('Microsoft.XMLHTTP')||get('Msxml2.XMLHTTP');if(x){if(x.overrideMimeType)x.overrideMimeType(o.content_type);x.open(o.type||(o.data?'POST':'GET'),o.url,o.async);if(o.content_type)x.setRequestHeader('Content-Type',o.content_type);x.send(o.data);function ready(){if(!o.async||x.readyState==4||c++&gt;10000){if(o.success&amp;&amp;c&lt;10000&amp;&amp;x.status==200)o.success.call(o.success_scope,''+x.responseText,x,o);else if(o.error)o.error.call(o.error_scope,c&gt;10000?'TIMED_OUT':'GENERAL',x,o);x=null;}else w.setTimeout(ready,10);};if(!o.async)return ready();t=w.setTimeout(ready,10);}}});(function(){var extend=tinymce.extend,JSON=tinymce.util.JSON,XHR=tinymce.util.XHR;tinymce.create('tinymce.util.JSONRequest',{JSONRequest:function(s){this.settings=extend({},s);this.count=0;},send:function(o){var ecb=o.error,scb=o.success;o=extend(this.settings,o);o.success=function(c,x){c=JSON.parse(c);if(typeof(c)=='undefined'){c={error:'JSON Parse error.'};}if(c.error)ecb.call(o.error_scope||o.scope,c.error,x);else scb.call(o.success_scope||o.scope,c.result);};o.error=function(ty,x){ecb.call(o.error_scope||o.scope,ty,x);};o.data=JSON.serialize({id:o.id||'c'+(this.count++),method:o.method,params:o.params});o.content_type='application/json';XHR.send(o);},'static':{sendRPC:function(o){return new tinymce.util.JSONRequest().send(o);}}});}());(function(){var each=tinymce.each,is=tinymce.is;var isWebKit=tinymce.isWebKit,isIE=tinymce.isIE;tinymce.create('tinymce.dom.DOMUtils',{doc:null,root:null,files:null,listeners:{},pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,cache:{},idPattern:/^#[\w]+$/,elmPattern:/^[\w_*]+$/,elmClassPattern:/^([\w_]*)\.([\w_]+)$/,DOMUtils:function(d,s){var t=this;t.doc=d;t.win=window;t.files={};t.cssFlicker=false;t.counter=0;t.boxModel=!tinymce.isIE||d.compatMode==&quot;CSS1Compat&quot;;t.stdMode=d.documentMode===8;this.settings=s=tinymce.extend({keep_values:false,hex_colors:1,process_html:1},s);if(tinymce.isIE6){try{d.execCommand('BackgroundImageCache',false,true);}catch(e){t.cssFlicker=true;}}tinymce.addUnload(t.destroy,t);},getRoot:function(){var t=this,s=t.settings;return(s&amp;&amp;t.get(s.root_element))||t.doc.body;},getViewPort:function(w){var d,b;w=!w?this.win:w;d=w.document;b=this.boxModel?d.documentElement:d.body;return{x:w.pageXOffset||b.scrollLeft,y:w.pageYOffset||b.scrollTop,w:w.innerWidth||b.clientWidth,h:w.innerHeight||b.clientHeight};},getRect:function(e){var p,t=this,w,h;e=t.get(e);p=t.getPos(e);w=t.getStyle(e,'width');h=t.getStyle(e,'height');if(w.indexOf('px')===-1)w=0;if(h.indexOf('px')===-1)h=0;return{x:p.x,y:p.y,w:parseInt(w)||e.offsetWidth||e.clientWidth,h:parseInt(h)||e.offsetHeight||e.clientHeight};},getParent:function(n,f,r){var na,se=this.settings;n=this.get(n);if(se.strict_root)r=r||this.getRoot();if(is(f,'string')){na=f.toUpperCase();f=function(n){var s=false;if(n.nodeType==1&amp;&amp;na==='*'){s=true;return false;}each(na.split(','),function(v){if(n.nodeType==1&amp;&amp;((se.strict&amp;&amp;n.nodeName.toUpperCase()==v)||n.nodeName.toUpperCase()==v)){s=true;return false;}});return s;};}while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode;}return null;},get:function(e){var n;if(e&amp;&amp;this.doc&amp;&amp;typeof(e)=='string'){n=e;e=this.doc.getElementById(e);if(e&amp;&amp;e.id!==n)return this.doc.getElementsByName(n)[1];}return e;},select:function(pa,s){var t=this,cs,c,pl,o=[],x,i,l,n;s=t.get(s)||t.doc;if(s.querySelectorAll){if(s!=t.doc){i=s.id;s.id='_mc_tmp';pa='#_mc_tmp '+pa;}l=tinymce.grep(s.querySelectorAll(pa));s.id=i;return l;}if(t.settings.strict){function get(s,n){return s.getElementsByTagName(n.toLowerCase());};}else{function get(s,n){return s.getElementsByTagName(n);};}if(t.elmPattern.test(pa)){x=get(s,pa);for(i=0,l=x.length;i&lt;l;i++)o.push(x[i]);return o;}if(t.elmClassPattern.test(pa)){pl=t.elmClassPattern.exec(pa);x=get(s,pl[1]||'*');c=' '+pl[2]+' ';for(i=0,l=x.length;i&lt;l;i++){n=x[i];if(n.className&amp;&amp;(' '+n.className+' ').indexOf(c)!==-1)o.push(n);}return o;}function collect(n){if(!n.mce_save){n.mce_save=1;o.push(n);}};function collectIE(n){if(!n.getAttribute('mce_save')){n.setAttribute('mce_save','1');o.push(n);}};function find(n,f,r){var i,l,nl=get(r,n);for(i=0,l=nl.length;i&lt;l;i++)f(nl[i]);};each(pa.split(','),function(v,i){v=tinymce.trim(v);if(t.elmPattern.test(v)){each(get(s,v),function(n){collect(n);});return;}if(t.elmClassPattern.test(v)){x=t.elmClassPattern.exec(v);each(get(s,x[1]),function(n){if(t.hasClass(n,x[2]))collect(n);});return;}if(!(cs=t.cache[pa])){cs='x=(function(cf, s) {';pl=v.split(' ');each(pl,function(v){var p=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i.exec(v);p[1]=p[1]||'*';cs+='find(&quot;'+p[1]+'&quot;, function(n) {';if(p[2])cs+='if (n.id !== &quot;'+p[2]+'&quot;) return;';if(p[3]){cs+='var c = &quot; &quot; + n.className + &quot; &quot;;';cs+='if (';c='';each(p[3].split('.'),function(v){if(v)c+=(c?'||':'')+'c.indexOf(&quot; '+v+' &quot;) === -1';});cs+=c+') return;';}});cs+='cf(n);';for(i=pl.length-1;i&gt;=0;i--)cs+='}, '+(i?'n':'s')+');';cs+='})';t.cache[pa]=cs=eval(cs);}cs(isIE?collectIE:collect,s);});each(o,function(n){if(isIE)n.removeAttribute('mce_save');else delete n.mce_save;});return o;},add:function(p,n,a,h,c){var t=this;return this.run(p,function(p){var e,k;e=is(n,'string')?t.doc.createElement(n):n;if(a){for(k in a){if(a.hasOwnProperty(k)&amp;&amp;!is(a[k],'object'))t.setAttrib(e,k,''+a[k]);}if(a.style&amp;&amp;!is(a.style,'string')){each(a.style,function(v,n){t.setStyle(e,n,v);});}}if(h){if(h.nodeType)e.appendChild(h);else t.setHTML(e,h);}return!c?p.appendChild(e):e;});},create:function(n,a,h){return this.add(this.doc.createElement(n),n,a,h,1);},createHTML:function(n,a,h){var o='',t=this,k;o+='&lt;'+n;for(k in a){if(a.hasOwnProperty(k))o+=' '+k+'=&quot;'+t.encode(a[k])+'&quot;';}if(tinymce.is(h))return o+'&gt;'+h+'&lt;/'+n+'&gt;';return o+' /&gt;';},remove:function(n,k){return this.run(n,function(n){var p,g;p=n.parentNode;if(!p)return null;if(k){each(n.childNodes,function(c){p.insertBefore(c.cloneNode(true),n);});}return p.removeChild(n);});},setStyle:function(n,na,v){var t=this;return t.run(n,function(e){var s,i;s=e.style;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(t.pixelStyles.test(na)&amp;&amp;(tinymce.is(v,'number')||/^[\-0-9\.]+$/.test(v)))v+='px';switch(na){case'opacity':if(isIE){s.filter=v===''?'':&quot;alpha(opacity=&quot;+(v*100)+&quot;)&quot;;if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block';}s[na]=s['-moz-opacity']=s['-khtml-opacity']=v||'';break;case'float':isIE?s.styleFloat=v:s.cssFloat=v;break;default:s[na]=v||'';}if(t.settings.update_styles)t.setAttrib(e,'mce_style');});},getStyle:function(n,na,c){n=this.get(n);if(!n)return false;if(this.doc.defaultView&amp;&amp;c){na=na.replace(/[A-Z]/g,function(a){return'-'+a;});try{return this.doc.defaultView.getComputedStyle(n,null).getPropertyValue(na);}catch(ex){return null;}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(na=='float')na=isIE?'styleFloat':'cssFloat';if(n.currentStyle&amp;&amp;c)return n.currentStyle[na];return n.style[na];},setStyles:function(e,o){var t=this,s=t.settings,ol;ol=s.update_styles;s.update_styles=0;each(o,function(v,n){t.setStyle(e,n,v);});s.update_styles=ol;if(s.update_styles)t.setAttrib(e,s.cssText);},setAttrib:function(e,n,v){var t=this;if(t.settings.strict)n=n.toLowerCase();return this.run(e,function(e){var s=t.settings;switch(n){case&quot;style&quot;:if(s.keep_values){if(v&amp;&amp;!t._isRes(v))e.setAttribute('mce_style',v,2);else e.removeAttribute('mce_style',2);}e.style.cssText=v;break;case&quot;class&quot;:e.className=v||'';break;case&quot;src&quot;:case&quot;href&quot;:if(s.keep_values){if(s.url_converter)v=s.url_converter.call(s.url_converter_scope||t,v,n,e);t.setAttrib(e,'mce_'+n,v,2);}break;case&quot;shape&quot;:e.setAttribute('mce_style',v);break;}if(is(v)&amp;&amp;v!==null&amp;&amp;v.length!==0)e.setAttribute(n,''+v,2);else e.removeAttribute(n,2);});},setAttribs:function(e,o){var t=this;return this.run(e,function(e){each(o,function(v,n){t.setAttrib(e,n,v);});});},getAttrib:function(e,n,dv){var v,t=this;e=t.get(e);if(!e||e.nodeType!==1)return false;if(!is(dv))dv=&quot;&quot;;if(/^(src|href|style|coords|shape)$/.test(n)){v=e.getAttribute(&quot;mce_&quot;+n);if(v)return v;}v=e.getAttribute(n,2);if(!v){switch(n){case'class':v=e.className;break;default:if(isIE&amp;&amp;n==='name'&amp;&amp;e.nodeName==='A'){v=e.name;break;}v=e.attributes[n];v=v&amp;&amp;is(v.nodeValue)?v.nodeValue:v;}}switch(n){case'style':v=v||e.style.cssText;if(v){v=t.serializeStyle(t.parseStyle(v));if(t.settings.keep_values&amp;&amp;!t._isRes(v))e.setAttribute('mce_style',v);}break;}if(isWebKit&amp;&amp;n===&quot;class&quot;&amp;&amp;v)v=v.replace(/(apple|webkit)\-[a-z\-]+/gi,'');if(isIE){switch(n){case'rowspan':case'colspan':if(v===1)v='';break;case'size':if(v==='+0')v='';break;case'hspace':if(v===-1)v='';break;case'tabindex':if(v===32768)v='';break;case'maxlength':if(v===2147483647)v='';break;case'shape':v=v.toLowerCase();break;default:if(n.indexOf('on')===0&amp;&amp;v)v=(''+v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1');}}return(v&amp;&amp;v!='')?''+v:dv;},getPos:function(n){var t=this,x=0,y=0,e,d=t.doc,r;n=t.get(n);if(n&amp;&amp;isIE){n=n.getBoundingClientRect();e=t.boxModel?d.documentElement:d.body;x=t.getStyle(t.select('html')[0],'borderWidth');x=(x=='medium'||t.boxModel&amp;&amp;!t.isIE6)&amp;&amp;2||x;n.top+=t.win.self!=t.win.top?2:0;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){if(!/^table-row|inline.*/i.test(t.getStyle(r,&quot;display&quot;,1))){x-=r.scrollLeft||0;y-=r.scrollTop||0;}r=r.parentNode;if(r==d.body)break;}return{x:x,y:y};},parseStyle:function(st){var t=this,s=t.settings,o={};if(!st)return o;function compress(p,s,ot){var t,r,b,l;t=o[p+'-top'+s];if(!t)return;r=o[p+'-right'+s];if(t!=r)return;b=o[p+'-bottom'+s];if(r!=b)return;l=o[p+'-left'+s];if(b!=l)return;o[ot]=l;delete o[p+'-top'+s];delete o[p+'-right'+s];delete o[p+'-bottom'+s];delete o[p+'-left'+s];};function compress2(ta,a,b,c){var t;t=o[a];if(!t)return;t=o[b];if(!t)return;t=o[c];if(!t)return;o[ta]=o[a]+' '+o[b]+' '+o[c];delete o[a];delete o[b];delete o[c];};st=st.replace(/&amp;(#?[a-z0-9]+);/g,'&amp;$1_MCE_SEMI_');each(st.split(';'),function(v){var sv,ur=[];if(v){v=v.replace(/_MCE_SEMI_/g,';');v=v.replace(/url\([^\)]+\)/g,function(v){ur.push(v);return'url('+ur.length+')';});v=v.split(':');sv=tinymce.trim(v[1]);sv=sv.replace(/url\(([^\)]+)\)/g,function(a,b){return ur[parseInt(b)-1];});sv=sv.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});if(s.url_converter){sv=sv.replace(/url\([\'\&quot;]?([^\)\'\&quot;]+)[\'\&quot;]?\)/g,function(x,c){return'url('+s.url_converter.call(s.url_converter_scope||t,t.decode(c),'style',null)+')';});}o[tinymce.trim(v[0]).toLowerCase()]=sv;}});compress(&quot;border&quot;,&quot;&quot;,&quot;border&quot;);compress(&quot;border&quot;,&quot;-width&quot;,&quot;border-width&quot;);compress(&quot;border&quot;,&quot;-color&quot;,&quot;border-color&quot;);compress(&quot;border&quot;,&quot;-style&quot;,&quot;border-style&quot;);compress(&quot;padding&quot;,&quot;&quot;,&quot;padding&quot;);compress(&quot;margin&quot;,&quot;&quot;,&quot;margin&quot;);compress2('border','border-width','border-style','border-color');if(isIE){if(o.border=='medium none')o.border='';}return o;},serializeStyle:function(o){var s='';each(o,function(v,k){if(k&amp;&amp;v){if(tinymce.isGecko&amp;&amp;k.indexOf('-moz-')===0)return;switch(k){case'color':case'background-color':v=v.toLowerCase();break;}s+=(s?' ':'')+k+': '+v+';';}});return s;},loadCSS:function(u){var t=this,d=t.doc;if(!u)u='';each(u.split(','),function(u){if(t.files[u])return;t.files[u]=true;t.add(t.select('head')[0],'link',{rel:'stylesheet',href:tinymce._addVer(u)});});},addClass:function(e,c){return this.run(e,function(e){var o;if(!c)return 0;if(this.hasClass(e,c))return e.className;o=this.removeClass(e,c);return e.className=(o!=''?(o+' '):'')+c;});},removeClass:function(e,c){var t=this,re;return t.run(e,function(e){var v;if(t.hasClass(e,c)){if(!re)re=new RegExp(&quot;(^|\\s+)&quot;+c+&quot;(\\s+|$)&quot;,&quot;g&quot;);v=e.className.replace(re,' ');return e.className=tinymce.trim(v!=' '?v:'');}return e.className;});},hasClass:function(n,c){n=this.get(n);if(!n||!c)return false;return(' '+n.className+' ').indexOf(' '+c+' ')!==-1;},show:function(e){return this.setStyle(e,'display','block');},hide:function(e){return this.setStyle(e,'display','none');},isHidden:function(e){e=this.get(e);return e.style.display=='none'||this.getStyle(e,'display')=='none';},uniqueId:function(p){return(!p?'mce_':p)+(this.counter++);},setHTML:function(e,h){var t=this;return this.run(e,function(e){var x,i,nl,n,p,x;h=t.processHTML(h);if(isIE){function set(){try{e.innerHTML='&lt;br /&gt;'+h;e.removeChild(e.firstChild);}catch(ex){while(e.firstChild)e.firstChild.removeNode();x=t.create('div');x.innerHTML='&lt;br /&gt;'+h;each(x.childNodes,function(n,i){if(i)e.appendChild(n);});}};if(t.settings.fix_ie_paragraphs)h=h.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;');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName(&quot;p&quot;);for(i=nl.length-1,x=0;i&gt;=0;i--){n=nl[i];if(!n.hasChildNodes()){if(!n.mce_keep){x=1;break;}n.removeAttribute('mce_keep');}}}if(x){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;/g,'&lt;/div&gt;');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName(&quot;DIV&quot;);for(i=nl.length-1;i&gt;=0;i--){n=nl[i];if(n.mce_tmp){p=t.doc.createElement('p');n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(a,b){var v;if(b!=='mce_tmp'){v=n.getAttribute(b);if(!v&amp;&amp;b==='class')v=n.className;p.setAttribute(b,v);}});for(x=0;x&lt;n.childNodes.length;x++)p.appendChild(n.childNodes[x].cloneNode(true));n.swapNode(p);}}}}}else e.innerHTML=h;return h;});},processHTML:function(h){var t=this,s=t.settings;if(!s.process_html)return h;if(tinymce.isGecko){h=h.replace(/&lt;(\/?)strong&gt;|&lt;strong( [^&gt;]+)&gt;/gi,'&lt;$1b$2&gt;');h=h.replace(/&lt;(\/?)em&gt;|&lt;em( [^&gt;]+)&gt;/gi,'&lt;$1i$2&gt;');}else if(isIE)h=h.replace(/&amp;apos;/g,'&amp;#39;');h=h.replace(/&lt;a( )([^&gt;]+)\/&gt;|&lt;a\/&gt;/gi,'&lt;a$1$2&gt;&lt;/a&gt;');if(s.keep_values){if(/&lt;script|style/.test(h)){function trim(s){s=s.replace(/^[\r\n]*|[\r\n]*$/g,'');s=s.replace(/^\s*(\/\/\s*&lt;!--|\/\/\s*&lt;\[CDATA\[|&lt;!--|&lt;\[CDATA\[)[\r\n]*/g,'');s=s.replace(/\s*(\/\/\s*\]\]&gt;|\/\/\s*--&gt;|\]\]&gt;|--&gt;)\s*$/g,'');return s;};h=h.replace(/&lt;script([^&gt;]+|)&gt;([\s\S]*?)&lt;\/script&gt;/g,function(v,a,b){b=trim(b);if(!a)a=' type=&quot;text/javascript&quot;';if(b)b='&lt;!--\n'+b+'\n// --&gt;';return'&lt;mce:script'+a+'&gt;'+b+'&lt;/mce:script&gt;';});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;';});}h=h.replace(/&lt;([\w:]+) [^&gt;]*(src|href|style|shape|coords)[^&gt;]*&gt;/gi,function(a,n){function handle(m,b,c){var u=c;if(a.indexOf('mce_'+b)!=-1)return m;if(b=='style'){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))+')';});}}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));}return' '+b+'=&quot;'+c+'&quot; mce_'+b+'=&quot;'+u+'&quot;';};a=a.replace(/ (src|href|style|coords|shape)=[\&quot;]([^\&quot;]+)[\&quot;]/gi,handle);a=a.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,handle);return a.replace(/ (src|href|style|coords|shape)=([^\s\&quot;\'&gt;]+)/gi,handle);});}return h;},getOuterHTML:function(e){var d;e=this.get(e);if(!e)return null;if(isIE)return e.outerHTML;d=(e.ownerDocument||this.doc).createElement(&quot;body&quot;);d.appendChild(e.cloneNode(true));return d.innerHTML;},setOuterHTML:function(e,h,d){var t=this;return this.run(e,function(e){var n,tp;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);}});},decode:function(s){var e;if(/&amp;[^;]+;/.test(s)){e=this.doc.createElement(&quot;div&quot;);e.innerHTML=s;return!e.firstChild?s:e.firstChild.nodeValue;}return s;},encode:function(s){return s?(''+s).replace(/[&lt;&gt;&amp;\&quot;]/g,function(c,b){switch(c){case'&amp;':return'&amp;amp;';case'&quot;':return'&amp;quot;';case'&lt;':return'&amp;lt;';case'&gt;':return'&amp;gt;';}return c;}):s;},insertAfter:function(n,r){var t=this;r=t.get(r);return this.run(n,function(n){var p,ns;p=r.parentNode;ns=r.nextSibling;if(ns)p.insertBefore(n,ns);else p.appendChild(n);return n;});},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|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);},replace:function(n,o,k){if(is(o,'array'))n=n.cloneNode(true);return this.run(o,function(o){if(k){each(o.childNodes,function(c){n.appendChild(c.cloneNode(true));});}return o.parentNode.replaceChild(n,o);});},toHex:function(s){var c=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);function hex(s){s=parseInt(s).toString(16);return s.length&gt;1?s:'0'+s;};if(c){s='#'+hex(c[1])+hex(c[2])+hex(c[3]);return s;}return s;},getClasses:function(){var t=this,cl=[],i,lo={},f=t.settings.class_filter,ov;if(t.classes)return t.classes;function addClasses(s){each(s.imports,function(r){addClasses(r);});each(s.cssRules||s.rules,function(r){switch(r.type||1){case 1:if(r.selectorText){each(r.selectorText.split(','),function(v){v=v.replace(/^\s*|\s*$|^\s\./g,&quot;&quot;);if(/\.mce/.test(v)||!/\.[\w\-]+$/.test(v))return;ov=v;v=v.replace(/.*\.([a-z0-9_\-]+).*/i,'$1');if(f&amp;&amp;!(v=f(v,ov)))return;if(!lo[v]){cl.push({'class':v});lo[v]=1;}});}break;case 3:addClasses(r.styleSheet);break;}});};try{each(t.doc.styleSheets,addClasses);}catch(ex){}if(cl.length&gt;0)t.classes=cl;return cl;},run:function(e,f,s){var t=this,o;if(t.doc&amp;&amp;typeof(e)==='string')e=t.doc.getElementById(e);if(!e)return false;s=s||this;if(!e.nodeType&amp;&amp;(e.length||e.length===0)){o=[];each(e,function(e,i){if(e){if(typeof(e)=='string')e=t.doc.getElementById(e);o.push(f.call(s,e,i));}});return o;}return f.call(s,e);},getAttribs:function(n){var o;n=this.get(n);if(!n)return[];if(isIE){o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;}return n.attributes;},destroy:function(s){var t=this;t.win=t.doc=t.root=null;if(!s)tinymce.removeUnload(t.destroy);},_isRes:function(c){return/^(top|left|bottom|right|width|height)/i.test(c)||/;\s*(top|left|bottom|right|width|height)/i.test(c);}});tinymce.DOM=new tinymce.dom.DOMUtils(document,{process_html:0});})();(function(){var each=tinymce.each,DOM=tinymce.DOM,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit,Event;tinymce.create('static tinymce.dom.Event',{inits:[],events:[],add:function(o,n,f,s){var cb,t=this,el=t.events,r;if(o&amp;&amp;o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.add(o,n,f,s));});return r;}o=DOM.get(o);if(!o)return;cb=function(e){e=e||window.event;if(e&amp;&amp;!e.target&amp;&amp;isIE)e.target=e.srcElement;if(!s)return f(e);return f.call(s,e);};if(n=='unload'){tinymce.unloads.unshift({func:cb});return cb;}if(n=='init'){if(t.domLoaded)cb();else t.inits.push(cb);return cb;}el.push({obj:o,name:n,func:f,cfunc:cb,scope:s});t._add(o,n,cb);return f;},remove:function(o,n,f){var t=this,a=t.events,s=false,r;if(o&amp;&amp;o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.remove(o,n,f));});return r;}o=DOM.get(o);each(a,function(e,i){if(e.obj==o&amp;&amp;e.name==n&amp;&amp;(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false;}});return s;},clear:function(o){var t=this,a=t.events,i,e;if(o){o=DOM.get(o);for(i=a.length-1;i&gt;=0;i--){e=a[i];if(e.obj===o){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;a.splice(i,1);}}}},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e);},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;},_unload:function(){var t=Event;each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;});t.events=[];t=null;},_add:function(o,n,f){if(o.attachEvent)o.attachEvent('on'+n,f);else if(o.addEventListener)o.addEventListener(n,f,false);else o['on'+n]=f;},_remove:function(o,n,f){if(o){try{if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null;}catch(ex){}}},_pageInit:function(){var e=Event;e._remove(window,'DOMContentLoaded',e._pageInit);e.domLoaded=true;each(e.inits,function(c){c();});e.inits=[];},_wait:function(){var t;if(window.tinyMCE_GZ&amp;&amp;tinyMCE_GZ.loaded){Event.domLoaded=1;return;}if(isIE&amp;&amp;document.location.protocol!='https:'){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;}};}else{Event._add(window,'DOMContentLoaded',Event._pageInit,Event);if(isIE||isWebKit){t=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(t);Event._pageInit();}},10);}}}});Event=tinymce.dom.Event;Event._wait();tinymce.addUnload(Event._unload);})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.Element',{Element:function(id,s){var t=this,dom,el;s=s||{};t.id=id;t.dom=dom=s.dom||tinymce.DOM;t.settings=s;if(!tinymce.isIE)el=t.dom.get(t.id);each(['getPos','getRect','getParent','add','setStyle','getStyle','setStyles','setAttrib','setAttribs','getAttrib','addClass','removeClass','hasClass','getOuterHTML','setOuterHTML','remove','show','hide','isHidden','setHTML','get'],function(k){t[k]=function(){var a=arguments,o;if(tinymce.isOpera){a=[id];each(arguments,function(v){a.push(v);});}else Array.prototype.unshift.call(a,el||id);o=dom[k].apply(dom,a);t.update(k);return o;};});},on:function(n,f,s){return tinymce.dom.Event.add(this.id,n,f,s);},getXY:function(){return{x:parseInt(this.getStyle('left')),y:parseInt(this.getStyle('top'))};},getSize:function(){var n=this.dom.get(this.id);return{w:parseInt(this.getStyle('width')||n.clientWidth),h:parseInt(this.getStyle('height')||n.clientHeight)};},moveTo:function(x,y){this.setStyles({left:x,top:y});},moveBy:function(x,y){var p=this.getXY();this.moveTo(p.x+x,p.y+y);},resizeTo:function(w,h){this.setStyles({width:w,height:h});},resizeBy:function(w,h){var s=this.getSize();this.resizeTo(s.w+w,s.h+h);},update:function(k){var t=this,b,dom=t.dom;if(tinymce.isIE6&amp;&amp;t.settings.blocker){k=k||'';if(k.indexOf('get')===0||k.indexOf('has')===0||k.indexOf('is')===0)return;if(k=='remove'){dom.remove(t.blocker);return;}if(!t.blocker){t.blocker=dom.uniqueId();b=dom.add(t.settings.container||dom.getRoot(),'iframe',{id:t.blocker,style:'position:absolute;',frameBorder:0,src:'javascript:&quot;&quot;'});dom.setStyle(b,'opacity',0);}else b=dom.get(t.blocker);dom.setStyle(b,'left',t.getStyle('left',1));dom.setStyle(b,'top',t.getStyle('top',1));dom.setStyle(b,'width',t.getStyle('width',1));dom.setStyle(b,'height',t.getStyle('height',1));dom.setStyle(b,'display',t.getStyle('display',1));dom.setStyle(b,'zIndex',parseInt(t.getStyle('zIndex',1)||0)-1);}}});})();(function(){function trimNl(s){return s.replace(/[\n\r]+/g,'');};var is=tinymce.is,isIE=tinymce.isIE,each=tinymce.each;tinymce.create('tinymce.dom.Selection',{Selection:function(dom,win,serializer){var t=this;t.dom=dom;t.win=win;t.serializer=serializer;tinymce.addUnload(t.destroy,t);},getContent:function(s){var t=this,r=t.getRng(),e=t.dom.create(&quot;body&quot;),se=t.getSel(),wb,wa,n;s=s||{};wb=wa='';s.get=true;s.format=s.format||'html';if(s.format=='text')return t.isCollapsed()?'':(r.text||(se.toString?se.toString():''));if(r.cloneContents){n=r.cloneContents();if(n)e.appendChild(n);}else if(is(r.item)||is(r.htmlText))e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;else e.innerHTML=r.toString();if(/^\s/.test(e.innerHTML))wb=' ';if(/\s+$/.test(e.innerHTML))wa=' ';s.getInner=true;return t.isCollapsed()?'':wb+t.serializer.serialize(e,s)+wa;},setContent:function(h,s){var t=this,r=t.getRng(),d=t.win.document;s=s||{format:'html'};s.set=true;h=t.dom.processHTML(h);if(r.insertNode){if(tinymce.isGecko&amp;&amp;h.indexOf('&lt;')==-1){r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h+'&lt;span id=&quot;__caret&quot;&gt;_&lt;/span&gt;'));t.select(t.dom.get('__caret'));t.getRng().deleteContents();return;}try{if(d.queryCommandEnabled('InsertHTML'))return d.execCommand('InsertHTML',false,h);}catch(ex){r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h));}}else{if(r.item){d.execCommand('Delete',false,null);r=t.getRng();}r.pasteHTML(h);}},getStart:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(1);e=r.parentElement();if(e&amp;&amp;e.nodeName=='BODY')return e.firstChild;return e;}else{e=r.startContainer;if(e.nodeName=='BODY')return e.firstChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getEnd:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(0);e=r.parentElement();if(e&amp;&amp;e.nodeName=='BODY')return e.lastChild;return e;}else{e=r.endContainer;if(e.nodeName=='BODY')return e.lastChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getBookmark:function(si){var t=this,r=t.getRng(),tr,sx,sy,vp=t.dom.getViewPort(t.win),e,sp,bp,le,c=-0xFFFFFF,s,ro=t.dom.getRoot(),wb=0,wa=0,nv;sx=vp.x;sy=vp.y;if(si=='simple')return{rng:r,scrollX:sx,scrollY:sy};if(isIE){if(r.item){e=r.item(0);each(t.dom.select(e.nodeName),function(n,i){if(e==n){sp=i;return false;}});return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy};}tr=t.dom.doc.body.createTextRange();tr.moveToElementText(ro);tr.collapse(true);bp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(true);sp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(false);le=Math.abs(tr.move('character',c))-sp;return{start:sp-bp,length:le,scrollX:sx,scrollY:sy};}e=t.getNode();s=t.getSel();if(!s)return null;if(e&amp;&amp;e.nodeName=='IMG'){return{scrollX:sx,scrollY:sy};}function getPos(r,sn,en){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d;}p+=trimNl(n.nodeValue||'').length;}return null;};if(s.anchorNode==s.focusNode&amp;&amp;s.anchorOffset==s.focusOffset){e=getPos(ro,s.anchorNode,s.focusNode);if(!e)return{scrollX:sx,scrollY:sy};trimNl(s.anchorNode.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});return{start:Math.max(e.start+s.anchorOffset-wb,0),end:Math.max(e.end+s.focusOffset-wb,0),scrollX:sx,scrollY:sy,beg:s.anchorOffset-wb==0};}else{e=getPos(ro,r.startContainer,r.endContainer);if(!e)return{scrollX:sx,scrollY:sy};return{start:Math.max(e.start+r.startOffset-wb,0),end:Math.max(e.end+r.endOffset-wa,0),scrollX:sx,scrollY:sy,beg:r.startOffset-wb==0};}},moveToBookmark:function(b){var t=this,r=t.getRng(),s=t.getSel(),ro=t.dom.getRoot(),sd,nvl,nv;function getPos(r,sp,ep){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={},o,v,wa,wb;while((n=w.nextNode())!=null){wa=wb=0;nv=n.nodeValue||'';nvl=trimNl(nv).length;p+=nvl;if(p&gt;=sp&amp;&amp;!d.startNode){o=sp-(p-nvl);if(b.beg&amp;&amp;o&gt;=nvl)continue;d.startNode=n;d.startOffset=o+wb;}if(p&gt;=ep){d.endNode=n;d.endOffset=ep-(p-nvl)+wb;return d;}}return null;};if(!b)return false;t.win.scrollTo(b.scrollX,b.scrollY);if(isIE){if(r=b.rng){try{r.select();}catch(ex){}return true;}t.win.focus();if(b.tag){r=ro.createControlRange();each(t.dom.select(b.tag),function(n,i){if(i==b.index)r.addElement(n);});}else{try{if(b.start&lt;0)return true;r=s.createRange();r.moveToElementText(ro);r.collapse(true);r.moveStart('character',b.start);r.moveEnd('character',b.length);}catch(ex2){return true;}}try{r.select();}catch(ex){}return true;}if(!s)return false;if(b.rng){s.removeAllRanges();s.addRange(b.rng);}else{if(is(b.start)&amp;&amp;is(b.end)){try{sd=getPos(ro,b.start,b.end);if(sd){r=t.dom.doc.createRange();r.setStart(sd.startNode,sd.startOffset);r.setEnd(sd.endNode,sd.endOffset);s.removeAllRanges();s.addRange(r);}if(!tinymce.isOpera)t.win.focus();}catch(ex){}}}},select:function(n,c){var t=this,r=t.getRng(),s=t.getSel(),b,fn,ln,d=t.win.document;function first(n){return n?d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode():null;};function last(n){var c,o,w;if(!n)return null;w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(c=w.nextNode())o=c;return o;};if(isIE){try{b=d.body;if(/^(IMG|TABLE)$/.test(n.nodeName)){r=b.createControlRange();r.addElement(n);}else{r=b.createTextRange();r.moveToElementText(n);}r.select();}catch(ex){}}else{if(c){fn=first(n);ln=last(n);if(fn&amp;&amp;ln){r=d.createRange();r.setStart(fn,0);r.setEnd(ln,ln.nodeValue.length);}else r.selectNode(n);}else r.selectNode(n);t.setRng(r);}return n;},isCollapsed:function(){var t=this,r=t.getRng(),s=t.getSel();if(!r||r.item)return false;return!s||r.boundingWidth==0||s.isCollapsed;},collapse:function(b){var t=this,r=t.getRng(),n;if(r.item){n=r.item(0);r=this.win.document.body.createTextRange();r.moveToElementText(n);}r.collapse(!!b);t.setRng(r);},getSel:function(){var t=this,w=this.win;return w.getSelection?w.getSelection():w.document.selection;},getRng:function(){var t=this,s=t.getSel(),r;try{if(s)r=s.rangeCount&gt;0?s.getRangeAt(0):(s.createRange?s.createRange():t.win.document.createRange());}catch(ex){}if(!r)r=isIE?t.win.document.body.createTextRange():t.win.document.createRange();return r;},setRng:function(r){var s;if(!isIE){s=this.getSel();if(s){s.removeAllRanges();s.addRange(r);}}else{try{r.select();}catch(ex){}}},setNode:function(n){var t=this;t.setContent(t.dom.getOuterHTML(n));return n;},getNode:function(){var t=this,r=t.getRng(),s=t.getSel(),e;if(!isIE){if(!r)return t.dom.getRoot();e=r.commonAncestorContainer;if(!r.collapsed){if(r.startContainer==r.endContainer||(tinymce.isWebKit&amp;&amp;r.startContainer==r.endContainer.parentNode)){if(r.startOffset-r.endOffset&lt;2||tinymce.isWebKit){if(r.startContainer.hasChildNodes())e=r.startContainer.childNodes[r.startOffset];}}}return t.dom.getParent(e,function(n){return n.nodeType==1;});}return r.item?r.item(0):r.parentElement();},destroy:function(s){var t=this;t.win=null;if(!s)tinymce.removeUnload(t.destroy);}});})();(function(){tinymce.create('tinymce.dom.XMLWriter',{node:null,XMLWriter:function(s){function getXML(){var i=document.implementation;if(!i||!i.createDocument){try{return new ActiveXObject('MSXML2.DOMDocument');}catch(ex){}try{return new ActiveXObject('Microsoft.XmlDom');}catch(ex){}}else return i.createDocument('','',null);};this.doc=getXML();this.valid=tinymce.isOpera||tinymce.isWebKit;this.reset();},reset:function(){var t=this,d=t.doc;if(d.firstChild)d.removeChild(d.firstChild);t.node=d.appendChild(d.createElement(&quot;html&quot;));},writeStartElement:function(n){var t=this;t.node=t.node.appendChild(t.doc.createElement(n));},writeAttribute:function(n,v){if(this.valid)v=v.replace(/&gt;/g,'%MCGT%');this.node.setAttribute(n,v);},writeEndElement:function(){this.node=this.node.parentNode;},writeFullEndElement:function(){var t=this,n=t.node;n.appendChild(t.doc.createTextNode(&quot;&quot;));t.node=n.parentNode;},writeText:function(v){if(this.valid)v=v.replace(/&gt;/g,'%MCGT%');this.node.appendChild(this.doc.createTextNode(v));},writeCDATA:function(v){this.node.appendChild(this.doc.createCDATA(v));},writeComment:function(v){this.node.appendChild(this.doc.createComment(v.replace(/\-\-/g,' ')));},getContent:function(){var h;h=this.doc.xml||new XMLSerializer().serializeToString(this.doc);h=h.replace(/&lt;\?[^?]+\?&gt;|&lt;html&gt;|&lt;\/html&gt;|&lt;html\/&gt;|&lt;!DOCTYPE[^&gt;]+&gt;/g,'');h=h.replace(/ ?\/&gt;/g,' /&gt;');if(this.valid)h=h.replace(/\%MCGT%/g,'&amp;gt;');return h;}});})();(function(){tinymce.create('tinymce.dom.StringWriter',{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(s){this.settings=tinymce.extend({indent_char:' ',indentation:1},s);this.reset();},reset:function(){this.indent='';this.str=&quot;&quot;;this.tags=[];this.count=0;},writeStartElement:function(n){this._writeAttributesEnd();this.writeRaw('&lt;'+n);this.tags.push(n);this.inAttr=true;this.count++;this.elementCount=this.count;},writeAttribute:function(n,v){var t=this;t.writeRaw(&quot; &quot;+t.encode(n)+'=&quot;'+t.encode(v)+'&quot;');},writeEndElement:function(){var n;if(this.tags.length&gt;0){n=this.tags.pop();if(this._writeAttributesEnd(1))this.writeRaw('&lt;/'+n+'&gt;');if(this.settings.indentation&gt;0)this.writeRaw('\n');}},writeFullEndElement:function(){if(this.tags.length&gt;0){this._writeAttributesEnd();this.writeRaw('&lt;/'+this.tags.pop()+'&gt;');if(this.settings.indentation&gt;0)this.writeRaw('\n');}},writeText:function(v){this._writeAttributesEnd();this.writeRaw(this.encode(v));this.count++;},writeCDATA:function(v){this._writeAttributesEnd();this.writeRaw('&lt;![CDATA['+v+']]&gt;');this.count++;},writeComment:function(v){this._writeAttributesEnd();this.writeRaw('&lt;!-- '+v+'--&gt;');this.count++;},writeRaw:function(v){this.str+=v;},encode:function(s){return s.replace(/[&lt;&gt;&amp;&quot;]/g,function(v){switch(v){case'&lt;':return'&amp;lt;';case'&gt;':return'&amp;gt;';case'&amp;':return'&amp;amp;';case'&quot;':return'&amp;quot;';}return v;});},getContent:function(){return this.str;},_writeAttributesEnd:function(s){if(!this.inAttr)return;this.inAttr=false;if(s&amp;&amp;this.elementCount==this.count){this.writeRaw(' /&gt;');return false;}this.writeRaw('&gt;');return true;}});})();(function(){var extend=tinymce.extend,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher,isIE=tinymce.isIE,isGecko=tinymce.isGecko;function getIEAtts(n){var o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;};function wildcardToRE(s){return s.replace(/([?+*])/g,'.$1');};tinymce.create('tinymce.dom.Serializer',{Serializer:function(s){var t=this;t.key=0;t.onPreProcess=new Dispatcher(t);t.onPostProcess=new Dispatcher(t);if(tinymce.relaxedDomain&amp;&amp;tinymce.isGecko){t.writer=new tinymce.dom.StringWriter();}else{try{t.writer=new tinymce.dom.XMLWriter();}catch(ex){t.writer=new tinymce.dom.StringWriter();}}t.settings=s=extend({dom:tinymce.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_)/,closed:/(br|hr|input|meta|img|link|param)/,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',valid_elements:'*[*]',extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:0,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:'simple',indent_char:'\t',indent_levels:1,remove_linebreaks:1},s);t.dom=s.dom;if(s.fix_list_elements){t.onPreProcess.add(function(se,o){var nl,x,a=['ol','ul'],i,n,p,r=/^(OL|UL)$/,np;function prevNode(e,n){var a=n.split(','),i;while((e=e.previousSibling)!=null){for(i=0;i&lt;a.length;i++){if(e.nodeName==a[i])return e;}}return null;};for(x=0;x&lt;a.length;x++){nl=t.dom.select(a[x],o.node);for(i=0;i&lt;nl.length;i++){n=nl[i];p=n.parentNode;if(r.test(p.nodeName)){np=prevNode(n,'LI');if(!np){np=t.dom.create('li');np.innerHTML='&amp;nbsp;';np.appendChild(n);p.insertBefore(np,p.firstChild);}else np.appendChild(n);}}}});}if(s.fix_table_elements){t.onPreProcess.add(function(se,o){each(t.dom.select('table',o.node),function(e){var pa=t.dom.getParent(e,'H1,H2,H3,H4,H5,H6,P'),pa2,n,tm,pl=[],i,ns;if(pa){pa2=pa.cloneNode(false);pl.push(e);for(n=e;n=n.parentNode;){pl.push(n);if(n==pa)break;}tm=pa2;for(i=pl.length-1;i&gt;=0;i--){if(i==pl.length-1){while(ns=pl[i-1].nextSibling)tm.appendChild(ns.parentNode.removeChild(ns));}else{n=pl[i].cloneNode(false);if(i!=0){while(ns=pl[i-1].nextSibling)n.appendChild(ns.parentNode.removeChild(ns));}tm=tm.appendChild(n);}}e=t.dom.insertAfter(e.parentNode.removeChild(e),pa);t.dom.insertAfter(e,pa);t.dom.insertAfter(pa2,e);}});});}},setEntities:function(s){var t=this,a,i,l={},re='',v;if(t.entityLookup)return;a=s.split(',');for(i=0;i&lt;a.length;i+=2){v=a[i];if(v==34||v==38||v==60||v==62)continue;l[String.fromCharCode(a[i])]=a[i+1];v=parseInt(a[i]).toString(16);re+='\\u'+'0000'.substring(v.length)+v;}if(!re){t.settings.entity_encoding='raw';return;}t.entitiesRE=new RegExp('['+re+']','g');t.entityLookup=l;},setValidChildRules:function(s){this.childRules=null;this.addValidChildRules(s);},addValidChildRules:function(s){var t=this,inst,intr,bloc;if(!s)return;inst='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';intr='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';bloc='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';each(s.split(','),function(s){var p=s.split(/\[|\]/),re;s='';each(p[1].split('|'),function(v){if(s)s+='|';switch(v){case'%itrans':v=intr;break;case'%itrans_na':v=intr.substring(2);break;case'%istrict':v=inst;break;case'%istrict_na':v=inst.substring(2);break;case'%btrans':v=bloc;break;case'%bstrict':v=bloc;break;}s+=v;});re=new RegExp('^('+s.toLowerCase()+')$','i');each(p[0].split('/'),function(s){t.childRules=t.childRules||{};t.childRules[s]=re;});});s='';each(t.childRules,function(v,k){if(s)s+='|';s+=k;});t.parentElementsRE=new RegExp('^('+s.toLowerCase()+')$','i');},setRules:function(s){var t=this;t._setup();t.rules={};t.wildRules=[];t.validElements={};return t.addRules(s);},addRules:function(s){var t=this,dr;if(!s)return;t._setup();each(s.split(','),function(s){var p=s.split(/\[|\]/),tn=p[0].split('/'),ra,at,wat,va=[];if(dr)at=tinymce.extend([],dr.attribs);if(p.length&gt;1){each(p[1].split('|'),function(s){var ar={},i;at=at||[];s=s.replace(/::/g,'~');s=/^([!\-])?([\w*.?~_\-]+|)([=:&lt;])?(.+)?$/.exec(s);s[2]=s[2].replace(/~/g,':');if(s[1]=='!'){ra=ra||[];ra.push(s[2]);}if(s[1]=='-'){for(i=0;i&lt;at.length;i++){if(at[i].name==s[2]){at.splice(i,1);return;}}}switch(s[3]){case'=':ar.defaultVal=s[4]||'';break;case':':ar.forcedVal=s[4];break;case'&lt;':ar.validVals=s[4].split('?');break;}if(/[*.?]/.test(s[2])){wat=wat||[];ar.nameRE=new RegExp('^'+wildcardToRE(s[2])+'$');wat.push(ar);}else{ar.name=s[2];at.push(ar);}va.push(s[2]);});}each(tn,function(s,i){var pr=s.charAt(0),x=1,ru={};if(dr){if(dr.noEmpty)ru.noEmpty=dr.noEmpty;if(dr.fullEnd)ru.fullEnd=dr.fullEnd;if(dr.padd)ru.padd=dr.padd;}switch(pr){case'-':ru.noEmpty=true;break;case'+':ru.fullEnd=true;break;case'#':ru.padd=true;break;default:x=0;}tn[i]=s=s.substring(x);t.validElements[s]=1;if(/[*.?]/.test(tn[0])){ru.nameRE=new RegExp('^'+wildcardToRE(tn[0])+'$');t.wildRules=t.wildRules||{};t.wildRules.push(ru);}else{ru.name=tn[0];if(tn[0]=='@')dr=ru;t.rules[s]=ru;}ru.attribs=at;if(ra)ru.requiredAttribs=ra;if(wat){s='';each(va,function(v){if(s)s+='|';s+='('+wildcardToRE(v)+')';});ru.validAttribsRE=new RegExp('^'+s.toLowerCase()+'$');ru.wildAttribs=wat;}});});s='';each(t.validElements,function(v,k){if(s)s+='|';if(k!='@')s+=k;});t.validElementsRE=new RegExp('^('+wildcardToRE(s.toLowerCase())+')$');},findRule:function(n){var t=this,rl=t.rules,i,r;t._setup();r=rl[n];if(r)return r;rl=t.wildRules;for(i=0;i&lt;rl.length;i++){if(rl[i].nameRE.test(n))return rl[i];}return null;},findAttribRule:function(ru,n){var i,wa=ru.wildAttribs;for(i=0;i&lt;wa.length;i++){if(wa[i].nameRE.test(n))return wa[i];}return null;},serialize:function(n,o){var h,t=this;t._setup();o=o||{};o.format=o.format||'html';t.processObj=o;n=n.cloneNode(true);t.key=''+(parseInt(t.key)+1);if(!o.no_events){o.node=n;t.onPreProcess.dispatch(t,o);}t.writer.reset();t._serializeNode(n,o.getInner);o.content=t.writer.getContent();if(!o.no_events)t.onPostProcess.dispatch(t,o);t._postProcess(o);o.node=null;return tinymce.trim(o.content);},_postProcess:function(o){var t=this,s=t.settings,h=o.content,sc=[],p;if(o.format=='html'){p=t._protect({content:h,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}]});h=p.content;if(s.entity_encoding!=='raw')h=t._encode(h);if(!o.set){h=h.replace(/&lt;p&gt;\s+&lt;\/p&gt;|&lt;p([^&gt;]+)&gt;\s+&lt;\/p&gt;/g,s.entity_encoding=='numeric'?'&lt;p$1&gt;&amp;#160;&lt;/p&gt;':'&lt;p$1&gt;&amp;nbsp;&lt;/p&gt;');if(s.remove_linebreaks){h=h.replace(/\r?\n|\r/g,' ');h=h.replace(/(&lt;[^&gt;]+&gt;)\s+/g,'$1 ');h=h.replace(/\s+(&lt;\/[^&gt;]+&gt;)/g,' $1');h=h.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,'&lt;$1 $2&gt;');h=h.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,'&lt;$1&gt;');h=h.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,'&lt;/$1&gt;');}if(s.apply_source_formatting&amp;&amp;s.indent_mode=='simple'){h=h.replace(/&lt;(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^&gt;]+)&gt;\s*/g,'\n&lt;$1$2$3&gt;\n');h=h.replace(/\s*&lt;(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^&gt;]+)&gt;/g,'\n&lt;$1$2&gt;');h=h.replace(/&lt;\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)&gt;\s*/g,'&lt;/$1&gt;\n');h=h.replace(/\n\n/g,'\n');}}h=t._unprotect(h,p);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;');}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;if(!s.node_filter||s.node_filter(n)){switch(n.nodeType){case 1:if(n.hasAttribute?n.hasAttribute('mce_bogus'):n.getAttribute('mce_bogus'))return;iv=false;hc=n.hasChildNodes();nn=n.getAttribute('mce_name')||n.nodeName.toLowerCase();if(isIE){if(n.scopeName!=='HTML'&amp;&amp;n.scopeName!=='html')nn=n.scopeName+':'+nn;}if(nn.indexOf('mce:')===0)nn=nn.substring(4);if(!t.validElementsRE.test(nn)||(t.invalidElementsRE&amp;&amp;t.invalidElementsRE.test(nn))||inn){iv=true;break;}if(isIE){if(s.fix_content_duplication){if(n.mce_serialized==t.key)return;n.mce_serialized=t.key;}if(nn.charAt(0)=='/')nn=nn.substring(1);}else if(isGecko){if(n.nodeName==='BR'&amp;&amp;n.getAttribute('type')=='_moz')return;}if(t.childRules){if(t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(nn)){iv=true;break;}}t.elementName=nn;}ru=t.findRule(nn);nn=ru.name||nn;if((!hc&amp;&amp;ru.noEmpty)||(isIE&amp;&amp;!nn)){iv=true;break;}if(ru.requiredAttribs){a=ru.requiredAttribs;for(i=a.length-1;i&gt;=0;i--){if(this.dom.getAttrib(n,a[i])!=='')break;}if(i==-1){iv=true;break;}}w.writeStartElement(nn);if(ru.attribs){for(i=0,at=ru.attribs,l=at.length;i&lt;l;i++){a=at[i];v=t._getAttrib(n,a);if(v!==null)w.writeAttribute(a.name,v);}}if(ru.validAttribsRE){at=isIE?getIEAtts(n):n.attributes;for(i=at.length-1;i&gt;-1;i--){no=at[i];if(no.specified){a=no.nodeName.toLowerCase();if(s.invalid_attrs.test(a)||!ru.validAttribsRE.test(a))continue;ar=t.findAttribRule(ru,a);v=t._getAttrib(n,ar,a);if(v!==null)w.writeAttribute(a,v);}}}if(!hc&amp;&amp;ru.padd)w.writeText('\u00a0');break;case 3:if(t.childRules&amp;&amp;t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(n.nodeName))return;}return w.writeText(n.nodeValue);case 4:return w.writeCDATA(n.nodeValue);case 8:return w.writeComment(n.nodeValue);}}else if(n.nodeType==1)hc=n.hasChildNodes();if(hc){cn=n.firstChild;while(cn){t._serializeNode(cn);t.elementName=nn;cn=cn.nextSibling;}}if(!iv){if(hc||!s.closed.test(nn))w.writeFullEndElement();else w.writeEndElement();}},_protect:function(o){var t=this;o.items=o.items||[];function enc(s){return s.replace(/[\r\n\\]/g,function(c){if(c==='\n')return'\\n';else if(c==='\\')return'\\\\';return'\\r';});};function dec(s){return s.replace(/\\[\\rn]/g,function(c){if(c==='\\n')return'\n';else if(c==='\\\\')return'\\';return'\r';});};each(o.patterns,function(p){o.content=dec(enc(o.content).replace(p.pattern,function(x,a,b,c){b=dec(b);if(p.encode)b=t._encode(b);o.items.push(b);return a+'&lt;!--mce:'+(o.items.length-1)+'--&gt;'+c;}));});return o;},_unprotect:function(h,o){h=h.replace(/\&lt;!--mce:([0-9]+)--\&gt;/g,function(a,b){return o.items[parseInt(b)];});o.items=[];return h;},_encode:function(h){var t=this,s=t.settings,l;if(s.entity_encoding!=='raw'){if(s.entity_encoding.indexOf('named')!=-1){t.setEntities(s.entities);l=t.entityLookup;h=h.replace(t.entitiesRE,function(a){var v;if(v=l[a])a='&amp;'+v+';';return a;});}if(s.entity_encoding.indexOf('numeric')!=-1){h=h.replace(/[\u007E-\uFFFF]/g,function(a){return'&amp;#'+a.charCodeAt(0)+';';});}}return h;},_setup:function(){var t=this,s=this.settings;if(t.done)return;t.done=1;t.setRules(s.valid_elements);t.addRules(s.extended_valid_elements);t.addValidChildRules(s.valid_child_elements);if(s.invalid_elements)t.invalidElementsRE=new RegExp('^('+wildcardToRE(s.invalid_elements.replace(/,/g,'|').toLowerCase())+')$');if(s.attrib_value_filter)t.attribValueFilter=s.attribValueFilter;},_getAttrib:function(n,a,na){var i,v;na=na||a.name;if(a.forcedVal&amp;&amp;(v=a.forcedVal)){if(v==='{$uid}')return this.dom.uniqueId();return v;}v=this.dom.getAttrib(n,na);switch(na){case'rowspan':case'colspan':if(v=='1')v='';break;}if(this.attribValueFilter)v=this.attribValueFilter(na,v,n);if(a.validVals){for(i=a.validVals.length-1;i&gt;=0;i--){if(v==a.validVals[i])break;}if(i==-1)return null;}if(v===''&amp;&amp;typeof(a.defaultVal)!='undefined'){v=a.defaultVal;if(v==='{$uid}')return this.dom.uniqueId();return v;}else{if(na=='class'&amp;&amp;this.processObj.get)v=v.replace(/\s?mceItem\w+\s?/g,'');}if(v==='')return null;return v;}});})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.ScriptLoader',{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(tinymce.dom.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,'string')){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.util.XHR.send({url:o.url,error:t.settings.error,success:function(co){t.eval(co);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(!tinymce.dom.Event.domLoaded&amp;&amp;!t.settings.strict_mode){var ix,ol='';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+='tinymce.dom.ScriptLoader._onLoad(this,\''+u+'\','+ix+');&quot;';}document.write('&lt;script type=&quot;text/javascript&quot; src=&quot;'+tinymce._addVer(u)+'&quot;'+ol+'&gt;&lt;/script&gt;');if(!o.func)done(o);}else load(o);});allDone();},'static':{_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=='complete')this._funcs[ix].call(this);}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader();})();(function(){var DOM=tinymce.DOM,is=tinymce.is;tinymce.create('tinymce.ui.Control',{Control:function(id,s){this.id=id;this.settings=s=s||{};this.rendered=false;this.onRender=new tinymce.util.Dispatcher(this);this.classPrefix='';this.scope=s.scope||this;this.disabled=0;this.active=0;},setDisabled:function(s){var e;if(s!=this.disabled){e=DOM.get(this.id);if(e&amp;&amp;this.settings.unavailable_prefix){if(s){this.prevTitle=e.title;e.title=this.settings.unavailable_prefix+&quot;: &quot;+e.title;}else e.title=this.prevTitle;}this.setState('Disabled',s);this.setState('Enabled',!s);this.disabled=s;}},isDisabled:function(){return this.disabled;},setActive:function(s){if(s!=this.active){this.setState('Active',s);this.active=s;}},isActive:function(){return this.active;},setState:function(c,s){var n=DOM.get(this.id);c=this.classPrefix+c;if(s)DOM.addClass(n,c);else DOM.removeClass(n,c);},isRendered:function(){return this.rendered;},renderHTML:function(){},renderTo:function(n){DOM.setHTML(n,this.renderHTML());},postRender:function(){var t=this,b;if(is(t.disabled)){b=t.disabled;t.disabled=-1;t.setDisabled(b);}if(is(t.active)){b=t.active;t.active=-1;t.setActive(b);}},remove:function(){DOM.remove(this.id);this.destroy();},destroy:function(){tinymce.dom.Event.clear(this.id);}});})();tinymce.create('tinymce.ui.Container:tinymce.ui.Control',{Container:function(id,s){this.parent(id,s);this.controls=[];this.lookup={};},add:function(c){this.lookup[c.id]=c;this.controls.push(c);return c;},get:function(n){return this.lookup[n];}});tinymce.create('tinymce.ui.Separator:tinymce.ui.Control',{Separator:function(id,s){this.parent(id,s);this.classPrefix='mceSeparator';},renderHTML:function(){return tinymce.DOM.createHTML('span',{'class':this.classPrefix});}});(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control',{MenuItem:function(id,s){this.parent(id,s);this.classPrefix='mceMenuItem';},setSelected:function(s){this.setState('Selected',s);this.selected=s;},isSelected:function(){return this.selected;},postRender:function(){var t=this;t.parent();if(is(t.selected))t.setSelected(t.selected);}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem',{Menu:function(id,s){var t=this;t.parent(id,s);t.items={};t.collapsed=false;t.menuCount=0;t.onAddItem=new tinymce.util.Dispatcher(this);},expand:function(d){var t=this;if(d){walk(t,function(o){if(o.expand)o.expand();},'items',t);}t.collapsed=false;},collapse:function(d){var t=this;if(d){walk(t,function(o){if(o.collapse)o.collapse();},'items',t);}t.collapsed=true;},isCollapsed:function(){return this.collapsed;},add:function(o){if(!o.settings)o=new tinymce.ui.MenuItem(o.id||DOM.uniqueId(),o);this.onAddItem.dispatch(this,o);return this.items[o.id]=o;},addSeparator:function(){return this.add({separator:true});},addMenu:function(o){if(!o.collapse)o=this.createMenu(o);this.menuCount++;return this.add(o);},hasMenus:function(){return this.menuCount!==0;},remove:function(o){delete this.items[o.id];},removeAll:function(){var t=this;walk(t,function(o){if(o.removeAll)o.removeAll();else o.remove();o.destroy();},'items',t);t.items={};},createMenu:function(o){var m=new tinymce.ui.Menu(o.id||DOM.uniqueId(),o);m.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return m;}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,Event=tinymce.dom.Event,Element=tinymce.dom.Element;tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu',{DropMenu:function(id,s){s=s||{};s.container=s.container||DOM.doc.body;s.offset_x=s.offset_x||0;s.offset_y=s.offset_y||0;s.vp_offset_x=s.vp_offset_x||0;s.vp_offset_y=s.vp_offset_y||0;if(is(s.icons)&amp;&amp;!s.icons)s['class']+=' mceNoIcons';this.parent(id,s);this.onShowMenu=new tinymce.util.Dispatcher(this);this.onHideMenu=new tinymce.util.Dispatcher(this);this.classPrefix='mceMenu';},createMenu:function(s){var t=this,cs=t.settings,m;s.container=s.container||cs.container;s.parent=t;s.constrain=s.constrain||cs.constrain;s['class']=s['class']||cs['class'];s.vp_offset_x=s.vp_offset_x||cs.vp_offset_x;s.vp_offset_y=s.vp_offset_y||cs.vp_offset_y;m=new tinymce.ui.DropMenu(s.id||DOM.uniqueId(),s);m.onAddItem.add(t.onAddItem.dispatch,t.onAddItem);return m;},update:function(){var t=this,s=t.settings,tb=DOM.get('menu_'+t.id+'_tbl'),co=DOM.get('menu_'+t.id+'_co'),tw,th;tw=s.max_width?Math.min(tb.clientWidth,s.max_width):tb.clientWidth;th=s.max_height?Math.min(tb.clientHeight,s.max_height):tb.clientHeight;if(!DOM.boxModel)t.element.setStyles({width:tw+2,height:th+2});else t.element.setStyles({width:tw,height:th});if(s.max_width)DOM.setStyle(co,'width',tw);if(s.max_height){DOM.setStyle(co,'height',th);if(tb.clientHeight&lt;s.max_height)DOM.setStyle(co,'overflow','hidden');}},showMenu:function(x,y,px){var t=this,s=t.settings,co,vp=DOM.getViewPort(),w,h,mx,my,ot=2,dm,tb,cp=t.classPrefix;t.collapse(1);if(t.isMenuVisible)return;if(!t.rendered){co=DOM.add(t.settings.container,t.renderNode());each(t.items,function(o){o.postRender();});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});}else co=DOM.get('menu_'+t.id);if(!tinymce.isOpera)DOM.setStyles(co,{left:-0xFFFF,top:-0xFFFF});DOM.show(co);t.update();x+=s.offset_x||0;y+=s.offset_y||0;vp.w-=4;vp.h-=4;if(s.constrain){w=co.clientWidth-ot;h=co.clientHeight-ot;mx=vp.x+vp.w;my=vp.y+vp.h;if((x+s.vp_offset_x+w)&gt;mx)x=px?px-w:Math.max(0,(mx-s.vp_offset_x)-w);if((y+s.vp_offset_y+h)&gt;my)y=Math.max(0,(my-s.vp_offset_y)-h);}DOM.setStyles(co,{left:x,top:y});t.element.update();t.isMenuVisible=1;t.mouseClickFunc=Event.add(co,'click',function(e){var m;e=e.target;if(e&amp;&amp;(e=DOM.getParent(e,'TR'))&amp;&amp;!DOM.hasClass(e,cp+'ItemSub')){m=t.items[e.id];if(m.isDisabled())return;dm=t;while(dm){if(dm.hideMenu)dm.hideMenu();dm=dm.settings.parent;}if(m.settings.onclick)m.settings.onclick(e);return Event.cancel(e);}});if(t.hasMenus()){t.mouseOverFunc=Event.add(co,'mouseover',function(e){var m,r,mi;e=e.target;if(e&amp;&amp;(e=DOM.getParent(e,'TR'))){m=t.items[e.id];if(t.lastMenu)t.lastMenu.collapse(1);if(m.isDisabled())return;if(e&amp;&amp;DOM.hasClass(e,cp+'ItemSub')){r=DOM.getRect(e);m.showMenu((r.x+r.w-ot),r.y-ot,r.x);t.lastMenu=m;DOM.addClass(DOM.get(m.id).firstChild,cp+'ItemActive');}}});}t.onShowMenu.dispatch(t);if(s.keyboard_focus){Event.add(co,'keydown',t._keyHandler,t);DOM.select('a','menu_'+t.id)[0].focus();t._focusIdx=0;}},hideMenu:function(c){var t=this,co=DOM.get('menu_'+t.id),e;if(!t.isMenuVisible)return;Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);Event.remove(co,'keydown',t._keyHandler);DOM.hide(co);t.isMenuVisible=0;if(!c)t.collapse(1);if(t.element)t.element.hide();if(e=DOM.get(t.id))DOM.removeClass(e.firstChild,t.classPrefix+'ItemActive');t.onHideMenu.dispatch(t);},add:function(o){var t=this,co;o=t.parent(o);if(t.isRendered&amp;&amp;(co=DOM.get('menu_'+t.id)))t._add(DOM.select('tbody',co)[0],o);return o;},collapse:function(d){this.parent(d);this.hideMenu(1);},remove:function(o){DOM.remove(o.id);this.destroy();return this.parent(o);},destroy:function(){var t=this,co=DOM.get('menu_'+t.id);Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);if(t.element)t.element.remove();DOM.remove(co);},renderNode:function(){var t=this,s=t.settings,n,tb,co,w;w=DOM.create('div',{id:'menu_'+t.id,'class':s['class'],'style':'position:absolute;left:0;top:0;z-index:200000'});co=DOM.add(w,'div',{id:'menu_'+t.id+'_co','class':t.classPrefix+(s['class']?' '+s['class']:'')});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});if(s.menu_line)DOM.add(co,'span',{'class':t.classPrefix+'Line'});n=DOM.add(co,'table',{id:'menu_'+t.id+'_tbl',border:0,cellPadding:0,cellSpacing:0});tb=DOM.add(n,'tbody');each(t.items,function(o){t._add(tb,o);});t.rendered=true;return w;},_keyHandler:function(e){var t=this,kc=e.keyCode;function focus(d){var i=t._focusIdx+d,e=DOM.select('a','menu_'+t.id)[i];if(e){t._focusIdx=i;e.focus();}};switch(kc){case 38:focus(-1);return;case 40:focus(1);return;case 13:return;case 27:return this.hideMenu();}},_add:function(tb,o){var n,s=o.settings,a,ro,it,cp=this.classPrefix;if(s.separator){ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'ItemSeparator'});DOM.add(ro,'td',{'class':cp+'ItemSeparator'});if(n=ro.previousSibling)DOM.addClass(n,'mceLast');return;}n=ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'Item '+cp+'ItemEnabled'});n=it=DOM.add(n,'td');n=a=DOM.add(n,'a',{href:'javascript:;',onclick:&quot;return false;&quot;,onmousedown:'return false;'});DOM.addClass(it,s['class']);DOM.add(n,'span',{'class':'mceIcon'+(s.icon?' mce_'+s.icon:'')});n=DOM.add(n,s.element||'span',{'class':'mceText',title:o.settings.title},o.settings.title);if(o.settings.style)DOM.setAttrib(n,'style',o.settings.style);if(tb.childNodes.length==1)DOM.addClass(ro,'mceFirst');if((n=ro.previousSibling)&amp;&amp;DOM.hasClass(n,cp+'ItemSeparator'))DOM.addClass(ro,'mceFirst');if(o.collapse)DOM.addClass(ro,cp+'ItemSub');if(n=ro.previousSibling)DOM.removeClass(n,'mceLast');DOM.addClass(ro,'mceLast');}});})();(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.ui.Button:tinymce.ui.Control',{Button:function(id,s){this.parent(id,s);this.classPrefix='mceButton';},renderHTML:function(){var cp=this.classPrefix,s=this.settings,h,l;l=DOM.encode(s.label||'');h='&lt;a id=&quot;'+this.id+'&quot; href=&quot;javascript:;&quot; class=&quot;'+cp+' '+cp+'Enabled '+s['class']+(l?' '+cp+'Labeled':'')+'&quot; onmousedown=&quot;return false;&quot; onclick=&quot;return false;&quot; title=&quot;'+DOM.encode(s.title)+'&quot;&gt;';if(s.image)h+='&lt;img class=&quot;mceIcon&quot; src=&quot;'+s.image+'&quot; /&gt;'+l+'&lt;/a&gt;';else h+='&lt;span class=&quot;mceIcon '+s['class']+'&quot;&gt;&lt;/span&gt;'+(l?'&lt;span class=&quot;'+cp+'Label&quot;&gt;'+l+'&lt;/span&gt;':'')+'&lt;/a&gt;';return h;},postRender:function(){var t=this,s=t.settings;tinymce.dom.Event.add(t.id,'click',function(e){if(!t.isDisabled())return s.onclick.call(s.scope,e);});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control',{ListBox:function(id,s){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';},select:function(v){var t=this,e,fv;if(v!=t.selectedValue){e=DOM.get(t.id+'_text');t.selectedValue=v;each(t.items,function(o){if(o.value==v){DOM.setHTML(e,DOM.encode(o.title));fv=1;return false;}});if(!fv){DOM.setHTML(e,DOM.encode(t.settings.title));DOM.addClass(e,'mceTitle');e=0;return;}else DOM.removeClass(e,'mceTitle');}e=0;},add:function(n,v,o){var t=this;o=o||{};o=tinymce.extend(o,{title:n,value:v});t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return this.items.length;},renderHTML:function(){var h='',t=this,s=t.settings,cp=t.classPrefix;h='&lt;table id=&quot;'+t.id+'&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;'+cp+' '+cp+'Enabled'+(s['class']?(' '+s['class']):'')+'&quot;&gt;&lt;tbody&gt;&lt;tr&gt;';h+='&lt;td&gt;'+DOM.createHTML('a',{id:t.id+'_text',href:'javascript:;','class':'mceText',onclick:&quot;return false;&quot;,onmousedown:'return false;'},DOM.encode(t.settings.title))+'&lt;/td&gt;';h+='&lt;td&gt;'+DOM.createHTML('a',{id:t.id+'_open',tabindex:-1,href:'javascript:;','class':'mceOpen',onclick:&quot;return false;&quot;,onmousedown:'return false;'},'&lt;span&gt;&lt;/span&gt;')+'&lt;/td&gt;';h+='&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;';return h;},showMenu:function(){var t=this,p1,p2,e=DOM.get(this.id),m;if(t.isDisabled()||t.items.length==0)return;if(t.menu&amp;&amp;t.menu.isMenuVisible)return t.hideMenu();if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(this.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.keyboard_focus=!tinymce.isOpera;if(t.oldID)m.items[t.oldID].setSelected(0);each(t.items,function(o){if(o.value===t.selectedValue){m.items[o.id].setSelected(1);t.oldID=o.id;}});m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);DOM.addClass(t.id,t.classPrefix+'Selected');},hideMenu:function(e){var t=this;if(e&amp;&amp;e.type==&quot;mousedown&quot;&amp;&amp;(e.target.id==t.id+'_text'||e.target.id==t.id+'_open'))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){DOM.removeClass(t.id,t.classPrefix+'Selected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':t.classPrefix+'Menu mceNoIcons',max_width:150,max_height:150});m.onHideMenu.add(t.hideMenu,t);m.add({title:t.settings.title,'class':'mceMenuItemTitle',onclick:function(){if(t.settings.onselect('')!==false)t.select('');}});each(t.items,function(o){o.id=DOM.uniqueId();o.onclick=function(){if(t.settings.onselect(o.value)!==false)t.select(o.value);};m.add(o);});t.onRenderMenu.dispatch(t,m);t.menu=m;},postRender:function(){var t=this,cp=t.classPrefix;Event.add(t.id,'click',t.showMenu,t);Event.add(t.id+'_text','focus',function(e){if(!t._focused){t.keyDownHandler=Event.add(t.id+'_text','keydown',function(e){var idx=-1,v,kc=e.keyCode;each(t.items,function(v,i){if(t.selectedValue==v.value)idx=i;});if(kc==38)v=t.items[idx-1];else if(kc==40)v=t.items[idx+1];else if(kc==13){v=t.selectedValue;t.selectedValue=null;t.settings.onselect(v);return Event.cancel(e);}if(v){t.hideMenu();t.select(v.value);}});}t._focused=1;});Event.add(t.id+'_text','blur',function(){Event.remove(t.id+'_text','keydown',t.keyDownHandler);t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.addClass(t.id,cp+'Hover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.removeClass(t.id,cp+'Hover');});}t.onPostRender.dispatch(t,DOM.get(t.id));},destroy:function(){this.parent();Event.clear(this.id+'_text');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox',{NativeListBox:function(id,s){this.parent(id,s);this.classPrefix='mceNativeListBox';},setDisabled:function(s){DOM.get(this.id).disabled=s;},isDisabled:function(){return DOM.get(this.id).disabled;},select:function(v){var e=DOM.get(this.id),ol=e.options;v=''+(v||'');e.selectedIndex=0;each(ol,function(o,i){if(o.value==v){e.selectedIndex=i;return false;}});},add:function(n,v,a){var o,t=this;a=a||{};a.value=v;if(t.isRendered())DOM.add(DOM.get(this.id),'option',a,n);o={title:n,value:v,attribs:a};t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return DOM.get(this.id).options.length-1;},renderHTML:function(){var h,t=this;h=DOM.createHTML('option',{value:''},'-- '+t.settings.title+' --');each(t.items,function(it){h+=DOM.createHTML('option',{value:it.value},it.title);});h=DOM.createHTML('select',{id:t.id,'class':'mceNativeListBox'},h);return h;},postRender:function(){var t=this,ch;t.rendered=true;function onChange(e){var v=e.target.options[e.target.selectedIndex].value;t.onChange.dispatch(t,v);if(t.settings.onselect)t.settings.onselect(v);};Event.add(t.id,'change',onChange);Event.add(t.id,'keydown',function(e){var bf;Event.remove(t.id,'change',ch);bf=Event.add(t.id,'blur',function(){Event.add(t.id,'change',onChange);Event.remove(t.id,'blur',bf);});if(e.keyCode==13||e.keyCode==32){onChange(e);return Event.cancel(e);}});t.onPostRender.dispatch(t,DOM.get(t.id));}});})();(function(){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;},showMenu:function(){var t=this,p1,p2,e=DOM.get(t.id),m;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();p1=DOM.getPos(t.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.vp_offset_x=p2.x;m.settings.vp_offset_y=p2.y;m.settings.keyboard_focus=t._focused;m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);t.setState('Selected',1);t.isMenuVisible=1;},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':this.classPrefix+'Menu',icons:t.settings.icons});m.onHideMenu.add(t.hideMenu,t);t.onRenderMenu.dispatch(t,m);t.menu=m;},hideMenu:function(e){var t=this;if(e&amp;&amp;e.type==&quot;mousedown&quot;&amp;&amp;DOM.getParent(e.target,function(e){return e.id===t.id||e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){t.setState('Selected',0);Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}t.isMenuVisible=0;},postRender:function(){var t=this,s=t.settings;Event.add(t.id,'click',function(){if(!t.isDisabled()){if(s.onclick)s.onclick(t.value);t.showMenu();}});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton',{SplitButton:function(id,s){this.parent(id,s);this.classPrefix='mceSplitButton';},renderHTML:function(){var h,t=this,s=t.settings,h1;h='&lt;tbody&gt;&lt;tr&gt;';if(s.image)h1=DOM.createHTML('img ',{src:s.image,'class':'mceAction '+s['class']});else h1=DOM.createHTML('span',{'class':'mceAction '+s['class']},'');h+='&lt;td&gt;'+DOM.createHTML('a',{id:t.id+'_action',href:'javascript:;','class':'mceAction '+s['class'],onclick:&quot;return false;&quot;,onmousedown:'return false;',title:s.title},h1)+'&lt;/td&gt;';h1=DOM.createHTML('span',{'class':'mceOpen '+s['class']});h+='&lt;td&gt;'+DOM.createHTML('a',{id:t.id+'_open',href:'javascript:;','class':'mceOpen '+s['class'],onclick:&quot;return false;&quot;,onmousedown:'return false;',title:s.title},h1)+'&lt;/td&gt;';h+='&lt;/tr&gt;&lt;/tbody&gt;';return DOM.createHTML('table',{id:t.id,'class':'mceSplitButton mceSplitButtonEnabled '+s['class'],cellpadding:'0',cellspacing:'0',onmousedown:'return false;',title:s.title},h);},postRender:function(){var t=this,s=t.settings;if(s.onclick){Event.add(t.id+'_action','click',function(){if(!t.isDisabled())s.onclick(t.value);});}Event.add(t.id+'_open','click',t.showMenu,t);Event.add(t.id+'_open','focus',function(){t._focused=1;});Event.add(t.id+'_open','blur',function(){t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.addClass(t.id,'mceSplitButtonHover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.removeClass(t.id,'mceSplitButtonHover');});}},destroy:function(){this.parent();Event.clear(this.id+'_action');Event.clear(this.id+'_open');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,is=tinymce.is,each=tinymce.each;tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton',{ColorSplitButton:function(id,s){var t=this;t.parent(id,s);t.settings=s=tinymce.extend({colors:'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',grid_width:8,default_color:'#888888'},t.settings);t.onShowMenu=new tinymce.util.Dispatcher(t);t.onHideMenu=new tinymce.util.Dispatcher(t);t.value=s.default_color;},showMenu:function(){var t=this,r,p,e,p2;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();e=DOM.get(t.id);DOM.show(t.id+'_menu');DOM.addClass(e,'mceSplitButtonSelected');p2=DOM.getPos(e);DOM.setStyles(t.id+'_menu',{left:p2.x,top:p2.y+e.clientHeight,zIndex:200000});e=0;Event.add(DOM.doc,'mousedown',t.hideMenu,t);if(t._focused){t._keyHandler=Event.add(t.id+'_menu','keydown',function(e){if(e.keyCode==27)t.hideMenu();});DOM.select('a',t.id+'_menu')[0].focus();}t.onShowMenu.dispatch(t);t.isMenuVisible=1;},hideMenu:function(e){var t=this;if(e&amp;&amp;e.type==&quot;mousedown&quot;&amp;&amp;DOM.getParent(e.target,function(e){return e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceSplitButtonMenu');})){DOM.removeClass(t.id,'mceSplitButtonSelected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);Event.remove(t.id+'_menu','keydown',t._keyHandler);DOM.hide(t.id+'_menu');}t.onHideMenu.dispatch(t);t.isMenuVisible=0;},renderMenu:function(){var t=this,m,i=0,s=t.settings,n,tb,tr,w;w=DOM.add(s.menu_container,'div',{id:t.id+'_menu','class':s['menu_class']+' '+s['class'],style:'position:absolute;left:0;top:-1000px;'});m=DOM.add(w,'div',{'class':s['class']+' mceSplitButtonMenu'});DOM.add(m,'span',{'class':'mceMenuLine'});n=DOM.add(m,'table',{'class':'mceColorSplitMenu'});tb=DOM.add(n,'tbody');i=0;each(is(s.colors,'array')?s.colors:s.colors.split(','),function(c){c=c.replace(/^#/,'');if(!i--){tr=DOM.add(tb,'tr');i=s.grid_width-1;}n=DOM.add(tr,'td');n=DOM.add(n,'a',{href:'javascript:;',style:{backgroundColor:'#'+c},mce_color:'#'+c});});if(s.more_colors_func){n=DOM.add(tb,'tr');n=DOM.add(n,'td',{colspan:s.grid_width,'class':'mceMoreColors'});n=DOM.add(n,'a',{id:t.id+'_more',href:'javascript:;',onclick:'return false;','class':'mceMoreColors'},s.more_colors_title);Event.add(n,'click',function(e){s.more_colors_func.call(s.more_colors_scope||this);return Event.cancel(e);});}DOM.addClass(m,'mceColorSplitMenu');Event.add(t.id+'_menu','click',function(e){var c;e=e.target;if(e.nodeName=='A'&amp;&amp;(c=e.getAttribute('mce_color')))t.setColor(c);return Event.cancel(e);});return w;},setColor:function(c){var t=this;DOM.setStyle(t.id+'_preview','backgroundColor',c);t.value=c;t.hideMenu();t.settings.onselect(c);},postRender:function(){var t=this,id=t.id;t.parent();DOM.add(id+'_action','div',{id:id+'_preview','class':'mceColorPreview'});},destroy:function(){this.parent();Event.clear(this.id+'_menu');Event.clear(this.id+'_more');DOM.remove(this.id+'_menu');}});})();tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container',{renderHTML:function(){var t=this,h='',c,co,dom=tinymce.DOM,s=t.settings,i,pr,nx,cl;cl=t.controls;for(i=0;i&lt;cl.length;i++){co=cl[i];pr=cl[i-1];nx=cl[i+1];if(i===0){c='mceToolbarStart';if(co.Button)c+=' mceToolbarStartButton';else if(co.SplitButton)c+=' mceToolbarStartSplitButton';else if(co.ListBox)c+=' mceToolbarStartListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'&lt;!-- IE --&gt;'));}if(pr&amp;&amp;co.ListBox){if(pr.Button||pr.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarEnd'},dom.createHTML('span',null,'&lt;!-- IE --&gt;'));}if(dom.stdMode)h+='&lt;td style=&quot;position: relative&quot;&gt;'+co.renderHTML()+'&lt;/td&gt;';else h+='&lt;td&gt;'+co.renderHTML()+'&lt;/td&gt;';if(nx&amp;&amp;co.ListBox){if(nx.Button||nx.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarStart'},dom.createHTML('span',null,'&lt;!-- IE --&gt;'));}}c='mceToolbarEnd';if(co.Button)c+=' mceToolbarEndButton';else if(co.SplitButton)c+=' mceToolbarEndSplitButton';else if(co.ListBox)c+=' mceToolbarEndListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'&lt;!-- IE --&gt;'));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(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each;tinymce.create('tinymce.AddOnManager',{items:[],urls:{},lookup:{},onAdd:new Dispatcher(this),get:function(n){return this.lookup[n];},requireLangPack:function(n){var u,s;if(tinymce.EditorManager.settings){u=this.urls[n]+'/langs/'+tinymce.EditorManager.settings.language+'.js';s=tinymce.EditorManager.settings;if(s){if(!tinymce.dom.Event.domLoaded&amp;&amp;!s.strict_mode)tinymce.ScriptLoader.load(u);else tinymce.ScriptLoader.add(u);}}},add:function(id,o){this.items.push(o);this.lookup[id]=o;this.onAdd.dispatch(this,id,o);return o;},load:function(n,u,cb,s){var t=this;if(t.urls[n])return;if(u.indexOf('/')!=0&amp;&amp;u.indexOf('://')==-1)u=tinymce.baseURL+'/'+u;t.urls[n]=u.substring(0,u.lastIndexOf('/'));tinymce.ScriptLoader.add(u,cb,s);}});tinymce.PluginManager=new tinymce.AddOnManager();tinymce.ThemeManager=new tinymce.AddOnManager();}());(function(){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(){var t=this,lo=window.location;tinymce.documentBaseURL=lo.href.replace(/[\?#].*$/,'').replace(/[\/\\][^\/]+$/,'');if(!/[\/\\]$/.test(tinymce.documentBaseURL))tinymce.documentBaseURL+='/';tinymce.baseURL=new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);tinymce.EditorManager.baseURI=new tinymce.util.URI(tinymce.baseURL);if(tinymce.EditorManager.baseURI.host!=lo.hostname&amp;&amp;lo.hostname)document.domain=tinymce.relaxedDomain=lo.hostname.replace(/.*\.(.+\..+)$/,'$1');t.onBeforeUnload=new tinymce.util.Dispatcher(t);Event.add(window,'beforeunload',function(e){t.onBeforeUnload.dispatch(t,e);});},init:function(s){var t=this,pl,sl=tinymce.ScriptLoader,c,e;function execCallback(se,n,s){var f=se[n];if(!f)return;if(tinymce.is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);}return f.apply(s||this,Array.prototype.slice.call(arguments,2));};s=extend({theme:&quot;simple&quot;,language:&quot;en&quot;,strict_loading_mode:document.contentType=='application/xhtml+xml'},s);t.settings=s;if(!Event.domLoaded&amp;&amp;!s.strict_loading_mode){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme&amp;&amp;s.theme.charAt(0)!='-'&amp;&amp;!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');if(s.plugins){pl=explode(s.plugins);if(tinymce.inArray(pl,'compat2x')!=-1)PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');each(pl,function(v){if(v&amp;&amp;v.charAt(0)!='-'&amp;&amp;!PluginManager.urls[v]){if(!tinymce.isWebKit&amp;&amp;v=='safari')return;PluginManager.load(v,'plugins/'+v+'/editor_plugin'+tinymce.suffix+'.js');}});}sl.loadQueue();}Event.add(document,'init',function(){var l,co;execCallback(s,'onpageload');if(s.browsers){l=false;each(explode(s.browsers),function(v){switch(v){case'ie':case'msie':if(tinymce.isIE)l=true;break;case'gecko':if(tinymce.isGecko)l=true;break;case'safari':case'webkit':if(tinymce.isWebKit)l=true;break;case'opera':if(tinymce.isOpera)l=true;break;}});if(!l)return;}switch(s.mode){case&quot;exact&quot;:l=s.elements||'';if(l.length&gt;0){each(explode(l),function(v){if(DOM.get(v))new tinymce.Editor(v,s).render(1);else{c=0;each(document.forms,function(f){each(f.elements,function(e){if(e.name===v){v='mce_editor_'+c;DOM.setAttrib(e,'id',v);new tinymce.Editor(v,s).render(1);}});});}});}break;case&quot;textareas&quot;:case&quot;specific_textareas&quot;:function hasClass(n,c){return c.constructor===RegExp?c.test(n.className):DOM.hasClass(n,c);};each(DOM.select('textarea'),function(v){if(s.editor_deselector&amp;&amp;hasClass(v,s.editor_deselector))return;if(!s.editor_selector||hasClass(v,s.editor_selector)){e=DOM.get(v.name);if(!v.id&amp;&amp;!e)v.id=v.name;if(!v.id||t.get(v.id))v.id=DOM.uniqueId();new tinymce.Editor(v.id,s).render(1);}});break;}if(s.oninit){l=co=0;each(t.editors,function(ed){co++;if(!ed.initialized){ed.onInit.add(function(){l++;if(l==co)execCallback(s,'oninit');});}else l++;if(l==co)execCallback(s,'oninit');});}});},get:function(id){return this.editors[id];},getInstanceById:function(id){return this.get(id);},add:function(e){this.editors[e.id]=e;this._setActive(e);return e;},remove:function(e){var t=this;if(!t.editors[e.id])return null;delete t.editors[e.id];if(t.activeEditor==e){each(t.editors,function(e){t._setActive(e);return false;});}e.destroy();return e;},execCommand:function(c,u,v){var t=this,ed=t.get(v),w;switch(c){case&quot;mceFocus&quot;:ed.focus();return true;case&quot;mceAddEditor&quot;:case&quot;mceAddControl&quot;:if(!t.get(v))new tinymce.Editor(v,t.settings).render();return true;case&quot;mceAddFrameControl&quot;:w=v.window;w.tinyMCE=tinyMCE;w.tinymce=tinymce;tinymce.DOM.doc=w.document;tinymce.DOM.win=w;ed=new tinymce.Editor(v.element_id,v);ed.render();if(tinymce.isIE){function clr(){ed.destroy();w.detachEvent('onunload',clr);w=w.tinyMCE=w.tinymce=null;};w.attachEvent('onunload',clr);}v.page_window=null;return true;case&quot;mceRemoveEditor&quot;:case&quot;mceRemoveControl&quot;:ed.remove();return true;case'mceToggleEditor':if(!ed){t.execCommand('mceAddControl',0,v);return true;}if(ed.isHidden())ed.show();else ed.hide();return true;}if(t.activeEditor)return t.activeEditor.execCommand(c,u,v);return false;},execInstanceCommand:function(id,c,u,v){var ed=this.get(id);if(ed)return ed.execCommand(c,u,v);return false;},triggerSave:function(){each(this.editors,function(e){e.save();});},addI18n:function(p,o){var lo,i18n=this.i18n;if(!tinymce.is(p,'string')){each(p,function(o,lc){each(o,function(o,g){each(o,function(o,k){if(g==='common')i18n[lc+'.'+k]=o;else i18n[lc+'.'+g+'.'+k]=o;});});});}else{each(o,function(o,k){i18n[p+'.'+k]=o;});}},_setActive:function(e){this.selectedInstance=this.activeEditor=e;}});tinymce.EditorManager.preInit();})();var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,Dispatcher=tinymce.util.Dispatcher;var each=tinymce.each,isGecko=tinymce.isGecko,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit;var is=tinymce.is,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,EditorManager=tinymce.EditorManager;var inArray=tinymce.inArray,grep=tinymce.grep,explode=tinymce.explode;tinymce.create('tinymce.Editor',{Editor:function(id,s){var t=this;t.id=t.editorId=id;t.execCommands={};t.queryStateCommands={};t.queryValueCommands={};t.plugins={};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);});t.settings=s=extend({id:id,language:'en',docs_language:'en',theme:'simple',skin:'default',delta_width:0,delta_height:0,popup_css:'',plugins:'',document_base_url:tinymce.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:'mceItemTable',visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:'xx-small,x-small,small,medium,large,x-large,xx-large',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],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,init_theme:1,force_p_newlines:1,indentation:'30px'},s);t.documentBaseURI=new tinymce.util.URI(s.document_base_url||tinymce.documentBaseURL,{base_uri:tinyMCE.baseURI});t.baseURI=EditorManager.baseURI;t.execCallback('setup',t);},render:function(nst){var t=this,s=t.settings,id=t.id,sl=tinymce.ScriptLoader;if(!Event.domLoaded){Event.add(document,'init',function(){t.render();});return;}if(!nst){s.strict_loading_mode=1;tinyMCE.settings=s;}if(!t.getElement())return;if(s.strict_loading_mode){sl.settings.strict_mode=s.strict_loading_mode;tinymce.DOM.settings.strict=1;}if(!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&amp;&amp;s.hidden_input&amp;&amp;DOM.getParent(id,'form'))DOM.insertAfter(DOM.create('input',{type:'hidden',name:id}),id);t.windowManager=new tinymce.WindowManager(t);if(s.encoding=='xml'){t.onGetContent.add(function(ed,o){if(o.save)o.content=DOM.encode(o.content);});}if(s.add_form_submit_trigger){t.onSubmit.addToTop(function(){if(t.initialized){t.save();t.isNotDirty=1;}});}if(s.add_unload_trigger&amp;&amp;!s.ask){t._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(t.initialized&amp;&amp;!t.destroyed&amp;&amp;!t.isHidden())t.save({format:'raw',no_events:true});});}tinymce.addUnload(t.destroy,t);if(s.submit_patch){t.onBeforeRenderUI.add(function(){var n=t.getElement().form;if(!n)return;if(n._mceOldSubmit)return;if(!n.submit.nodeType&amp;&amp;!n.submit.length){t.formElement=n;n._mceOldSubmit=n.submit;n.submit=function(){EditorManager.triggerSave();t.isNotDirty=1;return this._mceOldSubmit(this);};}n=null;});}function loadScripts(){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme.charAt(0)!='-'&amp;&amp;!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');each(explode(s.plugins),function(p){if(p&amp;&amp;p.charAt(0)!='-'&amp;&amp;!PluginManager.urls[p]){if(!isWebKit&amp;&amp;p=='safari')return;PluginManager.load(p,'plugins/'+p+'/editor_plugin'+tinymce.suffix+'.js');}});sl.loadQueue(function(){if(s.ask){function ask(){window.setTimeout(function(){Event.remove(t.id,'focus',ask);t.windowManager.confirm(t.getLang('edit_confirm'),function(s){if(s)t.init();});},0);};Event.add(t.id,'focus',ask);return;}if(!t.removed)t.init();});};if(s.plugins.indexOf('compat2x')!=-1){PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');sl.loadQueue(loadScripts);}else loadScripts();},init:function(){var n,t=this,s=t.settings,w,h,e=t.getElement(),o,ti,u,bi,bc,re;EditorManager.add(t);s.theme=s.theme.replace(/-/,'');o=ThemeManager.get(s.theme);t.theme=new o();if(t.theme.init&amp;&amp;s.init_theme)t.theme.init(t,ThemeManager.urls[s.theme]||tinymce.documentBaseURL.replace(/\/$/,''));each(explode(s.plugins.replace(/\-/g,'')),function(p){var c=PluginManager.get(p),u=PluginManager.urls[p]||tinymce.documentBaseURL.replace(/\/$/,''),po;if(c){po=new c(t,u);t.plugins[p]=po;if(po.init)po.init(t,u);}});if(s.popup_css)s.popup_css=t.documentBaseURI.toAbsolute(s.popup_css);else s.popup_css=t.baseURI.toAbsolute(&quot;themes/&quot;+s.theme+&quot;/skins/&quot;+s.skin+&quot;/dialog.css&quot;);if(s.popup_css_add)s.popup_css+=','+t.documentBaseURI.toAbsolute(s.popup_css_add);t.controlManager=new tinymce.ControlManager(t);t.undoManager=new tinymce.UndoManager(t);t.undoManager.onAdd.add(function(um,l){if(!l.initial)return t.onChange.dispatch(t,l,um);});t.undoManager.onUndo.add(function(um,l){return t.onUndo.dispatch(t,l,um);});t.undoManager.onRedo.add(function(um,l){return t.onRedo.dispatch(t,l,um);});if(s.custom_undo_redo){t.onExecCommand.add(function(ed,cmd,ui,val,a){if(cmd!='Undo'&amp;&amp;cmd!='Redo'&amp;&amp;cmd!='mceRepaint'&amp;&amp;(!a||!a.skip_undo))t.undoManager.add();});}t.onExecCommand.add(function(ed,c){if(!/^(FontName|FontSize)$/.test(c))t.nodeChanged();});if(isGecko){function repaint(a,o){if(!o||!o.initial)t.execCommand('mceRepaint');};t.onUndo.add(repaint);t.onRedo.add(repaint);t.onSetContent.add(repaint);}t.onBeforeRenderUI.dispatch(t,t.controlManager);if(s.render_ui){w=s.width||e.style.width||e.offsetWidth;h=s.height||e.style.height||e.offsetHeight;t.orgDisplay=e.style.display;re=/^[0-9\.]+(|px)$/i;if(re.test(''+w))w=Math.max(parseInt(w)+(o.deltaWidth||0),100);if(re.test(''+h))h=Math.max(parseInt(h)+(o.deltaHeight||0),100);o=t.theme.renderUI({targetNode:e,width:w,height:h,deltaWidth:s.delta_width,deltaHeight:s.delta_height});t.editorContainer=o.editorContainer;}DOM.setStyles(o.sizeContainer||o.editorContainer,{width:w,height:h});h=(o.iframeHeight||h)+((h+'').indexOf('%')==-1?(o.deltaHeight||0):'');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+='&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;';if(tinymce.relaxedDomain)t.iframeHTML+='&lt;script type=&quot;text/javascript&quot;&gt;document.domain = &quot;'+tinymce.relaxedDomain+'&quot;;&lt;/script&gt;';bi=s.body_id||'tinymce';if(bi.indexOf('=')!=-1){bi=t.getParam('body_id','','hash');bi=bi[t.id]||bi;}bc=s.body_class||'';if(bc.indexOf('=')!=-1){bc=t.getParam('body_class','','hash');bc=bc[t.id]||'';}t.iframeHTML+='&lt;/head&gt;&lt;body id=&quot;'+bi+'&quot; class=&quot;mceContentBody '+bc+'&quot;&gt;&lt;/body&gt;&lt;/html&gt;';if(tinymce.relaxedDomain){if(isIE)u='javascript:(function(){document.open();document.domain=&quot;'+document.domain+'&quot;;var ed = window.parent.tinyMCE.get(&quot;'+t.id+'&quot;);document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';else if(tinymce.isOpera)u='javascript:(function(){document.open();document.domain=&quot;'+document.domain+'&quot;;document.close();ed.setupIframe();})()';}n=DOM.add(o.iframeContainer,'iframe',{id:t.id+&quot;_ifr&quot;,src:u||'javascript:&quot;&quot;',frameBorder:'0',style:{width:'100%',height:h}});t.contentAreaContainer=o.iframeContainer;DOM.get(o.editorContainer).style.display=t.orgDisplay;DOM.get(t.id).style.display='none';if(tinymce.isOldWebKit){Event.add(n,'load',t.setupIframe,t);n.src=tinymce.baseURL+'/plugins/safari/blank.htm';}else{if(!isIE||!tinymce.relaxedDomain)t.setupIframe();e=n=o=null;}},setupIframe:function(){var t=this,s=t.settings,e=DOM.get(t.id),d=t.getDoc(),h,b;if(!isIE||!tinymce.relaxedDomain){d.open();d.write(t.iframeHTML);d.close();}if(!isIE){try{d.designMode='On';}catch(ex){}}if(isIE){b=t.getBody();DOM.hide(b);b.contentEditable=true;DOM.show(b);}t.dom=new tinymce.DOM.DOMUtils(t.getDoc(),{keep_values:true,url_converter:t.convertURL,url_converter_scope:t,hex_colors:s.force_hex_style_colors,class_filter:s.class_filter,update_styles:1,fix_ie_paragraphs:1});t.serializer=new tinymce.dom.Serializer({entity_encoding:s.entity_encoding,entities:s.entities,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,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});t.editorCommands=new tinymce.EditorCommands(t);t.serializer.onPreProcess.add(function(se,o){return t.onPreProcess.dispatch(t,o,se);});t.serializer.onPostProcess.add(function(se,o){return t.onPostProcess.dispatch(t,o,se);});t.onPreInit.dispatch(t);if(!s.gecko_spellcheck)t.getBody().spellcheck=0;t._addEvents();t.controlManager.onPostRender.dispatch(t,t.controlManager);t.onPostRender.dispatch(t);if(s.directionality)t.getBody().dir=s.directionality;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){var n;if(v.indexOf('~')===0){v=v.substring(1);n='span';}else n='div';o.content=o.content.replace(new RegExp('&lt;('+v+')([^&gt;]*)&gt;','g'),'&lt;'+n+' mce_name=&quot;$1&quot;$2&gt;');o.content=o.content.replace(new RegExp('&lt;/('+v+')&gt;','g'),'&lt;/'+n+'&gt;');});};t.onBeforeSetContent.add(handleCustom);t.onPostProcess.add(function(ed,o){if(o.set)handleCustom(ed,o)});}if(s.handle_node_change_callback){t.onNodeChange.add(function(ed,cm,n){t.execCallback('handle_node_change_callback',t.id,n,-1,-1,true,t.selection.isCollapsed());});}if(s.save_callback){t.onSaveContent.add(function(ed,o){var h=t.execCallback('save_callback',t.id,o.content,t.getBody());if(h)o.content=h;});}if(s.onchange_callback){t.onChange.add(function(ed,l){t.execCallback('onchange_callback',t,l);});}if(s.convert_newlines_to_brs){t.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/\r?\n/g,'&lt;br /&gt;');});}if(s.fix_nesting&amp;&amp;isIE){t.onBeforeSetContent.add(function(ed,o){o.content=t._fixNesting(o.content);});}if(s.preformatted){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^\s*&lt;pre.*?&gt;/,'');o.content=o.content.replace(/&lt;\/pre&gt;\s*$/,'');if(o.set)o.content='&lt;pre class=&quot;mceItemHidden&quot;&gt;'+o.content+'&lt;/pre&gt;';});}if(s.verify_css_classes){t.serializer.attribValueFilter=function(n,v){var s,cl;if(n=='class'){if(!t.classesRE){cl=t.dom.getClasses();if(cl.length&gt;0){s='';each(cl,function(o){s+=(s?'|':'')+o['class'];});t.classesRE=new RegExp('('+s+')','gi');}}return!t.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v)||t.classesRE.test(v)?v:'';}return v;};}if(s.convert_fonts_to_spans)t._convertFonts();if(s.inline_styles)t._convertInlineElements();if(s.cleanup_callback){t.onBeforeSetContent.add(function(ed,o){o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);});t.onPreProcess.add(function(ed,o){if(o.set)t.execCallback('cleanup_callback','insert_to_editor_dom',o.node,o);if(o.get)t.execCallback('cleanup_callback','get_from_editor_dom',o.node,o);});t.onPostProcess.add(function(ed,o){if(o.set)o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);if(o.get)o.content=t.execCallback('cleanup_callback','get_from_editor',o.content,o);});}if(s.save_callback){t.onGetContent.add(function(ed,o){if(o.save)o.content=t.execCallback('save_callback',t.id,o.content,t.getBody());});}if(s.handle_event_callback){t.onEvent.add(function(ed,e,o){if(t.execCallback('handle_event_callback',e,ed,o)===false)Event.cancel(e);});}t.onSetContent.add(function(){t.addVisual(t.getBody());});if(s.padd_empty_editor){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^(&lt;p&gt;(&amp;nbsp;|&amp;#160;|\s|\u00a0|)&lt;\/p&gt;[\r\n]*|&lt;br \/&gt;[\r\n]*)$/,'');});}if(isGecko){try{d.designMode='Off';d.designMode='On';}catch(ex){}}setTimeout(function(){if(t.removed)return;t.load({initial:true,format:(s.cleanup_on_startup?'html':'raw')});t.startContent=t.getContent({format:'raw'});t.undoManager.add({initial:true});t.initialized=true;t.onInit.dispatch(t);t.execCallback('setupcontent_callback',t.id,t.getBody(),t.getDoc());t.execCallback('init_instance_callback',t);t.focus(true);t.nodeChanged({initial:1});if(s.content_css){tinymce.each(explode(s.content_css),function(u){t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));});}if(s.auto_focus){setTimeout(function(){var ed=EditorManager.get(s.auto_focus);ed.selection.select(ed.getBody(),1);ed.selection.collapse(1);ed.getWin().focus();},100);}},1);e=null;},focus:function(sf){var oed,t=this,ce=t.settings.content_editable;if(!sf){if(!ce&amp;&amp;(!isIE||t.selection.getNode().ownerDocument!=t.getDoc()))t.getWin().focus();}if(EditorManager.activeEditor!=t){if((oed=EditorManager.activeEditor)!=null)oed.onDeactivate.dispatch(oed,t);t.onActivate.dispatch(t,oed);}EditorManager._setActive(t);},execCallback:function(n){var t=this,f=t.settings[n],s;if(!f)return;if(t.callbackLookup&amp;&amp;(s=t.callbackLookup[n])){f=s.func;s=s.scope;}if(is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);t.callbackLookup=t.callbackLookup||{};t.callbackLookup[n]={func:f,scope:s};}return f.apply(s||t,Array.prototype.slice.call(arguments,1));},translate:function(s){var c=this.settings.language,i18n=EditorManager.i18n;if(!s)return'';return i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return i18n[c+'.'+b]||'{#'+b+'}';});},getLang:function(n,dv){return EditorManager.i18n[this.settings.language+'.'+n]||(is(dv)?dv:'{#'+n+'}');},getParam:function(n,dv,ty){var tr=tinymce.trim,v=is(this.settings[n])?this.settings[n]:dv,o;if(ty==='hash'){o={};if(is(v,'string')){each(v.indexOf('=')&gt;0?v.split(/[;,](?![^=;,]*(?:[;,]|$))/):v.split(','),function(v){v=v.split('=');if(v.length&gt;1)o[tr(v[0])]=tr(v[1]);else o[tr(v[0])]=tr(v);});}else o=v;return o;}return v;},nodeChanged:function(o){var t=this,s=t.selection,n=s.getNode()||t.getBody();if(t.initialized){t.onNodeChange.dispatch(t,o?o.controlManager||t.controlManager:t.controlManager,isIE&amp;&amp;n.ownerDocument!=t.getDoc()?t.getBody():n,s.isCollapsed(),o);}},addButton:function(n,s){var t=this;t.buttons=t.buttons||{};t.buttons[n]=s;},addCommand:function(n,f,s){this.execCommands[n]={func:f,scope:s||this};},addQueryStateHandler:function(n,f,s){this.queryStateCommands[n]={func:f,scope:s||this};},addQueryValueHandler:function(n,f,s){this.queryValueCommands[n]={func:f,scope:s||this};},addShortcut:function(pa,desc,cmd_func,sc){var t=this,c;if(!t.settings.custom_shortcuts)return false;t.shortcuts=t.shortcuts||{};if(is(cmd_func,'string')){c=cmd_func;cmd_func=function(){t.execCommand(c,false,null);};}if(is(cmd_func,'object')){c=cmd_func;cmd_func=function(){t.execCommand(c[0],c[1],c[2]);};}each(explode(pa),function(pa){var o={func:cmd_func,scope:sc||this,desc:desc,alt:false,ctrl:false,shift:false};each(explode(pa,'+'),function(v){switch(v){case'alt':case'ctrl':case'shift':o[v]=true;break;default:o.charCode=v.charCodeAt(0);o.keyCode=v.toUpperCase().charCodeAt(0);}});t.shortcuts[(o.ctrl?'ctrl':'')+','+(o.alt?'alt':'')+','+(o.shift?'shift':'')+','+o.keyCode]=o;});return true;},execCommand:function(cmd,ui,val,a){var t=this,s=0,o,st;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd)&amp;&amp;(!a||!a.skip_focus))t.focus();o={};t.onBeforeExecCommand.dispatch(t,cmd,ui,val,o);if(o.terminate)return false;if(t.execCallback('execcommand_callback',t.id,t.selection.getNode(),cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(o=t.execCommands[cmd]){st=o.func.call(o.scope,ui,val);if(st!==true){t.onExecCommand.dispatch(t,cmd,ui,val,a);return st;}}each(t.plugins,function(p){if(p.execCommand&amp;&amp;p.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);s=1;return false;}});if(s)return true;if(t.theme.execCommand&amp;&amp;t.theme.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(t.editorCommands.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}t.getDoc().execCommand(cmd,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);},queryCommandState:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryStateCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandState(c);if(o!==-1)return o;try{return this.getDoc().queryCommandState(c);}catch(ex){}},queryCommandValue:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryValueCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandValue(c);if(is(o))return o;try{return this.getDoc().queryCommandValue(c);}catch(ex){}},show:function(){var t=this;DOM.show(t.getContainer());DOM.hide(t.id);t.load();},hide:function(){var t=this,d=t.getDoc();if(isIE&amp;&amp;d)d.execCommand('SelectAll');t.save();DOM.hide(t.getContainer());DOM.setStyle(t.id,'display',t.orgDisplay);},isHidden:function(){return!DOM.isHidden(this.id);},setProgressState:function(b,ti,o){this.onSetProgressState.dispatch(this,b,ti,o);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;o=o||{};o.load=true;h=t.setContent(is(e.value)?e.value:e.innerHTML,o);o.element=e;if(!o.no_events)t.onLoadContent.dispatch(t,o);o.element=e=null;return h;},save:function(o){var t=this,e=t.getElement(),h,f;if(!t.initialized)return;o=o||{};o.save=true;if(!o.no_events){t.undoManager.typing=0;t.undoManager.add();}o.element=e;h=o.content=t.getContent(o);if(!o.no_events)t.onSaveContent.dispatch(t,o);h=o.content;if(!/TEXTAREA|INPUT/i.test(e.nodeName)){e.innerHTML=h;if(f=DOM.getParent(t.id,'form')){each(f.elements,function(e){if(e.name==t.id){e.value=h;return false;}});}}else e.value=h;o.element=e=null;return h;},setContent:function(h,o){var t=this;o=o||{};o.format=o.format||'html';o.set=true;o.content=h;if(!o.no_events)t.onBeforeSetContent.dispatch(t,o);if(!tinymce.isIE&amp;&amp;(h.length===0||/^\s+$/.test(h))){o.content=t.dom.setHTML(t.getBody(),'&lt;br mce_bogus=&quot;1&quot; /&gt;');o.format='raw';}o.content=t.dom.setHTML(t.getBody(),tinymce.trim(o.content));if(o.format!='raw'&amp;&amp;t.settings.cleanup){o.getInner=true;o.content=t.dom.setHTML(t.getBody(),t.serializer.serialize(t.getBody(),o));}if(!o.no_events)t.onSetContent.dispatch(t,o);return o.content;},getContent:function(o){var t=this,h;o=o||{};o.format=o.format||'html';o.get=true;if(!o.no_events)t.onBeforeGetContent.dispatch(t,o);if(o.format!='raw'&amp;&amp;t.settings.cleanup){o.getInner=true;h=t.serializer.serialize(t.getBody(),o);}else h=t.getBody().innerHTML;h=h.replace(/^\s*|\s*$/g,'');o.content=h;if(!o.no_events)t.onGetContent.dispatch(t,o);return o.content;},isDirty:function(){var t=this;return tinymce.trim(t.startContent)!=tinymce.trim(t.getContent({format:'raw',no_events:1}))&amp;&amp;!t.isNotDirty;},getContainer:function(){var t=this;if(!t.container)t.container=DOM.get(t.editorContainer||t.id+'_parent');return t.container;},getContentAreaContainer:function(){return this.contentAreaContainer;},getElement:function(){return DOM.get(this.settings.content_element||this.id);},getWin:function(){var t=this,e;if(!t.contentWindow){e=DOM.get(t.id+&quot;_ifr&quot;);if(e)t.contentWindow=e.contentWindow;}return t.contentWindow;},getDoc:function(){var t=this,w;if(!t.contentDocument){w=t.getWin();if(w)t.contentDocument=w.document;}return t.contentDocument;},getBody:function(){return this.bodyElement||this.getDoc().body;},convertURL:function(u,n,e){var t=this,s=t.settings;if(s.urlconverter_callback)return t.execCallback('urlconverter_callback',u,e,true,n);if(!s.convert_urls||(e&amp;&amp;e.nodeName=='LINK')||u.indexOf('file:')===0)return u;if(s.relative_urls)return t.documentBaseURI.toRelative(u);u=t.documentBaseURI.toAbsolute(u,s.remove_script_host);return u;},addVisual:function(e){var t=this,s=t.settings;e=e||t.getBody();if(!is(t.hasVisual))t.hasVisual=s.visual;each(t.dom.select('table,a',e),function(e){var v;switch(e.nodeName){case'TABLE':v=t.dom.getAttrib(e,'border');if(!v||v=='0'){if(t.hasVisual)t.dom.addClass(e,s.visual_table_class);else t.dom.removeClass(e,s.visual_table_class);}return;case'A':v=t.dom.getAttrib(e,'name');if(v){if(t.hasVisual)t.dom.addClass(e,'mceItemAnchor');else t.dom.removeClass(e,'mceItemAnchor');}return;}});t.onVisualAid.dispatch(t,e,t.hasVisual);},remove:function(){var t=this,e=t.getContainer();t.removed=1;t.hide();t.execCallback('remove_instance_callback',t);t.onRemove.dispatch(t);t.onExecCommand.listeners=[];EditorManager.remove(t);DOM.remove(e);},destroy:function(s){var t=this;if(t.destroyed)return;if(!s){tinymce.removeUnload(t.destroy);tinyMCE.onBeforeUnload.remove(t._beforeUnload);if(t.theme.destroy)t.theme.destroy();t.controlManager.destroy();t.selection.destroy();t.dom.destroy();if(!t.settings.content_editable){Event.clear(t.getWin());Event.clear(t.getDoc());}Event.clear(t.getBody());Event.clear(t.formElement);}if(t.formElement){t.formElement.submit=t.formElement._mceOldSubmit;t.formElement._mceOldSubmit=null;}t.contentAreaContainer=t.formElement=t.container=t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null;if(t.selection)t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null;t.destroyed=1;},_addEvents:function(){var t=this,i,s=t.settings,lo={mouseup:'onMouseUp',mousedown:'onMouseDown',click:'onClick',keyup:'onKeyUp',keydown:'onKeyDown',keypress:'onKeyPress',submit:'onSubmit',reset:'onReset',contextmenu:'onContextMenu',dblclick:'onDblClick',paste:'onPaste'};function eventHandler(e,o){var ty=e.type;if(t.removed)return;if(t.onEvent.dispatch(t,e,o)!==false){t[lo[e.fakeType||e.type]].dispatch(t,e,o);}};each(lo,function(v,k){switch(k){case'contextmenu':if(tinymce.isOpera){Event.add(t.getBody(),'mousedown',function(e){if(e.ctrlKey){e.fakeType='contextmenu';eventHandler(e);}});}else Event.add(t.getBody(),k,eventHandler);break;case'paste':Event.add(t.getBody(),k,function(e){var tx,h,el,r;if(e.clipboardData)tx=e.clipboardData.getData('text/plain');else if(tinymce.isIE)tx=t.getWin().clipboardData.getData('Text');eventHandler(e,{text:tx,html:h});});break;case'submit':case'reset':Event.add(t.getElement().form||DOM.getParent(t.id,'form'),k,eventHandler);break;default:Event.add(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.focus(true);});if(tinymce.isGecko){Event.add(t.getDoc(),'DOMNodeInserted',function(e){var v;e=e.target;if(e.nodeType===1&amp;&amp;e.nodeName==='IMG'&amp;&amp;(v=e.getAttribute('mce_src')))e.src=t.documentBaseURI.toAbsolute(v);});}if(isGecko){function setOpts(){var t=this,d=t.getDoc(),s=t.settings;if(isGecko){if(t._isHidden()){try{if(!s.content_editable)d.designMode='On';}catch(ex){}}try{d.execCommand(&quot;styleWithCSS&quot;,0,false);}catch(ex){if(!t._isHidden())try{d.execCommand(&quot;useCSS&quot;,0,true);}catch(ex){}}if(!s.table_inline_editing)try{d.execCommand('enableInlineTableEditing',false,false);}catch(ex){}if(!s.object_resizing)try{d.execCommand('enableObjectResizing',false,false);}catch(ex){}}};t.onBeforeExecCommand.add(setOpts);t.onMouseDown.add(setOpts);}t.onMouseUp.add(t.nodeChanged);t.onClick.add(t.nodeChanged);t.onKeyUp.add(function(ed,e){if((e.keyCode&gt;=33&amp;&amp;e.keyCode&lt;=36)||(e.keyCode&gt;=37&amp;&amp;e.keyCode&lt;=40)||e.keyCode==13||e.keyCode==45||e.keyCode==46||e.keyCode==8||e.ctrlKey)t.nodeChanged();});t.onReset.add(function(){t.setContent(t.startContent,{format:'raw'});});if(t.getParam('tab_focus')){function tabCancel(ed,e){if(e.keyCode===9)return Event.cancel(e);};function tabHandler(ed,e){var x,i,f,el,v;function find(d){f=DOM.getParent(ed.id,'form');el=f.elements;if(f){each(el,function(e,i){if(e.id==ed.id){x=i;return false;}});if(d&gt;0){for(i=x+1;i&lt;el.length;i++){if(el[i].type!='hidden')return el[i];}}else{for(i=x-1;i&gt;=0;i--){if(el[i].type!='hidden')return el[i];}}}return null;};if(e.keyCode===9){v=explode(ed.getParam('tab_focus'));if(v.length==1){v[1]=v[0];v[0]=':prev';}if(e.shiftKey){if(v[0]==':prev')el=find(-1);else el=DOM.get(v[0]);}else{if(v[1]==':next')el=find(1);else el=DOM.get(v[1]);}if(el){if(ed=EditorManager.get(el.id||el.name))ed.focus();else window.setTimeout(function(){window.focus();el.focus();},10);return Event.cancel(e);}}};t.onKeyUp.add(tabCancel);if(isGecko){t.onKeyPress.add(tabHandler);t.onKeyDown.add(tabCancel);}else t.onKeyDown.add(tabHandler);}if(s.custom_shortcuts){if(s.custom_undo_redo_keyboard_shortcuts){t.addShortcut('ctrl+z',t.getLang('undo_desc'),'Undo');t.addShortcut('ctrl+y',t.getLang('redo_desc'),'Redo');}if(isGecko){t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');}for(i=1;i&lt;=6;i++)t.addShortcut('ctrl+'+i,'',['FormatBlock',false,'&lt;h'+i+'&gt;']);t.addShortcut('ctrl+7','',['FormatBlock',false,'&lt;p&gt;']);t.addShortcut('ctrl+8','',['FormatBlock',false,'&lt;div&gt;']);t.addShortcut('ctrl+9','',['FormatBlock',false,'&lt;address&gt;']);function find(e){var v=null;if(!e.altKey&amp;&amp;!e.ctrlKey&amp;&amp;!e.metaKey)return v;each(t.shortcuts,function(o){if(o.ctrl!=e.ctrlKey&amp;&amp;(!tinymce.isMac||o.ctrl==e.metaKey))return;if(o.alt!=e.altKey)return;if(o.shift!=e.shiftKey)return;if(e.keyCode==o.keyCode||(e.charCode&amp;&amp;e.charCode==o.charCode)){v=o;return false;}});return v;};t.onKeyUp.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyPress.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyDown.add(function(ed,e){var o=find(e);if(o){o.func.call(o.scope);return Event.cancel(e);}});}if(tinymce.isIE){Event.add(t.getDoc(),'controlselect',function(e){var re=t.resizeInfo,cb;e=e.target;if(e.nodeName!=='IMG')return;if(re)Event.remove(re.node,re.ev,re.cb);if(!t.dom.hasClass(e,'mceItemNoResize')){ev='resizeend';cb=Event.add(e,ev,function(e){var v;e=e.target;if(v=t.dom.getStyle(e,'width')){t.dom.setAttrib(e,'width',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'width','');}if(v=t.dom.getStyle(e,'height')){t.dom.setAttrib(e,'height',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'height','');}});}else{ev='resizestart';cb=Event.add(e,'resizestart',Event.cancel,Event);}re=t.resizeInfo={node:e,ev:ev,cb:cb};});t.onKeyDown.add(function(ed,e){switch(e.keyCode){case 8:if(t.selection.getRng().item){t.selection.getRng().item(0).removeNode();return Event.cancel(e);}}});}if(tinymce.isOpera){t.onClick.add(function(ed,e){Event.prevent(e);});}if(s.custom_undo_redo){function addUndo(){t.undoManager.typing=0;t.undoManager.add();};if(tinymce.isIE){Event.add(t.getWin(),'blur',function(e){var n;if(t.selection){n=t.selection.getNode();if(!t.removed&amp;&amp;n.ownerDocument&amp;&amp;n.ownerDocument!=t.getDoc())addUndo();}});}else{Event.add(t.getDoc(),'blur',function(){if(t.selection&amp;&amp;!t.removed)addUndo();});}t.onMouseDown.add(addUndo);t.onKeyUp.add(function(ed,e){if((e.keyCode&gt;=33&amp;&amp;e.keyCode&lt;=36)||(e.keyCode&gt;=37&amp;&amp;e.keyCode&lt;=40)||e.keyCode==13||e.keyCode==45||e.ctrlKey){t.undoManager.typing=0;t.undoManager.add();}});t.onKeyDown.add(function(ed,e){if((e.keyCode&gt;=33&amp;&amp;e.keyCode&lt;=36)||(e.keyCode&gt;=37&amp;&amp;e.keyCode&lt;=40)||e.keyCode==13||e.keyCode==45){if(t.undoManager.typing){t.undoManager.add();t.undoManager.typing=0;}return;}if(!t.undoManager.typing){t.undoManager.add();t.undoManager.typing=1;}});}},_convertInlineElements:function(){var t=this,s=t.settings,dom=t.dom,v,e,na,st,sp;function convert(ed,o){if(!s.inline_styles)return;if(o.get){each(t.dom.select('table,u,strike',o.node),function(n){switch(n.nodeName){case'TABLE':if(v=dom.getAttrib(n,'height')){dom.setStyle(n,'height',v);dom.setAttrib(n,'height','');}break;case'U':case'STRIKE':n.style.textDecoration=n.nodeName=='U'?'underline':'line-through';dom.setAttrib(n,'mce_style','');dom.setAttrib(n,'mce_name','span');break;}});}else if(o.set){each(t.dom.select('table,span',o.node).reverse(),function(n){if(n.nodeName=='TABLE'){if(v=dom.getStyle(n,'height'))dom.setAttrib(n,'height',v.replace(/[^0-9%]+/g,''));}else{if(n.style.textDecoration=='underline')na='u';else if(n.style.textDecoration=='line-through')na='strike';else na='';if(na){n.style.textDecoration='';dom.setAttrib(n,'mce_style','');e=dom.create(na,{style:dom.getAttrib(n,'style')});dom.replace(e,n,1);}}});}};t.onPreProcess.add(convert);if(!s.cleanup_on_startup){t.onSetContent.add(function(ed,o){if(o.initial)convert(t,{node:t.getBody(),set:1});});}},_convertFonts:function(){var t=this,s=t.settings,dom=t.dom,fz,fzn,sl,cl;if(!s.inline_styles)return;fz=[8,10,12,14,18,24,36];fzn=['xx-small','x-small','small','medium','large','x-large','xx-large'];if(sl=s.font_size_style_values)sl=explode(sl);if(cl=s.font_size_classes)cl=explode(cl);function convertToFonts(no){var n,f,nl,x,i,v,st;if(tinymce.isWebKit||!s.inline_styles)return;nl=t.dom.select('span',no);for(x=nl.length-1;x&gt;=0;x--){n=nl[x];f=dom.create('font',{color:dom.toHex(dom.getStyle(n,'color')),face:dom.getStyle(n,'fontFamily'),style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});st=f.style;if(st.color||st.fontFamily){st.color=st.fontFamily='';dom.setAttrib(f,'mce_style','');}if(sl){i=inArray(sl,dom.getStyle(n,'fontSize'));if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));}}else if(cl){i=inArray(cl,dom.getAttrib(n,'class'));v=dom.getStyle(n,'fontSize');if(i==-1&amp;&amp;v.indexOf('pt')&gt;0)i=inArray(fz,parseInt(v));if(i==-1)i=inArray(fzn,v);if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));f.style.fontSize='';}}if(f.color||f.face||f.size){f.style.fontFamily='';dom.setAttrib(f,'mce_style','');dom.replace(f,n,1);}f=n=null;}};t.onSetContent.add(function(ed,o){convertToFonts(ed.getBody());});t.onPreProcess.add(function(ed,o){var n,sp,nl,x;if(!s.inline_styles)return;if(o.get){nl=t.dom.select('font',o.node);for(x=nl.length-1;x&gt;=0;x--){n=nl[x];sp=dom.create('span',{style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});dom.setStyles(sp,{fontFamily:dom.getAttrib(n,'face'),color:dom.getAttrib(n,'color'),backgroundColor:n.style.backgroundColor});if(n.size){if(sl)dom.setStyle(sp,'fontSize',sl[parseInt(n.size)-1]);else dom.setAttrib(sp,'class',cl[parseInt(n.size)-1]);}dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);}}});},_isHidden:function(){var s;if(!isGecko)return 0;s=this.selection.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},_fixNesting:function(s){var d=[],i;s=s.replace(/&lt;(\/)?([^\s&gt;]+)[^&gt;]*?&gt;/g,function(a,b,c){var e;if(b==='/'){if(!d.length)return'';if(c!==d[d.length-1].tag){for(i=d.length-1;i&gt;=0;i--){if(d[i].tag===c){d[i].close=1;break;}}return'';}else{d.pop();if(d.length&amp;&amp;d[d.length-1].close){a=a+'&lt;/'+d[d.length-1].tag+'&gt;';d.pop();}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(c))return a;if(/\/&gt;$/.test(a))return a;d.push({tag:c});}return a;});for(i=d.length-1;i&gt;=0;i--)s+='&lt;/'+d[i].tag+'&gt;';return s;}});})();(function(){var each=tinymce.each,isIE=tinymce.isIE,isGecko=tinymce.isGecko,isOpera=tinymce.isOpera,isWebKit=tinymce.isWebKit;tinymce.create('tinymce.EditorCommands',{EditorCommands:function(ed){this.editor=ed;},execCommand:function(cmd,ui,val){var t=this,ed=t.editor,f;switch(cmd){case'Cut':case'Copy':case'Paste':try{ed.getDoc().execCommand(cmd,ui,val);}catch(ex){if(isGecko){ed.windowManager.confirm(ed.getLang('clipboard_msg'),function(s){if(s)window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');});}else ed.windowManager.alert(ed.getLang('clipboard_no_support'));}return true;case'mceResetDesignMode':case'mceBeginUndoLevel':return true;case'unlink':t.UnLink();return true;case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':t.mceJustify(cmd,cmd.substring(7).toLowerCase());return true;case'mceEndUndoLevel':case'mceAddUndoLevel':ed.undoManager.add();return true;default:f=this[cmd];if(f){f.call(this,ui,val);return true;}}return false;},Indent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&amp;&amp;(!this.queryStateInsertUnorderedList()&amp;&amp;!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){d.setStyle(e,'paddingLeft',(parseInt(e.style.paddingLeft||0)+iv)+iu);});return;}ed.getDoc().execCommand('Indent',false,null);if(isIE){d.getParent(s.getNode(),function(n){if(n.nodeName=='BLOCKQUOTE'){n.dir=n.style.cssText='';}});}},Outdent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,v,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&amp;&amp;(!this.queryStateInsertUnorderedList()&amp;&amp;!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){v=Math.max(0,parseInt(e.style.paddingLeft||0)-iv);d.setStyle(e,'paddingLeft',v?v+iu:'');});return;}ed.getDoc().execCommand('Outdent',false,null);},mceSetAttribute:function(u,v){var ed=this.editor,d=ed.dom,e;if(e=d.getParent(ed.selection.getNode(),d.isBlock))d.setAttrib(e,v.name,v.value);},mceSetContent:function(u,v){this.editor.setContent(v);},mceToggleVisualAid:function(){var ed=this.editor;ed.hasVisual=!ed.hasVisual;ed.addVisual();},mceReplaceContent:function(u,v){var s=this.editor.selection;s.setContent(v.replace(/\{\$selection\}/g,s.getContent({format:'text'})));},mceInsertLink:function(u,v){var ed=this.editor,s=ed.selection,e=ed.dom.getParent(s.getNode(),'A');if(tinymce.is(v,'string'))v={href:v};function set(e){each(v,function(v,k){ed.dom.setAttrib(e,k,v);});};if(!e){ed.execCommand('CreateLink',false,'javascript:mctmp(0);');each(ed.dom.select('a'),function(e){if(e.href=='javascript:mctmp(0);')set(e);});}else{if(v.href)set(e);else ed.dom.remove(e,1);}},UnLink:function(){var ed=this.editor,s=ed.selection;if(s.isCollapsed())s.select(s.getNode());ed.getDoc().execCommand('unlink',false,null);s.collapse(0);},FontName:function(u,v){var t=this,ed=t.editor,s=ed.selection,e;if(!v){if(s.isCollapsed())s.select(s.getNode());t.RemoveFormat();}else ed.getDoc().execCommand('FontName',false,v);},FontSize:function(u,v){var ed=this.editor,s=ed.settings,fz=tinymce.explode(s.font_size_style_values),fzc=tinymce.explode(s.font_size_classes),h,bm;each(ed.dom.select('font'),function(e){e.style.fontSize='';});ed.getDoc().execCommand('FontSize',false,v);if(s.inline_styles){each(ed.dom.select('font'),function(e){if(e.parentNode.nodeName=='FONT'&amp;&amp;e.size==e.parentNode.size){if(!bm)bm=ed.selection.getBookmark();ed.dom.remove(e,1);return;}if(v=e.size){if(fzc&amp;&amp;fzc.length&gt;0)ed.dom.setAttrib(e,'class',fzc[parseInt(v)-1]);else ed.dom.setStyle(e,'fontSize',fz[parseInt(v)-1]);}});}ed.selection.moveToBookmark(bm);},queryCommandValue:function(c){var f=this['queryValue'+c];if(f)return f.call(this,c);return false;},queryCommandState:function(cmd){var f;switch(cmd){case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':return this.queryStateJustify(cmd,cmd.substring(7).toLowerCase());default:if(f=this['queryState'+cmd])return f.call(this,cmd);}return-1;},_queryState:function(c){try{return this.editor.getDoc().queryCommandState(c);}catch(ex){}},_queryVal:function(c){try{return this.editor.getDoc().queryCommandValue(c);}catch(ex){}},queryValueFontSize:function(){var ed=this.editor,v=0,p;if(isOpera||isWebKit){if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.size;return v;}return this._queryVal('FontSize');},queryValueFontName:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.face;if(!v)v=this._queryVal('FontName');return v;},mceJustify:function(c,v){var ed=this.editor,se=ed.selection,n=se.getNode(),nn=n.nodeName,bl,nb,dom=ed.dom,rm;if(ed.settings.inline_styles&amp;&amp;this.queryStateJustify(c,v))rm=1;bl=dom.getParent(n,ed.dom.isBlock);if(nn=='IMG'){if(v=='full')return;if(rm){if(v=='center')dom.setStyle(n.parentNode,'textAlign','');dom.setStyle(n,'float','');this.mceRepaint();return;}if(v=='center'){if(/^(TD|TH)$/.test(bl.nodeName))bl=0;if(!bl||bl.childNodes.length&gt;1){nb=dom.create('p');nb.appendChild(n.cloneNode(false));if(bl)dom.insertAfter(nb,bl);else dom.insertAfter(nb,n);dom.remove(n);n=nb.firstChild;bl=nb;}dom.setStyle(bl,'textAlign',v);dom.setStyle(n,'float','');}else{dom.setStyle(n,'float',v);dom.setStyle(n.parentNode,'textAlign','');}this.mceRepaint();return;}if(ed.settings.inline_styles&amp;&amp;ed.settings.forced_root_block){if(rm)v='';each(this._getSelectedBlocks(dom.getParent(se.getStart(),dom.isBlock),dom.getParent(se.getEnd(),dom.isBlock)),function(e){dom.setAttrib(e,'align','');dom.setStyle(e,'textAlign',v=='full'?'justify':v);});return;}else if(!rm)ed.getDoc().execCommand(c,false,null);if(ed.settings.inline_styles){if(rm){dom.getParent(ed.selection.getNode(),function(n){if(n.style&amp;&amp;n.style.textAlign)dom.setStyle(n,'textAlign','');});return;}each(dom.select('*'),function(n){var v=n.align;if(v){if(v=='full')v='justify';dom.setStyle(n,'textAlign',v);dom.setAttrib(n,'align','');}});}},mceSetCSSClass:function(u,v){this.mceSetStyleInfo(0,{command:'setattrib',name:'class',value:v});},getSelectedElement:function(){var t=this,ed=t.editor,dom=ed.dom,se=ed.selection,r=se.getRng(),r1,r2,sc,ec,so,eo,e,sp,ep,re;if(se.isCollapsed()||r.item)return se.getNode();re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(isIE){r1=r.duplicate();r1.collapse(true);sc=r1.parentElement();r2=r.duplicate();r2.collapse(false);ec=r2.parentElement();if(sc!=ec){r1.move('character',1);sc=r1.parentElement();}if(sc==ec){r1=r.duplicate();r1.moveToElementText(sc);if(r1.compareEndPoints('StartToStart',r)==0&amp;&amp;r1.compareEndPoints('EndToEnd',r)==0)return re&amp;&amp;re.test(sc.nodeName)?null:sc;}}else{function getParent(n){return dom.getParent(n,function(n){return n.nodeType==1;});};sc=r.startContainer;ec=r.endContainer;so=r.startOffset;eo=r.endOffset;if(!r.collapsed){if(sc==ec){if(so-eo&lt;2){if(sc.hasChildNodes()){sp=sc.childNodes[so];return re&amp;&amp;re.test(sp.nodeName)?null:sp;}}}}if(sc.nodeType!=3||ec.nodeType!=3)return null;if(so==0){sp=getParent(sc);if(sp&amp;&amp;sp.firstChild!=sc)sp=null;}if(so==sc.nodeValue.length){e=sc.nextSibling;if(e&amp;&amp;e.nodeType==1)sp=sc.nextSibling;}if(eo==0){e=ec.previousSibling;if(e&amp;&amp;e.nodeType==1)ep=e;}if(eo==ec.nodeValue.length){ep=getParent(ec);if(ep&amp;&amp;ep.lastChild!=ec)ep=null;}if(sp==ep)return re&amp;&amp;sp&amp;&amp;re.test(sp.nodeName)?null:sp;}return null;},InsertHorizontalRule:function(){if(isGecko||isIE)this.editor.selection.setContent('&lt;hr /&gt;');else this.editor.getDoc().execCommand('InsertHorizontalRule',false,'');},RemoveFormat:function(){var t=this,ed=t.editor,s=ed.selection,b;if(isWebKit)s.setContent(s.getContent({format:'raw'}).replace(/(&lt;(span|b|i|strong|em|strike) [^&gt;]+&gt;|&lt;(span|b|i|strong|em|strike)&gt;|&lt;\/(span|b|i|strong|em|strike)&gt;|)/g,''),{format:'raw'});else ed.getDoc().execCommand('RemoveFormat',false,null);t.mceSetStyleInfo(0,{command:'removeformat'});ed.addVisual();},mceSetStyleInfo:function(u,v){var t=this,ed=t.editor,d=ed.getDoc(),dom=ed.dom,e,b,s=ed.selection,nn=v.wrapper||'span',b=s.getBookmark(),re;function set(n,e){if(n.nodeType==1){switch(v.command){case'setattrib':return dom.setAttrib(n,v.name,v.value);case'setstyle':return dom.setStyle(n,v.name,v.value);case'removeformat':return dom.setAttrib(n,'class','');}}};re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(e=t.getSelectedElement())set(e,1);else{d.execCommand('FontName',false,'__');each(isWebKit?dom.select('span'):dom.select('font'),function(n){var sp,e;if(dom.getAttrib(n,'face')=='__'||n.style.fontFamily==='__'){sp=dom.create(nn,{mce_new:'1'});set(sp);each(n.childNodes,function(n){sp.appendChild(n.cloneNode(true));});dom.replace(sp,n);}});}each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!dom.getAttrib(n,'mce_new')){p=dom.getParent(n,function(n){return n.nodeType==1&amp;&amp;dom.getAttrib(n,'mce_new');});if(p)dom.remove(n,1);}});each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!p||!dom.getAttrib(n,'mce_new'))return;if(p.nodeName==nn.toUpperCase()&amp;&amp;p.childNodes.length==1)return dom.remove(p,1);if(n.nodeType==1&amp;&amp;(!re||!re.test(p.nodeName))&amp;&amp;p.childNodes.length==1){set(p);dom.setAttrib(n,'class','');}});each(dom.select(nn).reverse(),function(n){if(dom.getAttrib(n,'mce_new')||(dom.getAttribs(n).length&lt;=1&amp;&amp;n.className==='')){if(!dom.getAttrib(n,'class')&amp;&amp;!dom.getAttrib(n,'style'))return dom.remove(n,1);dom.setAttrib(n,'mce_new','');}});s.moveToBookmark(b);},queryStateJustify:function(c,v){var ed=this.editor,n=ed.selection.getNode(),dom=ed.dom;if(n&amp;&amp;n.nodeName=='IMG'){if(dom.getStyle(n,'float')==v)return 1;return n.parentNode.style.textAlign==v;}n=dom.getParent(ed.selection.getStart(),function(n){return n.nodeType==1&amp;&amp;n.style.textAlign;});if(v=='full')v='justify';if(ed.settings.inline_styles)return(n&amp;&amp;n.style.textAlign==v);return this._queryState(c);},HiliteColor:function(ui,val){var t=this,ed=t.editor,d=ed.getDoc();function set(s){if(!isGecko)return;try{d.execCommand(&quot;styleWithCSS&quot;,0,s);}catch(ex){d.execCommand(&quot;useCSS&quot;,0,!s);}};if(isGecko||isOpera){set(true);d.execCommand('hilitecolor',false,val);set(false);}else d.execCommand('BackColor',false,val);},Undo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.undo();ed.nodeChanged();}else ed.getDoc().execCommand('Undo',false,null);},Redo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.redo();ed.nodeChanged();}else ed.getDoc().execCommand('Redo',false,null);},FormatBlock:function(ui,val){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,bl,nb,b;function isBlock(n){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(n.nodeName);};bl=dom.getParent(s.getNode(),function(n){return isBlock(n);});if(bl){if((isIE&amp;&amp;isBlock(bl.parentNode))||bl.nodeName=='DIV'){nb=ed.dom.create(val);each(dom.getAttribs(bl),function(v){dom.setAttrib(nb,v.nodeName,dom.getAttrib(bl,v.nodeName));});b=s.getBookmark();dom.replace(nb,bl,1);s.moveToBookmark(b);ed.nodeChanged();return;}}val=ed.settings.forced_root_block?(val||'&lt;p&gt;'):val;if(val.indexOf('&lt;')==-1)val='&lt;'+val+'&gt;';if(tinymce.isGecko)val=val.replace(/&lt;(div|blockquote|code|dt|dd|dl|samp)&gt;/gi,'$1');ed.getDoc().execCommand('FormatBlock',false,val);},mceCleanup:function(){var ed=this.editor,s=ed.selection,b=s.getBookmark();ed.setContent(ed.getContent());s.moveToBookmark(b);},mceRemoveNode:function(ui,val){var ed=this.editor,s=ed.selection,b,n=val||s.getNode();if(n==ed.getBody())return;b=s.getBookmark();ed.dom.remove(n,1);s.moveToBookmark(b);ed.nodeChanged();},mceSelectNodeDepth:function(ui,val){var ed=this.editor,s=ed.selection,c=0;ed.dom.getParent(s.getNode(),function(n){if(n.nodeType==1&amp;&amp;c++==val){s.select(n);ed.nodeChanged();return false;}},ed.getBody());},mceSelectNode:function(u,v){this.editor.selection.select(v);},mceInsertContent:function(ui,val){this.editor.selection.setContent(val);},mceInsertRawHTML:function(ui,val){var ed=this.editor;ed.selection.setContent('tiny_mce_marker');ed.setContent(ed.getContent().replace(/tiny_mce_marker/g,val));},mceRepaint:function(){var s,b,e=this.editor;if(tinymce.isGecko){try{s=e.selection;b=s.getBookmark(true);if(s.getSel())s.getSel().selectAllChildren(e.getBody());s.collapse(true);s.moveToBookmark(b);}catch(ex){}}},queryStateUnderline:function(){var ed=this.editor,n=ed.selection.getNode();if(n&amp;&amp;n.nodeName=='A')return false;return this._queryState('Underline');},queryStateOutdent:function(){var ed=this.editor,n;if(ed.settings.inline_styles){if((n=ed.dom.getParent(ed.selection.getStart(),ed.dom.isBlock))&amp;&amp;parseInt(n.style.paddingLeft)&gt;0)return true;if((n=ed.dom.getParent(ed.selection.getEnd(),ed.dom.isBlock))&amp;&amp;parseInt(n.style.paddingLeft)&gt;0)return true;}else return!!ed.dom.getParent(ed.selection.getNode(),'BLOCKQUOTE');return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList();},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'UL');},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'OL');},queryStatemceBlockQuote:function(){return!!this.editor.dom.getParent(this.editor.selection.getStart(),function(n){return n.nodeName==='BLOCKQUOTE';});},mceBlockQuote:function(){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,sb,eb,n,bm,bq,r,bq2,i,nl;function getBQ(e){return dom.getParent(e,function(n){return n.nodeName==='BLOCKQUOTE';});};sb=dom.getParent(s.getStart(),dom.isBlock);eb=dom.getParent(s.getEnd(),dom.isBlock);if(bq=getBQ(sb)){if(sb!=eb||sb.childNodes.length&gt;1||(sb.childNodes.length==1&amp;&amp;sb.firstChild.nodeName!='BR'))bm=s.getBookmark();if(getBQ(eb)){bq2=bq.cloneNode(false);while(n=eb.nextSibling)bq2.appendChild(n.parentNode.removeChild(n));}if(bq2)dom.insertAfter(bq2,bq);nl=t._getSelectedBlocks(sb,eb);for(i=nl.length-1;i&gt;=0;i--){dom.insertAfter(nl[i],bq);}if(/^\s*$/.test(bq.innerHTML))dom.remove(bq,1);if(bq2&amp;&amp;/^\s*$/.test(bq2.innerHTML))dom.remove(bq2,1);if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(0);if(dom.getParent(s.getStart(),dom.isBlock)!=sb){r=s.getRng();r.move('character',-1);r.select();}}}else t.editor.selection.moveToBookmark(bm);return;}if(isIE&amp;&amp;!sb&amp;&amp;!eb){t.editor.getDoc().execCommand('Indent');n=getBQ(s.getNode());n.style.margin=n.dir='';return;}if(!sb||!eb)return;if(sb!=eb||sb.childNodes.length&gt;1||(sb.childNodes.length==1&amp;&amp;sb.firstChild.nodeName!='BR'))bm=s.getBookmark();each(t._getSelectedBlocks(getBQ(s.getStart()),getBQ(s.getEnd())),function(e){if(e.nodeName=='BLOCKQUOTE'&amp;&amp;!bq){bq=e;return;}if(!bq){bq=dom.create('blockquote');e.parentNode.insertBefore(bq,e);}if(e.nodeName=='BLOCKQUOTE'&amp;&amp;bq){n=e.firstChild;while(n){bq.appendChild(n.cloneNode(true));n=n.nextSibling;}dom.remove(e);return;}bq.appendChild(dom.remove(e));});if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(1);}}else s.moveToBookmark(bm);},_getSelectedBlocks:function(st,en){var ed=this.editor,dom=ed.dom,s=ed.selection,sb,eb,n,bl=[];sb=dom.getParent(st||s.getStart(),dom.isBlock);eb=dom.getParent(en||s.getEnd(),dom.isBlock);if(sb)bl.push(sb);if(sb&amp;&amp;eb&amp;&amp;sb!=eb){n=sb;while((n=n.nextSibling)&amp;&amp;n!=eb){if(dom.isBlock(n))bl.push(n);}}if(eb&amp;&amp;sb!=eb)bl.push(eb);return bl;}});})();tinymce.create('tinymce.UndoManager',{index:0,data:null,typing:0,UndoManager:function(ed){var t=this,Dispatcher=tinymce.util.Dispatcher;t.editor=ed;t.data=[];t.onAdd=new Dispatcher(this);t.onUndo=new Dispatcher(this);t.onRedo=new Dispatcher(this);},add:function(l){var t=this,i,ed=t.editor,b,s=ed.settings,la;l=l||{};l.content=l.content||ed.getContent({format:'raw',no_events:1});l.content=l.content.replace(/^\s*|\s*$/g,'');la=t.data[t.index&gt;0&amp;&amp;(t.index==0||t.index==t.data.length)?t.index-1:t.index];if(!l.initial&amp;&amp;la&amp;&amp;l.content==la.content)return null;if(s.custom_undo_redo_levels){if(t.data.length&gt;s.custom_undo_redo_levels){for(i=0;i&lt;t.data.length-1;i++)t.data[i]=t.data[i+1];t.data.length--;t.index=t.data.length;}}if(s.custom_undo_redo_restore_selection&amp;&amp;!l.initial)l.bookmark=b=l.bookmark||ed.selection.getBookmark();if(t.index&lt;t.data.length)t.index++;if(t.data.length===0&amp;&amp;!l.initial)return null;t.data.length=t.index+1;t.data[t.index++]=l;if(l.initial)t.index=0;if(t.data.length==2&amp;&amp;t.data[0].initial)t.data[0].bookmark=b;t.onAdd.dispatch(t,l);ed.isNotDirty=0;return l;},undo:function(){var t=this,ed=t.editor,l=l,i;if(t.typing){t.add();t.typing=0;}if(t.index&gt;0){if(t.index==t.data.length&amp;&amp;t.index&gt;1){i=t.index;t.typing=0;if(!t.add())t.index=i;--t.index;}l=t.data[--t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onUndo.dispatch(t,l);}return l;},redo:function(){var t=this,ed=t.editor,l=null;if(t.index&lt;t.data.length-1){l=t.data[++t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onRedo.dispatch(t,l);}return l;},clear:function(){var t=this;t.data=[];t.index=0;t.typing=0;t.add({initial:true});},hasUndo:function(){return this.index!=0||this.typing;},hasRedo:function(){return this.index&lt;this.data.length-1;}});(function(){var Event,isIE,isGecko,isOpera,each,extend;Event=tinymce.dom.Event;isIE=tinymce.isIE;isGecko=tinymce.isGecko;isOpera=tinymce.isOpera;each=tinymce.each;extend=tinymce.extend;tinymce.create('tinymce.ForceBlocks',{ForceBlocks:function(ed){var t=this,s=ed.settings,elm;t.editor=ed;t.dom=ed.dom;elm=(s.forced_root_block||'p').toLowerCase();s.element=elm.toUpperCase();ed.onPreInit.add(t.setup,t);t.reOpera=new RegExp('(\\u00a0|&amp;#160;|&amp;nbsp;)&lt;\/'+elm+'&gt;','gi');t.rePadd=new RegExp('&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;'.replace(/p/g,elm),'gi');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)o.content=o.content.replace(t.reOpera,'&lt;/'+elm+'&gt;');o.content=o.content.replace(t.rePadd,'&lt;'+elm+'$1$2$3$4$5$6&gt;\u00a0&lt;/'+elm+'&gt;');if(!isIE&amp;&amp;!isOpera&amp;&amp;o.set){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{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);ed.onPostProcess.add(padd);if(s.forced_root_block){ed.onInit.add(t.forceRoots,t);ed.onSetContent.add(t.forceRoots,t);ed.onBeforeGetContent.add(t.forceRoots,t);}},setup:function(){var t=this,ed=t.editor,s=ed.settings;if(s.forced_root_block){ed.onKeyUp.add(t.forceRoots,t);ed.onPreProcess.add(t.forceRoots,t);}if(s.force_br_newlines){if(isIE){ed.onKeyPress.add(function(ed,e){var n,s=ed.selection;if(e.keyCode==13&amp;&amp;s.getNode().nodeName!='LI'){s.setContent('&lt;br id=&quot;__&quot; /&gt; ',{format:'raw'});n=ed.dom.get('__');n.removeAttribute('id');s.select(n);s.collapse();return Event.cancel(e);}});}return;}if(!isIE&amp;&amp;s.force_p_newlines){ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&amp;&amp;!e.shiftKey){if(!t.insertPara(e))Event.cancel(e);}});if(isGecko){ed.onKeyDown.add(function(ed,e){if((e.keyCode==8||e.keyCode==46)&amp;&amp;!e.shiftKey)t.backspaceDelete(e,e.keyCode==8);});}}function ren(rn,na){var ne=ed.dom.create(na);each(rn.attributes,function(a){if(a.specified&amp;&amp;a.nodeValue)ne.setAttribute(a.nodeName.toLowerCase(),a.nodeValue);});each(rn.childNodes,function(n){ne.appendChild(n.cloneNode(true));});rn.parentNode.replaceChild(ne,rn);return ne;};if(isIE&amp;&amp;s.element!='P'){ed.onKeyPress.add(function(ed,e){t.lastElm=ed.selection.getNode().nodeName;});ed.onKeyUp.add(function(ed,e){var bl,sel=ed.selection,n=sel.getNode(),b=ed.getBody();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();}}});}},find:function(n,t,s){var ed=this.editor,w=ed.getDoc().createTreeWalker(n,4,null,false),c=-1;while(n=w.nextNode()){c++;if(t==0&amp;&amp;n==s)return c;if(t==1&amp;&amp;c==s)return n;}return-1;},forceRoots:function(ed,e){var t=this,ed=t.editor,b=ed.getBody(),d=ed.getDoc(),se=ed.selection,s=se.getSel(),r=se.getRng(),si=-2,ei,so,eo,tr,c=-0xFFFFFF;var nx,bl,bp,sp,le,nl=b.childNodes,i;if(e&amp;&amp;e.keyCode==13)return true;for(i=nl.length-1;i&gt;=0;i--){nx=nl[i];if(nx.nodeType==3||(!t.dom.isBlock(nx)&amp;&amp;nx.nodeType!=8)){if(!bl){if(nx.nodeType!=3||/[^\s]/g.test(nx.nodeValue)){if(si==-2&amp;&amp;r){if(!isIE){if(ed.dom.getParent(r.startContainer,function(e){return e===b;})){so=r.startOffset;eo=r.endOffset;si=t.find(b,0,r.startContainer);ei=t.find(b,0,r.endContainer);}}else{tr=d.body.createTextRange();tr.moveToElementText(b);tr.collapse(1);bp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(1);sp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(0);le=(tr.move('character',c)*-1)-sp;si=sp-bp;ei=le;}}bl=ed.dom.create(ed.settings.forced_root_block);bl.appendChild(nx.cloneNode(1));nx.parentNode.replaceChild(bl,nx);}}else{if(bl.hasChildNodes())bl.insertBefore(nx,bl.firstChild);else bl.appendChild(nx);}}else bl=null;}if(si!=-2){if(!isIE){bl=b.getElementsByTagName(ed.settings.element)[0];r=d.createRange();if(si!=-1)r.setStart(t.find(b,1,si),so);else r.setStart(bl,0);if(ei!=-1)r.setEnd(t.find(b,1,ei),eo);else r.setEnd(bl,0);if(s){s.removeAllRanges();s.addRange(r);}}else{try{r=s.createRange();r.moveToElementText(b);r.collapse(1);r.moveStart('character',si);r.moveEnd('character',ei);r.select();}catch(ex){}}}},getParentBlock:function(n){var d=this.dom;return d.getParent(n,d.isBlock);},insertPara:function(e){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;function isEmpty(n){n=n.innerHTML;n=n.replace(/&lt;(img|hr|table)/gi,'-');n=n.replace(/&lt;[^&gt;]+&gt;/g,'');return n.replace(/[ \t\r\n]+/g,'')=='';};rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(true);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(true);dir=rb.compareBoundaryPoints(rb.START_TO_END,ra)&lt;0;sn=dir?s.anchorNode:s.focusNode;so=dir?s.anchorOffset:s.focusOffset;en=dir?s.focusNode:s.anchorNode;eo=dir?s.focusOffset:s.anchorOffset;if(sn===en&amp;&amp;/^(TD|TH)$/.test(sn.nodeName)){dom.remove(sn.firstChild);ed.dom.add(sn,se.element,null,'&lt;br /&gt;');aft=ed.dom.add(sn,se.element,null,'&lt;br /&gt;');r=d.createRange();r.selectNodeContents(aft);r.collapse(1);ed.selection.setRng(r);return false;}if(sn==b&amp;&amp;en==b&amp;&amp;b.firstChild&amp;&amp;ed.dom.isBlock(b.firstChild)){sn=en=sn.firstChild;so=eo=0;rb=d.createRange();rb.setStart(sn,0);ra=d.createRange();ra.setStart(en,0);}sn=sn.nodeName==&quot;HTML&quot;?d.body:sn;sn=sn.nodeName==&quot;BODY&quot;?sn.firstChild:sn;en=en.nodeName==&quot;HTML&quot;?d.body:en;en=en.nodeName==&quot;BODY&quot;?en.firstChild:en;sb=t.getParentBlock(sn);eb=t.getParentBlock(en);bn=sb?sb.nodeName:se.element;if(t.dom.getParent(sb,function(n){return/OL|UL|PRE/.test(n.nodeName);}))return true;if(sb&amp;&amp;(sb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(sb.style.position))){bn=se.element;sb=null;}if(eb&amp;&amp;(eb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(eb.style.position))){bn=se.element;eb=null;}if(/(TD|TABLE|TH|CAPTION)/.test(bn)||(sb&amp;&amp;bn==&quot;DIV&quot;&amp;&amp;/left|right/gi.test(sb.style.cssFloat))){bn=se.element;sb=eb=null;}bef=(sb&amp;&amp;sb.nodeName==bn)?sb.cloneNode(0):ed.dom.create(bn);aft=(eb&amp;&amp;eb.nodeName==bn)?eb.cloneNode(0):ed.dom.create(bn);aft.removeAttribute('id');if(/^(H[1-6])$/.test(bn)&amp;&amp;sn.nodeValue&amp;&amp;so==sn.nodeValue.length)aft=ed.dom.create(se.element);n=sc=sn;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;sc=n;}while((n=n.previousSibling?n.previousSibling:n.parentNode));n=ec=en;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;ec=n;}while((n=n.nextSibling?n.nextSibling:n.parentNode));if(sc.nodeName==bn)rb.setStart(sc,0);else rb.setStartBefore(sc);rb.setEnd(sn,so);bef.appendChild(rb.cloneContents()||d.createTextNode(''));try{ra.setEndAfter(ec);}catch(ex){}ra.setStart(en,eo);aft.appendChild(ra.cloneContents()||d.createTextNode(''));r=d.createRange();if(!sc.previousSibling&amp;&amp;sc.parentNode.nodeName==bn){r.setStartBefore(sc.parentNode);}else{if(rb.startContainer.nodeName==bn&amp;&amp;rb.startOffset==0)r.setStartBefore(rb.startContainer);else r.setStart(rb.startContainer,rb.startOffset);}if(!ec.nextSibling&amp;&amp;ec.parentNode.nodeName==bn)r.setEndAfter(ec.parentNode);else r.setEnd(ra.endContainer,ra.endOffset);r.deleteContents();if(isOpera)ed.getWin().scrollTo(0,vp.y);if(bef.firstChild&amp;&amp;bef.firstChild.nodeName==bn)bef.innerHTML=bef.firstChild.innerHTML;if(aft.firstChild&amp;&amp;aft.firstChild.nodeName==bn)aft.innerHTML=aft.firstChild.innerHTML;if(isEmpty(bef))bef.innerHTML='&lt;br /&gt;';if(isEmpty(aft))aft.innerHTML=isOpera?'&amp;nbsp;':'&lt;br /&gt;';if(isOpera&amp;&amp;parseFloat(opera.version())&lt;9.5){r.insertNode(bef);r.insertNode(aft);}else{r.insertNode(aft);r.insertNode(bef);}aft.normalize();bef.normalize();function first(n){return d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode()||n;};r=d.createRange();r.selectNodeContents(isGecko?first(aft):aft);r.collapse(1);s.removeAllRanges();s.addRange(r);y=ed.dom.getPos(aft).y;ch=aft.clientHeight;if(y&lt;vp.y||y+ch&gt;vp.y+vp.h){ed.getWin().scrollTo(0,y&lt;vp.y?y:y-vp.h+ch);}return false;},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;if(sc&amp;&amp;ed.dom.isBlock(sc)&amp;&amp;!/^(TD|TH)$/.test(sc.nodeName)&amp;&amp;bs){if(sc.childNodes.length==0||(sc.childNodes.length==1&amp;&amp;sc.firstChild.nodeName=='BR')){n=sc;while((n=n.previousSibling)&amp;&amp;!ed.dom.isBlock(n));if(n){if(sc!=b.firstChild){w=ed.dom.doc.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(tn=w.nextNode())n=tn;r=ed.getDoc().createRange();r.setStart(n,n.nodeValue?n.nodeValue.length:0);r.setEnd(n,n.nodeValue?n.nodeValue.length:0);se.setRng(r);ed.dom.remove(sc);}return Event.cancel(e);}}}function handler(e){e=e.target;if(e&amp;&amp;e.parentNode&amp;&amp;e.nodeName=='BR'&amp;&amp;(n=t.getParentBlock(e))){Event.remove(b,'DOMNodeInserted',handler);if(e.previousSibling||e.nextSibling)ed.dom.remove(e);}};Event._add(b,'DOMNodeInserted',handler);window.setTimeout(function(){Event._remove(b,'DOMNodeInserted',handler);},1);}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,extend=tinymce.extend;tinymce.create('tinymce.ControlManager',{ControlManager:function(ed,s){var t=this,i;s=s||{};t.editor=ed;t.controls={};t.onAdd=new tinymce.util.Dispatcher(t);t.onPostRender=new tinymce.util.Dispatcher(t);t.prefix=s.prefix||ed.id+'_';t._cls={};t.onPostRender.add(function(){each(t.controls,function(c){c.postRender();});});},get:function(id){return this.controls[this.prefix+id]||this.controls[id];},setActive:function(id,s){var c=null;if(c=this.get(id))c.setActive(s);return c;},setDisabled:function(id,s){var c=null;if(c=this.get(id))c.setDisabled(s);return c;},add:function(c){var t=this;if(c){t.controls[c.id]=c;t.onAdd.dispatch(c,t);}return c;},createControl:function(n){var c,t=this,ed=t.editor;each(ed.plugins,function(p){if(p.createControl){c=p.createControl(n,t);if(c)return false;}});switch(n){case&quot;|&quot;:case&quot;separator&quot;:return t.createSeparator();}if(!c&amp;&amp;ed.buttons&amp;&amp;(c=ed.buttons[n]))return t.createButton(n,c);return t.add(c);},createDropMenu:function(id,s,cc){var t=this,ed=t.editor,c,bm,v,cls;s=extend({'class':'mceDropDown',constrain:ed.settings.constrain_menus},s);s['class']=s['class']+' '+ed.getParam('skin')+'Skin';if(v=ed.getParam('skin_variant'))s['class']+=' '+ed.getParam('skin')+'Skin'+v.substring(0,1).toUpperCase()+v.substring(1);id=t.prefix+id;cls=cc||t._cls.dropmenu||tinymce.ui.DropMenu;c=t.controls[id]=new cls(id,s);c.onAddItem.add(function(c,o){var s=o.settings;s.title=ed.getLang(s.title,s.title);if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,s.value);};}});ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm)ed.selection.moveToBookmark(bm);});}return t.add(c);},createListBox:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;if(ed.settings.use_native_selects)c=new tinymce.ui.NativeListBox(id,s);else{cls=cc||t._cls.listbox||tinymce.ui.ListBox;c=new cls(id,s);}t.controls[id]=c;if(tinymce.isWebKit){c.onPostRender.add(function(c,n){Event.add(n,'mousedown',function(){ed.bookmark=ed.selection.getBookmark('simple');});Event.add(n,'focus',function(){ed.selection.moveToBookmark(ed.bookmark);ed.bookmark=null;});});}if(c.hideMenu)ed.onMouseDown.add(c.hideMenu,c);return t.add(c);},createButton:function(id,s,cc){var t=this,ed=t.editor,o,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.label=ed.translate(s.label);s.scope=s.scope||ed;if(!s.onclick&amp;&amp;!s.menu_button){s.onclick=function(){ed.execCommand(s.cmd,s.ui||false,s.value);};}s=extend({title:s.title,'class':'mce_'+id,unavailable_prefix:ed.getLang('unavailable',''),scope:s.scope,control_manager:t},s);id=t.prefix+id;if(s.menu_button){cls=cc||t._cls.menubutton||tinymce.ui.MenuButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);}else{cls=t._cls.button||tinymce.ui.Button;c=new cls(id,s);}return t.add(c);},createMenuButton:function(id,s){s=s||{};s.menu_button=1;return this.createButton(id,s);},createSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;cls=cc||t._cls.splitbutton||tinymce.ui.SplitButton;c=t.add(new cls(id,s));ed.onMouseDown.add(c.hideMenu,c);return c;},createColorSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls,bm;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,'menu_class':ed.getParam('skin')+'Skin',scope:s.scope,more_colors_title:ed.getLang('more_colors')},s);id=t.prefix+id;cls=cc||t._cls.colorsplitbutton||tinymce.ui.ColorSplitButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm){ed.selection.moveToBookmark(bm);bm=0;}});}return t.add(c);},createToolbar:function(id,s,cc){var c,t=this,cls;id=t.prefix+id;cls=cc||t._cls.toolbar||tinymce.ui.Toolbar;c=new cls(id,s);if(t.get(id))return null;return t.add(c);},createSeparator:function(cc){var cls=cc||this._cls.separator||tinymce.ui.Separator;return new cls();},setControlType:function(n,c){return this._cls[n.toLowerCase()]=c;},destroy:function(){each(this.controls,function(c){c.destroy();});this.controls=null;}});})();(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each,isIE=tinymce.isIE,isOpera=tinymce.isOpera;tinymce.create('tinymce.WindowManager',{WindowManager:function(ed){var t=this;t.editor=ed;t.onOpen=new Dispatcher(t);t.onClose=new Dispatcher(t);t.params={};t.features={};},open:function(s,p){var t=this,f='',x,y,mo=t.editor.settings.dialog_type=='modal',w,sw,sh,vp=tinymce.DOM.getViewPort(),u;s=s||{};p=p||{};sw=isOpera?vp.w:screen.width;sh=isOpera?vp.h:screen.height;s.name=s.name||'mc_'+new Date().getTime();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240);s.resizable=true;s.left=s.left||parseInt(sw/ 2.0) - (s.width /2.0);s.top=s.top||parseInt(sh/ 2.0) - (s.height /2.0);p.inline=false;p.mce_width=s.width;p.mce_height=s.height;p.mce_auto_focus=s.auto_focus;if(mo){if(isIE){s.center=true;s.help=false;s.dialogWidth=s.width+'px';s.dialogHeight=s.height+'px';s.scroll=s.scrollbars||false;}}each(s,function(v,k){if(tinymce.is(v,'boolean'))v=v?'yes':'no';if(!/^(name|url)$/.test(k)){if(isIE&amp;&amp;mo)f+=(f?';':'')+k+':'+v;else f+=(f?',':'')+k+'='+v;}});t.features=s;t.params=p;t.onOpen.dispatch(t,s,p);u=s.url||s.file;if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&amp;')+'mce_rdomain='+tinymce.relaxedDomain;u=tinymce._addVer(u);try{if(isIE&amp;&amp;mo){w=1;window.showModalDialog(u,window,f);}else w=window.open(u,s.name,f);}catch(ex){}if(!w)alert(t.editor.getLang('popup_blocked'));},close:function(w){w.close();this.onClose.dispatch(this);},createInstance:function(cl,a,b,c,d,e){var f=tinymce.resolve(cl);return new f(a,b,c,d,e);},confirm:function(t,cb,s){cb.call(s||this,confirm(this._decode(this.editor.getLang(t,t))));},alert:function(tx,cb,s){var t=this;alert(t._decode(t.editor.getLang(tx,tx)));if(cb)cb.call(s||t);},_decode:function(s){return tinymce.DOM.decode(s).replace(/\\n/g,'\n');}});}());
\ No newline at end of file
+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</diff>
      <filename>lib/tiny_mce/tiny_mce.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,275 +1,5 @@
-// Some global instances
-var tinymce = null, tinyMCEPopup, tinyMCE;
-
-tinyMCEPopup = {
-	init : function() {
-		var t = this, w, ti, li, q, i, it;
-
-		li = ('' + document.location.search).replace(/^\?/, '').split('&amp;');
-		q = {};
-		for (i=0; i&lt;li.length; i++) {
-			it = li[i].split('=');
-			q[unescape(it[0])] = unescape(it[1]);
-		}
-
-		if (q.mce_rdomain)
-			document.domain = q.mce_rdomain;
-
-		// Find window &amp; API
-		w = t.getWin();
-		tinymce = w.tinymce;
-		tinyMCE = w.tinyMCE;
-		t.editor = tinymce.EditorManager.activeEditor;
-		t.params = t.editor.windowManager.params;
-
-		// Setup local DOM
-		t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document);
-		t.dom.loadCSS(t.editor.settings.popup_css);
-
-		// Setup on init listeners
-		t.listeners = [];
-		t.onInit = {
-			add : function(f, s) {
-				t.listeners.push({func : f, scope : s});
-			}
-		};
-
-		t.isWindow = !t.getWindowArg('mce_inline');
-		t.id = t.getWindowArg('mce_window_id');
-		t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);
-	},
-
-	getWin : function() {
-		return window.dialogArguments || opener || parent || top;
-	},
-
-	getWindowArg : function(n, dv) {
-		var v = this.params[n];
-
-		return tinymce.is(v) ? v : dv;
-	},
-
-	getParam : function(n, dv) {
-		return this.editor.getParam(n, dv);
-	},
-
-	getLang : function(n, dv) {
-		return this.editor.getLang(n, dv);
-	},
-
-	execCommand : function(cmd, ui, val, a) {
-		a = a || {};
-		a.skip_focus = 1;
-
-		this.restoreSelection();
-		return this.editor.execCommand(cmd, ui, val, a);
-	},
-
-	resizeToInnerSize : function() {
-		var t = this, n, b = document.body, vp = t.dom.getViewPort(window), dw, dh;
-
-		dw = t.getWindowArg('mce_width') - vp.w;
-		dh = t.getWindowArg('mce_height') - vp.h;
-
-		if (t.isWindow)
-			window.resizeBy(dw, dh);
-		else
-			t.editor.windowManager.resizeBy(dw, dh, t.id);
-	},
-
-	executeOnLoad : function(s) {
-		this.onInit.add(function() {
-			eval(s);
-		});
-	},
-
-	storeSelection : function() {
-		this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark('simple');
-	},
-
-	restoreSelection : function() {
-		var t = tinyMCEPopup;
-
-		if (!t.isWindow &amp;&amp; tinymce.isIE)
-			t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);
-	},
-
-	requireLangPack : function() {
-		var u = this.getWindowArg('plugin_url') || this.getWindowArg('theme_url');
-
-		if (u &amp;&amp; this.editor.settings.language) {
-			u += '/langs/' + this.editor.settings.language + '_dlg.js';
-
-			if (!tinymce.ScriptLoader.isDone(u)) {
-				document.write('&lt;script type=&quot;text/javascript&quot; src=&quot;' + tinymce._addVer(u) + '&quot;&gt;&lt;/script&gt;');
-				tinymce.ScriptLoader.markDone(u);
-			}
-		}
-	},
-
-	pickColor : function(e, element_id) {
-		this.execCommand('mceColorPicker', true, {
-			color : document.getElementById(element_id).value,
-			func : function(c) {
-				document.getElementById(element_id).value = c;
-
-				try {
-					document.getElementById(element_id).onchange();
-				} catch (ex) {
-					// Try fire event, ignore errors
-				}
-			}
-		});
-	},
-
-	openBrowser : function(element_id, type, option) {
-		tinyMCEPopup.restoreSelection();
-		this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);
-	},
-
-	close : function() {
-		var t = this;
-
-		// To avoid domain relaxing issue in Opera
-		function close() {
-			t.editor.windowManager.close(window);
-			tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup
-		};
-
-		if (tinymce.isOpera)
-			t.getWin().setTimeout(close, 0);
-		else
-			close();
-	},
-
-	// Internal functions	
-
-	_restoreSelection : function() {
-		var e = window.event.srcElement;
-
-		if (e.nodeName == 'INPUT' &amp;&amp; (e.type == 'submit' || e.type == 'button'))
-			tinyMCEPopup.restoreSelection();
-	},
-
-/*	_restoreSelection : function() {
-		var e = window.event.srcElement;
-
-		// If user focus a non text input or textarea
-		if ((e.nodeName != 'INPUT' &amp;&amp; e.nodeName != 'TEXTAREA') || e.type != 'text')
-			tinyMCEPopup.restoreSelection();
-	},*/
-
-	_onDOMLoaded : function() {
-		var t = this, ti = document.title, bm, h;
-
-		// Translate page
-		h = document.body.innerHTML;
-
-		// Replace a=x with a=&quot;x&quot; in IE
-		if (tinymce.isIE)
-			h = h.replace(/ (value|title|alt)=([^&quot;][^\s&gt;]+)/gi, ' $1=&quot;$2&quot;')
-
-		document.dir = t.editor.getParam('directionality','');
-		document.body.innerHTML = t.editor.translate(h);
-		document.title = ti = t.editor.translate(ti);
-		document.body.style.display = '';
-
-		// Restore selection in IE when focus is placed on a non textarea or input element of the type text
-		if (tinymce.isIE)
-			document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);
-
-		t.restoreSelection();
-		t.resizeToInnerSize();
-
-		// Set inline title
-		if (!t.isWindow)
-			t.editor.windowManager.setTitle(window, ti);
-		else
-			window.focus();
-
-		if (!tinymce.isIE &amp;&amp; !t.isWindow) {
-			tinymce.dom.Event._add(document, 'focus', function() {
-				t.editor.windowManager.focus(t.id)
-			});
-		}
-
-		// Patch for accessibility
-		tinymce.each(t.dom.select('select'), function(e) {
-			e.onkeydown = tinyMCEPopup._accessHandler;
-		});
-
-		// Call onInit
-		// Init must be called before focus so the selection won't get lost by the focus call
-		tinymce.each(t.listeners, function(o) {
-			o.func.call(o.scope, t.editor);
-		});
-
-		// Move focus to window
-		if (t.getWindowArg('mce_auto_focus', true)) {
-			window.focus();
-
-			// Focus element with mceFocus class
-			tinymce.each(document.forms, function(f) {
-				tinymce.each(f.elements, function(e) {
-					if (t.dom.hasClass(e, 'mceFocus') &amp;&amp; !e.disabled) {
-						e.focus();
-						return false; // Break loop
-					}
-				});
-			});
-		}
-
-		document.onkeyup = tinyMCEPopup._closeWinKeyHandler;
-	},
-
-	_accessHandler : function(e) {
-		e = e || window.event;
-
-		if (e.keyCode == 13 || e.keyCode == 32) {
-			e = e.target || e.srcElement;
-
-			if (e.onchange)
-				e.onchange();
-
-			return tinymce.dom.Event.cancel(e);
-		}
-	},
-
-	_closeWinKeyHandler : function(e) {
-		e = e || window.event;
-
-		if (e.keyCode == 27)
-			tinyMCEPopup.close();
-	},
-
-	_wait : function() {
-		var t = this, ti;
-
-		if (tinymce.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;');
-			document.getElementById(&quot;__ie_onload&quot;).onreadystatechange = function() {
-				if (this.readyState == &quot;complete&quot;) {
-					t._onDOMLoaded();
-					document.getElementById(&quot;__ie_onload&quot;).onreadystatechange = null; // Prevent leak
-				}
-			};
-		} else {
-			if (tinymce.isIE || tinymce.isWebKit) {
-				ti = setInterval(function() {
-					if (/loaded|complete/.test(document.readyState)) {
-						clearInterval(ti);
-						t._onDOMLoaded();
-					}
-				}, 10);
-			} else {
-				window.addEventListener('DOMContentLoaded', function() {
-					t._onDOMLoaded();
-				}, false);
-			}
-		}
-	}
-};
-
-tinyMCEPopup.init();
-tinyMCEPopup._wait(); // Wait for DOM Content Loaded
+
+// 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</diff>
      <filename>lib/tiny_mce/tiny_mce_popup.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,7 @@
-
-/* file:jscripts/tiny_mce/classes/tinymce.js */
-
 var tinymce = {
 	majorVersion : '3',
-	minorVersion : '1.0.1',
-	releaseDate : '2008-06-18',
+	minorVersion : '2.2.3',
+	releaseDate : '2009-03-26',
 
 	_init : function() {
 		var t = this, d = document, w = window, na = navigator, ua = na.userAgent, i, nl, n, base, p, v;
@@ -12,11 +9,11 @@ var tinymce = {
 		// Browser checks
 		t.isOpera = w.opera &amp;&amp; opera.buildNumber;
 		t.isWebKit = /WebKit/.test(ua);
-		t.isOldWebKit = t.isWebKit &amp;&amp; !w.getSelection().getRangeAt;
 		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
 		if (w.tinyMCEPreInit) {
@@ -87,13 +84,12 @@ var tinymce = {
 		if (!t)
 			return n != 'undefined';
 
-		if (t == 'array' &amp;&amp; (o instanceof Array))
+		if (t == 'array' &amp;&amp; (o.hasOwnProperty &amp;&amp; o instanceof Array))
 			return true;
 
 		return n == t;
 	},
 
-	// #if !jquery
 
 	each : function(o, cb, s) {
 		var n, l;
@@ -175,7 +171,6 @@ var tinymce = {
 		return (s ? '' + s : '').replace(/^\s*|\s*$/g, '');
 	},
 
-	// #endif
 
 	create : function(s, p) {
 		var t = this, sp, ns, cn, scn, c, de = 0;
@@ -426,15 +421,6 @@ window.tinymce = tinymce;
 
 // Initialize the API
 tinymce._init();
-
-/* file:jscripts/tiny_mce/classes/adapter/jquery/adapter.js */
-
-
-/* file:jscripts/tiny_mce/classes/adapter/prototype/adapter.js */
-
-
-/* file:jscripts/tiny_mce/classes/util/Dispatcher.js */
-
 tinymce.create('tinymce.util.Dispatcher', {
 	scope : null,
 	listeners : null,
@@ -487,9 +473,6 @@ tinymce.create('tinymce.util.Dispatcher', {
 	}
 
 	});
-
-/* file:jscripts/tiny_mce/classes/util/URI.js */
-
 (function() {
 	var each = tinymce.each;
 
@@ -501,7 +484,7 @@ tinymce.create('tinymce.util.Dispatcher', {
 			s = t.settings = s || {};
 
 			// Strange app protocol or local anchor
-			if (/^(mailto|news|javascript|about):/i.test(u) || /^\s*#/.test(u)) {
+			if (/^(mailto|tel|news|javascript|about):/i.test(u) || /^\s*#/.test(u)) {
 				t.source = u;
 				return;
 			}
@@ -511,7 +494,7 @@ tinymce.create('tinymce.util.Dispatcher', {
 				u = (s.base_uri ? s.base_uri.protocol || 'http' : 'http') + '://mce_host' + u;
 
 			// Relative path
-			if (u.indexOf('://') === -1 &amp;&amp; u.indexOf('//') !== 0)
+			if (u.indexOf(':/') === -1 &amp;&amp; u.indexOf('//') !== 0)
 				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)
@@ -564,6 +547,9 @@ tinymce.create('tinymce.util.Dispatcher', {
 		toRelative : function(u) {
 			var t = this, o;
 
+			if (u === &quot;./&quot;)
+				return u;
+
 			u = new tinymce.util.URI(u, {base_uri : t});
 
 			// Not on same domain/port or protocol
@@ -590,7 +576,7 @@ tinymce.create('tinymce.util.Dispatcher', {
 		},
 
 		toRelPath : function(base, path) {
-			var items, bp = 0, out = '', i;
+			var items, bp = 0, out = '', i, l;
 
 			// Split the paths
 			base = base.substring(0, base.lastIndexOf('/'));
@@ -598,7 +584,7 @@ tinymce.create('tinymce.util.Dispatcher', {
 			items = path.split('/');
 
 			if (base.length &gt;= items.length) {
-				for (i = 0; i &lt; base.length; i++) {
+				for (i = 0, l = base.length; i &lt; l; i++) {
 					if (i &gt;= items.length || base[i] != items[i]) {
 						bp = i + 1;
 						break;
@@ -607,7 +593,7 @@ tinymce.create('tinymce.util.Dispatcher', {
 			}
 
 			if (base.length &lt; items.length) {
-				for (i = 0; i &lt; items.length; i++) {
+				for (i = 0, l = items.length; i &lt; l; i++) {
 					if (i &gt;= base.length || base[i] != items[i]) {
 						bp = i + 1;
 						break;
@@ -618,10 +604,10 @@ tinymce.create('tinymce.util.Dispatcher', {
 			if (bp == 1)
 				return path;
 
-			for (i = 0; i &lt; base.length - (bp - 1); i++)
+			for (i = 0, l = base.length - (bp - 1); i &lt; l; i++)
 				out += &quot;../&quot;;
 
-			for (i = bp - 1; i &lt; items.length; i++) {
+			for (i = bp - 1, l = items.length; i &lt; l; i++) {
 				if (i != bp - 1)
 					out += &quot;/&quot; + items[i];
 				else
@@ -632,9 +618,10 @@ tinymce.create('tinymce.util.Dispatcher', {
 		},
 
 		toAbsPath : function(base, path) {
-			var i, nb = 0, o = [];
+			var i, nb = 0, o = [], tr;
 
 			// Split paths
+			tr = /\/$/.test(path) ? '/' : '';
 			base = base.split('/');
 			path = path.split('/');
 
@@ -671,9 +658,9 @@ tinymce.create('tinymce.util.Dispatcher', {
 
 			// If /a/b/c or /
 			if (i &lt;= 0)
-				return '/' + o.reverse().join('/');
+				return '/' + o.reverse().join('/') + tr;
 
-			return '/' + base.slice(0, i).join('/') + '/' + o.reverse().join('/');
+			return '/' + base.slice(0, i).join('/') + '/' + o.reverse().join('/') + tr;
 		},
 
 		getURI : function(nh) {
@@ -714,9 +701,6 @@ tinymce.create('tinymce.util.Dispatcher', {
 
 		});
 })();
-
-/* file:jscripts/tiny_mce/classes/util/Cookie.js */
-
 (function() {
 	var each = tinymce.each;
 
@@ -788,9 +772,6 @@ tinymce.create('tinymce.util.Dispatcher', {
 
 		});
 })();
-
-/* file:jscripts/tiny_mce/classes/util/JSON.js */
-
 tinymce.create('static tinymce.util.JSON', {
 	serialize : function(o) {
 		var i, v, s = tinymce.util.JSON.serialize, t;
@@ -803,7 +784,7 @@ tinymce.create('static tinymce.util.JSON', {
 		if (t == 'string') {
 			v = '\bb\tt\nn\ff\rr\&quot;&quot;\'\'\\\\';
 
-			return '&quot;' + o.replace(/([\u0080-\uFFFF\x00-\x1f\&quot;\'])/g, function(a, b) {
+			return '&quot;' + o.replace(/([\u0080-\uFFFF\x00-\x1f\&quot;])/g, function(a, b) {
 				i = v.indexOf(b);
 
 				if (i + 1)
@@ -816,7 +797,7 @@ tinymce.create('static tinymce.util.JSON', {
 		}
 
 		if (t == 'object') {
-			if (o instanceof Array) {
+			if (o.hasOwnProperty &amp;&amp; o instanceof Array) {
 					for (i=0, v = '['; i&lt;o.length; i++)
 						v += (i &gt; 0 ? ',' : '') + s(o[i]);
 
@@ -843,9 +824,6 @@ tinymce.create('static tinymce.util.JSON', {
 	}
 
 	});
-
-/* file:jscripts/tiny_mce/classes/util/XHR.js */
-
 tinymce.create('static tinymce.util.XHR', {
 	send : function(o) {
 		var x, t, w = window, c = 0;
@@ -903,9 +881,6 @@ tinymce.create('static tinymce.util.XHR', {
 
 		}
 });
-
-/* file:jscripts/tiny_mce/classes/util/JSONRequest.js */
-
 (function() {
 	var extend = tinymce.extend, JSON = tinymce.util.JSON, XHR = tinymce.util.XHR;
 
@@ -959,10 +934,7 @@ tinymce.create('static tinymce.util.XHR', {
 		}
 
 		});
-}());
-/* file:jscripts/tiny_mce/classes/dom/DOMUtils.js */
-
-(function() {
+}());(function(tinymce) {
 	// Shorten names
 	var each = tinymce.each, is = tinymce.is;
 	var isWebKit = tinymce.isWebKit, isIE = tinymce.isIE;
@@ -971,12 +943,21 @@ tinymce.create('static tinymce.util.XHR', {
 		doc : null,
 		root : null,
 		files : null,
-		listeners : {},
 		pixelStyles : /^(top|left|bottom|right|width|height|borderWidth)$/,
-		cache : {},
-		idPattern : /^#[\w]+$/,
-		elmPattern : /^[\w_*]+$/,
-		elmClassPattern : /^([\w_]*)\.([\w_]+)$/,
+		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(d, s) {
 			var t = this;
@@ -1030,10 +1011,24 @@ tinymce.create('static tinymce.util.XHR', {
 		},
 
 		getRect : function(e) {
-			var p, t = this, w, h;
+			var p, t = this, sr;
 
 			e = t.get(e);
 			p = t.getPos(e);
+			sr = t.getSize(e);
+
+			return {
+				x : p.x,
+				y : p.y,
+				w : sr.w,
+				h : sr.h
+			};
+		},
+
+		getSize : function(e) {
+			var t = this, w, h;
+
+			e = t.get(e);
 			w = t.getStyle(e, 'width');
 			h = t.getStyle(e, 'height');
 
@@ -1046,56 +1041,56 @@ tinymce.create('static tinymce.util.XHR', {
 				h = 0;
 
 			return {
-				x : p.x,
-				y : p.y,
 				w : parseInt(w) || e.offsetWidth || e.clientWidth,
 				h : parseInt(h) || e.offsetHeight || e.clientHeight
 			};
 		},
 
+		is : function(n, patt) {
+			return tinymce.dom.Sizzle.matches(patt, n.nodeType ? [n] : n).length &gt; 0;
+		},
+
 		getParent : function(n, f, r) {
-			var na, se = this.settings;
+			return this.getParents(n, f, r, false);
+		},
 
-			n = this.get(n);
+		getParents : function(n, f, r, c) {
+			var t = this, na, se = t.settings, o = [];
+
+			n = t.get(n);
+			c = c === undefined;
 
 			if (se.strict_root)
-				r = r || this.getRoot();
+				r = r || t.getRoot();
 
 			// Wrap node name as func
 			if (is(f, 'string')) {
-				na = f.toUpperCase();
+				na = f;
 
-				f = function(n) {
-					var s = false;
-
-					// Any element
-					if (n.nodeType == 1 &amp;&amp; na === '*') {
-						s = true;
-						return false;
-					}
-
-					each(na.split(','), function(v) {
-						if (n.nodeType == 1 &amp;&amp; ((se.strict &amp;&amp; n.nodeName.toUpperCase() == v) || n.nodeName.toUpperCase() == v)) {
-							s = true;
-							return false; // Break loop
-						}
-					});
-
-					return s;
-				};
+				if (f === '*') {
+					f = function(n) {return n.nodeType == 1;};
+				} else {
+					f = function(n) {
+						return t.is(n, na);
+					};
+				}
 			}
 
 			while (n) {
 				if (n == r)
-					return null;
+					break;
 
-				if (f(n))
-					return n;
+				if (!f || f(n)) {
+					if (c)
+						o.push(n);
+					else
+						return n;
+				}
 
 				n = n.parentNode;
 			}
 
-			return null;
+			return c ? o : null;
 		},
 
 		get : function(e) {
@@ -1113,169 +1108,13 @@ tinymce.create('static tinymce.util.XHR', {
 			return e;
 		},
 
-		// #if !jquery
 
 		select : function(pa, s) {
-			var t = this, cs, c, pl, o = [], x, i, l, n;
-
-			s = t.get(s) || t.doc;
-
-			// Look for native support and use that if it's found
-			if (s.querySelectorAll) {
-				// Element scope then use temp id
-				// We need to do this to be compatible with other implementations
-				// See bug report: http://bugs.webkit.org/show_bug.cgi?id=17461
-				if (s != t.doc) {
-					i = s.id;
-					s.id = '_mc_tmp';
-					pa = '#_mc_tmp ' + pa;
-				}
-
-				// Select elements
-				l = tinymce.grep(s.querySelectorAll(pa));
-
-				// Restore old id
-				s.id = i;
-
-				return l;
-			}
-
-			if (t.settings.strict) {
-				function get(s, n) {
-					return s.getElementsByTagName(n.toLowerCase());
-				};
-			} else {
-				function get(s, n) {
-					return s.getElementsByTagName(n);
-				};
-			}
-
-			// Simple element pattern. For example: &quot;p&quot; or &quot;*&quot;
-			if (t.elmPattern.test(pa)) {
-				x = get(s, pa);
-
-				for (i = 0, l = x.length; i&lt;l; i++)
-					o.push(x[i]);
-
-				return o;
-			}
-
-			// Simple class pattern. For example: &quot;p.class&quot; or &quot;.class&quot;
-			if (t.elmClassPattern.test(pa)) {
-				pl = t.elmClassPattern.exec(pa);
-				x = get(s, pl[1] || '*');
-				c = ' ' + pl[2] + ' ';
-
-				for (i = 0, l = x.length; i&lt;l; i++) {
-					n = x[i];
-
-					if (n.className &amp;&amp; (' ' + n.className + ' ').indexOf(c) !== -1)
-						o.push(n);
-				}
-
-				return o;
-			}
-
-			function collect(n) {
-				if (!n.mce_save) {
-					n.mce_save = 1;
-					o.push(n);
-				}
-			};
-
-			function collectIE(n) {
-				if (!n.getAttribute('mce_save')) {
-					n.setAttribute('mce_save', '1');
-					o.push(n);
-				}
-			};
-
-			function find(n, f, r) {
-				var i, l, nl = get(r, n);
-
-				for (i = 0, l = nl.length; i &lt; l; i++)
-					f(nl[i]);
-			};
-
-			each(pa.split(','), function(v, i) {
-				v = tinymce.trim(v);
-
-				// Simple element pattern, most common in TinyMCE
-				if (t.elmPattern.test(v)) {
-					each(get(s, v), function(n) {
-						collect(n);
-					});
-
-					return;
-				}
-
-				// Simple element pattern with class, fairly common in TinyMCE
-				if (t.elmClassPattern.test(v)) {
-					x = t.elmClassPattern.exec(v);
-
-					each(get(s, x[1]), function(n) {
-						if (t.hasClass(n, x[2]))
-							collect(n);
-					});
-
-					return;
-				}
-
-				if (!(cs = t.cache[pa])) {
-					cs = 'x=(function(cf, s) {';
-					pl = v.split(' ');
-
-					each(pl, function(v) {
-						var p = /^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i.exec(v);
-
-						// Find elements
-						p[1] = p[1] || '*';
-						cs += 'find(&quot;' + p[1] + '&quot;, function(n) {';
-
-						// Check id
-						if (p[2])
-							cs += 'if (n.id !== &quot;' + p[2] + '&quot;) return;';
-
-						// Check classes
-						if (p[3]) {
-							cs += 'var c = &quot; &quot; + n.className + &quot; &quot;;';
-							cs += 'if (';
-							c = '';
-							each(p[3].split('.'), function(v) {
-								if (v)
-									c += (c ? '||' : '') + 'c.indexOf(&quot; ' + v + ' &quot;) === -1';
-							});
-							cs += c + ') return;';
-						}
-					});
-
-					cs += 'cf(n);';
-
-					for (i = pl.length - 1; i &gt;= 0; i--)
-						cs += '}, ' + (i ? 'n' : 's') + ');';
-
-					cs += '})';
-
-					// Compile CSS pattern function
-					t.cache[pa] = cs = eval(cs);
-				}
-
-				// Run selector function
-				cs(isIE ? collectIE : collect, s);
-			});
-
-			// Cleanup
-			each(o, function(n) {
-				if (isIE)
-					n.removeAttribute('mce_save');
-				else
-					delete n.mce_save;
-			});
+			var t = this;
 
-			return o;
+			return tinymce.dom.Sizzle(pa, t.get(s) || t.get(t.settings.root_element) || t.doc, []);
 		},
 
-		// #endif
 
 		add : function(p, n, a, h, c) {
 			var t = this;
@@ -1284,19 +1123,7 @@ tinymce.create('static tinymce.util.XHR', {
 				var e, k;
 
 				e = is(n, 'string') ? t.doc.createElement(n) : n;
-
-				if (a) {
-					for (k in a) {
-						if (a.hasOwnProperty(k) &amp;&amp; !is(a[k], 'object'))
-							t.setAttrib(e, k, '' + a[k]);
-					}
-
-					if (a.style &amp;&amp; !is(a.style, 'string')) {
-						each(a.style, function(v, n) {
-							t.setStyle(e, n, v);
-						});
-					}
-				}
+				t.setAttribs(e, a);
 
 				if (h) {
 					if (h.nodeType)
@@ -1330,8 +1157,10 @@ tinymce.create('static tinymce.util.XHR', {
 		},
 
 		remove : function(n, k) {
+			var t = this;
+
 			return this.run(n, function(n) {
-				var p, g;
+				var p, g, i;
 
 				p = n.parentNode;
 
@@ -1339,24 +1168,29 @@ tinymce.create('static tinymce.util.XHR', {
 					return null;
 
 				if (k) {
-					each (n.childNodes, function(c) {
-						p.insertBefore(c.cloneNode(true), n);
-					});
+					for (i = n.childNodes.length - 1; i &gt;= 0; i--)
+						t.insertAfter(n.childNodes[i], n);
+
+					//each(n.childNodes, function(c) {
+					//	p.insertBefore(c.cloneNode(true), n);
+					//});
 				}
 
 				// Fix IE psuedo leak
-		/*		if (isIE) {
+				if (t.fixPsuedoLeaks) {
 					p = n.cloneNode(true);
-					n.outerHTML = '';
+					k = 'IELeakGarbageBin';
+					g = t.get(k) || t.add(t.doc.body, 'div', {id : k, style : 'display:none'});
+					g.appendChild(n);
+					g.innerHTML = '';
 
 					return p;
-				}*/
+				}
 
 				return p.removeChild(n);
 			});
 		},
 
-		// #if !jquery
 
 		setStyle : function(n, na, v) {
 			var t = this;
@@ -1458,6 +1292,10 @@ tinymce.create('static tinymce.util.XHR', {
 		setAttrib : function(e, n, v) {
 			var t = this;
 
+			// Whats the point
+			if (!e || !n)
+				return;
+
 			// Strict XML mode
 			if (t.settings.strict)
 				n = n.toLowerCase();
@@ -1467,6 +1305,14 @@ tinymce.create('static tinymce.util.XHR', {
 
 				switch (n) {
 					case &quot;style&quot;:
+						if (!is(v, 'string')) {
+							each(v, function(v, n) {
+								t.setStyle(e, n, v);
+							});
+
+							return;
+						}
+
 						// No mce_style for elements with these since they might get resized by the user
 						if (s.keep_values) {
 							if (v &amp;&amp; !t._isRes(v))
@@ -1515,7 +1361,6 @@ tinymce.create('static tinymce.util.XHR', {
 			});
 		},
 
-		// #endif
 
 		getAttrib : function(e, n, dv) {
 			var v, t = this;
@@ -1526,7 +1371,7 @@ tinymce.create('static tinymce.util.XHR', {
 				return false;
 
 			if (!is(dv))
-				dv = &quot;&quot;;
+				dv = '';
 
 			// Try the mce variant for these
 			if (/^(src|href|style|coords|shape)$/.test(n)) {
@@ -1536,38 +1381,23 @@ tinymce.create('static tinymce.util.XHR', {
 					return v;
 			}
 
-			v = e.getAttribute(n, 2);
-
-			if (!v) {
-				switch (n) {
-					case 'class':
-						v = e.className;
-						break;
-
-					default:
-						// Fix for IE crash Bug: #1884376 probably due to invalid DOM structure
-						if (isIE &amp;&amp; n === 'name' &amp;&amp; e.nodeName === 'A') {
-							v = e.name;
-							break;
-						}
-
-						v = e.attributes[n];
-						v = v &amp;&amp; is(v.nodeValue) ? v.nodeValue : v;
-				}
+			if (isIE &amp;&amp; t.props[n]) {
+				v = e[t.props[n]];
+				v = v &amp;&amp; v.nodeValue ? v.nodeValue : v;
 			}
 
-			switch (n) {
-				case 'style':
-					v = v || e.style.cssText;
+			if (!v)
+				v = e.getAttribute(n, 2);
 
-					if (v) {
-						v = t.serializeStyle(t.parseStyle(v));
+			if (n === 'style') {
+				v = v || e.style.cssText;
 
-						if (t.settings.keep_values &amp;&amp; !t._isRes(v))
-							e.setAttribute('mce_style', v);
-					}
+				if (v) {
+					v = t.serializeStyle(t.parseStyle(v));
 
-					break;
+					if (t.settings.keep_values &amp;&amp; !t._isRes(v))
+						e.setAttribute('mce_style', v);
+				}
 			}
 
 			// Remove Apple and WebKit stuff
@@ -1587,7 +1417,18 @@ tinymce.create('static tinymce.util.XHR', {
 
 					case 'size':
 						// IE returns +0 as default value for size
-						if (v === '+0')
+						if (v === '+0' || v === 20 || v === 0)
+							v = '';
+
+						break;
+
+					case 'width':
+					case 'height':
+					case 'vspace':
+					case 'checked':
+					case 'disabled':
+					case 'readonly':
+						if (v === 0)
 							v = '';
 
 						break;
@@ -1599,19 +1440,22 @@ tinymce.create('static tinymce.util.XHR', {
 
 						break;
 
+					case 'maxlength':
 					case 'tabindex':
 						// IE returns default value
-						if (v === 32768)
+						if (v === 32768 || v === 2147483647 || v === '32768')
 							v = '';
 
 						break;
 
-					case 'maxlength':
-						// IE returns  default value
-						if (v === 2147483647)
-							v = '';
+					case 'multiple':
+					case 'compact':
+					case 'noshade':
+					case 'nowrap':
+						if (v === 65535)
+							return n;
 
-						break;
+						return dv;
 
 					case 'shape':
 						v = v.toLowerCase();
@@ -1624,7 +1468,7 @@ tinymce.create('static tinymce.util.XHR', {
 				}
 			}
 
-			return (v &amp;&amp; v != '') ? '' + v : dv;
+			return (v !== undefined &amp;&amp; v !== null &amp;&amp; v !== '') ? '' + v : dv;
 		},
 
 		getPos : function(n) {
@@ -1633,7 +1477,7 @@ tinymce.create('static tinymce.util.XHR', {
 			n = t.get(n);
 
 			// Use getBoundingClientRect on IE, Opera has it but it's not perfect
-			if (n &amp;&amp; isIE) {
+			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
@@ -1660,7 +1504,8 @@ tinymce.create('static tinymce.util.XHR', {
 
 				r = r.parentNode;
 
-				if (r == d.body)
+				// No node type or document type
+				if (!r.nodeType || r.nodeType == 9 || r.nodeName.toLowerCase() == 'body')
 					break;
 			}
 
@@ -1803,7 +1648,6 @@ tinymce.create('static tinymce.util.XHR', {
 			});
 		},
 
-		// #if !jquery
 
 		addClass : function(e, c) {
 			return this.run(e, function(e) {
@@ -1860,10 +1704,9 @@ tinymce.create('static tinymce.util.XHR', {
 		isHidden : function(e) {
 			e = this.get(e);
 
-			return e.style.display == 'none' || this.getStyle(e, 'display') == 'none';
+			return !e || e.style.display == 'none' || this.getStyle(e, 'display') == 'none';
 		},
 
-		// #endif
 
 		uniqueId : function(p) {
 			return (!p ? 'mce_' : p) + (this.counter++);
@@ -1934,7 +1777,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;/g, '&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
@@ -1994,8 +1837,10 @@ tinymce.create('static tinymce.util.XHR', {
 			if (tinymce.isGecko) {
 				h = h.replace(/&lt;(\/?)strong&gt;|&lt;strong( [^&gt;]+)&gt;/gi, '&lt;$1b$2&gt;');
 				h = h.replace(/&lt;(\/?)em&gt;|&lt;em( [^&gt;]+)&gt;/gi, '&lt;$1i$2&gt;');
-			} else if (isIE)
+			} else if (isIE) {
 				h = h.replace(/&amp;apos;/g, '&amp;#39;'); // IE can't handle apos
+				h = h.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\&quot;\']?(false|0)[\&quot;\']?/gi, ''); // IE doesn't handle default values correct
+			}
 
 			// Fix some issues
 			h = h.replace(/&lt;a( )([^&gt;]+)\/&gt;|&lt;a\/&gt;/gi, '&lt;a$1$2&gt;&lt;/a&gt;'); // Force open
@@ -2006,9 +1851,10 @@ tinymce.create('static tinymce.util.XHR', {
 				if (/&lt;script|style/.test(h)) {
 					function trim(s) {
 						// Remove prefix and suffix code for element
+						s = s.replace(/(&lt;!--\[CDATA\[|\]\]--&gt;)/g, '\n');
 						s = s.replace(/^[\r\n]*|[\r\n]*$/g, '');
-						s = s.replace(/^\s*(\/\/\s*&lt;!--|\/\/\s*&lt;\[CDATA\[|&lt;!--|&lt;\[CDATA\[)[\r\n]*/g, '');
-						s = s.replace(/\s*(\/\/\s*\]\]&gt;|\/\/\s*--&gt;|\]\]&gt;|--&gt;)\s*$/g, '');
+						s = s.replace(/^\s*(\/\/\s*&lt;!--|\/\/\s*&lt;!\[CDATA\[|&lt;!--|&lt;!\[CDATA\[)[\r\n]*/g, '');
+						s = s.replace(/\s*(\/\/\s*\]\]&gt;|\/\/\s*--&gt;|\]\]&gt;|--&gt;|\]\]--&gt;)\s*$/g, '');
 
 						return s;
 					};
@@ -2037,6 +1883,8 @@ tinymce.create('static tinymce.util.XHR', {
 					});
 				}
 
+				h = h.replace(/&lt;!\[CDATA\[([\s\S]+)\]\]&gt;/g, '&lt;!--[CDATA[$1]]--&gt;');
+
 				// 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) {
@@ -2092,7 +1940,7 @@ tinymce.create('static tinymce.util.XHR', {
 			if (!e)
 				return null;
 
-			if (isIE)
+			if (e.outerHTML !== undefined)
 				return e.outerHTML;
 
 			d = (e.ownerDocument || this.doc).createElement(&quot;body&quot;);
@@ -2128,15 +1976,23 @@ tinymce.create('static tinymce.util.XHR', {
 		},
 
 		decode : function(s) {
-			var e;
+			var e, n, v;
 
 			// Look for entities to decode
 			if (/&amp;[^;]+;/.test(s)) {
 				// Decode the entities using a div element not super efficient but less code
 				e = this.doc.createElement(&quot;div&quot;);
 				e.innerHTML = s;
+				n = e.firstChild;
+				v = '';
 
-				return !e.firstChild ? s : e.firstChild.nodeValue;
+				if (n) {
+					do {
+						v += n.nodeValue;
+					} while (n.nextSibling);
+				}
+
+				return v || s;
 			}
 
 			return s;
@@ -2162,7 +2018,6 @@ tinymce.create('static tinymce.util.XHR', {
 			}) : s;
 		},
 
-		// #if !jquery
 
 		insertAfter : function(n, r) {
 			var t = this;
@@ -2184,7 +2039,6 @@ tinymce.create('static tinymce.util.XHR', {
 			});
 		},
 
-		// #endif
 
 		isBlock : function(n) {
 			if (n.nodeType &amp;&amp; n.nodeType !== 1)
@@ -2192,16 +2046,17 @@ tinymce.create('static tinymce.util.XHR', {
 
 			n = n.nodeName || n;
 
-			return /^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|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|TR|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);
 		},
 
-		// #if !jquery
 
 		replace : function(n, o, k) {
+			var t = this;
+
 			if (is(o, 'array'))
 				n = n.cloneNode(true);
 
-			return this.run(o, function(o) {
+			return t.run(o, function(o) {
 				if (k) {
 					each(o.childNodes, function(c) {
 						n.appendChild(c.cloneNode(true));
@@ -2210,17 +2065,37 @@ tinymce.create('static tinymce.util.XHR', {
 
 				// Fix IE psuedo leak for elements since replacing elements if fairly common
 				// Will break parentNode for some unknown reason
-	/*			if (isIE &amp;&amp; o.nodeType === 1) {
+				if (t.fixPsuedoLeaks &amp;&amp; o.nodeType === 1) {
 					o.parentNode.insertBefore(n, o);
-					o.outerHTML = '';
+					t.remove(o);
 					return n;
-				}*/
+				}
 
 				return o.parentNode.replaceChild(n, o);
 			});
 		},
 
-		// #endif
+
+		findCommonAncestor : function(a, b) {
+			var ps = a, pe;
+
+			while (ps) {
+				pe = b;
+
+				while (pe &amp;&amp; ps != pe)
+					pe = pe.parentNode;
+
+				if (ps == pe)
+					break;
+
+				ps = ps.parentNode;
+			}
+
+			if (!ps &amp;&amp; a.ownerDocument)
+				return a.ownerDocument.documentElement;
+
+			return ps;
+		},
 
 		toHex : function(s) {
 			var c = /^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);
@@ -2305,7 +2180,7 @@ tinymce.create('static tinymce.util.XHR', {
 			var t = this, o;
 
 			if (t.doc &amp;&amp; typeof(e) === 'string')
-				e = t.doc.getElementById(e);
+				e = t.get(e);
 
 			if (!e)
 				return false;
@@ -2365,6 +2240,76 @@ tinymce.create('static tinymce.util.XHR', {
 				tinymce.removeUnload(t.destroy);
 		},
 
+		createRng : function() {
+			var d = this.doc;
+
+			return d.createRange ? d.createRange() : new tinymce.dom.Range(this);
+		},
+
+		split : function(pe, e, re) {
+			var t = this, r = t.createRng(), bef, aft, pa;
+
+			// W3C valid browsers tend to leave empty nodes to the left/right side of the contents, this makes sence
+			// but we don't want that in our code since it serves no purpose
+			// For example if this is chopped:
+			//   &lt;p&gt;text 1&lt;span&gt;&lt;b&gt;CHOP&lt;/b&gt;&lt;/span&gt;text 2&lt;/p&gt;
+			// would produce:
+			//   &lt;p&gt;text 1&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;CHOP&lt;/b&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;text 2&lt;/p&gt;
+			// this function will then trim of empty edges and produce:
+			//   &lt;p&gt;text 1&lt;/p&gt;&lt;b&gt;CHOP&lt;/b&gt;&lt;p&gt;text 2&lt;/p&gt;
+			function trimEdge(n, na) {
+				n = n[na];
+
+				if (n &amp;&amp; n[na] &amp;&amp; n[na].nodeType == 1 &amp;&amp; isEmpty(n[na]))
+					t.remove(n[na]);
+			};
+
+			function isEmpty(n) {
+				n = t.getOuterHTML(n);
+				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]+|&amp;nbsp;|&amp;#160;/g, '') == '';
+			};
+
+			if (pe &amp;&amp; e) {
+				// Get before chunk
+				r.setStartBefore(pe);
+				r.setEndBefore(e);
+				bef = r.extractContents();
+
+				// Get after chunk
+				r = t.createRng();
+				r.setStartAfter(e);
+				r.setEndAfter(pe);
+				aft = r.extractContents();
+
+				// Insert chunks and remove parent
+				pa = pe.parentNode;
+
+				// Remove right side edge of the before contents
+				trimEdge(bef, 'lastChild');
+
+				if (!isEmpty(bef))
+					pa.insertBefore(bef, pe);
+
+				if (re)
+					pa.replaceChild(re, e);
+				else
+					pa.insertBefore(e, pe);
+
+				// Remove left site edge of the after contents
+				trimEdge(aft, 'firstChild');
+
+				if (!isEmpty(aft))
+					pa.insertBefore(aft, pe);
+
+				t.remove(pe);
+
+				return re || e;
+			}
+		},
+
 		_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);
@@ -2404,11 +2349,1859 @@ tinymce.create('static tinymce.util.XHR', {
 
 	// Setup page DOM
 	tinymce.DOM = new tinymce.dom.DOMUtils(document, {process_html : 0});
-})();
+})(tinymce);
+(function(ns) {
+	// Traverse constants
+	var EXTRACT = 0, CLONE = 1, DELETE = 2, extend = tinymce.extend;
+
+	function indexOf(child, parent) {
+		var i, node;
+
+		if (child.parentNode != parent)
+			return -1;
+
+		for (node = parent.firstChild, i = 0; node != child; node = node.nextSibling)
+			i++;
+
+		return i;
+	};
+
+	function nodeIndex(n) {
+		var i = 0;
+
+		while (n.previousSibling) {
+			i++;
+			n = n.previousSibling;
+		}
+
+		return i;
+	};
+
+	function getSelectedNode(container, offset) {
+		var child;
+
+		if (container.nodeType == 3 /* TEXT_NODE */)
+			return container;
+
+		if (offset &lt; 0)
+			return container;
+
+		child = container.firstChild;
+		while (child != null &amp;&amp; offset &gt; 0) {
+			--offset;
+			child = child.nextSibling;
+		}
+
+		if (child != null)
+			return child;
+
+		return container;
+	};
+
+	// Range constructor
+	function Range(dom) {
+		var d = dom.doc;
+
+		extend(this, {
+			dom : dom,
+
+			// Inital states
+			startContainer : d,
+			startOffset : 0,
+			endContainer : d,
+			endOffset : 0,
+			collapsed : true,
+			commonAncestorContainer : d,
+
+			// Range constants
+			START_TO_START : 0,
+			START_TO_END : 1,
+			END_TO_END : 2,
+			END_TO_START : 3
+		});
+	};
+
+	// Add range methods
+	extend(Range.prototype, {
+		setStart : function(n, o) {
+			this._setEndPoint(true, n, o);
+		},
+
+		setEnd : function(n, o) {
+			this._setEndPoint(false, n, o);
+		},
+
+		setStartBefore : function(n) {
+			this.setStart(n.parentNode, nodeIndex(n));
+		},
+
+		setStartAfter : function(n) {
+			this.setStart(n.parentNode, nodeIndex(n) + 1);
+		},
+
+		setEndBefore : function(n) {
+			this.setEnd(n.parentNode, nodeIndex(n));
+		},
+
+		setEndAfter : function(n) {
+			this.setEnd(n.parentNode, nodeIndex(n) + 1);
+		},
+
+		collapse : function(ts) {
+			var t = this;
+
+			if (ts) {
+				t.endContainer = t.startContainer;
+				t.endOffset = t.startOffset;
+			} else {
+				t.startContainer = t.endContainer;
+				t.startOffset = t.endOffset;
+			}
+
+			t.collapsed = true;
+		},
+
+		selectNode : function(n) {
+			this.setStartBefore(n);
+			this.setEndAfter(n);
+		},
+
+		selectNodeContents : function(n) {
+			this.setStart(n, 0);
+			this.setEnd(n, n.nodeType === 1 ? n.childNodes.length : n.nodeValue.length);
+		},
+
+		compareBoundaryPoints : function(h, r) {
+			var t = this, sc = t.startContainer, so = t.startOffset, ec = t.endContainer, eo = t.endOffset;
+
+			// Check START_TO_START
+			if (h === 0)
+				return t._compareBoundaryPoints(sc, so, sc, so);
+
+			// Check START_TO_END
+			if (h === 1)
+				return t._compareBoundaryPoints(sc, so, ec, eo);
+
+			// Check END_TO_END
+			if (h === 2)
+				return t._compareBoundaryPoints(ec, eo, ec, eo);
+
+			// Check END_TO_START
+			if (h === 3)
+				return t._compareBoundaryPoints(ec, eo, sc, so);
+		},
+
+		deleteContents : function() {
+			this._traverse(DELETE);
+		},
+
+		extractContents : function() {
+			return this._traverse(EXTRACT);
+		},
+
+		cloneContents : function() {
+			return this._traverse(CLONE);
+		},
+
+		insertNode : function(n) {
+			var t = this, nn, o;
+
+			// Node is TEXT_NODE or CDATA
+			if (n.nodeType === 3 || n.nodeType === 4) {
+				nn = t.startContainer.splitText(t.startOffset);
+				t.startContainer.parentNode.insertBefore(n, nn);
+			} else {
+				// Insert element node
+				if (t.startContainer.childNodes.length &gt; 0)
+					o = t.startContainer.childNodes[t.startOffset];
+
+				t.startContainer.insertBefore(n, o);
+			}
+		},
+
+		surroundContents : function(n) {
+			var t = this, f = t.extractContents();
+
+			t.insertNode(n);
+			n.appendChild(f);
+			t.selectNode(n);
+		},
+
+		cloneRange : function() {
+			var t = this;
+
+			return extend(new Range(t.dom), {
+				startContainer : t.startContainer,
+				startOffset : t.startOffset,
+				endContainer : t.endContainer,
+				endOffset : t.endOffset,
+				collapsed : t.collapsed,
+				commonAncestorContainer : t.commonAncestorContainer
+			});
+		},
+
+/*
+		toString : function() {
+			// Not implemented
+		},
+
+		detach : function() {
+			// Not implemented
+		},
+*/
+		// Internal methods
+
+		_isCollapsed : function() {
+			return (this.startContainer == this.endContainer &amp;&amp; this.startOffset == this.endOffset);
+		},
+
+		_compareBoundaryPoints : function (containerA, offsetA, containerB, offsetB) {
+			var c, offsetC, n, cmnRoot, childA, childB;
+
+			// In the first case the boundary-points have the same container. A is before B 
+			// if its offset is less than the offset of B, A is equal to B if its offset is 
+			// equal to the offset of B, and A is after B if its offset is greater than the 
+			// offset of B.
+			if (containerA == containerB) {
+				if (offsetA == offsetB) {
+					return 0; // equal
+				} else if (offsetA &lt; offsetB) {
+					return -1; // before
+				} else {
+					return 1; // after
+				}
+			}
+
+			// In the second case a child node C of the container of A is an ancestor 
+			// container of B. In this case, A is before B if the offset of A is less than or 
+			// equal to the index of the child node C and A is after B otherwise.
+			c = containerB;
+			while (c &amp;&amp; c.parentNode != containerA) {
+				c = c.parentNode;
+			}
+			if (c) {
+				offsetC = 0;
+				n = containerA.firstChild;
+
+				while (n != c &amp;&amp; offsetC &lt; offsetA) {
+					offsetC++;
+					n = n.nextSibling;
+				}
+
+				if (offsetA &lt;= offsetC) {
+					return -1; // before
+				} else {
+					return 1; // after
+				}
+			}
+
+			// In the third case a child node C of the container of B is an ancestor container 
+			// of A. In this case, A is before B if the index of the child node C is less than 
+			// the offset of B and A is after B otherwise.
+			c = containerA;
+			while (c &amp;&amp; c.parentNode != containerB) {
+				c = c.parentNode;
+			}
+
+			if (c) {
+				offsetC = 0;
+				n = containerB.firstChild;
+
+				while (n != c &amp;&amp; offsetC &lt; offsetB) {
+					offsetC++;
+					n = n.nextSibling;
+				}
+
+				if (offsetC &lt; offsetB) {
+					return -1; // before
+				} else {
+					return 1; // after
+				}
+			}
+
+			// In the fourth case, none of three other cases hold: the containers of A and B 
+			// are siblings or descendants of sibling nodes. In this case, A is before B if 
+			// the container of A is before the container of B in a pre-order traversal of the
+			// Ranges' context tree and A is after B otherwise.
+			cmnRoot = this.dom.findCommonAncestor(containerA, containerB);
+			childA = containerA;
+
+			while (childA &amp;&amp; childA.parentNode != cmnRoot) {
+				childA = childA.parentNode;  
+			}
+
+			if (!childA) {
+				childA = cmnRoot;
+			}
+
+			childB = containerB;
+			while (childB &amp;&amp; childB.parentNode != cmnRoot) {
+				childB = childB.parentNode;
+			}
+
+			if (!childB) {
+				childB = cmnRoot;
+			}
+
+			if (childA == childB) {
+				return 0; // equal
+			}
+
+			n = cmnRoot.firstChild;
+			while (n) {
+				if (n == childA) {
+					return -1; // before
+				}
+
+				if (n == childB) {
+					return 1; // after
+				}
+
+				n = n.nextSibling;
+			}
+		},
+
+		_setEndPoint : function(st, n, o) {
+			var t = this, ec, sc;
+
+			if (st) {
+				t.startContainer = n;
+				t.startOffset = o;
+			} else {
+				t.endContainer = n;
+				t.endOffset = o;
+			}
+
+			// If one boundary-point of a Range is set to have a root container 
+			// other than the current one for the Range, the Range is collapsed to 
+			// the new position. This enforces the restriction that both boundary-
+			// points of a Range must have the same root container.
+			ec = t.endContainer;
+			while (ec.parentNode)
+				ec = ec.parentNode;
+
+			sc = t.startContainer;
+			while (sc.parentNode)
+				sc = sc.parentNode;
+
+			if (sc != ec) {
+				t.collapse(st);
+			} else {
+				// The start position of a Range is guaranteed to never be after the 
+				// end position. To enforce this restriction, if the start is set to 
+				// be at a position after the end, the Range is collapsed to that 
+				// position.
+				if (t._compareBoundaryPoints(t.startContainer, t.startOffset, t.endContainer, t.endOffset) &gt; 0)
+					t.collapse(st);
+			}
+
+			t.collapsed = t._isCollapsed();
+			t.commonAncestorContainer = t.dom.findCommonAncestor(t.startContainer, t.endContainer);
+		},
+
+		// This code is heavily &quot;inspired&quot; by the Apache Xerces implementation. I hope they don't mind. :)
+
+		_traverse : function(how) {
+			var t = this, c, endContainerDepth = 0, startContainerDepth = 0, p, depthDiff, startNode, endNode, sp, ep;
+
+			if (t.startContainer == t.endContainer)
+				return t._traverseSameContainer(how);
+
+			for (c = t.endContainer, p = c.parentNode; p != null; c = p, p = p.parentNode) {
+				if (p == t.startContainer)
+					return t._traverseCommonStartContainer(c, how);
+
+				++endContainerDepth;
+			}
+
+			for (c = t.startContainer, p = c.parentNode; p != null; c = p, p = p.parentNode) {
+				if (p == t.endContainer)
+					return t._traverseCommonEndContainer(c, how);
+
+				++startContainerDepth;
+			}
+
+			depthDiff = startContainerDepth - endContainerDepth;
+
+			startNode = t.startContainer;
+			while (depthDiff &gt; 0) {
+				startNode = startNode.parentNode;
+				depthDiff--;
+			}
+
+			endNode = t.endContainer;
+			while (depthDiff &lt; 0) {
+				endNode = endNode.parentNode;
+				depthDiff++;
+			}
+
+			// ascend the ancestor hierarchy until we have a common parent.
+			for (sp = startNode.parentNode, ep = endNode.parentNode; sp != ep; sp = sp.parentNode, ep = ep.parentNode) {
+				startNode = sp;
+				endNode = ep;
+			}
+
+			return t._traverseCommonAncestors(startNode, endNode, how);
+		},
+
+		_traverseSameContainer : function(how) {
+			var t = this, frag, s, sub, n, cnt, sibling, xferNode;
+
+			if (how != DELETE)
+				frag = t.dom.doc.createDocumentFragment();
+
+			// If selection is empty, just return the fragment
+			if (t.startOffset == t.endOffset)
+				return frag;
+
+			// Text node needs special case handling
+			if (t.startContainer.nodeType == 3 /* TEXT_NODE */) {
+				// get the substring
+				s = t.startContainer.nodeValue;
+				sub = s.substring(t.startOffset, t.endOffset);
+
+				// set the original text node to its new value
+				if (how != CLONE) {
+					t.startContainer.deleteData(t.startOffset, t.endOffset - t.startOffset);
+
+					// Nothing is partially selected, so collapse to start point
+					t.collapse(true);
+				}
+
+				if (how == DELETE)
+					return null;
+
+				frag.appendChild(t.dom.doc.createTextNode(sub));
+				return frag;
+			}
+
+			// Copy nodes between the start/end offsets.
+			n = getSelectedNode(t.startContainer, t.startOffset);
+			cnt = t.endOffset - t.startOffset;
+
+			while (cnt &gt; 0) {
+				sibling = n.nextSibling;
+				xferNode = t._traverseFullySelected(n, how);
+
+				if (frag)
+					frag.appendChild( xferNode );
+
+				--cnt;
+				n = sibling;
+			}
+
+			// Nothing is partially selected, so collapse to start point
+			if (how != CLONE)
+				t.collapse(true);
+
+			return frag;
+		},
+
+		_traverseCommonStartContainer : function(endAncestor, how) {
+			var t = this, frag, n, endIdx, cnt, sibling, xferNode;
+
+			if (how != DELETE)
+				frag = t.dom.doc.createDocumentFragment();
+
+			n = t._traverseRightBoundary(endAncestor, how);
+
+			if (frag)
+				frag.appendChild(n);
+
+			endIdx = indexOf(endAncestor, t.startContainer);
+			cnt = endIdx - t.startOffset;
+
+			if (cnt &lt;= 0) {
+				// Collapse to just before the endAncestor, which 
+				// is partially selected.
+				if (how != CLONE) {
+					t.setEndBefore(endAncestor);
+					t.collapse(false);
+				}
+
+				return frag;
+			}
+
+			n = endAncestor.previousSibling;
+			while (cnt &gt; 0) {
+				sibling = n.previousSibling;
+				xferNode = t._traverseFullySelected(n, how);
+
+				if (frag)
+					frag.insertBefore(xferNode, frag.firstChild);
+
+				--cnt;
+				n = sibling;
+			}
+
+			// Collapse to just before the endAncestor, which 
+			// is partially selected.
+			if (how != CLONE) {
+				t.setEndBefore(endAncestor);
+				t.collapse(false);
+			}
+
+			return frag;
+		},
+
+		_traverseCommonEndContainer : function(startAncestor, how) {
+			var t = this, frag, startIdx, n, cnt, sibling, xferNode;
+
+			if (how != DELETE)
+				frag = t.dom.doc.createDocumentFragment();
+
+			n = t._traverseLeftBoundary(startAncestor, how);
+			if (frag)
+				frag.appendChild(n);
+
+			startIdx = indexOf(startAncestor, t.endContainer);
+			++startIdx;  // Because we already traversed it....
+
+			cnt = t.endOffset - startIdx;
+			n = startAncestor.nextSibling;
+			while (cnt &gt; 0) {
+				sibling = n.nextSibling;
+				xferNode = t._traverseFullySelected(n, how);
+
+				if (frag)
+					frag.appendChild(xferNode);
+
+				--cnt;
+				n = sibling;
+			}
+
+			if (how != CLONE) {
+				t.setStartAfter(startAncestor);
+				t.collapse(true);
+			}
+
+			return frag;
+		},
+
+		_traverseCommonAncestors : function(startAncestor, endAncestor, how) {
+			var t = this, n, frag, commonParent, startOffset, endOffset, cnt, sibling, nextSibling;
+
+			if (how != DELETE)
+				frag = t.dom.doc.createDocumentFragment();
+
+			n = t._traverseLeftBoundary(startAncestor, how);
+			if (frag)
+				frag.appendChild(n);
+
+			commonParent = startAncestor.parentNode;
+			startOffset = indexOf(startAncestor, commonParent);
+			endOffset = indexOf(endAncestor, commonParent);
+			++startOffset;
+
+			cnt = endOffset - startOffset;
+			sibling = startAncestor.nextSibling;
 
-/* file:jscripts/tiny_mce/classes/dom/Event.js */
+			while (cnt &gt; 0) {
+				nextSibling = sibling.nextSibling;
+				n = t._traverseFullySelected(sibling, how);
 
+				if (frag)
+					frag.appendChild(n);
+
+				sibling = nextSibling;
+				--cnt;
+			}
+
+			n = t._traverseRightBoundary(endAncestor, how);
+
+			if (frag)
+				frag.appendChild(n);
+
+			if (how != CLONE) {
+				t.setStartAfter(startAncestor);
+				t.collapse(true);
+			}
+
+			return frag;
+		},
+
+		_traverseRightBoundary : function(root, how) {
+			var t = this, next = getSelectedNode(t.endContainer, t.endOffset - 1), parent, clonedParent, prevSibling, clonedChild, clonedGrandParent;
+			var isFullySelected = next != t.endContainer;
+
+			if (next == root)
+				return t._traverseNode(next, isFullySelected, false, how);
+
+			parent = next.parentNode;
+			clonedParent = t._traverseNode(parent, false, false, how);
+
+			while (parent != null) {
+				while (next != null) {
+					prevSibling = next.previousSibling;
+					clonedChild = t._traverseNode(next, isFullySelected, false, how);
+
+					if (how != DELETE)
+						clonedParent.insertBefore(clonedChild, clonedParent.firstChild);
+
+					isFullySelected = true;
+					next = prevSibling;
+				}
+
+				if (parent == root)
+					return clonedParent;
+
+				next = parent.previousSibling;
+				parent = parent.parentNode;
+
+				clonedGrandParent = t._traverseNode(parent, false, false, how);
+
+				if (how != DELETE)
+					clonedGrandParent.appendChild(clonedParent);
+
+				clonedParent = clonedGrandParent;
+			}
+
+			// should never occur
+			return null;
+		},
+
+		_traverseLeftBoundary : function(root, how) {
+			var t = this, next = getSelectedNode(t.startContainer, t.startOffset);
+			var isFullySelected = next != t.startContainer, parent, clonedParent, nextSibling, clonedChild, clonedGrandParent;
+
+			if (next == root)
+				return t._traverseNode(next, isFullySelected, true, how);
+
+			parent = next.parentNode;
+			clonedParent = t._traverseNode(parent, false, true, how);
+
+			while (parent != null) {
+				while (next != null) {
+					nextSibling = next.nextSibling;
+					clonedChild = t._traverseNode(next, isFullySelected, true, how);
+
+					if (how != DELETE)
+						clonedParent.appendChild(clonedChild);
+
+					isFullySelected = true;
+					next = nextSibling;
+				}
+
+				if (parent == root)
+					return clonedParent;
+
+				next = parent.nextSibling;
+				parent = parent.parentNode;
+
+				clonedGrandParent = t._traverseNode(parent, false, true, how);
+
+				if (how != DELETE)
+					clonedGrandParent.appendChild(clonedParent);
+
+				clonedParent = clonedGrandParent;
+			}
+
+			// should never occur
+			return null;
+		},
+
+		_traverseNode : function(n, isFullySelected, isLeft, how) {
+			var t = this, txtValue, newNodeValue, oldNodeValue, offset, newNode;
+
+			if (isFullySelected)
+				return t._traverseFullySelected(n, how);
+
+			if (n.nodeType == 3 /* TEXT_NODE */) {
+				txtValue = n.nodeValue;
+
+				if (isLeft) {
+					offset = t.startOffset;
+					newNodeValue = txtValue.substring(offset);
+					oldNodeValue = txtValue.substring(0, offset);
+				} else {
+					offset = t.endOffset;
+					newNodeValue = txtValue.substring(0, offset);
+					oldNodeValue = txtValue.substring(offset);
+				}
+
+				if (how != CLONE)
+					n.nodeValue = oldNodeValue;
+
+				if (how == DELETE)
+					return null;
+
+				newNode = n.cloneNode(false);
+				newNode.nodeValue = newNodeValue;
+
+				return newNode;
+			}
+
+			if (how == DELETE)
+				return null;
+
+			return n.cloneNode(false);
+		},
+
+		_traverseFullySelected : function(n, how) {
+			var t = this;
+
+			if (how != DELETE)
+				return how == CLONE ? n.cloneNode(true) : n;
+
+			n.parentNode.removeChild(n);
+			return null;
+		}
+	});
+
+	ns.Range = Range;
+})(tinymce.dom);
 (function() {
+	function Selection(selection) {
+		var t = this;
+
+		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));
+
+				return domRange;
+			}
+
+			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();
+
+					// Move one character at beginning/end of selection
+					if (start)
+						rng.moveStart('character', 1);
+					else
+						rng.moveEnd('character', -1);
+
+					// The range shouldn't have been changed so lets restore it
+					if (rng.text != rng2.text)
+						rng = rng2;
+
+					rng.collapse(start);
+					element = rng.parentElement();
+				}
+
+				pos.parent = element;
+				pos.range = rng;
+			};
+
+			function findIndexAndOffset(pos) {
+				var rng = pos.range, i, nl, marker, sibling, idx = 0;
+
+				// Set parent and offset
+				pos.offset = 0;
+				pos.parent = rng.parentElement();
+
+				// Insert marker
+				rng.pasteHTML('&lt;span id=&quot;_mce&quot;&gt;&lt;/span&gt;');
+				marker = dom.get('_mce');
+
+				// Find the makers node index excluding text node fragmentation
+				nl = pos.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++;
+				}
+
+				// 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);
+					} else
+						pos.index++;
+				}
+
+				// Remove the marker
+				dom.remove(marker);
+
+				return pos;
+			};
+
+			// Find end points
+			findEndPoint(ieRange, true, startPos);
+			findEndPoint(ieRange, false, endPos);
+
+			// Find start and end positions
+			findIndexAndOffset(startPos);
+			findIndexAndOffset(endPos);
+
+			// 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);
+
+			// Restore selection to new range
+			t.addRange(domRange);
+
+			return domRange;
+		};
+
+		this.addRange = function(rng) {
+			var ieRng, startPos, endPos, body = selection.dom.doc.body;
+
+			// 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;
+
+				// Get container and offset
+				container = start ? rng.startContainer : rng.endContainer;
+				offset = start ? rng.startOffset : rng.endOffset;
+
+				// Insert marker character
+				container.nodeValue = container.nodeValue.substring(0, offset) + '\uFEFF' + container.nodeValue.substring(offset);
+
+				// Create range for whole parent element
+				rng2 = body.createTextRange();
+				rng2.moveToElementText(container.parentNode);
+				pos = rng2.text.indexOf('\uFEFF');
+				container.nodeValue = container.nodeValue.replace(/\uFEFF/, '');
+
+				if (start)
+					startPos = pos;
+				else
+					endPos = pos;
+			};
+
+			function setPos(start) {
+				var rng2, container = start ? rng.startContainer : rng.endContainer;
+
+				rng2 = body.createTextRange();
+				rng2.moveToElementText(container.parentNode);
+				rng2.collapse(true);
+				rng2.move('character', start ? startPos : endPos);
+
+				if (start)
+					ieRng.setEndPoint('StartToStart', rng2);
+				else
+					ieRng.setEndPoint('EndToStart', rng2);
+			};
+
+			// Create IE specific range
+			ieRng = body.createTextRange();
+
+			// Find start/end pos
+			findPos(true);
+			findPos(false);
+
+			// Set start/end pos
+			setPos(true);
+			setPos(false);
+
+			ieRng.select();
+		};
+
+		this.getRangeAt = function() {
+			// todo: Implement range caching here later
+			return getRange();
+		};
+	};
+
+	// Expose the selection object
+	tinymce.dom.TridentSelection = Selection;
+})();
+
+/*
+ * Sizzle CSS Selector Engine - v1.0
+ *  Copyright 2009, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){
+
+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;
+
+var Sizzle = function(selector, context, results, seed) {
+	results = results || [];
+	var origContext = context = context || document;
+
+	if ( context.nodeType !== 1 &amp;&amp; context.nodeType !== 9 ) {
+		return [];
+	}
+	
+	if ( !selector || typeof selector !== &quot;string&quot; ) {
+		return results;
+	}
+
+	var parts = [], m, set, checkSet, check, mode, extra, prune = true, contextXML = isXML(context);
+	
+	// Reset the position of the chunker regexp (start from head)
+	chunker.lastIndex = 0;
+	
+	while ( (m = chunker.exec(selector)) !== null ) {
+		parts.push( m[1] );
+		
+		if ( m[2] ) {
+			extra = RegExp.rightContext;
+			break;
+		}
+	}
+
+	if ( parts.length &gt; 1 &amp;&amp; origPOS.exec( selector ) ) {
+		if ( parts.length === 2 &amp;&amp; Expr.relative[ parts[0] ] ) {
+			set = posProcess( parts[0] + parts[1], context );
+		} else {
+			set = Expr.relative[ parts[0] ] ?
+				[ context ] :
+				Sizzle( parts.shift(), context );
+
+			while ( parts.length ) {
+				selector = parts.shift();
+
+				if ( Expr.relative[ selector ] )
+					selector += parts.shift();
+
+				set = posProcess( selector, set );
+			}
+		}
+	} else {
+		// Take a shortcut and set the context if the root selector is an ID
+		// (but not if it'll be faster if the inner selector is an ID)
+		if ( !seed &amp;&amp; parts.length &gt; 1 &amp;&amp; context.nodeType === 9 &amp;&amp; !contextXML &amp;&amp;
+				Expr.match.ID.test(parts[0]) &amp;&amp; !Expr.match.ID.test(parts[parts.length - 1]) ) {
+			var ret = Sizzle.find( parts.shift(), context, contextXML );
+			context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0];
+		}
+
+		if ( context ) {
+			var ret = seed ?
+				{ expr: parts.pop(), set: makeArray(seed) } :
+				Sizzle.find( parts.pop(), parts.length === 1 &amp;&amp; (parts[0] === &quot;~&quot; || parts[0] === &quot;+&quot;) &amp;&amp; context.parentNode ? context.parentNode : context, contextXML );
+			set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set;
+
+			if ( parts.length &gt; 0 ) {
+				checkSet = makeArray(set);
+			} else {
+				prune = false;
+			}
+
+			while ( parts.length ) {
+				var cur = parts.pop(), pop = cur;
+
+				if ( !Expr.relative[ cur ] ) {
+					cur = &quot;&quot;;
+				} else {
+					pop = parts.pop();
+				}
+
+				if ( pop == null ) {
+					pop = context;
+				}
+
+				Expr.relative[ cur ]( checkSet, pop, contextXML );
+			}
+		} else {
+			checkSet = parts = [];
+		}
+	}
+
+	if ( !checkSet ) {
+		checkSet = set;
+	}
+
+	if ( !checkSet ) {
+		throw &quot;Syntax error, unrecognized expression: &quot; + (cur || selector);
+	}
+
+	if ( toString.call(checkSet) === &quot;[object Array]&quot; ) {
+		if ( !prune ) {
+			arrayPush.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] );
+				}
+			}
+		} else {
+			for ( var i = 0; checkSet[i] != null; i++ ) {
+				if ( checkSet[i] &amp;&amp; checkSet[i].nodeType === 1 ) {
+					arrayPush.call( results, set[i] );
+				}
+			}
+		}
+	} else {
+		makeArray( checkSet, results );
+	}
+
+	if ( extra ) {
+		Sizzle( extra, origContext, results, seed );
+		Sizzle.uniqueSort( results );
+	}
+
+	return results;
+};
+
+Sizzle.uniqueSort = function(results){
+	if ( sortOrder ) {
+		hasDuplicate = false;
+		arraySort.call(results, sortOrder);
+
+		if ( hasDuplicate ) {
+			for ( var i = 1; i &lt; results.length; i++ ) {
+				if ( results[i] === results[i-1] ) {
+					arraySplice.call(results, i--, 1);
+				}
+			}
+		}
+	}
+};
+
+Sizzle.matches = function(expr, set){
+	return Sizzle(expr, null, null, set);
+};
+
+Sizzle.find = function(expr, context, isXML){
+	var set, match;
+
+	if ( !expr ) {
+		return [];
+	}
+
+	for ( var i = 0, l = Expr.order.length; i &lt; l; i++ ) {
+		var type = Expr.order[i], match;
+		
+		if ( (match = Expr.match[ type ].exec( expr )) ) {
+			var left = RegExp.leftContext;
+
+			if ( left.substr( left.length - 1 ) !== &quot;\\&quot; ) {
+				match[1] = (match[1] || &quot;&quot;).replace(/\\/g, &quot;&quot;);
+				set = Expr.find[ type ]( match, context, isXML );
+				if ( set != null ) {
+					expr = expr.replace( Expr.match[ type ], &quot;&quot; );
+					break;
+				}
+			}
+		}
+	}
+
+	if ( !set ) {
+		set = context.getElementsByTagName(&quot;*&quot;);
+	}
+
+	return {set: set, expr: expr};
+};
+
+Sizzle.filter = function(expr, set, inplace, not){
+	var old = expr, result = [], curLoop = set, match, anyFound,
+		isXMLFilter = set &amp;&amp; set[0] &amp;&amp; isXML(set[0]);
+
+	while ( expr &amp;&amp; set.length ) {
+		for ( var type in Expr.filter ) {
+			if ( (match = Expr.match[ type ].exec( expr )) != null ) {
+				var filter = Expr.filter[ type ], found, item;
+				anyFound = false;
+
+				if ( curLoop == result ) {
+					result = [];
+				}
+
+				if ( Expr.preFilter[ type ] ) {
+					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+					if ( !match ) {
+						anyFound = found = true;
+					} else if ( match === true ) {
+						continue;
+					}
+				}
+
+				if ( match ) {
+					for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
+						if ( item ) {
+							found = filter( item, match, i, curLoop );
+							var pass = not ^ !!found;
+
+							if ( inplace &amp;&amp; found != null ) {
+								if ( pass ) {
+									anyFound = true;
+								} else {
+									curLoop[i] = false;
+								}
+							} else if ( pass ) {
+								result.push( item );
+								anyFound = true;
+							}
+						}
+					}
+				}
+
+				if ( found !== undefined ) {
+					if ( !inplace ) {
+						curLoop = result;
+					}
+
+					expr = expr.replace( Expr.match[ type ], &quot;&quot; );
+
+					if ( !anyFound ) {
+						return [];
+					}
+
+					break;
+				}
+			}
+		}
+
+		// Improper expression
+		if ( expr == old ) {
+			if ( anyFound == null ) {
+				throw &quot;Syntax error, unrecognized expression: &quot; + expr;
+			} else {
+				break;
+			}
+		}
+
+		old = expr;
+	}
+
+	return curLoop;
+};
+
+var Expr = Sizzle.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(elem){
+			return elem.getAttribute(&quot;href&quot;);
+		}
+	},
+	relative: {
+		&quot;+&quot;: function(checkSet, part, isXML){
+			var isPartStr = typeof part === &quot;string&quot;,
+				isTag = isPartStr &amp;&amp; !/\W/.test(part),
+				isPartStrNotTag = isPartStr &amp;&amp; !isTag;
+
+			if ( isTag &amp;&amp; !isXML ) {
+				part = part.toUpperCase();
+			}
+
+			for ( var i = 0, l = checkSet.length, elem; i &lt; l; i++ ) {
+				if ( (elem = checkSet[i]) ) {
+					while ( (elem = elem.previousSibling) &amp;&amp; elem.nodeType !== 1 ) {}
+
+					checkSet[i] = isPartStrNotTag || elem &amp;&amp; elem.nodeName === part ?
+						elem || false :
+						elem === part;
+				}
+			}
+
+			if ( isPartStrNotTag ) {
+				Sizzle.filter( part, checkSet, true );
+			}
+		},
+		&quot;&gt;&quot;: function(checkSet, part, isXML){
+			var isPartStr = typeof part === &quot;string&quot;;
+
+			if ( isPartStr &amp;&amp; !/\W/.test(part) ) {
+				part = isXML ? part : part.toUpperCase();
+
+				for ( var i = 0, l = checkSet.length; i &lt; l; i++ ) {
+					var elem = checkSet[i];
+					if ( elem ) {
+						var parent = elem.parentNode;
+						checkSet[i] = parent.nodeName === part ? parent : false;
+					}
+				}
+			} else {
+				for ( var i = 0, l = checkSet.length; i &lt; l; i++ ) {
+					var elem = checkSet[i];
+					if ( elem ) {
+						checkSet[i] = isPartStr ?
+							elem.parentNode :
+							elem.parentNode === part;
+					}
+				}
+
+				if ( isPartStr ) {
+					Sizzle.filter( part, checkSet, true );
+				}
+			}
+		},
+		&quot;&quot;: function(checkSet, part, isXML){
+			var doneName = done++, checkFn = dirCheck;
+
+			if ( !part.match(/\W/) ) {
+				var nodeCheck = part = isXML ? part : part.toUpperCase();
+				checkFn = dirNodeCheck;
+			}
+
+			checkFn(&quot;parentNode&quot;, part, doneName, checkSet, nodeCheck, isXML);
+		},
+		&quot;~&quot;: function(checkSet, part, isXML){
+			var doneName = done++, checkFn = dirCheck;
+
+			if ( typeof part === &quot;string&quot; &amp;&amp; !part.match(/\W/) ) {
+				var nodeCheck = part = isXML ? part : part.toUpperCase();
+				checkFn = dirNodeCheck;
+			}
+
+			checkFn(&quot;previousSibling&quot;, part, doneName, checkSet, nodeCheck, isXML);
+		}
+	},
+	find: {
+		ID: function(match, context, isXML){
+			if ( typeof context.getElementById !== &quot;undefined&quot; &amp;&amp; !isXML ) {
+				var m = context.getElementById(match[1]);
+				return m ? [m] : [];
+			}
+		},
+		NAME: function(match, context, isXML){
+			if ( typeof context.getElementsByName !== &quot;undefined&quot; ) {
+				var ret = [], results = context.getElementsByName(match[1]);
+
+				for ( var i = 0, l = results.length; i &lt; l; i++ ) {
+					if ( results[i].getAttribute(&quot;name&quot;) === match[1] ) {
+						ret.push( results[i] );
+					}
+				}
+
+				return ret.length === 0 ? null : ret;
+			}
+		},
+		TAG: function(match, context){
+			return context.getElementsByTagName(match[1]);
+		}
+	},
+	preFilter: {
+		CLASS: function(match, curLoop, inplace, result, not, isXML){
+			match = &quot; &quot; + match[1].replace(/\\/g, &quot;&quot;) + &quot; &quot;;
+
+			if ( isXML ) {
+				return match;
+			}
+
+			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+				if ( elem ) {
+					if ( not ^ (elem.className &amp;&amp; (&quot; &quot; + elem.className + &quot; &quot;).indexOf(match) &gt;= 0) ) {
+						if ( !inplace )
+							result.push( elem );
+					} else if ( inplace ) {
+						curLoop[i] = false;
+					}
+				}
+			}
+
+			return false;
+		},
+		ID: function(match){
+			return match[1].replace(/\\/g, &quot;&quot;);
+		},
+		TAG: function(match, curLoop){
+			for ( var i = 0; curLoop[i] === false; i++ ){}
+			return curLoop[i] &amp;&amp; isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
+		},
+		CHILD: function(match){
+			if ( match[1] == &quot;nth&quot; ) {
+				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+				var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+					match[2] == &quot;even&quot; &amp;&amp; &quot;2n&quot; || match[2] == &quot;odd&quot; &amp;&amp; &quot;2n+1&quot; ||
+					!/\D/.test( match[2] ) &amp;&amp; &quot;0n+&quot; + match[2] || match[2]);
+
+				// calculate the numbers (first)n+(last) including if they are negative
+				match[2] = (test[1] + (test[2] || 1)) - 0;
+				match[3] = test[3] - 0;
+			}
+
+			// TODO: Move to normal caching system
+			match[0] = done++;
+
+			return match;
+		},
+		ATTR: function(match, curLoop, inplace, result, not, isXML){
+			var name = match[1].replace(/\\/g, &quot;&quot;);
+			
+			if ( !isXML &amp;&amp; Expr.attrMap[name] ) {
+				match[1] = Expr.attrMap[name];
+			}
+
+			if ( match[2] === &quot;~=&quot; ) {
+				match[4] = &quot; &quot; + match[4] + &quot; &quot;;
+			}
+
+			return match;
+		},
+		PSEUDO: function(match, curLoop, inplace, result, not){
+			if ( match[1] === &quot;not&quot; ) {
+				// If we're dealing with a complex expression, or a simple one
+				if ( match[3].match(chunker).length &gt; 1 || /^\w/.test(match[3]) ) {
+					match[3] = Sizzle(match[3], null, null, curLoop);
+				} else {
+					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+					if ( !inplace ) {
+						result.push.apply( result, ret );
+					}
+					return false;
+				}
+			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+				return true;
+			}
+			
+			return match;
+		},
+		POS: function(match){
+			match.unshift( true );
+			return match;
+		}
+	},
+	filters: {
+		enabled: function(elem){
+			return elem.disabled === false &amp;&amp; elem.type !== &quot;hidden&quot;;
+		},
+		disabled: function(elem){
+			return elem.disabled === true;
+		},
+		checked: function(elem){
+			return elem.checked === true;
+		},
+		selected: function(elem){
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			elem.parentNode.selectedIndex;
+			return elem.selected === true;
+		},
+		parent: function(elem){
+			return !!elem.firstChild;
+		},
+		empty: function(elem){
+			return !elem.firstChild;
+		},
+		has: function(elem, i, match){
+			return !!Sizzle( match[3], elem ).length;
+		},
+		header: function(elem){
+			return /h\d/i.test( elem.nodeName );
+		},
+		text: function(elem){
+			return &quot;text&quot; === elem.type;
+		},
+		radio: function(elem){
+			return &quot;radio&quot; === elem.type;
+		},
+		checkbox: function(elem){
+			return &quot;checkbox&quot; === elem.type;
+		},
+		file: function(elem){
+			return &quot;file&quot; === elem.type;
+		},
+		password: function(elem){
+			return &quot;password&quot; === elem.type;
+		},
+		submit: function(elem){
+			return &quot;submit&quot; === elem.type;
+		},
+		image: function(elem){
+			return &quot;image&quot; === elem.type;
+		},
+		reset: function(elem){
+			return &quot;reset&quot; === elem.type;
+		},
+		button: function(elem){
+			return &quot;button&quot; === elem.type || elem.nodeName.toUpperCase() === &quot;BUTTON&quot;;
+		},
+		input: function(elem){
+			return /input|select|textarea|button/i.test(elem.nodeName);
+		}
+	},
+	setFilters: {
+		first: function(elem, i){
+			return i === 0;
+		},
+		last: function(elem, i, match, array){
+			return i === array.length - 1;
+		},
+		even: function(elem, i){
+			return i % 2 === 0;
+		},
+		odd: function(elem, i){
+			return i % 2 === 1;
+		},
+		lt: function(elem, i, match){
+			return i &lt; match[3] - 0;
+		},
+		gt: function(elem, i, match){
+			return i &gt; match[3] - 0;
+		},
+		nth: function(elem, i, match){
+			return match[3] - 0 == i;
+		},
+		eq: function(elem, i, match){
+			return match[3] - 0 == i;
+		}
+	},
+	filter: {
+		PSEUDO: function(elem, match, i, array){
+			var name = match[1], filter = Expr.filters[ name ];
+
+			if ( filter ) {
+				return filter( elem, i, match, array );
+			} else if ( name === &quot;contains&quot; ) {
+				return (elem.textContent || elem.innerText || &quot;&quot;).indexOf(match[3]) &gt;= 0;
+			} else if ( name === &quot;not&quot; ) {
+				var not = match[3];
+
+				for ( var i = 0, l = not.length; i &lt; l; i++ ) {
+					if ( not[i] === elem ) {
+						return false;
+					}
+				}
+
+				return true;
+			}
+		},
+		CHILD: function(elem, match){
+			var type = match[1], node = elem;
+			switch (type) {
+				case 'only':
+				case 'first':
+					while (node = node.previousSibling)  {
+						if ( node.nodeType === 1 ) return false;
+					}
+					if ( type == 'first') return true;
+					node = elem;
+				case 'last':
+					while (node = node.nextSibling)  {
+						if ( node.nodeType === 1 ) return false;
+					}
+					return true;
+				case 'nth':
+					var first = match[2], last = match[3];
+
+					if ( first == 1 &amp;&amp; last == 0 ) {
+						return true;
+					}
+					
+					var doneName = match[0],
+						parent = elem.parentNode;
+	
+					if ( parent &amp;&amp; (parent.sizcache !== doneName || !elem.nodeIndex) ) {
+						var count = 0;
+						for ( node = parent.firstChild; node; node = node.nextSibling ) {
+							if ( node.nodeType === 1 ) {
+								node.nodeIndex = ++count;
+							}
+						} 
+						parent.sizcache = doneName;
+					}
+					
+					var diff = elem.nodeIndex - last;
+					if ( first == 0 ) {
+						return diff == 0;
+					} else {
+						return ( diff % first == 0 &amp;&amp; diff / first &gt;= 0 );
+					}
+			}
+		},
+		ID: function(elem, match){
+			return elem.nodeType === 1 &amp;&amp; elem.getAttribute(&quot;id&quot;) === match;
+		},
+		TAG: function(elem, match){
+			return (match === &quot;*&quot; &amp;&amp; elem.nodeType === 1) || elem.nodeName === match;
+		},
+		CLASS: function(elem, match){
+			return (&quot; &quot; + (elem.className || elem.getAttribute(&quot;class&quot;)) + &quot; &quot;)
+				.indexOf( match ) &gt; -1;
+		},
+		ATTR: function(elem, match){
+			var name = match[1],
+				result = Expr.attrHandle[ name ] ?
+					Expr.attrHandle[ name ]( elem ) :
+					elem[ name ] != null ?
+						elem[ name ] :
+						elem.getAttribute( name ),
+				value = result + &quot;&quot;,
+				type = match[2],
+				check = match[4];
+
+			return result == null ?
+				type === &quot;!=&quot; :
+				type === &quot;=&quot; ?
+				value === check :
+				type === &quot;*=&quot; ?
+				value.indexOf(check) &gt;= 0 :
+				type === &quot;~=&quot; ?
+				(&quot; &quot; + value + &quot; &quot;).indexOf(check) &gt;= 0 :
+				!check ?
+				value &amp;&amp; result !== false :
+				type === &quot;!=&quot; ?
+				value != check :
+				type === &quot;^=&quot; ?
+				value.indexOf(check) === 0 :
+				type === &quot;$=&quot; ?
+				value.substr(value.length - check.length) === check :
+				type === &quot;|=&quot; ?
+				value === check || value.substr(0, check.length + 1) === check + &quot;-&quot; :
+				false;
+		},
+		POS: function(elem, match, i, array){
+			var name = match[2], filter = Expr.setFilters[ name ];
+
+			if ( filter ) {
+				return filter( elem, i, match, array );
+			}
+		}
+	}
+};
+
+var origPOS = Expr.match.POS;
+
+for ( var type in Expr.match ) {
+	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
+}
+
+var makeArray = function(array, results) {
+	array = Array.prototype.slice.call( array );
+
+	if ( results ) {
+		arrayPush.apply( results, array );
+		return results;
+	}
+	
+	return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+try {
+	Array.prototype.slice.call( document.documentElement.childNodes );
+
+// Provide a fallback method if it does not work
+} catch(e){
+	makeArray = function(array, results) {
+		var ret = results || [];
+
+		if ( toString.call(array) === &quot;[object Array]&quot; ) {
+			Array.prototype.push.apply( ret, array );
+		} else {
+			if ( typeof array.length === &quot;number&quot; ) {
+				for ( var i = 0, l = array.length; i &lt; l; i++ ) {
+					ret.push( array[i] );
+				}
+			} else {
+				for ( var i = 0; array[i]; i++ ) {
+					ret.push( array[i] );
+				}
+			}
+		}
+
+		return ret;
+	};
+}
+
+var sortOrder;
+
+if ( document.documentElement.compareDocumentPosition ) {
+	sortOrder = function( a, b ) {
+		var ret = a.compareDocumentPosition(b) &amp; 4 ? -1 : a === b ? 0 : 1;
+		if ( ret === 0 ) {
+			hasDuplicate = true;
+		}
+		return ret;
+	};
+} else if ( &quot;sourceIndex&quot; in document.documentElement ) {
+	sortOrder = function( a, b ) {
+		var ret = a.sourceIndex - b.sourceIndex;
+		if ( ret === 0 ) {
+			hasDuplicate = true;
+		}
+		return ret;
+	};
+} 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);
+		var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
+		if ( ret === 0 ) {
+			hasDuplicate = true;
+		}
+		return ret;
+	};
+}
+
+// Check to see if the browser returns elements by name when
+// 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;),
+		id = &quot;script&quot; + (new Date).getTime();
+	form.innerHTML = &quot;&lt;input name='&quot; + id + &quot;'/&gt;&quot;;
+
+	// Inject it into the root element, check its status, and remove it quickly
+	var root = document.documentElement;
+	root.insertBefore( form, root.firstChild );
+
+	// The workaround has to do additional checks after a getElementById
+	// Which slows things down for other browsers (hence the branching)
+	if ( !!document.getElementById( id ) ) {
+		Expr.find.ID = function(match, context, isXML){
+			if ( typeof context.getElementById !== &quot;undefined&quot; &amp;&amp; !isXML ) {
+				var m = context.getElementById(match[1]);
+				return m ? m.id === match[1] || typeof m.getAttributeNode !== &quot;undefined&quot; &amp;&amp; m.getAttributeNode(&quot;id&quot;).nodeValue === match[1] ? [m] : undefined : [];
+			}
+		};
+
+		Expr.filter.ID = function(elem, match){
+			var node = typeof elem.getAttributeNode !== &quot;undefined&quot; &amp;&amp; elem.getAttributeNode(&quot;id&quot;);
+			return elem.nodeType === 1 &amp;&amp; node &amp;&amp; node.nodeValue === match;
+		};
+	}
+
+	root.removeChild( form );
+})();
+
+(function(){
+	// Check to see if the browser returns only elements
+	// when doing getElementsByTagName(&quot;*&quot;)
+
+	// Create a fake element
+	var div = document.createElement(&quot;div&quot;);
+	div.appendChild( document.createComment(&quot;&quot;) );
+
+	// Make sure no comments are found
+	if ( div.getElementsByTagName(&quot;*&quot;).length &gt; 0 ) {
+		Expr.find.TAG = function(match, context){
+			var results = context.getElementsByTagName(match[1]);
+
+			// Filter out possible comments
+			if ( match[1] === &quot;*&quot; ) {
+				var tmp = [];
+
+				for ( var i = 0; results[i]; i++ ) {
+					if ( results[i].nodeType === 1 ) {
+						tmp.push( results[i] );
+					}
+				}
+
+				results = tmp;
+			}
+
+			return results;
+		};
+	}
+
+	// Check to see if an attribute returns normalized href attributes
+	div.innerHTML = &quot;&lt;a href='#'&gt;&lt;/a&gt;&quot;;
+	if ( div.firstChild &amp;&amp; typeof div.firstChild.getAttribute !== &quot;undefined&quot; &amp;&amp;
+			div.firstChild.getAttribute(&quot;href&quot;) !== &quot;#&quot; ) {
+		Expr.attrHandle.href = function(elem){
+			return elem.getAttribute(&quot;href&quot;, 2);
+		};
+	}
+})();
+
+if ( document.querySelectorAll ) (function(){
+	var oldSizzle = Sizzle, div = document.createElement(&quot;div&quot;);
+	div.innerHTML = &quot;&lt;p class='TEST'&gt;&lt;/p&gt;&quot;;
+
+	// Safari can't handle uppercase or unicode characters when
+	// in quirks mode.
+	if ( div.querySelectorAll &amp;&amp; div.querySelectorAll(&quot;.TEST&quot;).length === 0 ) {
+		return;
+	}
+	
+	Sizzle = function(query, context, extra, seed){
+		context = context || document;
+
+		// Only use querySelectorAll on non-XML documents
+		// (ID selectors don't work in non-HTML documents)
+		if ( !seed &amp;&amp; context.nodeType === 9 &amp;&amp; !isXML(context) ) {
+			try {
+				return makeArray( context.querySelectorAll(query), extra );
+			} catch(e){}
+		}
+		
+		return oldSizzle(query, context, extra, seed);
+	};
+
+	for ( var prop in oldSizzle ) {
+		Sizzle[ prop ] = oldSizzle[ prop ];
+	}
+})();
+
+if ( document.getElementsByClassName &amp;&amp; document.documentElement.getElementsByClassName ) (function(){
+	var div = document.createElement(&quot;div&quot;);
+	div.innerHTML = &quot;&lt;div class='test e'&gt;&lt;/div&gt;&lt;div class='test'&gt;&lt;/div&gt;&quot;;
+
+	// Opera can't find a second classname (in 9.6)
+	if ( div.getElementsByClassName(&quot;e&quot;).length === 0 )
+		return;
+
+	// Safari caches class attributes, doesn't catch changes (in 3.2)
+	div.lastChild.className = &quot;e&quot;;
+
+	if ( div.getElementsByClassName(&quot;e&quot;).length === 1 )
+		return;
+
+	Expr.order.splice(1, 0, &quot;CLASS&quot;);
+	Expr.find.CLASS = function(match, context, isXML) {
+		if ( typeof context.getElementsByClassName !== &quot;undefined&quot; &amp;&amp; !isXML ) {
+			return context.getElementsByClassName(match[1]);
+		}
+	};
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+	var sibDir = dir == &quot;previousSibling&quot; &amp;&amp; !isXML;
+	for ( var i = 0, l = checkSet.length; i &lt; l; i++ ) {
+		var elem = checkSet[i];
+		if ( elem ) {
+			if ( sibDir &amp;&amp; elem.nodeType === 1 ){
+				elem.sizcache = doneName;
+				elem.sizset = i;
+			}
+			elem = elem[dir];
+			var match = false;
+
+			while ( elem ) {
+				if ( elem.sizcache === doneName ) {
+					match = checkSet[elem.sizset];
+					break;
+				}
+
+				if ( elem.nodeType === 1 &amp;&amp; !isXML ){
+					elem.sizcache = doneName;
+					elem.sizset = i;
+				}
+
+				if ( elem.nodeName === cur ) {
+					match = elem;
+					break;
+				}
+
+				elem = elem[dir];
+			}
+
+			checkSet[i] = match;
+		}
+	}
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+	var sibDir = dir == &quot;previousSibling&quot; &amp;&amp; !isXML;
+	for ( var i = 0, l = checkSet.length; i &lt; l; i++ ) {
+		var elem = checkSet[i];
+		if ( elem ) {
+			if ( sibDir &amp;&amp; elem.nodeType === 1 ) {
+				elem.sizcache = doneName;
+				elem.sizset = i;
+			}
+			elem = elem[dir];
+			var match = false;
+
+			while ( elem ) {
+				if ( elem.sizcache === doneName ) {
+					match = checkSet[elem.sizset];
+					break;
+				}
+
+				if ( elem.nodeType === 1 ) {
+					if ( !isXML ) {
+						elem.sizcache = doneName;
+						elem.sizset = i;
+					}
+					if ( typeof cur !== &quot;string&quot; ) {
+						if ( elem === cur ) {
+							match = true;
+							break;
+						}
+
+					} else if ( Sizzle.filter( cur, [elem] ).length &gt; 0 ) {
+						match = elem;
+						break;
+					}
+				}
+
+				elem = elem[dir];
+			}
+
+			checkSet[i] = match;
+		}
+	}
+}
+
+var contains = document.compareDocumentPosition ?  function(a, b){
+	return a.compareDocumentPosition(b) &amp; 16;
+} : function(a, b){
+	return a !== b &amp;&amp; (a.contains ? a.contains(b) : true);
+};
+
+var isXML = function(elem){
+	return elem.nodeType === 9 &amp;&amp; elem.documentElement.nodeName !== &quot;HTML&quot; ||
+		!!elem.ownerDocument &amp;&amp; elem.ownerDocument.documentElement.nodeName !== &quot;HTML&quot;;
+};
+
+var posProcess = function(selector, context){
+	var tmpSet = [], later = &quot;&quot;, match,
+		root = context.nodeType ? [context] : context;
+
+	// Position selectors must be done after the filter
+	// And so must :not(positional) so we move all PSEUDOs to the end
+	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+		later += match[0];
+		selector = selector.replace( Expr.match.PSEUDO, &quot;&quot; );
+	}
+
+	selector = Expr.relative[selector] ? selector + &quot;*&quot; : selector;
+
+	for ( var i = 0, l = root.length; i &lt; l; i++ ) {
+		Sizzle( selector, root[i], tmpSet );
+	}
+
+	return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+
+window.tinymce.dom.Sizzle = Sizzle;
+
+})();
+(function(tinymce) {
 	// Shorten names
 	var each = tinymce.each, DOM = tinymce.DOM, isIE = tinymce.isIE, isWebKit = tinymce.isWebKit, Event;
 
@@ -2416,13 +4209,12 @@ tinymce.create('static tinymce.util.XHR', {
 		inits : [],
 		events : [],
 
-		// #if !jquery
 
 		add : function(o, n, f, s) {
 			var cb, t = this, el = t.events, r;
 
 			// Handle array
-			if (o &amp;&amp; o instanceof Array) {
+			if (o &amp;&amp; o.hasOwnProperty &amp;&amp; o instanceof Array) {
 				r = [];
 
 				each(o, function(o) {
@@ -2484,7 +4276,7 @@ tinymce.create('static tinymce.util.XHR', {
 			var t = this, a = t.events, s = false, r;
 
 			// Handle array
-			if (o &amp;&amp; o instanceof Array) {
+			if (o &amp;&amp; o.hasOwnProperty &amp;&amp; o instanceof Array) {
 				r = [];
 
 				each(o, function(o) {
@@ -2527,7 +4319,6 @@ tinymce.create('static tinymce.util.XHR', {
 			}
 		},
 
-		// #endif
 
 		cancel : function(e) {
 			if (!e)
@@ -2594,6 +4385,10 @@ tinymce.create('static tinymce.util.XHR', {
 		_pageInit : function() {
 			var e = Event;
 
+			// Safari on Mac fires this twice
+			if (e.domLoaded)
+				return;
+
 			e._remove(window, 'DOMContentLoaded', e._pageInit);
 			e.domLoaded = true;
 
@@ -2644,11 +4439,8 @@ tinymce.create('static tinymce.util.XHR', {
 	// Dispatch DOM content loaded event for IE and Safari
 	Event._wait();
 	tinymce.addUnload(Event._unload);
-})();
-
-/* file:jscripts/tiny_mce/classes/dom/Element.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	var each = tinymce.each;
 
 	tinymce.create('tinymce.dom.Element', {
@@ -2688,22 +4480,15 @@ tinymce.create('static tinymce.util.XHR', {
 				'get'
 			], function(k) {
 				t[k] = function() {
-					var a = arguments, o;
+					var a = [id], i;
 
-					// Opera fails
-					if (tinymce.isOpera) {
-						a = [id];
+					for (i = 0; i &lt; arguments.length; i++)
+						a.push(arguments[i]);
 
-						each(arguments, function(v) {
-							a.push(v);
-						});
-					} else
-						Array.prototype.unshift.call(a, el || id);
-
-					o = dom[k].apply(dom, a);
+					a = dom[k].apply(dom, a);
 					t.update(k);
 
-					return o;
+					return a;
 				};
 			});
 		},
@@ -2781,11 +4566,8 @@ tinymce.create('static tinymce.util.XHR', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/dom/Selection.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	function trimNl(s) {
 		return s.replace(/[\n\r]+/g, '');
 	};
@@ -2801,6 +4583,20 @@ tinymce.create('static tinymce.util.XHR', {
 			t.win = win;
 			t.serializer = serializer;
 
+			// Add events
+			each([
+				'onBeforeSetContent',
+				'onBeforeGetContent',
+				'onSetContent',
+				'onGetContent'
+			], function(e) {
+				t[e] = new tinymce.util.Dispatcher(t);
+			});
+
+			// No W3C Range support
+			if (!t.win.getSelection)
+				t.tridentSel = new tinymce.dom.TridentSelection(t);
+
 			// Prevent leaks
 			tinymce.addUnload(t.destroy, t);
 		},
@@ -2812,6 +4608,7 @@ tinymce.create('static tinymce.util.XHR', {
 			wb = wa = '';
 			s.get = true;
 			s.format = s.format || 'html';
+			t.onBeforeGetContent.dispatch(t, s);
 
 			if (s.format == 'text')
 				return t.isCollapsed() ? '' : (r.text || (se.toString ? se.toString() : ''));
@@ -2835,37 +4632,47 @@ tinymce.create('static tinymce.util.XHR', {
 
 			s.getInner = true;
 
-			return t.isCollapsed() ? '' : wb + t.serializer.serialize(e, s) + wa;
+			s.content = t.isCollapsed() ? '' : wb + t.serializer.serialize(e, s) + wa;
+			t.onGetContent.dispatch(t, s);
+
+			return s.content;
 		},
 
 		setContent : function(h, s) {
-			var t = this, r = t.getRng(), d = t.win.document;
+			var t = this, r = t.getRng(), c, d = t.win.document;
 
 			s = s || {format : 'html'};
 			s.set = true;
-			h = t.dom.processHTML(h);
+			h = s.content = t.dom.processHTML(h);
+
+			// Dispatch before set content event
+			t.onBeforeSetContent.dispatch(t, s);
+			h = s.content;
 
 			if (r.insertNode) {
-				// Gecko has a bug where if you insert &amp;nbsp; using InsertHTML it will insert a space instead
-				// So we simply check if the input is HTML or text and then insert text using the insertNode method
-				if (tinymce.isGecko &amp;&amp; h.indexOf('&lt;') == -1) {
-					r.deleteContents();
-					r.insertNode(t.getRng().createContextualFragment(h + '&lt;span id=&quot;__caret&quot;&gt;_&lt;/span&gt;'));
-					t.select(t.dom.get('__caret'));
-					t.getRng().deleteContents();
-					return;
-				}
+				// Make caret marker since insertNode places the caret in the beginning of text after insert
+				h += '&lt;span id=&quot;__caret&quot;&gt;_&lt;/span&gt;';
 
-				// Use insert HTML if it exists (places cursor after content)
-				try {
-					// This might fail with an exception see bug #1893736
-					if (d.queryCommandEnabled('InsertHTML'))
-						return d.execCommand('InsertHTML', false, h);
-				} catch (ex) {
-					// Use old school method
-					r.deleteContents();
-					r.insertNode(t.getRng().createContextualFragment(h));
-				}
+				// Delete and insert new node
+				r.deleteContents();
+				r.insertNode(t.getRng().createContextualFragment(h));
+
+				// Move to caret marker
+				c = t.dom.get('__caret');
+
+				// Make sure we wrap it compleatly, Opera fails with a simple select call
+				r = d.createRange();
+				r.setStartBefore(c);
+				r.setEndAfter(c);
+				t.setRng(r);
+
+				// Delete the marker, and hopefully the caret gets placed in the right location
+				// Removed this since it seems to remove &amp;nbsp; in FF and simply deleting it
+				// doesn't seem to affect the caret position in any browser
+				//d.execCommand('Delete', false, null);
+
+				// Remove the caret position
+				t.dom.remove('__caret');
 			} else {
 				if (r.item) {
 					// Delete content and get caret text selection
@@ -2875,6 +4682,9 @@ tinymce.create('static tinymce.util.XHR', {
 
 				r.pasteHTML(h);
 			}
+
+			// Dispatch set content event
+			t.onSetContent.dispatch(t, s);
 		},
 
 		getStart : function() {
@@ -2898,7 +4708,7 @@ tinymce.create('static tinymce.util.XHR', {
 				if (e.nodeName == 'BODY')
 					return e.firstChild;
 
-				return t.dom.getParent(e, function(n) {return n.nodeType == 1;});
+				return t.dom.getParent(e, '*');
 			}
 		},
 
@@ -2923,7 +4733,7 @@ tinymce.create('static tinymce.util.XHR', {
 				if (e.nodeName == 'BODY')
 					return e.lastChild;
 
-				return t.dom.getParent(e, function(n) {return n.nodeType == 1;});
+				return t.dom.getParent(e, '*');
 			}
 		},
 
@@ -3175,19 +4985,24 @@ tinymce.create('static tinymce.util.XHR', {
 		select : function(n, c) {
 			var t = this, r = t.getRng(), s = t.getSel(), b, fn, ln, d = t.win.document;
 
-			function first(n) {
-				return n ? d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false).nextNode() : null;
-			};
+			function find(n, start) {
+				var walker, o;
 
-			function last(n) {
-				var c, o, w;
+				if (n) {
+					walker = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
 
-				if (!n)
-					return null;
+					// Find first/last non empty text node
+					while (n = walker.nextNode()) {
+						o = n;
 
-				w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
-				while (c = w.nextNode())
-					o = c;
+						if (tinymce.trim(n.nodeValue).length != 0) {
+							if (start)
+								return n;
+							else
+								o = n;
+						}
+					}
+				}
 
 				return o;
 			};
@@ -3210,14 +5025,21 @@ tinymce.create('static tinymce.util.XHR', {
 				}
 			} else {
 				if (c) {
-					fn = first(n);
-					ln = last(n);
+					fn = find(n, 1) || t.dom.select('br:first', n)[0];
+					ln = find(n, 0) || t.dom.select('br:last', n)[0];
 
 					if (fn &amp;&amp; ln) {
-						//console.debug(fn, ln);
 						r = d.createRange();
-						r.setStart(fn, 0);
-						r.setEnd(ln, ln.nodeValue.length);
+
+						if (fn.nodeName == 'BR')
+							r.setStartBefore(fn);
+						else
+							r.setStart(fn, 0);
+
+						if (ln.nodeName == 'BR')
+							r.setEndBefore(ln);
+						else
+							r.setEnd(ln, ln.nodeValue.length);
 					} else
 						r.selectNode(n);
 				} else
@@ -3235,7 +5057,7 @@ tinymce.create('static tinymce.util.XHR', {
 			if (!r || r.item)
 				return false;
 
-			return !s || r.boundingWidth == 0 || s.isCollapsed;
+			return !s || r.boundingWidth == 0 || r.collapsed;
 		},
 
 		collapse : function(b) {
@@ -3258,11 +5080,15 @@ tinymce.create('static tinymce.util.XHR', {
 			return w.getSelection ? w.getSelection() : w.document.selection;
 		},
 
-		getRng : function() {
-			var t = this, s = t.getSel(), r;
+		getRng : function(w3c) {
+			var t = this, s, r;
+
+			// Found tridentSel object then we need to use that one
+			if (w3c &amp;&amp; t.tridentSel)
+				return t.tridentSel.getRangeAt(0);
 
 			try {
-				if (s)
+				if (s = t.getSel())
 					r = s.rangeCount &gt; 0 ? s.getRangeAt(0) : (s.createRange ? s.createRange() : t.win.document.createRange());
 			} catch (ex) {
 				// IE throws unspecified error here if TinyMCE is placed in a frame/iframe
@@ -3278,16 +5104,23 @@ tinymce.create('static tinymce.util.XHR', {
 		},
 
 		setRng : function(r) {
-			var s;
+			var s, t = this;
 
-			if (!isIE) {
-				s = this.getSel();
+			if (!t.tridentSel) {
+				s = t.getSel();
 
 				if (s) {
 					s.removeAllRanges();
 					s.addRange(r);
 				}
 			} else {
+				// Is W3C Range
+				if (r.cloneRange) {
+					t.tridentSel.addRange(r);
+					return;
+				}
+
+				// Is IE specific range
 				try {
 					r.select();
 				} catch (ex) {
@@ -3316,22 +5149,48 @@ tinymce.create('static tinymce.util.XHR', {
 
 				// Handle selection a image or other control like element such as anchors
 				if (!r.collapsed) {
-					if (r.startContainer == r.endContainer || (tinymce.isWebKit &amp;&amp; r.startContainer == r.endContainer.parentNode)) {
-						if (r.startOffset - r.endOffset &lt; 2 || tinymce.isWebKit) {
+					// If the anchor node is a element instead of a text node then return this element
+					if (tinymce.isWebKit &amp;&amp; s.anchorNode &amp;&amp; s.anchorNode.nodeType == 1) 
+						return s.anchorNode.childNodes[s.anchorOffset]; 
+
+					if (r.startContainer == r.endContainer) {
+						if (r.startOffset - r.endOffset &lt; 2) {
 							if (r.startContainer.hasChildNodes())
 								e = r.startContainer.childNodes[r.startOffset];
 						}
 					}
 				}
 
-				return t.dom.getParent(e, function(n) {
-					return n.nodeType == 1;
-				});
+				return t.dom.getParent(e, '*');
 			}
 
 			return r.item ? r.item(0) : r.parentElement();
 		},
 
+		getSelectedBlocks : function(st, en) {
+			var t = this, dom = t.dom, sb, eb, n, bl = [];
+
+			sb = dom.getParent(st || t.getStart(), dom.isBlock);
+			eb = dom.getParent(en || t.getEnd(), dom.isBlock);
+
+			if (sb)
+				bl.push(sb);
+
+			if (sb &amp;&amp; eb &amp;&amp; sb != eb) {
+				n = sb;
+
+				while ((n = n.nextSibling) &amp;&amp; n != eb) {
+					if (dom.isBlock(n))
+						bl.push(n);
+				}
+			}
+
+			if (eb &amp;&amp; sb != eb)
+				bl.push(eb);
+
+			return bl;
+		},
+
 		destroy : function(s) {
 			var t = this;
 
@@ -3343,11 +5202,8 @@ tinymce.create('static tinymce.util.XHR', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/dom/XMLWriter.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	tinymce.create('tinymce.dom.XMLWriter', {
 		node : null,
 
@@ -3417,6 +5273,10 @@ tinymce.create('static tinymce.util.XHR', {
 		},
 
 		writeComment : function(v) {
+			// Fix for bug #2035694
+			if (tinymce.isIE)
+				v = v.replace(/^\-|\-$/g, ' ');
+
 			this.node.appendChild(this.doc.createComment(v.replace(/\-\-/g, ' ')));
 		},
 
@@ -3434,11 +5294,8 @@ tinymce.create('static tinymce.util.XHR', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/dom/StringWriter.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	tinymce.create('tinymce.dom.StringWriter', {
 		str : null,
 		tags : null,
@@ -3564,29 +5421,11 @@ tinymce.create('static tinymce.util.XHR', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/dom/Serializer.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	// Shorten names
 	var extend = tinymce.extend, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher, isIE = tinymce.isIE, isGecko = tinymce.isGecko;
 
-	// Returns only attribites that have values not all attributes in IE
-	function getIEAtts(n) {
-		var o = [];
-
-		// Object will throw exception in IE
-		if (n.nodeName == 'OBJECT')
-			return n.attributes;
-
-		n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi, function(a, b) {
-			o.push({specified : 1, nodeName : b});
-		});
-
-		return o;
-	};
-
 	function wildcardToRE(s) {
 		return s.replace(/([?+*])/g, '.$1');
 	};
@@ -3599,16 +5438,11 @@ tinymce.create('static tinymce.util.XHR', {
 			t.onPreProcess = new Dispatcher(t);
 			t.onPostProcess = new Dispatcher(t);
 
-			if (tinymce.relaxedDomain &amp;&amp; tinymce.isGecko) {
-				// Gecko has a bug where we can't create a new XML document if domain relaxing is used
+			try {
+				t.writer = new tinymce.dom.XMLWriter();
+			} catch (ex) {
+				// IE might throw exception if ActiveX is disabled so we then switch to the slightly slower StringWriter
 				t.writer = new tinymce.dom.StringWriter();
-			} else {
-				try {
-					t.writer = new tinymce.dom.XMLWriter();
-				} catch (ex) {
-					// IE might throw exception if ActiveX is disabled so we then switch to the slightly slower StringWriter
-					t.writer = new tinymce.dom.StringWriter();
-				}
 			}
 
 			// Default settings
@@ -3621,11 +5455,12 @@ tinymce.create('static tinymce.util.XHR', {
 				closed : /(br|hr|input|meta|img|link|param)/,
 				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,
 				invalid_elements : 0,
-				fix_table_elements : 0,
+				fix_table_elements : 1,
 				fix_list_elements : true,
 				fix_content_duplication : true,
 				convert_fonts_to_spans : false,
@@ -3635,11 +5470,27 @@ tinymce.create('static tinymce.util.XHR', {
 				indent_mode : 'simple',
 				indent_char : '\t',
 				indent_levels : 1,
-				remove_linebreaks : 1
+				remove_linebreaks : 1,
+				remove_redundant_brs : 1,
+				element_format : 'xhtml'
 			}, s);
 
 			t.dom = s.dom;
 
+			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 XHTML element endings i.e. produce crap :) XHTML is better
+			if (s.element_format == 'html') {
+				t.onPostProcess.add(function(se, o) {
+					o.content = o.content.replace(/&lt;([^&gt;]+) \/&gt;/g, '&lt;$1&gt;');
+				});
+			}
+
 			if (s.fix_list_elements) {
 				t.onPreProcess.add(function(se, o) {
 					var nl, x, a = ['ol', 'ul'], i, n, p, r = /^(OL|UL)$/, np;
@@ -3682,41 +5533,8 @@ tinymce.create('static tinymce.util.XHR', {
 
 			if (s.fix_table_elements) {
 				t.onPreProcess.add(function(se, o) {
-					each(t.dom.select('table', o.node), function(e) {
-						var pa = t.dom.getParent(e, 'H1,H2,H3,H4,H5,H6,P'), pa2, n, tm, pl = [], i, ns;
-
-						if (pa) {
-							pa2 = pa.cloneNode(false);
-
-							pl.push(e);
-							for (n = e; n = n.parentNode;) {
-								pl.push(n);
-
-								if (n == pa)
-									break;
-							}
-
-							tm = pa2;
-							for (i = pl.length - 1; i &gt;= 0; i--) {
-								if (i == pl.length - 1) {
-									while (ns = pl[i - 1].nextSibling)
-										tm.appendChild(ns.parentNode.removeChild(ns));
-								} else {
-									n = pl[i].cloneNode(false);
-
-									if (i != 0) {
-										while (ns = pl[i - 1].nextSibling)
-											n.appendChild(ns.parentNode.removeChild(ns));
-									}
-
-									tm = tm.appendChild(n);
-								}
-							}
-
-							e = t.dom.insertAfter(e.parentNode.removeChild(e), pa);
-							t.dom.insertAfter(e, pa);
-							t.dom.insertAfter(pa2, e);
-						}
+					each(t.dom.select('p table', o.node), function(n) {
+						t.dom.split(t.dom.getParent(n, 'p'), n);
 					});
 				});
 			}
@@ -4076,7 +5894,8 @@ tinymce.create('static tinymce.util.XHR', {
 					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;pre[^&gt;]*&gt;)(.*?)(&lt;\/pre&gt;)/g, encode : 1},
+						{pattern : /(&lt;!--\[CDATA\[)(.*?)(\]\]--&gt;)/g}
 					]
 				});
 
@@ -4120,6 +5939,9 @@ tinymce.create('static tinymce.util.XHR', {
 
 				h = t._unprotect(h, p);
 
+				// Restore CDATA sections
+				h = h.replace(/&lt;!--\[CDATA\[([\s\S]+)\]\]--&gt;/g, '&lt;![CDATA[$1]]&gt;');
+
 				// 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;');
@@ -4227,7 +6049,7 @@ tinymce.create('static tinymce.util.XHR', {
 
 						// Add wild attributes
 						if (ru.validAttribsRE) {
-							at = isIE ? getIEAtts(n) : n.attributes;
+							at = t.dom.getAttribs(n);
 							for (i=at.length-1; i&gt;-1; i--) {
 								no = at[i];
 
@@ -4247,8 +6069,14 @@ tinymce.create('static tinymce.util.XHR', {
 						}
 
 						// Padd empty nodes with a &amp;nbsp;
-						if (!hc &amp;&amp; ru.padd)
-							w.writeText('\u00a0');
+						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
+							if (hc &amp;&amp; (cn = n.firstChild) &amp;&amp; cn.nodeType === 1 &amp;&amp; n.childNodes.length === 1) {
+								if (cn.hasAttribute ? cn.hasAttribute('mce_bogus') : cn.getAttribute('mce_bogus'))
+									w.writeText('\u00a0');
+							} else if (!hc)
+								w.writeText('\u00a0'); // No children then padd it
+						}
 
 						break;
 
@@ -4403,6 +6231,16 @@ tinymce.create('static tinymce.util.XHR', {
 
 			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':
@@ -4447,12 +6285,9 @@ tinymce.create('static tinymce.util.XHR', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/dom/ScriptLoader.js */
-
-(function() {
-	var each = tinymce.each;
+})(tinymce);
+(function(tinymce) {
+	var each = tinymce.each, Event = tinymce.dom.Event;
 
 	tinymce.create('tinymce.dom.ScriptLoader', {
 		ScriptLoader : function(s) {
@@ -4504,7 +6339,7 @@ tinymce.create('static tinymce.util.XHR', {
 			}
 
 			function loadScript(u) {
-				if (tinymce.dom.Event.domLoaded || t.settings.strict_mode) {
+				if (Event.domLoaded || t.settings.strict_mode) {
 					tinymce.util.XHR.send({
 						url : tinymce._addVer(u),
 						error : t.settings.error,
@@ -4606,6 +6441,12 @@ tinymce.create('static tinymce.util.XHR', {
 
 				o.state = 1; // Is loading
 
+				tinymce.dom.ScriptLoader.loadScript(o.url, function() {
+					done(o);
+					allDone();
+				});
+
+				/*
 				tinymce.util.XHR.send({
 					url : o.url,
 					error : t.settings.error,
@@ -4615,6 +6456,7 @@ tinymce.create('static tinymce.util.XHR', {
 						allDone();
 					}
 				});
+				*/
 			};
 
 			each(sc, function(o) {
@@ -4631,7 +6473,7 @@ tinymce.create('static tinymce.util.XHR', {
 				if (o.state &gt; 0)
 					return;
 
-				if (!tinymce.dom.Event.domLoaded &amp;&amp; !t.settings.strict_mode) {
+				if (!Event.domLoaded &amp;&amp; !t.settings.strict_mode) {
 					var ix, ol = '';
 
 					// Add onload events
@@ -4676,6 +6518,42 @@ tinymce.create('static tinymce.util.XHR', {
 			_onLoad : function(e, u, ix) {
 				if (!tinymce.isIE || e.readyState == 'complete')
 					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) {
+/*					Event.add(e, 'readystatechange', function(e) {
+						if (e.target &amp;&amp; e.target.readyState == 'complete')
+							done();
+					});*/
+
+					tinymce.util.XHR.send({
+						url : tinymce._addVer(u),
+						async : false,
+						success : function(co) {
+							window.execScript(co);
+							done();
+						}
+					});
+				} else {
+					e = tinymce.DOM.create('script', {id : id, type : 'text/javascript', src : tinymce._addVer(u)});
+					Event.add(e, 'load', done);
+
+					// Check for head or body
+					(document.getElementsByTagName('head')[0] || document.body).appendChild(e);
+				}
 			}
 		}
 
@@ -4683,11 +6561,8 @@ tinymce.create('static tinymce.util.XHR', {
 
 	// Global script loader
 	tinymce.ScriptLoader = new tinymce.dom.ScriptLoader();
-})();
-
-/* file:jscripts/tiny_mce/classes/ui/Control.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	// Shorten class names
 	var DOM = tinymce.DOM, is = tinymce.is;
 
@@ -4788,10 +6663,7 @@ tinymce.create('static tinymce.util.XHR', {
 		}
 
 		});
-})();
-/* file:jscripts/tiny_mce/classes/ui/Container.js */
-
-tinymce.create('tinymce.ui.Container:tinymce.ui.Control', {
+})(tinymce);tinymce.create('tinymce.ui.Container:tinymce.ui.Control', {
 	Container : function(id, s) {
 		this.parent(id, s);
 		this.controls = [];
@@ -4811,9 +6683,6 @@ tinymce.create('tinymce.ui.Container:tinymce.ui.Control', {
 
 	});
 
-
-/* file:jscripts/tiny_mce/classes/ui/Separator.js */
-
 tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 	Separator : function(id, s) {
 		this.parent(id, s);
@@ -4825,10 +6694,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 	}
 
 	});
-
-/* file:jscripts/tiny_mce/classes/ui/MenuItem.js */
-
-(function() {
+(function(tinymce) {
 	var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, walk = tinymce.walk;
 
 	tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control', {
@@ -4857,11 +6723,8 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/ui/Menu.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, walk = tinymce.walk;
 
 	tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem', {
@@ -4959,10 +6822,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		}
 
 		});
-})();
-/* file:jscripts/tiny_mce/classes/ui/DropMenu.js */
-
-(function() {
+})(tinymce);(function(tinymce) {
 	var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, Event = tinymce.dom.Event, Element = tinymce.dom.Element;
 
 	tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu', {
@@ -5245,7 +7105,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		},
 
 		_add : function(tb, o) {
-			var n, s = o.settings, a, ro, it, cp = this.classPrefix;
+			var n, s = o.settings, a, ro, it, cp = this.classPrefix, ic;
 
 			if (s.separator) {
 				ro = DOM.add(tb, 'tr', {id : o.id, 'class' : cp + 'ItemSeparator'});
@@ -5263,7 +7123,12 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 
 			DOM.addClass(it, s['class']);
 //			n = DOM.add(n, 'span', {'class' : 'item'});
-			DOM.add(n, 'span', {'class' : 'mceIcon' + (s.icon ? ' mce_' + s.icon : '')});
+
+			ic = DOM.add(n, 'span', {'class' : 'mceIcon' + (s.icon ? ' mce_' + s.icon : '')});
+
+			if (s.icon_src)
+				DOM.add(ic, 'img', {src : s.icon_src});
+
 			n = DOM.add(n, s.element || 'span', {'class' : 'mceText', title : o.settings.title}, o.settings.title);
 
 			if (o.settings.style)
@@ -5285,10 +7150,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		}
 
 		});
-})();
-/* file:jscripts/tiny_mce/classes/ui/Button.js */
-
-(function() {
+})(tinymce);(function(tinymce) {
 	var DOM = tinymce.DOM;
 
 	tinymce.create('tinymce.ui.Button:tinymce.ui.Control', {
@@ -5321,11 +7183,8 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/ui/ListBox.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher;
 
 	tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control', {
@@ -5341,34 +7200,57 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			t.classPrefix = 'mceListBox';
 		},
 
-		select : function(v) {
-			var t = this, e, fv;
+		select : function(va) {
+			var t = this, fv, f;
 
-			// Do we need to do something?
-			if (v != t.selectedValue) {
-				e = DOM.get(t.id + '_text');
-				t.selectedValue = v;
+			if (va == undefined)
+				return t.selectByIndex(-1);
+
+			// Is string or number make function selector
+			if (va &amp;&amp; va.call)
+				f = va;
+			else {
+				f = function(v) {
+					return v == va;
+				};
+			}
 
+			// Do we need to do something?
+			if (va != t.selectedValue) {
 				// Find item
-				each(t.items, function(o) {
-					if (o.value == v) {
-						DOM.setHTML(e, DOM.encode(o.title));
+				each(t.items, function(o, i) {
+					if (f(o.value)) {
 						fv = 1;
+						t.selectByIndex(i);
 						return false;
 					}
 				});
 
-				// If no item was found then present title
-				if (!fv) {
+				if (!fv)
+					t.selectByIndex(-1);
+			}
+		},
+
+		selectByIndex : function(idx) {
+			var t = this, e, o;
+
+			if (idx != t.selectedIndex) {
+				e = DOM.get(t.id + '_text');
+				o = t.items[idx];
+
+				if (o) {
+					t.selectedValue = o.value;
+					t.selectedIndex = idx;
+					DOM.setHTML(e, DOM.encode(o.title));
+					DOM.removeClass(e, 'mceTitle');
+				} else {
 					DOM.setHTML(e, DOM.encode(t.settings.title));
 					DOM.addClass(e, 'mceTitle');
-					e = 0;
-					return;
-				} else
-					DOM.removeClass(e, 'mceTitle');
-			}
+					t.selectedValue = t.selectedIndex = null;
+				}
 
-			e = 0;
+				e = 0;
+			}
 		},
 
 		add : function(n, v, o) {
@@ -5447,7 +7329,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			if (e &amp;&amp; e.type == &quot;mousedown&quot; &amp;&amp; (e.target.id == t.id + '_text' || e.target.id == t.id + '_open'))
 				return;
 
-			if (!e || !DOM.getParent(e.target, function(n) {return DOM.hasClass(n, 'mceMenu');})) {
+			if (!e || !DOM.getParent(e.target, '.mceMenu')) {
 				DOM.removeClass(t.id, t.classPrefix + 'Selected');
 				Event.remove(DOM.doc, 'mousedown', t.hideMenu, t);
 
@@ -5553,10 +7435,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		}
 
 		});
-})();
-/* file:jscripts/tiny_mce/classes/ui/NativeListBox.js */
-
-(function() {
+})(tinymce);(function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher;
 
 	tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox', {
@@ -5573,18 +7452,40 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			return DOM.get(this.id).disabled;
 		},
 
-		select : function(v) {
-			var e = DOM.get(this.id), ol = e.options;
+		select : function(va) {
+			var t = this, fv, f;
 
-			v = '' + (v || '');
+			if (va == undefined)
+				return t.selectByIndex(-1);
 
-			e.selectedIndex = 0;
-			each(ol, function(o, i) {
-				if (o.value == v) {
-					e.selectedIndex = i;
-					return false;
-				}
-			});
+			// Is string or number make function selector
+			if (va &amp;&amp; va.call)
+				f = va;
+			else {
+				f = function(v) {
+					return v == va;
+				};
+			}
+
+			// Do we need to do something?
+			if (va != t.selectedValue) {
+				// Find item
+				each(t.items, function(o, i) {
+					if (f(o.value)) {
+						fv = 1;
+						t.selectByIndex(i);
+						return false;
+					}
+				});
+
+				if (!fv)
+					t.selectByIndex(-1);
+			}
+		},
+
+		selectByIndex : function(idx) {
+			DOM.get(this.id).selectedIndex = idx + 1;
+			this.selectedValue = this.items[idx] ? this.items[idx].value : null;
 		},
 
 		add : function(n, v, a) {
@@ -5630,12 +7531,14 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			t.rendered = true;
 
 			function onChange(e) {
-				var v = e.target.options[e.target.selectedIndex].value;
+				var v = t.items[e.target.selectedIndex - 1];
 
-				t.onChange.dispatch(t, v);
+				if (v &amp;&amp; (v = v.value)) {
+					t.onChange.dispatch(t, v);
 
-				if (t.settings.onselect)
-					t.settings.onselect(v);
+					if (t.settings.onselect)
+						t.settings.onselect(v);
+				}
 			};
 
 			Event.add(t.id, 'change', onChange);
@@ -5661,10 +7564,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		}
 
 		});
-})();
-/* file:jscripts/tiny_mce/classes/ui/MenuButton.js */
-
-(function() {
+})(tinymce);(function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each;
 
 	tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button', {
@@ -5727,7 +7627,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			if (e &amp;&amp; e.type == &quot;mousedown&quot; &amp;&amp; DOM.getParent(e.target, function(e) {return e.id === t.id || e.id === t.id + '_open';}))
 				return;
 
-			if (!e || !DOM.getParent(e.target, function(n) {return DOM.hasClass(n, 'mceMenu');})) {
+			if (!e || !DOM.getParent(e.target, '.mceMenu')) {
 				t.setState('Selected', 0);
 				Event.remove(DOM.doc, 'mousedown', t.hideMenu, t);
 				if (t.menu)
@@ -5751,11 +7651,8 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/ui/SplitButton.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each;
 
 	tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton', {
@@ -5820,11 +7717,8 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/ui/ColorSplitButton.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, is = tinymce.is, each = tinymce.each;
 
 	tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton', {
@@ -5893,7 +7787,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 			if (e &amp;&amp; e.type == &quot;mousedown&quot; &amp;&amp; DOM.getParent(e.target, function(e) {return e.id === t.id + '_open';}))
 				return;
 
-			if (!e || !DOM.getParent(e.target, function(n) {return DOM.hasClass(n, 'mceSplitButtonMenu');})) {
+			if (!e || !DOM.getParent(e.target, '.mceSplitButtonMenu')) {
 				DOM.removeClass(t.id, 'mceSplitButtonSelected');
 				Event.remove(DOM.doc, 'mousedown', t.hideMenu, t);
 				Event.remove(t.id + '_menu', 'keydown', t._keyHandler);
@@ -5978,6 +7872,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 
 			t.parent();
 			DOM.add(id + '_action', 'div', {id : id + '_preview', 'class' : 'mceColorPreview'});
+			DOM.setStyle(t.id + '_preview', 'backgroundColor', t.value);
 		},
 
 		destroy : function() {
@@ -5989,10 +7884,7 @@ tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/ui/Toolbar.js */
-
+})(tinymce);
 tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 	renderHTML : function() {
 		var t = this, h = '', c, co, dom = tinymce.DOM, s = t.settings, i, pr, nx, cl;
@@ -6056,10 +7948,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 	}
 
 	});
-
-/* file:jscripts/tiny_mce/classes/AddOnManager.js */
-
-(function() {
+(function(tinymce) {
 	var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each;
 
 	tinymce.create('tinymce.AddOnManager', {
@@ -6073,18 +7962,15 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 		},
 
 		requireLangPack : function(n) {
-			var u, s;
+			var u, s = tinymce.EditorManager.settings;
 
-			if (tinymce.EditorManager.settings) {
-				u = this.urls[n] + '/langs/' + tinymce.EditorManager.settings.language + '.js';
-				s = tinymce.EditorManager.settings;
+			if (s &amp;&amp; s.language) {
+				u = this.urls[n] + '/langs/' + s.language + '.js';
 
-				if (s) {
-					if (!tinymce.dom.Event.domLoaded &amp;&amp; !s.strict_mode)
-						tinymce.ScriptLoader.load(u);
-					else
-						tinymce.ScriptLoader.add(u);
-				}
+				if (!tinymce.dom.Event.domLoaded &amp;&amp; !s.strict_mode)
+					tinymce.ScriptLoader.load(u);
+				else
+					tinymce.ScriptLoader.add(u);
 			}
 		},
 
@@ -6114,10 +8000,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 	// Create plugin and theme managers
 	tinymce.PluginManager = new tinymce.AddOnManager();
 	tinymce.ThemeManager = new tinymce.AddOnManager();
-}());
-/* file:jscripts/tiny_mce/classes/EditorManager.js */
-
-(function() {
+}(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;
 
@@ -6137,9 +8020,9 @@ 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);
 
-			// Setup document domain
-			if (tinymce.EditorManager.baseURI.host != lo.hostname &amp;&amp; lo.hostname)
-				document.domain = tinymce.relaxedDomain = lo.hostname.replace(/.*\.(.+\..+)$/, '$1');
+			// 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
@@ -6153,7 +8036,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 		},
 
 		init : function(s) {
-			var t = this, pl, sl = tinymce.ScriptLoader, c, e;
+			var t = this, pl, sl = tinymce.ScriptLoader, c, e, el = [], ed;
 
 			function execCallback(se, n, s) {
 				var f = se[n];
@@ -6259,9 +8142,11 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 
 						if(l.length &gt; 0) {
 							each(explode(l), function(v) {
-								if (DOM.get(v))
-									new tinymce.Editor(v, s).render(1);
-								else {
+								if (DOM.get(v)) {
+									ed = new tinymce.Editor(v, s);
+									el.push(ed);
+									ed.render(1);
+								} else {
 									c = 0;
 
 									each(document.forms, function(f) {
@@ -6269,7 +8154,10 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 											if (e.name === v) {
 												v = 'mce_editor_' + c;
 												DOM.setAttrib(e, 'id', v);
-												new tinymce.Editor(v, s).render(1);
+
+												ed = new tinymce.Editor(v, s);
+												el.push(ed);
+												ed.render(1);
 											}
 										});
 									});
@@ -6298,7 +8186,9 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 								if (!v.id || t.get(v.id))
 									v.id = DOM.uniqueId();
 
-								new tinymce.Editor(v.id, s).render(1);
+								ed = new tinymce.Editor(v.id, s);
+								el.push(ed);
+								ed.render(1);
 							}
 						});
 						break;
@@ -6308,7 +8198,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 				if (s.oninit) {
 					l = co = 0;
 
-					each (t.editors, function(ed) {
+					each (el, function(ed) {
 						co++;
 
 						if (!ed.initialized) {
@@ -6414,7 +8304,9 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 
 				case &quot;mceRemoveEditor&quot;:
 				case &quot;mceRemoveControl&quot;:
-					ed.remove();
+					if (ed)
+						ed.remove();
+
 					return true;
 
 				case 'mceToggleEditor':
@@ -6483,14 +8375,11 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
 		});
 
 	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;
-
-/* file:jscripts/tiny_mce/classes/Editor.js */
-
-(function() {
+(function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, Dispatcher = tinymce.util.Dispatcher;
 	var each = tinymce.each, isGecko = tinymce.isGecko, isIE = tinymce.isIE, isWebKit = tinymce.isWebKit;
 	var is = tinymce.is, ThemeManager = tinymce.ThemeManager, PluginManager = tinymce.PluginManager, EditorManager = tinymce.EditorManager;
@@ -6582,13 +8471,16 @@ 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],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[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',
 				hidden_input : 1,
 				padd_empty_editor : 1,
 				render_ui : 1,
 				init_theme : 1,
 				force_p_newlines : 1,
-				indentation : '30px'
+				indentation : '30px',
+				keep_styles : 1,
+				fix_table_elements : 1,
+				removeformat_selector : 'span,b,strong,em,i,font,u,strike'
 			}, s);
 
 			// Setup URIs
@@ -6631,7 +8523,8 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			if (!/TEXTAREA|INPUT/i.test(t.getElement().nodeName) &amp;&amp; s.hidden_input &amp;&amp; DOM.getParent(id, 'form'))
 				DOM.insertAfter(DOM.create('input', {type : 'hidden', name : id}), id);
 
-			t.windowManager = new tinymce.WindowManager(t);
+			if (tinymce.WindowManager)
+				t.windowManager = new tinymce.WindowManager(t);
 
 			if (s.encoding == 'xml') {
 				t.onGetContent.add(function(ed, o) {
@@ -6649,7 +8542,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				});
 			}
 
-			if (s.add_unload_trigger &amp;&amp; !s.ask) {
+			if (s.add_unload_trigger) {
 				t._beforeUnload = tinyMCE.onBeforeUnload.add(function() {
 					if (t.initialized &amp;&amp; !t.destroyed &amp;&amp; !t.isHidden())
 						t.save({format : 'raw', no_events : true});
@@ -6691,7 +8584,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				if (s.language)
 					sl.add(tinymce.baseURL + '/langs/' + s.language + '.js');
 
-				if (s.theme.charAt(0) != '-' &amp;&amp; !ThemeManager.urls[s.theme])
+				if (s.theme &amp;&amp; s.theme.charAt(0) != '-' &amp;&amp; !ThemeManager.urls[s.theme])
 					ThemeManager.load(s.theme, 'themes/' + s.theme + '/editor_template' + tinymce.suffix + '.js');
 
 				each(explode(s.plugins), function(p) {
@@ -6706,23 +8599,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 				// Init when que is loaded
 				sl.loadQueue(function() {
-					if (s.ask) {
-						function ask() {
-							// Yield for awhile to avoid focus bug on FF 3 when cancel is pressed
-							window.setTimeout(function() {
-								Event.remove(t.id, 'focus', ask);
-
-								t.windowManager.confirm(t.getLang('edit_confirm'), function(s) {
-									if (s)
-										t.init();
-								});
-							}, 0);
-						};
-
-						Event.add(t.id, 'focus', ask);
-						return;
-					}
-
 					if (!t.removed)
 						t.init();
 				});
@@ -6742,12 +8618,14 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			EditorManager.add(t);
 
 			// Create theme
-			s.theme = s.theme.replace(/-/, '');
-			o = ThemeManager.get(s.theme);
-			t.theme = new o();
+			if (s.theme) {
+				s.theme = s.theme.replace(/-/, '');
+				o = ThemeManager.get(s.theme);
+				t.theme = new o();
 
-			if (t.theme.init &amp;&amp; s.init_theme)
-				t.theme.init(t, ThemeManager.urls[s.theme] || tinymce.documentBaseURL.replace(/\/$/, ''));
+				if (t.theme.init &amp;&amp; s.init_theme)
+					t.theme.init(t, ThemeManager.urls[s.theme] || tinymce.documentBaseURL.replace(/\/$/, ''));
+			}
 
 			// Create all plugins
 			each(explode(s.plugins.replace(/\-/g, '')), function(p) {
@@ -6764,10 +8642,12 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			});
 
 			// Setup popup CSS path(s)
-			if (s.popup_css)
-				s.popup_css = t.documentBaseURI.toAbsolute(s.popup_css);
-			else
-				s.popup_css = t.baseURI.toAbsolute(&quot;themes/&quot; + s.theme + &quot;/skins/&quot; + s.skin + &quot;/dialog.css&quot;);
+			if (s.popup_css !== false) {
+				if (s.popup_css)
+					s.popup_css = t.documentBaseURI.toAbsolute(s.popup_css);
+				else
+					s.popup_css = t.baseURI.toAbsolute(&quot;themes/&quot; + s.theme + &quot;/skins/&quot; + s.skin + &quot;/dialog.css&quot;);
+			}
 
 			if (s.popup_css_add)
 				s.popup_css += ',' + t.documentBaseURI.toAbsolute(s.popup_css_add);
@@ -6843,14 +8723,14 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				t.editorContainer = o.editorContainer;
 			}
 
-			
+
 			// Resize editor
 			DOM.setStyles(o.sizeContainer || o.editorContainer, {
 				width : w,
 				height : h
 			});
 
-			h = (o.iframeHeight || h) + ((h + '').indexOf('%') == -1 ? (o.deltaHeight || 0) : '');
+			h = (o.iframeHeight || h) + (typeof(h) == 'number' ? (o.deltaHeight || 0) : '');
 			if (h &lt; 100)
 				h = 100;
 
@@ -6877,7 +8757,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			// Domain relaxing enabled, then set document domain
 			if (tinymce.relaxedDomain) {
 				// We need to write the contents here in IE since multiple writes messes up refresh button and back button
-				if (isIE)
+				if (isIE || (tinymce.isOpera &amp;&amp; parseFloat(opera.version()) &gt;= 9.5))
 					u = 'javascript:(function(){document.open();document.domain=&quot;' + document.domain + '&quot;;var ed = window.parent.tinyMCE.get(&quot;' + t.id + '&quot;);document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';
 				else if (tinymce.isOpera)
 					u = 'javascript:(function(){document.open();document.domain=&quot;' + document.domain + '&quot;;document.close();ed.setupIframe();})()';					
@@ -6898,16 +8778,10 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			DOM.get(o.editorContainer).style.display = t.orgDisplay;
 			DOM.get(t.id).style.display = 'none';
 
-			// Safari 2.x requires us to wait for the load event and load a real HTML doc
-			if (tinymce.isOldWebKit) {
-				Event.add(n, 'load', t.setupIframe, t);
-				n.src = tinymce.baseURL + '/plugins/safari/blank.htm';
-			} else {
-				if (!isIE || !tinymce.relaxedDomain)
-					t.setupIframe();
+			if (!isIE || !tinymce.relaxedDomain)
+				t.setupIframe();
 
-				e = n = o = null; // Cleanup
-			}
+			e = n = o = null; // Cleanup
 		},
 
 		setupIframe : function() {
@@ -6923,7 +8797,8 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			// Design mode needs to be added here Ctrl+A will fail otherwise
 			if (!isIE) {
 				try {
-					d.designMode = 'On';
+					if (!s.readonly)
+						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
@@ -6935,7 +8810,10 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				// It will not steal focus if we hide it while setting contentEditable
 				b = t.getBody();
 				DOM.hide(b);
-				b.contentEditable = true;
+
+				if (!s.readonly)
+					b.contentEditable = true;
+
 				DOM.show(b);
 			}
 
@@ -6965,6 +8843,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				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
 			});
 
@@ -6988,7 +8867,8 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			if (!s.gecko_spellcheck)
 				t.getBody().spellcheck = 0;
 
-			t._addEvents();
+			if (!s.readonly)
+				t._addEvents();
 
 			t.controlManager.onPostRender.dispatch(t, t.controlManager);
 			t.onPostRender.dispatch(t);
@@ -7138,22 +9018,39 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				});
 			}
 
+			// Add visual aids when new contents is added
 			t.onSetContent.add(function() {
-				// Safari needs some time, it will crash the browser when a link is created otherwise
-				// I think this crash issue is resolved in the latest 3.0.4
-				//window.setTimeout(function() {
-					t.addVisual(t.getBody());
-				//}, 1);
+				t.addVisual(t.getBody());
 			});
 
 			// Remove empty contents
 			if (s.padd_empty_editor) {
 				t.onPostProcess.add(function(ed, o) {
-					o.content = o.content.replace(/^(&lt;p&gt;(&amp;nbsp;|&amp;#160;|\s|\u00a0|)&lt;\/p&gt;[\r\n]*|&lt;br \/&gt;[\r\n]*)$/, '');
+					o.content = o.content.replace(/^(&lt;p[^&gt;]*&gt;(&amp;nbsp;|&amp;#160;|\s|\u00a0|)&lt;\/p&gt;[\r\n]*|&lt;br \/&gt;[\r\n]*)$/, '');
 				});
 			}
 
+			// 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) {
+				function fixLinks(ed, o) {
+					each(ed.dom.select('a'), function(n) {
+						var pn = n.parentNode;
+
+						if (ed.dom.isBlock(pn) &amp;&amp; pn.lastChild === n)
+							ed.dom.add(pn, 'br', {'mce_bogus' : 1});
+					});
+				};
+
+				t.onExecCommand.add(function(ed, cmd) {
+					if (cmd === 'CreateLink')
+						fixLinks(ed);
+				});
+
+				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
@@ -7203,7 +9100,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			e = null;
 		},
 
-		
+
 		focus : function(sf) {
 			var oed, t = this, ce = t.settings.content_editable;
 
@@ -7214,7 +9111,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				if (!ce &amp;&amp; (!isIE || t.selection.getNode().ownerDocument != t.getDoc()))
 					t.getWin().focus();
 
-							}
+			}
 
 			if (EditorManager.activeEditor != t) {
 				if ((oed = EditorManager.activeEditor) != null)
@@ -7250,7 +9147,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		},
 
 		translate : function(s) {
-			var c = this.settings.language, i18n = EditorManager.i18n;
+			var c = this.settings.language || 'en', i18n = EditorManager.i18n;
 
 			if (!s)
 				return '';
@@ -7261,7 +9158,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		},
 
 		getLang : function(n, dv) {
-			return EditorManager.i18n[this.settings.language + '.' + n] || (is(dv) ? dv : '{#' + n + '}');
+			return EditorManager.i18n[(this.settings.language || 'en') + '.' + n] || (is(dv) ? dv : '{#' + n + '}');
 		},
 
 		getParam : function(n, dv, ty) {
@@ -7417,7 +9314,13 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				return true;
 
 			// Theme commands
-			if (t.theme.execCommand &amp;&amp; t.theme.execCommand(cmd, ui, val)) {
+			if (t.theme &amp;&amp; t.theme.execCommand &amp;&amp; t.theme.execCommand(cmd, ui, val)) {
+				t.onExecCommand.dispatch(t, cmd, ui, val, a);
+				return true;
+			}
+
+			// Execute global commands
+			if (tinymce.GlobalCommands.execCommand(t, cmd, ui, val)) {
 				t.onExecCommand.dispatch(t, cmd, ui, val, a);
 				return true;
 			}
@@ -7531,24 +9434,27 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		load : function(o) {
 			var t = this, e = t.getElement(), h;
 
-			o = o || {};
-			o.load = true;
+			if (e) {
+				o = o || {};
+				o.load = true;
 
-			h = t.setContent(is(e.value) ? e.value : e.innerHTML, o);
-			o.element = e;
+				// Double encode existing entities in the value
+				h = t.setContent(is(e.value) ? e.value : e.innerHTML, o);
+				o.element = e;
 
-			if (!o.no_events)
-				t.onLoadContent.dispatch(t, o);
+				if (!o.no_events)
+					t.onLoadContent.dispatch(t, o);
 
-			o.element = e = null;
+				o.element = e = null;
 
-			return h;
+				return h;
+			}
 		},
 
 		save : function(o) {
 			var t = this, e = t.getElement(), h, f;
 
-			if (!t.initialized)
+			if (!e || !t.initialized)
 				return;
 
 			o = o || {};
@@ -7787,7 +9693,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				tinyMCE.onBeforeUnload.remove(t._beforeUnload);
 
 				// Manual destroy
-				if (t.theme.destroy)
+				if (t.theme &amp;&amp; t.theme.destroy)
 					t.theme.destroy();
 
 				// Destroy controls, selection and dom
@@ -7907,7 +9813,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				t.focus(true);
 			});
 
-			
+
 			// Fixes bug where a specified document_base_uri could result in broken images
 			// This will also fix drag drop of images in Gecko
 			if (tinymce.isGecko) {
@@ -7936,7 +9842,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				function setOpts() {
 					var t = this, d = t.getDoc(), s = t.settings;
 
-					if (isGecko) {
+					if (isGecko &amp;&amp; !s.readonly) {
 						if (t._isHidden()) {
 							try {
 								if (!s.content_editable)
@@ -7971,7 +9877,9 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			t.onMouseUp.add(t.nodeChanged);
 			t.onClick.add(t.nodeChanged);
 			t.onKeyUp.add(function(ed, e) {
-				if ((e.keyCode &gt;= 33 &amp;&amp; e.keyCode &lt;= 36) || (e.keyCode &gt;= 37 &amp;&amp; e.keyCode &lt;= 40) || e.keyCode == 13 || e.keyCode == 45 || e.keyCode == 46 || e.keyCode == 8 || e.ctrlKey)
+				var c = e.keyCode;
+
+				if ((c &gt;= 33 &amp;&amp; c &lt;= 36) || (c &gt;= 37 &amp;&amp; c &lt;= 40) || c == 13 || c == 45 || c == 46 || c == 8 || (tinymce.isMac &amp;&amp; (c == 91 || c == 93)) || e.ctrlKey)
 					t.nodeChanged();
 			});
 
@@ -7980,84 +9888,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				t.setContent(t.startContent, {format : 'raw'});
 			});
 
-			if (t.getParam('tab_focus')) {
-				function tabCancel(ed, e) {
-					if (e.keyCode === 9)
-						return Event.cancel(e);
-				};
-
-				function tabHandler(ed, e) {
-					var x, i, f, el, v;
-
-					function find(d) {
-						f = DOM.getParent(ed.id, 'form');
-						el = f.elements;
-
-						if (f) {
-							each(el, function(e, i) {
-								if (e.id == ed.id) {
-									x = i;
-									return false;
-								}
-							});
-
-							if (d &gt; 0) {
-								for (i = x + 1; i &lt; el.length; i++) {
-									if (el[i].type != 'hidden')
-										return el[i];
-								}
-							} else {
-								for (i = x - 1; i &gt;= 0; i--) {
-									if (el[i].type != 'hidden')
-										return el[i];
-								}
-							}
-						}
-
-						return null;
-					};
-
-					if (e.keyCode === 9) {
-						v = explode(ed.getParam('tab_focus'));
-
-						if (v.length == 1) {
-							v[1] = v[0];
-							v[0] = ':prev';
-						}
-
-						// Find element to focus
-						if (e.shiftKey) {
-							if (v[0] == ':prev')
-								el = find(-1);
-							else
-								el = DOM.get(v[0]);
-						} else {
-							if (v[1] == ':next')
-								el = find(1);
-							else
-								el = DOM.get(v[1]);
-						}
-
-						if (el) {
-							if (ed = EditorManager.get(el.id || el.name))
-								ed.focus();
-							else
-								window.setTimeout(function() {window.focus();el.focus();}, 10);
-
-							return Event.cancel(e);
-						}
-					}
-				};
-
-				t.onKeyUp.add(tabCancel);
-
-				if (isGecko) {
-					t.onKeyPress.add(tabHandler);
-					t.onKeyDown.add(tabCancel);
-				} else
-					t.onKeyDown.add(tabHandler);
-			}
-
 			// Add shortcuts
 			if (s.custom_shortcuts) {
 				if (s.custom_undo_redo_keyboard_shortcuts) {
@@ -8087,7 +9917,9 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 						return v;
 
 					each(t.shortcuts, function(o) {
-						if (o.ctrl != e.ctrlKey &amp;&amp; (!tinymce.isMac || o.ctrl == e.metaKey))
+						if (tinymce.isMac &amp;&amp; o.ctrl != e.metaKey)
+							return;
+						else if (!tinymce.isMac &amp;&amp; o.ctrl != e.ctrlKey)
 							return;
 
 						if (o.alt != e.altKey)
@@ -8329,104 +10161,49 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			if (cl = s.font_size_classes)
 				cl = explode(cl);
 
-			function convertToFonts(no) {
-				var n, f, nl, x, i, v, st;
+			function process(no) {
+				var n, sp, nl, x;
 
-				// Convert spans to fonts on non WebKit browsers
-				if (tinymce.isWebKit || !s.inline_styles)
+				// Keep unit tests happy
+				if (!s.inline_styles)
 					return;
 
-				nl = t.dom.select('span', no);
+				nl = t.dom.select('font', no);
 				for (x = nl.length - 1; x &gt;= 0; x--) {
 					n = nl[x];
 
-					f = dom.create('font', {
-						color : dom.toHex(dom.getStyle(n, 'color')),
-						face : dom.getStyle(n, 'fontFamily'),
+					sp = dom.create('span', {
 						style : dom.getAttrib(n, 'style'),
 						'class' : dom.getAttrib(n, 'class')
 					});
 
-					// Clear color and font family
-					st = f.style;
-					if (st.color || st.fontFamily) {
-						st.color = st.fontFamily = '';
-						dom.setAttrib(f, 'mce_style', ''); // Remove cached style data
-					}
-
-					if (sl) {
-						i = inArray(sl, dom.getStyle(n, 'fontSize'));
-
-						if (i != -1) {
-							dom.setAttrib(f, 'size', '' + (i + 1 || 1));
-							//f.style.fontSize = '';
-						}
-					} else if (cl) {
-						i = inArray(cl, dom.getAttrib(n, 'class'));
-						v = dom.getStyle(n, 'fontSize');
-
-						if (i == -1 &amp;&amp; v.indexOf('pt') &gt; 0)
-							i = inArray(fz, parseInt(v));
-
-						if (i == -1)
-							i = inArray(fzn, v);
-
-						if (i != -1) {
-							dom.setAttrib(f, 'size', '' + (i + 1 || 1));
-							f.style.fontSize = '';
-						}
-					}
+					dom.setStyles(sp, {
+						fontFamily : dom.getAttrib(n, 'face'),
+						color : dom.getAttrib(n, 'color'),
+						backgroundColor : n.style.backgroundColor
+					});
 
-					if (f.color || f.face || f.size) {
-						f.style.fontFamily = '';
-						dom.setAttrib(f, 'mce_style', '');
-						dom.replace(f, n, 1);
+					if (n.size) {
+						if (sl)
+							dom.setStyle(sp, 'fontSize', sl[parseInt(n.size) - 1]);
+						else
+							dom.setAttrib(sp, 'class', cl[parseInt(n.size) - 1]);
 					}
 
-					f = n = null;
+					dom.setAttrib(sp, 'mce_style', '');
+					dom.replace(sp, n, 1);
 				}
 			};
 
-			// Run on setup
-			t.onSetContent.add(function(ed, o) {
-				convertToFonts(ed.getBody());
-			});
-
 			// Run on cleanup
 			t.onPreProcess.add(function(ed, o) {
-				var n, sp, nl, x;
-
-				// Keep unit tests happy
-				if (!s.inline_styles)
-					return;
-
-				if (o.get) {
-					nl = t.dom.select('font', o.node);
-					for (x = nl.length - 1; x &gt;= 0; x--) {
-						n = nl[x];
-
-						sp = dom.create('span', {
-							style : dom.getAttrib(n, 'style'),
-							'class' : dom.getAttrib(n, 'class')
-						});
-
-						dom.setStyles(sp, {
-							fontFamily : dom.getAttrib(n, 'face'),
-							color : dom.getAttrib(n, 'color'),
-							backgroundColor : n.style.backgroundColor
-						});
-
-						if (n.size) {
-							if (sl)
-								dom.setStyle(sp, 'fontSize', sl[parseInt(n.size) - 1]);
-							else
-								dom.setAttrib(sp, 'class', cl[parseInt(n.size) - 1]);
-						}
+				if (o.get)
+					process(o.node);
+			});
 
-						dom.setAttrib(sp, 'mce_style', '');
-						dom.replace(sp, n, 1);
-					}
-				}
+			t.onSetContent.add(function(ed, o) {
+				if (o.initial)
+					process(o.node);
 			});
 		},
 
@@ -8493,11 +10270,8 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/EditorCommands.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	var each = tinymce.each, isIE = tinymce.isIE, isGecko = tinymce.isGecko, isOpera = tinymce.isOpera, isWebKit = tinymce.isWebKit;
 
 	tinymce.create('tinymce.EditorCommands', {
@@ -8509,23 +10283,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			var t = this, ed = t.editor, f;
 
 			switch (cmd) {
-				case 'Cut':
-				case 'Copy':
-				case 'Paste':
-					try {
-						ed.getDoc().execCommand(cmd, ui, val);
-					} catch (ex) {
-						if (isGecko) {
-							ed.windowManager.confirm(ed.getLang('clipboard_msg'), function(s) {
-								if (s)
-									window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html', 'mceExternal');
-							});
-						} else
-							ed.windowManager.alert(ed.getLang('clipboard_no_support'));
-					}
-
-					return true;
-
 				// Ignore these
 				case 'mceResetDesignMode':
 				case 'mceBeginUndoLevel':
@@ -8544,11 +10301,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 					t.mceJustify(cmd, cmd.substring(7).toLowerCase());
 					return true;
 
-				case 'mceEndUndoLevel':
-				case 'mceAddUndoLevel':
-					ed.undoManager.add();
-					return true;
-
 				default:
 					f = this[cmd];
 
@@ -8570,7 +10322,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			iv = parseInt(iv);
 
 			if (ed.settings.inline_styles &amp;&amp; (!this.queryStateInsertUnorderedList() &amp;&amp; !this.queryStateInsertOrderedList())) {
-				each(this._getSelectedBlocks(), function(e) {
+				each(s.getSelectedBlocks(), function(e) {
 					d.setStyle(e, 'paddingLeft', (parseInt(e.style.paddingLeft || 0) + iv) + iu);
 				});
 
@@ -8597,7 +10349,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			iv = parseInt(iv);
 
 			if (ed.settings.inline_styles &amp;&amp; (!this.queryStateInsertUnorderedList() &amp;&amp; !this.queryStateInsertOrderedList())) {
-				each(this._getSelectedBlocks(), function(e) {
+				each(s.getSelectedBlocks(), function(e) {
 					v = Math.max(0, parseInt(e.style.paddingLeft || 0) - iv);
 					d.setStyle(e, 'paddingLeft', v ? v + iu : '');
 				});
@@ -8608,13 +10360,14 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			ed.getDoc().execCommand('Outdent', false, null);
 		},
 
+/*
 		mceSetAttribute : function(u, v) {
 			var ed = this.editor, d = ed.dom, e;
 
 			if (e = d.getParent(ed.selection.getNode(), d.isBlock))
 				d.setAttrib(e, v.name, v.value);
 		},
-
+*/
 		mceSetContent : function(u, v) {
 			this.editor.setContent(v);
 		},
@@ -8646,9 +10399,8 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 			if (!e) {
 				ed.execCommand('CreateLink', false, 'javascript:mctmp(0);');
-				each(ed.dom.select('a'), function(e) {
-					if (e.href == 'javascript:mctmp(0);')
-						set(e);
+				each(ed.dom.select('a[href=javascript:mctmp(0);]'), function(e) {
+					set(e);
 				});
 			} else {
 				if (v.href)
@@ -8674,46 +10426,32 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			if (!v) {
 				if (s.isCollapsed())
 					s.select(s.getNode());
-
-				t.RemoveFormat();
-			} else
-				ed.getDoc().execCommand('FontName', false, v);
+			} else {
+				if (ed.settings.convert_fonts_to_spans)
+					t._applyInlineStyle('span', {style : {fontFamily : v}});
+				else
+					ed.getDoc().execCommand('FontName', false, v);
+			}
 		},
 
 		FontSize : function(u, v) {
-			var ed = this.editor, s = ed.settings, fz = tinymce.explode(s.font_size_style_values), fzc = tinymce.explode(s.font_size_classes), h, bm;
+			var ed = this.editor, s = ed.settings, fc, fs;
 
-			// Remove style sizes
-			each(ed.dom.select('font'), function(e) {
-				e.style.fontSize = '';
-			});
+			// Use style options instead
+			if (s.convert_fonts_to_spans &amp;&amp; v &gt;= 1 &amp;&amp; v &lt;= 7) {
+				fs = tinymce.explode(s.font_size_style_values);
+				fc = tinymce.explode(s.font_size_classes);
 
-			// Let the browser add new size it will remove unneded ones in some browsers
-			ed.getDoc().execCommand('FontSize', false, v);
-
-			// Add style values
-			if (s.inline_styles) {
-				each(ed.dom.select('font'), function(e) {
-					// Try remove redundant font elements
-					if (e.parentNode.nodeName == 'FONT' &amp;&amp; e.size == e.parentNode.size) {
-						if (!bm)
-							bm = ed.selection.getBookmark();
-
-						ed.dom.remove(e, 1);
-						return;
-					}
-
-					// Setup font size based on font size value
-					if (v = e.size) {
-						if (fzc &amp;&amp; fzc.length &gt; 0)
-							ed.dom.setAttrib(e, 'class', fzc[parseInt(v) - 1]);
-						else
-							ed.dom.setStyle(e, 'fontSize', fz[parseInt(v) - 1]);
-					}
-				});
+				if (fc)
+					v = fc[v - 1] || v;
+				else
+					v = fs[v - 1] || v;
 			}
 
-			ed.selection.moveToBookmark(bm);
+			if (v &gt;= 1 &amp;&amp; v &lt;= 7)
+				ed.getDoc().execCommand('FontSize', false, v);
+			else
+				this._applyInlineStyle('span', {style : {fontSize : v}});
 		},
 
 		queryCommandValue : function(c) {
@@ -8763,14 +10501,17 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 		queryValueFontSize : function() {
 			var ed = this.editor, v = 0, p;
 
-			if (isOpera || isWebKit) {
+			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'))
 					v = p.size;
 
 				return v;
 			}
 
-			return this._queryVal('FontSize');
+			return v || this._queryVal('FontSize');
 		},
 
 		queryValueFontName : function() {
@@ -8779,6 +10520,9 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			if (p = ed.dom.getParent(ed.selection.getNode(), 'FONT'))
 				v = p.face;
 
+			if (p = ed.dom.getParent(ed.selection.getNode(), 'SPAN'))
+				v = p.style.fontFamily.replace(/, /g, ',').replace(/[\'\&quot;]/g, '').toLowerCase();
+
 			if (!v)
 				v = this._queryVal('FontName');
 
@@ -8799,7 +10543,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 				if (rm) {
 					if (v == 'center')
-						dom.setStyle(n.parentNode, 'textAlign', '');
+						dom.setStyle(bl || n.parentNode, 'textAlign', '');
 
 					dom.setStyle(n, 'float', '');
 					this.mceRepaint();
@@ -8808,7 +10552,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 				if (v == 'center') {
 					// Do not change table elements
-					if (/^(TD|TH)$/.test(bl.nodeName))
+					if (bl &amp;&amp; /^(TD|TH)$/.test(bl.nodeName))
 						bl = 0;
 
 					if (!bl || bl.childNodes.length &gt; 1) {
@@ -8829,7 +10573,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 					dom.setStyle(n, 'float', '');
 				} else {
 					dom.setStyle(n, 'float', v);
-					dom.setStyle(n.parentNode, 'textAlign', '');
+					dom.setStyle(bl || n.parentNode, 'textAlign', '');
 				}
 
 				this.mceRepaint();
@@ -8841,7 +10585,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				if (rm)
 					v = '';
 
-				each(this._getSelectedBlocks(dom.getParent(se.getStart(), dom.isBlock), dom.getParent(se.getEnd(), dom.isBlock)), function(e) {
+				each(se.getSelectedBlocks(dom.getParent(se.getStart(), dom.isBlock), dom.getParent(se.getEnd(), dom.isBlock)), function(e) {
 					dom.setAttrib(e, 'align', '');
 					dom.setStyle(e, 'textAlign', v == 'full' ? 'justify' : v);
 				});
@@ -8912,7 +10656,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				}
 			} else {
 				function getParent(n) {
-					return dom.getParent(n, function(n) {return n.nodeType == 1;});
+					return dom.getParent(n, '*');
 				};
 
 				sc = r.startContainer;
@@ -8970,27 +10714,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			return null;
 		},
 
-		InsertHorizontalRule : function() {
-			// Fix for Gecko &lt;hr size=&quot;1&quot; /&gt; issue and IE bug rep(/&lt;a.*?href=\&quot;(.*?)\&quot;.*?&gt;(.*?)&lt;\/a&gt;/gi,&quot;[url=$1]$2[/url]&quot;);
-			if (isGecko || isIE)
-				this.editor.selection.setContent('&lt;hr /&gt;');
-			else
-				this.editor.getDoc().execCommand('InsertHorizontalRule', false, '');
-		},
-
-		RemoveFormat : function() {
-			var t = this, ed = t.editor, s = ed.selection, b;
-
-			// Safari breaks tables
-			if (isWebKit)
-				s.setContent(s.getContent({format : 'raw'}).replace(/(&lt;(span|b|i|strong|em|strike) [^&gt;]+&gt;|&lt;(span|b|i|strong|em|strike)&gt;|&lt;\/(span|b|i|strong|em|strike)&gt;|)/g, ''), {format : 'raw'});
-			else
-				ed.getDoc().execCommand('RemoveFormat', false, null);
-
-			t.mceSetStyleInfo(0, {command : 'removeformat'});
-			ed.addVisual();
-		},
-
 		mceSetStyleInfo : function(u, v) {
 			var t = this, ed = t.editor, d = ed.getDoc(), dom = ed.dom, e, b, s = ed.selection, nn = v.wrapper || 'span', b = s.getBookmark(), re;
 
@@ -9015,12 +10738,12 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				re = new RegExp(re, 'i');
 
 			// Set style info on selected element
-			if (e = t.getSelectedElement())
+			if ((e = t.getSelectedElement()) &amp;&amp; !ed.settings.force_span_wrappers)
 				set(e, 1);
 			else {
 				// Generate wrappers and set styles on them
 				d.execCommand('FontName', false, '__');
-				each(isWebKit ? dom.select('span') : dom.select('font'), function(n) {
+				each(dom.select('span,font'), function(n) {
 					var sp, e;
 
 					if (dom.getAttrib(n, 'face') == '__' || n.style.fontFamily === '__') {
@@ -9044,9 +10767,7 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				// Check if it's an old span in a new wrapper
 				if (!dom.getAttrib(n, 'mce_new')) {
 					// Find new wrapper
-					p = dom.getParent(n, function(n) {
-						return n.nodeType == 1 &amp;&amp; dom.getAttrib(n, 'mce_new');
-					});
+					p = dom.getParent(n, '*[mce_new]');
 
 					if (p)
 						dom.remove(n, 1);
@@ -9060,6 +10781,9 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				if (!p || !dom.getAttrib(n, 'mce_new'))
 					return;
 
+				if (ed.settings.force_span_wrappers &amp;&amp; p.nodeName != 'SPAN')
+					return;
+
 				// Has parent of the same type and only child
 				if (p.nodeName == nn.toUpperCase() &amp;&amp; p.childNodes.length == 1)
 					return dom.remove(p, 1);
@@ -9107,9 +10831,24 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			return this._queryState(c);
 		},
 
+		ForeColor : function(ui, v) {
+			var ed = this.editor;
+
+			if (ed.settings.convert_fonts_to_spans) {
+				this._applyInlineStyle('span', {style : {color : v}});
+				return;
+			} else
+				ed.getDoc().execCommand('ForeColor', false, v);
+		},
+
 		HiliteColor : function(ui, val) {
 			var t = this, ed = t.editor, d = ed.getDoc();
 
+			if (ed.settings.convert_fonts_to_spans) {
+				this._applyInlineStyle('span', {style : {backgroundColor : val}});
+				return;
+			}
+
 			function set(s) {
 				if (!isGecko)
 					return;
@@ -9131,26 +10870,6 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 				d.execCommand('BackColor', false, val);
 		},
 
-		Undo : function() {
-			var ed = this.editor;
-
-			if (ed.settings.custom_undo_redo) {
-				ed.undoManager.undo();
-				ed.nodeChanged();
-			} else
-				ed.getDoc().execCommand('Undo', false, null);
-		},
-
-		Redo : function() {
-			var ed = this.editor;
-
-			if (ed.settings.custom_undo_redo) {
-				ed.undoManager.redo();
-				ed.nodeChanged();
-			} else
-				ed.getDoc().execCommand('Redo', false, null);
-		},
-
 		FormatBlock : function(ui, val) {
 			var t = this, ed = t.editor, s = ed.selection, dom = ed.dom, bl, nb, b;
 
@@ -9275,10 +10994,9 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 
 				if ((n = ed.dom.getParent(ed.selection.getEnd(), ed.dom.isBlock)) &amp;&amp; parseInt(n.style.paddingLeft) &gt; 0)
 					return true;
-			} else
-				return !!ed.dom.getParent(ed.selection.getNode(), 'BLOCKQUOTE');
+			}
 
-			return this.queryStateInsertUnorderedList() || this.queryStateInsertOrderedList();
+			return this.queryStateInsertUnorderedList() || this.queryStateInsertOrderedList() || (!ed.settings.inline_styles &amp;&amp; !!ed.dom.getParent(ed.selection.getNode(), 'BLOCKQUOTE'));
 		},
 
 		queryStateInsertUnorderedList : function() {
@@ -9293,350 +11011,322 @@ var tinyMCE = window.tinyMCE = tinymce.EditorManager;
 			return !!this.editor.dom.getParent(this.editor.selection.getStart(), function(n) {return n.nodeName === 'BLOCKQUOTE';});
 		},
 
-		mceBlockQuote : function() {
-			var t = this, ed = t.editor, s = ed.selection, dom = ed.dom, sb, eb, n, bm, bq, r, bq2, i, nl;
-
-			function getBQ(e) {
-				return dom.getParent(e, function(n) {return n.nodeName === 'BLOCKQUOTE';});
-			};
-
-			// Get start/end block
-			sb = dom.getParent(s.getStart(), dom.isBlock);
-			eb = dom.getParent(s.getEnd(), dom.isBlock);
+		_applyInlineStyle : function(na, at, op) {
+			var t = this, ed = t.editor, dom = ed.dom, bm, lo = {}, kh, found;
 
-			// Remove blockquote(s)
-			if (bq = getBQ(sb)) {
-				if (sb != eb || sb.childNodes.length &gt; 1 || (sb.childNodes.length == 1 &amp;&amp; sb.firstChild.nodeName != 'BR'))
-					bm = s.getBookmark();
+			na = na.toUpperCase();
 
-				// Move all elements after the end block into new bq
-				if (getBQ(eb)) {
-					bq2 = bq.cloneNode(false);
+			if (op &amp;&amp; op.check_classes &amp;&amp; at['class'])
+				op.check_classes.push(at['class']);
 
-					while (n = eb.nextSibling)
-						bq2.appendChild(n.parentNode.removeChild(n));
-				}
+			function removeEmpty() {
+				each(dom.select(na).reverse(), function(n) {
+					var c = 0;
 
-				// Add new bq after
-				if (bq2)
-					dom.insertAfter(bq2, bq);
+					// Check if there is any attributes
+					each(dom.getAttribs(n), function(an) {
+						if (an.nodeName.substring(0, 1) != '_' &amp;&amp; dom.getAttrib(n, an.nodeName) != '') {
+							//console.log(dom.getOuterHTML(n), dom.getAttrib(n, an.nodeName));
+							c++;
+						}
+					});
 
-				// Move all selected blocks after the current bq
-				nl = t._getSelectedBlocks(sb, eb);
-				for (i = nl.length - 1; i &gt;= 0; i--) {
-					dom.insertAfter(nl[i], bq);
-				}
+					// No attributes then remove the element and keep the children
+					if (c == 0)
+						dom.remove(n, 1);
+				});
+			};
 
-				// Empty bq, then remove it
-				if (/^\s*$/.test(bq.innerHTML))
-					dom.remove(bq, 1); // Keep children so boomark restoration works correctly
+			function replaceFonts() {
+				var bm;
 
-				// Empty bq, then remote it
-				if (bq2 &amp;&amp; /^\s*$/.test(bq2.innerHTML))
-					dom.remove(bq2, 1); // Keep children so boomark restoration works correctly
+				each(dom.select('span,font'), function(n) {
+					if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline') {
+						if (!bm)
+							bm = ed.selection.getBookmark();
 
-				if (!bm) {
-					// Move caret inside empty block element
-					if (!isIE) {
-						r = ed.getDoc().createRange();
-						r.setStart(sb, 0);
-						r.setEnd(sb, 0);
-						s.setRng(r);
-					} else {
-						s.select(sb);
-						s.collapse(0);
-
-						// IE misses the empty block some times element so we must move back the caret
-						if (dom.getParent(s.getStart(), dom.isBlock) != sb) {
-							r = s.getRng();
-							r.move('character', -1);
-							r.select();
-						}
+						at._mce_new = '1';
+						dom.replace(dom.create(na, at), n, 1);
 					}
-				} else
-					t.editor.selection.moveToBookmark(bm);
+				});
 
-				return;
-			}
+				// Remove redundant elements
+				each(dom.select(na + '[_mce_new]'), function(n) {
+					function removeStyle(n) {
+						if (n.nodeType == 1) {
+							each(at.style, function(v, k) {
+								dom.setStyle(n, k, '');
+							});
 
-			// Since IE can start with a totally empty document we need to add the first bq and paragraph
-			if (isIE &amp;&amp; !sb &amp;&amp; !eb) {
-				t.editor.getDoc().execCommand('Indent');
-				n = getBQ(s.getNode());
-				n.style.margin = n.dir = ''; // IE adds margin and dir to bq
-				return;
-			}
+							// Remove spans with the same class or marked classes
+							if (at['class'] &amp;&amp; n.className &amp;&amp; op) {
+								each(op.check_classes, function(c) {
+									if (dom.hasClass(n, c))
+										dom.removeClass(n, c);
+								});
+							}
+						}
+					};
 
-			if (!sb || !eb)
-				return;
+					// Remove specified style information from child elements
+					each(dom.select(na, n), removeStyle);
 
-			// If empty paragraph node then do not use bookmark
-			if (sb != eb || sb.childNodes.length &gt; 1 || (sb.childNodes.length == 1 &amp;&amp; sb.firstChild.nodeName != 'BR'))
-				bm = s.getBookmark();
+					// Remove the specified style information on parent if current node is only child (IE)
+					if (n.parentNode &amp;&amp; n.parentNode.nodeType == 1 &amp;&amp; n.parentNode.childNodes.length == 1)
+						removeStyle(n.parentNode);
 
-			// Move selected block elements into a bq
-			each(t._getSelectedBlocks(getBQ(s.getStart()), getBQ(s.getEnd())), function(e) {
-				// Found existing BQ add to this one
-				if (e.nodeName == 'BLOCKQUOTE' &amp;&amp; !bq) {
-					bq = e;
-					return;
-				}
+					// Remove the child elements style info if a parent already has it
+					dom.getParent(n.parentNode, function(pn) {
+						if (pn.nodeType == 1) {
+							if (at.style) {
+								each(at.style, function(v, k) {
+									var sv;
 
-				// No BQ found, create one
-				if (!bq) {
-					bq = dom.create('blockquote');
-					e.parentNode.insertBefore(bq, e);
-				}
+									if (!lo[k] &amp;&amp; (sv = dom.getStyle(pn, k))) {
+										if (sv === v)
+											dom.setStyle(n, k, '');
 
-				// Add children from existing BQ
-				if (e.nodeName == 'BLOCKQUOTE' &amp;&amp; bq) {
-					n = e.firstChild;
+										lo[k] = 1;
+									}
+								});
+							}
 
-					while (n) {
-						bq.appendChild(n.cloneNode(true));
-						n = n.nextSibling;
-					}
+							// Remove spans with the same class or marked classes
+							if (at['class'] &amp;&amp; pn.className &amp;&amp; op) {
+								each(op.check_classes, function(c) {
+									if (dom.hasClass(pn, c))
+										dom.removeClass(n, c);
+								});
+							}
+						}
 
-					dom.remove(e);
-					return;
-				}
+						return false;
+					});
 
-				// Add non BQ element to BQ
-				bq.appendChild(dom.remove(e));
-			});
+					n.removeAttribute('_mce_new');
+				});
 
-			if (!bm) {
-				// Move caret inside empty block element
-				if (!isIE) {
-					r = ed.getDoc().createRange();
-					r.setStart(sb, 0);
-					r.setEnd(sb, 0);
-					s.setRng(r);
-				} else {
-					s.select(sb);
-					s.collapse(1);
-				}
-			} else
-				s.moveToBookmark(bm);
-		},
-/*
-		_mceBlockQuote : function() {
-			var t = this, s = t.editor.selection, b = s.getBookmark(), bq, dom = t.editor.dom;
+				removeEmpty();
+				ed.selection.moveToBookmark(bm);
 
-			function findBQ(e) {
-				return dom.getParent(e, function(n) {return n.nodeName === 'BLOCKQUOTE';});
+				return !!bm;
 			};
 
-			// Remove blockquote(s)
-			if (findBQ(s.getStart())) {
-				each(t._getSelectedBlocks(findBQ(s.getStart()), findBQ(s.getEnd())), function(e) {
-					// Found BQ lets remove it
-					if (e.nodeName == 'BLOCKQUOTE')
-						dom.remove(e, 1);
-				});
+			// Create inline elements
+			ed.focus();
+			ed.getDoc().execCommand('FontName', false, 'mceinline');
+			replaceFonts();
 
-				t.editor.selection.moveToBookmark(b);
-				return;
+			if (kh = t._applyInlineStyle.keyhandler) {
+				ed.onKeyUp.remove(kh);
+				ed.onKeyPress.remove(kh);
+				ed.onKeyDown.remove(kh);
+				ed.onSetContent.remove(t._applyInlineStyle.chandler);
 			}
 
-			each(t._getSelectedBlocks(findBQ(s.getStart()), findBQ(s.getEnd())), function(e) {
-				var n;
-
-				// Found existing BQ add to this one
-				if (e.nodeName == 'BLOCKQUOTE' &amp;&amp; !bq) {
-					bq = e;
-					return;
-				}
+			if (ed.selection.isCollapsed()) {
+				// IE will format the current word so this code can't be executed on that browser
+				if (!isIE) {
+					each(dom.getParents(ed.selection.getNode(), 'span'), function(n) {
+						each(at.style, function(v, k) {
+							var kv;
+
+							if (kv = dom.getStyle(n, k)) {
+								if (kv == v) {
+									dom.setStyle(n, k, '');
+									found = 2;
+									return false;
+								}
 
-				// No BQ found, create one
-				if (!bq) {
-					bq = dom.create('blockquote');
-					e.parentNode.insertBefore(bq, e);
-				}
+								found = 1;
+								return false;
+							}
+						});
 
-				// Add children from existing BQ
-				if (e.nodeName == 'BLOCKQUOTE' &amp;&amp; bq) {
-					n = e.firstChild;
+						if (found)
+							return false;
+					});
 
-					while (n) {
-						bq.appendChild(n.cloneNode(true));
-						n = n.nextSibling;
-					}
+					if (found == 2) {
+						bm = ed.selection.getBookmark();
 
-					dom.remove(e);
+						removeEmpty();
 
-					return;
-				}
+						ed.selection.moveToBookmark(bm);
 
-				// Add non BQ element to BQ
-				bq.appendChild(dom.remove(e));
-			});
+						// Node change needs to be detached since the onselect event
+						// for the select box will run the onclick handler after onselect call. Todo: Add a nicer fix!
+						window.setTimeout(function() {
+							ed.nodeChanged();
+						}, 1);
 
-			t.editor.selection.moveToBookmark(b);
-		},
-*/
-		_getSelectedBlocks : function(st, en) {
-			var ed = this.editor, dom = ed.dom, s = ed.selection, sb, eb, n, bl = [];
+						return;
+					}
+				}
 
-			sb = dom.getParent(st || s.getStart(), dom.isBlock);
-			eb = dom.getParent(en || s.getEnd(), dom.isBlock);
+				// Start collecting styles
+				t._pendingStyles = tinymce.extend(t._pendingStyles || {}, at.style);
 
-			if (sb)
-				bl.push(sb);
+				t._applyInlineStyle.chandler = ed.onSetContent.add(function() {
+					delete t._pendingStyles;
+				});
 
-			if (sb &amp;&amp; eb &amp;&amp; sb != eb) {
-				n = sb;
+				t._applyInlineStyle.keyhandler = kh = function(e) {
+					// Use pending styles
+					if (t._pendingStyles) {
+						at.style = t._pendingStyles;
+						delete t._pendingStyles;
+					}
 
-				while ((n = n.nextSibling) &amp;&amp; n != eb) {
-					if (dom.isBlock(n))
-						bl.push(n);
-				}
-			}
+					if (replaceFonts()) {
+						ed.onKeyDown.remove(t._applyInlineStyle.keyhandler);
+						ed.onKeyPress.remove(t._applyInlineStyle.keyhandler);
+					}
 
-			if (eb &amp;&amp; sb != eb)
-				bl.push(eb);
+					if (e.type == 'keyup')
+						ed.onKeyUp.remove(t._applyInlineStyle.keyhandler);
+				};
 
-			return bl;
+				ed.onKeyDown.add(kh);
+				ed.onKeyPress.add(kh);
+				ed.onKeyUp.add(kh);
+			} else
+				t._pendingStyles = 0;
 		}
 	});
-})();
-
-
-/* file:jscripts/tiny_mce/classes/UndoManager.js */
-
-tinymce.create('tinymce.UndoManager', {
-	index : 0,
-	data : null,
-	typing : 0,
+})(tinymce);(function(tinymce) {
+	tinymce.create('tinymce.UndoManager', {
+		index : 0,
+		data : null,
+		typing : 0,
 
-	UndoManager : function(ed) {
-		var t = this, Dispatcher = tinymce.util.Dispatcher;
+		UndoManager : function(ed) {
+			var t = this, Dispatcher = tinymce.util.Dispatcher;
 
-		t.editor = ed;
-		t.data = [];
-		t.onAdd = new Dispatcher(this);
-		t.onUndo = new Dispatcher(this);
-		t.onRedo = new Dispatcher(this);
-	},
+			t.editor = ed;
+			t.data = [];
+			t.onAdd = new Dispatcher(this);
+			t.onUndo = new Dispatcher(this);
+			t.onRedo = new Dispatcher(this);
+		},
 
-	add : function(l) {
-		var t = this, i, ed = t.editor, b, s = ed.settings, la;
+		add : function(l) {
+			var t = this, i, ed = t.editor, b, s = ed.settings, la;
 
-		l = l || {};
-		l.content = l.content || ed.getContent({format : 'raw', no_events : 1});
+			l = l || {};
+			l.content = l.content || ed.getContent({format : 'raw', no_events : 1});
 
-		// Add undo level if needed
-		l.content = l.content.replace(/^\s*|\s*$/g, '');
-		la = t.data[t.index &gt; 0 &amp;&amp; (t.index == 0 || t.index == t.data.length) ? t.index - 1 : t.index];
-		if (!l.initial &amp;&amp; la &amp;&amp; l.content == la.content)
-			return null;
+			// Add undo level if needed
+			l.content = l.content.replace(/^\s*|\s*$/g, '');
+			la = t.data[t.index &gt; 0 &amp;&amp; (t.index == 0 || t.index == t.data.length) ? t.index - 1 : t.index];
+			if (!l.initial &amp;&amp; la &amp;&amp; l.content == la.content)
+				return null;
 
-		// Time to compress
-		if (s.custom_undo_redo_levels) {
-			if (t.data.length &gt; s.custom_undo_redo_levels) {
-				for (i = 0; i &lt; t.data.length - 1; i++)
-					t.data[i] = t.data[i + 1];
+			// Time to compress
+			if (s.custom_undo_redo_levels) {
+				if (t.data.length &gt; s.custom_undo_redo_levels) {
+					for (i = 0; i &lt; t.data.length - 1; i++)
+						t.data[i] = t.data[i + 1];
 
-				t.data.length--;
-				t.index = t.data.length;
+					t.data.length--;
+					t.index = t.data.length;
+				}
 			}
-		}
 
-		if (s.custom_undo_redo_restore_selection &amp;&amp; !l.initial)
-			l.bookmark = b = l.bookmark || ed.selection.getBookmark();
+			if (s.custom_undo_redo_restore_selection &amp;&amp; !l.initial)
+				l.bookmark = b = l.bookmark || ed.selection.getBookmark();
 
-		if (t.index &lt; t.data.length)
-			t.index++;
+			if (t.index &lt; t.data.length)
+				t.index++;
 
-		// Only initial marked undo levels should be allowed as first item
-		// This to workaround a bug with Firefox and the blur event
-		if (t.data.length === 0 &amp;&amp; !l.initial)
-			return null;
+			// Only initial marked undo levels should be allowed as first item
+			// This to workaround a bug with Firefox and the blur event
+			if (t.data.length === 0 &amp;&amp; !l.initial)
+				return null;
 
-		// Add level
-		t.data.length = t.index + 1;
-		t.data[t.index++] = l;
+			// Add level
+			t.data.length = t.index + 1;
+			t.data[t.index++] = l;
 
-		if (l.initial)
-			t.index = 0;
+			if (l.initial)
+				t.index = 0;
 
-		// Set initial bookmark use first real undo level
-		if (t.data.length == 2 &amp;&amp; t.data[0].initial)
-			t.data[0].bookmark = b;
+			// Set initial bookmark use first real undo level
+			if (t.data.length == 2 &amp;&amp; t.data[0].initial)
+				t.data[0].bookmark = b;
 
-		t.onAdd.dispatch(t, l);
-		ed.isNotDirty = 0;
+			t.onAdd.dispatch(t, l);
+			ed.isNotDirty = 0;
 
-		//console.dir(t.data);
+			//console.dir(t.data);
 
-		return l;
-	},
+			return l;
+		},
 
-	undo : function() {
-		var t = this, ed = t.editor, l = l, i;
+		undo : function() {
+			var t = this, ed = t.editor, l = l, i;
 
-		if (t.typing) {
-			t.add();
-			t.typing = 0;
-		}
-
-		if (t.index &gt; 0) {
-			// If undo on last index then take snapshot
-			if (t.index == t.data.length &amp;&amp; t.index &gt; 1) {
-				i = t.index;
+			if (t.typing) {
+				t.add();
 				t.typing = 0;
+			}
 
-				if (!t.add())
-					t.index = i;
+			if (t.index &gt; 0) {
+				// If undo on last index then take snapshot
+				if (t.index == t.data.length &amp;&amp; t.index &gt; 1) {
+					i = t.index;
+					t.typing = 0;
 
-				--t.index;
-			}
+					if (!t.add())
+						t.index = i;
 
-			l = t.data[--t.index];
-			ed.setContent(l.content, {format : 'raw'});
-			ed.selection.moveToBookmark(l.bookmark);
+					--t.index;
+				}
 
-			t.onUndo.dispatch(t, l);
-		}
+				l = t.data[--t.index];
+				ed.setContent(l.content, {format : 'raw'});
+				ed.selection.moveToBookmark(l.bookmark);
 
-		return l;
-	},
+				t.onUndo.dispatch(t, l);
+			}
 
-	redo : function() {
-		var t = this, ed = t.editor, l = null;
+			return l;
+		},
 
-		if (t.index &lt; t.data.length - 1) {
-			l = t.data[++t.index];
-			ed.setContent(l.content, {format : 'raw'});
-			ed.selection.moveToBookmark(l.bookmark);
+		redo : function() {
+			var t = this, ed = t.editor, l = null;
 
-			t.onRedo.dispatch(t, l);
-		}
+			if (t.index &lt; t.data.length - 1) {
+				l = t.data[++t.index];
+				ed.setContent(l.content, {format : 'raw'});
+				ed.selection.moveToBookmark(l.bookmark);
 
-		return l;
-	},
+				t.onRedo.dispatch(t, l);
+			}
 
-	clear : function() {
-		var t = this;
+			return l;
+		},
 
-		t.data = [];
-		t.index = 0;
-		t.typing = 0;
-		t.add({initial : true});
-	},
+		clear : function() {
+			var t = this;
 
-	hasUndo : function() {
-		return this.index != 0 || this.typing;
-	},
+			t.data = [];
+			t.index = 0;
+			t.typing = 0;
+			t.add({initial : true});
+		},
 
-	hasRedo : function() {
-		return this.index &lt; this.data.length - 1;
-	}
+		hasUndo : function() {
+			return this.index != 0 || this.typing;
+		},
 
-	});
-/* file:jscripts/tiny_mce/classes/ForceBlocks.js */
+		hasRedo : function() {
+			return this.index &lt; this.data.length - 1;
+		}
 
-(function() {
+		});
+})(tinymce);
+(function(tinymce) {
 	// Shorten names
 	var Event, isIE, isGecko, isOpera, each, extend;
 
@@ -9661,7 +11351,7 @@ tinymce.create('tinymce.UndoManager', {
 			t.reOpera = new RegExp('(\\u00a0|&amp;#160;|&amp;nbsp;)&lt;\/' + elm + '&gt;', 'gi');
 			t.rePadd = new RegExp('&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;'.replace(/p/g, elm), 'gi');
 			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.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');
 
@@ -9810,11 +11500,11 @@ tinymce.create('tinymce.UndoManager', {
 
 		forceRoots : function(ed, e) {
 			var t = this, ed = t.editor, b = ed.getBody(), d = ed.getDoc(), se = ed.selection, s = se.getSel(), r = se.getRng(), si = -2, ei, so, eo, tr, c = -0xFFFFFF;
-			var nx, bl, bp, sp, le, nl = b.childNodes, i;
+			var nx, bl, bp, sp, le, nl = b.childNodes, i, n, eid;
 
 			// Fix for bug #1863847
-			if (e &amp;&amp; e.keyCode == 13)
-				return true;
+			//if (e &amp;&amp; e.keyCode == 13)
+			//	return true;
 
 			// Wrap non blocks into blocks
 			for (i = nl.length - 1; i &gt;= 0; i--) {
@@ -9828,12 +11518,19 @@ tinymce.create('tinymce.UndoManager', {
 							// Store selection
 							if (si == -2 &amp;&amp; r) {
 								if (!isIE) {
-									// If element is inside body, might not be the case in contentEdiable mode
-									if (ed.dom.getParent(r.startContainer, function(e) {return e === b;})) {
-										so = r.startOffset;
-										eo = r.endOffset;
-										si = t.find(b, 0, r.startContainer);
-										ei = t.find(b, 0, r.endContainer);
+									// If selection is element then mark it
+									if (r.startContainer.nodeType == 1 &amp;&amp; (n = r.startContainer.childNodes[r.startOffset]) &amp;&amp; n.nodeType == 1) {
+										// Save the id of the selected element
+										eid = n.getAttribute(&quot;id&quot;);
+										n.setAttribute(&quot;id&quot;, &quot;__mce&quot;);
+									} else {
+										// If element is inside body, might not be the case in contentEdiable mode
+										if (ed.dom.getParent(r.startContainer, function(e) {return e === b;})) {
+											so = r.startOffset;
+											eo = r.endOffset;
+											si = t.find(b, 0, r.startContainer);
+											ei = t.find(b, 0, r.endContainer);
+										}
 									}
 								} else {
 									tr = d.body.createTextRange();
@@ -9902,6 +11599,18 @@ tinymce.create('tinymce.UndoManager', {
 						// Ignore
 					}
 				}
+			} else if (!isIE &amp;&amp; (n = ed.dom.get('__mce'))) {
+				// Restore the id of the selected element
+				if (eid)
+					n.setAttribute('id', eid);
+				else
+					n.removeAttribute('id');
+
+				// Move caret before selected element
+				r = d.createRange();
+				r.setStartBefore(n);
+				r.setEndBefore(n);
+				se.setRng(r);
 			}
 		},
 
@@ -9913,7 +11622,7 @@ tinymce.create('tinymce.UndoManager', {
 
 		insertPara : function(e) {
 			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;
+			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;
@@ -9988,23 +11697,23 @@ tinymce.create('tinymce.UndoManager', {
 			bn = sb ? sb.nodeName : se.element; // Get block name to create
 
 			// Return inside list use default browser behavior
-			if (t.dom.getParent(sb, function(n) { return /OL|UL|PRE/.test(n.nodeName); }))
+			if (t.dom.getParent(sb, 'OL,UL,PRE'))
 				return true;
 
 			// If caption or absolute layers then always generate new blocks within
-			if (sb &amp;&amp; (sb.nodeName == 'CAPTION' || /absolute|relative|static/gi.test(sb.style.position))) {
+			if (sb &amp;&amp; (sb.nodeName == 'CAPTION' || /absolute|relative|fixed/gi.test(dom.getStyle(sb, 'position', 1)))) {
 				bn = se.element;
 				sb = null;
 			}
 
 			// If caption or absolute layers then always generate new blocks within
-			if (eb &amp;&amp; (eb.nodeName == 'CAPTION' || /absolute|relative|static/gi.test(eb.style.position))) {
+			if (eb &amp;&amp; (eb.nodeName == 'CAPTION' || /absolute|relative|fixed/gi.test(dom.getStyle(sb, 'position', 1)))) {
 				bn = se.element;
 				eb = null;
 			}
 
 			// Use P instead
-			if (/(TD|TABLE|TH|CAPTION)/.test(bn) || (sb &amp;&amp; bn == &quot;DIV&quot; &amp;&amp; /left|right/gi.test(sb.style.cssFloat))) {
+			if (/(TD|TABLE|TH|CAPTION)/.test(bn) || (sb &amp;&amp; bn == &quot;DIV&quot; &amp;&amp; /left|right/gi.test(dom.getStyle(sb, 'float', 1)))) {
 				bn = se.element;
 				sb = eb = null;
 			}
@@ -10090,8 +11799,39 @@ tinymce.create('tinymce.UndoManager', {
 			if (isEmpty(bef))
 				bef.innerHTML = '&lt;br /&gt;';
 
+			function appendStyles(e, en) {
+				var nl = [], nn, n, i;
+
+				e.innerHTML = '';
+
+				// Make clones of style elements
+				if (se.keep_styles) {
+					n = en;
+					do {
+						// We only want style specific elements
+						if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(n.nodeName)) {
+							nn = n.cloneNode(false);
+							dom.setAttrib(nn, 'id', ''); // Remove ID since it needs to be unique
+							nl.push(nn);
+						}
+					} while (n = n.parentNode);
+				}
+
+				// Append style elements to aft
+				if (nl.length &gt; 0) {
+					for (i = nl.length - 1, nn = e; i &gt;= 0; i--)
+						nn = nn.appendChild(nl[i]);
+
+					// Padd most inner style element
+					nl[0].innerHTML = isOpera ? '&amp;nbsp;' : '&lt;br /&gt;'; // Extra space for Opera so that the caret can move there
+					return nl[0]; // Move caret to most inner element
+				} else
+					e.innerHTML = isOpera ? '&amp;nbsp;' : '&lt;br /&gt;'; // Extra space for Opera so that the caret can move there
+			};
+
+			// Fill empty afterblook with current style
 			if (isEmpty(aft))
-				aft.innerHTML = isOpera ? '&amp;nbsp;' : '&lt;br /&gt;'; // Extra space for Opera so that the caret can move there
+				car = appendStyles(aft, en);
 
 			// Opera needs this one backwards for older versions
 			if (isOpera &amp;&amp; parseFloat(opera.version()) &lt; 9.5) {
@@ -10112,7 +11852,7 @@ tinymce.create('tinymce.UndoManager', {
 
 			// Move cursor and scroll into view
 			r = d.createRange();
-			r.selectNodeContents(isGecko ? first(aft) : aft);
+			r.selectNodeContents(isGecko ? first(car || aft) : car || aft);
 			r.collapse(1);
 			s.removeAllRanges();
 			s.addRange(r);
@@ -10123,7 +11863,7 @@ tinymce.create('tinymce.UndoManager', {
 
 			// Is element within viewport
 			if (y &lt; vp.y || y + ch &gt; vp.y + vp.h) {
-				ed.getWin().scrollTo(0, y &lt; vp.y ? y : y - vp.h + ch);
+				ed.getWin().scrollTo(0, y &lt; vp.y ? y : y - vp.h + 25); // Needs to be hardcoded to roughly one line of text if a huge text block is broken into two blocks
 				//console.debug('SCROLL!', 'vp.y: ' + vp.y, 'y' + y, 'vp.h' + vp.h, 'clientHeight' + aft.clientHeight, 'yyy: ' + (y &lt; vp.y ? y : y - vp.h + aft.clientHeight));
 			}
 
@@ -10165,12 +11905,21 @@ tinymce.create('tinymce.UndoManager', {
 
 			// Gecko generates BR elements here and there, we don't like those so lets remove them
 			function handler(e) {
+				var pr;
+
 				e = e.target;
 
 				// A new BR was created in a block element, remove it
 				if (e &amp;&amp; e.parentNode &amp;&amp; e.nodeName == 'BR' &amp;&amp; (n = t.getParentBlock(e))) {
+					pr = e.previousSibling;
+
 					Event.remove(b, 'DOMNodeInserted', handler);
 
+					// Is there whitespace at the end of the node before then we might need the pesky BR
+					// to place the caret at a correct location see bug: #2013943
+					if (pr &amp;&amp; pr.nodeType == 3 &amp;&amp; /\s+$/.test(pr.nodeValue))
+						return;
+
 					// Only remove BR elements that got inserted in the middle of the text
 					if (e.previousSibling || e.nextSibling)
 						ed.dom.remove(e);
@@ -10186,11 +11935,8 @@ tinymce.create('tinymce.UndoManager', {
 			}, 1);
 		}
 	});
-})();
-
-/* file:jscripts/tiny_mce/classes/ControlManager.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	// Shorten names
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, extend = tinymce.extend;
 
@@ -10308,8 +12054,10 @@ tinymce.create('tinymce.UndoManager', {
 				});
 
 				c.onHideMenu.add(function() {
-					if (bm)
+					if (bm) {
 						ed.selection.moveToBookmark(bm);
+						bm = 0;
+					}
 				});
 			}
 
@@ -10409,11 +12157,11 @@ tinymce.create('tinymce.UndoManager', {
 			return t.add(c);
 		},
 
-		createMenuButton : function(id, s) {
+		createMenuButton : function(id, s, cc) {
 			s = s || {};
 			s.menu_button = 1;
 
-			return this.createButton(id, s);
+			return this.createButton(id, s, cc);
 		},
 
 		createSplitButton : function(id, s, cc) {
@@ -10463,6 +12211,9 @@ tinymce.create('tinymce.UndoManager', {
 
 			if (!s.onclick) {
 				s.onclick = function(v) {
+					if (tinymce.isIE)
+						bm = ed.selection.getBookmark(1);
+	
 					ed.execCommand(s.cmd, s.ui || false, v || s.value);
 				};
 			}
@@ -10493,10 +12244,6 @@ tinymce.create('tinymce.UndoManager', {
 
 			// Fix for bug #1897785, #1898007
 			if (tinymce.isIE) {
-				c.onShowMenu.add(function() {
-					bm = ed.selection.getBookmark(1);
-				});
-
 				c.onHideMenu.add(function() {
 					if (bm) {
 						ed.selection.moveToBookmark(bm);
@@ -10540,11 +12287,8 @@ tinymce.create('tinymce.UndoManager', {
 		}
 
 		});
-})();
-
-/* file:jscripts/tiny_mce/classes/WindowManager.js */
-
-(function() {
+})(tinymce);
+(function(tinymce) {
 	var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each, isIE = tinymce.isIE, isOpera = tinymce.isOpera;
 
 	tinymce.create('tinymce.WindowManager', {
@@ -10605,9 +12349,6 @@ tinymce.create('tinymce.UndoManager', {
 			t.onOpen.dispatch(t, s, p);
 
 			u = s.url || s.file;
-			if (tinymce.relaxedDomain)
-				u += (u.indexOf('?') == -1 ? '?' : '&amp;') + 'mce_rdomain=' + tinymce.relaxedDomain;
-
 			u = tinymce._addVer(u);
 
 			try {
@@ -10635,14 +12376,17 @@ tinymce.create('tinymce.UndoManager', {
 			return new f(a, b, c, d, e);
 		},
 
-		confirm : function(t, cb, s) {
-			cb.call(s || this, confirm(this._decode(this.editor.getLang(t, t))));
+		confirm : function(t, cb, s, w) {
+			w = w || window;
+
+			cb.call(s || this, w.confirm(this._decode(this.editor.getLang(t, t))));
 		},
 
-		alert : function(tx, cb, s) {
+		alert : function(tx, cb, s, w) {
 			var t = this;
-	
-			alert(t._decode(t.editor.getLang(tx, tx)));
+
+			w = w || window;
+			w.alert(t._decode(t.editor.getLang(tx, tx)));
 
 			if (cb)
 				cb.call(s || t);
@@ -10655,4 +12399,399 @@ tinymce.create('tinymce.UndoManager', {
 		}
 
 		});
-}());
\ No newline at end of file
+}(tinymce));(function(tinymce) {
+	tinymce.CommandManager = function() {
+		var execCommands = {}, queryStateCommands = {}, queryValueCommands = {};
+
+		function add(collection, cmd, func, scope) {
+			if (typeof(cmd) == 'string')
+				cmd = [cmd];
+
+			tinymce.each(cmd, function(cmd) {
+				collection[cmd.toLowerCase()] = {func : func, scope : scope};
+			});
+		};
+
+		tinymce.extend(this, {
+			add : function(cmd, func, scope) {
+				add(execCommands, cmd, func, scope);
+			},
+
+			addQueryStateHandler : function(cmd, func, scope) {
+				add(queryStateCommands, cmd, func, scope);
+			},
+
+			addQueryValueHandler : function(cmd, func, scope) {
+				add(queryValueCommands, cmd, func, scope);
+			},
+
+			execCommand : function(scope, cmd, ui, value, args) {
+				if (cmd = execCommands[cmd.toLowerCase()]) {
+					if (cmd.func.call(scope || cmd.scope, ui, value, args) !== false)
+						return true;
+				}
+			},
+
+			queryCommandValue : function() {
+				if (cmd = queryValueCommands[cmd.toLowerCase()])
+					return cmd.func.call(scope || cmd.scope, ui, value, args);
+			},
+
+			queryCommandState : function() {
+				if (cmd = queryStateCommands[cmd.toLowerCase()])
+					return cmd.func.call(scope || cmd.scope, ui, value, args);
+			}
+		});
+	};
+
+	tinymce.GlobalCommands = new tinymce.CommandManager();
+})(tinymce);(function(tinymce) {
+	function processRange(dom, start, end, callback) {
+		var ancestor, n, startPoint, endPoint, sib;
+
+		function findEndPoint(n, c) {
+			do {
+				if (n.parentNode == c)
+					return n;
+
+				n = n.parentNode;
+			} while(n);
+		};
+
+		function process(n) {
+			callback(n);
+			tinymce.walk(n, callback, 'childNodes');
+		};
+
+		// Find common ancestor and end points
+		ancestor = dom.findCommonAncestor(start, end);
+		startPoint = findEndPoint(start, ancestor) || start;
+		endPoint = findEndPoint(end, ancestor) || end;
+
+		// Process left leaf
+		for (n = start; n &amp;&amp; n != startPoint; n = n.parentNode) {
+			for (sib = n.nextSibling; sib; sib = sib.nextSibling)
+				process(sib);
+		}
+
+		// Process middle from start to end point
+		if (startPoint != endPoint) {
+			for (n = startPoint.nextSibling; n &amp;&amp; n != endPoint; n = n.nextSibling)
+				process(n);
+		} else
+			process(startPoint);
+
+		// Process right leaf
+		for (n = end; n &amp;&amp; n != endPoint; n = n.parentNode) {
+			for (sib = n.previousSibling; sib; sib = sib.previousSibling)
+				process(sib);
+		}
+	};
+
+	tinymce.GlobalCommands.add('RemoveFormat', function() {
+		var ed = this, dom = ed.dom, s = ed.selection, r = s.getRng(1), nodes = [], bm, start, end, sc, so, ec, eo, n;
+
+		function findFormatRoot(n) {
+			var sp;
+
+			dom.getParent(n, function(n) {
+				if (dom.is(n, ed.getParam('removeformat_selector')))
+					sp = n;
+
+				return dom.isBlock(n);
+			}, ed.getBody())
+
+			return sp;
+		};
+
+		function collect(n) {
+			if (dom.is(n, ed.getParam('removeformat_selector')))
+				nodes.push(n);
+		};
+
+		function walk(n) {
+			collect(n);
+			tinymce.walk(n, collect, 'childNodes');
+		};
+
+		bm = s.getBookmark();
+		sc = r.startContainer;
+		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;
+
+		// Same container
+		if (sc == ec) { // TEXT_NODE
+			start = findFormatRoot(sc);
+
+			// Handle single text node
+			if (sc.nodeType == 3) {
+				if (start &amp;&amp; start.nodeType == 1) { // ELEMENT
+					n = sc.splitText(so);
+					n.splitText(eo - so);
+					dom.split(start, n);
+
+					s.moveToBookmark(bm);
+				}
+
+				return;
+			}
+
+			// Handle single element
+			walk(dom.split(start, sc) || sc);
+		} else {
+			// Find start/end format root
+			start = findFormatRoot(sc);
+			end = findFormatRoot(ec);
+
+			// Split start text node
+			if (start) {
+				if (sc.nodeType == 3) { // TEXT
+					// Since IE doesn't support white space nodes in the DOM we need to
+					// add this invisible character so that the splitText function can split the contents
+					if (so == sc.nodeValue.length)
+						sc.nodeValue += '\uFEFF'; // Yet another pesky IE fix
+
+					sc = sc.splitText(so);
+				}
+			}
+
+			// Split end text node
+			if (end) {
+				if (ec.nodeType == 3) // TEXT
+					ec.splitText(eo);
+			}
+
+			// If the start and end format root is the same then we need to wrap
+			// the end node in a span since the split calls might change the reference
+			// Example: &lt;p&gt;&lt;b&gt;&lt;em&gt;x[yz&lt;span&gt;---&lt;/span&gt;12]3&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;
+			if (start &amp;&amp; start == end)
+				dom.replace(dom.create('span', {id : '__end'}, ec.cloneNode(true)), ec);
+
+			// Split all start containers down to the format root
+			if (start)
+				start = dom.split(start, sc);
+			else
+				start = sc;
+
+			// If there is a span wrapper use that one instead
+			if (n = dom.get('__end')) {
+				ec = n;
+				end = findFormatRoot(ec);
+			}
+
+			// Split all end containers down to the format root
+			if (end)
+				end = dom.split(end, ec);
+			else
+				end = ec;
+
+			// Collect nodes in between
+			processRange(dom, start, end, collect);
+
+			// Remove invisible character for IE workaround if we find it
+			if (sc.nodeValue == '\uFEFF')
+				sc.nodeValue = '';
+
+			// Process start/end container elements
+			walk(ec);
+			walk(sc);
+		}
+
+		// Remove all collected nodes
+		tinymce.each(nodes, function(n) {
+			dom.remove(n, 1);
+		});
+
+		// Remove leftover wrapper
+		dom.remove('__end', 1);
+
+		s.moveToBookmark(bm);
+	});
+})(tinymce);
+(function(tinymce) {
+	tinymce.GlobalCommands.add('mceBlockQuote', function() {
+		var ed = this, s = ed.selection, dom = ed.dom, sb, eb, n, bm, bq, r, bq2, i, nl;
+
+		function getBQ(e) {
+			return dom.getParent(e, function(n) {return n.nodeName === 'BLOCKQUOTE';});
+		};
+
+		// Get start/end block
+		sb = dom.getParent(s.getStart(), dom.isBlock);
+		eb = dom.getParent(s.getEnd(), dom.isBlock);
+
+		// Remove blockquote(s)
+		if (bq = getBQ(sb)) {
+			if (sb != eb || sb.childNodes.length &gt; 1 || (sb.childNodes.length == 1 &amp;&amp; sb.firstChild.nodeName != 'BR'))
+				bm = s.getBookmark();
+
+			// Move all elements after the end block into new bq
+			if (getBQ(eb)) {
+				bq2 = bq.cloneNode(false);
+
+				while (n = eb.nextSibling)
+					bq2.appendChild(n.parentNode.removeChild(n));
+			}
+
+			// Add new bq after
+			if (bq2)
+				dom.insertAfter(bq2, bq);
+
+			// Move all selected blocks after the current bq
+			nl = s.getSelectedBlocks(sb, eb);
+			for (i = nl.length - 1; i &gt;= 0; i--) {
+				dom.insertAfter(nl[i], bq);
+			}
+
+			// Empty bq, then remove it
+			if (/^\s*$/.test(bq.innerHTML))
+				dom.remove(bq, 1); // Keep children so boomark restoration works correctly
+
+			// Empty bq, then remote it
+			if (bq2 &amp;&amp; /^\s*$/.test(bq2.innerHTML))
+				dom.remove(bq2, 1); // Keep children so boomark restoration works correctly
+
+			if (!bm) {
+				// Move caret inside empty block element
+				if (!tinymce.isIE) {
+					r = ed.getDoc().createRange();
+					r.setStart(sb, 0);
+					r.setEnd(sb, 0);
+					s.setRng(r);
+				} else {
+					s.select(sb);
+					s.collapse(0);
+
+					// IE misses the empty block some times element so we must move back the caret
+					if (dom.getParent(s.getStart(), dom.isBlock) != sb) {
+						r = s.getRng();
+						r.move('character', -1);
+						r.select();
+					}
+				}
+			} else
+				ed.selection.moveToBookmark(bm);
+
+			return;
+		}
+
+		// Since IE can start with a totally empty document we need to add the first bq and paragraph
+		if (tinymce.isIE &amp;&amp; !sb &amp;&amp; !eb) {
+			ed.getDoc().execCommand('Indent');
+			n = getBQ(s.getNode());
+			n.style.margin = n.dir = ''; // IE adds margin and dir to bq
+			return;
+		}
+
+		if (!sb || !eb)
+			return;
+
+		// If empty paragraph node then do not use bookmark
+		if (sb != eb || sb.childNodes.length &gt; 1 || (sb.childNodes.length == 1 &amp;&amp; sb.firstChild.nodeName != 'BR'))
+			bm = s.getBookmark();
+
+		// Move selected block elements into a bq
+		tinymce.each(s.getSelectedBlocks(getBQ(s.getStart()), getBQ(s.getEnd())), function(e) {
+			// Found existing BQ add to this one
+			if (e.nodeName == 'BLOCKQUOTE' &amp;&amp; !bq) {
+				bq = e;
+				return;
+			}
+
+			// No BQ found, create one
+			if (!bq) {
+				bq = dom.create('blockquote');
+				e.parentNode.insertBefore(bq, e);
+			}
+
+			// Add children from existing BQ
+			if (e.nodeName == 'BLOCKQUOTE' &amp;&amp; bq) {
+				n = e.firstChild;
+
+				while (n) {
+					bq.appendChild(n.cloneNode(true));
+					n = n.nextSibling;
+				}
+
+				dom.remove(e);
+				return;
+			}
+
+			// Add non BQ element to BQ
+			bq.appendChild(dom.remove(e));
+		});
+
+		if (!bm) {
+			// Move caret inside empty block element
+			if (!tinymce.isIE) {
+				r = ed.getDoc().createRange();
+				r.setStart(sb, 0);
+				r.setEnd(sb, 0);
+				s.setRng(r);
+			} else {
+				s.select(sb);
+				s.collapse(1);
+			}
+		} else
+			s.moveToBookmark(bm);
+	});
+})(tinymce);
+(function(tinymce) {
+	tinymce.each(['Cut', 'Copy', 'Paste'], function(cmd) {
+		tinymce.GlobalCommands.add(cmd, function() {
+			var ed = this, doc = ed.getDoc();
+
+			try {
+				doc.execCommand(cmd, false, null);
+
+				// On WebKit the command will just be ignored if it's not enabled
+				if (!doc.queryCommandSupported(cmd))
+					throw 'Error';
+			} catch (ex) {
+				ed.windowManager.alert(ed.getLang('clipboard_no_support'));
+			}
+		});
+	});
+})(tinymce);
+(function(tinymce) {
+	tinymce.GlobalCommands.add('InsertHorizontalRule', function() {
+		if (tinymce.isOpera)
+			return this.getDoc().execCommand('InsertHorizontalRule', false, '');
+
+		this.selection.setContent('&lt;hr /&gt;');
+	});
+})(tinymce);
+(function() {
+	var cmds = tinymce.GlobalCommands;
+
+	cmds.add(['mceEndUndoLevel', 'mceAddUndoLevel'], function() {
+		this.undoManager.add();
+	});
+
+	cmds.add('Undo', function() {
+		var ed = this;
+
+		if (ed.settings.custom_undo_redo) {
+			ed.undoManager.undo();
+			ed.nodeChanged();
+			return true;
+		}
+
+		return false; // Run browser command
+	});
+
+	cmds.add('Redo', function() {
+		var ed = this;
+
+		if (ed.settings.custom_undo_redo) {
+			ed.undoManager.redo();
+			ed.nodeChanged();
+			return true;
+		}
+
+		return false; // Run browser command
+	});
+})();</diff>
      <filename>lib/tiny_mce/tiny_mce_src.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/utils/editable_selects.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 /**
- * $Id: form_utils.js 673 2008-03-06 13:26:20Z spocke $
+ * $Id: form_utils.js 996 2009-02-06 17:32:20Z spocke $
  *
  * Various form utilitiy functions.
  *
@@ -13,7 +13,7 @@ function getColorPickerHTML(id, target_form_element) {
 	var h = &quot;&quot;;
 
 	h += '&lt;a id=&quot;' + id + '_link&quot; href=&quot;javascript:;&quot; onclick=&quot;tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');&quot; onmousedown=&quot;return false;&quot; class=&quot;pickcolor&quot;&gt;';
-	h += '&lt;span id=&quot;' + id + '&quot; title=&quot;' + tinyMCEPopup.getLang('browse') + '&quot;&gt;&lt;/span&gt;&lt;/a&gt;';
+	h += '&lt;span id=&quot;' + id + '&quot; title=&quot;' + tinyMCEPopup.getLang('browse') + '&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/a&gt;';
 
 	return h;
 }
@@ -50,7 +50,7 @@ function getBrowserHTML(id, target_form_element, type, prefix) {
 
 	html = &quot;&quot;;
 	html += '&lt;a id=&quot;' + id + '_link&quot; href=&quot;javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');&quot; onmousedown=&quot;return false;&quot; class=&quot;browse&quot;&gt;';
-	html += '&lt;span id=&quot;' + id + '&quot; title=&quot;' + tinyMCEPopup.getLang('browse') + '&quot;&gt;&lt;/span&gt;&lt;/a&gt;';
+	html += '&lt;span id=&quot;' + id + '&quot; title=&quot;' + tinyMCEPopup.getLang('browse') + '&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/a&gt;';
 
 	return html;
 }</diff>
      <filename>lib/tiny_mce/utils/form_utils.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/utils/mctabs.js</filename>
    </modified>
    <modified>
      <filename>lib/tiny_mce/utils/validate.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,8 @@
-// script.aculo.us unittest.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008
+// script.aculo.us unittest.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008
 
-// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//           (c) 2005-2007 Jon Tirsen (http://www.tirsen.com)
-//           (c) 2005-2007 Michael Schuerig (http://www.schuerig.de/michael/)
+// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//           (c) 2005-2008 Jon Tirsen (http://www.tirsen.com)
+//           (c) 2005-2008 Michael Schuerig (http://www.schuerig.de/michael/)
 //
 // script.aculo.us is freely distributable under the terms of an MIT-style license.
 // For details, see the script.aculo.us web site: http://script.aculo.us/
@@ -32,8 +32,8 @@ Event.simulateMouse = function(element, eventName) {
   this.mark.style.left = options.pointerX + &quot;px&quot;;
   this.mark.style.width = &quot;5px&quot;;
   this.mark.style.height = &quot;5px;&quot;;
-  this.mark.style.borderTop = &quot;1px solid red;&quot;
-  this.mark.style.borderLeft = &quot;1px solid red;&quot;
+  this.mark.style.borderTop = &quot;1px solid red;&quot;;
+  this.mark.style.borderLeft = &quot;1px solid red;&quot;;
   
   if(this.step)
     alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options));
@@ -67,7 +67,7 @@ Event.simulateKeys = function(element, command) {
   }
 };
 
-var Test = {}
+var Test = {};
 Test.Unit = {};
 
 // security exception workaround
@@ -117,7 +117,7 @@ Test.Unit.Logger.prototype = {
     '&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Status&lt;/th&gt;&lt;th&gt;Test&lt;/th&gt;&lt;th&gt;Message&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;' +
     '&lt;tbody id=&quot;loglines&quot;&gt;&lt;/tbody&gt;' +
     '&lt;/table&gt;';
-    this.logsummary = $('logsummary')
+    this.logsummary = $('logsummary');
     this.loglines = $('loglines');
   },
   _toHTML: function(txt) {
@@ -125,15 +125,15 @@ Test.Unit.Logger.prototype = {
   },
   addLinksToResults: function(){ 
     $$(&quot;tr.failed .nameCell&quot;).each( function(td){ // todo: limit to children of this.log
-      td.title = &quot;Run only this test&quot;
+      td.title = &quot;Run only this test&quot;;
       Event.observe(td, 'click', function(){ window.location.search = &quot;?tests=&quot; + td.innerHTML;});
     });
     $$(&quot;tr.passed .nameCell&quot;).each( function(td){ // todo: limit to children of this.log
-      td.title = &quot;Run all tests&quot;
+      td.title = &quot;Run all tests&quot;;
       Event.observe(td, 'click', function(){ window.location.search = &quot;&quot;;});
     });
   }
-}
+};
 
 Test.Unit.Runner = Class.create();
 Test.Unit.Runner.prototype = {
@@ -246,7 +246,7 @@ Test.Unit.Runner.prototype = {
       failures   + &quot; failures, &quot; +
       errors     + &quot; errors&quot;);
   }
-}
+};
 
 Test.Unit.Assertions = Class.create();
 Test.Unit.Assertions.prototype = {
@@ -331,7 +331,7 @@ Test.Unit.Assertions.prototype = {
     catch(e) { this.error(e); } 
   },
   assertNull: function(obj) {
-    var message = arguments[1] || 'assertNull'
+    var message = arguments[1] || 'assertNull';
     try { (obj==null) ? this.pass() : 
       this.fail(message + ': got &quot;' + Test.Unit.inspect(obj) + '&quot;'); }
     catch(e) { this.error(e); }
@@ -461,7 +461,7 @@ Test.Unit.Assertions.prototype = {
        iterations + ' iterations in ' + (timeTaken/1000)+'s' );
     return timeTaken;
   }
-}
+};
 
 Test.Unit.Testcase = Class.create();
 Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), {
@@ -526,7 +526,7 @@ Test.setupBDDExtensionMethods = function(){
   };
   var makeAssertion = function(assertion, args, object) { 
    	this[assertion].apply(this,(args || []).concat([object]));
-  }
+  };
   
   Test.BDDMethods = {};   
   $H(METHODMAP).each(function(pair) { 
@@ -539,7 +539,7 @@ Test.setupBDDExtensionMethods = function(){
   [Array.prototype, String.prototype, Number.prototype, Boolean.prototype].each(
     function(p){ Object.extend(p, Test.BDDMethods) }
   );
-}
+};
 
 Test.context = function(name, spec, log){
   Test.setupBDDExtensionMethods();</diff>
      <filename>lib/unittest.js</filename>
    </modified>
    <modified>
      <diff>@@ -7,10 +7,12 @@
     &lt;meta http-equiv=&quot;Content-Style-Type&quot; content=&quot;text/css&quot; /&gt;
     &lt;meta http-equiv=&quot;Content-Language&quot; content=&quot;en&quot; /&gt;
     &lt;meta name=&quot;language&quot; content=&quot;en&quot; /&gt;
-    &lt;script src=&quot;../../lib/protoculous-packer.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
-    &lt;script src=&quot;../../lib/patch_inplaceeditor_1-8-1.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
-    &lt;script src=&quot;../../lib/patch_inplaceeditor_editonblank_1-8-1.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
-    &lt;script src=&quot;../../lib/tiny_mce/tiny_mce_src.js&quot; type=&