<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>public/javascripts/fckeditor/editor/lang/is.js</filename>
    </added>
    <added>
      <filename>public/javascripts/fckeditor/editor/wsc/ciframe.html</filename>
    </added>
    <added>
      <filename>public/javascripts/fckeditor/editor/wsc/tmpFrameset.html</filename>
    </added>
    <added>
      <filename>public/javascripts/fckeditor/editor/wsc/w.html</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -11,7 +11,7 @@ FCKConfig.ImageUploadURL = FCKRelativePath+'/fckeditor/upload?Type=Image';
 FCKConfig.FlashUploadURL = FCKRelativePath+'/fckeditor/upload?Type=Flash';
 FCKConfig.SpellerPagesServerScript = FCKRelativePath+'/fckeditor/check_spelling';
 FCKConfig.AllowQueryStringDebug = false;
-FCKConfig.SpellChecker = 'SpellerPages';
+FCKConfig.SpellChecker = 'WSC' ;	// 'WSC' | 'SpellerPages' | 'ieSpell'
 
 FCKConfig.Plugins.Add( 'easyUpload', 'en' ) ;
 </diff>
      <filename>public/javascripts/fckcustom.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_documentation.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/_plugins/findreplace/fckplugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/_plugins/findreplace/find.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/_plugins/findreplace/lang/en.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/_plugins/findreplace/lang/fr.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/_plugins/findreplace/lang/it.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/_plugins/findreplace/replace.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/_plugins/samples/fckplugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@
 	&lt;version&gt;1.0&lt;/version&gt;
 	&lt;filename&gt;FCKeditor AIR Sample&lt;/filename&gt;
 	&lt;description&gt;This is a sample AIR application including FCKeditor.&lt;/description&gt;
-	&lt;copyright&gt;Copyright (C) 2003-2008 Frederico Caldeira Knabben&lt;/copyright&gt;
+	&lt;copyright&gt;Copyright (C) 2003-2009 Frederico Caldeira Knabben&lt;/copyright&gt;
 	&lt;initialWindow&gt;
 		&lt;content&gt;_samples/adobeair/sample01.html&lt;/content&gt;
 		&lt;title&gt;FCKeditor AIR Sample&lt;/title&gt;</diff>
      <filename>public/javascripts/fckeditor/_samples/adobeair/application.xml</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 ::
 :: FCKeditor - The text editor for Internet - http://www.fckeditor.net
-:: Copyright (C) 2003-2008 Frederico Caldeira Knabben
+:: Copyright (C) 2003-2009 Frederico Caldeira Knabben
 ::
 :: == BEGIN LICENSE ==
 ::</diff>
      <filename>public/javascripts/fckeditor/_samples/adobeair/package.bat</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 ::
 :: FCKeditor - The text editor for Internet - http://www.fckeditor.net
-:: Copyright (C) 2003-2008 Frederico Caldeira Knabben
+:: Copyright (C) 2003-2009 Frederico Caldeira Knabben
 ::
 :: == BEGIN LICENSE ==
 ::</diff>
      <filename>public/javascripts/fckeditor/_samples/adobeair/run.bat</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/adobeair/sample01.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/afp/fck.afpa.code</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;%
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/afp/sample01.afp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;%
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/afp/sample02.afp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;%
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/afp/sample03.afp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;%
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/afp/sample04.afp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;%
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/afp/sampleposteddata.afp</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 &lt;% Option Explicit %&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/asp/sample01.asp</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 &lt;% Option Explicit %&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/asp/sample02.asp</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 &lt;% Option Explicit %&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/asp/sample03.asp</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 &lt;% Option Explicit %&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/asp/sample04.asp</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 &lt;% Option Explicit %&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/asp/sampleposteddata.asp</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;true&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/cfm/sample01.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;true&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/cfm/sample01_mx.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;true&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/cfm/sample02.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;true&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/cfm/sample02_mx.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;true&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/cfm/sample03.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;true&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/cfm/sample03_mx.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;true&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/cfm/sample04.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;true&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/cfm/sample04_mx.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!---
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/cfm/sampleposteddata.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
    &quot;http://www.w3.org/TR/html4/frameset.dtd&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/default.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/assets/sample06.config.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/assets/sample11_frame.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/assets/sample14.config.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/assets/sample14.styles.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/assets/sample15.config.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/assets/sample16.config.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample01.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample02.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample03.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample04.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample05.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample06.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample07.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample08.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample09.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample10.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample11.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample12.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample13.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample14.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample15.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/html/sample16.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 [//lasso
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/lasso/sample01.lasso</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 [//lasso
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/lasso/sample02.lasso</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 [//lasso
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/lasso/sample03.lasso</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 [//lasso
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/lasso/sample04.lasso</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 [//lasso
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/lasso/sampleposteddata.lasso</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/_samples/perl/sample01.cgi</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/_samples/perl/sample02.cgi</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/_samples/perl/sample03.cgi</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/_samples/perl/sample04.cgi</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/_samples/perl/sampleposteddata.cgi</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/php/sample01.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/php/sample02.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/php/sample03.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/php/sample04.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/php/sampleposteddata.php</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/_samples/py/sample01.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/_samples/py/sampleposteddata.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/sample.css</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_samples/sampleslist.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/_upgrade.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -33,133 +33,136 @@
 	&lt;h1&gt;
 		FCKeditor ChangeLog - What's New?&lt;/h1&gt;
 	&lt;h3&gt;
-		Version 2.6.3&lt;/h3&gt;
+		Version 2.6.4&lt;/h3&gt;
 	&lt;p&gt;
 		Fixed Bugs:&lt;/p&gt;
 	&lt;ul&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2412&quot;&gt;#2412&lt;/a&gt;] FCK.InsertHtml()
-			is now properly removing selected contents after content insertion in Firefox.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2420&quot;&gt;#2420&lt;/a&gt;] Spelling
-			mistake corrections made by the spell checking dialog are now undoable. &lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2411&quot;&gt;#2411&lt;/a&gt;] Insert
-			anchor was not working for non-empty selections.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2426&quot;&gt;#2426&lt;/a&gt;] It was
-			impossible to switch between editor areas with a single click.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2777&quot;&gt;#2777&lt;/a&gt;] Merging
+			cells between table header and body is no longer possible.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2815&quot;&gt;#2815&lt;/a&gt;] Fixed
+			WSC issues at slow connection speed. Added SSL support.&lt;/li&gt;
 		&lt;li&gt;Language file updates for the following languages:
 			&lt;ul&gt;
-				&lt;li&gt;Canadian French&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2402&quot;&gt;#2402&lt;/a&gt;] Catalan
-				&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2400&quot;&gt;#2400&lt;/a&gt;] Chinese
-					(Simplified and Traditional)&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2401&quot;&gt;#2401&lt;/a&gt;] Croatian&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2422&quot;&gt;#2422&lt;/a&gt;] Czech&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2417&quot;&gt;#2417&lt;/a&gt;] Dutch&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2428&quot;&gt;#2428&lt;/a&gt;] French&lt;/li&gt;
-				&lt;li&gt;German&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2427&quot;&gt;#2427&lt;/a&gt;] Hebrew&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2410&quot;&gt;#2410&lt;/a&gt;] Hindi&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2405&quot;&gt;#2405&lt;/a&gt;] Japanese&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2409&quot;&gt;#2409&lt;/a&gt;] Norwegian
-					and Norwegian Bokm&#229;l&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2429&quot;&gt;#2429&lt;/a&gt;] Spanish&lt;/li&gt;
-				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2406&quot;&gt;#2406&lt;/a&gt;] Vietnamese&lt;/li&gt;
+				&lt;li&gt;Chinese (Traditional)&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2846&quot;&gt;#2846&lt;/a&gt;] French&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2801&quot;&gt;#2801&lt;/a&gt;] Hebrew&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2824&quot;&gt;#2824&lt;/a&gt;] Russian&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2811&quot;&gt;#2811&lt;/a&gt;] Turkish&lt;/li&gt;
 			&lt;/ul&gt;
 		&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2757&quot;&gt;#2757&lt;/a&gt;] Fixed
+			a minor bug which causes selection positions to be improperly restored during undos
+			and redos.&lt;/li&gt;
 	&lt;/ul&gt;
-	&lt;p&gt;
-		This version has been sponsored by &lt;a href=&quot;http://www.dataillusion.com/fs/&quot;&gt;Data Illusion
-			survey software solutions&lt;/a&gt;.&lt;/p&gt;
 	&lt;h3&gt;
-		Version 2.6.3 Beta&lt;/h3&gt;
+		Version 2.6.4 Beta&lt;/h3&gt;
 	&lt;p&gt;
 		New Features and Improvements:&lt;/p&gt;
 	&lt;ul&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/439&quot;&gt;#439&lt;/a&gt;] Added a
-			new &lt;strong&gt;context menu option for opening links&lt;/strong&gt; in the editor.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2220&quot;&gt;#2220&lt;/a&gt;] &lt;strong&gt;
-			Email links&lt;/strong&gt; from the Link dialog &lt;strong&gt;are now encoded&lt;/strong&gt; by default
-			to prevent being harvested by spammers. (Kudos to asuter for proposing the patch)
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2685&quot;&gt;#2685&lt;/a&gt;] Integration
+			with &quot;WebSpellChecker&quot;, a &lt;strong&gt;zero installation and free spell checker&lt;/strong&gt;
+			provided by SpellChecker.net. This is now the default spell checker in the editor
+			(requires internet connection). All previous spell checking solutions are still
+			available.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2430&quot;&gt;#2430&lt;/a&gt;] In the
+			table dialog it's possible to create header cells in the first row (included in
+			a thead element) or the first column of the table. &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/822&quot;&gt;#822&lt;/a&gt;] The table
+			cell dialog allows switching between normal data cells or header cells (TD vs. TH).
 		&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2234&quot;&gt;#2234&lt;/a&gt;] Added
-			the ability to create, modify and remove &lt;strong&gt;DIV containers&lt;/strong&gt;. &lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2247&quot;&gt;#2247&lt;/a&gt;] The &lt;strong&gt;
-			SHIFT+SPACE&lt;/strong&gt; keystroke will now &lt;strong&gt;produce a &amp;amp;nbsp;&lt;/strong&gt; character.
-		&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2252&quot;&gt;#2252&lt;/a&gt;] It's
-			now possible to enable the browsers default menu using the configuration file (FCKConfig.BrowserContextMenu
-			option). &lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2032&quot;&gt;#2032&lt;/a&gt;] Added
-			HTML samples for legacy HTML and Flash HTML. &lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/234&quot;&gt;#234&lt;/a&gt;] Introduced
-			the &quot;PreventSubmitHandler&quot; setting, which makes it possible to instruct the editor
-			to not handle the hidden field update on form submit events.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2515&quot;&gt;#2515&lt;/a&gt;] New language
+			file for Icelandic.&lt;/li&gt;
 	&lt;/ul&gt;
 	&lt;p&gt;
 		Fixed Bugs:&lt;/p&gt;
 	&lt;ul&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2319&quot;&gt;#2319&lt;/a&gt;] On Opera
-			and Firefox 3, the entire page was scrolling on SHIFT+ENTER, or when EnterMode='br'.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2321&quot;&gt;#2321&lt;/a&gt;] On Firefox
-			3, the entire page was scrolling when inserting block elements with the FCK.InsertElement
-			function, used by the Table and Horizontal Rule buttons.. &lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/692&quot;&gt;#692&lt;/a&gt;] Added some
-			hints in editor/css/fck_editorarea.css on how to handle style items that would break
-			the style combo. &lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2263&quot;&gt;#2263&lt;/a&gt;] Fixed
-			a JavaScript error in IE which occurs when there are placeholder elements in the
-			document and the user has pressed the Source button.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2314&quot;&gt;#2314&lt;/a&gt;] Corrected
-			mixed up Chinese translations for the blockquote command.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2323&quot;&gt;#2323&lt;/a&gt;] Fixed
-			the issue where the show blocks command loses the current selection from the view
-			area when editing a long document.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2322&quot;&gt;#2322&lt;/a&gt;] Fixed
-			the issue where the fit window command loses the current selection and scroll position
-			in the editing area.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1917&quot;&gt;#1917&lt;/a&gt;] Fixed
-			the issue where the merge down command for tables cells does not work in IE for
-			more than two cells.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2320&quot;&gt;#2320&lt;/a&gt;] Fixed
-			the issue where the Find/Replace dialog scrolls the entire page.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1645&quot;&gt;#1645&lt;/a&gt;] Added
-			warning message about Firefox 3's strict origin policy.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2272&quot;&gt;#2272&lt;/a&gt;] Improved
-			the garbage filter in Paste from Word dialog.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2327&quot;&gt;#2327&lt;/a&gt;] Fixed
-			invalid HTML in the Paste dialog.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1907&quot;&gt;#1907&lt;/a&gt;] Fixed
-			sporadic &quot;FCKeditorAPI is not defined&quot; errors in Firefox 3.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2356&quot;&gt;#2356&lt;/a&gt;] Fixed
-			access denied error in IE7 when FCKeditor is launched from local filesystem.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1150&quot;&gt;#1150&lt;/a&gt;] Fixed
-			the type=&quot;_moz&quot; attribute that sometimes appear in &amp;lt;br&amp;gt; tags in non-IE browsers.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1229&quot;&gt;#1229&lt;/a&gt;] Converting
-			multiple contiguous paragraphs to Formatted will now be merged into a single &amp;lt;PRE&amp;gt;
-			block.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2363&quot;&gt;#2363&lt;/a&gt;] There
-			were some sporadic &quot;Permission Denied&quot; errors with IE on some situations.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2135&quot;&gt;#2135&lt;/a&gt;] Fixed
-			a data loss bug in IE when there are @import statements in the editor's CSS files,
-			and IE's cache is set to &quot;Check for newer versions on every visit&quot;.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2376&quot;&gt;#2376&lt;/a&gt;] FCK.InsertHtml()
-			will now insert to the last selected position after the user has selected things
-			outside of FCKeditor, in IE.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2368&quot;&gt;#2368&lt;/a&gt;] Fixed
-			broken protect source logic for comments in IE.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2387&quot;&gt;#2387&lt;/a&gt;] Fixed
-			JavaScript error with list commands when the editable document is selected with
-			Ctrl-A.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2390&quot;&gt;#2390&lt;/a&gt;] Fixed
-			the issue where indent styles in JavaScript-generated &amp;lt;p&amp;gt; blocks are erased
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2381&quot;&gt;#2381&lt;/a&gt;] Protected
+			the editor from duplicate iframes&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1752&quot;&gt;#1752&lt;/a&gt;] Fixed
+			the issue with tablecommands plugin and undefined tagName.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2333&quot;&gt;#2333&lt;/a&gt;] The &amp;amp;gt;
+			character inside text wasn't encoded in Opera and Safari.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2467&quot;&gt;#2467&lt;/a&gt;] Fixed
+			JavaScript error with the fit window command in source mode.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2472&quot;&gt;#2472&lt;/a&gt;] Splitting
+			a TH will create a two TH, not a TH and a TD.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1891&quot;&gt;#1891&lt;/a&gt;] Removed
+			unnecessary name attributes in dialogs. &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/798&quot;&gt;#798&lt;/a&gt;, &lt;a target=&quot;_blank&quot;
+			href=&quot;http://dev.fckeditor.net/ticket/2495&quot;&gt;#2495&lt;/a&gt;] If an image was placed inside
+			a container with dimensions or floating it wasn't possible to edit its properties
+			from the toolbar or context menu.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1982&quot;&gt;#1982&lt;/a&gt;] Submenus
+			in IE7 now are shown properly.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2496&quot;&gt;#2496&lt;/a&gt;] Using
+			the Paste dialogs in IE might insert the content at the start of the editor.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2349&quot;&gt;#2496&lt;/a&gt;] Fixed
+			RTL dialog layout in Internet Explorer.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2488&quot;&gt;#2488&lt;/a&gt;] Fixed
+			the issue where email links in IE would take the browser to a new page in addition
+			to calling up the email client.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2519&quot;&gt;#2519&lt;/a&gt;] Fixed
+			race condition at registering the FCKeditorAPI object in multiple editor scenarios.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2525&quot;&gt;#2525&lt;/a&gt;] Fixed
+			JavaScript error in Google Chrome when StartupShowBlocks is set to true.&lt;/li&gt;
+		&lt;li&gt;Language file updates for the following languages:
+			&lt;ul&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2440&quot;&gt;#2440&lt;/a&gt;] Dutch&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2451&quot;&gt;#2451&lt;/a&gt;] Basque&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2451&quot;&gt;#2650&lt;/a&gt;] Danish&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2208&quot;&gt;#2535&lt;/a&gt;] German
+				&lt;/li&gt;
+			&lt;/ul&gt;
+		&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2531&quot;&gt;#2531&lt;/a&gt;] The ENTER
+			key will properly scroll to the cursor position when breaking long paragraphs.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2573&quot;&gt;#2573&lt;/a&gt;] The type
+			name in configurations for the ASP connector are now case sensitive.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2503&quot;&gt;#2503&lt;/a&gt;] DL, DT
+			and DD where missing the formatting in the generated HTML.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2516&quot;&gt;#2516&lt;/a&gt;] Replaced
+			the extension AddItem of Array with the standard &quot;push&quot; method.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2486&quot;&gt;#2486&lt;/a&gt;] Vertically
+			splitting cell with colspan &amp;gt; 1 breaks table layout.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2597&quot;&gt;#2597&lt;/a&gt;] Fixed
+			the issue where dropping contents from outside of the editor doesn't work in Safari.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2412&quot;&gt;#2412&lt;/a&gt;] Fixed
+			the issue where FCK.InsertHtml() is no longer removing selected contents after content
+			insertion in Firefox.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2407&quot;&gt;#2407&lt;/a&gt;] Fixed
+			the issue where the Div container command and the blockquote command would break
+			lists.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2469&quot;&gt;#2469&lt;/a&gt;] Fixed
+			a minor issue where FCK.SetData() may cause the editor to become unresponsive to
+			the first click after being defocused.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2611&quot;&gt;#2611&lt;/a&gt;] Fixed
+			an extra slash on quickupload of the asp connector.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2616&quot;&gt;#2616&lt;/a&gt;] Fixed
+			another situation where new elements were inserted at the beginning of the content
 			in IE.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2394&quot;&gt;#2394&lt;/a&gt;] Fixed
-			JavaScript error with the &quot;split vertically&quot; command in IE when attempting to split
-			cells in the last row of a table.&lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2316&quot;&gt;#2316&lt;/a&gt;] The sample
-			posted data page has now the table fixed at 100% width. &lt;/li&gt;
-		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2396&quot;&gt;#2396&lt;/a&gt;] SpellerPages
-			was causing a &quot;Permission Denied&quot; error in some situations. &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2634&quot;&gt;#2634&lt;/a&gt;] Fixed
+			two obsolete references to Array::AddItem() instances still in the code.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2679&quot;&gt;#2679&lt;/a&gt;] Fixed
+			infinite loop problems with FCKDomRangeIterator class which causes some commands
+			to hang when applied to certain document structures.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2649&quot;&gt;#2649&lt;/a&gt;] Fixed
+			a JavaScript error in IE when user tries to search with the &quot;Match whole word&quot; option
+			enabled and the matched word is at exactly the end of document.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2603&quot;&gt;#2603&lt;/a&gt;] Changed
+			the &lt;a href=&quot;http://docs.fckeditor.net/EMailProtection&quot;&gt;EMailProtection&lt;/a&gt; to &quot;none&quot;
+			for better compatibility.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2612&quot;&gt;#2612&lt;/a&gt;] The 'ForcePasteAsPlainText'
+			configuration option didn't work correctly in Safari and Chrome.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2696&quot;&gt;#2696&lt;/a&gt;] Fixed
+			non-working autogrow plugin.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2753&quot;&gt;#2753&lt;/a&gt;] Fixed
+			occasional exceptions in the dragersizetable plugin with IE.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2653&quot;&gt;#2653&lt;/a&gt;] and [&lt;a
+			target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2733&quot;&gt;#2733&lt;/a&gt;] Enable undo
+			of changes to tables and table cells.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1865&quot;&gt;#1865&lt;/a&gt;] The context
+			menu is now working properly over the last row in a table with thead. Thanks to
+			Koen Willems.&lt;/li&gt;
 	&lt;/ul&gt;
 	&lt;p&gt;
 		&lt;a href=&quot;_whatsnew_history.html&quot;&gt;See previous versions history&lt;/a&gt;&lt;/p&gt;</diff>
      <filename>public/javascripts/fckeditor/_whatsnew.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -33,6 +33,135 @@
 	&lt;h1&gt;
 		FCKeditor ChangeLog - What's New?&lt;/h1&gt;
 	&lt;h3&gt;
+		Version 2.6.3&lt;/h3&gt;
+	&lt;p&gt;
+		Fixed Bugs:&lt;/p&gt;
+	&lt;ul&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2412&quot;&gt;#2412&lt;/a&gt;] FCK.InsertHtml()
+			is now properly removing selected contents after content insertion in Firefox.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2420&quot;&gt;#2420&lt;/a&gt;] Spelling
+			mistake corrections made by the spell checking dialog are now undoable. &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2411&quot;&gt;#2411&lt;/a&gt;] Insert
+			anchor was not working for non-empty selections.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2426&quot;&gt;#2426&lt;/a&gt;] It was
+			impossible to switch between editor areas with a single click.&lt;/li&gt;
+		&lt;li&gt;Language file updates for the following languages:
+			&lt;ul&gt;
+				&lt;li&gt;Canadian French&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2402&quot;&gt;#2402&lt;/a&gt;] Catalan
+				&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2400&quot;&gt;#2400&lt;/a&gt;] Chinese
+					(Simplified and Traditional)&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2401&quot;&gt;#2401&lt;/a&gt;] Croatian&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2422&quot;&gt;#2422&lt;/a&gt;] Czech&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2417&quot;&gt;#2417&lt;/a&gt;] Dutch&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2428&quot;&gt;#2428&lt;/a&gt;] French&lt;/li&gt;
+				&lt;li&gt;German&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2427&quot;&gt;#2427&lt;/a&gt;] Hebrew&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2410&quot;&gt;#2410&lt;/a&gt;] Hindi&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2405&quot;&gt;#2405&lt;/a&gt;] Japanese&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2409&quot;&gt;#2409&lt;/a&gt;] Norwegian
+					and Norwegian Bokm&#229;l&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2429&quot;&gt;#2429&lt;/a&gt;] Spanish&lt;/li&gt;
+				&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2406&quot;&gt;#2406&lt;/a&gt;] Vietnamese&lt;/li&gt;
+			&lt;/ul&gt;
+		&lt;/li&gt;
+	&lt;/ul&gt;
+	&lt;p&gt;
+		This version has been sponsored by &lt;a href=&quot;http://www.dataillusion.com/fs/&quot;&gt;Data Illusion
+			survey software solutions&lt;/a&gt;.&lt;/p&gt;
+	&lt;h3&gt;
+		Version 2.6.3 Beta&lt;/h3&gt;
+	&lt;p&gt;
+		New Features and Improvements:&lt;/p&gt;
+	&lt;ul&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/439&quot;&gt;#439&lt;/a&gt;] Added a
+			new &lt;strong&gt;context menu option for opening links&lt;/strong&gt; in the editor.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2220&quot;&gt;#2220&lt;/a&gt;] &lt;strong&gt;
+			Email links&lt;/strong&gt; from the Link dialog &lt;strong&gt;are now encoded&lt;/strong&gt; by default
+			to prevent being harvested by spammers. (Kudos to asuter for proposing the patch)
+		&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2234&quot;&gt;#2234&lt;/a&gt;] Added
+			the ability to create, modify and remove &lt;strong&gt;DIV containers&lt;/strong&gt;. &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2247&quot;&gt;#2247&lt;/a&gt;] The &lt;strong&gt;
+			SHIFT+SPACE&lt;/strong&gt; keystroke will now &lt;strong&gt;produce a &amp;amp;nbsp;&lt;/strong&gt; character.
+		&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2252&quot;&gt;#2252&lt;/a&gt;] It's
+			now possible to enable the browsers default menu using the configuration file (FCKConfig.BrowserContextMenu
+			option). &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2032&quot;&gt;#2032&lt;/a&gt;] Added
+			HTML samples for legacy HTML and Flash HTML. &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/234&quot;&gt;#234&lt;/a&gt;] Introduced
+			the &quot;PreventSubmitHandler&quot; setting, which makes it possible to instruct the editor
+			to not handle the hidden field update on form submit events.&lt;/li&gt;
+	&lt;/ul&gt;
+	&lt;p&gt;
+		Fixed Bugs:&lt;/p&gt;
+	&lt;ul&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2319&quot;&gt;#2319&lt;/a&gt;] On Opera
+			and Firefox 3, the entire page was scrolling on SHIFT+ENTER, or when EnterMode='br'.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2321&quot;&gt;#2321&lt;/a&gt;] On Firefox
+			3, the entire page was scrolling when inserting block elements with the FCK.InsertElement
+			function, used by the Table and Horizontal Rule buttons.. &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/692&quot;&gt;#692&lt;/a&gt;] Added some
+			hints in editor/css/fck_editorarea.css on how to handle style items that would break
+			the style combo. &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2263&quot;&gt;#2263&lt;/a&gt;] Fixed
+			a JavaScript error in IE which occurs when there are placeholder elements in the
+			document and the user has pressed the Source button.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2314&quot;&gt;#2314&lt;/a&gt;] Corrected
+			mixed up Chinese translations for the blockquote command.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2323&quot;&gt;#2323&lt;/a&gt;] Fixed
+			the issue where the show blocks command loses the current selection from the view
+			area when editing a long document.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2322&quot;&gt;#2322&lt;/a&gt;] Fixed
+			the issue where the fit window command loses the current selection and scroll position
+			in the editing area.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1917&quot;&gt;#1917&lt;/a&gt;] Fixed
+			the issue where the merge down command for tables cells does not work in IE for
+			more than two cells.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2320&quot;&gt;#2320&lt;/a&gt;] Fixed
+			the issue where the Find/Replace dialog scrolls the entire page.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1645&quot;&gt;#1645&lt;/a&gt;] Added
+			warning message about Firefox 3's strict origin policy.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2272&quot;&gt;#2272&lt;/a&gt;] Improved
+			the garbage filter in Paste from Word dialog.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2327&quot;&gt;#2327&lt;/a&gt;] Fixed
+			invalid HTML in the Paste dialog.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1907&quot;&gt;#1907&lt;/a&gt;] Fixed
+			sporadic &quot;FCKeditorAPI is not defined&quot; errors in Firefox 3.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2356&quot;&gt;#2356&lt;/a&gt;] Fixed
+			access denied error in IE7 when FCKeditor is launched from local filesystem.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1150&quot;&gt;#1150&lt;/a&gt;] Fixed
+			the type=&quot;_moz&quot; attribute that sometimes appear in &amp;lt;br&amp;gt; tags in non-IE browsers.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/1229&quot;&gt;#1229&lt;/a&gt;] Converting
+			multiple contiguous paragraphs to Formatted will now be merged into a single &amp;lt;PRE&amp;gt;
+			block.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2363&quot;&gt;#2363&lt;/a&gt;] There
+			were some sporadic &quot;Permission Denied&quot; errors with IE on some situations.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2135&quot;&gt;#2135&lt;/a&gt;] Fixed
+			a data loss bug in IE when there are @import statements in the editor's CSS files,
+			and IE's cache is set to &quot;Check for newer versions on every visit&quot;.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2376&quot;&gt;#2376&lt;/a&gt;] FCK.InsertHtml()
+			will now insert to the last selected position after the user has selected things
+			outside of FCKeditor, in IE.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2368&quot;&gt;#2368&lt;/a&gt;] Fixed
+			broken protect source logic for comments in IE.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2387&quot;&gt;#2387&lt;/a&gt;] Fixed
+			JavaScript error with list commands when the editable document is selected with
+			Ctrl-A.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2390&quot;&gt;#2390&lt;/a&gt;] Fixed
+			the issue where indent styles in JavaScript-generated &amp;lt;p&amp;gt; blocks are erased
+			in IE.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2394&quot;&gt;#2394&lt;/a&gt;] Fixed
+			JavaScript error with the &quot;split vertically&quot; command in IE when attempting to split
+			cells in the last row of a table.&lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2316&quot;&gt;#2316&lt;/a&gt;] The sample
+			posted data page has now the table fixed at 100% width. &lt;/li&gt;
+		&lt;li&gt;[&lt;a target=&quot;_blank&quot; href=&quot;http://dev.fckeditor.net/ticket/2396&quot;&gt;#2396&lt;/a&gt;] SpellerPages
+			was causing a &quot;Permission Denied&quot; error in some situations. &lt;/li&gt;
+	&lt;/ul&gt;
+	&lt;h3&gt;
 		Version 2.6.2&lt;/h3&gt;
 	&lt;p&gt;
 		New Features and Improvements:&lt;/p&gt;</diff>
      <filename>public/javascripts/fckeditor/_whatsnew_history.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckcontextmenu.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckdataprocessor.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -469,13 +469,13 @@ FCKDomRange.prototype =
 		// Also note that the node that we use for &quot;address base&quot; would change during backtracking.
 		var addrStart = this._Range.startContainer ;
 		var addrEnd = this._Range.endContainer ;
-		while ( curStart &amp;&amp; addrStart.nodeType == 3 )
+		while ( curStart &amp;&amp; curStart.nodeType == 3 &amp;&amp; addrStart.nodeType == 3 )
 		{
 			bookmark.Start[0] += curStart.length ;
 			addrStart = curStart ;
 			curStart = curStart.previousSibling ;
 		}
-		while ( curEnd &amp;&amp; addrEnd.nodeType == 3 )
+		while ( curEnd &amp;&amp; curEnd.nodeType == 3 &amp;&amp; addrEnd.nodeType == 3 )
 		{
 			bookmark.End[0] += curEnd.length ;
 			addrEnd = curEnd ;</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckdomrange.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckdomrange_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckdomrange_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -136,7 +136,7 @@ FCKDomRangeIterator.prototype =
 						// The found boundary must be set as the next one at this
 						// point. (#1717)
 						if ( nodeName != 'br' )
-							this._NextNode = FCKDomTools.GetNextSourceNode( currentNode, true, null, lastNode ) ;
+							this._NextNode = FCKDomTools.GetNextSourceNode( currentNode, true, null, lastNode ) || currentNode ;
 					}
 
 					closeRange = true ;</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckdomrangeiterator.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckeditingarea.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckelementpath.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -531,7 +531,27 @@ FCKEnterKey.prototype._ExecuteEnterBlock = function( blockTag, range )
 		}
 
 		if ( FCKBrowserInfo.IsGeckoLike )
-			FCKDomTools.ScrollIntoView( eNextBlock || eNewBlock, false ) ;
+		{
+			if ( eNextBlock )
+			{
+				// If we have split the block, adds a temporary span at the
+				// range position and scroll relatively to it.
+				var tmpNode = this.Window.document.createElement( 'span' ) ;
+
+				// We need some content for Safari.
+				tmpNode.innerHTML = '&amp;nbsp;';
+
+				oRange.InsertNode( tmpNode ) ;
+				FCKDomTools.ScrollIntoView( tmpNode, false ) ;
+				oRange.DeleteContents() ;
+			}
+			else
+			{
+				// We may use the above scroll logic for the new block case
+				// too, but it gives some weird result with Opera.
+				FCKDomTools.ScrollIntoView( eNextBlock || eNewBlock, false ) ;
+			}
+		}
 
 		oRange.Select() ;
 	}</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckenterkey.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckevents.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -71,7 +71,7 @@ FCKHtmlIterator.prototype =
 } ;
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckhtmliterator.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckicon.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckiecleanup.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckimagepreloader.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckkeystrokehandler.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckmenublock.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckmenublockpanel.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckmenuitem.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -128,6 +128,60 @@ FCKPanel.prototype.Preload = function( x, y, relElement )
 		this._Popup.show( x, y, 0, 0, relElement ) ;
 }
 
+// Workaround for IE7 problem. See #1982
+// Submenus are restricted to the size of its parent, so we increase it as needed.
+// Returns true if the panel has been repositioned
+FCKPanel.prototype.ResizeForSubpanel = function( panel, width, height )
+{
+	if ( !FCKBrowserInfo.IsIE7 )
+		return false ;
+
+	if ( !this._Popup.isOpen )
+	{
+		this.Subpanel = null ;
+		return false ;
+	}
+
+	// If we are resetting the extra space
+	if ( width == 0 &amp;&amp; height == 0 )
+	{
+		// Another subpanel is being shown, so we must not shrink back
+		if (this.Subpanel !== panel)
+			return false ;
+
+		// Reset values.
+		// We leave the IncreasedY untouched to avoid vertical movement of the
+		// menu if the submenu is higher than the main menu.
+		this.Subpanel = null ;
+		this.IncreasedX = 0 ;
+	}
+	else
+	{
+		this.Subpanel = panel ;
+		// If the panel has already been increased enough, get out
+		if ( ( this.IncreasedX &gt;= width ) &amp;&amp; ( this.IncreasedY &gt;= height ) )
+			return false ;
+
+		this.IncreasedX = Math.max( this.IncreasedX, width ) ;
+		this.IncreasedY = Math.max( this.IncreasedY, height ) ;
+	}
+
+	var x = this.ShowRect.x ;
+	var w = this.IncreasedX ;
+	if ( this.IsRTL )
+		x  = x - w ;
+
+	// Horizontally increase as needed (sum of widths).
+	// Vertically, use only the maximum of this menu or the submenu
+	var finalWidth = this.ShowRect.w + w ;
+	var finalHeight = Math.max( this.ShowRect.h, this.IncreasedY ) ;
+	if ( this.ParentPanel )
+		this.ParentPanel.ResizeForSubpanel( this, finalWidth, finalHeight ) ;
+	this._Popup.show( x, this.ShowRect.y, finalWidth, finalHeight, this.RelativeElement ) ;
+
+	return this.IsRTL ;
+}
+
 FCKPanel.prototype.Show = function( x, y, relElement, width, height )
 {
 	var iMainWidth ;
@@ -150,6 +204,16 @@ FCKPanel.prototype.Show = function( x, y, relElement, width, height )
 
 		iMainWidth = eMainNode.offsetWidth ;
 
+		if ( FCKBrowserInfo.IsIE7 )
+		{
+			if (this.ParentPanel &amp;&amp; this.ParentPanel.ResizeForSubpanel(this, iMainWidth, eMainNode.offsetHeight) )
+			{
+				// As the parent has moved, allow the browser to update its internal data, so the new position is correct.
+				FCKTools.RunFunction( this.Show, this, [x, y, relElement] ) ;
+				return ;
+			}
+		}
+
 		if ( this.IsRTL )
 		{
 			if ( this.IsContextMenu )
@@ -158,6 +222,15 @@ FCKPanel.prototype.Show = function( x, y, relElement, width, height )
 				x  = ( x * -1 ) + relElement.offsetWidth - iMainWidth ;
 		}
 
+		if ( FCKBrowserInfo.IsIE7 )
+		{
+			// Store the values that will be used by the ResizeForSubpanel function
+			this.ShowRect = {x:x, y:y, w:iMainWidth, h:eMainNode.offsetHeight} ;
+			this.IncreasedX = 0 ;
+			this.IncreasedY = 0 ;
+			this.RelativeElement = relElement ;
+		}
+
 		// Second call: Show the Popup at the specified location, with the correct size.
 		this._Popup.show( x, y, iMainWidth, eMainNode.offsetHeight, relElement ) ;
 
@@ -373,6 +446,9 @@ function CheckPopupOnHide( forceHide )
 		window.clearInterval( this._Timer ) ;
 		this._Timer = null ;
 
+		if (this._Popup &amp;&amp; this.ParentPanel &amp;&amp; !forceHide)
+			this.ParentPanel.ResizeForSubpanel(this, 0, 0) ;
+
 		FCKTools.RunFunction( this.OnHide, this ) ;
 	}
 }
@@ -383,4 +459,5 @@ function FCKPanel_Cleanup()
 	this._Window = null ;
 	this.Document = null ;
 	this.MainNode = null ;
+	this.RelativeElement = null ;
 }</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckpanel.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckplugin.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckspecialcombo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckstyle.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbar.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbutton.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckw3crange.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckxml.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckxml_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/classes/fckxml_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -311,7 +311,7 @@ FCKUnlinkCommand.prototype.GetState = function()
 	return state ;
 }
 
-FCKVisitLinkCommand = function()
+var FCKVisitLinkCommand = function()
 {
 	this.Name = 'VisitLink';
 }</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fck_othercommands.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -83,7 +83,6 @@ FCKBlockQuoteCommand.prototype =
 
 		if ( state == FCK_TRISTATE_OFF )
 		{
-			iterator.EnforceRealBlocks = true ;
 			var paragraphs = [] ;
 			while ( ( block = iterator.GetNextParagraph() ) )
 				paragraphs.push( block ) ;
@@ -109,6 +108,13 @@ FCKBlockQuoteCommand.prototype =
 				block = paragraphs[i] ;
 				commonParent = FCKDomTools.GetCommonParents( block.parentNode, commonParent ).pop() ;
 			}
+
+			// The common parent must not be the following tags: table, tbody, tr, ol, ul.
+			while ( commonParent.nodeName.IEquals( 'table', 'tbody', 'tr', 'ol', 'ul' ) )
+				commonParent = commonParent.parentNode ;
+
+			// Reconstruct the block list to be processed such that all resulting blocks
+			// satisfy parentNode == commonParent.
 			var lastBlock = null ;
 			while ( paragraphs.length &gt; 0 )
 			{
@@ -150,6 +156,7 @@ FCKBlockQuoteCommand.prototype =
 		else if ( state == FCK_TRISTATE_ON )
 		{
 			var moveOutNodes = [] ;
+			var elementMarkers = {} ;
 			while ( ( block = iterator.GetNextParagraph() ) )
 			{
 				var bqParent = null ;
@@ -165,11 +172,27 @@ FCKBlockQuoteCommand.prototype =
 					block = block.parentNode ;
 				}
 
-				if ( bqParent &amp;&amp; bqChild )
+				// Remember the blocks that were recorded down in the moveOutNodes array
+				// to prevent duplicates.
+				if ( bqParent &amp;&amp; bqChild &amp;&amp; !bqChild._fckblockquotemoveout )
+				{
 					moveOutNodes.push( bqChild ) ;
+					FCKDomTools.SetElementMarker( elementMarkers, bqChild, '_fckblockquotemoveout', true ) ;
+				}
 			}
+			FCKDomTools.ClearAllMarkers( elementMarkers ) ;
 
 			var movedNodes = [] ;
+			var processedBlockquoteBlocks = [], elementMarkers = {} ;
+			var noBlockLeft = function( bqBlock )
+			{
+				for ( var i = 0 ; i &lt; bqBlock.childNodes.length ; i++ )
+				{
+					if ( FCKListsLib.BlockElements[ bqBlock.childNodes[i].nodeName.toLowerCase() ] )
+						return false ;
+				}
+				return true ;
+			} ;
 			while ( moveOutNodes.length &gt; 0 )
 			{
 				var node = moveOutNodes.shift() ;
@@ -178,23 +201,31 @@ FCKBlockQuoteCommand.prototype =
 				// If the node is located at the beginning or the end, just take it out without splitting.
 				// Otherwise, split the blockquote node and move the paragraph in between the two blockquote nodes.
 				if ( node == node.parentNode.firstChild )
-				{
 					bqBlock.parentNode.insertBefore( bqBlock.removeChild( node ), bqBlock ) ;
-					if ( ! bqBlock.firstChild )
-						bqBlock.parentNode.removeChild( bqBlock ) ;
-				}
 				else if ( node == node.parentNode.lastChild )
-				{
 					bqBlock.parentNode.insertBefore( bqBlock.removeChild( node ), bqBlock.nextSibling ) ;
-					if ( ! bqBlock.firstChild )
-						bqBlock.parentNode.removeChild( bqBlock ) ;
-				}
 				else
 					FCKDomTools.BreakParent( node, node.parentNode, range ) ;
 
+				// Remember the blockquote node so we can clear it later (if it becomes empty).
+				if ( !bqBlock._fckbqprocessed )
+				{
+					processedBlockquoteBlocks.push( bqBlock ) ;
+					FCKDomTools.SetElementMarker( elementMarkers, bqBlock, '_fckbqprocessed', true );
+				}
+
 				movedNodes.push( node ) ;
 			}
 
+			// Clear blockquote nodes that have become empty.
+			for ( var i = processedBlockquoteBlocks.length - 1 ; i &gt;= 0 ; i-- )
+			{
+				var bqBlock = processedBlockquoteBlocks[i] ;
+				if ( noBlockLeft( bqBlock ) )
+					FCKDomTools.RemoveNode( bqBlock ) ;
+			}
+			FCKDomTools.ClearAllMarkers( elementMarkers ) ;
+
 			if ( FCKConfig.EnterMode.IEquals( 'br' ) )
 			{
 				while ( movedNodes.length )</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckblockquotecommand.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckcorestylecommand.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -38,9 +38,19 @@ FCKFitWindow.prototype.Execute = function()
 	var eParent ;
 
 	// Save the current selection and scroll position.
-	var oRange = new FCKDomRange( FCK.EditorWindow ) ;
-	oRange.MoveToSelection() ;
-	var oEditorScrollPos = FCKTools.GetScrollPosition( FCK.EditorWindow ) ;
+	var oRange, oEditorScrollPos ;
+	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+	{
+		oRange = new FCKDomRange( FCK.EditorWindow ) ;
+		oRange.MoveToSelection() ;
+		oEditorScrollPos = FCKTools.GetScrollPosition( FCK.EditorWindow ) ;
+	}
+	else
+	{
+		var eTextarea = FCK.EditingArea.Textarea ;
+		oRange = !FCKBrowserInfo.IsIE &amp;&amp; [ eTextarea.selectionStart, eTextarea.selectionEnd ] ;
+		oEditorScrollPos = [ eTextarea.scrollLeft, eTextarea.scrollTop ] ;
+	}
 
 	// No original style properties known? Go fullscreen.
 	if ( !this.IsMaximized )
@@ -167,8 +177,21 @@ FCKFitWindow.prototype.Execute = function()
 	FCK.Focus() ;
 
 	// Restore the selection and scroll position of inside the document.
-	oRange.Select() ;
-	FCK.EditorWindow.scrollTo( oEditorScrollPos.X, oEditorScrollPos.Y ) ;
+	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+	{
+		oRange.Select() ;
+		FCK.EditorWindow.scrollTo( oEditorScrollPos.X, oEditorScrollPos.Y ) ;
+	}
+	else
+	{
+		if ( !FCKBrowserInfo.IsIE )
+		{
+			eTextarea.selectionStart = oRange[0] ;
+			eTextarea.selectionEnd = oRange[1] ;
+		}
+		eTextarea.scrollLeft = oEditorScrollPos[0] ;
+		eTextarea.scrollTop = oEditorScrollPos[1] ;
+	}
 }
 
 FCKFitWindow.prototype.GetState = function()</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckfitwindow.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckindentcommands.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckjustifycommands.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fcklistcommands.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fcknamedcommand.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -56,9 +56,12 @@ FCKShowBlockCommand.prototype.Execute = function()
 	else
 	{
 		var focus = FCK.EditorWindow.getSelection().focusNode ;
-		if ( focus.nodeType != 1 )
-			focus = focus.parentNode ;
-		FCKDomTools.ScrollIntoView( focus, false ) ;
+		if ( focus )
+		{
+			if ( focus.nodeType != 1 )
+				focus = focus.parentNode ;
+			FCKDomTools.ScrollIntoView( focus, false ) ;
+		}
 	}
 
 	FCK.Events.FireEvent( 'OnSelectionChange' ) ;</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckshowblocks.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -25,12 +25,20 @@
 var FCKSpellCheckCommand = function()
 {
 	this.Name = 'SpellCheck' ;
-	this.IsEnabled = ( FCKConfig.SpellChecker == 'SpellerPages' ) ;
+	this.IsEnabled = ( FCKConfig.SpellChecker != 'ieSpell' ) ;
 }
 
 FCKSpellCheckCommand.prototype.Execute = function()
 {
-	FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'dialog/fck_spellerpages.html', 440, 480 ) ;
+	switch ( FCKConfig.SpellChecker )
+	{
+		case 'SpellerPages' :
+			FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'dialog/fck_spellerpages.html', 440, 480 ) ;
+			break;
+
+		case 'WSC' :
+			FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'wsc/w.html', 530, 480 ) ;
+	}
 }
 
 FCKSpellCheckCommand.prototype.GetState = function()</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -25,7 +25,7 @@
 var FCKSpellCheckCommand = function()
 {
 	this.Name = 'SpellCheck' ;
-	this.IsEnabled = ( FCKConfig.SpellChecker == 'ieSpell' || FCKConfig.SpellChecker == 'SpellerPages' ) ;
+	this.IsEnabled = true ;
 }
 
 FCKSpellCheckCommand.prototype.Execute = function()
@@ -39,6 +39,9 @@ FCKSpellCheckCommand.prototype.Execute = function()
 		case 'SpellerPages' :
 			FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'dialog/fck_spellerpages.html', 440, 480 ) ;
 			break ;
+
+		case 'WSC' :
+			FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'wsc/w.html', 530, 480 ) ;
 	}
 }
 </diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fckstylecommand.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fcktablecommand.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/fckconstants.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -40,9 +40,9 @@ function InitializeAPI()
 		// objects that aren't really FCKeditor instances.
 		var sScript =
 			'window.FCKeditorAPI = {' +
-				'Version : &quot;2.6.3&quot;,' +
-				'VersionBuild : &quot;19836&quot;,' +
-				'Instances : new Object(),' +
+				'Version : &quot;2.6.4&quot;,' +
+				'VersionBuild : &quot;21629&quot;,' +
+				'Instances : window.FCKeditorAPI &amp;&amp; window.FCKeditorAPI.Instances || {},' +
 
 				'GetInstance : function( name )' +
 				'{' +
@@ -60,7 +60,7 @@ function InitializeAPI()
 					'this._FCKOriginalSubmit() ;' +
 				'},' +
 
-				'_FunctionQueue	: {' +
+				'_FunctionQueue	: window.FCKeditorAPI &amp;&amp; window.FCKeditorAPI._FunctionQueue || {' +
 					'Functions : new Array(),' +
 					'IsRunning : false,' +
 
@@ -117,8 +117,9 @@ function InitializeAPI()
 			}
 			else if ( FCKBrowserInfo.IsSafari )
 			{
-				// oParentWindow.eval in Safari and Gran Paradiso executes in the calling window
-				// environment, instead of the parent one. The following should make it work.
+				// oParentWindow.eval in Safari executes in the calling window
+				// environment, instead of the parent one. The following should
+				// make it work.
 				var oParentDocument = oParentWindow.document ;
 				var eScript = oParentDocument.createElement('script') ;
 				eScript.appendChild( oParentDocument.createTextNode( sScript ) ) ;</diff>
      <filename>public/javascripts/fckeditor/editor/_source/fckeditorapi.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -148,13 +148,6 @@ String.prototype.Replace = function( regExp, replacement, thisObj )
 		return this.replace( regExp, replacement ) ;
 }
 
-Array.prototype.AddItem = function( item )
-{
-	var i = this.length ;
-	this[ i ] = item ;
-	return i ;
-}
-
 Array.prototype.IndexOf = function( value )
 {
 	for ( var i = 0 ; i &lt; this.length ; i++ )</diff>
      <filename>public/javascripts/fckeditor/editor/_source/fckjscoreextensions.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/fckscriptloader.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -409,7 +409,11 @@ var FCK =
 			FCK.EditorDocument.detachEvent(&quot;onselectionchange&quot;, Doc_OnSelectionChange ) ;
 		}
 
-		FCKTempBin.Reset();
+		FCKTempBin.Reset() ;
+
+		// Bug #2469: SelectionData.createRange becomes undefined after the editor
+		// iframe is changed by FCK.SetData().
+		FCK.Selection.Release() ;
 
 		if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
 		{</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fck.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -337,6 +337,9 @@ function FCK_ContextMenu_OnBeforeOpen()
 
 function FCK_ContextMenu_OnItemClick( item )
 {
-	FCK.Focus() ;
+	// IE might work incorrectly if we refocus the editor #798
+	if ( !FCKBrowserInfo.IsIE )
+		FCK.Focus() ;
+
 	FCKCommands.GetCommand( item.Name ).Execute( item.CustomData ) ;
 }</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fck_contextmenu.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -229,9 +229,8 @@ FCK.InitializeBehaviors = function()
 	}
 	else if ( FCKBrowserInfo.IsSafari )
 	{
-		var cancelHandler = function( evt ){ if ( ! FCK.MouseDownFlag ) evt.returnValue = false ; }
-		this.EditorDocument.addEventListener( 'dragenter', cancelHandler, true ) ;
-		this.EditorDocument.addEventListener( 'dragover', cancelHandler, true ) ;
+		this.EditorDocument.addEventListener( 'dragover', function ( evt )
+				{ if ( !FCK.MouseDownFlag &amp;&amp; FCK.Config.ForcePasteAsPlainText ) evt.returnValue = false ; }, true ) ;
 		this.EditorDocument.addEventListener( 'drop', this._ExecDrop, true ) ;
 		this.EditorDocument.addEventListener( 'mousedown',
 			function( ev )
@@ -322,7 +321,12 @@ FCK.ExecuteRedirectedNamedCommand = function( commandName, commandParameter )
 				if ( FCK.Paste() )
 					FCK.ExecuteNamedCommand( 'Paste', null, true ) ;
 			}
-			catch (e)	{ FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.Paste, 'dialog/fck_paste.html', 400, 330, 'Security' ) ; }
+			catch (e)	{
+				if ( FCKConfig.ForcePasteAsPlainText )
+					FCK.PasteAsPlainText() ;
+				else
+					FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.Paste, 'dialog/fck_paste.html', 400, 330, 'Security' ) ;
+			}
 			break ;
 		default :
 			FCK.ExecuteNamedCommand( commandName, commandParameter ) ;</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fck_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -136,7 +136,7 @@ FCK.InitializeBehaviors = function( dontReturn )
 
 	this.EditorDocument.attachEvent(&quot;ondblclick&quot;, Doc_OnDblClick ) ;
 
-	this.EditorDocument.attachEvent(&quot;onbeforedeactivate&quot;, function(){ FCKSelection.Save( true ) ; } ) ;
+	this.EditorDocument.attachEvent(&quot;onbeforedeactivate&quot;, function(){ FCKSelection.Save() ; } ) ;
 
 	// Catch cursor selection changes.
 	this.EditorDocument.attachEvent(&quot;onselectionchange&quot;, Doc_OnSelectionChange ) ;</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fck_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckbrowserinfo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -28,8 +28,8 @@ FCKCodeFormatter.Init = function()
 	var oRegex = this.Regex = new Object() ;
 
 	// Regex for line breaks.
-	oRegex.BlocksOpener = /\&lt;(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi ;
-	oRegex.BlocksCloser = /\&lt;\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi ;
+	oRegex.BlocksOpener = /\&lt;(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DL|DT|DD|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi ;
+	oRegex.BlocksCloser = /\&lt;\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DL|DT|DD|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi ;
 
 	oRegex.NewLineTags	= /\&lt;(BR|HR)[^\&gt;]*\&gt;/gi ;
 
@@ -38,8 +38,8 @@ FCKCodeFormatter.Init = function()
 	oRegex.LineSplitter = /\s*\n+\s*/g ;
 
 	// Regex for indentation.
-	oRegex.IncreaseIndent = /^\&lt;(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\&gt;]/i ;
-	oRegex.DecreaseIndent = /^\&lt;\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \&gt;]/i ;
+	oRegex.IncreaseIndent = /^\&lt;(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \/\&gt;]/i ;
+	oRegex.DecreaseIndent = /^\&lt;\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \&gt;]/i ;
 	oRegex.FormatIndentatorRemove = new RegExp( '^' + FCKConfig.FormatIndentator ) ;
 
 	oRegex.ProtectedTags = /(&lt;PRE[^&gt;]*&gt;)([\s\S]*?)(&lt;\/PRE&gt;)/gi ;
@@ -47,7 +47,7 @@ FCKCodeFormatter.Init = function()
 
 FCKCodeFormatter._ProtectData = function( outer, opener, data, closer )
 {
-	return opener + '___FCKpd___' + FCKCodeFormatter.ProtectedData.AddItem( data ) + closer ;
+	return opener + '___FCKpd___' + ( FCKCodeFormatter.ProtectedData.push( data ) - 1 ) + closer ;
 }
 
 FCKCodeFormatter.Format = function( html )</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckcodeformatter.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckcommands.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -154,7 +154,7 @@ FCKConfig.Plugins.Items = new Array() ;
 
 FCKConfig.Plugins.Add = function( name, langs, path )
 {
-	FCKConfig.Plugins.Items.AddItem( [name, langs, path] ) ;
+	FCKConfig.Plugins.Items.push( [name, langs, path] ) ;
 }
 
 // FCKConfig.ProtectedSource: object that holds a collection of Regular
@@ -180,7 +180,7 @@ FCKConfig.ProtectedSource.RegexEntries = [
 
 FCKConfig.ProtectedSource.Add = function( regexPattern )
 {
-	this.RegexEntries.AddItem( regexPattern ) ;
+	this.RegexEntries.push( regexPattern ) ;
 }
 
 FCKConfig.ProtectedSource.Protect = function( html )</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckconfig.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -32,7 +32,7 @@ var FCKDebug =
 
 		try
 		{
-			this._GetWindow().Output( message, color ) ;
+			this._GetWindow().Output( message, color, noParse ) ;
 		}
 		catch ( e ) {}	 // Ignore errors
 	},</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckdebug.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckdebug_empty.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -94,7 +94,7 @@ var FCKDialog = ( function()
 				TopWindow : topWindow
 			}
 
-			FCK.ToolbarSet.CurrentInstance.Selection.Save() ;
+			FCK.ToolbarSet.CurrentInstance.Selection.Save( true ) ;
 
 			// Calculate the dialog position, centering it on the screen.
 			var viewSize = FCKTools.GetViewPaneSize( topWindow ) ;</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckdialog.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -27,7 +27,7 @@ FCKDocumentProcessor._Items = new Array() ;
 FCKDocumentProcessor.AppendNew = function()
 {
 	var oNewItem = new Object() ;
-	this._Items.AddItem( oNewItem ) ;
+	this._Items.push( oNewItem ) ;
 	return oNewItem ;
 }
 
@@ -122,7 +122,7 @@ FCKPageBreaksProcessor.ProcessDocument = function( document )
 }
 
 // EMBED and OBJECT tags.
-FCKEmbedAndObjectProcessor = (function()
+var FCKEmbedAndObjectProcessor = (function()
 {
 	var customProcessors = [] ;
 </diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckdocumentprocessor.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckdomtools.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -55,6 +55,7 @@ var FCKLanguageManager = FCK.Language =
 		hi		: 'Hindi',
 		hr		: 'Croatian',
 		hu		: 'Hungarian',
+		is		: 'Icelandic',
 		it		: 'Italian',
 		ja		: 'Japanese',
 		km		: 'Khmer',</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcklanguagemanager.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcklisthandler.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcklistslib.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckplugins.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckregexlib.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckselection.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckselection_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -155,6 +155,7 @@ FCKSelection.HasAncestorNode = function( nodeTagName )
 } ;
 
 // The &quot;nodeTagName&quot; parameter must be UPPER CASE.
+// It can be also an array of names
 FCKSelection.MoveToAncestorNode = function( nodeTagName )
 {
 	var oNode, oRange ;
@@ -180,7 +181,7 @@ FCKSelection.MoveToAncestorNode = function( nodeTagName )
 		oNode = oRange.parentElement() ;
 	}
 
-	while ( oNode &amp;&amp; oNode.nodeName != nodeTagName )
+	while ( oNode &amp;&amp; !oNode.nodeName.Equals( nodeTagName ) )
 		oNode = oNode.parentNode ;
 
 	return oNode ;
@@ -209,23 +210,29 @@ FCKSelection.GetSelection = function()
 	return FCK.EditorDocument.selection ;
 }
 
-FCKSelection.Save = function( noFocus )
+FCKSelection.Save = function( lock )
 {
-	// Ensures the editor has the selection focus. (#1801)
-	if ( !noFocus )
-		FCK.Focus() ;
-
 	var editorDocument = FCK.EditorDocument ;
 
 	if ( !editorDocument )
 		return ;
 
+	// Avoid saving again a selection while a dialog is open #2616
+	if ( this.locked )
+		return ;
+	this.locked = !!lock ;
+
 	var selection = editorDocument.selection ;
 	var range ;
 
 	if ( selection )
 	{
-		range = selection.createRange() ;
+		// The call might fail if the document doesn't have the focus (#1801),
+		// but we don't want to modify the current selection (#2495) with a call to FCK.Focus() ;
+		try {
+			range = selection.createRange() ;
+		}
+		catch(e) {}
 
 		// Ensure that the range comes from the editor document.
 		if ( range )
@@ -275,5 +282,6 @@ FCKSelection.Restore = function()
 
 FCKSelection.Release = function()
 {
+	this.locked = false ;
 	delete this.SelectionData ;
 }</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckselection_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckstyles.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -52,7 +52,7 @@ FCKTableHandler.DeleteRows = function( row )
 		//queue up the rows -- it's possible ( and likely ) that we may get duplicates
 		for ( var i = 0; i &lt; aCells.length; i++ )
 		{
-			var oRow = FCKTools.GetElementAscensor( aCells[i],'TR' ) ;
+			var oRow = aCells[i].parentNode ;
 			aRowsToDelete[oRow.rowIndex] = oRow ;
 		}
 		for ( var i = aRowsToDelete.length; i &gt;= 0; i-- )
@@ -118,13 +118,13 @@ FCKTableHandler.InsertColumn = function( insertBefore )
 
 	var iIndex = oCell.cellIndex ;
 
-	// Loop throw all rows available in the table.
+	// Loop through all rows available in the table.
 	for ( var i = 0 ; i &lt; oTable.rows.length ; i++ )
 	{
 		// Get the row.
 		var oRow = oTable.rows[i] ;
 
-		// If the row doens't have enough cells, ignore it.
+		// If the row doesn't have enough cells, ignore it.
 		if ( oRow.cells.length &lt; ( iIndex + 1 ) )
 			continue ;
 
@@ -136,12 +136,7 @@ FCKTableHandler.InsertColumn = function( insertBefore )
 		// Get back the currently selected cell.
 		var oBaseCell = oRow.cells[iIndex] ;
 
-		if ( insertBefore )
-			oRow.insertBefore( oCell, oBaseCell ) ;
-		else if ( oBaseCell.nextSibling )
-			oRow.insertBefore( oCell, oBaseCell.nextSibling ) ;
-		else
-			oRow.appendChild( oCell ) ;
+		oRow.insertBefore( oCell, ( insertBefore ? oBaseCell : oBaseCell.nextSibling ) ) ;
 	}
 }
 
@@ -218,7 +213,7 @@ FCKTableHandler.DeleteCell = function( cell )
 	if ( cell.parentNode.cells.length == 1 )
 	{
 		// Delete the entire row.
-		FCKTableHandler.DeleteRows( FCKTools.GetElementAscensor( cell, 'TR' ) ) ;
+		FCKTableHandler.DeleteRows( cell.parentNode ) ;
 		return ;
 	}
 
@@ -246,10 +241,7 @@ FCKTableHandler._UnmarkCells = function( cells, label )
 {
 	for ( var i = 0 ; i &lt; cells.length ; i++ )
 	{
-		if ( FCKBrowserInfo.IsIE )
-			cells[i].removeAttribute( label ) ;
-		else
-			delete cells[i][label] ;
+		FCKDomTools.ClearElementJSProperty(cells[i], label ) ;
 	}
 }
 
@@ -296,9 +288,16 @@ FCKTableHandler.CheckIsSelectionRectangular = function()
 	if ( cells.length &lt; 1 )
 		return false ;
 
+	// Check if the selected cells are all in the same table section (thead, tfoot or tbody)
+	for (var i = 0; i &lt; cells.length; i++)
+	{
+		if ( cells[i].parentNode.parentNode != cells[0].parentNode.parentNode )
+			return false ;
+	}
+
 	this._MarkCells( cells, '_CellSelected' ) ;
 
-	var tableMap = this._CreateTableMap( cells[0].parentNode.parentNode ) ;
+	var tableMap = this._CreateTableMap( cells[0] ) ;
 	var rowIdx = cells[0].parentNode.rowIndex ;
 	var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, cells[0] ) ;
 
@@ -357,7 +356,7 @@ FCKTableHandler.MergeCells = function()
 	// Assume the selected cells are already in a rectangular geometry.
 	// Because the checking is already done by FCKTableCommand.
 	var refCell = cells[0] ;
-	var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
+	var tableMap = this._CreateTableMap( refCell ) ;
 	var rowIdx = refCell.parentNode.rowIndex ;
 	var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
 
@@ -385,12 +384,12 @@ FCKTableHandler.MergeCells = function()
 			}
 		}
 		if ( rowChildNodesCount &gt; 0 )
-			cellContents.appendChild( FCKTools.GetElementDocument( refCell ).createElement( 'br' ) ) ;
+			cellContents.appendChild( FCK.EditorDocument.createElement( 'br' ) ) ;
 	}
 
 	this._ReplaceCellsByMarker( tableMap, '_SelectedCells', refCell ) ;
 	this._UnmarkCells( cells, '_SelectedCells' ) ;
-	this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
+	this._InstallTableMap( tableMap, refCell.parentNode.parentNode.parentNode ) ;
 	refCell.appendChild( cellContents ) ;
 
 	if ( FCKBrowserInfo.IsGeckoLike &amp;&amp; ( ! refCell.firstChild ) )
@@ -416,7 +415,7 @@ FCKTableHandler.MergeRight = function()
 	refCell.appendChild( cellContents ) ;
 	this._MarkCells( [nextCell], '_Replace' ) ;
 	this._ReplaceCellsByMarker( tableMap, '_Replace', refCell ) ;
-	this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
+	this._InstallTableMap( tableMap, refCell.parentNode.parentNode.parentNode ) ;
 
 	this._MoveCaretToCell( refCell, false ) ;
 }
@@ -434,11 +433,11 @@ FCKTableHandler.MergeDown = function()
 	while ( nextCell &amp;&amp; nextCell.childNodes &amp;&amp; nextCell.childNodes.length &gt; 0 )
 		cellContents.appendChild( nextCell.removeChild( nextCell.firstChild ) ) ;
 	if ( cellContents.firstChild )
-		cellContents.insertBefore( FCKTools.GetElementDocument( nextCell ).createElement( 'br' ), cellContents.firstChild ) ;
+		cellContents.insertBefore( FCK.EditorDocument.createElement( 'br' ), cellContents.firstChild ) ;
 	refCell.appendChild( cellContents ) ;
 	this._MarkCells( [nextCell], '_Replace' ) ;
 	this._ReplaceCellsByMarker( tableMap, '_Replace', refCell ) ;
-	this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
+	this._InstallTableMap( tableMap, refCell.parentNode.parentNode.parentNode ) ;
 
 	this._MoveCaretToCell( refCell, false ) ;
 }
@@ -450,17 +449,17 @@ FCKTableHandler.HorizontalSplitCell = function()
 		return ;
 
 	var refCell = cells[0] ;
-	var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
+	var tableMap = this._CreateTableMap( refCell ) ;
 	var rowIdx = refCell.parentNode.rowIndex ;
 	var colIdx = FCKTableHandler._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
 	var cellSpan = isNaN( refCell.colSpan ) ? 1 : refCell.colSpan ;
 
 	if ( cellSpan &gt; 1 )
 	{
-		// Splittng a multi-column cell - original cell gets ceil(colSpan/2) columns,
+		// Splitting a multi-column cell - original cell gets ceil(colSpan/2) columns,
 		// new cell gets floor(colSpan/2).
 		var newCellSpan = Math.ceil( cellSpan / 2 ) ;
-		var newCell = FCKTools.GetElementDocument( refCell ).createElement( 'td' ) ;
+		var newCell = FCK.EditorDocument.createElement( refCell.nodeName ) ;
 		if ( FCKBrowserInfo.IsGeckoLike )
 			FCKTools.AppendBogusBr( newCell ) ;
 		var startIdx = colIdx + newCellSpan ;
@@ -488,7 +487,7 @@ FCKTableHandler.HorizontalSplitCell = function()
 			if ( tableMap[i][colIdx] == refCell )
 			{
 				newRow.push( refCell ) ;
-				newRow.push( FCKTools.GetElementDocument( refCell ).createElement( 'td' ) ) ;
+				newRow.push( FCK.EditorDocument.createElement( refCell.nodeName ) ) ;
 				if ( FCKBrowserInfo.IsGeckoLike )
 					FCKTools.AppendBogusBr( newRow[newRow.length - 1] ) ;
 			}
@@ -504,7 +503,7 @@ FCKTableHandler.HorizontalSplitCell = function()
 		tableMap = newTableMap ;
 	}
 
-	this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
+	this._InstallTableMap( tableMap, refCell.parentNode.parentNode.parentNode ) ;
 }
 
 FCKTableHandler.VerticalSplitCell = function()
@@ -514,10 +513,12 @@ FCKTableHandler.VerticalSplitCell = function()
 		return ;
 
 	var currentCell = cells[0] ;
-	var tableMap = this._CreateTableMap( currentCell.parentNode.parentNode ) ;
-	var cellIndex = FCKTableHandler._GetCellIndexSpan( tableMap, currentCell.parentNode.rowIndex, currentCell ) ;
-	var currentRowSpan = currentCell.rowSpan ;
+	var tableMap = this._CreateTableMap( currentCell ) ;
 	var currentRowIndex = currentCell.parentNode.rowIndex ;
+	var cellIndex = FCKTableHandler._GetCellIndexSpan( tableMap, currentRowIndex, currentCell ) ;
+	// Save current cell colSpan
+	var currentColSpan = isNaN( currentCell.colSpan ) ? 1 : currentCell.colSpan ;
+	var currentRowSpan = currentCell.rowSpan ;
 	if ( isNaN( currentRowSpan ) )
 		currentRowSpan = 1 ;
 
@@ -528,33 +529,36 @@ FCKTableHandler.VerticalSplitCell = function()
 
 		// 2. Find the appropriate place to insert a new cell at the next row.
 		var newCellRowIndex = currentRowIndex + Math.ceil( currentRowSpan / 2 ) ;
+		var oRow = tableMap[newCellRowIndex] ;
 		var insertMarker = null ;
-		for ( var i = cellIndex+1 ; i &lt; tableMap[newCellRowIndex].length ; i++ )
+		for ( var i = cellIndex+1 ; i &lt; oRow.length ; i++ )
 		{
-			if ( tableMap[newCellRowIndex][i].parentNode.rowIndex == newCellRowIndex )
+			if ( oRow[i].parentNode.rowIndex == newCellRowIndex )
 			{
-				insertMarker = tableMap[newCellRowIndex][i] ;
+				insertMarker = oRow[i] ;
 				break ;
 			}
 		}
 
-		// 3. Insert the new cell to the indicated place, with the appropriate rowSpan, next row.
-		var newCell = FCK.EditorDocument.createElement( 'td' ) ;
+		// 3. Insert the new cell to the indicated place, with the appropriate rowSpan and colSpan, next row.
+		var newCell = FCK.EditorDocument.createElement( currentCell.nodeName ) ;
 		newCell.rowSpan = Math.floor( currentRowSpan / 2 ) ;
+		if ( currentColSpan &gt; 1 )
+			newCell.colSpan = currentColSpan ;
 		if ( FCKBrowserInfo.IsGeckoLike )
 			FCKTools.AppendBogusBr( newCell ) ;
-		currentCell.parentNode.parentNode.rows[newCellRowIndex].insertBefore( newCell, insertMarker ) ;
+		currentCell.parentNode.parentNode.parentNode.rows[newCellRowIndex].insertBefore( newCell, insertMarker ) ;
 	}
 	else
 	{
 		// 1. Insert a new row.
-		var newCellRowIndex = currentRowIndex + 1 ;
+		var newSectionRowIdx = currentCell.parentNode.sectionRowIndex + 1 ;
 		var newRow = FCK.EditorDocument.createElement( 'tr' ) ;
-		var tBody = currentCell.parentNode.parentNode ;
-		if ( tBody.rows.length &gt; newCellRowIndex )
-			tBody.insertBefore( newRow, tBody.rows[newCellRowIndex] ) ;
+		var tSection = currentCell.parentNode.parentNode ;
+		if ( tSection.rows.length &gt; newSectionRowIdx )
+			tSection.insertBefore( newRow, tSection.rows[newSectionRowIdx] ) ;
 		else
-			tBody.appendChild( newRow ) ;
+			tSection.appendChild( newRow ) ;
 
 		// 2. +1 to rowSpan for all cells crossing currentCell's row.
 		for ( var i = 0 ; i &lt; tableMap[currentRowIndex].length ; )
@@ -574,8 +578,10 @@ FCKTableHandler.VerticalSplitCell = function()
 			i += colSpan ;
 		}
 
-		// 3. Insert a new cell to new row.
-		var newCell = FCK.EditorDocument.createElement( 'td' ) ;
+		// 3. Insert a new cell to new row. Set colSpan on the new cell.
+		var newCell = FCK.EditorDocument.createElement( currentCell.nodeName ) ;
+		if ( currentColSpan &gt; 1 )
+			newCell.colSpan = currentColSpan ;
 		if ( FCKBrowserInfo.IsGeckoLike )
 			FCKTools.AppendBogusBr( newCell	) ;
 		newRow.appendChild( newCell ) ;
@@ -612,29 +618,17 @@ FCKTableHandler._GetCellLocation = function( tableMap, cell  )
 	return null ;
 }
 
-// Get the cells available in a column of a TableMap.
-FCKTableHandler._GetColumnCells = function( tableMap, columnIndex )
-{
-	var aCollCells = new Array() ;
-
-	for ( var r = 0 ; r &lt; tableMap.length ; r++ )
-	{
-		var oCell = tableMap[r][columnIndex] ;
-		if ( oCell &amp;&amp; ( aCollCells.length == 0 || aCollCells[ aCollCells.length - 1 ] != oCell ) )
-			aCollCells[ aCollCells.length ] = oCell ;
-	}
-
-	return aCollCells ;
-}
-
 // This function is quite hard to explain. It creates a matrix representing all cells in a table.
 // The difference here is that the &quot;spanned&quot; cells (colSpan and rowSpan) are duplicated on the matrix
 // cells that are &quot;spanned&quot;. For example, a row with 3 cells where the second cell has colSpan=2 and rowSpan=3
 // will produce a bi-dimensional matrix with the following values (representing the cells):
-//		Cell1, Cell2, Cell2, Cell 3
-//		Cell4, Cell2, Cell2, Cell 5
-FCKTableHandler._CreateTableMap = function( table )
+//		Cell1, Cell2, Cell2, Cell3
+//		Cell4, Cell2, Cell2, Cell5
+//		Cell6, Cell2, Cell2, Cell7
+FCKTableHandler._CreateTableMap = function( refCell )
 {
+	var table = (refCell.nodeName == 'TABLE' ? refCell : refCell.parentNode.parentNode.parentNode ) ;
+
 	var aRows = table.rows ;
 
 	// Row and Column counters.
@@ -686,13 +680,6 @@ FCKTableHandler._InstallTableMap = function( tableMap, table )
 	// for storing the calculated rowSpan in IE.
 	var rowSpanAttr = FCKBrowserInfo.IsIE ? &quot;_fckrowspan&quot; : &quot;rowSpan&quot; ;
 
-	// Clear the table of all rows first.
-	while ( table.rows.length &gt; 0 )
-	{
-		var row = table.rows[0] ;
-		row.parentNode.removeChild( row ) ;
-	}
-
 	// Disconnect all the cells in tableMap from their parents, set all colSpan and rowSpan attributes to 1.
 	for ( var i = 0 ; i &lt; tableMap.length ; i++ )
 	{
@@ -748,23 +735,15 @@ FCKTableHandler._InstallTableMap = function( tableMap, table )
 		for ( var j = 0 ; j &lt; tableMap[i].length ; j++)
 		{
 			var cell = tableMap[i][j] ;
-			if ( FCKBrowserInfo.IsIE )
-			{
-				cell.removeAttribute( '_colScanned' ) ;
-				cell.removeAttribute( '_rowScanned' ) ;
-			}
-			else
-			{
-				delete cell._colScanned ;
-				delete cell._rowScanned ;
-			}
+			FCKDomTools.ClearElementJSProperty(cell, '_colScanned' ) ;
+			FCKDomTools.ClearElementJSProperty(cell, '_rowScanned' ) ;
 		}
 	}
 
 	// Insert physical rows and columns to the table.
 	for ( var i = 0 ; i &lt; tableMap.length ; i++ )
 	{
-		var rowObj = FCKTools.GetElementDocument( table ).createElement( 'tr' ) ;
+		var rowObj = FCK.EditorDocument.createElement( 'tr' ) ;
 		for ( var j = 0 ; j &lt; tableMap[i].length ; )
 		{
 			var cell = tableMap[i][j] ;
@@ -785,7 +764,15 @@ FCKTableHandler._InstallTableMap = function( tableMap, table )
 			if ( cell.rowSpan == 1 )
 				cell.removeAttribute( 'rowspan' ) ;
 		}
-		table.appendChild( rowObj ) ;
+		if ( FCKBrowserInfo.IsIE )
+		{
+			table.rows[i].replaceNode( rowObj ) ;
+		}
+		else
+		{
+			table.rows[i].innerHTML = '' ;
+			FCKDomTools.MoveChildren( rowObj, table.rows[i] ) ;
+		}
 	}
 }
 
@@ -819,7 +806,7 @@ FCKTableHandler.GetMergeRightTarget = function()
 		return null ;
 
 	var refCell = cells[0] ;
-	var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
+	var tableMap = this._CreateTableMap( refCell ) ;
 	var rowIdx = refCell.parentNode.rowIndex ;
 	var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
 	var nextColIdx = colIdx + ( isNaN( refCell.colSpan ) ? 1 : refCell.colSpan ) ;
@@ -847,7 +834,7 @@ FCKTableHandler.GetMergeDownTarget = function()
 		return null ;
 
 	var refCell = cells[0] ;
-	var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
+	var tableMap = this._CreateTableMap( refCell ) ;
 	var rowIdx = refCell.parentNode.rowIndex ;
 	var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
 	var newRowIdx = rowIdx + ( isNaN( refCell.rowSpan ) ? 1 : refCell.rowSpan ) ;
@@ -859,6 +846,10 @@ FCKTableHandler.GetMergeDownTarget = function()
 	if ( ! nextCell )
 		return null ;
 
+	// Check if the selected cells are both in the same table section (thead, tfoot or tbody).
+	if ( refCell.parentNode.parentNode != nextCell.parentNode.parentNode )
+		return null ;
+
 	// The two cells must have the same horizontal geometry, otherwise merging does not makes sense.
 	this._MarkCells( [refCell, nextCell], '_SizeTest' ) ;
 	var refGeometry = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_SizeTest' ) ;</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcktablehandler.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -48,7 +48,7 @@ FCKTableHandler.GetSelectedCells = function()
 		else
 			oCell = oRange.startContainer.childNodes[ oRange.startOffset ] ;
 
-		if ( oCell.tagName.Equals( 'TD', 'TH' ) )
+		if ( oCell.nodeName.Equals( 'TD', 'TH' ) )
 			aCells[aCells.length] = oCell ;
 	}
 </diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcktablehandler_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -25,7 +25,7 @@ FCKTableHandler.GetSelectedCells = function()
 {
 	if ( FCKSelection.GetType() == 'Control' )
 	{
-		var td = FCKSelection.MoveToAncestorNode( 'TD' ) ;
+		var td = FCKSelection.MoveToAncestorNode( ['TD', 'TH'] ) ;
 		return td ? [ td ] : [] ;
 	}
 </diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcktablehandler_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcktoolbaritems.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcktoolbarset.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcktools.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcktools_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fcktools_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckundo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckurlparams.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -296,7 +296,7 @@ FCKXHtml._AppendNode = function( xmlNode, htmlNode )
 // Append an item to the SpecialBlocks array and returns the tag to be used.
 FCKXHtml._AppendSpecialItem = function( item )
 {
-	return '___FCKsi___' + FCKXHtml.SpecialBlocks.AddItem( item ) ;
+	return '___FCKsi___' + ( FCKXHtml.SpecialBlocks.push( item ) - 1 ) ;
 }
 
 FCKXHtml._AppendEntity = function( xmlNode, entity )</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckxhtml.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckxhtml_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckxhtml_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -150,7 +150,7 @@ FCKXHtmlEntities.Initialize = function()
 			'&quot;':'quot',
 		//	'&amp;':'amp',		// This entity is automatically handled by the XHTML parser.
 		//	'&lt;':'lt',		// This entity is automatically handled by the XHTML parser.
-		//	'&gt;':'gt',		// This entity is automatically handled by the XHTML parser.
+			'&gt;':'gt',			// Opera and Safari don't encode it in their implementation
 			'&#710;':'circ',
 			'&#732;':'tilde',
 			'&#8194;':'ensp',
@@ -331,12 +331,15 @@ FCKXHtmlEntities.Initialize = function()
 	}
 	else
 	{
-		FCKXHtmlEntities.Entities = {} ;
+		FCKXHtmlEntities.Entities = {
+			'&gt;':'gt' // Opera and Safari don't encode it in their implementation
+		} ;
+		sChars = '&gt;';
 
 		// Even if we are not processing the entities, we must render the &amp;nbsp;
 		// correctly. As we don't want HTML entities, let's use its numeric
 		// representation (&amp;#160).
-		sChars = '&#160;' ;
+		sChars += '&#160;' ;
 	}
 
 	// Create the Regex used to find entities in the text.</diff>
      <filename>public/javascripts/fckeditor/editor/_source/internals/fckxhtmlentities.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/css/fck_editorarea.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/css/fck_internal.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/css/fck_showtableborders_gecko.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/common/fck_dialog_common.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -307,5 +307,41 @@ function CopyAttributes( oSource, oDest, oSkipAttributes )
 		}
 	}
 	// The style:
-	oDest.style.cssText = oSource.style.cssText ;
+	if ( oSource.style.cssText !== '' )
+		oDest.style.cssText = oSource.style.cssText ;
+}
+
+/**
+* Replaces a tag with another one, keeping its contents:
+* for example TD --&gt; TH, and TH --&gt; TD.
+* input: the original node, and the new tag name
+* http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-renameNode
+*/
+function RenameNode( oNode , newTag )
+{
+	// TODO: if the browser natively supports document.renameNode call it.
+	// does any browser currently support it in order to test?
+
+	// Only rename element nodes.
+	if ( oNode.nodeType != 1 )
+		return null ;
+
+	// If it's already correct exit here.
+	if ( oNode.nodeName == newTag )
+		return oNode ;
+
+	var oDoc = oNode.ownerDocument ;
+	// Create the new node
+	var newNode = oDoc.createElement( newTag ) ;
+
+	// Copy all attributes
+	CopyAttributes( oNode, newNode, {} ) ;
+
+	// Move children to the new node
+	FCKDomTools.MoveChildren( oNode, newNode ) ;
+
+	// Finally replace the node and return the new one
+	oNode.parentNode.replaceChild( newNode, oNode ) ;
+
+	return newNode ;
 }</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/common/fck_dialog_common.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -78,8 +78,8 @@ window.onload = function()
 								border-left: #000000 1px solid; border-bottom: #000000 1px solid&quot;&gt;
 								&lt;span fcklang=&quot;DlgAboutVersion&quot;&gt;version&lt;/span&gt;
 								&lt;br /&gt;
-								&lt;b&gt;2.6.3&lt;/b&gt;&lt;br /&gt;
-								Build 19836&lt;/td&gt;
+								&lt;b&gt;2.6.4&lt;/b&gt;&lt;br /&gt;
+								Build 21629&lt;/td&gt;
 						&lt;/tr&gt;
 					&lt;/table&gt;
 				&lt;/td&gt;
@@ -105,7 +105,7 @@ window.onload = function()
 					&lt;span fcklang=&quot;DlgAboutInfo&quot;&gt;For further information go to&lt;/span&gt; &lt;a href=&quot;http://www.fckeditor.net/?About&quot;
 						target=&quot;_blank&quot;&gt;http://www.fckeditor.net/&lt;/a&gt;.
 					&lt;br /&gt;
-					Copyright &amp;copy; 2003-2008 &lt;a href=&quot;#&quot; onclick=&quot;SendEMail();&quot;&gt;Frederico Caldeira Knabben&lt;/a&gt;
+					Copyright &amp;copy; 2003-2009 &lt;a href=&quot;#&quot; onclick=&quot;SendEMail();&quot;&gt;Frederico Caldeira Knabben&lt;/a&gt;
 				&lt;/td&gt;
 				&lt;td align=&quot;center&quot;&gt;
 					&lt;a href=&quot;http://www.fckeditor.net/sponsors/apply&quot; target=&quot;_blank&quot;&gt;Become a Sponsor&lt;/a&gt;</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_about.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_anchor.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_button.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_checkbox.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_colorselector.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -203,12 +203,43 @@ function CreateDiv()
 	var iterator = new FCKDomRangeIterator( range ) ;
 	var block ;
 
-	iterator.EnforceRealBlocks = true ;
 	var paragraphs = [] ;
+	while ( ( block = iterator.GetNextParagraph() ) )
+		paragraphs.push( block ) ;
+
+	// Make sure all paragraphs have the same parent.
+	var commonParent = paragraphs[0].parentNode ;
+	var tmp = [] ;
+	for ( var i = 0 ; i &lt; paragraphs.length ; i++ )
+	{
+		block = paragraphs[i] ;
+		commonParent = FCKDomTools.GetCommonParents( block.parentNode, commonParent ).pop() ;
+	}
+
+	// The common parent must not be the following tags: table, tbody, tr, ol, ul.
+	while ( commonParent.nodeName.IEquals( 'table', 'tbody', 'tr', 'ol', 'ul' ) )
+		commonParent = commonParent.parentNode ;
+
+	// Reconstruct the block list to be processed such that all resulting blocks
+	// satisfy parentNode == commonParent.
+	var lastBlock = null ;
+	while ( paragraphs.length &gt; 0 )
+	{
+		block = paragraphs.shift() ;
+		while ( block.parentNode != commonParent )
+			block = block.parentNode ;
+		if ( block != lastBlock )
+			tmp.push( block ) ;
+		lastBlock = block ;
+	}
+	paragraphs = tmp ;
+
+	// Split the paragraphs into groups depending on their BlockLimit element.
 	var groups = [] ;
 	var lastBlockLimit = null ;
-	while ( ( block = iterator.GetNextParagraph() ) )
+	for ( var i = 0 ; i &lt; paragraphs.length ; i++ )
 	{
+		block = paragraphs[i] ;
 		var elementPath = new FCKElementPath( block ) ;
 		if ( elementPath.BlockLimit != lastBlockLimit )
 		{
@@ -218,6 +249,7 @@ function CreateDiv()
 		groups[groups.length - 1].push( block ) ;
 	}
 
+	// Create a DIV container for each group.
 	for ( var i = 0 ; i &lt; groups.length ; i++ )
 	{
 		var divNode = FCK.EditorDocument.createElement( 'div' ) ;</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_div.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -456,7 +456,7 @@ function SetUrl( url )
 						&lt;tr&gt;
 							&lt;td nowrap=&quot;nowrap&quot;&gt;
 								&lt;span fcklang=&quot;DlgDocDocType&quot;&gt;Document Type Heading&lt;/span&gt;&lt;br /&gt;
-								&lt;select id=&quot;selDocType&quot; name=&quot;selDocType&quot; onchange=&quot;CheckOther( this, 'txtDocType' );&quot;&gt;
+								&lt;select id=&quot;selDocType&quot; onchange=&quot;CheckOther( this, 'txtDocType' );&quot;&gt;
 									&lt;option value=&quot;&quot; selected=&quot;selected&quot;&gt;&lt;/option&gt;
 									&lt;option value='&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;'&gt;HTML
 										4.01 Transitional&lt;/option&gt;</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_docprops.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_flash.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_flash/fck_flash.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_form.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_hiddenfield.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_image.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_image/fck_image.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_image/fck_image_preview.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_link.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -194,7 +194,7 @@ oParser.ParseEMailUri = function( sUrl )
 		}
 
 		// Try to match the email against the encode protection.
-		var aMatch = aLinkInfo[2].match( /^location\.href='mailto:'\+(String\.fromCharCode\([\d,]+\))\+'(.*)'$/ ) ;
+		var aMatch = aLinkInfo[2].match( /^(?:void\()?location\.href='mailto:'\+(String\.fromCharCode\([\d,]+\))\+'(.*)'\)?$/ ) ;
 		if ( aMatch )
 		{
 			// The link is encoded
@@ -253,7 +253,7 @@ oParser.CreateEMailUri = function( address, subject, body )
 			for ( var i = 0 ; i &lt; address.length ; i++ )
 				aAddressCode.push( address.charCodeAt( i ) ) ;
 
-			return 'javascript:location.href=\'mailto:\'+String.fromCharCode(' + aAddressCode.join( ',' ) + ')+\'?' + aParams.join( '&amp;' ) + '\'' ;
+			return 'javascript:void(location.href=\'mailto:\'+String.fromCharCode(' + aAddressCode.join( ',' ) + ')+\'?' + aParams.join( '&amp;' ) + '\')' ;
 	}
 
 	// EMailProtection 'none'</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_link/fck_link.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_listprop.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -87,6 +87,7 @@ window.onload = function ()
 	else
 	{
 		document.getElementById('txtData').style.display = '' ;
+		SelectField( 'txtData' ) ;
 	}
 
 	if ( sPastingType != 'Word' )</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_paste.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_radiobutton.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -142,7 +142,7 @@ CharacterCursor.prototype =
 		}
 
 		this._textNode = curNode ;
-		this._offset = curNode.length - 1 ;
+		this._offset = curNode &amp;&amp; curNode.length - 1 ;
 		return crossed ;
 	},
 
@@ -420,6 +420,8 @@ function GetMatchWord()
  */
 function CheckIsWordSeparator( c )
 {
+	if ( !c )
+		return true;
 	var code = c.charCodeAt( 0 );
 	if ( code &gt;= 9 &amp;&amp; code &lt;= 0xd )
 		return true;</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_replace.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -132,7 +132,7 @@ function Ok()
 						&lt;tr&gt;
 							&lt;td nowrap&gt;&lt;span fckLang=&quot;DlgSelectSize&quot;&gt;Size&lt;/span&gt;&amp;nbsp;&lt;/td&gt;
 							&lt;td nowrap&gt;&lt;input id=&quot;txtLines&quot; type=&quot;text&quot; size=&quot;2&quot; value=&quot;&quot;&gt;&amp;nbsp;&lt;span fckLang=&quot;DlgSelectLines&quot;&gt;lines&lt;/span&gt;&lt;/td&gt;
-							&lt;td nowrap align=&quot;right&quot;&gt;&lt;input id=&quot;chkMultiple&quot; name=&quot;chkMultiple&quot; type=&quot;checkbox&quot;&gt;&lt;label for=&quot;chkMultiple&quot; fckLang=&quot;DlgSelectChkMulti&quot;&gt;Allow
+							&lt;td nowrap align=&quot;right&quot;&gt;&lt;input id=&quot;chkMultiple&quot; type=&quot;checkbox&quot;&gt;&lt;label for=&quot;chkMultiple&quot; fckLang=&quot;DlgSelectChkMulti&quot;&gt;Allow
 									multiple selections&lt;/label&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 					&lt;/table&gt;
@@ -143,20 +143,20 @@ function Ok()
 					&lt;table width=&quot;100%&quot;&gt;
 						&lt;tr&gt;
 							&lt;td width=&quot;50%&quot;&gt;&lt;span fckLang=&quot;DlgSelectOpText&quot;&gt;Text&lt;/span&gt;&lt;br&gt;
-								&lt;input id=&quot;txtText&quot; style=&quot;WIDTH: 100%&quot; type=&quot;text&quot; name=&quot;txtText&quot;&gt;
+								&lt;input id=&quot;txtText&quot; style=&quot;WIDTH: 100%&quot; type=&quot;text&quot;&gt;
 							&lt;/td&gt;
 							&lt;td width=&quot;50%&quot;&gt;&lt;span fckLang=&quot;DlgSelectOpValue&quot;&gt;Value&lt;/span&gt;&lt;br&gt;
-								&lt;input id=&quot;txtValue&quot; style=&quot;WIDTH: 100%&quot; type=&quot;text&quot; name=&quot;txtValue&quot;&gt;
+								&lt;input id=&quot;txtValue&quot; style=&quot;WIDTH: 100%&quot; type=&quot;text&quot;&gt;
 							&lt;/td&gt;
 							&lt;td vAlign=&quot;bottom&quot;&gt;&lt;input onclick=&quot;Add();&quot; type=&quot;button&quot; fckLang=&quot;DlgSelectBtnAdd&quot; value=&quot;Add&quot;&gt;&lt;/td&gt;
 							&lt;td vAlign=&quot;bottom&quot;&gt;&lt;input onclick=&quot;Modify();&quot; type=&quot;button&quot; fckLang=&quot;DlgSelectBtnModify&quot; value=&quot;Modify&quot;&gt;&lt;/td&gt;
 						&lt;/tr&gt;
 						&lt;tr&gt;
 							&lt;td rowSpan=&quot;2&quot;&gt;&lt;select id=&quot;cmbText&quot; style=&quot;WIDTH: 100%&quot; onchange=&quot;GetE('cmbValue').selectedIndex = this.selectedIndex;Select(this);&quot;
-									size=&quot;5&quot; name=&quot;cmbText&quot;&gt;&lt;/select&gt;
+									size=&quot;5&quot;&gt;&lt;/select&gt;
 							&lt;/td&gt;
 							&lt;td rowSpan=&quot;2&quot;&gt;&lt;select id=&quot;cmbValue&quot; style=&quot;WIDTH: 100%&quot; onchange=&quot;GetE('cmbText').selectedIndex = this.selectedIndex;Select(this);&quot;
-									size=&quot;5&quot; name=&quot;cmbValue&quot;&gt;&lt;/select&gt;
+									size=&quot;5&quot;&gt;&lt;/select&gt;
 							&lt;/td&gt;
 							&lt;td vAlign=&quot;top&quot; colSpan=&quot;2&quot;&gt;
 							&lt;/td&gt;</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_select.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_select/fck_select.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_smiley.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_source.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_specialchar.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_spellerpages.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -31,14 +31,13 @@
 
 var dialog	= window.parent ;
 var oEditor = dialog.InnerDialogLoaded() ;
-var dialogArguments = dialog.Args() ;
 
-// Gets the document DOM
-var oDOM = oEditor.FCK.EditorDocument ;
+var FCKDomTools = oEditor.FCKDomTools ;
 
 // Gets the table if there is one selected.
 var table ;
 var e = dialog.Selection.GetSelectedElement() ;
+var hasColumnHeaders ;
 
 if ( ( !e &amp;&amp; document.location.search.substr(1) == 'Parent' ) || ( e &amp;&amp; e.tagName != 'TABLE' ) )
 	e = oEditor.FCKSelection.MoveToAncestorNode( 'TABLE' ) ;
@@ -88,6 +87,36 @@ window.onload = function()
 		var eCaption = oEditor.FCKDomTools.GetFirstChild( table, 'CAPTION' ) ;
 		if ( eCaption ) document.getElementById('txtCaption').value = eCaption.innerHTML ;
 
+		hasColumnHeaders = true ;
+		// Check if all the first cells in every row are TH
+		for (var row=0; row&lt;table.rows.length; row++)
+		{
+			// If just one cell isn't a TH then it isn't a header column
+			if ( table.rows[row].cells[0].nodeName != 'TH' )
+			{
+				hasColumnHeaders = false ;
+
+				break;
+			}
+		}
+
+		// Check if the table contains &lt;thead&gt;
+		if ((table.tHead !== null) )
+		{
+			if (hasColumnHeaders)
+				GetE('selHeaders').value = 'both' ;
+			else
+				GetE('selHeaders').value = 'row' ;
+		}
+		else
+		{
+			if (hasColumnHeaders)
+				GetE('selHeaders').value = 'col' ;
+			else
+				GetE('selHeaders').value = '' ;
+		}
+
+
 		document.getElementById('txtRows').disabled    = true ;
 		document.getElementById('txtColumns').disabled = true ;
 		SelectField( 'txtWidth' ) ;
@@ -104,8 +133,11 @@ function Ok()
 {
 	var bExists = ( table != null ) ;
 
+	var oDoc = oEditor.FCK.EditorDocument ;
+	oEditor.FCKUndo.SaveUndoStep() ;
+
 	if ( ! bExists )
-		table = oEditor.FCK.EditorDocument.createElement( &quot;TABLE&quot; ) ;
+		table = oDoc.createElement( &quot;TABLE&quot; ) ;
 
 	// Removes the Width and Height styles
 	if ( bExists &amp;&amp; table.style.width )		table.style.width = null ; //.removeAttribute(&quot;width&quot;) ;
@@ -129,7 +161,7 @@ function Ok()
 	{
 		if ( !eCaption )
 		{
-			eCaption = oEditor.FCK.EditorDocument.createElement( 'CAPTION' ) ;
+			eCaption = oDoc.createElement( 'CAPTION' ) ;
 			table.insertBefore( eCaption, table.firstChild ) ;
 		}
 
@@ -145,23 +177,132 @@ function Ok()
 			eCaption.parentNode.removeChild( eCaption ) ;
 	}
 
+	var headers = GetE('selHeaders').value ;
+	if ( bExists )
+	{
+		// Should we make a &lt;thead&gt;?
+		if ( table.tHead==null &amp;&amp; (headers=='row' || headers=='both') )
+		{
+			var oThead = table.createTHead() ;
+			var tbody = FCKDomTools.GetFirstChild( table, 'TBODY' ) ;
+			var theRow= FCKDomTools.GetFirstChild( tbody, 'TR' ) ;
+
+			//now change TD to TH:
+			for (var i = 0; i&lt;theRow.childNodes.length ; i++)
+			{
+				var th = RenameNode(theRow.childNodes[i], 'TH') ;
+				if (th != null)
+					th.scope='col' ;
+			}
+			oThead.appendChild( theRow ) ;
+		}
+
+		if ( table.tHead!==null &amp;&amp; !(headers=='row' || headers=='both') )
+		{
+			// Move the row out of the THead and put it in the TBody:
+			var tHead = table.tHead ;
+			var tbody = FCKDomTools.GetFirstChild( table, 'TBODY' ) ;
+
+			var previousFirstRow = tbody.firstChild ;
+			while ( tHead.firstChild )
+			{
+				var theRow = tHead.firstChild ;
+				for (var i = 0; i &lt; theRow.childNodes.length ; i++ )
+				{
+					var newCell = RenameNode( theRow.childNodes[i], 'TD' ) ;
+					if ( newCell != null )
+						newCell.removeAttribute( 'scope' ) ;
+				}
+				tbody.insertBefore( theRow, previousFirstRow ) ;
+			}
+			table.removeChild( tHead ) ;
+		}
+
+		// Should we make all first cells in a row TH?
+		if ( (!hasColumnHeaders)  &amp;&amp; (headers=='col' || headers=='both') )
+		{
+			for( var row=0 ; row &lt; table.rows.length ; row++ )
+			{
+				var newCell = RenameNode(table.rows[row].cells[0], 'TH') ;
+				if ( newCell != null )
+					newCell.scope = 'row' ;
+			}
+		}
+
+		// Should we make all first TH-cells in a row make TD? If 'yes' we do it the other way round :-)
+		if ( (hasColumnHeaders)  &amp;&amp; !(headers=='col' || headers=='both') )
+		{
+			for( var row=0 ; row &lt; table.rows.length ; row++ )
+			{
+				var oRow = table.rows[row] ;
+				if ( oRow.parentNode.nodeName == 'TBODY' )
+				{
+					var newCell = RenameNode(oRow.cells[0], 'TD') ;
+					if (newCell != null)
+						newCell.removeAttribute( 'scope' ) ;
+				}
+			}
+		}
+	}
+
 	if (! bExists)
 	{
-		var iRows = document.getElementById('txtRows').value ;
-		var iCols = document.getElementById('txtColumns').value ;
+		var iRows = GetE('txtRows').value ;
+		var iCols = GetE('txtColumns').value ;
 
-		for ( var r = 0 ; r &lt; iRows ; r++ )
+		var startRow = 0 ;
+		// Should we make a &lt;thead&gt; ?
+		if (headers=='row' || headers=='both')
 		{
+			startRow++ ;
+			var oThead = table.createTHead() ;
 			var oRow = table.insertRow(-1) ;
+			oThead.appendChild(oRow);
+
 			for ( var c = 0 ; c &lt; iCols ; c++ )
 			{
-				var oCell = oRow.insertCell(-1) ;
+				var oThcell = oDoc.createElement( 'TH' ) ;
+				oThcell.scope = 'col' ;
+				oRow.appendChild( oThcell ) ;
 				if ( oEditor.FCKBrowserInfo.IsGeckoLike )
-					oEditor.FCKTools.AppendBogusBr( oCell ) ;
+					oEditor.FCKTools.AppendBogusBr( oThcell ) ;
 			}
 		}
 
-		oEditor.FCKUndo.SaveUndoStep() ;
+		// Opera automatically creates a tbody when a thead has been added
+		var oTbody = FCKDomTools.GetFirstChild( table, 'TBODY' ) ;
+		if ( !oTbody )
+		{
+			// make TBODY if it doesn't exist
+			oTbody = oDoc.createElement( 'TBODY' ) ;
+			table.appendChild( oTbody ) ;
+		}
+		for ( var r = startRow ; r &lt; iRows; r++ )
+		{
+			var oRow = oDoc.createElement( 'TR' ) ;
+			oTbody.appendChild(oRow) ;
+
+			var startCol = 0 ;
+			// Is the first column a header?
+			if (headers=='col' || headers=='both')
+			{
+				var oThcell = oDoc.createElement( 'TH' ) ;
+				oThcell.scope = 'row' ;
+				oRow.appendChild( oThcell ) ;
+				if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+					oEditor.FCKTools.AppendBogusBr( oThcell ) ;
+
+				startCol++ ;
+			}
+			for ( var c = startCol ; c &lt; iCols ; c++ )
+			{
+				// IE will leave the TH at the end of the row if we use now oRow.insertCell(-1)
+				var oCell = oDoc.createElement( 'TD' ) ;
+				oRow.appendChild( oCell ) ;
+				if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+					oEditor.FCKTools.AppendBogusBr( oCell ) ;
+			}
+		}
 
 		oEditor.FCK.InsertElement( table ) ;
 	}
@@ -178,39 +319,44 @@ function Ok()
 				&lt;table cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; width=&quot;100%&quot; border=&quot;0&quot;&gt;
 					&lt;tr&gt;
 						&lt;td valign=&quot;top&quot;&gt;
-							&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
+							&lt;table cellspacing=&quot;1&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
 								&lt;tr&gt;
 									&lt;td&gt;
 										&lt;span fcklang=&quot;DlgTableRows&quot;&gt;Rows&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtRows&quot; type=&quot;text&quot; maxlength=&quot;3&quot; size=&quot;2&quot; value=&quot;3&quot; name=&quot;txtRows&quot;
+										&amp;nbsp;&lt;input id=&quot;txtRows&quot; type=&quot;text&quot; maxlength=&quot;3&quot; size=&quot;2&quot; value=&quot;3&quot;
 											onkeypress=&quot;return IsDigit(event);&quot; /&gt;&lt;/td&gt;
 								&lt;/tr&gt;
 								&lt;tr&gt;
 									&lt;td&gt;
 										&lt;span fcklang=&quot;DlgTableColumns&quot;&gt;Columns&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtColumns&quot; type=&quot;text&quot; maxlength=&quot;2&quot; size=&quot;2&quot; value=&quot;2&quot; name=&quot;txtColumns&quot;
+										&amp;nbsp;&lt;input id=&quot;txtColumns&quot; type=&quot;text&quot; maxlength=&quot;2&quot; size=&quot;2&quot; value=&quot;2&quot;
 											onkeypress=&quot;return IsDigit(event);&quot; /&gt;&lt;/td&gt;
 								&lt;/tr&gt;
 								&lt;tr&gt;
+									&lt;td&gt;&lt;span fcklang=&quot;DlgTableHeaders&quot;&gt;Headers&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;/td&gt;
-									&lt;td&gt;
-										&amp;nbsp;&lt;/td&gt;
+										&amp;nbsp;&lt;select id=&quot;selHeaders&quot;&gt;
+											&lt;option fcklang=&quot;DlgTableHeadersNone&quot; value=&quot;&quot;&gt;None&lt;/option&gt;
+											&lt;option fcklang=&quot;DlgTableHeadersRow&quot; value=&quot;row&quot;&gt;First row&lt;/option&gt;
+											&lt;option fcklang=&quot;DlgTableHeadersColumn&quot; value=&quot;col&quot;&gt;First column&lt;/option&gt;
+											&lt;option fcklang=&quot;DlgTableHeadersBoth&quot; value=&quot;both&quot;&gt;Both&lt;/option&gt;
+										&lt;/select&gt;
+									&lt;/td&gt;
 								&lt;/tr&gt;
 								&lt;tr&gt;
 									&lt;td&gt;
 										&lt;span fcklang=&quot;DlgTableBorder&quot;&gt;Border size&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtBorder&quot; type=&quot;text&quot; maxlength=&quot;2&quot; size=&quot;2&quot; value=&quot;1&quot; name=&quot;txtBorder&quot;
+										&amp;nbsp;&lt;input id=&quot;txtBorder&quot; type=&quot;text&quot; maxlength=&quot;2&quot; size=&quot;2&quot; value=&quot;1&quot;
 											onkeypress=&quot;return IsDigit(event);&quot; /&gt;&lt;/td&gt;
 								&lt;/tr&gt;
 								&lt;tr&gt;
 									&lt;td&gt;
 										&lt;span fcklang=&quot;DlgTableAlign&quot;&gt;Alignment&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;select id=&quot;selAlignment&quot; name=&quot;selAlignment&quot;&gt;
+										&amp;nbsp;&lt;select id=&quot;selAlignment&quot;&gt;
 											&lt;option fcklang=&quot;DlgTableAlignNotSet&quot; value=&quot;&quot; selected=&quot;selected&quot;&gt;&amp;lt;Not set&amp;gt;&lt;/option&gt;
 											&lt;option fcklang=&quot;DlgTableAlignLeft&quot; value=&quot;left&quot;&gt;Left&lt;/option&gt;
 											&lt;option fcklang=&quot;DlgTableAlignCenter&quot; value=&quot;center&quot;&gt;Center&lt;/option&gt;
@@ -227,10 +373,10 @@ function Ok()
 									&lt;td&gt;
 										&lt;span fcklang=&quot;DlgTableWidth&quot;&gt;Width&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtWidth&quot; type=&quot;text&quot; maxlength=&quot;4&quot; size=&quot;3&quot; value=&quot;200&quot; name=&quot;txtWidth&quot;
+										&amp;nbsp;&lt;input id=&quot;txtWidth&quot; type=&quot;text&quot; maxlength=&quot;4&quot; size=&quot;3&quot; value=&quot;200&quot;
 											onkeypress=&quot;return IsDigit(event);&quot; /&gt;&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;select id=&quot;selWidthType&quot; name=&quot;selWidthType&quot;&gt;
+										&amp;nbsp;&lt;select id=&quot;selWidthType&quot;&gt;
 											&lt;option fcklang=&quot;DlgTableWidthPx&quot; value=&quot;pixels&quot; selected=&quot;selected&quot;&gt;pixels&lt;/option&gt;
 											&lt;option fcklang=&quot;DlgTableWidthPc&quot; value=&quot;percent&quot;&gt;percent&lt;/option&gt;
 										&lt;/select&gt;&lt;/td&gt;
@@ -239,23 +385,18 @@ function Ok()
 									&lt;td&gt;
 										&lt;span fcklang=&quot;DlgTableHeight&quot;&gt;Height&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtHeight&quot; type=&quot;text&quot; maxlength=&quot;4&quot; size=&quot;3&quot; name=&quot;txtHeight&quot; onkeypress=&quot;return IsDigit(event);&quot; /&gt;&lt;/td&gt;
+										&amp;nbsp;&lt;input id=&quot;txtHeight&quot; type=&quot;text&quot; maxlength=&quot;4&quot; size=&quot;3&quot; onkeypress=&quot;return IsDigit(event);&quot; /&gt;&lt;/td&gt;
 									&lt;td&gt;
 										&amp;nbsp;&lt;span fcklang=&quot;DlgTableWidthPx&quot;&gt;pixels&lt;/span&gt;&lt;/td&gt;
 								&lt;/tr&gt;
 								&lt;tr&gt;
-									&lt;td&gt;
-										&amp;nbsp;&lt;/td&gt;
-									&lt;td&gt;
-										&amp;nbsp;&lt;/td&gt;
-									&lt;td&gt;
-										&amp;nbsp;&lt;/td&gt;
+									&lt;td colspan=&quot;3&quot;&gt;&amp;nbsp;&lt;/td&gt;
 								&lt;/tr&gt;
 								&lt;tr&gt;
 									&lt;td nowrap=&quot;nowrap&quot;&gt;
 										&lt;span fcklang=&quot;DlgTableCellSpace&quot;&gt;Cell spacing&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtCellSpacing&quot; type=&quot;text&quot; maxlength=&quot;2&quot; size=&quot;2&quot; value=&quot;1&quot; name=&quot;txtCellSpacing&quot;
+										&amp;nbsp;&lt;input id=&quot;txtCellSpacing&quot; type=&quot;text&quot; maxlength=&quot;2&quot; size=&quot;2&quot; value=&quot;1&quot;
 											onkeypress=&quot;return IsDigit(event);&quot; /&gt;&lt;/td&gt;
 									&lt;td&gt;
 										&amp;nbsp;&lt;/td&gt;
@@ -264,7 +405,7 @@ function Ok()
 									&lt;td nowrap=&quot;nowrap&quot;&gt;
 										&lt;span fcklang=&quot;DlgTableCellPad&quot;&gt;Cell padding&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtCellPadding&quot; type=&quot;text&quot; maxlength=&quot;2&quot; size=&quot;2&quot; value=&quot;1&quot; name=&quot;txtCellPadding&quot;
+										&amp;nbsp;&lt;input id=&quot;txtCellPadding&quot; type=&quot;text&quot; maxlength=&quot;2&quot; size=&quot;2&quot; value=&quot;1&quot;
 											onkeypress=&quot;return IsDigit(event);&quot; /&gt;&lt;/td&gt;
 									&lt;td&gt;
 										&amp;nbsp;&lt;/td&gt;</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_table.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -32,8 +32,7 @@
 var dialog	= window.parent ;
 var oEditor = dialog.InnerDialogLoaded() ;
 
-// Gets the document DOM
-var oDOM = oEditor.FCK.EditorDocument ;
+var FCKDomTools = oEditor.FCKDomTools ;
 
 // Array of selected Cells
 var aCells = oEditor.FCKTableHandler.GetSelectedCells() ;
@@ -74,13 +73,15 @@ function SetStartupValue()
 		GetE('txtCollSpan').value		= GetAttribute( oCell, 'colSpan' ) ;
 		GetE('txtBackColor').value		= GetAttribute( oCell, 'bgColor' ) ;
 		GetE('txtBorderColor').value	= GetAttribute( oCell, 'borderColor' ) ;
-//		GetE('cmbFontStyle').value		= oCell.className ;
+		GetE('selCellType').value     = oCell.nodeName.toLowerCase() ;
 	}
 }
 
 // Fired when the user press the OK button
 function Ok()
 {
+	oEditor.FCKUndo.SaveUndoStep() ;
+
 	for( i = 0 ; i &lt; aCells.length ; i++ )
 	{
 		if ( GetE('txtWidth').value.length &gt; 0 )
@@ -100,7 +101,25 @@ function Ok()
 		SetAttribute( aCells[i], 'colSpan'		, GetE('txtCollSpan').value ) ;
 		SetAttribute( aCells[i], 'bgColor'		, GetE('txtBackColor').value ) ;
 		SetAttribute( aCells[i], 'borderColor'	, GetE('txtBorderColor').value ) ;
-//		SetAttribute( aCells[i], 'className'	, GetE('cmbFontStyle').value ) ;
+
+		var cellType = GetE('selCellType').value ;
+		if ( aCells[i].nodeName.toLowerCase() != cellType )
+			aCells[i] = RenameNode( aCells[i], cellType ) ;
+	}
+
+	// The cells need to be reselected, otherwise the caret will appear inside the table borders (Gecko)
+	// or sent back to the beginning of the document (Opera and Safari).
+	// Strangely, IE works ok so no change is needed for IE.
+	if ( !oEditor.FCKBrowserInfo.IsIE )
+	{
+		var selection = oEditor.FCK.EditorWindow.getSelection() ;
+		selection.removeAllRanges() ;
+		for ( var i = 0 ; i &lt; aCells.length ; i++ )
+		{
+			var range = oEditor.FCK.EditorDocument.createRange() ;
+			range.selectNode( aCells[i] ) ;
+			selection.addRange( range ) ;
+		}
 	}
 
 	return true ;
@@ -138,7 +157,7 @@ function SelectColor( wich )
 										&lt;span fcklang=&quot;DlgCellWidth&quot;&gt;Width&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
 										&amp;nbsp;&lt;input onkeypress=&quot;return IsDigit(event);&quot; id=&quot;txtWidth&quot; type=&quot;text&quot; maxlength=&quot;4&quot;
-											size=&quot;3&quot; name=&quot;txtWidth&quot; /&gt;&amp;nbsp;&lt;select id=&quot;selWidthType&quot; name=&quot;selWidthType&quot;&gt;
+											size=&quot;3&quot; /&gt;&amp;nbsp;&lt;select id=&quot;selWidthType&quot;&gt;
 												&lt;option fcklang=&quot;DlgCellWidthPx&quot; value=&quot;pixels&quot; selected=&quot;selected&quot;&gt;pixels&lt;/option&gt;
 												&lt;option fcklang=&quot;DlgCellWidthPc&quot; value=&quot;percent&quot;&gt;percent&lt;/option&gt;
 											&lt;/select&gt;&lt;/td&gt;
@@ -147,7 +166,7 @@ function SelectColor( wich )
 									&lt;td nowrap=&quot;nowrap&quot;&gt;
 										&lt;span fcklang=&quot;DlgCellHeight&quot;&gt;Height&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtHeight&quot; type=&quot;text&quot; maxlength=&quot;4&quot; size=&quot;3&quot; name=&quot;txtHeight&quot; onkeypress=&quot;return IsDigit(event);&quot; /&gt;&amp;nbsp;&lt;span
+										&amp;nbsp;&lt;input id=&quot;txtHeight&quot; type=&quot;text&quot; maxlength=&quot;4&quot; size=&quot;3&quot; onkeypress=&quot;return IsDigit(event);&quot; /&gt;&amp;nbsp;&lt;span
 											fcklang=&quot;DlgCellWidthPx&quot;&gt;pixels&lt;/span&gt;&lt;/td&gt;
 								&lt;/tr&gt;
 								&lt;tr&gt;
@@ -160,7 +179,7 @@ function SelectColor( wich )
 									&lt;td nowrap=&quot;nowrap&quot;&gt;
 										&lt;span fcklang=&quot;DlgCellWordWrap&quot;&gt;Word Wrap&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;select id=&quot;selWordWrap&quot; name=&quot;selAlignment&quot;&gt;
+										&amp;nbsp;&lt;select id=&quot;selWordWrap&quot;&gt;
 											&lt;option fcklang=&quot;DlgCellWordWrapYes&quot; value=&quot;true&quot; selected=&quot;selected&quot;&gt;Yes&lt;/option&gt;
 											&lt;option fcklang=&quot;DlgCellWordWrapNo&quot; value=&quot;false&quot;&gt;No&lt;/option&gt;
 										&lt;/select&gt;&lt;/td&gt;
@@ -175,7 +194,7 @@ function SelectColor( wich )
 									&lt;td nowrap=&quot;nowrap&quot;&gt;
 										&lt;span fcklang=&quot;DlgCellHorAlign&quot;&gt;Horizontal Alignment&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;select id=&quot;selHAlign&quot; name=&quot;selAlignment&quot;&gt;
+										&amp;nbsp;&lt;select id=&quot;selHAlign&quot;&gt;
 											&lt;option fcklang=&quot;DlgCellHorAlignNotSet&quot; value=&quot;&quot; selected&gt;&amp;lt;Not set&amp;gt;&lt;/option&gt;
 											&lt;option fcklang=&quot;DlgCellHorAlignLeft&quot; value=&quot;left&quot;&gt;Left&lt;/option&gt;
 											&lt;option fcklang=&quot;DlgCellHorAlignCenter&quot; value=&quot;center&quot;&gt;Center&lt;/option&gt;
@@ -186,7 +205,7 @@ function SelectColor( wich )
 									&lt;td nowrap=&quot;nowrap&quot;&gt;
 										&lt;span fcklang=&quot;DlgCellVerAlign&quot;&gt;Vertical Alignment&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;select id=&quot;selVAlign&quot; name=&quot;selAlignment&quot;&gt;
+										&amp;nbsp;&lt;select id=&quot;selVAlign&quot;&gt;
 											&lt;option fcklang=&quot;DlgCellVerAlignNotSet&quot; value=&quot;&quot; selected&gt;&amp;lt;Not set&amp;gt;&lt;/option&gt;
 											&lt;option fcklang=&quot;DlgCellVerAlignTop&quot; value=&quot;top&quot;&gt;Top&lt;/option&gt;
 											&lt;option fcklang=&quot;DlgCellVerAlignMiddle&quot; value=&quot;middle&quot;&gt;Middle&lt;/option&gt;
@@ -202,11 +221,28 @@ function SelectColor( wich )
 							&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
 								&lt;tr&gt;
 									&lt;td nowrap=&quot;nowrap&quot;&gt;
+									 &lt;span fcklang=&quot;DlgCellType&quot;&gt;Cell Type&lt;/span&gt;:&lt;/td&gt;
+									&lt;td colspan=&quot;2&quot;&gt;
+										&amp;nbsp; &lt;select id=&quot;selCellType&quot;&gt;
+											&lt;option fcklang=&quot;DlgCellTypeData&quot; value=&quot;td&quot; /&gt;Data
+											&lt;option fcklang=&quot;DlgCellTypeHeader&quot; value=&quot;th&quot; /&gt;Header
+										&lt;/select&gt;
+								&lt;/tr&gt;
+								&lt;tr&gt;
+									&lt;td&gt;
+										&amp;nbsp;&lt;/td&gt;
+									&lt;td&gt;
+										&amp;nbsp;&lt;/td&gt;
+									&lt;td&gt;
+										&amp;nbsp;&lt;/td&gt;
+								&lt;/tr&gt;
+								&lt;tr&gt;
+									&lt;td nowrap=&quot;nowrap&quot;&gt;
 										&lt;span fcklang=&quot;DlgCellRowSpan&quot;&gt;Rows Span&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
 										&amp;nbsp;
 										&lt;input onkeypress=&quot;return IsDigit(event);&quot; id=&quot;txtRowSpan&quot; type=&quot;text&quot; maxlength=&quot;3&quot; size=&quot;2&quot;
-											name=&quot;txtRows&quot;&gt;&lt;/td&gt;
+											&gt;&lt;/td&gt;
 									&lt;td&gt;
 									&lt;/td&gt;
 								&lt;/tr&gt;
@@ -216,7 +252,7 @@ function SelectColor( wich )
 									&lt;td&gt;
 										&amp;nbsp;
 										&lt;input onkeypress=&quot;return IsDigit(event);&quot; id=&quot;txtCollSpan&quot; type=&quot;text&quot; maxlength=&quot;2&quot;
-											size=&quot;2&quot; name=&quot;txtColumns&quot;&gt;&lt;/td&gt;
+											size=&quot;2&quot;&gt;&lt;/td&gt;
 									&lt;td&gt;
 									&lt;/td&gt;
 								&lt;/tr&gt;
@@ -232,7 +268,7 @@ function SelectColor( wich )
 									&lt;td nowrap=&quot;nowrap&quot;&gt;
 										&lt;span fcklang=&quot;DlgCellBackColor&quot;&gt;Background Color&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtBackColor&quot; type=&quot;text&quot; size=&quot;8&quot; name=&quot;txtCellSpacing&quot;&gt;&lt;/td&gt;
+										&amp;nbsp;&lt;input id=&quot;txtBackColor&quot; type=&quot;text&quot; size=&quot;8&quot; /&gt;&lt;/td&gt;
 									&lt;td&gt;
 										&amp;nbsp;
 										&lt;input type=&quot;button&quot; fcklang=&quot;DlgCellBtnSelect&quot; value=&quot;Select...&quot; onclick=&quot;SelectColor( 'Back' )&quot;&gt;&lt;/td&gt;
@@ -241,7 +277,7 @@ function SelectColor( wich )
 									&lt;td nowrap=&quot;nowrap&quot;&gt;
 										&lt;span fcklang=&quot;DlgCellBorderColor&quot;&gt;Border Color&lt;/span&gt;:&lt;/td&gt;
 									&lt;td&gt;
-										&amp;nbsp;&lt;input id=&quot;txtBorderColor&quot; type=&quot;text&quot; size=&quot;8&quot; name=&quot;txtCellPadding&quot; /&gt;&lt;/td&gt;
+										&amp;nbsp;&lt;input id=&quot;txtBorderColor&quot; type=&quot;text&quot; size=&quot;8&quot; /&gt;&lt;/td&gt;
 									&lt;td&gt;
 										&amp;nbsp;
 										&lt;input type=&quot;button&quot; fcklang=&quot;DlgCellBtnSelect&quot; value=&quot;Select...&quot; onclick=&quot;SelectColor( 'Border' )&quot; /&gt;&lt;/td&gt;</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_tablecell.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_template.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_textarea.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dialog/fck_textfield.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dtd/fck_xhtml10strict.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/dtd/fck_xhtml10transitional.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/fckdebug.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &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;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -86,7 +86,7 @@ window.focus() ;
 document.write( FCKTools.GetStyleHtml( FCKConfig.SkinDialogCSS ) ) ;
 
 // Sets the language direction.
-var langDir = document.documentElement.dir = E.FCKLang.Dir ;
+var langDir = E.FCKLang.Dir ;
 
 // For IE6-, the fck_dialog_ie6.js is loaded, used to fix limitations in the browser.
 if ( FCKBrowserInfo.IsIE &amp;&amp; !FCKBrowserInfo.IsIE7 )
@@ -409,6 +409,11 @@ var Selection =
 	 */
 	EnsureSelection : function()
 	{
+		// Move the focus to the Cancel button so even if the dialog contains a
+		// contentEditable element the selection is properly restored in the editor #2496
+		window.focus() ;
+		$( 'btnCancel' ).focus() ;
+
 		FCK.Selection.Restore() ;
 	},
 
@@ -573,6 +578,8 @@ var onReadyRegister = function()
 	// Program entry point.
 	window.Init = function()
 	{
+		$( 'contents' ).dir = langDir;
+
 		// Start the throbber timer.
 		Throbber.Show( 1000 ) ;
 </diff>
      <filename>public/javascripts/fckeditor/editor/fckdialog.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/fckeditor.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &#65279;&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/fckeditor.original.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/browser.css</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
    &quot;http://www.w3.org/TR/html4/frameset.dtd&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/browser.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/frmactualfolder.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/frmfolders.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/frmresourceslist.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/frmresourcetype.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/frmupload.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/js/common.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/browser/default/js/fckxml.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;&lt;%
  ' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
  '
  ' == BEGIN LICENSE ==
  '</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/asp/basexml.asp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;&lt;%
  ' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
  '
  ' == BEGIN LICENSE ==
  '
@@ -350,4 +350,4 @@ End Class
 Class NetRube_FileInfo
 	Dim FormName, ClientPath, Path, Name, Ext, Content, Size, MIME, Start
 End Class
-%&gt;*
+%&gt;</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/asp/class_upload.asp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;&lt;%
  ' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
  '
  ' == BEGIN LICENSE ==
  '</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/asp/commands.asp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;&lt;%
  ' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
  '
  ' == BEGIN LICENSE ==
  '</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/asp/config.asp</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ Response.Buffer = True
 %&gt;
 &lt;%
  ' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
  '
  ' == BEGIN LICENSE ==
  '</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/asp/connector.asp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;&lt;%
  ' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
  '
  ' == BEGIN LICENSE ==
  '
@@ -22,6 +22,7 @@
 %&gt;
 &lt;%
 function CombinePaths( sBasePath, sFolder)
+	sFolder = replace(sFolder, &quot;\&quot;, &quot;/&quot;)
 	CombinePaths =  RemoveFromEnd( sBasePath, &quot;/&quot; ) &amp; &quot;/&quot; &amp; RemoveFromStart( sFolder, &quot;/&quot; )
 end function
 
@@ -151,7 +152,7 @@ End Function
 Function IsAllowedType( resourceType )
 	Dim oRE
 	Set oRE	= New RegExp
-	oRE.IgnoreCase	= True
+	oRE.IgnoreCase	= False
 	oRE.Global		= True
 	oRE.Pattern		= &quot;^(&quot; &amp; ConfigAllowedTypes &amp; &quot;)$&quot;
 </diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/asp/io.asp</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ Response.Buffer = True
 %&gt;
 &lt;%
  ' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
  '
  ' == BEGIN LICENSE ==
  '</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/asp/upload.asp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;&lt;%
  ' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
  '
  ' == BEGIN LICENSE ==
  '</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/asp/util.asp</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;%@ Control Language=&quot;C#&quot; EnableViewState=&quot;false&quot; AutoEventWireup=&quot;false&quot; Inherits=&quot;FredCK.FCKeditorV2.FileBrowser.Config&quot; %&gt;
 &lt;%--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/aspx/config.ascx</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 &lt;%@ Register Src=&quot;config.ascx&quot; TagName=&quot;Config&quot; TagPrefix=&quot;FCKeditor&quot; %&gt;
 &lt;%--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/aspx/connector.aspx</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 &lt;%@ Register Src=&quot;config.ascx&quot; TagName=&quot;Config&quot; TagPrefix=&quot;FCKeditor&quot; %&gt;
 &lt;%--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/aspx/upload.aspx</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;yes&quot; showdebugoutput=&quot;no&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;Yes&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;Yes&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;Yes&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;yes&quot; showdebugoutput=&quot;no&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;Yes&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;yes&quot; showdebugoutput=&quot;no&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;Yes&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;Yes&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/config.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;Yes&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/connector.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;cfsetting enablecfoutputonly=&quot;Yes&quot;&gt;
 &lt;!---
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/cfm/upload.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 [//lasso
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/lasso/config.lasso</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 [//lasso
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/lasso/connector.lasso</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 [//lasso
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/lasso/upload.lasso</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/perl/basexml.pl</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/perl/commands.pl</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/perl/connector.cgi</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/perl/io.pl</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/perl/upload.cgi</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 #####
 #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
-#  Copyright (C) 2003-2008 Frederico Caldeira Knabben
+#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
 #
 #  == BEGIN LICENSE ==
 #</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/perl/util.pl</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/php/basexml.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/php/commands.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/php/config.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/php/connector.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/php/io.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/php/upload.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?php
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/php/util.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 &quot;&quot;&quot;
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/py/config.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/py/connector.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/py/fckcommands.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/py/fckconnector.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/py/fckoutput.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/py/fckutil.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/py/upload.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/py/wsgi.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 &quot;&quot;&quot;
 FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
 
 == BEGIN LICENSE ==
 </diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/py/zope.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/test.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/filemanager/connectors/uploadtest.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *</diff>
      <filename>public/javascripts/fckeditor/editor/js/fckadobeair.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -23,27 +23,27 @@
  */
 
 var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;var FCK_STYLE_BLOCK=0;var FCK_STYLE_INLINE=1;var FCK_STYLE_OBJECT=2;
-String.prototype.Contains=function(A){return (this.indexOf(A)&gt;-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&amp;&amp;A[0].pop) A=A[0];for (var i=0;i&lt;A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&amp;&amp;B[0].pop) B=B[0];for (var i=0;i&lt;B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i&lt;A.length;i++){C=C.replace(A[i],B[i]);};return C;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D&gt;C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A&gt;0) s=this.substring(0,A);if (A+B&lt;this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i&lt;this.length;i++){if (this[i]==A) return i;};return-1;};
+String.prototype.Contains=function(A){return (this.indexOf(A)&gt;-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&amp;&amp;A[0].pop) A=A[0];for (var i=0;i&lt;A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&amp;&amp;B[0].pop) B=B[0];for (var i=0;i&lt;B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i&lt;A.length;i++){C=C.replace(A[i],B[i]);};return C;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D&gt;C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A&gt;0) s=this.substring(0,A);if (A+B&lt;this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};Array.prototype.IndexOf=function(A){for (var i=0;i&lt;this.length;i++){if (this[i]==A) return i;};return-1;};
 var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:/*@cc_on!@*/false,IsIE7:/*@cc_on!@*/false&amp;&amp;(parseInt(s.match(/msie (\d+)/)[1],10)&gt;=7),IsIE6:/*@cc_on!@*/false&amp;&amp;(parseInt(s.match(/msie (\d+)/)[1],10)&gt;=6),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),IsMac:s.Contains('macintosh')};(function(A){A.IsGecko=(navigator.product=='Gecko')&amp;&amp;!A.IsSafari&amp;&amp;!A.IsOpera;A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/rv:(\d+\.\d+)/);var C=B&amp;&amp;parseFloat(B[1]);if (C){A.IsGecko10=(C&lt;1.8);A.IsGecko19=(C&gt;1.8);}}})(FCKBrowserInfo);
 var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&amp;');for (var i=0;i&lt;A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})();
 var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else{if (C.IndexOf(B)==-1) C.push(B);}};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i&lt;D.length;i++){try{C=(D[i](this.Owner,B)&amp;&amp;C);}catch(e){if (e.number!=-2146823277) throw e;}}};return C;};
 var FCKDataProcessor=function(){};FCKDataProcessor.prototype={ConvertToHtml:function(A){if (FCKConfig.FullPage){FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (!FCKRegexLib.HasBodyTag.test(A)) A='&lt;body&gt;'+A+'&lt;/body&gt;';if (!FCKRegexLib.HtmlOpener.test(A)) A='&lt;html dir=&quot;'+FCKConfig.ContentLangDirection+'&quot;&gt;'+A+'&lt;/html&gt;';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&amp;&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt;');return A;}else{var B=FCKConfig.DocType+'&lt;html dir=&quot;'+FCKConfig.ContentLangDirection+'&quot;';if (FCKBrowserInfo.IsIE&amp;&amp;FCKConfig.DocType.length&gt;0&amp;&amp;!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style=&quot;overflow-y: scroll&quot;';B+='&gt;&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt;&lt;body'+FCKConfig.GetBodyAttributes()+'&gt;'+A+'&lt;/body&gt;&lt;/html&gt;';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&amp;&amp;FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}};
-var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length&gt;0?'&lt;base href=&quot;'+FCKConfig.BaseHref+'&quot; _fcktemp=&quot;true&quot;&gt;&lt;/base&gt;':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,&quot;keydown&quot;,this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&amp;&amp;A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&amp;&amp;G!='li'&amp;&amp;!D.getAttribute('_fckfakelement')&amp;&amp;D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length&gt;0) F=true;break;case 8:if (E) F=true;break;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&amp;&amp;FCK.DocTypeDeclaration.length&gt;0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&amp;&amp;FCK.XmlDeclaration.length&gt;0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName.toUpperCase()];if (B){for (var i=0;i&lt;B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i&lt;B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(A);}},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$&amp; _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$&amp; _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$&amp; _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length&gt;0?'|ABBR|XML|EMBED|OBJECT':'ABBR|XML|EMBED|OBJECT';var C;if (B.length&gt;0){C=new RegExp('&lt;('+B+')(?!\w|:)','gi');A=A.replace(C,'&lt;FCK:$1');C=new RegExp('&lt;\/('+B+')&gt;','gi');A=A.replace(C,'&lt;\/FCK:$1&gt;');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('&lt;(('+B+')(?=\\s|&gt;|/)[\\s\\S]*?)/?&gt;','gi');A=A.replace(C,'&lt;FCK:$1 /&gt;');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&amp;&amp;FCK.EditorDocument){FCK.EditorDocument.detachEvent(&quot;onselectionchange&quot;,Doc_OnSelectionChange);};FCKTempBin.Reset();if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1&gt;&lt;/$2&gt;');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length&gt;0&amp;&amp;!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&amp;'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&amp;');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&amp;&amp;FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&amp;&amp;FCK.EditorWindow&amp;&amp;A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length&gt;0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'&lt;html dir=&quot;'+FCKConfig.ContentLangDirection+'&quot;&gt;&lt;head&gt;'+FCK.TempBaseTag+'&lt;title&gt;'+FCKLang.Preview+'&lt;/title&gt;'+_FCK_GetEditorAreaStyleTags()+'&lt;/head&gt;&lt;body'+FCKConfig.GetBodyAttributes()+'&gt;'+FCK.GetXHTML()+'&lt;/body&gt;&lt;/html&gt;';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain=&quot;'+document.domain+'&quot; ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.document.close();}},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&amp;&amp;FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else C.SplitBlock();};C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);if (!D&amp;&amp;FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A&gt;=16&amp;&amp;A&lt;=20) return true;if (A==27||(A&gt;=33&amp;&amp;A&lt;=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&amp;&amp;!(A.ctrlKey||A.metaKey)&amp;&amp;!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount&gt;FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&amp;&amp;FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt=&quot;'+encodeURIComponent(A)+'&quot;';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&amp;&amp;FCKDomTools.PaddingNode){var A=FCKSelection.GetSelection();if (A&amp;&amp;A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&amp;&amp;B.startContainer==FCK.EditorDocument.body&amp;&amp;B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&amp;&amp;C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&amp;&amp;FCK.EditorDocument.body.firstChild==D){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&amp;&amp;FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);if (C.GetState()==-1) return false;return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&amp;&amp;B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i&lt;this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;},ToHtml:function(){for (var i=0;i&lt;this.Elements.length;i++){this.Elements[i]='&lt;div&gt;&amp;nbsp;'+this.Elements[i].outerHTML+'&lt;/div&gt;';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i&lt;this.Elements.length;i++){if (this.Elements[i].isHtml){A.innerHTML=this.Elements[i];this.Elements[i]=A.firstChild.removeChild(A.firstChild.lastChild);}}}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else if (FCKBrowserInfo.IsSafari) C=A;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&amp;&amp;FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent(&quot;OnBlur&quot;);}};function FCKFocusManager_Win_OnFocus_Area(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&amp;&amp;!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent(&quot;OnFocus&quot;);}};(function(){var A=window.frameElement;var B=A.width;var C=A.height;if (/^\d+$/.test(B)) B+='px';if (/^\d+$/.test(C)) C+='px';var D=A.style;D.border=D.padding=D.margin=0;D.backgroundColor='transparent';D.backgroundImage='none';D.width=B;D.height=C;})();
-FCK.Description=&quot;FCKeditor for Gecko Browsers&quot;;FCK.InitializeBehaviors=function(){if (window.onresize) window.onresize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};this._ExecDrop=function(evt){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){if (evt.dataTransfer){var A=evt.dataTransfer.getData('Text');A=FCKTools.HTMLEncode(A);A=FCKTools.ProcessLineBreaks(window,FCKConfig,A);FCK.InsertHtml(A);}else if (FCKConfig.ShowDropDialog) FCK.PasteAsPlainText();evt.preventDefault();evt.stopPropagation();}};this._ExecCheckCaret=function(evt){if (FCK.EditMode!=0) return;if (evt.type=='keypress'){var B=evt.keyCode;if (B&lt;33||B&gt;40) return;};var C=function(H){if (H.nodeType!=1) return false;var D=H.tagName.toLowerCase();return (FCKListsLib.BlockElements[D]||FCKListsLib.EmptyElements[D]);};var E=function(){var F=FCKSelection.GetSelection();var G=F.getRangeAt(0);if (!G||!G.collapsed) return;var H=G.endContainer;if (H.nodeType!=3) return;if (H.nodeValue.length!=G.endOffset) return;var I=H.parentNode.tagName.toLowerCase();if (!(I=='a'||(!FCKBrowserInfo.IsOpera&amp;&amp;String(H.parentNode.contentEditable)=='false')||(!(FCKListsLib.BlockElements[I]||FCKListsLib.NonEmptyBlockElements[I])&amp;&amp;B==35))) return;var J=FCKTools.GetNextTextNode(H,H.parentNode,C);if (J) return;G=FCK.EditorDocument.createRange();J=FCKTools.GetNextTextNode(H,H.parentNode.parentNode,C);if (J){if (FCKBrowserInfo.IsOpera&amp;&amp;B==37) return;G.setStart(J,0);G.setEnd(J,0);}else{while (H.parentNode&amp;&amp;H.parentNode!=FCK.EditorDocument.body&amp;&amp;H.parentNode!=FCK.EditorDocument.documentElement&amp;&amp;H==H.parentNode.lastChild&amp;&amp;(!FCKListsLib.BlockElements[H.parentNode.tagName.toLowerCase()]&amp;&amp;!FCKListsLib.NonEmptyBlockElements[H.parentNode.tagName.toLowerCase()])) H=H.parentNode;if (FCKListsLib.BlockElements[I]||FCKListsLib.EmptyElements[I]||H==FCK.EditorDocument.body){G.setStart(H,H.childNodes.length);G.setEnd(H,H.childNodes.length);}else{var K=H.nextSibling;while (K){if (K.nodeType!=1){K=K.nextSibling;continue;};var L=K.tagName.toLowerCase();if (FCKListsLib.BlockElements[L]||FCKListsLib.EmptyElements[L]||FCKListsLib.NonEmptyBlockElements[L]) break;K=K.nextSibling;};var M=FCK.EditorDocument.createTextNode('');if (K) H.parentNode.insertBefore(M,K);else H.parentNode.appendChild(M);G.setStart(M,0);G.setEnd(M,0);}};F.removeAllRanges();F.addRange(G);FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};setTimeout(E,1);};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);this.EditorDocument.addEventListener('keydown',this._KeyDownListener,false);if (FCKBrowserInfo.IsGecko){this.EditorWindow.addEventListener('dragdrop',this._ExecDrop,true);}else if (FCKBrowserInfo.IsSafari){var N=function(evt){ if (!FCK.MouseDownFlag) evt.returnValue=false;};this.EditorDocument.addEventListener('dragenter',N,true);this.EditorDocument.addEventListener('dragover',N,true);this.EditorDocument.addEventListener('drop',this._ExecDrop,true);this.EditorDocument.addEventListener('mousedown',function(ev){var O=ev.srcElement;if (O.nodeName.IEquals('IMG','HR','INPUT','TEXTAREA','SELECT')){FCKSelection.SelectNode(O);}},true);this.EditorDocument.addEventListener('mouseup',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);this.EditorDocument.addEventListener('click',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);};if (FCKBrowserInfo.IsGecko||FCKBrowserInfo.IsOpera){this.EditorDocument.addEventListener('keypress',this._ExecCheckCaret,false);this.EditorDocument.addEventListener('click',this._ExecCheckCaret,false);};FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?0:-1;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try{if (FCKBrowserInfo.IsSafari) throw '';if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e)	{ FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK._ExecPaste=function(){FCKUndo.SaveUndoStep();if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){var B=FCK.EditorDocument,range;A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGecko){A=A.replace(/&amp;nbsp;$/,'$&amp;&lt;span _fcktemp=&quot;1&quot;/&gt;');var C=new FCKDocumentFragment(this.EditorDocument);C.AppendHtml(A);var D=C.RootNode.lastChild;range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();range.DeleteContents();range.InsertNode(C.RootNode);range.MoveToPosition(D,4);}else B.execCommand('inserthtml',false,A);this.Focus();if (!range){range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();};var E=range.CreateBookmark();FCKDocumentProcessor.Process(B);try{range.MoveToBookmark(E);range.Select();}catch (e) {};this.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCK.PasteAsPlainText=function(){FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText']);};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A,B){var C=[];if (FCKSelection.GetSelection().isCollapsed) return C;FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length&gt;0){var D='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',D,false,!!B);var E=this.EditorDocument.evaluate(&quot;//a[@href='&quot;+D+&quot;']&quot;,this.EditorDocument.body,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for (var i=0;i&lt;E.snapshotLength;i++){var F=E.snapshotItem(i);F.href=A;C.push(F);}};return C;};FCK._FillEmptyBlock=function(A){if (!A||A.nodeType!=1) return;var B=A.tagName.toLowerCase();if (B!='p'&amp;&amp;B!='div') return;if (A.firstChild) return;FCKTools.AppendBogusBr(A);};FCK._ExecCheckEmptyBlock=function(){FCK._FillEmptyBlock(FCK.EditorDocument.body.firstChild);var A=FCKSelection.GetSelection();if (!A||A.rangeCount&lt;1) return;var B=A.getRangeAt(0);FCK._FillEmptyBlock(B.startContainer);};
-var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi,'/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);}else FCKConfig.BasePath=document.location.protocol+'//'+document.location.host+document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&amp;');for (var i=0;i&lt;B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()==&quot;true&quot;) this.PageConfig[D]=true;else if (E.toLowerCase()==&quot;false&quot;) this.PageConfig[D]=false;else if (E.length&gt;0&amp;&amp;!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {  }};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/&lt;!--[\s\S]*?--&gt;/g,/&lt;script[\s\S]*?&lt;\/script&gt;/gi,/&lt;noscript[\s\S]*?&lt;\/noscript&gt;/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '&lt;!--{'+B+C+'}--&gt;';};for (var i=0;i&lt;this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp(&quot;(&lt;|&amp;lt;)!--\\{&quot;+this._CodeTag+&quot;(\\d+)\\}--(&gt;|&amp;gt;)&quot;,&quot;g&quot;);return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&amp;&amp;this.BodyId.length&gt;0) A+=' id=&quot;'+this.BodyId+'&quot;';if (this.BodyClass&amp;&amp;this.BodyClass.length&gt;0) A+=' class=&quot;'+this.BodyClass+'&quot;';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&amp;&amp;this.BodyId.length&gt;0) A.id=FCKConfig.BodyId;if (this.BodyClass&amp;&amp;this.BodyClass.length&gt;0) A.className+=' '+FCKConfig.BodyClass;};
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length&gt;0?'&lt;base href=&quot;'+FCKConfig.BaseHref+'&quot; _fcktemp=&quot;true&quot;&gt;&lt;/base&gt;':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,&quot;keydown&quot;,this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&amp;&amp;A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&amp;&amp;G!='li'&amp;&amp;!D.getAttribute('_fckfakelement')&amp;&amp;D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length&gt;0) F=true;break;case 8:if (E) F=true;break;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&amp;&amp;FCK.DocTypeDeclaration.length&gt;0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&amp;&amp;FCK.XmlDeclaration.length&gt;0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName.toUpperCase()];if (B){for (var i=0;i&lt;B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i&lt;B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(A);}},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$&amp; _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$&amp; _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$&amp; _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length&gt;0?'|ABBR|XML|EMBED|OBJECT':'ABBR|XML|EMBED|OBJECT';var C;if (B.length&gt;0){C=new RegExp('&lt;('+B+')(?!\w|:)','gi');A=A.replace(C,'&lt;FCK:$1');C=new RegExp('&lt;\/('+B+')&gt;','gi');A=A.replace(C,'&lt;\/FCK:$1&gt;');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('&lt;(('+B+')(?=\\s|&gt;|/)[\\s\\S]*?)/?&gt;','gi');A=A.replace(C,'&lt;FCK:$1 /&gt;');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&amp;&amp;FCK.EditorDocument){FCK.EditorDocument.detachEvent(&quot;onselectionchange&quot;,Doc_OnSelectionChange);};FCKTempBin.Reset();FCK.Selection.Release();if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1&gt;&lt;/$2&gt;');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length&gt;0&amp;&amp;!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&amp;'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&amp;');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&amp;&amp;FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&amp;&amp;FCK.EditorWindow&amp;&amp;A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length&gt;0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'&lt;html dir=&quot;'+FCKConfig.ContentLangDirection+'&quot;&gt;&lt;head&gt;'+FCK.TempBaseTag+'&lt;title&gt;'+FCKLang.Preview+'&lt;/title&gt;'+_FCK_GetEditorAreaStyleTags()+'&lt;/head&gt;&lt;body'+FCKConfig.GetBodyAttributes()+'&gt;'+FCK.GetXHTML()+'&lt;/body&gt;&lt;/html&gt;';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain=&quot;'+document.domain+'&quot; ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.document.close();}},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&amp;&amp;FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else C.SplitBlock();};C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);if (!D&amp;&amp;FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A&gt;=16&amp;&amp;A&lt;=20) return true;if (A==27||(A&gt;=33&amp;&amp;A&lt;=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&amp;&amp;!(A.ctrlKey||A.metaKey)&amp;&amp;!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount&gt;FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&amp;&amp;FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt=&quot;'+encodeURIComponent(A)+'&quot;';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&amp;&amp;FCKDomTools.PaddingNode){var A=FCKSelection.GetSelection();if (A&amp;&amp;A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&amp;&amp;B.startContainer==FCK.EditorDocument.body&amp;&amp;B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&amp;&amp;C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&amp;&amp;FCK.EditorDocument.body.firstChild==D){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&amp;&amp;FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);if (C.GetState()==-1) return false;return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&amp;&amp;B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i&lt;this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;},ToHtml:function(){for (var i=0;i&lt;this.Elements.length;i++){this.Elements[i]='&lt;div&gt;&amp;nbsp;'+this.Elements[i].outerHTML+'&lt;/div&gt;';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i&lt;this.Elements.length;i++){if (this.Elements[i].isHtml){A.innerHTML=this.Elements[i];this.Elements[i]=A.firstChild.removeChild(A.firstChild.lastChild);}}}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else if (FCKBrowserInfo.IsSafari) C=A;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&amp;&amp;FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent(&quot;OnBlur&quot;);}};function FCKFocusManager_Win_OnFocus_Area(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&amp;&amp;!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent(&quot;OnFocus&quot;);}};(function(){var A=window.frameElement;var B=A.width;var C=A.height;if (/^\d+$/.test(B)) B+='px';if (/^\d+$/.test(C)) C+='px';var D=A.style;D.border=D.padding=D.margin=0;D.backgroundColor='transparent';D.backgroundImage='none';D.width=B;D.height=C;})();
+FCK.Description=&quot;FCKeditor for Gecko Browsers&quot;;FCK.InitializeBehaviors=function(){if (window.onresize) window.onresize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};this._ExecDrop=function(evt){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){if (evt.dataTransfer){var A=evt.dataTransfer.getData('Text');A=FCKTools.HTMLEncode(A);A=FCKTools.ProcessLineBreaks(window,FCKConfig,A);FCK.InsertHtml(A);}else if (FCKConfig.ShowDropDialog) FCK.PasteAsPlainText();evt.preventDefault();evt.stopPropagation();}};this._ExecCheckCaret=function(evt){if (FCK.EditMode!=0) return;if (evt.type=='keypress'){var B=evt.keyCode;if (B&lt;33||B&gt;40) return;};var C=function(H){if (H.nodeType!=1) return false;var D=H.tagName.toLowerCase();return (FCKListsLib.BlockElements[D]||FCKListsLib.EmptyElements[D]);};var E=function(){var F=FCKSelection.GetSelection();var G=F.getRangeAt(0);if (!G||!G.collapsed) return;var H=G.endContainer;if (H.nodeType!=3) return;if (H.nodeValue.length!=G.endOffset) return;var I=H.parentNode.tagName.toLowerCase();if (!(I=='a'||(!FCKBrowserInfo.IsOpera&amp;&amp;String(H.parentNode.contentEditable)=='false')||(!(FCKListsLib.BlockElements[I]||FCKListsLib.NonEmptyBlockElements[I])&amp;&amp;B==35))) return;var J=FCKTools.GetNextTextNode(H,H.parentNode,C);if (J) return;G=FCK.EditorDocument.createRange();J=FCKTools.GetNextTextNode(H,H.parentNode.parentNode,C);if (J){if (FCKBrowserInfo.IsOpera&amp;&amp;B==37) return;G.setStart(J,0);G.setEnd(J,0);}else{while (H.parentNode&amp;&amp;H.parentNode!=FCK.EditorDocument.body&amp;&amp;H.parentNode!=FCK.EditorDocument.documentElement&amp;&amp;H==H.parentNode.lastChild&amp;&amp;(!FCKListsLib.BlockElements[H.parentNode.tagName.toLowerCase()]&amp;&amp;!FCKListsLib.NonEmptyBlockElements[H.parentNode.tagName.toLowerCase()])) H=H.parentNode;if (FCKListsLib.BlockElements[I]||FCKListsLib.EmptyElements[I]||H==FCK.EditorDocument.body){G.setStart(H,H.childNodes.length);G.setEnd(H,H.childNodes.length);}else{var K=H.nextSibling;while (K){if (K.nodeType!=1){K=K.nextSibling;continue;};var L=K.tagName.toLowerCase();if (FCKListsLib.BlockElements[L]||FCKListsLib.EmptyElements[L]||FCKListsLib.NonEmptyBlockElements[L]) break;K=K.nextSibling;};var M=FCK.EditorDocument.createTextNode('');if (K) H.parentNode.insertBefore(M,K);else H.parentNode.appendChild(M);G.setStart(M,0);G.setEnd(M,0);}};F.removeAllRanges();F.addRange(G);FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};setTimeout(E,1);};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);this.EditorDocument.addEventListener('keydown',this._KeyDownListener,false);if (FCKBrowserInfo.IsGecko){this.EditorWindow.addEventListener('dragdrop',this._ExecDrop,true);}else if (FCKBrowserInfo.IsSafari){this.EditorDocument.addEventListener('dragover',function (evt){ if (!FCK.MouseDownFlag&amp;&amp;FCK.Config.ForcePasteAsPlainText) evt.returnValue=false;},true);this.EditorDocument.addEventListener('drop',this._ExecDrop,true);this.EditorDocument.addEventListener('mousedown',function(ev){var N=ev.srcElement;if (N.nodeName.IEquals('IMG','HR','INPUT','TEXTAREA','SELECT')){FCKSelection.SelectNode(N);}},true);this.EditorDocument.addEventListener('mouseup',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);this.EditorDocument.addEventListener('click',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);};if (FCKBrowserInfo.IsGecko||FCKBrowserInfo.IsOpera){this.EditorDocument.addEventListener('keypress',this._ExecCheckCaret,false);this.EditorDocument.addEventListener('click',this._ExecCheckCaret,false);};FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?0:-1;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try{if (FCKBrowserInfo.IsSafari) throw '';if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e)	{if (FCKConfig.ForcePasteAsPlainText) FCK.PasteAsPlainText();else FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK._ExecPaste=function(){FCKUndo.SaveUndoStep();if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){var B=FCK.EditorDocument,range;A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGecko){A=A.replace(/&amp;nbsp;$/,'$&amp;&lt;span _fcktemp=&quot;1&quot;/&gt;');var C=new FCKDocumentFragment(this.EditorDocument);C.AppendHtml(A);var D=C.RootNode.lastChild;range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();range.DeleteContents();range.InsertNode(C.RootNode);range.MoveToPosition(D,4);}else B.execCommand('inserthtml',false,A);this.Focus();if (!range){range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();};var E=range.CreateBookmark();FCKDocumentProcessor.Process(B);try{range.MoveToBookmark(E);range.Select();}catch (e) {};this.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCK.PasteAsPlainText=function(){FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText']);};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A,B){var C=[];if (FCKSelection.GetSelection().isCollapsed) return C;FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length&gt;0){var D='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',D,false,!!B);var E=this.EditorDocument.evaluate(&quot;//a[@href='&quot;+D+&quot;']&quot;,this.EditorDocument.body,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for (var i=0;i&lt;E.snapshotLength;i++){var F=E.snapshotItem(i);F.href=A;C.push(F);}};return C;};FCK._FillEmptyBlock=function(A){if (!A||A.nodeType!=1) return;var B=A.tagName.toLowerCase();if (B!='p'&amp;&amp;B!='div') return;if (A.firstChild) return;FCKTools.AppendBogusBr(A);};FCK._ExecCheckEmptyBlock=function(){FCK._FillEmptyBlock(FCK.EditorDocument.body.firstChild);var A=FCKSelection.GetSelection();if (!A||A.rangeCount&lt;1) return;var B=A.getRangeAt(0);FCK._FillEmptyBlock(B.startContainer);};
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi,'/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);}else FCKConfig.BasePath=document.location.protocol+'//'+document.location.host+document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&amp;');for (var i=0;i&lt;B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()==&quot;true&quot;) this.PageConfig[D]=true;else if (E.toLowerCase()==&quot;false&quot;) this.PageConfig[D]=false;else if (E.length&gt;0&amp;&amp;!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {  }};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.push([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/&lt;!--[\s\S]*?--&gt;/g,/&lt;script[\s\S]*?&lt;\/script&gt;/gi,/&lt;noscript[\s\S]*?&lt;\/noscript&gt;/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.push(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '&lt;!--{'+B+C+'}--&gt;';};for (var i=0;i&lt;this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp(&quot;(&lt;|&amp;lt;)!--\\{&quot;+this._CodeTag+&quot;(\\d+)\\}--(&gt;|&amp;gt;)&quot;,&quot;g&quot;);return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&amp;&amp;this.BodyId.length&gt;0) A+=' id=&quot;'+this.BodyId+'&quot;';if (this.BodyClass&amp;&amp;this.BodyClass.length&gt;0) A+=' class=&quot;'+this.BodyClass+'&quot;';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&amp;&amp;this.BodyId.length&gt;0) A.id=FCKConfig.BodyId;if (this.BodyClass&amp;&amp;this.BodyClass.length&gt;0) A.className+=' '+FCKConfig.BodyClass;};
 var FCKDebug={Output:function(){},OutputObject:function(){}};
 var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length&lt;D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A){var B;while ((B=A.lastChild)){if (B.nodeType==3){var C=B.nodeValue.RTrim();var D=B.nodeValue.length;if (C.length==0){B.parentNode.removeChild(B);continue;}else if (C.length&lt;D){B.splitText(C.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;};if (!FCKBrowserInfo.IsIE&amp;&amp;!FCKBrowserInfo.IsOpera){B=A.lastChild;if (B&amp;&amp;B.nodeType==1&amp;&amp;B.nodeName.toLowerCase()=='br'){B.parentNode.removeChild(B);}}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&amp;&amp;C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&amp;&amp;(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&amp;&amp;A.nodeType==1&amp;&amp;A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&amp;&amp;A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&amp;&amp;A.nodeType==3&amp;&amp;A.nodeValue.RTrim().length&gt;0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&amp;&amp;A.nodeName.IEquals(C)) break;if (D&amp;&amp;A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&amp;&amp;A.nodeType==3&amp;&amp;A.nodeValue.RTrim().length&gt;0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&amp;&amp;A.firstChild) E=A.firstChild;else{if (D&amp;&amp;A==D) return null;E=A.nextSibling;if (!E&amp;&amp;(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&amp;&amp;E&amp;&amp;E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&amp;&amp;A.lastChild) E=A.lastChild;else{if (D&amp;&amp;A==D) return null;E=A.previousSibling;if (!E&amp;&amp;(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&amp;&amp;E&amp;&amp;E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i&lt;C.length;i++){if (C[i]==D[i]) E.push(C[i]);};return E;},GetCommonParentNode:function(A,B,C){var D={};if (!C.pop) C=[C];while (C.length&gt;0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&amp;&amp;(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&amp;&amp;FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&amp;&amp;A.body.firstChild.nodeType==1&amp;&amp;A.body.firstChild.tagName.toLowerCase()=='br'&amp;&amp;(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length&gt;1)||(D.firstChild&amp;&amp;D.firstChild.nodeValue!='\xa0'&amp;&amp;String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length&gt;1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&amp;&amp;C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i&lt;B.length;i++){if (FCKBrowserInfo.IsIE&amp;&amp;B[i].nodeName=='class'){if (A.className.length&gt;0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&amp;&amp;B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},RemoveAttributes:function (A,B){for (var i=0;i&lt;B.length;i++) this.RemoveAttribute(A,B[i]);},GetAttributeValue:function(A,B){var C=B;if (typeof B=='string') B=A.attributes[B];else C=B.nodeName;if (B&amp;&amp;B.specified){if (C=='style') return A.style.cssText;else if (C=='class'||C.indexOf('on')==0) return B.nodeValue;else{return A.getAttribute(C,2);}};return null;},Contains:function(A,B){if (A.contains&amp;&amp;B.nodeType==1) return A.contains(B);while ((B=B.parentNode)){if (B==A) return true;};return false;},BreakParent:function(A,B,C){var D=C||new FCKDomRange(FCKTools.GetElementWindow(A));D.SetStart(A,4);D.SetEnd(B,4);var E=D.ExtractContents();D.InsertNode(A.parentNode.removeChild(A));E.InsertAfterNode(A);D.Release(!!C);},GetNodeAddress:function(A,B){var C=[];while (A&amp;&amp;A!=FCKTools.GetElementDocument(A).documentElement){var D=A.parentNode;var E=-1;for(var i=0;i&lt;D.childNodes.length;i++){var F=D.childNodes[i];if (B===true&amp;&amp;F.nodeType==3&amp;&amp;F.previousSibling&amp;&amp;F.previousSibling.nodeType==3) continue;E++;if (D.childNodes[i]==A) break;};C.unshift(E);A=A.parentNode;};return C;},GetNodeFromAddress:function(A,B,C){var D=A.documentElement;for (var i=0;i&lt;B.length;i++){var E=B[i];if (!C){D=D.childNodes[E];continue;};var F=-1;for (var j=0;j&lt;D.childNodes.length;j++){var G=D.childNodes[j];if (C===true&amp;&amp;G.nodeType==3&amp;&amp;G.previousSibling&amp;&amp;G.previousSibling.nodeType==3) continue;F++;if (F==E){D=G;break;}}};return D;},CloneElement:function(A){A=A.cloneNode(false);A.removeAttribute('id',false);return A;},ClearElementJSProperty:function(A,B){if (FCKBrowserInfo.IsIE) A.removeAttribute(B);else delete A[B];},SetElementMarker:function (A,B,C,D){var E=String(parseInt(Math.random()*0xffffffff,10));B._FCKMarkerId=E;B[C]=D;if (!A[E]) A[E]={ 'element':B,'markers':{} };A[E]['markers'][C]=D;},ClearElementMarkers:function(A,B,C){var D=B._FCKMarkerId;if (!D) return;this.ClearElementJSProperty(B,'_FCKMarkerId');for (var j in A[D]['markers']) this.ClearElementJSProperty(B,j);if (C) delete A[D];},ClearAllMarkers:function(A){for (var i in A) this.ClearElementMarkers(A,A[i]['element'],true);},ListToArray:function(A,B,C,D,E){if (!A.nodeName.IEquals(['ul','ol'])) return [];if (!D) D=0;if (!C) C=[];for (var i=0;i&lt;A.childNodes.length;i++){var F=A.childNodes[i];if (!F.nodeName.IEquals('li')) continue;var G={ 'parent':A,'indent':D,'contents':[] };if (!E){G.grandparent=A.parentNode;if (G.grandparent&amp;&amp;G.grandparent.nodeName.IEquals('li')) G.grandparent=G.grandparent.parentNode;}else G.grandparent=E;if (B) this.SetElementMarker(B,F,'_FCK_ListArray_Index',C.length);C.push(G);for (var j=0;j&lt;F.childNodes.length;j++){var H=F.childNodes[j];if (H.nodeName.IEquals(['ul','ol'])) this.ListToArray(H,B,C,D+1,G.grandparent);else G.contents.push(H);}};return C;},ArrayToList:function(A,B,C){if (C==undefined) C=0;if (!A||A.length&lt;C+1) return null;var D=FCKTools.GetElementDocument(A[C].parent);var E=D.createDocumentFragment();var F=null;var G=C;var H=Math.max(A[C].indent,0);var I=null;while (true){var J=A[G];if (J.indent==H){if (!F||A[G].parent.nodeName!=F.nodeName){F=A[G].parent.cloneNode(false);E.appendChild(F);};I=D.createElement('li');F.appendChild(I);for (var i=0;i&lt;J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));G++;}else if (J.indent==Math.max(H,0)+1){var K=this.ArrayToList(A,null,G);I.appendChild(K.listNode);G=K.nextIndex;}else if (J.indent==-1&amp;&amp;C==0&amp;&amp;J.grandparent){var I;if (J.grandparent.nodeName.IEquals(['ul','ol'])) I=D.createElement('li');else{if (FCKConfig.EnterMode.IEquals(['div','p'])&amp;&amp;!J.grandparent.nodeName.IEquals('td')) I=D.createElement(FCKConfig.EnterMode);else I=D.createDocumentFragment();};for (var i=0;i&lt;J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));if (I.nodeType==11){if (I.lastChild&amp;&amp;I.lastChild.getAttribute&amp;&amp;I.lastChild.getAttribute('type')=='_moz') I.removeChild(I.lastChild);I.appendChild(D.createElement('br'));};if (I.nodeName.IEquals(FCKConfig.EnterMode)&amp;&amp;I.firstChild){this.TrimNode(I);if (FCKListsLib.BlockBoundaries[I.firstChild.nodeName.toLowerCase()]){var M=D.createDocumentFragment();while (I.firstChild) M.appendChild(I.removeChild(I.firstChild));I=M;}};if (FCKBrowserInfo.IsGeckoLike&amp;&amp;I.nodeName.IEquals(['div','p'])) FCKTools.AppendBogusBr(I);E.appendChild(I);F=null;G++;}else return null;if (A.length&lt;=G||Math.max(A[G].indent,0)&lt;H){break;}};if (B){var N=E.firstChild;while (N){if (N.nodeType==1) this.ClearElementMarkers(B,N);N=this.GetNextSourceNode(N);}};return { 'listNode':E,'nextIndex':G };},GetNextSibling:function(A,B){A=A.nextSibling;while (A&amp;&amp;!B&amp;&amp;A.nodeType!=1&amp;&amp;(A.nodeType!=3||A.nodeValue.length==0)) A=A.nextSibling;return A;},GetPreviousSibling:function(A,B){A=A.previousSibling;while (A&amp;&amp;!B&amp;&amp;A.nodeType!=1&amp;&amp;(A.nodeType!=3||A.nodeValue.length==0)) A=A.previousSibling;return A;},CheckIsEmptyElement:function(A,B){var C=A.firstChild;var D;while (C){if (C.nodeType==1){if (D||!FCKListsLib.InlineNonEmptyElements[C.nodeName.toLowerCase()]) return false;if (!B||B(C)===true) D=C;}else if (C.nodeType==3&amp;&amp;C.nodeValue.length&gt;0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B&gt;100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=A;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&amp;&amp;currentWindow!=w) B=currentWindow.frameElement;else B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight||0;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10)||0;};var F=FCKTools.GetDocumentPosition(C,A);E+=F.y;var G=FCKTools.GetScrollPosition(C).Y;if (E&gt;0&amp;&amp;(E&gt;G||E&lt;G-D)) C.scrollTo(0,E);},CheckIsEditable:function(A){var B=A.nodeName.toLowerCase();var C=FCK.DTD[B]||FCK.DTD.span;return (C['#']&amp;&amp;!FCKListsLib.NonEditableElements[B]);},GetSelectedDivContainers:function(){var A=[];var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.GetTouchedStartNode();var D=B.GetTouchedEndNode();var E=C;if (C==D){while (D.nodeType==1&amp;&amp;D.lastChild) D=D.lastChild;D=FCKDomTools.GetNextSourceNode(D);}while (E&amp;&amp;E!=D){if (E.nodeType!=3||!/^[ \t\n]*$/.test(E.nodeValue)){var F=new FCKElementPath(E);var G=F.BlockLimit;if (G&amp;&amp;G.nodeName.IEquals('div')&amp;&amp;A.IndexOf(G)==-1) A.push(G);};E=FCKDomTools.GetNextSourceNode(E);};return A;}};
 var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.FixCssUrls=function(A,B){if (!A||A.length==0) return B;return B.replace(/url\s*\(([\s'&quot;]*)(.*?)([\s&quot;']*)\)/g,function(match,opener,path,closer){if (/^\/|^\w?:/.test(path)) return match;else return 'url('+opener+A+path+closer+')';});};FCKTools._GetUrlFixedCss=function(A,B){var C=A.match(/^([^|]+)\|([\s\S]*)/);if (C) return FCKTools.FixCssUrls(C[1],C[2]);else return A;};FCKTools.AppendStyleSheet=function(A,B){if (!B) return [];if (typeof(B)=='string'){if (/[\\\/\.][^{}]*$/.test(B)){return this.AppendStyleSheet(A,B.split(','));}else return [this.AppendStyleString(A,FCKTools._GetUrlFixedCss(B))];}else{var C=[];for (var i=0;i&lt;B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetStyleHtml=(function(){var A=function(styleDef,markTemp){if (styleDef.length==0) return '';var B=markTemp?' _fcktemp=&quot;true&quot;':'';return '&lt;style type=&quot;text/css&quot;'+B+'&gt;'+styleDef+'&lt;/style&gt;';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp=&quot;true&quot;':'';return '&lt;link href=&quot;'+cssFileUrl+'&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot; '+B+'/&gt;';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.][^{}]*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i&lt;cssFileOrArrayOrDef.length;i++) E+=C(cssFileOrArrayOrDef[i],markTemp);return E;}}})();FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&amp;&amp;!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i&lt;A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&amp;/g,'&amp;amp;');A=A.replace(/&lt;/g,'&amp;lt;');A=A.replace(/&gt;/g,'&amp;gt;');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/&amp;gt;/g,'&gt;');A=A.replace(/&amp;lt;/g,'&lt;');A=A.replace(/&amp;amp;/g,'&amp;');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G=&quot;&lt;p&gt;&quot;;var H=&quot;&lt;/p&gt;&quot;;var I=&quot;&lt;br /&gt;&quot;;if (C){G=&quot;&lt;li&gt;&quot;;H=&quot;&lt;/li&gt;&quot;;F=1;}while (D&amp;&amp;D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i&lt;B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G=&quot;&lt;div&gt;&quot;;var H=&quot;&lt;/div&gt;&quot;;if (C){G=&quot;&lt;li&gt;&quot;;H=&quot;&lt;/li&gt;&quot;;F=1;}while (D&amp;&amp;D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i&lt;B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push(&quot;&amp;nbsp;&quot;);};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G=&quot;&lt;br /&gt;&quot;;var H=&quot;&quot;;if (C){G=&quot;&lt;li&gt;&quot;;H=&quot;&lt;/li&gt;&quot;;F=1;};for (var i=0;i&lt;B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&amp;&amp;H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&amp;&amp;H.nodeType!=1) H=H.parentNode;if (H&amp;&amp;H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join(&quot;&quot;);};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement(&quot;OPTION&quot;);D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=&quot;,&quot;+B.toUpperCase()+&quot;,&quot;;while (e){if (C.indexOf(&quot;,&quot;+e.nodeName.toUpperCase()+&quot;,&quot;)!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i&lt;arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||(FCKBrowserInfo.IsSafari?'CSS1Compat':null)));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i&lt;B+C&amp;&amp;i&lt;A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};FCKTools.AppendBogusBr=function(A){if (!A) return;var B=this.GetLastItem(A.getElementsByTagName('br'));if (!B||(B.getAttribute('type',2)!='_moz'&amp;&amp;B.getAttribute('_moz_dirty')==null)){var C=this.GetElementDocument(A);if (FCKBrowserInfo.IsOpera) A.appendChild(C.createTextNode(''));else A.appendChild(this.CreateBogusBR(C));}};FCKTools.GetLastItem=function(A){if (A.length&gt;0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&amp;&amp;!(D==w&amp;&amp;(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&amp;&amp;E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&amp;&amp;FCKDomTools.GetPositionedAncestor(A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { &quot;x&quot;:x,&quot;y&quot;:y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i&lt;C.length;i++){var D=C[i];if (A.elements.namedItem(D)){var E=A.elements.namedItem(D);B.push([E,E.nextSibling]);A.removeChild(E);}};return B;};FCKTools.RestoreFormStyles=function(A,B){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return;if (B.length&gt;0){for (var i=B.length-1;i&gt;=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&amp;&amp;node&amp;&amp;C(node)) return null;while (node&amp;&amp;node.nodeType!=3){node=this.GetNextNode(node,B);if (C&amp;&amp;node&amp;&amp;C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i&lt;A.length;i++){var B=A[i];for (var p in B) o[p]=B[p];};return o;};FCKTools.IsArray=function(A){return (A instanceof Array);};FCKTools.AppendLengthProperty=function(A,B){var C=0;for (var n in A) C++;return A[B||'length']=C;};FCKTools.NormalizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Bind=function(A,B){return function(){ return B.apply(A,arguments);};};FCKTools.GetVoidUrl=function(){if (FCK_IS_CUSTOM_DOMAIN) return &quot;javascript: void( function(){document.open();document.write('&lt;html&gt;&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;');document.domain = '&quot;+FCK_RUNTIME_DOMAIN+&quot;';document.close();}() ) ;&quot;;if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return &quot;&quot;;else return &quot;javascript: '';&quot;;};return &quot;javascript: void(0);&quot;;};FCKTools.ResetStyles=function(A){A.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};
 FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else if (FCKBrowserInfo.IsSafari) A.style.KhtmlUserSelect='none';else A.style.userSelect='none';};FCKTools._AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName(&quot;HEAD&quot;)[0].appendChild(e);return e;};FCKTools.AppendStyleString=function(A,B){if (!B) return null;var e=A.createElement(&quot;STYLE&quot;);e.appendChild(A.createTextNode(B));A.getElementsByTagName(&quot;HEAD&quot;)[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i&lt;A.attributes.length;i++){A.removeAttribute(A.attributes[i].name,0);}};FCKTools.GetAllChildrenIds=function(A){var B=[];var C=function(parent){for (var i=0;i&lt;parent.childNodes.length;i++){var D=parent.childNodes[i].id;if (D&amp;&amp;D.length&gt;0) B[B.length]=D;C(parent.childNodes[i]);}};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i&lt;e.childNodes.length;i++) A.appendChild(e.childNodes[i].cloneNode(true));e.parentNode.replaceChild(A,e);};FCKTools.CreateXmlObject=function(A){switch (A){case 'XmlHttp':return new XMLHttpRequest();case 'DOMDocument':var B=(new DOMParser()).parseFromString('&lt;tmp&gt;&lt;/tmp&gt;','text/xml');FCKDomTools.RemoveNode(B.firstChild);return B;};return null;};FCKTools.GetScrollPosition=function(A){return { X:A.pageXOffset,Y:A.pageYOffset };};FCKTools.AddEventListener=function(A,B,C){A.addEventListener(B,C,false);};FCKTools.RemoveEventListener=function(A,B,C){A.removeEventListener(B,C,false);};FCKTools.AddEventListenerEx=function(A,B,C,D){A.addEventListener(B,function(e){C.apply(A,[e].concat(D||[]));},false);};FCKTools.GetViewPaneSize=function(A){return { Width:A.innerWidth,Height:A.innerHeight };};FCKTools.SaveStyles=function(A){var B=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length&gt;0){C.Class=A.className;A.className='';};var D=A.getAttribute('style');if (D&amp;&amp;D.length&gt;0){C.Inline=D;A.setAttribute('style','',0);};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);FCKTools.RestoreFormStyles(A,C);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return A.document.getElementById(id);};};FCKTools.AppendElement=function(A,B){return A.appendChild(A.ownerDocument.createElement(B));};FCKTools.GetElementPosition=function(A,B){var c={ X:0,Y:0 };var C=B||window;var D=FCKTools.GetElementWindow(A);var E=null;while (A){var F=D.getComputedStyle(A,'').position;if (F&amp;&amp;F!='static'&amp;&amp;A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (!FCKBrowserInfo.IsOpera){var G=E;while (G&amp;&amp;G!=A){c.X-=G.scrollLeft;c.Y-=G.scrollTop;G=G.parentNode;}};E=A;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){A=D.frameElement;E=null;if (A) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;};
-var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='window.FCKeditorAPI = {Version : &quot;2.6.3&quot;,VersionBuild : &quot;19836&quot;,Instances : new Object(),GetInstance : function( name ){return this.Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.Instances ){var oEditor = FCKeditorAPI.Instances[ name ] ;if ( oEditor.GetParentForm &amp;&amp; oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue	: {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length &gt; 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if(FCKBrowserInfo.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;FCKeditorAPI.__Instances=FCKeditorAPI.Instances;};FCKeditorAPI.Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&amp;&amp;(typeof(A.submit)=='function'||(!A.submit.tagName&amp;&amp;!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (window.FCKConfig&amp;&amp;FCKConfig.MsWebBrowserControlCompat&amp;&amp;!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&amp;&amp;FCKConfig.MsWebBrowserControlCompat) window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='window.FCKeditorAPI = {Version : &quot;2.6.4&quot;,VersionBuild : &quot;21629&quot;,Instances : window.FCKeditorAPI &amp;&amp; window.FCKeditorAPI.Instances || {},GetInstance : function( name ){return this.Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.Instances ){var oEditor = FCKeditorAPI.Instances[ name ] ;if ( oEditor.GetParentForm &amp;&amp; oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue	: window.FCKeditorAPI &amp;&amp; window.FCKeditorAPI._FunctionQueue || {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length &gt; 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if(FCKBrowserInfo.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;FCKeditorAPI.__Instances=FCKeditorAPI.Instances;};FCKeditorAPI.Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&amp;&amp;(typeof(A.submit)=='function'||(!A.submit.tagName&amp;&amp;!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (window.FCKConfig&amp;&amp;FCKConfig.MsWebBrowserControlCompat&amp;&amp;!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&amp;&amp;FCKConfig.MsWebBrowserControlCompat) window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
 var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i&lt;A.length;i++){var B=document.createElement('img');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&amp;&amp;B.OnComplete) B.OnComplete();};
 var FCKRegexLib={AposEntity:/&amp;apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\&lt;body[^\&gt;]*\&gt;)/i,AfterBody:/(\&lt;\/body\&gt;[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*[&quot;']?([^&quot;' ]+)/i,HasBaseTag:/&lt;base /i,HasBodyTag:/&lt;body[\s|&gt;]/i,HtmlOpener:/&lt;html\s?[^&gt;]*&gt;/i,HeadOpener:/&lt;head\s?[^&gt;]*&gt;/i,HeadCloser:/&lt;\/head\s*&gt;/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/&gt;/g,EmptyParagraph:/^&lt;(p|div|address|h\d|center)(?=[ &gt;])[^&gt;]*&gt;\s*(&lt;\/\1&gt;)?$/,EmptyOutParagraph:/^&lt;(p|div|address|h\d|center)(?=[ &gt;])[^&gt;]*&gt;(?:\s*|&amp;nbsp;)(&lt;\/\1&gt;)?$/,TagBody:/&gt;&lt;/,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/&lt;img(?=\s).*?\ssrc=((?:(?:\s*)(&quot;|').*?\2)|(?:[^&quot;'][^ &gt;]+))/gi,ProtectUrlsA:/&lt;a(?=\s).*?\shref=((?:(?:\s*)(&quot;|').*?\2)|(?:[^&quot;'][^ &gt;]+))/gi,ProtectUrlsArea:/&lt;area(?=\s).*?\shref=((?:(?:\s*)(&quot;|').*?\2)|(?:[^&quot;'][^ &gt;]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/&lt;!DOCTYPE[^&gt;]*&gt;/i,HtmlDocType:/DTD HTML/,TagsWithEvent:/&lt;[^\&gt;]+ on\w+[\s\r\n]*=[\s\r\n]*?('|&quot;)[\s\S]+?\&gt;/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|&quot;)([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt=&quot;([^&quot;]+)&quot;/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(&lt;(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^&gt;]*)\/&gt;/gi,StyleVariableAttName:/#\(\s*(&quot;|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/,HtmlTag:/&lt;[^\s&lt;&gt;](?:&quot;[^&quot;]*&quot;|'[^']*'|[^&lt;])*&gt;/};
 var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },NonEditableElements:{ button:1,option:1,script:1,iframe:1,textarea:1,object:1,embed:1,map:1,applet:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }};
-var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length&gt;=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length&gt;=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i&lt;e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);e[i][C]=s;}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);this.TranslateElements(A,'LEGEND','innerHTML');},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
-var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.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','&#215;':'times','&#247;':'divide','&#402;':'fnof','&#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','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','&#9674;':'loz','&#9824;':'spades','&#9827;':'clubs','&#9829;':'hearts','&#9830;':'diams','&quot;':'quot','&#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'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'&#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','&#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','&#248;':'oslash','&#249;':'ugrave','&#250;':'uacute','&#251;':'ucirc','&#252;':'uuml','&#253;':'yacute','&#254;':'thorn','&#255;':'yuml','&#338;':'OElig','&#339;':'oelig','&#352;':'Scaron','&#353;':'scaron','&#376;':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'&#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','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A='&#160;';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&amp;&amp;D.length&gt;0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');};
-var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^&lt;xhtml.*?&gt;/,'&lt;xhtml&gt;');E=E.substr(7,E.length-15).Trim();if (FCKConfig.DocType.length&gt;0&amp;&amp;FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'&gt;');else E=E.replace(FCKRegexLib.SpaceNoClose,' /&gt;');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&amp;');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i&lt;FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&amp;');if (!D) FCK.ResetIsDirty();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&amp;/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C&amp;&amp;B.tagName&amp;&amp;B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&amp;&amp;E.nodeType==1&amp;&amp;E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&amp;&amp;FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&amp;&amp;B.tagName.toLowerCase()=='br'&amp;&amp;B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&amp;&amp;(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')){if (B.nextSibling) return false;else{B.removeAttribute('_moz_editor_bogus_node');B.removeAttribute('type');}};if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&amp;&amp;B.scopeName!='HTML'&amp;&amp;B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&amp;&amp;B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&amp;&amp;B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&amp;&amp;!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {};break;default:A.appendChild(this.XML.createComment(&quot;Element not supported - Type: &quot;+B.nodeType+&quot; Name: &quot;+B.nodeName));break;};return true;};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length&gt;0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&amp;&amp;!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&amp;&amp;D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&amp;&amp;E.length&gt;0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl=&quot;[^&quot;]*&quot;/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');return A;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&amp;&amp;B.nodeType==3&amp;&amp;B.nodeValue.Trim().length==0)}	while (B&amp;&amp;B.nodeName.toLowerCase()=='li') return D;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&amp;&amp;D.nodeType==3) D=D.previousSibling;if (D&amp;&amp;D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&amp;&amp;C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
+var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',is:'Icelandic',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length&gt;=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length&gt;=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i&lt;e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);e[i][C]=s;}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);this.TranslateElements(A,'LEGEND','innerHTML');},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
+var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.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','&#215;':'times','&#247;':'divide','&#402;':'fnof','&#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','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','&#9674;':'loz','&#9824;':'spades','&#9827;':'clubs','&#9829;':'hearts','&#9830;':'diams','&quot;':'quot','&gt;':'gt','&#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'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'&#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','&#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','&#248;':'oslash','&#249;':'ugrave','&#250;':'uacute','&#251;':'ucirc','&#252;':'uuml','&#253;':'yacute','&#254;':'thorn','&#255;':'yuml','&#338;':'OElig','&#339;':'oelig','&#352;':'Scaron','&#353;':'scaron','&#376;':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'&#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','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={'&gt;':'gt'};A='&gt;';A+='&#160;';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&amp;&amp;D.length&gt;0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');};
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^&lt;xhtml.*?&gt;/,'&lt;xhtml&gt;');E=E.substr(7,E.length-15).Trim();if (FCKConfig.DocType.length&gt;0&amp;&amp;FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'&gt;');else E=E.replace(FCKRegexLib.SpaceNoClose,' /&gt;');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&amp;');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i&lt;FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&amp;');if (!D) FCK.ResetIsDirty();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&amp;/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C&amp;&amp;B.tagName&amp;&amp;B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&amp;&amp;E.nodeType==1&amp;&amp;E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&amp;&amp;FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&amp;&amp;B.tagName.toLowerCase()=='br'&amp;&amp;B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&amp;&amp;(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')){if (B.nextSibling) return false;else{B.removeAttribute('_moz_editor_bogus_node');B.removeAttribute('type');}};if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&amp;&amp;B.scopeName!='HTML'&amp;&amp;B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&amp;&amp;B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&amp;&amp;B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&amp;&amp;!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {};break;default:A.appendChild(this.XML.createComment(&quot;Element not supported - Type: &quot;+B.nodeType+&quot; Name: &quot;+B.nodeName));break;};return true;};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+(FCKXHtml.SpecialBlocks.push(A)-1);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length&gt;0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&amp;&amp;!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&amp;&amp;D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&amp;&amp;E.length&gt;0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl=&quot;[^&quot;]*&quot;/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');return A;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&amp;&amp;B.nodeType==3&amp;&amp;B.nodeValue.Trim().length==0)}	while (B&amp;&amp;B.nodeName.toLowerCase()=='li') return D;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&amp;&amp;D.nodeType==3) D=D.previousSibling;if (D&amp;&amp;D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&amp;&amp;C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
 FCKXHtml._GetMainXmlString=function(){return (new XMLSerializer()).serializeToString(this.MainNode);};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n&lt;D.length;n++){var E=D[n];if (E.specified){var F=E.nodeName.toLowerCase();var G;if (F.StartsWith('_fck')) continue;else if (F.indexOf('_moz')==0) continue;else if (F=='class'){G=E.nodeValue.replace(FCKRegexLib.FCK_Class,'');if (G.length==0) continue;}else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);this._AppendAttribute(C,F,G);}}};if (FCKBrowserInfo.IsOpera){FCKXHtml.TagProcessors['head']=function(A,B){FCKXHtml.XML._HeadElement=A;A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['meta']=function(A,B,C){if (B.parentNode.nodeName.toLowerCase()!='head'){var D=FCKXHtml.XML._HeadElement;if (D&amp;&amp;C!=D){delete B._fckxhtmljob;FCKXHtml._AppendNode(D,B);return null;}};return A;}};if (FCKBrowserInfo.IsGecko){FCKXHtml.TagProcessors['link']=function(A,B){if (B.href.substr(0,9).toLowerCase()=='chrome://') return false;return A;}};
-var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\&lt;(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi;A.BlocksCloser=/\&lt;\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi;A.NewLineTags=/\&lt;(BR|HR)[^\&gt;]*\&gt;/gi;A.MainTags=/\&lt;\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\&gt;]*\&gt;/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\&lt;(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\&gt;]/i;A.DecreaseIndent=/^\&lt;\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \&gt;]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(&lt;PRE[^&gt;]*&gt;)([\s\S]*?)(&lt;\/PRE&gt;)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&amp;');B=B.replace(this.Regex.BlocksCloser,'$&amp;\n');B=B.replace(this.Regex.NewLineTags,'$&amp;\n');B=B.replace(this.Regex.MainTags,'\n$&amp;\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i&lt;D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j&lt;FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();};
+var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\&lt;(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DL|DT|DD|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi;A.BlocksCloser=/\&lt;\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DL|DT|DD|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi;A.NewLineTags=/\&lt;(BR|HR)[^\&gt;]*\&gt;/gi;A.MainTags=/\&lt;\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\&gt;]*\&gt;/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\&lt;(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \/\&gt;]/i;A.DecreaseIndent=/^\&lt;\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \&gt;]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(&lt;PRE[^&gt;]*&gt;)([\s\S]*?)(&lt;\/PRE&gt;)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+(FCKCodeFormatter.ProtectedData.push(C)-1)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&amp;');B=B.replace(this.Regex.BlocksCloser,'$&amp;\n');B=B.replace(this.Regex.NewLineTags,'$&amp;\n');B=B.replace(this.Regex.MainTags,'\n$&amp;\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i&lt;D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j&lt;FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();};
 var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){FCKSelection.Restore();var A=new FCKDomRange(FCK.EditorWindow);try{A.MoveToSelection();}catch (e){return null;};if (FCKBrowserInfo.IsIE){var B=A.CreateBookmark();var C=FCK.EditorDocument.body.innerHTML;A.MoveToBookmark(B);return [B,C];};return A.CreateBookmark2();};FCKUndo._SelectBookmark=function(A){if (!A) return;var B=new FCKDomRange(FCK.EditorWindow);if (A instanceof Object){if (FCKBrowserInfo.IsIE) B.MoveToBookmark(A[0]);else B.MoveToBookmark2(A);try{B.Select();}catch (e){B.MoveToPosition(FCK.EditorDocument.body,4);B.Select();}}};FCKUndo._CompareCursors=function(A,B){for (var i=0;i&lt;Math.min(A.length,B.length);i++){if (A[i]&lt;B[i]) return-1;else if (A[i]&gt;B[i]) return 1;};if (A.length&lt;B.length) return-1;else if (A.length&gt;B.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&amp;&amp;B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&amp;&amp;E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&amp;&amp;this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex&gt;0&amp;&amp;A==this.SavedData[this.CurrentIndex][0]&amp;&amp;this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&amp;&amp;this.SavedData.length&amp;&amp;A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1&gt;=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex&gt;0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex&lt;(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&amp;&amp;B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;};
 var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A='&lt;script&gt;document.domain=&quot;'+FCK_RUNTIME_DOMAIN+'&quot;;&lt;/script&gt;'+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(&lt;base[^&gt;]*?)\s*\/?&gt;(?!\s*&lt;\/base&gt;)/gi,'$1&gt;&lt;/base&gt;');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&amp;&amp;F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+'&amp;nbsp;'+F[1];if (FCKBrowserInfo.IsGecko&amp;&amp;(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='&lt;br type=&quot;_moz&quot;&gt;';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='&lt;script type=&quot;text/javascript&quot; _fcktemp=&quot;true&quot;&gt;window.onerror=function(){return true;};&lt;/script&gt;';H.frameBorder=0;H.style.width=H.style.height='100%';if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A.replace(/&lt;head&gt;/i,'&lt;head&gt;'+I);H.src='javascript:void( (function(){document.open() ;document.domain=&quot;'+document.domain+'&quot; ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(A.replace(/&lt;head&gt;/i,'&lt;head&gt;'+I));J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&amp;&amp;!B){this.Start(A,true);return;};if (H.readyState&amp;&amp;H.readyState!='completed'){var K=this;setTimeout(function(){try{K.Window.document.documentElement.doScroll(&quot;left&quot;);}catch(e){setTimeout(arguments.callee,0);return;};K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);},0);}else{this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute(&quot;disabled&quot;);}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;A.body.offsetLeft;this._BodyHTML=null;};A.designMode='on';A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE) this._FocusIE();else this.Window.focus();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&amp;&amp;A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length&gt;0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);A.Select();};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML=&quot;&quot;;this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};
 var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&amp;&amp;FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i&lt;arguments.length;i++){var A=arguments[i];if (!A) continue;if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&amp;&amp;B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&amp;&amp;D==CTRL&amp;&amp;(C&lt;33||C&gt;40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;};
@@ -52,37 +52,37 @@ var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._St
 var FCKStyles=FCK.Styles={_Callbacks:{},_ObjectStyles:{},ApplyStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){if (A.GetType()==2) A.ApplyToObject(FCKSelection.GetSelectedElement());else A.ApplyToSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},RemoveStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){A.RemoveFromSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},AttachStyleStateChange:function(A,B,C){var D=this._Callbacks[A];if (!D) D=this._Callbacks[A]=[];D.push([B,C]);},CheckSelectionChanges:function(){var A=FCKSelection.GetBoundaryParentElement(true);if (!A) return;var B=new FCKElementPath(A);var C=this.GetStyles();for (var D in C){var E=this._Callbacks[D];if (E){var F=C[D];var G=F.CheckActive(B);if (G!=(F._LastState||null)){F._LastState=G;for (var i=0;i&lt;E.length;i++){var H=E[i][0];var I=E[i][1];H.call(I||window,D,G);}}}}},CheckStyleInSelection:function(A){return false;},_GetRemoveFormatTagsRegex:function (){var A=new RegExp('^(?:'+FCKConfig.RemoveFormatTags.replace(/,/g,'|')+')$','i');return (this._GetRemoveFormatTagsRegex=function(){return A;})&amp;&amp;A;},RemoveAll:function(){var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();if (A.CheckIsCollapsed()) return;A.Expand('inline_elements');var B=A.CreateBookmark(true);var C=A.GetBookmarkNode(B,true);var D=A.GetBookmarkNode(B,false);A.Release(true);var E=this._GetRemoveFormatTagsRegex();var F=new FCKElementPath(C);var G=F.Elements;var H;for (var i=1;i&lt;G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;if (E.test(H.nodeName)) FCKDomTools.BreakParent(C,H,A);};F=new FCKElementPath(D);G=F.Elements;for (var i=1;i&lt;G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;elementName=H.nodeName.toLowerCase();if (E.test(H.nodeName)) FCKDomTools.BreakParent(D,H,A);};var I=FCKDomTools.GetNextSourceNode(C,true,1);while (I){if (I==D) break;var J=FCKDomTools.GetNextSourceNode(I,false,1);if (E.test(I.nodeName)) FCKDomTools.RemoveNode(I,true);else FCKDomTools.RemoveAttributes(I,FCKConfig.RemoveAttributesArray);I=J;};A.SelectBookmark(B);FCK.Events.FireEvent('OnSelectionChange');},GetStyle:function(A){return this.GetStyles()[A];},GetStyles:function(){var A=this._GetStyles;if (!A){A=this._GetStyles=FCKTools.Merge(this._LoadStylesCore(),this._LoadStylesCustom(),this._LoadStylesXml());};return A;},CheckHasObjectStyle:function(A){return!!this._ObjectStyles[A];},_LoadStylesCore:function(){var A={};var B=FCKConfig.CoreStyles;for (var C in B){var D=A['_FCK_'+C]=new FCKStyle(B[C]);D.IsCore=true;};return A;},_LoadStylesCustom:function(){var A={};var B=FCKConfig.CustomStyles;if (B){for (var C in B){var D=A[C]=new FCKStyle(B[C]);D.Name=C;}};return A;},_LoadStylesXml:function(){var A={};var B=FCKConfig.StylesXmlPath;if (!B||B.length==0) return A;var C=new FCKXml();C.LoadUrl(B);var D=FCKXml.TransformToObject(C.SelectSingleNode('Styles'));var E=D.$Style;if (!E) return A;for (var i=0;i&lt;E.length;i++){var F=E[i];var G=(F.element||'').toLowerCase();if (G.length==0) throw('The element name is required. Error loading &quot;'+B+'&quot;');var H={Element:G,Attributes:{},Styles:{},Overrides:[]};var I=F.$Attribute||[];for (var j=0;j&lt;I.length;j++){H.Attributes[I[j].name]=I[j].value;};var J=F.$Style||[];for (j=0;j&lt;J.length;j++){H.Styles[J[j].name]=J[j].value;};var K=F.$Override;if (K){for (j=0;j&lt;K.length;j++){var L=K[j];var M={Element:L.element};var N=L.$Attribute;if (N){M.Attributes={};for (var k=0;k&lt;N.length;k++){var O=N[k].value||null;if (O){var P=O&amp;&amp;FCKRegexLib.RegExp.exec(O);if (P) O=new RegExp(P[1],P[2]||'');};M.Attributes[N[k].name]=O;}};H.Overrides.push(M);}};var Q=new FCKStyle(H);Q.Name=F.name||G;if (Q.GetType()==2) this._ObjectStyles[G]=true;A[Q.Name]=Q;};return A;}};
 var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&amp;&amp;I.nodeType==1&amp;&amp;I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&amp;&amp;I.nodeType==1&amp;&amp;I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length&gt;0) return true;};B=B.nextSibling;};return false;}};
 var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (FCKBrowserInfo.IsIE&amp;&amp;e.scopeName!='HTML') E=e.scopeName.toLowerCase()+':'+E;if (!C){if (!B&amp;&amp;FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&amp;&amp;E=='div'&amp;&amp;!FCKElementPath._CheckHasBlock(e)) B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};FCKElementPath._CheckHasBlock=function(A){var B=A.childNodes;for (var i=0,count=B.length;i&lt;count;i++){var C=B[i];if (C.nodeType==1&amp;&amp;FCKListsLib.BlockElements[C.nodeName.toLowerCase()]) return true;};return false;};
-var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A.collapsed){this.EndNode=this.StartNode;this.EndContainer=this.StartContainer;this.EndBlock=this.StartBlock;this.EndBlockLimit=this.StartBlockLimit;}else{var D=A.endContainer;if (B!=D) C=new FCKElementPath(D);var E=D;if (A.endOffset==0){while (E&amp;&amp;!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=D;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;};return null;},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;return false;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while (A&amp;&amp;A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E&gt;0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length&gt;0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E&lt;G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&amp;&amp;!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length&gt;0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML='&amp;nbsp;';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML='&amp;nbsp;';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { &quot;Start&quot;:0,&quot;End&quot;:0 };var A={&quot;Start&quot;:[this._Range.startOffset],&quot;End&quot;:[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&amp;&amp;D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&amp;&amp;E.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&amp;&amp;D.childNodes[A.Start[0]]&amp;&amp;D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&amp;&amp;F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&amp;&amp;E.childNodes[A.End[0]]&amp;&amp;E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&amp;&amp;F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&amp;&amp;D&gt;B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;}while (C.nodeType==3&amp;&amp;E&gt;C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&amp;&amp;C&gt;=B.nodeValue.length)||(B.nodeType==1&amp;&amp;C&gt;=B.childNodes.length)||(B.nodeType!=1&amp;&amp;B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&amp;&amp;FCKConfig.EnterMode!='br'&amp;&amp;A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;}while (B&amp;&amp;(B.nodeType!=1||(B!=this.StartBlockLimit&amp;&amp;!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&amp;&amp;FCKConfig.EnterMode!='br'&amp;&amp;A=='block_contents'&amp;&amp;this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&amp;&amp;(B.nodeType!=1||(B!=this.StartBlockLimit&amp;&amp;!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&amp;&amp;B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&amp;&amp;this.CheckStartOfBlock());var G=(D!=null&amp;&amp;this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&amp;&amp;D&amp;&amp;C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&amp;&amp;!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&amp;&amp;FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}};
+var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A.collapsed){this.EndNode=this.StartNode;this.EndContainer=this.StartContainer;this.EndBlock=this.StartBlock;this.EndBlockLimit=this.StartBlockLimit;}else{var D=A.endContainer;if (B!=D) C=new FCKElementPath(D);var E=D;if (A.endOffset==0){while (E&amp;&amp;!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=D;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;};return null;},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;return false;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while (A&amp;&amp;A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E&gt;0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length&gt;0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E&lt;G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&amp;&amp;!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length&gt;0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML='&amp;nbsp;';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML='&amp;nbsp;';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { &quot;Start&quot;:0,&quot;End&quot;:0 };var A={&quot;Start&quot;:[this._Range.startOffset],&quot;End&quot;:[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&amp;&amp;B.nodeType==3&amp;&amp;D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&amp;&amp;C.nodeType==3&amp;&amp;E.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&amp;&amp;D.childNodes[A.Start[0]]&amp;&amp;D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&amp;&amp;F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&amp;&amp;E.childNodes[A.End[0]]&amp;&amp;E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&amp;&amp;F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&amp;&amp;D&gt;B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;}while (C.nodeType==3&amp;&amp;E&gt;C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&amp;&amp;C&gt;=B.nodeValue.length)||(B.nodeType==1&amp;&amp;C&gt;=B.childNodes.length)||(B.nodeType!=1&amp;&amp;B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&amp;&amp;FCKConfig.EnterMode!='br'&amp;&amp;A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;}while (B&amp;&amp;(B.nodeType!=1||(B!=this.StartBlockLimit&amp;&amp;!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&amp;&amp;FCKConfig.EnterMode!='br'&amp;&amp;A=='block_contents'&amp;&amp;this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&amp;&amp;(B.nodeType!=1||(B!=this.StartBlockLimit&amp;&amp;!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&amp;&amp;B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&amp;&amp;this.CheckStartOfBlock());var G=(D!=null&amp;&amp;this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&amp;&amp;D&amp;&amp;C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&amp;&amp;!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&amp;&amp;FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}};
 FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);var A=this.Window.getSelection();if (A&amp;&amp;A.rangeCount&gt;0){this._Range=FCKW3CRange.CreateFromRange(this.Window.document,A.getRangeAt(0));this._UpdateElementInfo();}else if (this.Window.document) this.MoveToElementStart(this.Window.document.body);};FCKDomRange.prototype.Select=function(){var A=this._Range;if (A){var B=A.startContainer;if (A.collapsed&amp;&amp;B.nodeType==1&amp;&amp;B.childNodes.length==0) B.appendChild(A._Document.createTextNode(''));var C=this.Window.document.createRange();C.setStart(B,A.startOffset);try{C.setEnd(A.endContainer,A.endOffset);}catch (e){if (e.toString().Contains('NS_ERROR_ILLEGAL_VALUE')){A.collapse(true);C.setEnd(A.endContainer,A.endOffset);}else throw(e);};var D=this.Window.getSelection();D.removeAllRanges();D.addRange(C);}};FCKDomRange.prototype.SelectBookmark=function(A){var B=this.Window.document.createRange();var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);B.setStart(C.parentNode,FCKDomTools.GetIndexOf(C));FCKDomTools.RemoveNode(C);if (D){B.setEnd(D.parentNode,FCKDomTools.GetIndexOf(D));FCKDomTools.RemoveNode(D);};var E=this.Window.getSelection();E.removeAllRanges();E.addRange(B);};
-var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&amp;&amp;(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&amp;&amp;H.childNodes.length==0&amp;&amp;M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=FCKDomTools.GetNextSourceNode(H,true,null,I);};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&amp;&amp;!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&amp;&amp;H==I);if (B&amp;&amp;!J){while (!H.nextSibling&amp;&amp;!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;K=true;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&amp;&amp;B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&amp;&amp;B.StartNode.parentNode==B.StartBlockLimit&amp;&amp;B.StartNode.getAttribute&amp;&amp;B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&amp;&amp;!this.EnforceRealBlocks&amp;&amp;B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&amp;&amp;B.CheckStartOfBlock()&amp;&amp;B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&amp;&amp;A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&amp;&amp;P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&amp;&amp;P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&amp;&amp;Q.nodeType==1&amp;&amp;Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};if (!this._NextNode) this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}};
+var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&amp;&amp;(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&amp;&amp;H.childNodes.length==0&amp;&amp;M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=FCKDomTools.GetNextSourceNode(H,true,null,I)||H;};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&amp;&amp;!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&amp;&amp;H==I);if (B&amp;&amp;!J){while (!H.nextSibling&amp;&amp;!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;K=true;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&amp;&amp;B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&amp;&amp;B.StartNode.parentNode==B.StartBlockLimit&amp;&amp;B.StartNode.getAttribute&amp;&amp;B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&amp;&amp;!this.EnforceRealBlocks&amp;&amp;B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&amp;&amp;B.CheckStartOfBlock()&amp;&amp;B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&amp;&amp;A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&amp;&amp;P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&amp;&amp;P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&amp;&amp;Q.nodeType==1&amp;&amp;Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};if (!this._NextNode) this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}};
 var FCKDocumentFragment=function(A,B){this.RootNode=B||A.createDocumentFragment();};FCKDocumentFragment.prototype={AppendTo:function(A){A.appendChild(this.RootNode);},AppendHtml:function(A){var B=this.RootNode.ownerDocument.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,this.RootNode);},InsertAfterNode:function(A){FCKDomTools.InsertAfterNode(A,this.RootNode);}};
 var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&amp;&amp;this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length&gt;0){if (F&gt;D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else if (E&gt;C.childNodes.length-1){C=C.appendChild(this._Document.createTextNode(''));G=true;}else C=C.childNodes[E].previousSibling;};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i&lt;I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j&lt;I.length;j++){levelStartNode=I[j];if (K&amp;&amp;levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k&lt;J.length;k++){levelStartNode=J[k];if (A&gt;0&amp;&amp;levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&amp;&amp;M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&amp;&amp;topEnd&amp;&amp;(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&amp;&amp;topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&amp;&amp;D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);}};
-var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D&gt;0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&amp;&amp;D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&amp;&amp;this.Window.document.selection.type.toLowerCase()==&quot;control&quot;){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i&gt;=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&amp;&amp;F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&amp;&amp;H&amp;&amp;I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&amp;&amp;C&amp;&amp;C.nodeName.IEquals('LI')&amp;&amp;C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&amp;&amp;B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&amp;&amp;C){if (C.nodeName.IEquals('LI')&amp;&amp;!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&amp;&amp;B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C==&quot;tr&quot;||C==&quot;td&quot;||C==&quot;th&quot;||C==&quot;tbody&quot;||C==&quot;table&quot;) return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&amp;&amp;E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&amp;&amp;!H){if (F.nodeName.IEquals('li')&amp;&amp;F.firstChild&amp;&amp;F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&amp;&amp;H&amp;&amp;E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&amp;&amp;!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){for (var i=0,len=K.Elements.length;i&lt;len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(I);C.Select();};C.MoveToElementEditStart(G&amp;&amp;!H?F:I);};if (FCKBrowserInfo.IsGeckoLike) FCKDomTools.ScrollIntoView(F||I,false);C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;var G=false;if (!F&amp;&amp;E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&amp;&amp;D&amp;&amp;(/^H[1-6]$/).test(E)){FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&amp;&amp;FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);FCKDomTools.ScrollIntoView(I,false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&amp;&amp;D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();};
-var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).createElement('IMG');C.className=A;C.src=FCKConfig.BasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.name.length&gt;0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.style.pageBreakAfter=='always'&amp;&amp;C.childNodes.length==1&amp;&amp;C.childNodes[0].style&amp;&amp;C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i&lt;A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};var F=function(elementName,doc){var G=doc.getElementsByTagName(elementName);for (var i=G.length-1;i&gt;=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},RefreshView:function(placeHolder,original){if (original.getAttribute('width')&gt;0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')&gt;0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length&gt;0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length&gt;0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&amp;&amp;(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-style-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i&gt;=0;i--) FCKDomTools.RemoveNode(B[i],true);}};
+var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D&gt;0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&amp;&amp;D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&amp;&amp;this.Window.document.selection.type.toLowerCase()==&quot;control&quot;){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i&gt;=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&amp;&amp;F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&amp;&amp;H&amp;&amp;I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&amp;&amp;C&amp;&amp;C.nodeName.IEquals('LI')&amp;&amp;C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&amp;&amp;B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&amp;&amp;C){if (C.nodeName.IEquals('LI')&amp;&amp;!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&amp;&amp;B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C==&quot;tr&quot;||C==&quot;td&quot;||C==&quot;th&quot;||C==&quot;tbody&quot;||C==&quot;table&quot;) return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&amp;&amp;E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&amp;&amp;!H){if (F.nodeName.IEquals('li')&amp;&amp;F.firstChild&amp;&amp;F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&amp;&amp;H&amp;&amp;E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&amp;&amp;!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){for (var i=0,len=K.Elements.length;i&lt;len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(I);C.Select();};C.MoveToElementEditStart(G&amp;&amp;!H?F:I);};if (FCKBrowserInfo.IsGeckoLike){if (F){var M=this.Window.document.createElement('span');M.innerHTML='&amp;nbsp;';C.InsertNode(M);FCKDomTools.ScrollIntoView(M,false);C.DeleteContents();}else{FCKDomTools.ScrollIntoView(F||I,false);}};C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;var G=false;if (!F&amp;&amp;E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&amp;&amp;D&amp;&amp;(/^H[1-6]$/).test(E)){FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&amp;&amp;FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);FCKDomTools.ScrollIntoView(I,false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&amp;&amp;D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();};
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.push(A);return A;};FCKDocumentProcessor.Process=function(A){var B=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).createElement('IMG');C.className=A;C.src=FCKConfig.BasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.name.length&gt;0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.style.pageBreakAfter=='always'&amp;&amp;C.childNodes.length==1&amp;&amp;C.childNodes[0].style&amp;&amp;C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i&lt;A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};var F=function(elementName,doc){var G=doc.getElementsByTagName(elementName);for (var i=G.length-1;i&gt;=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},RefreshView:function(placeHolder,original){if (original.getAttribute('width')&gt;0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')&gt;0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length&gt;0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length&gt;0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&amp;&amp;(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-style-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i&gt;=0;i--) FCKDomTools.RemoveNode(B[i],true);}};
 var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}};
 FCKSelection.GetType=function(){var A='Text';var B;try { B=this.GetSelection();} catch (e) {};if (B&amp;&amp;B.rangeCount==1){var C=B.getRangeAt(0);if (C.startContainer==C.endContainer&amp;&amp;(C.endOffset-C.startOffset)==1&amp;&amp;C.startContainer.nodeType==1&amp;&amp;FCKListsLib.StyleObjectElements[C.startContainer.childNodes[C.startOffset].nodeName.toLowerCase()]){A='Control';}};return A;};FCKSelection.GetSelectedElement=function(){var A=!!FCK.EditorWindow&amp;&amp;this.GetSelection();if (!A||A.rangeCount&lt;1) return null;var B=A.getRangeAt(0);if (B.startContainer!=B.endContainer||B.startContainer.nodeType!=1||B.startOffset!=B.endOffset-1) return null;var C=B.startContainer.childNodes[B.startOffset];if (C.nodeType!=1) return null;return C;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=this.GetSelection();if (A){if (A.anchorNode&amp;&amp;A.anchorNode==A.focusNode){var B=A.getRangeAt(0);if (B.collapsed||B.startContainer.nodeType==3) return A.anchorNode.parentNode;else return A.anchorNode;};var C=new FCKElementPath(A.anchorNode);var D=new FCKElementPath(A.focusNode);var E=null;var F=null;if (C.Elements.length&gt;D.Elements.length){E=C.Elements;F=D.Elements;}else{E=D.Elements;F=C.Elements;};var G=E.length-F.length;for(var i=0;i&lt;F.length;i++){if (E[G+i]==F[i]) return F[i];};return null;}};return null;};FCKSelection.GetBoundaryParentElement=function(A){if (!FCK.EditorWindow) return null;if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var B=this.GetSelection();if (B&amp;&amp;B.rangeCount&gt;0){var C=B.getRangeAt(A?0:(B.rangeCount-1));var D=A?C.startContainer:C.endContainer;return (D.nodeType==1?D:D.parentNode);}};return null;};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=this.GetSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=this.GetSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&amp;&amp;FCK.EditorWindow){try		{ B=this.GetSelection().getRangeAt(0).startContainer;}catch(e){}}while (B){if (B.nodeType==1&amp;&amp;B.nodeName.IEquals(A)) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=this.GetSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName.IEquals(A)) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=this.GetSelection();for (var i=0;i&lt;A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};FCKSelection.GetSelection=function(){return FCK.EditorWindow.getSelection();};FCKSelection.Save=function(){};FCKSelection.Restore=function(){};FCKSelection.Release=function(){};
-var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i&lt;B.length;i++){var D=FCKTools.GetElementAscensor(B[i],'TR');C[D.rowIndex]=D;};for (var i=C.length;i&gt;=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&amp;&amp;C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i&lt;D.rows.length;i++){var F=D.rows[i];if (F.cells.length&lt;(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];if (A) F.insertBefore(B,G);else if (G.nextSibling) F.insertBefore(B,G.nextSibling);else F.appendChild(B);}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i&gt;=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i&gt;=0;i--){var E=C.rows[i];if (D==0&amp;&amp;E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&amp;&amp;D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&amp;&amp;C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i&gt;=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i&lt;A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i&lt;A.length;i++){if (FCKBrowserInfo.IsIE) A[i].removeAttribute(B);else delete A[i][B];}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&amp;&amp;A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&amp;&amp;A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&amp;&amp;A[i][C]&amp;&amp;A[i][C][D];i++) F++;for (var i=B-1;A[i]&amp;&amp;A[i][C]&amp;&amp;A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length&lt;1) return false;this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width&gt;=E.height){for (D=F;D&lt;F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C&lt;G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length&lt;2) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=FCKTools.GetElementDocument(B).createDocumentFragment();for (var i=0;i&lt;F.height;i++){var J=0;for (var j=0;j&lt;F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length&gt;0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&amp;&amp;L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J&gt;0) I.appendChild(FCKTools.GetElementDocument(B).createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&amp;&amp;(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&amp;&amp;D.childNodes&amp;&amp;D.childNodes.length&gt;0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&amp;&amp;D.childNodes&amp;&amp;D.childNodes.length&gt;0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCKTools.GetElementDocument(D).createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F&gt;1){var G=Math.ceil(F/2);var H=FCKTools.GetElementDocument(B).createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r&lt;D+K;r++){for (var i=I;i&lt;J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i&lt;C.length;i++){var M=C[i].slice(0,E);if (C[i].length&lt;=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(FCKTools.GetElementDocument(B).createElement('td'));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j&lt;C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=FCKTableHandler._GetCellIndexSpan(C,B.parentNode.rowIndex,B);var E=B.rowSpan;var F=B.parentNode.rowIndex;if (isNaN(E)) E=1;if (E&gt;1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;i&lt;C[G].length;i++){if (C[G][i].parentNode.rowIndex==G){H=C[G][i];break;}};var I=FCK.EditorDocument.createElement('td');I.rowSpan=Math.floor(E/2);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);B.parentNode.parentNode.rows[G].insertBefore(I,H);}else{var G=F+1;var K=FCK.EditorDocument.createElement('tr');var L=B.parentNode.parentNode;if (L.rows.length&gt;G) L.insertBefore(K,L.rows[G]);else L.appendChild(K);for (var i=0;i&lt;C[F].length;){var M=C[F][i].colSpan;if (isNaN(M)||M&lt;1) M=1;if (i==D){i+=M;continue;};var N=C[F][i].rowSpan;if (isNaN(N)) N=1;C[F][i].rowSpan=N+1;i+=M;};var I=FCK.EditorDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);K.appendChild(I);}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length&lt;B+1) return null;var D=A[B];for (var c=0;c&lt;D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCellLocation=function(A,B){for (var i=0;i&lt;A.length;i++){for (var c=0;c&lt;A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._GetColumnCells=function(A,B){var C=[];for (var r=0;r&lt;A.length;r++){var D=A[r][B];if (D&amp;&amp;(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i&lt;B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j&lt;B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G&lt;F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H&lt;E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler._InstallTableMap=function(A,B){var C=FCKBrowserInfo.IsIE?&quot;_fckrowspan&quot;:&quot;rowSpan&quot;;while (B.rows.length&gt;0){var D=B.rows[0];D.parentNode.removeChild(D);};for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var E=A[i][j];if (E.parentNode) E.parentNode.removeChild(E);E.colSpan=E[C]=1;}};var F=0;for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var E=A[i][j];if (!E) continue;if (j&gt;F) F=j;if (E._colScanned===true) continue;if (A[i][j-1]==E) E.colSpan++;if (A[i][j+1]!=E) E._colScanned=true;}};for (var i=0;i&lt;=F;i++){for (var j=0;j&lt;A.length;j++){if (!A[j]) continue;var E=A[j][i];if (!E||E._rowScanned===true) continue;if (A[j-1]&amp;&amp;A[j-1][i]==E) E[C]++;if (!A[j+1]||A[j+1][i]!=E) E._rowScanned=true;}};for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var E=A[i][j];if (FCKBrowserInfo.IsIE){E.removeAttribute('_colScanned');E.removeAttribute('_rowScanned');}else{delete E._colScanned;delete E._rowScanned;}}};for (var i=0;i&lt;A.length;i++){var J=FCKTools.GetElementDocument(B).createElement('tr');for (var j=0;j&lt;A[i].length;){var E=A[i][j];if (A[i-1]&amp;&amp;A[i-1][j]==E){j+=E.colSpan;continue;};J.appendChild(E);if (C!='rowSpan'){E.rowSpan=E[C];E.removeAttribute(C);};j+=E.colSpan;if (E.colSpan==1) E.removeAttribute('colspan');if (E.rowSpan==1) E.removeAttribute('rowspan');};B.appendChild(J);}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i&lt;B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};
-FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCKSelection.GetSelection();if (B.rangeCount==1&amp;&amp;B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD,TH');if (C) A[0]=C;return A;};for (var i=0;i&lt;B.rangeCount;i++){var D=B.getRangeAt(i);var E;if (D.startContainer.tagName.Equals('TD','TH')) E=D.startContainer;else E=D.startContainer.childNodes[D.startOffset];if (E.tagName.Equals('TD','TH')) A[A.length]=E;};return A;};
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i&lt;B.length;i++){var D=B[i].parentNode;C[D.rowIndex]=D;};for (var i=C.length;i&gt;=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&amp;&amp;C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i&lt;D.rows.length;i++){var F=D.rows[i];if (F.cells.length&lt;(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];F.insertBefore(B,(A?G:G.nextSibling));}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i&gt;=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i&gt;=0;i--){var E=C.rows[i];if (D==0&amp;&amp;E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&amp;&amp;D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&amp;&amp;C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(A.parentNode);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i&gt;=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i&lt;A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i&lt;A.length;i++){FCKDomTools.ClearElementJSProperty(A[i],B);}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&amp;&amp;A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&amp;&amp;A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&amp;&amp;A[i][C]&amp;&amp;A[i][C][D];i++) F++;for (var i=B-1;A[i]&amp;&amp;A[i][C]&amp;&amp;A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length&lt;1) return false;for (var i=0;i&lt;A.length;i++){if (A[i].parentNode.parentNode!=A[0].parentNode.parentNode) return false;};this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0]);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width&gt;=E.height){for (D=F;D&lt;F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C&lt;G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length&lt;2) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=FCKTools.GetElementDocument(B).createDocumentFragment();for (var i=0;i&lt;F.height;i++){var J=0;for (var j=0;j&lt;F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length&gt;0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&amp;&amp;L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J&gt;0) I.appendChild(FCK.EditorDocument.createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&amp;&amp;(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&amp;&amp;D.childNodes&amp;&amp;D.childNodes.length&gt;0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&amp;&amp;D.childNodes&amp;&amp;D.childNodes.length&gt;0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCK.EditorDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F&gt;1){var G=Math.ceil(F/2);var H=FCK.EditorDocument.createElement(B.nodeName);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r&lt;D+K;r++){for (var i=I;i&lt;J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i&lt;C.length;i++){var M=C[i].slice(0,E);if (C[i].length&lt;=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(FCK.EditorDocument.createElement(B.nodeName));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j&lt;C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;var G=B.rowSpan;if (isNaN(G)) G=1;if (G&gt;1){B.rowSpan=Math.ceil(G/2);var H=D+Math.ceil(G/2);var I=C[H];var J=null;for (var i=E+1;i&lt;I.length;i++){if (I[i].parentNode.rowIndex==H){J=I[i];break;}};var K=FCK.EditorDocument.createElement(B.nodeName);K.rowSpan=Math.floor(G/2);if (F&gt;1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);B.parentNode.parentNode.parentNode.rows[H].insertBefore(K,J);}else{var L=B.parentNode.sectionRowIndex+1;var M=FCK.EditorDocument.createElement('tr');var N=B.parentNode.parentNode;if (N.rows.length&gt;L) N.insertBefore(M,N.rows[L]);else N.appendChild(M);for (var i=0;i&lt;C[D].length;){var O=C[D][i].colSpan;if (isNaN(O)||O&lt;1) O=1;if (i==E){i+=O;continue;};var P=C[D][i].rowSpan;if (isNaN(P)) P=1;C[D][i].rowSpan=P+1;i+=O;};var K=FCK.EditorDocument.createElement(B.nodeName);if (F&gt;1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);M.appendChild(K);}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length&lt;B+1) return null;var D=A[B];for (var c=0;c&lt;D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCellLocation=function(A,B){for (var i=0;i&lt;A.length;i++){for (var c=0;c&lt;A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._CreateTableMap=function(A){var B=(A.nodeName=='TABLE'?A:A.parentNode.parentNode.parentNode);var C=B.rows;var r=-1;var D=[];for (var i=0;i&lt;C.length;i++){r++;if (!D[r]) D[r]=[];var c=-1;for (var j=0;j&lt;C[i].cells.length;j++){var E=C[i].cells[j];c++;while (D[r][c]) c++;var F=isNaN(E.colSpan)?1:E.colSpan;var G=isNaN(E.rowSpan)?1:E.rowSpan;for (var H=0;H&lt;G;H++){if (!D[r+H]) D[r+H]=[];for (var I=0;I&lt;F;I++){D[r+H][c+I]=C[i].cells[j];}};c+=F-1;}};return D;};FCKTableHandler._InstallTableMap=function(A,B){var C=FCKBrowserInfo.IsIE?&quot;_fckrowspan&quot;:&quot;rowSpan&quot;;for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var D=A[i][j];if (D.parentNode) D.parentNode.removeChild(D);D.colSpan=D[C]=1;}};var E=0;for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var D=A[i][j];if (!D) continue;if (j&gt;E) E=j;if (D._colScanned===true) continue;if (A[i][j-1]==D) D.colSpan++;if (A[i][j+1]!=D) D._colScanned=true;}};for (var i=0;i&lt;=E;i++){for (var j=0;j&lt;A.length;j++){if (!A[j]) continue;var D=A[j][i];if (!D||D._rowScanned===true) continue;if (A[j-1]&amp;&amp;A[j-1][i]==D) D[C]++;if (!A[j+1]||A[j+1][i]!=D) D._rowScanned=true;}};for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var D=A[i][j];FCKDomTools.ClearElementJSProperty(D,'_colScanned');FCKDomTools.ClearElementJSProperty(D,'_rowScanned');}};for (var i=0;i&lt;A.length;i++){var I=FCK.EditorDocument.createElement('tr');for (var j=0;j&lt;A[i].length;){var D=A[i][j];if (A[i-1]&amp;&amp;A[i-1][j]==D){j+=D.colSpan;continue;};I.appendChild(D);if (C!='rowSpan'){D.rowSpan=D[C];D.removeAttribute(C);};j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};if (FCKBrowserInfo.IsIE){B.rows[i].replaceNode(I);}else{B.rows[i].innerHTML='';FCKDomTools.MoveChildren(I,B.rows[i]);}}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i&lt;B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;if (B.parentNode.parentNode!=G.parentNode.parentNode) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};
+FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCKSelection.GetSelection();if (B.rangeCount==1&amp;&amp;B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD,TH');if (C) A[0]=C;return A;};for (var i=0;i&lt;B.rangeCount;i++){var D=B.getRangeAt(i);var E;if (D.startContainer.tagName.Equals('TD','TH')) E=D.startContainer;else E=D.startContainer.childNodes[D.startOffset];if (E.nodeName.Equals('TD','TH')) A[A.length]=E;};return A;};
 var FCKXml=function(){this.Error=false;};FCKXml.GetAttribute=function(A,B,C){var D=A.attributes.getNamedItem(B);return D?D.value:C;};FCKXml.TransformToObject=function(A){if (!A) return null;var B={};var C=A.attributes;for (var i=0;i&lt;C.length;i++){var D=C[i];B[D.name]=D.value;};var E=A.childNodes;for (i=0;i&lt;E.length;i++){var F=E[i];if (F.nodeType==1){var G='$'+F.nodeName;var H=B[G];if (!H) H=B[G]=[];H.push(this.TransformToObject(F));}};return B;};
 FCKXml.prototype={LoadUrl:function(A){this.Error=false;var B;var C=FCKTools.CreateXmlObject('XmlHttp');C.open('GET',A,false);C.send(null);if (C.status==200||C.status==304||(C.status==0&amp;&amp;C.readyState==4)){B=C.responseXML;if (!B) B=(new DOMParser()).parseFromString(C.responseText,'text/xml');}else B=null;if (B){try{var D=B.firstChild;}catch (e){B=(new DOMParser()).parseFromString(C.responseText,'text/xml');}};if (!B||!B.firstChild){this.Error=true;if (window.confirm('Error loading &quot;'+A+'&quot; (HTTP Status: '+C.status+').\r\nDo you want to see the server response dump?')) alert(C.responseText);};this.DOMDocument=B;},SelectNodes:function(A,B){if (this.Error) return [];var C=[];var D=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (D){var E=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();}};return C;},SelectSingleNode:function(A,B){if (this.Error) return null;var C=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&amp;&amp;C.singleNodeValue) return C.singleNodeValue;else return null;}};
 var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState(this.Name);};
 var FCKStyleCommand=function(){};FCKStyleCommand.prototype={Name:'Style',Execute:function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) FCK.Styles.RemoveStyle(B.Style);else FCK.Styles.ApplyStyle(B.Style);FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorDocument) return -1;if (FCKSelection.GetType()=='Control'){var A=FCKSelection.GetSelectedElement();if (!A||!FCKStyles.CheckHasObjectStyle(A.nodeName.toLowerCase())) return -1;};return 0;}};
-var FCKDialogCommand=function(A,B,C,D,E,F,G,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&amp;&amp;B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetData('');FCKUndo.Typing=true;FCK.Focus();};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='&lt;span style=&quot;DISPLAY:none&quot;&gt;&amp;nbsp;&lt;/span&gt;';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState(this.Name);if (A==0&amp;&amp;FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&amp;&amp;B.name.length&gt;0&amp;&amp;B.href.length==0);if (C) A=-1;};return A;};FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1:FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&amp;&amp;A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};var FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&amp;&amp;B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i&lt;A.length;i++) FCKDomTools.RemoveNode(A[i],true);B.MoveToBookmark(C);B.Select();}};var FCKNbsp=function(){this.Name='Non Breaking Space';};FCKNbsp.prototype={Execute:function(){FCK.InsertHtml('&amp;nbsp;');},GetState:function(){return (FCK.EditMode!=0?-1:0);}};
-var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';if (FCKBrowserInfo.IsIE){try{FCK.EditorDocument.selection.createRange().select();}catch (e){}}else{var C=FCK.EditorWindow.getSelection().focusNode;if (C.nodeType!=1) C=C.parentNode;FCKDomTools.ScrollIntoView(C,false);};FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&amp;&amp;this.GetState()!=this._SavedState) this.Execute();};
-var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);};FCKSpellCheckCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return this.IsEnabled?0:-1;};
+var FCKDialogCommand=function(A,B,C,D,E,F,G,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&amp;&amp;B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetData('');FCKUndo.Typing=true;FCK.Focus();};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='&lt;span style=&quot;DISPLAY:none&quot;&gt;&amp;nbsp;&lt;/span&gt;';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState(this.Name);if (A==0&amp;&amp;FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&amp;&amp;B.name.length&gt;0&amp;&amp;B.href.length==0);if (C) A=-1;};return A;};var FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1:FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&amp;&amp;A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};var FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&amp;&amp;B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i&lt;A.length;i++) FCKDomTools.RemoveNode(A[i],true);B.MoveToBookmark(C);B.Select();}};var FCKNbsp=function(){this.Name='Non Breaking Space';};FCKNbsp.prototype={Execute:function(){FCK.InsertHtml('&amp;nbsp;');},GetState:function(){return (FCK.EditMode!=0?-1:0);}};
+var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';if (FCKBrowserInfo.IsIE){try{FCK.EditorDocument.selection.createRange().select();}catch (e){}}else{var C=FCK.EditorWindow.getSelection().focusNode;if (C){if (C.nodeType!=1) C=C.parentNode;FCKDomTools.ScrollIntoView(C,false);}};FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&amp;&amp;this.GetState()!=this._SavedState) this.Execute();};
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker!='ieSpell');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;case 'WSC':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','wsc/w.html',530,480);}};FCKSpellCheckCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return this.IsEnabled?0:-1;};
 var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B);this._Panel.AppendStyleSheet(FCKConfig.SkinEditorCSS);this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCK.ToolbarSet.ToolbarItems.GetItem(this.Name).RegisterPanel(this._Panel);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){FCKUndo.SaveUndoStep();var B=FCKStyles.GetStyle('_FCK_'+(this.Type=='ForeColor'?'Color':'BackColor'));if (!A||A.length==0) FCK.Styles.RemoveStyle(B);else{B.SetVariable('Color',A);FCKStyles.ApplyStyle(B);};FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');};FCKTextColorCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};function FCKTextColorCommand_OnMouseOver(){this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut(){this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(A,B,C){this.className='ColorDeselected';B.SetColor(C);B._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(A,B){this.className='ColorDeselected';B.SetColor('');B._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(A,B){this.className='ColorDeselected';B._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',410,320,FCKTools.Bind(B,B.SetColor));};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement(&quot;DIV&quot;);C.className='ColorDeselected';FCKTools.AddEventListenerEx(C,'mouseover',FCKTextColorCommand_OnMouseOver);FCKTools.AddEventListenerEx(C,'mouseout',FCKTextColorCommand_OnMouseOut);return C;};var D=B.appendChild(A.createElement(&quot;TABLE&quot;));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; border=&quot;0&quot;&gt;\n			&lt;tr&gt;\n				&lt;td&gt;&lt;div class=&quot;ColorBoxBorder&quot;&gt;&lt;div class=&quot;ColorBox&quot; style=&quot;background-color: #000000&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;\n				&lt;td nowrap width=&quot;100%&quot; align=&quot;center&quot;&gt;'+FCKLang.ColorAutomatic+'&lt;/td&gt;\n			&lt;/tr&gt;\n		&lt;/table&gt;';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H&lt;G.length){var I=D.insertRow(-1);for (var i=0;i&lt;8;i++,H++){if (H&lt;G.length){var J=G[H].split('/');var K='#'+J[0];var L=J[1]||K;};C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.innerHTML='&lt;div class=&quot;ColorBoxBorder&quot;&gt;&lt;div class=&quot;ColorBox&quot; style=&quot;background-color: '+K+'&quot;&gt;&lt;/div&gt;&lt;/div&gt;';if (H&gt;=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='&lt;table width=&quot;100%&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td nowrap align=&quot;center&quot;&gt;'+FCKLang.ColorMoreColors+'&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';};
 var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');};
 var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCK.EditMode!=0||FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
 var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&amp;&amp;FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&amp;&amp;FCKTableHandler.GetSelectedCells().length&gt;1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;};
-var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;var H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();var I=FCKTools.GetScrollPosition(FCK.EditorWindow);if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var J=FCKTools.GetViewPaneSize(C);B.position=&quot;absolute&quot;;A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left=&quot;0px&quot;;B.top=&quot;0px&quot;;B.width=J.Width+&quot;px&quot;;B.height=J.Height+&quot;px&quot;;if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom=&quot;9999px solid white&quot;;B.backgroundColor=&quot;white&quot;;};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+&quot;px&quot;;if (K.y!=0) B.top=(-1*K.y)+&quot;px&quot;;this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent(&quot;onresize&quot;,FCKFitWindow_Resize);else C.removeEventListener(&quot;resize&quot;,FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();H.Select();FCK.EditorWindow.scrollTo(I.X,I.Y);};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;var H,oEditorScrollPos;if (FCK.EditMode==0){H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();oEditorScrollPos=FCKTools.GetScrollPosition(FCK.EditorWindow);}else{var I=FCK.EditingArea.Textarea;H=!FCKBrowserInfo.IsIE&amp;&amp;[I.selectionStart,I.selectionEnd];oEditorScrollPos=[I.scrollLeft,I.scrollTop];};if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var J=FCKTools.GetViewPaneSize(C);B.position=&quot;absolute&quot;;A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left=&quot;0px&quot;;B.top=&quot;0px&quot;;B.width=J.Width+&quot;px&quot;;B.height=J.Height+&quot;px&quot;;if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom=&quot;9999px solid white&quot;;B.backgroundColor=&quot;white&quot;;};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+&quot;px&quot;;if (K.y!=0) B.top=(-1*K.y)+&quot;px&quot;;this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent(&quot;onresize&quot;,FCKFitWindow_Resize);else C.removeEventListener(&quot;resize&quot;,FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();if (FCK.EditMode==0){H.Select();FCK.EditorWindow.scrollTo(oEditorScrollPos.X,oEditorScrollPos.Y);}else{if (!FCKBrowserInfo.IsIE){I.selectionStart=H[0];I.selectionEnd=H[1];};I.scrollLeft=oEditorScrollPos[0];I.scrollTop=oEditorScrollPos[1];}};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
 var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&amp;&amp;B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i&gt;=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCKSelection.GetSelection();if (T&amp;&amp;F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&amp;&amp;i&lt;T.rangeCount;i++) K.push(T.getRangeAt(i));};if (K.length&lt;1) J=false;else{var U=FCKW3CRange.CreateFromRange(A,K.shift());B._Range=U;B._UpdateElementInfo();if (B.StartNode.nodeName.IEquals('td')) B.SetStart(B.StartNode,1);if (B.EndNode.nodeName.IEquals('td')) B.SetEnd(B.EndNode,2);H=new FCKDomRangeIterator(B);H.ForceBrBreak=(C==0);}}};var W=[];while (F.length&gt;0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&amp;&amp;Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;i&lt;W.length;i++){var M=W[i];var Z=false;var a=M;while (!Z){a=a.nextSibling;if (a&amp;&amp;a.nodeType==3&amp;&amp;a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&amp;&amp;a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.firstChild) M.appendChild(a.removeChild(a.firstChild));};Z=false;a=M;while (!Z){a=a.previousSibling;if (a&amp;&amp;a.nodeType==3&amp;&amp;a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&amp;&amp;a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.lastChild) M.insertBefore(a.removeChild(a.lastChild),M.firstChild);}};FCKDomTools.ClearAllMarkers(G);B.MoveToBookmark(E);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},_ChangeListType:function(A,B,C){var D=FCKDomTools.ListToArray(A.root,B);var E=[];for (var i=0;i&lt;A.contents.length;i++){var F=A.contents[i];F=FCKTools.GetElementAscensor(F,'li');if (!F||F._FCK_ListItem_Processed) continue;E.push(F);FCKDomTools.SetElementMarker(B,F,'_FCK_ListItem_Processed',true);};var G=FCKTools.GetElementDocument(A.root).createElement(this.TagName);for (var i=0;i&lt;E.length;i++){var H=E[i]._FCK_ListArray_Index;D[H].parent=G;};var I=FCKDomTools.ArrayToList(D,B);for (var i=0;i&lt;I.listNode.childNodes.length;i++){if (I.listNode.childNodes[i].nodeName.IEquals(this.TagName)) C.push(I.listNode.childNodes[i]);};A.root.parentNode.replaceChild(I.listNode,A.root);},_CreateList:function(A,B){var C=A.contents;var D=FCKTools.GetElementDocument(A.root);var E=[];if (C.length==1&amp;&amp;C[0]==A.root){var F=D.createElement('div');while (C[0].firstChild) F.appendChild(C[0].removeChild(C[0].firstChild));C[0].appendChild(F);C[0]=F;};var G=A.contents[0].parentNode;for (var i=0;i&lt;C.length;i++) G=FCKDomTools.GetCommonParents(G,C[i].parentNode).pop();for (var i=0;i&lt;C.length;i++){var H=C[i];while (H.parentNode){if (H.parentNode==G){E.push(H);break;};H=H.parentNode;}};if (E.length&lt;1) return;var I=E[E.length-1].nextSibling;var J=D.createElement(this.TagName);B.push(J);while (E.length){var K=E.shift();var L=D.createDocumentFragment();while (K.firstChild) L.appendChild(K.removeChild(K.firstChild));K.parentNode.removeChild(K);var M=D.createElement('li');M.appendChild(L);J.appendChild(M);};G.insertBefore(J,I);},_RemoveList:function(A,B){var C=FCKDomTools.ListToArray(A.root,B);var D=[];for (var i=0;i&lt;A.contents.length;i++){var E=A.contents[i];E=FCKTools.GetElementAscensor(E,'li');if (!E||E._FCK_ListItem_Processed) continue;D.push(E);FCKDomTools.SetElementMarker(B,E,'_FCK_ListItem_Processed',true);};var F=null;for (var i=0;i&lt;D.length;i++){var G=D[i]._FCK_ListArray_Index;C[G].indent=-1;F=G;};for (var i=F+1;i&lt;C.length;i++){if (C[i].indent&gt;C[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&amp;&amp;C[i].indent&gt;=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}};
 var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&amp;&amp;B=='ltr')||(A=='right'&amp;&amp;B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0]||null;case 'center':return D[1]||null;case 'right':return D[2]||null;case 'justify':return D[3]||null;}};return null;})();if (C&amp;&amp;C.length&gt;0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i&lt;4;i++){var D=C[i];if (D&amp;&amp;D.length&gt;0) B.push(D);}};if (B.length&gt;0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length&gt;0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&amp;&amp;this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}};
 var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&amp;&amp;FCKConfig.IndentClasses.length&gt;0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i&lt;FCKConfig.IndentClasses.length;i++) this._IndentClassMap[FCKConfig.IndentClasses[i]]=i+1;this._ClassNameRegex=new RegExp('(?:^|\\s+)('+FCKConfig.IndentClasses.join('|')+')(?=$|\\s)');}else this._UseIndentClasses=false;};FCKIndentCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=A.CreateBookmark();var C=FCKDomTools.GetCommonParentNode(A.StartNode||A.StartContainer,A.EndNode||A.EndContainer,['ul','ol']);if (C) this._IndentList(A,C);else this._IndentBlock(A);A.MoveToBookmark(B);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;if (FCKIndentCommand._UseIndentClasses==undefined) FCKIndentCommand._InitIndentModeParameters();var A=FCKSelection.GetBoundaryParentElement(true);var B=FCKSelection.GetBoundaryParentElement(false);var C=FCKDomTools.GetCommonParentNode(A,B,['ul','ol']);if (C){if (this.Name.IEquals('outdent')) return 0;var D=FCKTools.GetElementAscensor(A,'li');if (!D||!D.previousSibling) return -1;return 0;};if (!FCKIndentCommand._UseIndentClasses&amp;&amp;this.Name.IEquals('indent')) return 0;var E=new FCKElementPath(A);var F=E.Block||E.BlockLimit;if (!F) return -1;if (FCKIndentCommand._UseIndentClasses){var G=F.className.match(FCKIndentCommand._ClassNameRegex);var H=0;if (G!=null){G=G[1];H=FCKIndentCommand._IndentClassMap[G];};if ((this.Name=='outdent'&amp;&amp;H==0)||(this.Name=='indent'&amp;&amp;H==FCKConfig.IndentClasses.length)) return -1;return 0;}else{var I=parseInt(F.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;if (I&lt;=0) return -1;return 0;}},_IndentBlock:function(A){var B=new FCKDomRangeIterator(A);B.EnforceRealBlocks=true;A.Expand('block_contents');var C=FCKDomTools.GetCommonParents(A.StartContainer,A.EndContainer);var D=C[C.length-1];var E;while ((E=B.GetNextParagraph())){if (!(E==D||E.parentNode==D)) continue;if (FCKIndentCommand._UseIndentClasses){var F=E.className.match(FCKIndentCommand._ClassNameRegex);var G=0;if (F!=null){F=F[1];G=FCKIndentCommand._IndentClassMap[F];};if (this.Name.IEquals('outdent')) G--;else if (this.Name.IEquals('indent')) G++;G=Math.min(G,FCKConfig.IndentClasses.length);G=Math.max(G,0);var H=E.className.replace(FCKIndentCommand._ClassNameRegex,'');if (G&lt;1) E.className=H;else E.className=(H.length&gt;0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&amp;&amp;C.parentNode!=B) C=C.parentNode;while (D&amp;&amp;D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length&lt;1) return;var H=FCKDomTools.GetParents(B);for (var i=0;i&lt;H.length;i++){if (H[i].nodeName.IEquals(['ul','ol'])){B=H[i];break;}};var I=this.Name.IEquals('indent')?1:-1;var J=F[0];var K=F[F.length-1];var L={};var M=FCKDomTools.ListToArray(B,L);var N=M[K._FCK_ListArray_Index].indent;for (var i=J._FCK_ListArray_Index;i&lt;=K._FCK_ListArray_Index;i++) M[i].indent+=I;for (var i=K._FCK_ListArray_Index+1;i&lt;M.length&amp;&amp;M[i].indent&gt;N;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}};
-var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&amp;&amp;D.parentNode.nodeName.IEquals('blockquote')&amp;&amp;!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&amp;&amp;E.parentNode.nodeName.IEquals('blockquote')&amp;&amp;!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length&lt;1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i&lt;I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();};var L=null;while (I.length&gt;0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;}while (K.length&gt;0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=FCKTools.GetElementDocument(H).createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length&gt;0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&amp;&amp;Q) O.push(Q);};var R=[];while (O.length&gt;0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(S).createDocumentFragment();var Y=W&amp;&amp;S.previousSibling&amp;&amp;!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&amp;&amp;Y) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));var Z=S.nextSibling&amp;&amp;!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i&lt;A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}};
+var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&amp;&amp;D.parentNode.nodeName.IEquals('blockquote')&amp;&amp;!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&amp;&amp;E.parentNode.nodeName.IEquals('blockquote')&amp;&amp;!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length&lt;1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i&lt;I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();}while (J.nodeName.IEquals('table','tbody','tr','ol','ul')) J=J.parentNode;var L=null;while (I.length&gt;0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;}while (K.length&gt;0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=FCKTools.GetElementDocument(H).createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length&gt;0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];var P={};while ((H=G.GetNextParagraph())){var Q=null;var R=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){Q=H.parentNode;R=H;break;};H=H.parentNode;};if (Q&amp;&amp;R&amp;&amp;!R._fckblockquotemoveout){O.push(R);FCKDomTools.SetElementMarker(P,R,'_fckblockquotemoveout',true);}};FCKDomTools.ClearAllMarkers(P);var S=[];var T=[],P={};var U=function(N){for (var i=0;i&lt;N.childNodes.length;i++){if (FCKListsLib.BlockElements[N.childNodes[i].nodeName.toLowerCase()]) return false;};return true;};while (O.length&gt;0){var W=O.shift();var N=W.parentNode;if (W==W.parentNode.firstChild) N.parentNode.insertBefore(N.removeChild(W),N);else if (W==W.parentNode.lastChild) N.parentNode.insertBefore(N.removeChild(W),N.nextSibling);else FCKDomTools.BreakParent(W,W.parentNode,B);if (!N._fckbqprocessed){T.push(N);FCKDomTools.SetElementMarker(P,N,'_fckbqprocessed',true);};S.push(W);};for (var i=T.length-1;i&gt;=0;i--){var N=T[i];if (U(N)) FCKDomTools.RemoveNode(N);};FCKDomTools.ClearAllMarkers(P);if (FCKConfig.EnterMode.IEquals('br')){while (S.length){var W=S.shift();var a=true;if (W.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(W).createDocumentFragment();var c=a&amp;&amp;W.previousSibling&amp;&amp;!FCKListsLib.BlockBoundaries[W.previousSibling.nodeName.toLowerCase()];if (a&amp;&amp;c) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));var d=W.nextSibling&amp;&amp;!FCKListsLib.BlockBoundaries[W.nextSibling.nodeName.toLowerCase()];while (W.firstChild) M.appendChild(W.removeChild(W.firstChild));if (d) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));W.parentNode.replaceChild(M,W);a=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i&lt;A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}};
 var FCKCoreStyleCommand=function(A){this.Name='CoreStyle';this.StyleName='_FCK_'+A;this.IsActive=false;FCKStyles.AttachStyleStateChange(this.StyleName,this._OnStyleStateChange,this);};FCKCoreStyleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();if (this.IsActive) FCKStyles.RemoveStyle(this.StyleName);else FCKStyles.ApplyStyle(this.StyleName);FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0) return -1;return this.IsActive?1:0;},_OnStyleStateChange:function(A,B){this.IsActive=B;}};
 var FCKRemoveFormatCommand=function(){this.Name='RemoveFormat';};FCKRemoveFormatCommand.prototype={Execute:function(){FCKStyles.RemoveAll();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return FCK.EditorWindow?0:-1;}};
 var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'Bold':case 'Italic':case 'Underline':case 'StrikeThrough':case 'Subscript':case 'Superscript':B=new FCKCoreStyleCommand(A);break;case 'RemoveFormat':B=new FCKRemoveFormatCommand();break;case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,380,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,300);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'VisitLink':B=new FCKVisitLinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,160);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,160);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,160);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',420,330,function(){ return 0;});break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Find');break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Replace');break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,390);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,390);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,290);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',480,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',480,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,240);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'Rule':B=new FCKRuleCommand();break;case 'Nbsp':B=new FCKNbsp();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'JustifyLeft':B=new FCKJustifyCommand('left');break;case 'JustifyCenter':B=new FCKJustifyCommand('center');break;case 'JustifyRight':B=new FCKJustifyCommand('right');break;case 'JustifyFull':B=new FCKJustifyCommand('justify');break;case 'Indent':B=new FCKIndentCommand('indent',FCKConfig.IndentLength);break;case 'Outdent':B=new FCKIndentCommand('outdent',FCKConfig.IndentLength*-1);break;case 'Blockquote':B=new FCKBlockQuoteCommand();break;case 'CreateDiv':B=new FCKDialogCommand('CreateDiv',FCKLang.CreateDiv,'dialog/fck_div.html',380,210,null,null,true);break;case 'EditDiv':B=new FCKDialogCommand('EditDiv',FCKLang.EditDiv,'dialog/fck_div.html',380,210,null,null,false);break;case 'DeleteDiv':B=new FCKDeleteDivCommand();break;case 'TableInsertRowAfter':B=new FCKTableCommand('TableInsertRowAfter');break;case 'TableInsertRowBefore':B=new FCKTableCommand('TableInsertRowBefore');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumnAfter':B=new FCKTableCommand('TableInsertColumnAfter');break;case 'TableInsertColumnBefore':B=new FCKTableCommand('TableInsertColumnBefore');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCellAfter':B=new FCKTableCommand('TableInsertCellAfter');break;case 'TableInsertCellBefore':B=new FCKTableCommand('TableInsertCellBefore');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableMergeRight':B=new FCKTableCommand('TableMergeRight');break;case 'TableMergeDown':B=new FCKTableCommand('TableMergeDown');break;case 'TableHorizontalSplitCell':B=new FCKTableCommand('TableHorizontalSplitCell');break;case 'TableVerticalSplitCell':B=new FCKTableCommand('TableVerticalSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,210);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,200);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,200);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,210);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,210);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,190);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,210);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,340);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,390);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'Copy':B=new FCKCutCopyCommand(false);break;case 'Cut':B=new FCKCutCopyCommand(true);break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'InsertOrderedList':B=new FCKListCommand('insertorderedlist','ol');break;case 'InsertUnorderedList':B=new FCKListCommand('insertunorderedlist','ul');break;case 'ShowBlocks':B=new FCKShowBlockCommand('ShowBlocks',FCKConfig.StartupShowBlocks?1:0);break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};FCKCommands.GetBooleanState=function(A){return A?-1:0;};
-var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');FCKTools.ResetStyles(D);D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.style.width=D.style.height='0px';FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='&lt;base href=&quot;'+window.document.location+'&quot;&gt;';B.open();B.write('&lt;html&gt;&lt;head&gt;'+F+'&lt;\/head&gt;&lt;body style=&quot;margin:0px;padding:0px;&quot;&gt;&lt;\/body&gt;&lt;\/html&gt;');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKBrowserInfo.IsGecko&amp;&amp;FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&amp;&amp;FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&amp;&amp;!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)&gt;L) x-=x+D-L;if ((y+E.offsetHeight)&gt;K) y-=y+E.offsetHeight-K;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.style.width=N+'px';M._IFrame.style.height=O+'px';},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter&gt;0) return;if (typeof(FCKFocusManager)!='undefined'&amp;&amp;!B) FCKFocusManager.Unlock();this._IFrame.style.width=this._IFrame.style.height='0px';this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&amp;&amp;!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;};
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');FCKTools.ResetStyles(D);D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.style.width=D.style.height='0px';FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='&lt;base href=&quot;'+window.document.location+'&quot;&gt;';B.open();B.write('&lt;html&gt;&lt;head&gt;'+F+'&lt;\/head&gt;&lt;body style=&quot;margin:0px;padding:0px;&quot;&gt;&lt;\/body&gt;&lt;\/html&gt;');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.ResizeForSubpanel=function(A,B,C){if (!FCKBrowserInfo.IsIE7) return false;if (!this._Popup.isOpen){this.Subpanel=null;return false;};if (B==0&amp;&amp;C==0){if (this.Subpanel!==A) return false;this.Subpanel=null;this.IncreasedX=0;}else{this.Subpanel=A;if ((this.IncreasedX&gt;=B)&amp;&amp;(this.IncreasedY&gt;=C)) return false;this.IncreasedX=Math.max(this.IncreasedX,B);this.IncreasedY=Math.max(this.IncreasedY,C);};var x=this.ShowRect.x;var w=this.IncreasedX;if (this.IsRTL) x=x-w;var D=this.ShowRect.w+w;var E=Math.max(this.ShowRect.h,this.IncreasedY);if (this.ParentPanel) this.ParentPanel.ResizeForSubpanel(this,D,E);this._Popup.show(x,this.ShowRect.y,D,E,this.RelativeElement);return this.IsRTL;};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (FCKBrowserInfo.IsIE7){if (this.ParentPanel&amp;&amp;this.ParentPanel.ResizeForSubpanel(this,D,E.offsetHeight)){FCKTools.RunFunction(this.Show,this,[x,y,A]);return;}};if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};if (FCKBrowserInfo.IsIE7){this.ShowRect={x:x,y:y,w:D,h:E.offsetHeight};this.IncreasedX=0;this.IncreasedY=0;this.RelativeElement=A;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKBrowserInfo.IsGecko&amp;&amp;FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&amp;&amp;FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&amp;&amp;!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)&gt;L) x-=x+D-L;if ((y+E.offsetHeight)&gt;K) y-=y+E.offsetHeight-K;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.style.width=N+'px';M._IFrame.style.height=O+'px';},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter&gt;0) return;if (typeof(FCKFocusManager)!='undefined'&amp;&amp;!B) FCKFocusManager.Unlock();this._IFrame.style.width=this._IFrame.style.height='0px';this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&amp;&amp;!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;if (this._Popup&amp;&amp;this.ParentPanel&amp;&amp;!A) this.ParentPanel.ResizeForSubpanel(this,0,0);FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;this.RelativeElement=null;};
 var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url(&quot;'+this.Path+'&quot;)';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;};
 var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&amp;&amp;!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&amp;&amp;this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&amp;&amp;B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;};
 var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];else this.IconPath=G;};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=this._UIButton;if (!A) return;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B==A.State) return;A.ChangeState(B);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);};
@@ -97,12 +97,12 @@ var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterIt
 var FCKToolbar=function(){this.Items=[];};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var e=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;var C=e.insertRow(-1);var D;if (!this.HideStart){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i&lt;this.Items.length;i++){this.Items[i].Create(C.insertCell(-1));};if (!this.HideEnd){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';};
 var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=A.ownerDocument.createElement('div');B.style.clear=B.style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';A.appendChild(B);};
 function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;case 'None':B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_GetOutElement(window,E);else D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for &quot;ToolbarLocation&quot;');return arguments.callee('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.src='javascript:void(0)';F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;var H='';if (FCKBrowserInfo.IsSafari) H='&lt;base href=&quot;'+window.document.location+'&quot;&gt;';G.open();G.write('&lt;html&gt;&lt;head&gt;'+H+'&lt;script type=&quot;text/javascript&quot;&gt; var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = window.onload = function(){var timer = null;var lastHeight = -1;var lastChange = 0;var poller = function(){var currentHeight = document.body.scrollHeight || 0;var currentTime = (new Date()).getTime();if (currentHeight != lastHeight){lastChange = currentTime;adjust();lastHeight = document.body.scrollHeight;}if (lastChange &lt; currentTime - 1000) clearInterval(timer);};timer = setInterval(poller, 100);}&lt;/script&gt;&lt;/head&gt;&lt;body style=&quot;overflow: hidden&quot;&gt;'+document.getElementById('xToolbarSpace').innerHTML+'&lt;/body&gt;&lt;/html&gt;');G.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_InitOutFrame(G);FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinEditorCSS);B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;if (!B.ToolbarItems) B.ToolbarItems=FCKToolbarItems;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',FCKToolbarSet_Collapse_OnClick);if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x&lt;B.length;x++){var C=B[x];if (!C) continue;var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j&lt;C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i&lt;A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i&lt;A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i&lt;C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j&lt;C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i&lt;B.length;i++) B[i].RefreshState();};
-var FCKDialog=(function(){var A;var B;var C;var D=window.parent;while (D.parent&amp;&amp;D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length&gt;0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save();var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&amp;&amp;(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');FCKTools.ResetStyles(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&amp;&amp;!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');FCKTools.ResetStyles(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},GetCover:function(){return C;}};})();
+var FCKDialog=(function(){var A;var B;var C;var D=window.parent;while (D.parent&amp;&amp;D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length&gt;0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save(true);var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&amp;&amp;(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');FCKTools.ResetStyles(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&amp;&amp;!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');FCKTools.ResetStyles(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},GetCover:function(){return C;}};})();
 var FCKMenuItem=function(A,B,C,D,E,F){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);this.CustomData=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D,E){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D,E);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;};
 var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D,E){var F=new FCKMenuItem(this,A,B,C,D,E);F.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);F.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(F);return F;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length&gt;0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i&lt;this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){if (B.Hide) B.Hide();FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&amp;&amp;B!=this){if (!FCKBrowserInfo.IsIE&amp;&amp;B.HasSubMenu&amp;&amp;!this.HasSubMenu){A._Window.focus();A.Panel.HasFocus=true;};B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';};
 var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&amp;&amp;this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinEditorCSS);FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();};
 var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinEditorCSS);C.IsContextMenu=true;if (FCKBrowserInfo.IsGecko) C.Document.addEventListener('draggesture',function(e) {e.preventDefault();return false;},true);var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;if (FCKBrowserInfo.IsOpera&amp;&amp;!('oncontextmenu' in document.createElement('foo'))){this._Document.addEventListener('mousedown',FCKContextMenu_Document_OnMouseDown,false);this._Document.addEventListener('mouseup',FCKContextMenu_Document_OnMouseUp,false);};this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D,E){var F=this._MenuBlock.AddItem(A,B,C,D,E);this._Redraw=true;return F;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){if (FCKConfig.BrowserContextMenu) return true;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&amp;&amp;(e.ctrlKey||e.metaKey)) return true;FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);return false;};A=A.parentNode;};return true;};var FCKContextMenu_OverrideButton;function FCKContextMenu_Document_OnMouseDown(e){if(!e||e.button!=2) return false;if (FCKConfig.BrowserContextMenu) return true;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&amp;&amp;(e.ctrlKey||e.metaKey)) return true;var B=FCKContextMenu_OverrideButton;if(!B){var C=FCKTools.GetElementDocument(e.target);B=FCKContextMenu_OverrideButton=C.createElement('input');B.type='button';var D=C.createElement('p');C.body.appendChild(D);D.appendChild(B);};B.style.cssText='position:absolute;top:'+(e.clientY-2)+'px;left:'+(e.clientX-2)+'px;width:5px;height:5px;opacity:0.01';};A=A.parentNode;};return false;};function FCKContextMenu_Document_OnMouseUp(e){if (FCKConfig.BrowserContextMenu) return true;var A=FCKContextMenu_OverrideButton;if (A){var B=A.parentNode;B.parentNode.removeChild(B);FCKContextMenu_OverrideButton=undefined;if(e&amp;&amp;e.button==2){FCKContextMenu_Document_OnContextMenu(e);return false;}};return true;};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if ((B.CtrlDisable&amp;&amp;(A.ctrlKey||A.metaKey))||FCKConfig.BrowserContextMenu) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);var x=0;var y=0;if (FCKBrowserInfo.IsIE){x=A.screenX;y=A.screenY;}else if (FCKBrowserInfo.IsSafari){x=A.clientX;y=A.clientY;}else{x=A.pageX;y=A.pageY;};B._Panel.Show(x,y,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);};
-FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i&lt;FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&amp;&amp;FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&amp;&amp;F.name.length&gt;0&amp;&amp;F.href.length==0);if (G) return;menu.AddSeparator();menu.AddItem('VisitLink',FCKLang.VisitLink);menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&amp;&amp;F.name.length&gt;0);if (G||(tagName=='IMG'&amp;&amp;tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length&gt;0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDiv,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i&lt;C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute(A.CustomData);};
+FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i&lt;FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&amp;&amp;FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&amp;&amp;F.name.length&gt;0&amp;&amp;F.href.length==0);if (G) return;menu.AddSeparator();menu.AddItem('VisitLink',FCKLang.VisitLink);menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&amp;&amp;F.name.length&gt;0);if (G||(tagName=='IMG'&amp;&amp;tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length&gt;0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDiv,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i&lt;C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){if (!FCKBrowserInfo.IsIE) FCK.Focus();FCKCommands.GetCommand(A.Name).Execute(A.CustomData);};
 var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D=&quot;&quot;;if (B){if (B.index&gt;0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D=&quot;&quot;;if (B){if (B.index&gt;0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};
 var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length&gt;0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)&gt;=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');};
 var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i&lt;FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;};</diff>
      <filename>public/javascripts/fckeditor/editor/js/fckeditorcode_gecko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -23,28 +23,28 @@
  */
 
 var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;var FCK_STYLE_BLOCK=0;var FCK_STYLE_INLINE=1;var FCK_STYLE_OBJECT=2;
-String.prototype.Contains=function(A){return (this.indexOf(A)&gt;-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&amp;&amp;A[0].pop) A=A[0];for (var i=0;i&lt;A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&amp;&amp;B[0].pop) B=B[0];for (var i=0;i&lt;B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i&lt;A.length;i++){C=C.replace(A[i],B[i]);};return C;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D&gt;C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A&gt;0) s=this.substring(0,A);if (A+B&lt;this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i&lt;this.length;i++){if (this[i]==A) return i;};return-1;};
+String.prototype.Contains=function(A){return (this.indexOf(A)&gt;-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&amp;&amp;A[0].pop) A=A[0];for (var i=0;i&lt;A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&amp;&amp;B[0].pop) B=B[0];for (var i=0;i&lt;B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i&lt;A.length;i++){C=C.replace(A[i],B[i]);};return C;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D&gt;C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A&gt;0) s=this.substring(0,A);if (A+B&lt;this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};Array.prototype.IndexOf=function(A){for (var i=0;i&lt;this.length;i++){if (this[i]==A) return i;};return-1;};
 var	FCKIECleanup=function(A){if (A._FCKCleanupObj) this.Items=A._FCKCleanupObj.Items;else{this.Items=[];A._FCKCleanupObj=this;FCKTools.AddEventListenerEx(A,'unload',FCKIECleanup_Cleanup);}};FCKIECleanup.prototype.AddItem=function(A,B){this.Items.push([A,B]);};function FCKIECleanup_Cleanup(){if (!this._FCKCleanupObj||(FCKConfig.MsWebBrowserControlCompat&amp;&amp;!window.FCKUnloadFlag)) return;var A=this._FCKCleanupObj.Items;while (A.length&gt;0){var B=A.pop();if (B) B[1].call(B[0]);};this._FCKCleanupObj=null;if (CollectGarbage) CollectGarbage();};
 var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:/*@cc_on!@*/false,IsIE7:/*@cc_on!@*/false&amp;&amp;(parseInt(s.match(/msie (\d+)/)[1],10)&gt;=7),IsIE6:/*@cc_on!@*/false&amp;&amp;(parseInt(s.match(/msie (\d+)/)[1],10)&gt;=6),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),IsMac:s.Contains('macintosh')};(function(A){A.IsGecko=(navigator.product=='Gecko')&amp;&amp;!A.IsSafari&amp;&amp;!A.IsOpera;A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/rv:(\d+\.\d+)/);var C=B&amp;&amp;parseFloat(B[1]);if (C){A.IsGecko10=(C&lt;1.8);A.IsGecko19=(C&gt;1.8);}}})(FCKBrowserInfo);
 var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&amp;');for (var i=0;i&lt;A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})();
 var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else{if (C.IndexOf(B)==-1) C.push(B);}};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i&lt;D.length;i++){try{C=(D[i](this.Owner,B)&amp;&amp;C);}catch(e){if (e.number!=-2146823277) throw e;}}};return C;};
 var FCKDataProcessor=function(){};FCKDataProcessor.prototype={ConvertToHtml:function(A){if (FCKConfig.FullPage){FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (!FCKRegexLib.HasBodyTag.test(A)) A='&lt;body&gt;'+A+'&lt;/body&gt;';if (!FCKRegexLib.HtmlOpener.test(A)) A='&lt;html dir=&quot;'+FCKConfig.ContentLangDirection+'&quot;&gt;'+A+'&lt;/html&gt;';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&amp;&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt;');return A;}else{var B=FCKConfig.DocType+'&lt;html dir=&quot;'+FCKConfig.ContentLangDirection+'&quot;';if (FCKBrowserInfo.IsIE&amp;&amp;FCKConfig.DocType.length&gt;0&amp;&amp;!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style=&quot;overflow-y: scroll&quot;';B+='&gt;&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt;&lt;body'+FCKConfig.GetBodyAttributes()+'&gt;'+A+'&lt;/body&gt;&lt;/html&gt;';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&amp;&amp;FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}};
-var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length&gt;0?'&lt;base href=&quot;'+FCKConfig.BaseHref+'&quot; _fcktemp=&quot;true&quot;&gt;&lt;/base&gt;':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,&quot;keydown&quot;,this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&amp;&amp;A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&amp;&amp;G!='li'&amp;&amp;!D.getAttribute('_fckfakelement')&amp;&amp;D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length&gt;0) F=true;break;case 8:if (E) F=true;break;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&amp;&amp;FCK.DocTypeDeclaration.length&gt;0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&amp;&amp;FCK.XmlDeclaration.length&gt;0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName.toUpperCase()];if (B){for (var i=0;i&lt;B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i&lt;B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(A);}},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$&amp; _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$&amp; _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$&amp; _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length&gt;0?'|ABBR|XML|EMBED|OBJECT':'ABBR|XML|EMBED|OBJECT';var C;if (B.length&gt;0){C=new RegExp('&lt;('+B+')(?!\w|:)','gi');A=A.replace(C,'&lt;FCK:$1');C=new RegExp('&lt;\/('+B+')&gt;','gi');A=A.replace(C,'&lt;\/FCK:$1&gt;');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('&lt;(('+B+')(?=\\s|&gt;|/)[\\s\\S]*?)/?&gt;','gi');A=A.replace(C,'&lt;FCK:$1 /&gt;');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&amp;&amp;FCK.EditorDocument){FCK.EditorDocument.detachEvent(&quot;onselectionchange&quot;,Doc_OnSelectionChange);};FCKTempBin.Reset();if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1&gt;&lt;/$2&gt;');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length&gt;0&amp;&amp;!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&amp;'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&amp;');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&amp;&amp;FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&amp;&amp;FCK.EditorWindow&amp;&amp;A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length&gt;0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'&lt;html dir=&quot;'+FCKConfig.ContentLangDirection+'&quot;&gt;&lt;head&gt;'+FCK.TempBaseTag+'&lt;title&gt;'+FCKLang.Preview+'&lt;/title&gt;'+_FCK_GetEditorAreaStyleTags()+'&lt;/head&gt;&lt;body'+FCKConfig.GetBodyAttributes()+'&gt;'+FCK.GetXHTML()+'&lt;/body&gt;&lt;/html&gt;';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain=&quot;'+document.domain+'&quot; ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.document.close();}},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&amp;&amp;FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else C.SplitBlock();};C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);if (!D&amp;&amp;FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A&gt;=16&amp;&amp;A&lt;=20) return true;if (A==27||(A&gt;=33&amp;&amp;A&lt;=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&amp;&amp;!(A.ctrlKey||A.metaKey)&amp;&amp;!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount&gt;FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&amp;&amp;FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt=&quot;'+encodeURIComponent(A)+'&quot;';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&amp;&amp;FCKDomTools.PaddingNode){var A=FCKSelection.GetSelection();if (A&amp;&amp;A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&amp;&amp;B.startContainer==FCK.EditorDocument.body&amp;&amp;B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&amp;&amp;C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&amp;&amp;FCK.EditorDocument.body.firstChild==D){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&amp;&amp;FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);if (C.GetState()==-1) return false;return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&amp;&amp;B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i&lt;this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;},ToHtml:function(){for (var i=0;i&lt;this.Elements.length;i++){this.Elements[i]='&lt;div&gt;&amp;nbsp;'+this.Elements[i].outerHTML+'&lt;/div&gt;';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i&lt;this.Elements.length;i++){if (this.Elements[i].isHtml){A.innerHTML=this.Elements[i];this.Elements[i]=A.firstChild.removeChild(A.firstChild.lastChild);}}}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else if (FCKBrowserInfo.IsSafari) C=A;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&amp;&amp;FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent(&quot;OnBlur&quot;);}};function FCKFocusManager_Win_OnFocus_Area(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&amp;&amp;!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent(&quot;OnFocus&quot;);}};(function(){var A=window.frameElement;var B=A.width;var C=A.height;if (/^\d+$/.test(B)) B+='px';if (/^\d+$/.test(C)) C+='px';var D=A.style;D.border=D.padding=D.margin=0;D.backgroundColor='transparent';D.backgroundImage='none';D.width=B;D.height=C;})();
-FCK.Description=&quot;FCKeditor for Internet Explorer 5.5+&quot;;FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.BasePath;var B='';var C;C='&lt;style type=&quot;text/css&quot; _fcktemp=&quot;true&quot;&gt;';if (FCKConfig.ShowBorders) B='url('+A+'css/behaviors/showtableborders.htc)';C+='INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak,.FCK__InputHidden';if (FCKConfig.DisableObjectResizing){C+=',IMG';B+=' url('+A+'css/behaviors/disablehandles.htc)';};C+=' { behavior: url('+A+'css/behaviors/disablehandles.htc) ; }';if (B.length&gt;0) C+='TABLE { behavior: '+B+' ; }';C+='&lt;/style&gt;';FCK._BehaviorsStyle=C;};return FCK._BehaviorsStyle;};function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;}};function Doc_OnPaste(){var A=FCK.EditorDocument.body;A.detachEvent('onpaste',Doc_OnPaste);var B=FCK.Paste(!FCKConfig.ForcePasteAsPlainText&amp;&amp;!FCKConfig.AutoDetectPasteFromWord);A.attachEvent('onpaste',Doc_OnPaste);return B;};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){if (!FCK.IsSelectionChangeLocked&amp;&amp;FCK.EditorDocument) FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};function Doc_OnDrop(){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){var A=FCK.EditorWindow.event;if (FCK._CheckIsPastingEnabled()||FCKConfig.ShowDropDialog) FCK.PasteAsPlainText(A.dataTransfer.getData('Text'));A.returnValue=false;A.cancelBubble=true;}};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);this.EditorDocument.body.attachEvent('ondrop',Doc_OnDrop);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);this.EditorDocument.attachEvent(&quot;onkeydown&quot;,FCK._KeyDownListener);this.EditorDocument.attachEvent(&quot;ondblclick&quot;,Doc_OnDblClick);this.EditorDocument.attachEvent(&quot;onbeforedeactivate&quot;,function(){ FCKSelection.Save(true);});this.EditorDocument.attachEvent(&quot;onselectionchange&quot;,Doc_OnSelectionChange);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',Doc_OnMouseDown);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKSelection.Restore();FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCKSelection.GetSelection();if (B.type.toLowerCase()=='control') B.clear();A='&lt;span id=&quot;__fakeFCKRemove__&quot; style=&quot;display:none;&quot;&gt;fakeFCKRemove&lt;/span&gt;'+A;B.createRange().pasteHTML(A);FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true);FCKDocumentProcessor.Process(FCK.EditorDocument);this.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='&lt;div id=&quot;__fakeFCKRemove__&quot;&gt;&amp;nbsp;&lt;/div&gt;'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(FCKConfig.SkinPath+'fck_strip.gif');A.OnComplete=LoadToolbarSetup;A.Start();};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.LinkedField=null;this.EditorWindow=null;this.EditorDocument=null;};FCK._ExecPaste=function(){if (FCK._PasteIsRunning) return true;if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};var A=FCK._CheckIsPastingEnabled(true);if (A===false) FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security']);else{if (FCKConfig.AutoDetectPasteFromWord&amp;&amp;A.length&gt;0){var B=/&lt;\w[^&gt;]*(( class=&quot;?MsoNormal&quot;?)|(=&quot;mso-))/gi;if (B.test(A)){if (confirm(FCKLang.PasteWordConfirm)){FCK.PasteFromWord();return false;}}};FCK._PasteIsRunning=true;FCK.ExecuteNamedCommand('Paste');delete FCK._PasteIsRunning;};return false;};FCK.PasteAsPlainText=function(A){if (!FCK._CheckIsPastingEnabled()){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');return;};var B=null;if (!A) B=clipboardData.getData(&quot;Text&quot;);else B=A;if (B&amp;&amp;B.length&gt;0){B=FCKTools.HTMLEncode(B);B=FCKTools.ProcessLineBreaks(window,FCKConfig,B);var C=B.search('&lt;/p&gt;');var D=B.search('&lt;p&gt;');if ((C!=-1&amp;&amp;D!=-1&amp;&amp;C&lt;D)||(C!=-1&amp;&amp;D==-1)){var E=B.substr(0,C);B=B.substr(C+4);this.InsertHtml(E);};FCKUndo.SaveLocked=true;this.InsertHtml(B);FCKUndo.SaveLocked=false;}};FCK._CheckIsPastingEnabled=function(A){FCK._PasteIsEnabled=false;document.body.attachEvent('onpaste',FCK_CheckPasting_Listener);var B=FCK.GetClipboardHTML();document.body.detachEvent('onpaste',FCK_CheckPasting_Listener);if (FCK._PasteIsEnabled){if (!A) B=true;}else B=false;delete FCK._PasteIsEnabled;return B;};function FCK_CheckPasting_Listener(){FCK._PasteIsEnabled=true;};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){A=document.createElement('DIV');A.id='___FCKHiddenDiv';var B=A.style;B.position='absolute';B.visibility=B.overflow='hidden';B.width=B.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.CreateLink=function(A,B){var C=[];FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length&gt;0){if (FCKSelection.GetType()=='Control'){var D=this.EditorDocument.createElement('A');D.href=A;var E=FCKSelection.GetSelectedElement();E.parentNode.insertBefore(D,E);E.parentNode.removeChild(E);D.appendChild(E);return [D];};var F='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',F,false,!!B);var G=this.EditorDocument.links;for (i=0;i&lt;G.length;i++){var D=G[i];if (D.getAttribute('href',2)==F){var I=D.innerHTML;D.href=A;D.innerHTML=I;var J=D.lastChild;if (J&amp;&amp;J.nodeName=='BR'){FCKDomTools.InsertAfterNode(D,D.removeChild(J));};C.push(D);}}};return C;};function _FCK_RemoveDisabledAtt(){this.removeAttribute('disabled');};function Doc_OnMouseDown(A){var e=A.srcElement;if (e.nodeName.IEquals('input')&amp;&amp;e.type.IEquals(['radio','checkbox'])&amp;&amp;!e.disabled){e.disabled=true;FCKTools.SetTimeout(_FCK_RemoveDisabledAtt,1,e);}};
-var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi,'/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);}else FCKConfig.BasePath=document.location.protocol+'//'+document.location.host+document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&amp;');for (var i=0;i&lt;B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()==&quot;true&quot;) this.PageConfig[D]=true;else if (E.toLowerCase()==&quot;false&quot;) this.PageConfig[D]=false;else if (E.length&gt;0&amp;&amp;!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {  }};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/&lt;!--[\s\S]*?--&gt;/g,/&lt;script[\s\S]*?&lt;\/script&gt;/gi,/&lt;noscript[\s\S]*?&lt;\/noscript&gt;/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '&lt;!--{'+B+C+'}--&gt;';};for (var i=0;i&lt;this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp(&quot;(&lt;|&amp;lt;)!--\\{&quot;+this._CodeTag+&quot;(\\d+)\\}--(&gt;|&amp;gt;)&quot;,&quot;g&quot;);return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&amp;&amp;this.BodyId.length&gt;0) A+=' id=&quot;'+this.BodyId+'&quot;';if (this.BodyClass&amp;&amp;this.BodyClass.length&gt;0) A+=' class=&quot;'+this.BodyClass+'&quot;';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&amp;&amp;this.BodyId.length&gt;0) A.id=FCKConfig.BodyId;if (this.BodyClass&amp;&amp;this.BodyClass.length&gt;0) A.className+=' '+FCKConfig.BodyClass;};
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length&gt;0?'&lt;base href=&quot;'+FCKConfig.BaseHref+'&quot; _fcktemp=&quot;true&quot;&gt;&lt;/base&gt;':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,&quot;keydown&quot;,this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&amp;&amp;A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&amp;&amp;G!='li'&amp;&amp;!D.getAttribute('_fckfakelement')&amp;&amp;D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length&gt;0) F=true;break;case 8:if (E) F=true;break;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&amp;&amp;FCK.DocTypeDeclaration.length&gt;0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&amp;&amp;FCK.XmlDeclaration.length&gt;0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName.toUpperCase()];if (B){for (var i=0;i&lt;B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i&lt;B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(A);}},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$&amp; _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$&amp; _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$&amp; _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length&gt;0?'|ABBR|XML|EMBED|OBJECT':'ABBR|XML|EMBED|OBJECT';var C;if (B.length&gt;0){C=new RegExp('&lt;('+B+')(?!\w|:)','gi');A=A.replace(C,'&lt;FCK:$1');C=new RegExp('&lt;\/('+B+')&gt;','gi');A=A.replace(C,'&lt;\/FCK:$1&gt;');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('&lt;(('+B+')(?=\\s|&gt;|/)[\\s\\S]*?)/?&gt;','gi');A=A.replace(C,'&lt;FCK:$1 /&gt;');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&amp;&amp;FCK.EditorDocument){FCK.EditorDocument.detachEvent(&quot;onselectionchange&quot;,Doc_OnSelectionChange);};FCKTempBin.Reset();FCK.Selection.Release();if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1&gt;&lt;/$2&gt;');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length&gt;0&amp;&amp;!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&amp;'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&amp;');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&amp;&amp;FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&amp;&amp;FCK.EditorWindow&amp;&amp;A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length&gt;0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'&lt;html dir=&quot;'+FCKConfig.ContentLangDirection+'&quot;&gt;&lt;head&gt;'+FCK.TempBaseTag+'&lt;title&gt;'+FCKLang.Preview+'&lt;/title&gt;'+_FCK_GetEditorAreaStyleTags()+'&lt;/head&gt;&lt;body'+FCKConfig.GetBodyAttributes()+'&gt;'+FCK.GetXHTML()+'&lt;/body&gt;&lt;/html&gt;';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain=&quot;'+document.domain+'&quot; ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.document.close();}},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&amp;&amp;FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else C.SplitBlock();};C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);if (!D&amp;&amp;FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A&gt;=16&amp;&amp;A&lt;=20) return true;if (A==27||(A&gt;=33&amp;&amp;A&lt;=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&amp;&amp;!(A.ctrlKey||A.metaKey)&amp;&amp;!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount&gt;FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&amp;&amp;FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt=&quot;'+encodeURIComponent(A)+'&quot;';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&amp;&amp;FCKDomTools.PaddingNode){var A=FCKSelection.GetSelection();if (A&amp;&amp;A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&amp;&amp;B.startContainer==FCK.EditorDocument.body&amp;&amp;B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&amp;&amp;C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&amp;&amp;FCK.EditorDocument.body.firstChild==D){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&amp;&amp;FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);if (C.GetState()==-1) return false;return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&amp;&amp;B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i&lt;this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;},ToHtml:function(){for (var i=0;i&lt;this.Elements.length;i++){this.Elements[i]='&lt;div&gt;&amp;nbsp;'+this.Elements[i].outerHTML+'&lt;/div&gt;';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i&lt;this.Elements.length;i++){if (this.Elements[i].isHtml){A.innerHTML=this.Elements[i];this.Elements[i]=A.firstChild.removeChild(A.firstChild.lastChild);}}}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else if (FCKBrowserInfo.IsSafari) C=A;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&amp;&amp;FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent(&quot;OnBlur&quot;);}};function FCKFocusManager_Win_OnFocus_Area(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&amp;&amp;!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent(&quot;OnFocus&quot;);}};(function(){var A=window.frameElement;var B=A.width;var C=A.height;if (/^\d+$/.test(B)) B+='px';if (/^\d+$/.test(C)) C+='px';var D=A.style;D.border=D.padding=D.margin=0;D.backgroundColor='transparent';D.backgroundImage='none';D.width=B;D.height=C;})();
+FCK.Description=&quot;FCKeditor for Internet Explorer 5.5+&quot;;FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.BasePath;var B='';var C;C='&lt;style type=&quot;text/css&quot; _fcktemp=&quot;true&quot;&gt;';if (FCKConfig.ShowBorders) B='url('+A+'css/behaviors/showtableborders.htc)';C+='INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak,.FCK__InputHidden';if (FCKConfig.DisableObjectResizing){C+=',IMG';B+=' url('+A+'css/behaviors/disablehandles.htc)';};C+=' { behavior: url('+A+'css/behaviors/disablehandles.htc) ; }';if (B.length&gt;0) C+='TABLE { behavior: '+B+' ; }';C+='&lt;/style&gt;';FCK._BehaviorsStyle=C;};return FCK._BehaviorsStyle;};function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;}};function Doc_OnPaste(){var A=FCK.EditorDocument.body;A.detachEvent('onpaste',Doc_OnPaste);var B=FCK.Paste(!FCKConfig.ForcePasteAsPlainText&amp;&amp;!FCKConfig.AutoDetectPasteFromWord);A.attachEvent('onpaste',Doc_OnPaste);return B;};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){if (!FCK.IsSelectionChangeLocked&amp;&amp;FCK.EditorDocument) FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};function Doc_OnDrop(){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){var A=FCK.EditorWindow.event;if (FCK._CheckIsPastingEnabled()||FCKConfig.ShowDropDialog) FCK.PasteAsPlainText(A.dataTransfer.getData('Text'));A.returnValue=false;A.cancelBubble=true;}};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);this.EditorDocument.body.attachEvent('ondrop',Doc_OnDrop);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);this.EditorDocument.attachEvent(&quot;onkeydown&quot;,FCK._KeyDownListener);this.EditorDocument.attachEvent(&quot;ondblclick&quot;,Doc_OnDblClick);this.EditorDocument.attachEvent(&quot;onbeforedeactivate&quot;,function(){ FCKSelection.Save();});this.EditorDocument.attachEvent(&quot;onselectionchange&quot;,Doc_OnSelectionChange);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',Doc_OnMouseDown);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKSelection.Restore();FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCKSelection.GetSelection();if (B.type.toLowerCase()=='control') B.clear();A='&lt;span id=&quot;__fakeFCKRemove__&quot; style=&quot;display:none;&quot;&gt;fakeFCKRemove&lt;/span&gt;'+A;B.createRange().pasteHTML(A);FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true);FCKDocumentProcessor.Process(FCK.EditorDocument);this.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='&lt;div id=&quot;__fakeFCKRemove__&quot;&gt;&amp;nbsp;&lt;/div&gt;'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(FCKConfig.SkinPath+'fck_strip.gif');A.OnComplete=LoadToolbarSetup;A.Start();};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.LinkedField=null;this.EditorWindow=null;this.EditorDocument=null;};FCK._ExecPaste=function(){if (FCK._PasteIsRunning) return true;if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};var A=FCK._CheckIsPastingEnabled(true);if (A===false) FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security']);else{if (FCKConfig.AutoDetectPasteFromWord&amp;&amp;A.length&gt;0){var B=/&lt;\w[^&gt;]*(( class=&quot;?MsoNormal&quot;?)|(=&quot;mso-))/gi;if (B.test(A)){if (confirm(FCKLang.PasteWordConfirm)){FCK.PasteFromWord();return false;}}};FCK._PasteIsRunning=true;FCK.ExecuteNamedCommand('Paste');delete FCK._PasteIsRunning;};return false;};FCK.PasteAsPlainText=function(A){if (!FCK._CheckIsPastingEnabled()){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');return;};var B=null;if (!A) B=clipboardData.getData(&quot;Text&quot;);else B=A;if (B&amp;&amp;B.length&gt;0){B=FCKTools.HTMLEncode(B);B=FCKTools.ProcessLineBreaks(window,FCKConfig,B);var C=B.search('&lt;/p&gt;');var D=B.search('&lt;p&gt;');if ((C!=-1&amp;&amp;D!=-1&amp;&amp;C&lt;D)||(C!=-1&amp;&amp;D==-1)){var E=B.substr(0,C);B=B.substr(C+4);this.InsertHtml(E);};FCKUndo.SaveLocked=true;this.InsertHtml(B);FCKUndo.SaveLocked=false;}};FCK._CheckIsPastingEnabled=function(A){FCK._PasteIsEnabled=false;document.body.attachEvent('onpaste',FCK_CheckPasting_Listener);var B=FCK.GetClipboardHTML();document.body.detachEvent('onpaste',FCK_CheckPasting_Listener);if (FCK._PasteIsEnabled){if (!A) B=true;}else B=false;delete FCK._PasteIsEnabled;return B;};function FCK_CheckPasting_Listener(){FCK._PasteIsEnabled=true;};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){A=document.createElement('DIV');A.id='___FCKHiddenDiv';var B=A.style;B.position='absolute';B.visibility=B.overflow='hidden';B.width=B.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.CreateLink=function(A,B){var C=[];FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length&gt;0){if (FCKSelection.GetType()=='Control'){var D=this.EditorDocument.createElement('A');D.href=A;var E=FCKSelection.GetSelectedElement();E.parentNode.insertBefore(D,E);E.parentNode.removeChild(E);D.appendChild(E);return [D];};var F='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',F,false,!!B);var G=this.EditorDocument.links;for (i=0;i&lt;G.length;i++){var D=G[i];if (D.getAttribute('href',2)==F){var I=D.innerHTML;D.href=A;D.innerHTML=I;var J=D.lastChild;if (J&amp;&amp;J.nodeName=='BR'){FCKDomTools.InsertAfterNode(D,D.removeChild(J));};C.push(D);}}};return C;};function _FCK_RemoveDisabledAtt(){this.removeAttribute('disabled');};function Doc_OnMouseDown(A){var e=A.srcElement;if (e.nodeName.IEquals('input')&amp;&amp;e.type.IEquals(['radio','checkbox'])&amp;&amp;!e.disabled){e.disabled=true;FCKTools.SetTimeout(_FCK_RemoveDisabledAtt,1,e);}};
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi,'/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);}else FCKConfig.BasePath=document.location.protocol+'//'+document.location.host+document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&amp;');for (var i=0;i&lt;B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()==&quot;true&quot;) this.PageConfig[D]=true;else if (E.toLowerCase()==&quot;false&quot;) this.PageConfig[D]=false;else if (E.length&gt;0&amp;&amp;!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {  }};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.push([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/&lt;!--[\s\S]*?--&gt;/g,/&lt;script[\s\S]*?&lt;\/script&gt;/gi,/&lt;noscript[\s\S]*?&lt;\/noscript&gt;/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.push(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '&lt;!--{'+B+C+'}--&gt;';};for (var i=0;i&lt;this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp(&quot;(&lt;|&amp;lt;)!--\\{&quot;+this._CodeTag+&quot;(\\d+)\\}--(&gt;|&amp;gt;)&quot;,&quot;g&quot;);return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&amp;&amp;this.BodyId.length&gt;0) A+=' id=&quot;'+this.BodyId+'&quot;';if (this.BodyClass&amp;&amp;this.BodyClass.length&gt;0) A+=' class=&quot;'+this.BodyClass+'&quot;';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&amp;&amp;this.BodyId.length&gt;0) A.id=FCKConfig.BodyId;if (this.BodyClass&amp;&amp;this.BodyClass.length&gt;0) A.className+=' '+FCKConfig.BodyClass;};
 var FCKDebug={Output:function(){},OutputObject:function(){}};
 var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length&lt;D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A){var B;while ((B=A.lastChild)){if (B.nodeType==3){var C=B.nodeValue.RTrim();var D=B.nodeValue.length;if (C.length==0){B.parentNode.removeChild(B);continue;}else if (C.length&lt;D){B.splitText(C.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;};if (!FCKBrowserInfo.IsIE&amp;&amp;!FCKBrowserInfo.IsOpera){B=A.lastChild;if (B&amp;&amp;B.nodeType==1&amp;&amp;B.nodeName.toLowerCase()=='br'){B.parentNode.removeChild(B);}}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&amp;&amp;C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&amp;&amp;(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&amp;&amp;A.nodeType==1&amp;&amp;A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&amp;&amp;A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&amp;&amp;A.nodeType==3&amp;&amp;A.nodeValue.RTrim().length&gt;0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&amp;&amp;A.nodeName.IEquals(C)) break;if (D&amp;&amp;A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&amp;&amp;A.nodeType==3&amp;&amp;A.nodeValue.RTrim().length&gt;0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&amp;&amp;A.firstChild) E=A.firstChild;else{if (D&amp;&amp;A==D) return null;E=A.nextSibling;if (!E&amp;&amp;(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&amp;&amp;E&amp;&amp;E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&amp;&amp;A.lastChild) E=A.lastChild;else{if (D&amp;&amp;A==D) return null;E=A.previousSibling;if (!E&amp;&amp;(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&amp;&amp;E&amp;&amp;E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i&lt;C.length;i++){if (C[i]==D[i]) E.push(C[i]);};return E;},GetCommonParentNode:function(A,B,C){var D={};if (!C.pop) C=[C];while (C.length&gt;0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&amp;&amp;(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&amp;&amp;FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&amp;&amp;A.body.firstChild.nodeType==1&amp;&amp;A.body.firstChild.tagName.toLowerCase()=='br'&amp;&amp;(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length&gt;1)||(D.firstChild&amp;&amp;D.firstChild.nodeValue!='\xa0'&amp;&amp;String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length&gt;1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&amp;&amp;C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i&lt;B.length;i++){if (FCKBrowserInfo.IsIE&amp;&amp;B[i].nodeName=='class'){if (A.className.length&gt;0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&amp;&amp;B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},RemoveAttributes:function (A,B){for (var i=0;i&lt;B.length;i++) this.RemoveAttribute(A,B[i]);},GetAttributeValue:function(A,B){var C=B;if (typeof B=='string') B=A.attributes[B];else C=B.nodeName;if (B&amp;&amp;B.specified){if (C=='style') return A.style.cssText;else if (C=='class'||C.indexOf('on')==0) return B.nodeValue;else{return A.getAttribute(C,2);}};return null;},Contains:function(A,B){if (A.contains&amp;&amp;B.nodeType==1) return A.contains(B);while ((B=B.parentNode)){if (B==A) return true;};return false;},BreakParent:function(A,B,C){var D=C||new FCKDomRange(FCKTools.GetElementWindow(A));D.SetStart(A,4);D.SetEnd(B,4);var E=D.ExtractContents();D.InsertNode(A.parentNode.removeChild(A));E.InsertAfterNode(A);D.Release(!!C);},GetNodeAddress:function(A,B){var C=[];while (A&amp;&amp;A!=FCKTools.GetElementDocument(A).documentElement){var D=A.parentNode;var E=-1;for(var i=0;i&lt;D.childNodes.length;i++){var F=D.childNodes[i];if (B===true&amp;&amp;F.nodeType==3&amp;&amp;F.previousSibling&amp;&amp;F.previousSibling.nodeType==3) continue;E++;if (D.childNodes[i]==A) break;};C.unshift(E);A=A.parentNode;};return C;},GetNodeFromAddress:function(A,B,C){var D=A.documentElement;for (var i=0;i&lt;B.length;i++){var E=B[i];if (!C){D=D.childNodes[E];continue;};var F=-1;for (var j=0;j&lt;D.childNodes.length;j++){var G=D.childNodes[j];if (C===true&amp;&amp;G.nodeType==3&amp;&amp;G.previousSibling&amp;&amp;G.previousSibling.nodeType==3) continue;F++;if (F==E){D=G;break;}}};return D;},CloneElement:function(A){A=A.cloneNode(false);A.removeAttribute('id',false);return A;},ClearElementJSProperty:function(A,B){if (FCKBrowserInfo.IsIE) A.removeAttribute(B);else delete A[B];},SetElementMarker:function (A,B,C,D){var E=String(parseInt(Math.random()*0xffffffff,10));B._FCKMarkerId=E;B[C]=D;if (!A[E]) A[E]={ 'element':B,'markers':{} };A[E]['markers'][C]=D;},ClearElementMarkers:function(A,B,C){var D=B._FCKMarkerId;if (!D) return;this.ClearElementJSProperty(B,'_FCKMarkerId');for (var j in A[D]['markers']) this.ClearElementJSProperty(B,j);if (C) delete A[D];},ClearAllMarkers:function(A){for (var i in A) this.ClearElementMarkers(A,A[i]['element'],true);},ListToArray:function(A,B,C,D,E){if (!A.nodeName.IEquals(['ul','ol'])) return [];if (!D) D=0;if (!C) C=[];for (var i=0;i&lt;A.childNodes.length;i++){var F=A.childNodes[i];if (!F.nodeName.IEquals('li')) continue;var G={ 'parent':A,'indent':D,'contents':[] };if (!E){G.grandparent=A.parentNode;if (G.grandparent&amp;&amp;G.grandparent.nodeName.IEquals('li')) G.grandparent=G.grandparent.parentNode;}else G.grandparent=E;if (B) this.SetElementMarker(B,F,'_FCK_ListArray_Index',C.length);C.push(G);for (var j=0;j&lt;F.childNodes.length;j++){var H=F.childNodes[j];if (H.nodeName.IEquals(['ul','ol'])) this.ListToArray(H,B,C,D+1,G.grandparent);else G.contents.push(H);}};return C;},ArrayToList:function(A,B,C){if (C==undefined) C=0;if (!A||A.length&lt;C+1) return null;var D=FCKTools.GetElementDocument(A[C].parent);var E=D.createDocumentFragment();var F=null;var G=C;var H=Math.max(A[C].indent,0);var I=null;while (true){var J=A[G];if (J.indent==H){if (!F||A[G].parent.nodeName!=F.nodeName){F=A[G].parent.cloneNode(false);E.appendChild(F);};I=D.createElement('li');F.appendChild(I);for (var i=0;i&lt;J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));G++;}else if (J.indent==Math.max(H,0)+1){var K=this.ArrayToList(A,null,G);I.appendChild(K.listNode);G=K.nextIndex;}else if (J.indent==-1&amp;&amp;C==0&amp;&amp;J.grandparent){var I;if (J.grandparent.nodeName.IEquals(['ul','ol'])) I=D.createElement('li');else{if (FCKConfig.EnterMode.IEquals(['div','p'])&amp;&amp;!J.grandparent.nodeName.IEquals('td')) I=D.createElement(FCKConfig.EnterMode);else I=D.createDocumentFragment();};for (var i=0;i&lt;J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));if (I.nodeType==11){if (I.lastChild&amp;&amp;I.lastChild.getAttribute&amp;&amp;I.lastChild.getAttribute('type')=='_moz') I.removeChild(I.lastChild);I.appendChild(D.createElement('br'));};if (I.nodeName.IEquals(FCKConfig.EnterMode)&amp;&amp;I.firstChild){this.TrimNode(I);if (FCKListsLib.BlockBoundaries[I.firstChild.nodeName.toLowerCase()]){var M=D.createDocumentFragment();while (I.firstChild) M.appendChild(I.removeChild(I.firstChild));I=M;}};if (FCKBrowserInfo.IsGeckoLike&amp;&amp;I.nodeName.IEquals(['div','p'])) FCKTools.AppendBogusBr(I);E.appendChild(I);F=null;G++;}else return null;if (A.length&lt;=G||Math.max(A[G].indent,0)&lt;H){break;}};if (B){var N=E.firstChild;while (N){if (N.nodeType==1) this.ClearElementMarkers(B,N);N=this.GetNextSourceNode(N);}};return { 'listNode':E,'nextIndex':G };},GetNextSibling:function(A,B){A=A.nextSibling;while (A&amp;&amp;!B&amp;&amp;A.nodeType!=1&amp;&amp;(A.nodeType!=3||A.nodeValue.length==0)) A=A.nextSibling;return A;},GetPreviousSibling:function(A,B){A=A.previousSibling;while (A&amp;&amp;!B&amp;&amp;A.nodeType!=1&amp;&amp;(A.nodeType!=3||A.nodeValue.length==0)) A=A.previousSibling;return A;},CheckIsEmptyElement:function(A,B){var C=A.firstChild;var D;while (C){if (C.nodeType==1){if (D||!FCKListsLib.InlineNonEmptyElements[C.nodeName.toLowerCase()]) return false;if (!B||B(C)===true) D=C;}else if (C.nodeType==3&amp;&amp;C.nodeValue.length&gt;0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B&gt;100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=A;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&amp;&amp;currentWindow!=w) B=currentWindow.frameElement;else B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight||0;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10)||0;};var F=FCKTools.GetDocumentPosition(C,A);E+=F.y;var G=FCKTools.GetScrollPosition(C).Y;if (E&gt;0&amp;&amp;(E&gt;G||E&lt;G-D)) C.scrollTo(0,E);},CheckIsEditable:function(A){var B=A.nodeName.toLowerCase();var C=FCK.DTD[B]||FCK.DTD.span;return (C['#']&amp;&amp;!FCKListsLib.NonEditableElements[B]);},GetSelectedDivContainers:function(){var A=[];var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.GetTouchedStartNode();var D=B.GetTouchedEndNode();var E=C;if (C==D){while (D.nodeType==1&amp;&amp;D.lastChild) D=D.lastChild;D=FCKDomTools.GetNextSourceNode(D);}while (E&amp;&amp;E!=D){if (E.nodeType!=3||!/^[ \t\n]*$/.test(E.nodeValue)){var F=new FCKElementPath(E);var G=F.BlockLimit;if (G&amp;&amp;G.nodeName.IEquals('div')&amp;&amp;A.IndexOf(G)==-1) A.push(G);};E=FCKDomTools.GetNextSourceNode(E);};return A;}};
 var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.FixCssUrls=function(A,B){if (!A||A.length==0) return B;return B.replace(/url\s*\(([\s'&quot;]*)(.*?)([\s&quot;']*)\)/g,function(match,opener,path,closer){if (/^\/|^\w?:/.test(path)) return match;else return 'url('+opener+A+path+closer+')';});};FCKTools._GetUrlFixedCss=function(A,B){var C=A.match(/^([^|]+)\|([\s\S]*)/);if (C) return FCKTools.FixCssUrls(C[1],C[2]);else return A;};FCKTools.AppendStyleSheet=function(A,B){if (!B) return [];if (typeof(B)=='string'){if (/[\\\/\.][^{}]*$/.test(B)){return this.AppendStyleSheet(A,B.split(','));}else return [this.AppendStyleString(A,FCKTools._GetUrlFixedCss(B))];}else{var C=[];for (var i=0;i&lt;B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetStyleHtml=(function(){var A=function(styleDef,markTemp){if (styleDef.length==0) return '';var B=markTemp?' _fcktemp=&quot;true&quot;':'';return '&lt;style type=&quot;text/css&quot;'+B+'&gt;'+styleDef+'&lt;/style&gt;';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp=&quot;true&quot;':'';return '&lt;link href=&quot;'+cssFileUrl+'&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot; '+B+'/&gt;';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.][^{}]*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i&lt;cssFileOrArrayOrDef.length;i++) E+=C(cssFileOrArrayOrDef[i],markTemp);return E;}}})();FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&amp;&amp;!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i&lt;A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&amp;/g,'&amp;amp;');A=A.replace(/&lt;/g,'&amp;lt;');A=A.replace(/&gt;/g,'&amp;gt;');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/&amp;gt;/g,'&gt;');A=A.replace(/&amp;lt;/g,'&lt;');A=A.replace(/&amp;amp;/g,'&amp;');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G=&quot;&lt;p&gt;&quot;;var H=&quot;&lt;/p&gt;&quot;;var I=&quot;&lt;br /&gt;&quot;;if (C){G=&quot;&lt;li&gt;&quot;;H=&quot;&lt;/li&gt;&quot;;F=1;}while (D&amp;&amp;D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i&lt;B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G=&quot;&lt;div&gt;&quot;;var H=&quot;&lt;/div&gt;&quot;;if (C){G=&quot;&lt;li&gt;&quot;;H=&quot;&lt;/li&gt;&quot;;F=1;}while (D&amp;&amp;D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i&lt;B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push(&quot;&amp;nbsp;&quot;);};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G=&quot;&lt;br /&gt;&quot;;var H=&quot;&quot;;if (C){G=&quot;&lt;li&gt;&quot;;H=&quot;&lt;/li&gt;&quot;;F=1;};for (var i=0;i&lt;B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&amp;&amp;H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&amp;&amp;H.nodeType!=1) H=H.parentNode;if (H&amp;&amp;H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join(&quot;&quot;);};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement(&quot;OPTION&quot;);D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=&quot;,&quot;+B.toUpperCase()+&quot;,&quot;;while (e){if (C.indexOf(&quot;,&quot;+e.nodeName.toUpperCase()+&quot;,&quot;)!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i&lt;arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||(FCKBrowserInfo.IsSafari?'CSS1Compat':null)));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i&lt;B+C&amp;&amp;i&lt;A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};FCKTools.AppendBogusBr=function(A){if (!A) return;var B=this.GetLastItem(A.getElementsByTagName('br'));if (!B||(B.getAttribute('type',2)!='_moz'&amp;&amp;B.getAttribute('_moz_dirty')==null)){var C=this.GetElementDocument(A);if (FCKBrowserInfo.IsOpera) A.appendChild(C.createTextNode(''));else A.appendChild(this.CreateBogusBR(C));}};FCKTools.GetLastItem=function(A){if (A.length&gt;0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&amp;&amp;!(D==w&amp;&amp;(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&amp;&amp;E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&amp;&amp;FCKDomTools.GetPositionedAncestor(A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { &quot;x&quot;:x,&quot;y&quot;:y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i&lt;C.length;i++){var D=C[i];if (A.elements.namedItem(D)){var E=A.elements.namedItem(D);B.push([E,E.nextSibling]);A.removeChild(E);}};return B;};FCKTools.RestoreFormStyles=function(A,B){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return;if (B.length&gt;0){for (var i=B.length-1;i&gt;=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&amp;&amp;node&amp;&amp;C(node)) return null;while (node&amp;&amp;node.nodeType!=3){node=this.GetNextNode(node,B);if (C&amp;&amp;node&amp;&amp;C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i&lt;A.length;i++){var B=A[i];for (var p in B) o[p]=B[p];};return o;};FCKTools.IsArray=function(A){return (A instanceof Array);};FCKTools.AppendLengthProperty=function(A,B){var C=0;for (var n in A) C++;return A[B||'length']=C;};FCKTools.NormalizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Bind=function(A,B){return function(){ return B.apply(A,arguments);};};FCKTools.GetVoidUrl=function(){if (FCK_IS_CUSTOM_DOMAIN) return &quot;javascript: void( function(){document.open();document.write('&lt;html&gt;&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;');document.domain = '&quot;+FCK_RUNTIME_DOMAIN+&quot;';document.close();}() ) ;&quot;;if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return &quot;&quot;;else return &quot;javascript: '';&quot;;};return &quot;javascript: void(0);&quot;;};FCKTools.ResetStyles=function(A){A.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};
 FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.AppendStyleString=function(A,B){if (!B) return null;var s=A.createStyleSheet(&quot;&quot;);s.cssText=B;return s;};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=[];for (var i=0;i&lt;A.all.length;i++){var C=A.all[i].id;if (C&amp;&amp;C.length&gt;0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':if (document.location.protocol!='file:') try { return new XMLHttpRequest();} catch (e) {};B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i&lt;2;i++){try { return new ActiveXObject(B[i]);}catch (e){}};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;};return null;};FCKTools.DisableSelection=function(A){A.unselectable='on';var e,i=0;while ((e=A.all[i++])){switch (e.tagName){case 'IFRAME':case 'TEXTAREA':case 'INPUT':case 'SELECT':break;default:e.unselectable='on';}}};FCKTools.GetScrollPosition=function(A){var B=A.document;var C={ X:B.documentElement.scrollLeft,Y:B.documentElement.scrollTop };if (C.X&gt;0||C.Y&gt;0) return C;return { X:B.body.scrollLeft,Y:B.body.scrollTop };};FCKTools.AddEventListener=function(A,B,C){A.attachEvent('on'+B,C);};FCKTools.RemoveEventListener=function(A,B,C){A.detachEvent('on'+B,C);};FCKTools.AddEventListenerEx=function(A,B,C,D){var o={};o.Source=A;o.Params=D||[];o.Listener=function(ev){return C.apply(o.Source,[ev].concat(o.Params));};if (FCK.IECleanup) FCK.IECleanup.AddItem(null,function() { o.Source=null;o.Params=null;});A.attachEvent('on'+B,o.Listener);A=null;D=null;};FCKTools.GetViewPaneSize=function(A){var B;var C=A.document.documentElement;if (C&amp;&amp;C.clientWidth) B=C;else B=A.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length&gt;0){C.Class=A.className;A.className='';};var D=A.style.cssText;if (D.length&gt;0){C.Inline=D;A.style.cssText='';};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';A.style.cssText=B.Inline||'';FCKTools.RestoreFormStyles(A,C);};FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};FCKTools.AppendElement=function(A,B){return A.appendChild(this.GetElementDocument(A).createElement(B));};FCKTools.ToLowerCase=function(A){return A.toLowerCase();};
-var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='window.FCKeditorAPI = {Version : &quot;2.6.3&quot;,VersionBuild : &quot;19836&quot;,Instances : new Object(),GetInstance : function( name ){return this.Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.Instances ){var oEditor = FCKeditorAPI.Instances[ name ] ;if ( oEditor.GetParentForm &amp;&amp; oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue	: {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length &gt; 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if(FCKBrowserInfo.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;FCKeditorAPI.__Instances=FCKeditorAPI.Instances;};FCKeditorAPI.Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&amp;&amp;(typeof(A.submit)=='function'||(!A.submit.tagName&amp;&amp;!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (window.FCKConfig&amp;&amp;FCKConfig.MsWebBrowserControlCompat&amp;&amp;!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&amp;&amp;FCKConfig.MsWebBrowserControlCompat) window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='window.FCKeditorAPI = {Version : &quot;2.6.4&quot;,VersionBuild : &quot;21629&quot;,Instances : window.FCKeditorAPI &amp;&amp; window.FCKeditorAPI.Instances || {},GetInstance : function( name ){return this.Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.Instances ){var oEditor = FCKeditorAPI.Instances[ name ] ;if ( oEditor.GetParentForm &amp;&amp; oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue	: window.FCKeditorAPI &amp;&amp; window.FCKeditorAPI._FunctionQueue || {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length &gt; 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if(FCKBrowserInfo.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;FCKeditorAPI.__Instances=FCKeditorAPI.Instances;};FCKeditorAPI.Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&amp;&amp;(typeof(A.submit)=='function'||(!A.submit.tagName&amp;&amp;!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (window.FCKConfig&amp;&amp;FCKConfig.MsWebBrowserControlCompat&amp;&amp;!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&amp;&amp;FCKConfig.MsWebBrowserControlCompat) window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
 var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i&lt;A.length;i++){var B=document.createElement('img');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&amp;&amp;B.OnComplete) B.OnComplete();};
 var FCKRegexLib={AposEntity:/&amp;apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\&lt;body[^\&gt;]*\&gt;)/i,AfterBody:/(\&lt;\/body\&gt;[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*[&quot;']?([^&quot;' ]+)/i,HasBaseTag:/&lt;base /i,HasBodyTag:/&lt;body[\s|&gt;]/i,HtmlOpener:/&lt;html\s?[^&gt;]*&gt;/i,HeadOpener:/&lt;head\s?[^&gt;]*&gt;/i,HeadCloser:/&lt;\/head\s*&gt;/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/&gt;/g,EmptyParagraph:/^&lt;(p|div|address|h\d|center)(?=[ &gt;])[^&gt;]*&gt;\s*(&lt;\/\1&gt;)?$/,EmptyOutParagraph:/^&lt;(p|div|address|h\d|center)(?=[ &gt;])[^&gt;]*&gt;(?:\s*|&amp;nbsp;)(&lt;\/\1&gt;)?$/,TagBody:/&gt;&lt;/,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/&lt;img(?=\s).*?\ssrc=((?:(?:\s*)(&quot;|').*?\2)|(?:[^&quot;'][^ &gt;]+))/gi,ProtectUrlsA:/&lt;a(?=\s).*?\shref=((?:(?:\s*)(&quot;|').*?\2)|(?:[^&quot;'][^ &gt;]+))/gi,ProtectUrlsArea:/&lt;area(?=\s).*?\shref=((?:(?:\s*)(&quot;|').*?\2)|(?:[^&quot;'][^ &gt;]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/&lt;!DOCTYPE[^&gt;]*&gt;/i,HtmlDocType:/DTD HTML/,TagsWithEvent:/&lt;[^\&gt;]+ on\w+[\s\r\n]*=[\s\r\n]*?('|&quot;)[\s\S]+?\&gt;/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|&quot;)([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt=&quot;([^&quot;]+)&quot;/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(&lt;(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^&gt;]*)\/&gt;/gi,StyleVariableAttName:/#\(\s*(&quot;|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/,HtmlTag:/&lt;[^\s&lt;&gt;](?:&quot;[^&quot;]*&quot;|'[^']*'|[^&lt;])*&gt;/};
 var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },NonEditableElements:{ button:1,option:1,script:1,iframe:1,textarea:1,object:1,embed:1,map:1,applet:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }};
-var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length&gt;=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length&gt;=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i&lt;e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);e[i][C]=s;}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);this.TranslateElements(A,'LEGEND','innerHTML');},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
-var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.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','&#215;':'times','&#247;':'divide','&#402;':'fnof','&#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','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','&#9674;':'loz','&#9824;':'spades','&#9827;':'clubs','&#9829;':'hearts','&#9830;':'diams','&quot;':'quot','&#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'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'&#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','&#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','&#248;':'oslash','&#249;':'ugrave','&#250;':'uacute','&#251;':'ucirc','&#252;':'uuml','&#253;':'yacute','&#254;':'thorn','&#255;':'yuml','&#338;':'OElig','&#339;':'oelig','&#352;':'Scaron','&#353;':'scaron','&#376;':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'&#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','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A='&#160;';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&amp;&amp;D.length&gt;0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');};
-var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^&lt;xhtml.*?&gt;/,'&lt;xhtml&gt;');E=E.substr(7,E.length-15).Trim();if (FCKConfig.DocType.length&gt;0&amp;&amp;FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'&gt;');else E=E.replace(FCKRegexLib.SpaceNoClose,' /&gt;');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&amp;');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i&lt;FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&amp;');if (!D) FCK.ResetIsDirty();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&amp;/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C&amp;&amp;B.tagName&amp;&amp;B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&amp;&amp;E.nodeType==1&amp;&amp;E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&amp;&amp;FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&amp;&amp;B.tagName.toLowerCase()=='br'&amp;&amp;B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&amp;&amp;(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')){if (B.nextSibling) return false;else{B.removeAttribute('_moz_editor_bogus_node');B.removeAttribute('type');}};if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&amp;&amp;B.scopeName!='HTML'&amp;&amp;B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&amp;&amp;B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&amp;&amp;B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&amp;&amp;!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {};break;default:A.appendChild(this.XML.createComment(&quot;Element not supported - Type: &quot;+B.nodeType+&quot; Name: &quot;+B.nodeName));break;};return true;};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length&gt;0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&amp;&amp;!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&amp;&amp;D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&amp;&amp;E.length&gt;0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl=&quot;[^&quot;]*&quot;/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');return A;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&amp;&amp;B.nodeType==3&amp;&amp;B.nodeValue.Trim().length==0)}	while (B&amp;&amp;B.nodeName.toLowerCase()=='li') return D;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&amp;&amp;D.nodeType==3) D=D.previousSibling;if (D&amp;&amp;D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&amp;&amp;C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
+var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',is:'Icelandic',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length&gt;=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length&gt;=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i&lt;e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);e[i][C]=s;}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);this.TranslateElements(A,'LEGEND','innerHTML');},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
+var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.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','&#215;':'times','&#247;':'divide','&#402;':'fnof','&#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','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','&#9674;':'loz','&#9824;':'spades','&#9827;':'clubs','&#9829;':'hearts','&#9830;':'diams','&quot;':'quot','&gt;':'gt','&#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'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'&#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','&#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','&#248;':'oslash','&#249;':'ugrave','&#250;':'uacute','&#251;':'ucirc','&#252;':'uuml','&#253;':'yacute','&#254;':'thorn','&#255;':'yuml','&#338;':'OElig','&#339;':'oelig','&#352;':'Scaron','&#353;':'scaron','&#376;':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'&#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','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={'&gt;':'gt'};A='&gt;';A+='&#160;';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&amp;&amp;D.length&gt;0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');};
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^&lt;xhtml.*?&gt;/,'&lt;xhtml&gt;');E=E.substr(7,E.length-15).Trim();if (FCKConfig.DocType.length&gt;0&amp;&amp;FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'&gt;');else E=E.replace(FCKRegexLib.SpaceNoClose,' /&gt;');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&amp;');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i&lt;FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&amp;');if (!D) FCK.ResetIsDirty();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&amp;/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C&amp;&amp;B.tagName&amp;&amp;B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&amp;&amp;E.nodeType==1&amp;&amp;E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&amp;&amp;FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&amp;&amp;B.tagName.toLowerCase()=='br'&amp;&amp;B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&amp;&amp;(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')){if (B.nextSibling) return false;else{B.removeAttribute('_moz_editor_bogus_node');B.removeAttribute('type');}};if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&amp;&amp;B.scopeName!='HTML'&amp;&amp;B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&amp;&amp;B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&amp;&amp;B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&amp;&amp;!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {};break;default:A.appendChild(this.XML.createComment(&quot;Element not supported - Type: &quot;+B.nodeType+&quot; Name: &quot;+B.nodeName));break;};return true;};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+(FCKXHtml.SpecialBlocks.push(A)-1);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length&gt;0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&amp;&amp;!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&amp;&amp;D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&amp;&amp;E.length&gt;0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl=&quot;[^&quot;]*&quot;/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');return A;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&amp;&amp;B.nodeType==3&amp;&amp;B.nodeValue.Trim().length==0)}	while (B&amp;&amp;B.nodeName.toLowerCase()=='li') return D;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&amp;&amp;D.nodeType==3) D=D.previousSibling;if (D&amp;&amp;D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&amp;&amp;C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
 FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes,bHasStyle;for (var n=0;n&lt;E.length;n++){var F=E[n];if (F.specified){var G=F.nodeName.toLowerCase();var H;if (G.StartsWith('_fck')) continue;else if (G=='style'){bHasStyle=true;continue;}else if (G=='class'){H=F.nodeValue.replace(FCKRegexLib.FCK_Class,'');if (H.length==0) continue;}else if (G.indexOf('on')==0) H=F.nodeValue;else if (D=='body'&amp;&amp;G=='contenteditable') continue;else if (F.nodeValue===true) H=G;else{try{H=B.getAttribute(G,2);}catch (e) {}};this._AppendAttribute(C,G,H||F.nodeValue);}};if (bHasStyle||B.style.cssText.length&gt;0){var I=FCKTools.ProtectFormStyles(B);var J=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);FCKTools.RestoreFormStyles(B,I);this._AppendAttribute(C,'style',J);}};FCKXHtml.TagProcessors['div']=function(A,B){if (B.align.length&gt;0) FCKXHtml._AppendAttribute(A,'align',B.align);A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['form']=function(A,B){if (B.acceptCharset&amp;&amp;B.acceptCharset.length&gt;0&amp;&amp;B.acceptCharset!='UNKNOWN') FCKXHtml._AppendAttribute(A,'accept-charset',B.acceptCharset);var C=B.attributes['name'];if (C&amp;&amp;C.value.length&gt;0) FCKXHtml._AppendAttribute(A,'name',C.value);A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&amp;&amp;!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text');return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length&gt;0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['map']=function(A,B){if (!A.attributes.getNamedItem('name')){var C=B.name;if (C) FCKXHtml._AppendAttribute(A,'name',C);};A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);}};return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&amp;&amp;!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);A=FCKXHtml._AppendChildNodes(A,B);return A;};
-var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\&lt;(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi;A.BlocksCloser=/\&lt;\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi;A.NewLineTags=/\&lt;(BR|HR)[^\&gt;]*\&gt;/gi;A.MainTags=/\&lt;\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\&gt;]*\&gt;/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\&lt;(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\&gt;]/i;A.DecreaseIndent=/^\&lt;\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \&gt;]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(&lt;PRE[^&gt;]*&gt;)([\s\S]*?)(&lt;\/PRE&gt;)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&amp;');B=B.replace(this.Regex.BlocksCloser,'$&amp;\n');B=B.replace(this.Regex.NewLineTags,'$&amp;\n');B=B.replace(this.Regex.MainTags,'\n$&amp;\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i&lt;D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j&lt;FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();};
+var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\&lt;(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DL|DT|DD|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi;A.BlocksCloser=/\&lt;\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DL|DT|DD|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\&gt;]*\&gt;/gi;A.NewLineTags=/\&lt;(BR|HR)[^\&gt;]*\&gt;/gi;A.MainTags=/\&lt;\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\&gt;]*\&gt;/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\&lt;(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \/\&gt;]/i;A.DecreaseIndent=/^\&lt;\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \&gt;]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(&lt;PRE[^&gt;]*&gt;)([\s\S]*?)(&lt;\/PRE&gt;)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+(FCKCodeFormatter.ProtectedData.push(C)-1)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&amp;');B=B.replace(this.Regex.BlocksCloser,'$&amp;\n');B=B.replace(this.Regex.NewLineTags,'$&amp;\n');B=B.replace(this.Regex.MainTags,'\n$&amp;\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i&lt;D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j&lt;FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();};
 var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){FCKSelection.Restore();var A=new FCKDomRange(FCK.EditorWindow);try{A.MoveToSelection();}catch (e){return null;};if (FCKBrowserInfo.IsIE){var B=A.CreateBookmark();var C=FCK.EditorDocument.body.innerHTML;A.MoveToBookmark(B);return [B,C];};return A.CreateBookmark2();};FCKUndo._SelectBookmark=function(A){if (!A) return;var B=new FCKDomRange(FCK.EditorWindow);if (A instanceof Object){if (FCKBrowserInfo.IsIE) B.MoveToBookmark(A[0]);else B.MoveToBookmark2(A);try{B.Select();}catch (e){B.MoveToPosition(FCK.EditorDocument.body,4);B.Select();}}};FCKUndo._CompareCursors=function(A,B){for (var i=0;i&lt;Math.min(A.length,B.length);i++){if (A[i]&lt;B[i]) return-1;else if (A[i]&gt;B[i]) return 1;};if (A.length&lt;B.length) return-1;else if (A.length&gt;B.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&amp;&amp;B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&amp;&amp;E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&amp;&amp;this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex&gt;0&amp;&amp;A==this.SavedData[this.CurrentIndex][0]&amp;&amp;this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&amp;&amp;this.SavedData.length&amp;&amp;A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1&gt;=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex&gt;0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex&lt;(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent(&quot;OnSelectionChange&quot;);}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&amp;&amp;B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;};
 var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A='&lt;script&gt;document.domain=&quot;'+FCK_RUNTIME_DOMAIN+'&quot;;&lt;/script&gt;'+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(&lt;base[^&gt;]*?)\s*\/?&gt;(?!\s*&lt;\/base&gt;)/gi,'$1&gt;&lt;/base&gt;');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&amp;&amp;F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+'&amp;nbsp;'+F[1];if (FCKBrowserInfo.IsGecko&amp;&amp;(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='&lt;br type=&quot;_moz&quot;&gt;';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='&lt;script type=&quot;text/javascript&quot; _fcktemp=&quot;true&quot;&gt;window.onerror=function(){return true;};&lt;/script&gt;';H.frameBorder=0;H.style.width=H.style.height='100%';if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A.replace(/&lt;head&gt;/i,'&lt;head&gt;'+I);H.src='javascript:void( (function(){document.open() ;document.domain=&quot;'+document.domain+'&quot; ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(A.replace(/&lt;head&gt;/i,'&lt;head&gt;'+I));J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&amp;&amp;!B){this.Start(A,true);return;};if (H.readyState&amp;&amp;H.readyState!='completed'){var K=this;setTimeout(function(){try{K.Window.document.documentElement.doScroll(&quot;left&quot;);}catch(e){setTimeout(arguments.callee,0);return;};K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);},0);}else{this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute(&quot;disabled&quot;);}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;A.body.offsetLeft;this._BodyHTML=null;};A.designMode='on';A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE) this._FocusIE();else this.Window.focus();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&amp;&amp;A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length&gt;0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);A.Select();};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML=&quot;&quot;;this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};
 var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&amp;&amp;FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i&lt;arguments.length;i++){var A=arguments[i];if (!A) continue;if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&amp;&amp;B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&amp;&amp;D==CTRL&amp;&amp;(C&lt;33||C&gt;40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;};
@@ -53,37 +53,37 @@ var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._St
 var FCKStyles=FCK.Styles={_Callbacks:{},_ObjectStyles:{},ApplyStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){if (A.GetType()==2) A.ApplyToObject(FCKSelection.GetSelectedElement());else A.ApplyToSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},RemoveStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){A.RemoveFromSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},AttachStyleStateChange:function(A,B,C){var D=this._Callbacks[A];if (!D) D=this._Callbacks[A]=[];D.push([B,C]);},CheckSelectionChanges:function(){var A=FCKSelection.GetBoundaryParentElement(true);if (!A) return;var B=new FCKElementPath(A);var C=this.GetStyles();for (var D in C){var E=this._Callbacks[D];if (E){var F=C[D];var G=F.CheckActive(B);if (G!=(F._LastState||null)){F._LastState=G;for (var i=0;i&lt;E.length;i++){var H=E[i][0];var I=E[i][1];H.call(I||window,D,G);}}}}},CheckStyleInSelection:function(A){return false;},_GetRemoveFormatTagsRegex:function (){var A=new RegExp('^(?:'+FCKConfig.RemoveFormatTags.replace(/,/g,'|')+')$','i');return (this._GetRemoveFormatTagsRegex=function(){return A;})&amp;&amp;A;},RemoveAll:function(){var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();if (A.CheckIsCollapsed()) return;A.Expand('inline_elements');var B=A.CreateBookmark(true);var C=A.GetBookmarkNode(B,true);var D=A.GetBookmarkNode(B,false);A.Release(true);var E=this._GetRemoveFormatTagsRegex();var F=new FCKElementPath(C);var G=F.Elements;var H;for (var i=1;i&lt;G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;if (E.test(H.nodeName)) FCKDomTools.BreakParent(C,H,A);};F=new FCKElementPath(D);G=F.Elements;for (var i=1;i&lt;G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;elementName=H.nodeName.toLowerCase();if (E.test(H.nodeName)) FCKDomTools.BreakParent(D,H,A);};var I=FCKDomTools.GetNextSourceNode(C,true,1);while (I){if (I==D) break;var J=FCKDomTools.GetNextSourceNode(I,false,1);if (E.test(I.nodeName)) FCKDomTools.RemoveNode(I,true);else FCKDomTools.RemoveAttributes(I,FCKConfig.RemoveAttributesArray);I=J;};A.SelectBookmark(B);FCK.Events.FireEvent('OnSelectionChange');},GetStyle:function(A){return this.GetStyles()[A];},GetStyles:function(){var A=this._GetStyles;if (!A){A=this._GetStyles=FCKTools.Merge(this._LoadStylesCore(),this._LoadStylesCustom(),this._LoadStylesXml());};return A;},CheckHasObjectStyle:function(A){return!!this._ObjectStyles[A];},_LoadStylesCore:function(){var A={};var B=FCKConfig.CoreStyles;for (var C in B){var D=A['_FCK_'+C]=new FCKStyle(B[C]);D.IsCore=true;};return A;},_LoadStylesCustom:function(){var A={};var B=FCKConfig.CustomStyles;if (B){for (var C in B){var D=A[C]=new FCKStyle(B[C]);D.Name=C;}};return A;},_LoadStylesXml:function(){var A={};var B=FCKConfig.StylesXmlPath;if (!B||B.length==0) return A;var C=new FCKXml();C.LoadUrl(B);var D=FCKXml.TransformToObject(C.SelectSingleNode('Styles'));var E=D.$Style;if (!E) return A;for (var i=0;i&lt;E.length;i++){var F=E[i];var G=(F.element||'').toLowerCase();if (G.length==0) throw('The element name is required. Error loading &quot;'+B+'&quot;');var H={Element:G,Attributes:{},Styles:{},Overrides:[]};var I=F.$Attribute||[];for (var j=0;j&lt;I.length;j++){H.Attributes[I[j].name]=I[j].value;};var J=F.$Style||[];for (j=0;j&lt;J.length;j++){H.Styles[J[j].name]=J[j].value;};var K=F.$Override;if (K){for (j=0;j&lt;K.length;j++){var L=K[j];var M={Element:L.element};var N=L.$Attribute;if (N){M.Attributes={};for (var k=0;k&lt;N.length;k++){var O=N[k].value||null;if (O){var P=O&amp;&amp;FCKRegexLib.RegExp.exec(O);if (P) O=new RegExp(P[1],P[2]||'');};M.Attributes[N[k].name]=O;}};H.Overrides.push(M);}};var Q=new FCKStyle(H);Q.Name=F.name||G;if (Q.GetType()==2) this._ObjectStyles[G]=true;A[Q.Name]=Q;};return A;}};
 var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&amp;&amp;I.nodeType==1&amp;&amp;I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&amp;&amp;I.nodeType==1&amp;&amp;I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length&gt;0) return true;};B=B.nextSibling;};return false;}};
 var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (FCKBrowserInfo.IsIE&amp;&amp;e.scopeName!='HTML') E=e.scopeName.toLowerCase()+':'+E;if (!C){if (!B&amp;&amp;FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&amp;&amp;E=='div'&amp;&amp;!FCKElementPath._CheckHasBlock(e)) B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};FCKElementPath._CheckHasBlock=function(A){var B=A.childNodes;for (var i=0,count=B.length;i&lt;count;i++){var C=B[i];if (C.nodeType==1&amp;&amp;FCKListsLib.BlockElements[C.nodeName.toLowerCase()]) return true;};return false;};
-var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A.collapsed){this.EndNode=this.StartNode;this.EndContainer=this.StartContainer;this.EndBlock=this.StartBlock;this.EndBlockLimit=this.StartBlockLimit;}else{var D=A.endContainer;if (B!=D) C=new FCKElementPath(D);var E=D;if (A.endOffset==0){while (E&amp;&amp;!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=D;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;};return null;},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;return false;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while (A&amp;&amp;A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E&gt;0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length&gt;0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E&lt;G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&amp;&amp;!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length&gt;0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML='&amp;nbsp;';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML='&amp;nbsp;';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { &quot;Start&quot;:0,&quot;End&quot;:0 };var A={&quot;Start&quot;:[this._Range.startOffset],&quot;End&quot;:[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&amp;&amp;D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&amp;&amp;E.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&amp;&amp;D.childNodes[A.Start[0]]&amp;&amp;D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&amp;&amp;F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&amp;&amp;E.childNodes[A.End[0]]&amp;&amp;E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&amp;&amp;F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&amp;&amp;D&gt;B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;}while (C.nodeType==3&amp;&amp;E&gt;C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&amp;&amp;C&gt;=B.nodeValue.length)||(B.nodeType==1&amp;&amp;C&gt;=B.childNodes.length)||(B.nodeType!=1&amp;&amp;B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&amp;&amp;FCKConfig.EnterMode!='br'&amp;&amp;A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;}while (B&amp;&amp;(B.nodeType!=1||(B!=this.StartBlockLimit&amp;&amp;!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&amp;&amp;FCKConfig.EnterMode!='br'&amp;&amp;A=='block_contents'&amp;&amp;this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&amp;&amp;(B.nodeType!=1||(B!=this.StartBlockLimit&amp;&amp;!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&amp;&amp;B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&amp;&amp;this.CheckStartOfBlock());var G=(D!=null&amp;&amp;this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&amp;&amp;D&amp;&amp;C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&amp;&amp;!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&amp;&amp;FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}};
+var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A.collapsed){this.EndNode=this.StartNode;this.EndContainer=this.StartContainer;this.EndBlock=this.StartBlock;this.EndBlockLimit=this.StartBlockLimit;}else{var D=A.endContainer;if (B!=D) C=new FCKElementPath(D);var E=D;if (A.endOffset==0){while (E&amp;&amp;!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=D;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;};return null;},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;return false;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while (A&amp;&amp;A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E&gt;0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length&gt;0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E&lt;G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&amp;&amp;!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length&gt;0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML='&amp;nbsp;';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML='&amp;nbsp;';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { &quot;Start&quot;:0,&quot;End&quot;:0 };var A={&quot;Start&quot;:[this._Range.startOffset],&quot;End&quot;:[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&amp;&amp;B.nodeType==3&amp;&amp;D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&amp;&amp;C.nodeType==3&amp;&amp;E.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&amp;&amp;D.childNodes[A.Start[0]]&amp;&amp;D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&amp;&amp;F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&amp;&amp;E.childNodes[A.End[0]]&amp;&amp;E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&amp;&amp;F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&amp;&amp;D&gt;B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;}while (C.nodeType==3&amp;&amp;E&gt;C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&amp;&amp;C&gt;=B.nodeValue.length)||(B.nodeType==1&amp;&amp;C&gt;=B.childNodes.length)||(B.nodeType!=1&amp;&amp;B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&amp;&amp;FCKConfig.EnterMode!='br'&amp;&amp;A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;}while (B&amp;&amp;(B.nodeType!=1||(B!=this.StartBlockLimit&amp;&amp;!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&amp;&amp;FCKConfig.EnterMode!='br'&amp;&amp;A=='block_contents'&amp;&amp;this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&amp;&amp;(B.nodeType!=1||(B!=this.StartBlockLimit&amp;&amp;!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&amp;&amp;B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&amp;&amp;this.CheckStartOfBlock());var G=(D!=null&amp;&amp;this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&amp;&amp;D&amp;&amp;C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&amp;&amp;!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&amp;&amp;FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}};
 FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){var B=this._GetSelectionMarkerTag(true);var C=this._GetSelectionMarkerTag(false);if (!B&amp;&amp;!C){this._Range.setStart(this.Window.document.body,0);this._UpdateElementInfo();return;};this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._Range.setEnd(C.parentNode,FCKDomTools.GetIndexOf(C));C.parentNode.removeChild(C);this._UpdateElementInfo();}else{var D=A.createRange().item(0);if (D){this._Range.setStartBefore(D);this._Range.setEndAfter(D);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(A){if (this._Range) this.SelectBookmark(this.CreateBookmark(true),A);};FCKDomRange.prototype.SelectBookmark=function(A,B){var C=this.CheckIsCollapsed();var D;var E;var F=this.GetBookmarkNode(A,true);if (!F) return;var G;if (!C) G=this.GetBookmarkNode(A,false);var H=this.Window.document.body.createTextRange();H.moveToElementText(F);H.moveStart('character',1);if (G){var I=this.Window.document.body.createTextRange();I.moveToElementText(G);H.setEndPoint('EndToEnd',I);H.moveEnd('character',-1);}else{D=(B||!F.previousSibling||F.previousSibling.nodeName.toLowerCase()=='br')&amp;&amp;!F.nextSibing;E=this.Window.document.createElement('span');E.innerHTML='&amp;#65279;';F.parentNode.insertBefore(E,F);if (D){F.parentNode.insertBefore(this.Window.document.createTextNode('\ufeff'),F);}};if (!this._Range) this._Range=this.CreateRange();this._Range.setStartBefore(F);F.parentNode.removeChild(F);if (C){if (D){H.moveStart('character',-1);H.select();this.Window.document.selection.clear();}else H.select();FCKDomTools.RemoveNode(E);}else{this._Range.setEndBefore(G);G.parentNode.removeChild(G);H.select();}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document;var C=B.selection;var D;try{D=C.createRange();}catch (e){return null;};if (D.parentElement().document!=B) return null;D.collapse(A===true);var E='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);D.pasteHTML('&lt;span id=&quot;'+E+'&quot;&gt;&lt;/span&gt;');return B.getElementById(E);};
-var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&amp;&amp;(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&amp;&amp;H.childNodes.length==0&amp;&amp;M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=FCKDomTools.GetNextSourceNode(H,true,null,I);};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&amp;&amp;!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&amp;&amp;H==I);if (B&amp;&amp;!J){while (!H.nextSibling&amp;&amp;!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;K=true;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&amp;&amp;B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&amp;&amp;B.StartNode.parentNode==B.StartBlockLimit&amp;&amp;B.StartNode.getAttribute&amp;&amp;B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&amp;&amp;!this.EnforceRealBlocks&amp;&amp;B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&amp;&amp;B.CheckStartOfBlock()&amp;&amp;B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&amp;&amp;A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&amp;&amp;P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&amp;&amp;P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&amp;&amp;Q.nodeType==1&amp;&amp;Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};if (!this._NextNode) this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}};
+var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&amp;&amp;(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&amp;&amp;H.childNodes.length==0&amp;&amp;M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=FCKDomTools.GetNextSourceNode(H,true,null,I)||H;};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&amp;&amp;!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&amp;&amp;H==I);if (B&amp;&amp;!J){while (!H.nextSibling&amp;&amp;!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;K=true;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&amp;&amp;B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&amp;&amp;B.StartNode.parentNode==B.StartBlockLimit&amp;&amp;B.StartNode.getAttribute&amp;&amp;B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&amp;&amp;!this.EnforceRealBlocks&amp;&amp;B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&amp;&amp;B.CheckStartOfBlock()&amp;&amp;B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&amp;&amp;A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&amp;&amp;P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&amp;&amp;P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&amp;&amp;Q.nodeType==1&amp;&amp;Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};if (!this._NextNode) this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}};
 var FCKDocumentFragment=function(A){this._Document=A;this.RootNode=A.createElement('div');};FCKDocumentFragment.prototype={AppendTo:function(A){FCKDomTools.MoveChildren(this.RootNode,A);},AppendHtml:function(A){var B=this._Document.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,this.RootNode);},InsertAfterNode:function(A){var B=this.RootNode;var C;while((C=B.lastChild)) FCKDomTools.InsertAfterNode(A,B.removeChild(C));}};
 var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&amp;&amp;this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length&gt;0){if (F&gt;D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else if (E&gt;C.childNodes.length-1){C=C.appendChild(this._Document.createTextNode(''));G=true;}else C=C.childNodes[E].previousSibling;};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i&lt;I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j&lt;I.length;j++){levelStartNode=I[j];if (K&amp;&amp;levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k&lt;J.length;k++){levelStartNode=J[k];if (A&gt;0&amp;&amp;levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&amp;&amp;M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&amp;&amp;topEnd&amp;&amp;(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&amp;&amp;topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&amp;&amp;D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);}};
-var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D&gt;0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&amp;&amp;D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&amp;&amp;this.Window.document.selection.type.toLowerCase()==&quot;control&quot;){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i&gt;=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&amp;&amp;F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&amp;&amp;H&amp;&amp;I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&amp;&amp;C&amp;&amp;C.nodeName.IEquals('LI')&amp;&amp;C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&amp;&amp;B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&amp;&amp;C){if (C.nodeName.IEquals('LI')&amp;&amp;!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&amp;&amp;B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C==&quot;tr&quot;||C==&quot;td&quot;||C==&quot;th&quot;||C==&quot;tbody&quot;||C==&quot;table&quot;) return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&amp;&amp;E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&amp;&amp;!H){if (F.nodeName.IEquals('li')&amp;&amp;F.firstChild&amp;&amp;F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&amp;&amp;H&amp;&amp;E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&amp;&amp;!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){for (var i=0,len=K.Elements.length;i&lt;len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(I);C.Select();};C.MoveToElementEditStart(G&amp;&amp;!H?F:I);};if (FCKBrowserInfo.IsGeckoLike) FCKDomTools.ScrollIntoView(F||I,false);C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;var G=false;if (!F&amp;&amp;E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&amp;&amp;D&amp;&amp;(/^H[1-6]$/).test(E)){FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&amp;&amp;FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);FCKDomTools.ScrollIntoView(I,false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&amp;&amp;D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();};
-var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).createElement('IMG');C.className=A;C.src=FCKConfig.BasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.name.length&gt;0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.style.pageBreakAfter=='always'&amp;&amp;C.childNodes.length==1&amp;&amp;C.childNodes[0].style&amp;&amp;C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i&lt;A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};var F=function(elementName,doc){var G=doc.getElementsByTagName(elementName);for (var i=G.length-1;i&gt;=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},RefreshView:function(placeHolder,original){if (original.getAttribute('width')&gt;0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')&gt;0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length&gt;0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length&gt;0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&amp;&amp;(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-style-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i&gt;=0;i--) FCKDomTools.RemoveNode(B[i],true);}};
+var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D&gt;0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&amp;&amp;D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&amp;&amp;this.Window.document.selection.type.toLowerCase()==&quot;control&quot;){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i&gt;=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&amp;&amp;F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&amp;&amp;H&amp;&amp;I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&amp;&amp;C&amp;&amp;C.nodeName.IEquals('LI')&amp;&amp;C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&amp;&amp;B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&amp;&amp;C){if (C.nodeName.IEquals('LI')&amp;&amp;!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&amp;&amp;this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&amp;&amp;B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C==&quot;tr&quot;||C==&quot;td&quot;||C==&quot;th&quot;||C==&quot;tbody&quot;||C==&quot;table&quot;) return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&amp;&amp;E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&amp;&amp;!H){if (F.nodeName.IEquals('li')&amp;&amp;F.firstChild&amp;&amp;F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&amp;&amp;H&amp;&amp;E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&amp;&amp;!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){for (var i=0,len=K.Elements.length;i&lt;len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(I);C.Select();};C.MoveToElementEditStart(G&amp;&amp;!H?F:I);};if (FCKBrowserInfo.IsGeckoLike){if (F){var M=this.Window.document.createElement('span');M.innerHTML='&amp;nbsp;';C.InsertNode(M);FCKDomTools.ScrollIntoView(M,false);C.DeleteContents();}else{FCKDomTools.ScrollIntoView(F||I,false);}};C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;var G=false;if (!F&amp;&amp;E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&amp;&amp;D&amp;&amp;(/^H[1-6]$/).test(E)){FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&amp;&amp;FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);FCKDomTools.ScrollIntoView(I,false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&amp;&amp;D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();};
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.push(A);return A;};FCKDocumentProcessor.Process=function(A){var B=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).createElement('IMG');C.className=A;C.src=FCKConfig.BasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.name.length&gt;0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.style.pageBreakAfter=='always'&amp;&amp;C.childNodes.length==1&amp;&amp;C.childNodes[0].style&amp;&amp;C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i&lt;A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};var F=function(elementName,doc){var G=doc.getElementsByTagName(elementName);for (var i=G.length-1;i&gt;=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},RefreshView:function(placeHolder,original){if (original.getAttribute('width')&gt;0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')&gt;0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length&gt;0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length&gt;0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i&gt;=0&amp;&amp;(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&amp;&amp;(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-style-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i&gt;=0;i--) FCKDomTools.RemoveNode(B[i],true);}};
 var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}};
-FCKSelection.GetType=function(){try{var A=FCKSelection.GetSelection().type;if (A=='Control'||A=='Text') return A;if (this.GetSelection().createRange().parentElement) return 'Text';}catch(e){};return 'None';};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=this.GetSelection().createRange();if (A&amp;&amp;A.item) return this.GetSelection().createRange().item(0);};return null;};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':var A=FCKSelection.GetSelectedElement();return A?A.parentElement:null;case 'None':return null;default:return this.GetSelection().createRange().parentElement();}};FCKSelection.GetBoundaryParentElement=function(A){switch (this.GetType()){case 'Control':var B=FCKSelection.GetSelectedElement();return B?B.parentElement:null;case 'None':return null;default:var C=FCK.EditorDocument;var D=C.selection.createRange();D.collapse(A!==false);var B=D.parentElement();return FCKTools.GetElementDocument(B)==C?B:null;}};FCKSelection.SelectNode=function(A){FCK.Focus();this.GetSelection().empty();var B;try{B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){B=FCK.EditorDocument.body.createTextRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=this.GetSelection().createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (this.GetSelection().type==&quot;Control&quot;){B=this.GetSelectedElement();}else{var C=this.GetSelection().createRange();B=C.parentElement();}while (B){if (B.nodeName.IEquals(A)) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (this.GetSelection().type==&quot;Control&quot;){oRange=this.GetSelection().createRange();for (i=0;i&lt;oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=this.GetSelection().createRange();B=oRange.parentElement();}while (B&amp;&amp;B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=this.GetSelection();if (A.type.toLowerCase()!=&quot;none&quot;){A.clear();};return A;};FCKSelection.GetSelection=function(){this.Restore();return FCK.EditorDocument.selection;};FCKSelection.Save=function(A){if (!A) FCK.Focus();var B=FCK.EditorDocument;if (!B) return;var C=B.selection;var D;if (C){D=C.createRange();if (D){if (D.parentElement&amp;&amp;FCKTools.GetElementDocument(D.parentElement())!=B) D=null;else if (D.item&amp;&amp;FCKTools.GetElementDocument(D.item(0))!=B) D=null;}};this.SelectionData=D;};FCKSelection._GetSelectionDocument=function(A){var B=A.createRange();if (!B) return null;else if (B.item) return FCKTools.GetElementDocument(B.item(0));else return FCKTools.GetElementDocument(B.parentElement());};FCKSelection.Restore=function(){if (this.SelectionData){FCK.IsSelectionChangeLocked=true;try{if (String(this._GetSelectionDocument(FCK.EditorDocument.selection).body.contentEditable)=='true'){FCK.IsSelectionChangeLocked=false;return;};this.SelectionData.select();}catch (e) {};FCK.IsSelectionChangeLocked=false;}};FCKSelection.Release=function(){delete this.SelectionData;};
-var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i&lt;B.length;i++){var D=FCKTools.GetElementAscensor(B[i],'TR');C[D.rowIndex]=D;};for (var i=C.length;i&gt;=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&amp;&amp;C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i&lt;D.rows.length;i++){var F=D.rows[i];if (F.cells.length&lt;(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];if (A) F.insertBefore(B,G);else if (G.nextSibling) F.insertBefore(B,G.nextSibling);else F.appendChild(B);}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i&gt;=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i&gt;=0;i--){var E=C.rows[i];if (D==0&amp;&amp;E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&amp;&amp;D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&amp;&amp;C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i&gt;=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i&lt;A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i&lt;A.length;i++){if (FCKBrowserInfo.IsIE) A[i].removeAttribute(B);else delete A[i][B];}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&amp;&amp;A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&amp;&amp;A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&amp;&amp;A[i][C]&amp;&amp;A[i][C][D];i++) F++;for (var i=B-1;A[i]&amp;&amp;A[i][C]&amp;&amp;A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length&lt;1) return false;this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width&gt;=E.height){for (D=F;D&lt;F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C&lt;G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length&lt;2) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=FCKTools.GetElementDocument(B).createDocumentFragment();for (var i=0;i&lt;F.height;i++){var J=0;for (var j=0;j&lt;F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length&gt;0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&amp;&amp;L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J&gt;0) I.appendChild(FCKTools.GetElementDocument(B).createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&amp;&amp;(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&amp;&amp;D.childNodes&amp;&amp;D.childNodes.length&gt;0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&amp;&amp;D.childNodes&amp;&amp;D.childNodes.length&gt;0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCKTools.GetElementDocument(D).createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F&gt;1){var G=Math.ceil(F/2);var H=FCKTools.GetElementDocument(B).createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r&lt;D+K;r++){for (var i=I;i&lt;J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i&lt;C.length;i++){var M=C[i].slice(0,E);if (C[i].length&lt;=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(FCKTools.GetElementDocument(B).createElement('td'));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j&lt;C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=FCKTableHandler._GetCellIndexSpan(C,B.parentNode.rowIndex,B);var E=B.rowSpan;var F=B.parentNode.rowIndex;if (isNaN(E)) E=1;if (E&gt;1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;i&lt;C[G].length;i++){if (C[G][i].parentNode.rowIndex==G){H=C[G][i];break;}};var I=FCK.EditorDocument.createElement('td');I.rowSpan=Math.floor(E/2);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);B.parentNode.parentNode.rows[G].insertBefore(I,H);}else{var G=F+1;var K=FCK.EditorDocument.createElement('tr');var L=B.parentNode.parentNode;if (L.rows.length&gt;G) L.insertBefore(K,L.rows[G]);else L.appendChild(K);for (var i=0;i&lt;C[F].length;){var M=C[F][i].colSpan;if (isNaN(M)||M&lt;1) M=1;if (i==D){i+=M;continue;};var N=C[F][i].rowSpan;if (isNaN(N)) N=1;C[F][i].rowSpan=N+1;i+=M;};var I=FCK.EditorDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);K.appendChild(I);}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length&lt;B+1) return null;var D=A[B];for (var c=0;c&lt;D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCellLocation=function(A,B){for (var i=0;i&lt;A.length;i++){for (var c=0;c&lt;A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._GetColumnCells=function(A,B){var C=[];for (var r=0;r&lt;A.length;r++){var D=A[r][B];if (D&amp;&amp;(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i&lt;B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j&lt;B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G&lt;F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H&lt;E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler._InstallTableMap=function(A,B){var C=FCKBrowserInfo.IsIE?&quot;_fckrowspan&quot;:&quot;rowSpan&quot;;while (B.rows.length&gt;0){var D=B.rows[0];D.parentNode.removeChild(D);};for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var E=A[i][j];if (E.parentNode) E.parentNode.removeChild(E);E.colSpan=E[C]=1;}};var F=0;for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var E=A[i][j];if (!E) continue;if (j&gt;F) F=j;if (E._colScanned===true) continue;if (A[i][j-1]==E) E.colSpan++;if (A[i][j+1]!=E) E._colScanned=true;}};for (var i=0;i&lt;=F;i++){for (var j=0;j&lt;A.length;j++){if (!A[j]) continue;var E=A[j][i];if (!E||E._rowScanned===true) continue;if (A[j-1]&amp;&amp;A[j-1][i]==E) E[C]++;if (!A[j+1]||A[j+1][i]!=E) E._rowScanned=true;}};for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var E=A[i][j];if (FCKBrowserInfo.IsIE){E.removeAttribute('_colScanned');E.removeAttribute('_rowScanned');}else{delete E._colScanned;delete E._rowScanned;}}};for (var i=0;i&lt;A.length;i++){var J=FCKTools.GetElementDocument(B).createElement('tr');for (var j=0;j&lt;A[i].length;){var E=A[i][j];if (A[i-1]&amp;&amp;A[i-1][j]==E){j+=E.colSpan;continue;};J.appendChild(E);if (C!='rowSpan'){E.rowSpan=E[C];E.removeAttribute(C);};j+=E.colSpan;if (E.colSpan==1) E.removeAttribute('colspan');if (E.rowSpan==1) E.removeAttribute('rowspan');};B.appendChild(J);}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i&lt;B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};
-FCKTableHandler.GetSelectedCells=function(){if (FCKSelection.GetType()=='Control'){var A=FCKSelection.MoveToAncestorNode('TD');return A?[A]:[];};var B=[];var C=FCKSelection.GetSelection().createRange();var D=FCKSelection.GetParentElement();if (D&amp;&amp;D.tagName.Equals('TD','TH')) B[0]=D;else{D=FCKSelection.MoveToAncestorNode('TABLE');if (D){for (var i=0;i&lt;D.cells.length;i++){var E=FCK.EditorDocument.body.createTextRange();E.moveToElementText(D.cells[i]);if (C.inRange(E)||(C.compareEndPoints('StartToStart',E)&gt;=0&amp;&amp;C.compareEndPoints('StartToEnd',E)&lt;=0)||(C.compareEndPoints('EndToStart',E)&gt;=0&amp;&amp;C.compareEndPoints('EndToEnd',E)&lt;=0)){B[B.length]=D.cells[i];}}}};return B;};
+FCKSelection.GetType=function(){try{var A=FCKSelection.GetSelection().type;if (A=='Control'||A=='Text') return A;if (this.GetSelection().createRange().parentElement) return 'Text';}catch(e){};return 'None';};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=this.GetSelection().createRange();if (A&amp;&amp;A.item) return this.GetSelection().createRange().item(0);};return null;};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':var A=FCKSelection.GetSelectedElement();return A?A.parentElement:null;case 'None':return null;default:return this.GetSelection().createRange().parentElement();}};FCKSelection.GetBoundaryParentElement=function(A){switch (this.GetType()){case 'Control':var B=FCKSelection.GetSelectedElement();return B?B.parentElement:null;case 'None':return null;default:var C=FCK.EditorDocument;var D=C.selection.createRange();D.collapse(A!==false);var B=D.parentElement();return FCKTools.GetElementDocument(B)==C?B:null;}};FCKSelection.SelectNode=function(A){FCK.Focus();this.GetSelection().empty();var B;try{B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){B=FCK.EditorDocument.body.createTextRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=this.GetSelection().createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (this.GetSelection().type==&quot;Control&quot;){B=this.GetSelectedElement();}else{var C=this.GetSelection().createRange();B=C.parentElement();}while (B){if (B.nodeName.IEquals(A)) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (this.GetSelection().type==&quot;Control&quot;){oRange=this.GetSelection().createRange();for (i=0;i&lt;oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=this.GetSelection().createRange();B=oRange.parentElement();}while (B&amp;&amp;!B.nodeName.Equals(A)) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=this.GetSelection();if (A.type.toLowerCase()!=&quot;none&quot;){A.clear();};return A;};FCKSelection.GetSelection=function(){this.Restore();return FCK.EditorDocument.selection;};FCKSelection.Save=function(A){var B=FCK.EditorDocument;if (!B) return;if (this.locked) return;this.locked=!!A;var C=B.selection;var D;if (C){try {D=C.createRange();}catch(e) {};if (D){if (D.parentElement&amp;&amp;FCKTools.GetElementDocument(D.parentElement())!=B) D=null;else if (D.item&amp;&amp;FCKTools.GetElementDocument(D.item(0))!=B) D=null;}};this.SelectionData=D;};FCKSelection._GetSelectionDocument=function(A){var B=A.createRange();if (!B) return null;else if (B.item) return FCKTools.GetElementDocument(B.item(0));else return FCKTools.GetElementDocument(B.parentElement());};FCKSelection.Restore=function(){if (this.SelectionData){FCK.IsSelectionChangeLocked=true;try{if (String(this._GetSelectionDocument(FCK.EditorDocument.selection).body.contentEditable)=='true'){FCK.IsSelectionChangeLocked=false;return;};this.SelectionData.select();}catch (e) {};FCK.IsSelectionChangeLocked=false;}};FCKSelection.Release=function(){this.locked=false;delete this.SelectionData;};
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i&lt;B.length;i++){var D=B[i].parentNode;C[D.rowIndex]=D;};for (var i=C.length;i&gt;=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&amp;&amp;C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i&lt;D.rows.length;i++){var F=D.rows[i];if (F.cells.length&lt;(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];F.insertBefore(B,(A?G:G.nextSibling));}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i&gt;=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i&gt;=0;i--){var E=C.rows[i];if (D==0&amp;&amp;E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&amp;&amp;D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&amp;&amp;C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(A.parentNode);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i&gt;=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i&lt;A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i&lt;A.length;i++){FCKDomTools.ClearElementJSProperty(A[i],B);}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&amp;&amp;A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&amp;&amp;A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&amp;&amp;A[i][C]&amp;&amp;A[i][C][D];i++) F++;for (var i=B-1;A[i]&amp;&amp;A[i][C]&amp;&amp;A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length&lt;1) return false;for (var i=0;i&lt;A.length;i++){if (A[i].parentNode.parentNode!=A[0].parentNode.parentNode) return false;};this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0]);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width&gt;=E.height){for (D=F;D&lt;F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C&lt;G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length&lt;2) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=FCKTools.GetElementDocument(B).createDocumentFragment();for (var i=0;i&lt;F.height;i++){var J=0;for (var j=0;j&lt;F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length&gt;0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&amp;&amp;L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J&gt;0) I.appendChild(FCK.EditorDocument.createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&amp;&amp;(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&amp;&amp;D.childNodes&amp;&amp;D.childNodes.length&gt;0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&amp;&amp;D.childNodes&amp;&amp;D.childNodes.length&gt;0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCK.EditorDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F&gt;1){var G=Math.ceil(F/2);var H=FCK.EditorDocument.createElement(B.nodeName);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r&lt;D+K;r++){for (var i=I;i&lt;J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i&lt;C.length;i++){var M=C[i].slice(0,E);if (C[i].length&lt;=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(FCK.EditorDocument.createElement(B.nodeName));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j&lt;C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;var G=B.rowSpan;if (isNaN(G)) G=1;if (G&gt;1){B.rowSpan=Math.ceil(G/2);var H=D+Math.ceil(G/2);var I=C[H];var J=null;for (var i=E+1;i&lt;I.length;i++){if (I[i].parentNode.rowIndex==H){J=I[i];break;}};var K=FCK.EditorDocument.createElement(B.nodeName);K.rowSpan=Math.floor(G/2);if (F&gt;1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);B.parentNode.parentNode.parentNode.rows[H].insertBefore(K,J);}else{var L=B.parentNode.sectionRowIndex+1;var M=FCK.EditorDocument.createElement('tr');var N=B.parentNode.parentNode;if (N.rows.length&gt;L) N.insertBefore(M,N.rows[L]);else N.appendChild(M);for (var i=0;i&lt;C[D].length;){var O=C[D][i].colSpan;if (isNaN(O)||O&lt;1) O=1;if (i==E){i+=O;continue;};var P=C[D][i].rowSpan;if (isNaN(P)) P=1;C[D][i].rowSpan=P+1;i+=O;};var K=FCK.EditorDocument.createElement(B.nodeName);if (F&gt;1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);M.appendChild(K);}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length&lt;B+1) return null;var D=A[B];for (var c=0;c&lt;D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCellLocation=function(A,B){for (var i=0;i&lt;A.length;i++){for (var c=0;c&lt;A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._CreateTableMap=function(A){var B=(A.nodeName=='TABLE'?A:A.parentNode.parentNode.parentNode);var C=B.rows;var r=-1;var D=[];for (var i=0;i&lt;C.length;i++){r++;if (!D[r]) D[r]=[];var c=-1;for (var j=0;j&lt;C[i].cells.length;j++){var E=C[i].cells[j];c++;while (D[r][c]) c++;var F=isNaN(E.colSpan)?1:E.colSpan;var G=isNaN(E.rowSpan)?1:E.rowSpan;for (var H=0;H&lt;G;H++){if (!D[r+H]) D[r+H]=[];for (var I=0;I&lt;F;I++){D[r+H][c+I]=C[i].cells[j];}};c+=F-1;}};return D;};FCKTableHandler._InstallTableMap=function(A,B){var C=FCKBrowserInfo.IsIE?&quot;_fckrowspan&quot;:&quot;rowSpan&quot;;for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var D=A[i][j];if (D.parentNode) D.parentNode.removeChild(D);D.colSpan=D[C]=1;}};var E=0;for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var D=A[i][j];if (!D) continue;if (j&gt;E) E=j;if (D._colScanned===true) continue;if (A[i][j-1]==D) D.colSpan++;if (A[i][j+1]!=D) D._colScanned=true;}};for (var i=0;i&lt;=E;i++){for (var j=0;j&lt;A.length;j++){if (!A[j]) continue;var D=A[j][i];if (!D||D._rowScanned===true) continue;if (A[j-1]&amp;&amp;A[j-1][i]==D) D[C]++;if (!A[j+1]||A[j+1][i]!=D) D._rowScanned=true;}};for (var i=0;i&lt;A.length;i++){for (var j=0;j&lt;A[i].length;j++){var D=A[i][j];FCKDomTools.ClearElementJSProperty(D,'_colScanned');FCKDomTools.ClearElementJSProperty(D,'_rowScanned');}};for (var i=0;i&lt;A.length;i++){var I=FCK.EditorDocument.createElement('tr');for (var j=0;j&lt;A[i].length;){var D=A[i][j];if (A[i-1]&amp;&amp;A[i-1][j]==D){j+=D.colSpan;continue;};I.appendChild(D);if (C!='rowSpan'){D.rowSpan=D[C];D.removeAttribute(C);};j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};if (FCKBrowserInfo.IsIE){B.rows[i].replaceNode(I);}else{B.rows[i].innerHTML='';FCKDomTools.MoveChildren(I,B.rows[i]);}}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i&lt;B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;if (B.parentNode.parentNode!=G.parentNode.parentNode) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};
+FCKTableHandler.GetSelectedCells=function(){if (FCKSelection.GetType()=='Control'){var A=FCKSelection.MoveToAncestorNode(['TD','TH']);return A?[A]:[];};var B=[];var C=FCKSelection.GetSelection().createRange();var D=FCKSelection.GetParentElement();if (D&amp;&amp;D.tagName.Equals('TD','TH')) B[0]=D;else{D=FCKSelection.MoveToAncestorNode('TABLE');if (D){for (var i=0;i&lt;D.cells.length;i++){var E=FCK.EditorDocument.body.createTextRange();E.moveToElementText(D.cells[i]);if (C.inRange(E)||(C.compareEndPoints('StartToStart',E)&gt;=0&amp;&amp;C.compareEndPoints('StartToEnd',E)&lt;=0)||(C.compareEndPoints('EndToStart',E)&gt;=0&amp;&amp;C.compareEndPoints('EndToEnd',E)&lt;=0)){B[B.length]=D.cells[i];}}}};return B;};
 var FCKXml=function(){this.Error=false;};FCKXml.GetAttribute=function(A,B,C){var D=A.attributes.getNamedItem(B);return D?D.value:C;};FCKXml.TransformToObject=function(A){if (!A) return null;var B={};var C=A.attributes;for (var i=0;i&lt;C.length;i++){var D=C[i];B[D.name]=D.value;};var E=A.childNodes;for (i=0;i&lt;E.length;i++){var F=E[i];if (F.nodeType==1){var G='$'+F.nodeName;var H=B[G];if (!H) H=B[G]=[];H.push(this.TransformToObject(F));}};return B;};
 FCKXml.prototype={LoadUrl:function(A){this.Error=false;var B=FCKTools.CreateXmlObject('XmlHttp');if (!B){this.Error=true;return;};B.open(&quot;GET&quot;,A,false);B.send(null);if (B.status==200||B.status==304||(B.status==0&amp;&amp;B.readyState==4)){this.DOMDocument=B.responseXML;if (!this.DOMDocument||this.DOMDocument.firstChild==null){this.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');this.DOMDocument.async=false;this.DOMDocument.resolveExternals=false;this.DOMDocument.loadXML(B.responseText);}}else{this.DOMDocument=null;};if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading &quot;'+A+'&quot;\r\nDo you want to see more info?')) alert('URL requested: &quot;'+A+'&quot;\r\nServer response:\r\nStatus: '+B.status+'\r\nResponse text:\r\n'+B.responseText);}},SelectNodes:function(A,B){if (this.Error) return [];if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);},SelectSingleNode:function(A,B){if (this.Error) return null;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);}};
 var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState(this.Name);};
 var FCKStyleCommand=function(){};FCKStyleCommand.prototype={Name:'Style',Execute:function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) FCK.Styles.RemoveStyle(B.Style);else FCK.Styles.ApplyStyle(B.Style);FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorDocument) return -1;if (FCKSelection.GetType()=='Control'){var A=FCKSelection.GetSelectedElement();if (!A||!FCKStyles.CheckHasObjectStyle(A.nodeName.toLowerCase())) return -1;};return 0;}};
-var FCKDialogCommand=function(A,B,C,D,E,F,G,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&amp;&amp;B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetData('');FCKUndo.Typing=true;FCK.Focus();};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='&lt;span style=&quot;DISPLAY:none&quot;&gt;&amp;nbsp;&lt;/span&gt;';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState(this.Name);if (A==0&amp;&amp;FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&amp;&amp;B.name.length&gt;0&amp;&amp;B.href.length==0);if (C) A=-1;};return A;};FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1:FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&amp;&amp;A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};var FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&amp;&amp;B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i&lt;A.length;i++) FCKDomTools.RemoveNode(A[i],true);B.MoveToBookmark(C);B.Select();}};var FCKNbsp=function(){this.Name='Non Breaking Space';};FCKNbsp.prototype={Execute:function(){FCK.InsertHtml('&amp;nbsp;');},GetState:function(){return (FCK.EditMode!=0?-1:0);}};
-var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';if (FCKBrowserInfo.IsIE){try{FCK.EditorDocument.selection.createRange().select();}catch (e){}}else{var C=FCK.EditorWindow.getSelection().focusNode;if (C.nodeType!=1) C=C.parentNode;FCKDomTools.ScrollIntoView(C,false);};FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&amp;&amp;this.GetState()!=this._SavedState) this.Execute();};
-var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='ieSpell'||FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'ieSpell':this._RunIeSpell();break;case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;}};FCKSpellCheckCommand.prototype._RunIeSpell=function(){try{var A=new ActiveXObject(&quot;ieSpell.ieSpellExtension&quot;);A.CheckAllLinkedDocuments(FCK.EditorDocument);}catch(e){if(e.number==-2146827859){if (confirm(FCKLang.IeSpellDownload)) window.open(FCKConfig.IeSpellDownloadUrl,'IeSpellDownload');}else alert('Error Loading ieSpell: '+e.message+' ('+e.number+')');}};FCKSpellCheckCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return this.IsEnabled?0:-1;};
+var FCKDialogCommand=function(A,B,C,D,E,F,G,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&amp;&amp;B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetData('');FCKUndo.Typing=true;FCK.Focus();};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='&lt;span style=&quot;DISPLAY:none&quot;&gt;&amp;nbsp;&lt;/span&gt;';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState(this.Name);if (A==0&amp;&amp;FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&amp;&amp;B.name.length&gt;0&amp;&amp;B.href.length==0);if (C) A=-1;};return A;};var FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1:FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&amp;&amp;A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};var FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&amp;&amp;B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i&lt;A.length;i++) FCKDomTools.RemoveNode(A[i],true);B.MoveToBookmark(C);B.Select();}};var FCKNbsp=function(){this.Name='Non Breaking Space';};FCKNbsp.prototype={Execute:function(){FCK.InsertHtml('&amp;nbsp;');},GetState:function(){return (FCK.EditMode!=0?-1:0);}};
+var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';if (FCKBrowserInfo.IsIE){try{FCK.EditorDocument.selection.createRange().select();}catch (e){}}else{var C=FCK.EditorWindow.getSelection().focusNode;if (C){if (C.nodeType!=1) C=C.parentNode;FCKDomTools.ScrollIntoView(C,false);}};FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&amp;&amp;this.GetState()!=this._SavedState) this.Execute();};
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=true;};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'ieSpell':this._RunIeSpell();break;case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;case 'WSC':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','wsc/w.html',530,480);}};FCKSpellCheckCommand.prototype._RunIeSpell=function(){try{var A=new ActiveXObject(&quot;ieSpell.ieSpellExtension&quot;);A.CheckAllLinkedDocuments(FCK.EditorDocument);}catch(e){if(e.number==-2146827859){if (confirm(FCKLang.IeSpellDownload)) window.open(FCKConfig.IeSpellDownloadUrl,'IeSpellDownload');}else alert('Error Loading ieSpell: '+e.message+' ('+e.number+')');}};FCKSpellCheckCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return this.IsEnabled?0:-1;};
 var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B);this._Panel.AppendStyleSheet(FCKConfig.SkinEditorCSS);this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCK.ToolbarSet.ToolbarItems.GetItem(this.Name).RegisterPanel(this._Panel);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){FCKUndo.SaveUndoStep();var B=FCKStyles.GetStyle('_FCK_'+(this.Type=='ForeColor'?'Color':'BackColor'));if (!A||A.length==0) FCK.Styles.RemoveStyle(B);else{B.SetVariable('Color',A);FCKStyles.ApplyStyle(B);};FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');};FCKTextColorCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};function FCKTextColorCommand_OnMouseOver(){this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut(){this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(A,B,C){this.className='ColorDeselected';B.SetColor(C);B._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(A,B){this.className='ColorDeselected';B.SetColor('');B._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(A,B){this.className='ColorDeselected';B._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',410,320,FCKTools.Bind(B,B.SetColor));};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement(&quot;DIV&quot;);C.className='ColorDeselected';FCKTools.AddEventListenerEx(C,'mouseover',FCKTextColorCommand_OnMouseOver);FCKTools.AddEventListenerEx(C,'mouseout',FCKTextColorCommand_OnMouseOut);return C;};var D=B.appendChild(A.createElement(&quot;TABLE&quot;));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; border=&quot;0&quot;&gt;\n			&lt;tr&gt;\n				&lt;td&gt;&lt;div class=&quot;ColorBoxBorder&quot;&gt;&lt;div class=&quot;ColorBox&quot; style=&quot;background-color: #000000&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;\n				&lt;td nowrap width=&quot;100%&quot; align=&quot;center&quot;&gt;'+FCKLang.ColorAutomatic+'&lt;/td&gt;\n			&lt;/tr&gt;\n		&lt;/table&gt;';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H&lt;G.length){var I=D.insertRow(-1);for (var i=0;i&lt;8;i++,H++){if (H&lt;G.length){var J=G[H].split('/');var K='#'+J[0];var L=J[1]||K;};C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.innerHTML='&lt;div class=&quot;ColorBoxBorder&quot;&gt;&lt;div class=&quot;ColorBox&quot; style=&quot;background-color: '+K+'&quot;&gt;&lt;/div&gt;&lt;/div&gt;';if (H&gt;=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='&lt;table width=&quot;100%&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td nowrap align=&quot;center&quot;&gt;'+FCKLang.ColorMoreColors+'&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';};
 var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');};
 var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCK.EditMode!=0||FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
 var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&amp;&amp;FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&amp;&amp;FCKTableHandler.GetSelectedCells().length&gt;1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;};
-var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;var H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();var I=FCKTools.GetScrollPosition(FCK.EditorWindow);if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var J=FCKTools.GetViewPaneSize(C);B.position=&quot;absolute&quot;;A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left=&quot;0px&quot;;B.top=&quot;0px&quot;;B.width=J.Width+&quot;px&quot;;B.height=J.Height+&quot;px&quot;;if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom=&quot;9999px solid white&quot;;B.backgroundColor=&quot;white&quot;;};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+&quot;px&quot;;if (K.y!=0) B.top=(-1*K.y)+&quot;px&quot;;this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent(&quot;onresize&quot;,FCKFitWindow_Resize);else C.removeEventListener(&quot;resize&quot;,FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();H.Select();FCK.EditorWindow.scrollTo(I.X,I.Y);};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;var H,oEditorScrollPos;if (FCK.EditMode==0){H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();oEditorScrollPos=FCKTools.GetScrollPosition(FCK.EditorWindow);}else{var I=FCK.EditingArea.Textarea;H=!FCKBrowserInfo.IsIE&amp;&amp;[I.selectionStart,I.selectionEnd];oEditorScrollPos=[I.scrollLeft,I.scrollTop];};if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var J=FCKTools.GetViewPaneSize(C);B.position=&quot;absolute&quot;;A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left=&quot;0px&quot;;B.top=&quot;0px&quot;;B.width=J.Width+&quot;px&quot;;B.height=J.Height+&quot;px&quot;;if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom=&quot;9999px solid white&quot;;B.backgroundColor=&quot;white&quot;;};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+&quot;px&quot;;if (K.y!=0) B.top=(-1*K.y)+&quot;px&quot;;this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent(&quot;onresize&quot;,FCKFitWindow_Resize);else C.removeEventListener(&quot;resize&quot;,FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();if (FCK.EditMode==0){H.Select();FCK.EditorWindow.scrollTo(oEditorScrollPos.X,oEditorScrollPos.Y);}else{if (!FCKBrowserInfo.IsIE){I.selectionStart=H[0];I.selectionEnd=H[1];};I.scrollLeft=oEditorScrollPos[0];I.scrollTop=oEditorScrollPos[1];}};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
 var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&amp;&amp;B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i&gt;=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCKSelection.GetSelection();if (T&amp;&amp;F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&amp;&amp;i&lt;T.rangeCount;i++) K.push(T.getRangeAt(i));};if (K.length&lt;1) J=false;else{var U=FCKW3CRange.CreateFromRange(A,K.shift());B._Range=U;B._UpdateElementInfo();if (B.StartNode.nodeName.IEquals('td')) B.SetStart(B.StartNode,1);if (B.EndNode.nodeName.IEquals('td')) B.SetEnd(B.EndNode,2);H=new FCKDomRangeIterator(B);H.ForceBrBreak=(C==0);}}};var W=[];while (F.length&gt;0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&amp;&amp;Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;i&lt;W.length;i++){var M=W[i];var Z=false;var a=M;while (!Z){a=a.nextSibling;if (a&amp;&amp;a.nodeType==3&amp;&amp;a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&amp;&amp;a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.firstChild) M.appendChild(a.removeChild(a.firstChild));};Z=false;a=M;while (!Z){a=a.previousSibling;if (a&amp;&amp;a.nodeType==3&amp;&amp;a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&amp;&amp;a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.lastChild) M.insertBefore(a.removeChild(a.lastChild),M.firstChild);}};FCKDomTools.ClearAllMarkers(G);B.MoveToBookmark(E);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},_ChangeListType:function(A,B,C){var D=FCKDomTools.ListToArray(A.root,B);var E=[];for (var i=0;i&lt;A.contents.length;i++){var F=A.contents[i];F=FCKTools.GetElementAscensor(F,'li');if (!F||F._FCK_ListItem_Processed) continue;E.push(F);FCKDomTools.SetElementMarker(B,F,'_FCK_ListItem_Processed',true);};var G=FCKTools.GetElementDocument(A.root).createElement(this.TagName);for (var i=0;i&lt;E.length;i++){var H=E[i]._FCK_ListArray_Index;D[H].parent=G;};var I=FCKDomTools.ArrayToList(D,B);for (var i=0;i&lt;I.listNode.childNodes.length;i++){if (I.listNode.childNodes[i].nodeName.IEquals(this.TagName)) C.push(I.listNode.childNodes[i]);};A.root.parentNode.replaceChild(I.listNode,A.root);},_CreateList:function(A,B){var C=A.contents;var D=FCKTools.GetElementDocument(A.root);var E=[];if (C.length==1&amp;&amp;C[0]==A.root){var F=D.createElement('div');while (C[0].firstChild) F.appendChild(C[0].removeChild(C[0].firstChild));C[0].appendChild(F);C[0]=F;};var G=A.contents[0].parentNode;for (var i=0;i&lt;C.length;i++) G=FCKDomTools.GetCommonParents(G,C[i].parentNode).pop();for (var i=0;i&lt;C.length;i++){var H=C[i];while (H.parentNode){if (H.parentNode==G){E.push(H);break;};H=H.parentNode;}};if (E.length&lt;1) return;var I=E[E.length-1].nextSibling;var J=D.createElement(this.TagName);B.push(J);while (E.length){var K=E.shift();var L=D.createDocumentFragment();while (K.firstChild) L.appendChild(K.removeChild(K.firstChild));K.parentNode.removeChild(K);var M=D.createElement('li');M.appendChild(L);J.appendChild(M);};G.insertBefore(J,I);},_RemoveList:function(A,B){var C=FCKDomTools.ListToArray(A.root,B);var D=[];for (var i=0;i&lt;A.contents.length;i++){var E=A.contents[i];E=FCKTools.GetElementAscensor(E,'li');if (!E||E._FCK_ListItem_Processed) continue;D.push(E);FCKDomTools.SetElementMarker(B,E,'_FCK_ListItem_Processed',true);};var F=null;for (var i=0;i&lt;D.length;i++){var G=D[i]._FCK_ListArray_Index;C[G].indent=-1;F=G;};for (var i=F+1;i&lt;C.length;i++){if (C[i].indent&gt;C[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&amp;&amp;C[i].indent&gt;=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}};
 var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&amp;&amp;B=='ltr')||(A=='right'&amp;&amp;B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0]||null;case 'center':return D[1]||null;case 'right':return D[2]||null;case 'justify':return D[3]||null;}};return null;})();if (C&amp;&amp;C.length&gt;0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i&lt;4;i++){var D=C[i];if (D&amp;&amp;D.length&gt;0) B.push(D);}};if (B.length&gt;0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length&gt;0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&amp;&amp;this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}};
 var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&amp;&amp;FCKConfig.IndentClasses.length&gt;0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i&lt;FCKConfig.IndentClasses.length;i++) this._IndentClassMap[FCKConfig.IndentClasses[i]]=i+1;this._ClassNameRegex=new RegExp('(?:^|\\s+)('+FCKConfig.IndentClasses.join('|')+')(?=$|\\s)');}else this._UseIndentClasses=false;};FCKIndentCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=A.CreateBookmark();var C=FCKDomTools.GetCommonParentNode(A.StartNode||A.StartContainer,A.EndNode||A.EndContainer,['ul','ol']);if (C) this._IndentList(A,C);else this._IndentBlock(A);A.MoveToBookmark(B);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;if (FCKIndentCommand._UseIndentClasses==undefined) FCKIndentCommand._InitIndentModeParameters();var A=FCKSelection.GetBoundaryParentElement(true);var B=FCKSelection.GetBoundaryParentElement(false);var C=FCKDomTools.GetCommonParentNode(A,B,['ul','ol']);if (C){if (this.Name.IEquals('outdent')) return 0;var D=FCKTools.GetElementAscensor(A,'li');if (!D||!D.previousSibling) return -1;return 0;};if (!FCKIndentCommand._UseIndentClasses&amp;&amp;this.Name.IEquals('indent')) return 0;var E=new FCKElementPath(A);var F=E.Block||E.BlockLimit;if (!F) return -1;if (FCKIndentCommand._UseIndentClasses){var G=F.className.match(FCKIndentCommand._ClassNameRegex);var H=0;if (G!=null){G=G[1];H=FCKIndentCommand._IndentClassMap[G];};if ((this.Name=='outdent'&amp;&amp;H==0)||(this.Name=='indent'&amp;&amp;H==FCKConfig.IndentClasses.length)) return -1;return 0;}else{var I=parseInt(F.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;if (I&lt;=0) return -1;return 0;}},_IndentBlock:function(A){var B=new FCKDomRangeIterator(A);B.EnforceRealBlocks=true;A.Expand('block_contents');var C=FCKDomTools.GetCommonParents(A.StartContainer,A.EndContainer);var D=C[C.length-1];var E;while ((E=B.GetNextParagraph())){if (!(E==D||E.parentNode==D)) continue;if (FCKIndentCommand._UseIndentClasses){var F=E.className.match(FCKIndentCommand._ClassNameRegex);var G=0;if (F!=null){F=F[1];G=FCKIndentCommand._IndentClassMap[F];};if (this.Name.IEquals('outdent')) G--;else if (this.Name.IEquals('indent')) G++;G=Math.min(G,FCKConfig.IndentClasses.length);G=Math.max(G,0);var H=E.className.replace(FCKIndentCommand._ClassNameRegex,'');if (G&lt;1) E.className=H;else E.className=(H.length&gt;0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&amp;&amp;C.parentNode!=B) C=C.parentNode;while (D&amp;&amp;D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length&lt;1) return;var H=FCKDomTools.GetParents(B);for (var i=0;i&lt;H.length;i++){if (H[i].nodeName.IEquals(['ul','ol'])){B=H[i];break;}};var I=this.Name.IEquals('indent')?1:-1;var J=F[0];var K=F[F.length-1];var L={};var M=FCKDomTools.ListToArray(B,L);var N=M[K._FCK_ListArray_Index].indent;for (var i=J._FCK_ListArray_Index;i&lt;=K._FCK_ListArray_Index;i++) M[i].indent+=I;for (var i=K._FCK_ListArray_Index+1;i&lt;M.length&amp;&amp;M[i].indent&gt;N;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}};
-var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&amp;&amp;D.parentNode.nodeName.IEquals('blockquote')&amp;&amp;!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&amp;&amp;E.parentNode.nodeName.IEquals('blockquote')&amp;&amp;!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length&lt;1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i&lt;I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();};var L=null;while (I.length&gt;0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;}while (K.length&gt;0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=FCKTools.GetElementDocument(H).createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length&gt;0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&amp;&amp;Q) O.push(Q);};var R=[];while (O.length&gt;0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(S).createDocumentFragment();var Y=W&amp;&amp;S.previousSibling&amp;&amp;!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&amp;&amp;Y) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));var Z=S.nextSibling&amp;&amp;!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i&lt;A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}};
+var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&amp;&amp;D.parentNode.nodeName.IEquals('blockquote')&amp;&amp;!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&amp;&amp;E.parentNode.nodeName.IEquals('blockquote')&amp;&amp;!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length&lt;1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i&lt;I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();}while (J.nodeName.IEquals('table','tbody','tr','ol','ul')) J=J.parentNode;var L=null;while (I.length&gt;0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;}while (K.length&gt;0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=FCKTools.GetElementDocument(H).createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length&gt;0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];var P={};while ((H=G.GetNextParagraph())){var Q=null;var R=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){Q=H.parentNode;R=H;break;};H=H.parentNode;};if (Q&amp;&amp;R&amp;&amp;!R._fckblockquotemoveout){O.push(R);FCKDomTools.SetElementMarker(P,R,'_fckblockquotemoveout',true);}};FCKDomTools.ClearAllMarkers(P);var S=[];var T=[],P={};var U=function(N){for (var i=0;i&lt;N.childNodes.length;i++){if (FCKListsLib.BlockElements[N.childNodes[i].nodeName.toLowerCase()]) return false;};return true;};while (O.length&gt;0){var W=O.shift();var N=W.parentNode;if (W==W.parentNode.firstChild) N.parentNode.insertBefore(N.removeChild(W),N);else if (W==W.parentNode.lastChild) N.parentNode.insertBefore(N.removeChild(W),N.nextSibling);else FCKDomTools.BreakParent(W,W.parentNode,B);if (!N._fckbqprocessed){T.push(N);FCKDomTools.SetElementMarker(P,N,'_fckbqprocessed',true);};S.push(W);};for (var i=T.length-1;i&gt;=0;i--){var N=T[i];if (U(N)) FCKDomTools.RemoveNode(N);};FCKDomTools.ClearAllMarkers(P);if (FCKConfig.EnterMode.IEquals('br')){while (S.length){var W=S.shift();var a=true;if (W.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(W).createDocumentFragment();var c=a&amp;&amp;W.previousSibling&amp;&amp;!FCKListsLib.BlockBoundaries[W.previousSibling.nodeName.toLowerCase()];if (a&amp;&amp;c) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));var d=W.nextSibling&amp;&amp;!FCKListsLib.BlockBoundaries[W.nextSibling.nodeName.toLowerCase()];while (W.firstChild) M.appendChild(W.removeChild(W.firstChild));if (d) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));W.parentNode.replaceChild(M,W);a=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i&lt;A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}};
 var FCKCoreStyleCommand=function(A){this.Name='CoreStyle';this.StyleName='_FCK_'+A;this.IsActive=false;FCKStyles.AttachStyleStateChange(this.StyleName,this._OnStyleStateChange,this);};FCKCoreStyleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();if (this.IsActive) FCKStyles.RemoveStyle(this.StyleName);else FCKStyles.ApplyStyle(this.StyleName);FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0) return -1;return this.IsActive?1:0;},_OnStyleStateChange:function(A,B){this.IsActive=B;}};
 var FCKRemoveFormatCommand=function(){this.Name='RemoveFormat';};FCKRemoveFormatCommand.prototype={Execute:function(){FCKStyles.RemoveAll();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return FCK.EditorWindow?0:-1;}};
 var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'Bold':case 'Italic':case 'Underline':case 'StrikeThrough':case 'Subscript':case 'Superscript':B=new FCKCoreStyleCommand(A);break;case 'RemoveFormat':B=new FCKRemoveFormatCommand();break;case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,380,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,300);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'VisitLink':B=new FCKVisitLinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,160);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,160);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,160);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',420,330,function(){ return 0;});break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Find');break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Replace');break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,390);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,390);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,290);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',480,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',480,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,240);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'Rule':B=new FCKRuleCommand();break;case 'Nbsp':B=new FCKNbsp();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'JustifyLeft':B=new FCKJustifyCommand('left');break;case 'JustifyCenter':B=new FCKJustifyCommand('center');break;case 'JustifyRight':B=new FCKJustifyCommand('right');break;case 'JustifyFull':B=new FCKJustifyCommand('justify');break;case 'Indent':B=new FCKIndentCommand('indent',FCKConfig.IndentLength);break;case 'Outdent':B=new FCKIndentCommand('outdent',FCKConfig.IndentLength*-1);break;case 'Blockquote':B=new FCKBlockQuoteCommand();break;case 'CreateDiv':B=new FCKDialogCommand('CreateDiv',FCKLang.CreateDiv,'dialog/fck_div.html',380,210,null,null,true);break;case 'EditDiv':B=new FCKDialogCommand('EditDiv',FCKLang.EditDiv,'dialog/fck_div.html',380,210,null,null,false);break;case 'DeleteDiv':B=new FCKDeleteDivCommand();break;case 'TableInsertRowAfter':B=new FCKTableCommand('TableInsertRowAfter');break;case 'TableInsertRowBefore':B=new FCKTableCommand('TableInsertRowBefore');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumnAfter':B=new FCKTableCommand('TableInsertColumnAfter');break;case 'TableInsertColumnBefore':B=new FCKTableCommand('TableInsertColumnBefore');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCellAfter':B=new FCKTableCommand('TableInsertCellAfter');break;case 'TableInsertCellBefore':B=new FCKTableCommand('TableInsertCellBefore');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableMergeRight':B=new FCKTableCommand('TableMergeRight');break;case 'TableMergeDown':B=new FCKTableCommand('TableMergeDown');break;case 'TableHorizontalSplitCell':B=new FCKTableCommand('TableHorizontalSplitCell');break;case 'TableVerticalSplitCell':B=new FCKTableCommand('TableVerticalSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,210);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,200);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,200);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,210);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,210);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,190);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,210);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,340);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,390);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'Copy':B=new FCKCutCopyCommand(false);break;case 'Cut':B=new FCKCutCopyCommand(true);break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'InsertOrderedList':B=new FCKListCommand('insertorderedlist','ol');break;case 'InsertUnorderedList':B=new FCKListCommand('insertunorderedlist','ul');break;case 'ShowBlocks':B=new FCKShowBlockCommand('ShowBlocks',FCKConfig.StartupShowBlocks?1:0);break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};FCKCommands.GetBooleanState=function(A){return A?-1:0;};
-var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');FCKTools.ResetStyles(D);D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.style.width=D.style.height='0px';FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='&lt;base href=&quot;'+window.document.location+'&quot;&gt;';B.open();B.write('&lt;html&gt;&lt;head&gt;'+F+'&lt;\/head&gt;&lt;body style=&quot;margin:0px;padding:0px;&quot;&gt;&lt;\/body&gt;&lt;\/html&gt;');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKBrowserInfo.IsGecko&amp;&amp;FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&amp;&amp;FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&amp;&amp;!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)&gt;L) x-=x+D-L;if ((y+E.offsetHeight)&gt;K) y-=y+E.offsetHeight-K;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.style.width=N+'px';M._IFrame.style.height=O+'px';},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter&gt;0) return;if (typeof(FCKFocusManager)!='undefined'&amp;&amp;!B) FCKFocusManager.Unlock();this._IFrame.style.width=this._IFrame.style.height='0px';this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&amp;&amp;!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;};
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&amp;&amp;!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');FCKTools.ResetStyles(D);D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.style.width=D.style.height='0px';FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='&lt;base href=&quot;'+window.document.location+'&quot;&gt;';B.open();B.write('&lt;html&gt;&lt;head&gt;'+F+'&lt;\/head&gt;&lt;body style=&quot;margin:0px;padding:0px;&quot;&gt;&lt;\/body&gt;&lt;\/html&gt;');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.ResizeForSubpanel=function(A,B,C){if (!FCKBrowserInfo.IsIE7) return false;if (!this._Popup.isOpen){this.Subpanel=null;return false;};if (B==0&amp;&amp;C==0){if (this.Subpanel!==A) return false;this.Subpanel=null;this.IncreasedX=0;}else{this.Subpanel=A;if ((this.IncreasedX&gt;=B)&amp;&amp;(this.IncreasedY&gt;=C)) return false;this.IncreasedX=Math.max(this.IncreasedX,B);this.IncreasedY=Math.max(this.IncreasedY,C);};var x=this.ShowRect.x;var w=this.IncreasedX;if (this.IsRTL) x=x-w;var D=this.ShowRect.w+w;var E=Math.max(this.ShowRect.h,this.IncreasedY);if (this.ParentPanel) this.ParentPanel.ResizeForSubpanel(this,D,E);this._Popup.show(x,this.ShowRect.y,D,E,this.RelativeElement);return this.IsRTL;};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (FCKBrowserInfo.IsIE7){if (this.ParentPanel&amp;&amp;this.ParentPanel.ResizeForSubpanel(this,D,E.offsetHeight)){FCKTools.RunFunction(this.Show,this,[x,y,A]);return;}};if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};if (FCKBrowserInfo.IsIE7){this.ShowRect={x:x,y:y,w:D,h:E.offsetHeight};this.IncreasedX=0;this.IncreasedY=0;this.RelativeElement=A;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKBrowserInfo.IsGecko&amp;&amp;FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&amp;&amp;FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&amp;&amp;!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)&gt;L) x-=x+D-L;if ((y+E.offsetHeight)&gt;K) y-=y+E.offsetHeight-K;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.style.width=N+'px';M._IFrame.style.height=O+'px';},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter&gt;0) return;if (typeof(FCKFocusManager)!='undefined'&amp;&amp;!B) FCKFocusManager.Unlock();this._IFrame.style.width=this._IFrame.style.height='0px';this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&amp;&amp;!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;if (this._Popup&amp;&amp;this.ParentPanel&amp;&amp;!A) this.ParentPanel.ResizeForSubpanel(this,0,0);FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;this.RelativeElement=null;};
 var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url(&quot;'+this.Path+'&quot;)';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;};
 var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&amp;&amp;!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&amp;&amp;this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&amp;&amp;B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;};
 var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];else this.IconPath=G;};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=this._UIButton;if (!A) return;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B==A.State) return;A.ChangeState(B);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);};
@@ -98,12 +98,12 @@ var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterIt
 var FCKToolbar=function(){this.Items=[];};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var e=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;var C=e.insertRow(-1);var D;if (!this.HideStart){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i&lt;this.Items.length;i++){this.Items[i].Create(C.insertCell(-1));};if (!this.HideEnd){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';};
 var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A).createElement('div');B.className='TB_Break';B.style.clear=FCKLang.Dir=='rtl'?'left':'right';A.appendChild(B);};
 function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;case 'None':B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_GetOutElement(window,E);else D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for &quot;ToolbarLocation&quot;');return arguments.callee('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.src='javascript:void(0)';F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;var H='';if (FCKBrowserInfo.IsSafari) H='&lt;base href=&quot;'+window.document.location+'&quot;&gt;';G.open();G.write('&lt;html&gt;&lt;head&gt;'+H+'&lt;script type=&quot;text/javascript&quot;&gt; var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = window.onload = function(){var timer = null;var lastHeight = -1;var lastChange = 0;var poller = function(){var currentHeight = document.body.scrollHeight || 0;var currentTime = (new Date()).getTime();if (currentHeight != lastHeight){lastChange = currentTime;adjust();lastHeight = document.body.scrollHeight;}if (lastChange &lt; currentTime - 1000) clearInterval(timer);};timer = setInterval(poller, 100);}&lt;/script&gt;&lt;/head&gt;&lt;body style=&quot;overflow: hidden&quot;&gt;'+document.getElementById('xToolbarSpace').innerHTML+'&lt;/body&gt;&lt;/html&gt;');G.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_InitOutFrame(G);FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinEditorCSS);B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;if (!B.ToolbarItems) B.ToolbarItems=FCKToolbarItems;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',FCKToolbarSet_Collapse_OnClick);if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x&lt;B.length;x++){var C=B[x];if (!C) continue;var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j&lt;C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i&lt;A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i&lt;A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i&lt;C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j&lt;C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i&lt;B.length;i++) B[i].RefreshState();};
-var FCKDialog=(function(){var A;var B;var C;var D=window.parent;while (D.parent&amp;&amp;D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length&gt;0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save();var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&amp;&amp;(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');FCKTools.ResetStyles(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&amp;&amp;!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');FCKTools.ResetStyles(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},GetCover:function(){return C;}};})();
+var FCKDialog=(function(){var A;var B;var C;var D=window.parent;while (D.parent&amp;&amp;D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length&gt;0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save(true);var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&amp;&amp;(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');FCKTools.ResetStyles(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&amp;&amp;!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');FCKTools.ResetStyles(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},GetCover:function(){return C;}};})();
 var FCKMenuItem=function(A,B,C,D,E,F){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);this.CustomData=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D,E){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D,E);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;};
 var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D,E){var F=new FCKMenuItem(this,A,B,C,D,E);F.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);F.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(F);return F;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length&gt;0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i&lt;this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){if (B.Hide) B.Hide();FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&amp;&amp;B!=this){if (!FCKBrowserInfo.IsIE&amp;&amp;B.HasSubMenu&amp;&amp;!this.HasSubMenu){A._Window.focus();A.Panel.HasFocus=true;};B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';};
 var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&amp;&amp;this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinEditorCSS);FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();};
 var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinEditorCSS);C.IsContextMenu=true;if (FCKBrowserInfo.IsGecko) C.Document.addEventListener('draggesture',function(e) {e.preventDefault();return false;},true);var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;if (FCKBrowserInfo.IsOpera&amp;&amp;!('oncontextmenu' in document.createElement('foo'))){this._Document.addEventListener('mousedown',FCKContextMenu_Document_OnMouseDown,false);this._Document.addEventListener('mouseup',FCKContextMenu_Document_OnMouseUp,false);};this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D,E){var F=this._MenuBlock.AddItem(A,B,C,D,E);this._Redraw=true;return F;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){if (FCKConfig.BrowserContextMenu) return true;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&amp;&amp;(e.ctrlKey||e.metaKey)) return true;FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);return false;};A=A.parentNode;};return true;};var FCKContextMenu_OverrideButton;function FCKContextMenu_Document_OnMouseDown(e){if(!e||e.button!=2) return false;if (FCKConfig.BrowserContextMenu) return true;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&amp;&amp;(e.ctrlKey||e.metaKey)) return true;var B=FCKContextMenu_OverrideButton;if(!B){var C=FCKTools.GetElementDocument(e.target);B=FCKContextMenu_OverrideButton=C.createElement('input');B.type='button';var D=C.createElement('p');C.body.appendChild(D);D.appendChild(B);};B.style.cssText='position:absolute;top:'+(e.clientY-2)+'px;left:'+(e.clientX-2)+'px;width:5px;height:5px;opacity:0.01';};A=A.parentNode;};return false;};function FCKContextMenu_Document_OnMouseUp(e){if (FCKConfig.BrowserContextMenu) return true;var A=FCKContextMenu_OverrideButton;if (A){var B=A.parentNode;B.parentNode.removeChild(B);FCKContextMenu_OverrideButton=undefined;if(e&amp;&amp;e.button==2){FCKContextMenu_Document_OnContextMenu(e);return false;}};return true;};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if ((B.CtrlDisable&amp;&amp;(A.ctrlKey||A.metaKey))||FCKConfig.BrowserContextMenu) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);var x=0;var y=0;if (FCKBrowserInfo.IsIE){x=A.screenX;y=A.screenY;}else if (FCKBrowserInfo.IsSafari){x=A.clientX;y=A.clientY;}else{x=A.pageX;y=A.pageY;};B._Panel.Show(x,y,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);};
-FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i&lt;FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&amp;&amp;FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&amp;&amp;F.name.length&gt;0&amp;&amp;F.href.length==0);if (G) return;menu.AddSeparator();menu.AddItem('VisitLink',FCKLang.VisitLink);menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&amp;&amp;F.name.length&gt;0);if (G||(tagName=='IMG'&amp;&amp;tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length&gt;0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDiv,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i&lt;C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute(A.CustomData);};
+FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i&lt;FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&amp;&amp;FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&amp;&amp;F.name.length&gt;0&amp;&amp;F.href.length==0);if (G) return;menu.AddSeparator();menu.AddItem('VisitLink',FCKLang.VisitLink);menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&amp;&amp;F.name.length&gt;0);if (G||(tagName=='IMG'&amp;&amp;tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&amp;&amp;tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&amp;&amp;(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length&gt;0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDiv,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i&lt;C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){if (!FCKBrowserInfo.IsIE) FCK.Focus();FCKCommands.GetCommand(A.Name).Execute(A.CustomData);};
 var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D=&quot;&quot;;if (B){if (B.index&gt;0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D=&quot;&quot;;if (B){if (B.index&gt;0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};
 var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length&gt;0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)&gt;=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');};
 var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i&lt;FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;};</diff>
      <filename>public/javascripts/fckeditor/editor/js/fckeditorcode_ie.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -21,58 +21,59 @@
  * Translations Status.
  */
 
-af.js      Found: 396   Missing: 24
-ar.js      Found: 411   Missing: 9
-bg.js      Found: 373   Missing: 47
-bn.js      Found: 380   Missing: 40
-bs.js      Found: 226   Missing: 194
-ca.js      Found: 420   Missing: 0
-cs.js      Found: 420   Missing: 0
-da.js      Found: 381   Missing: 39
-de.js      Found: 419   Missing: 1
-el.js      Found: 396   Missing: 24
-en-au.js   Found: 420   Missing: 0
-en-ca.js   Found: 420   Missing: 0
-en-uk.js   Found: 420   Missing: 0
-eo.js      Found: 346   Missing: 74
-es.js      Found: 420   Missing: 0
-et.js      Found: 411   Missing: 9
-eu.js      Found: 411   Missing: 9
-fa.js      Found: 413   Missing: 7
-fi.js      Found: 411   Missing: 9
-fo.js      Found: 420   Missing: 0
-fr-ca.js   Found: 419   Missing: 1
-fr.js      Found: 420   Missing: 0
-gl.js      Found: 381   Missing: 39
-gu.js      Found: 411   Missing: 9
-he.js      Found: 420   Missing: 0
-hi.js      Found: 420   Missing: 0
-hr.js      Found: 420   Missing: 0
-hu.js      Found: 411   Missing: 9
-it.js      Found: 410   Missing: 10
-ja.js      Found: 420   Missing: 0
-km.js      Found: 370   Missing: 50
-ko.js      Found: 390   Missing: 30
-lt.js      Found: 376   Missing: 44
-lv.js      Found: 381   Missing: 39
-mn.js      Found: 411   Missing: 9
-ms.js      Found: 352   Missing: 68
-nb.js      Found: 414   Missing: 6
-nl.js      Found: 420   Missing: 0
-no.js      Found: 414   Missing: 6
-pl.js      Found: 411   Missing: 9
-pt-br.js   Found: 411   Missing: 9
-pt.js      Found: 381   Missing: 39
-ro.js      Found: 410   Missing: 10
-ru.js      Found: 411   Missing: 9
-sk.js      Found: 396   Missing: 24
-sl.js      Found: 411   Missing: 9
-sr-latn.js Found: 368   Missing: 52
-sr.js      Found: 368   Missing: 52
-sv.js      Found: 409   Missing: 11
-th.js      Found: 393   Missing: 27
-tr.js      Found: 396   Missing: 24
-uk.js      Found: 397   Missing: 23
-vi.js      Found: 419   Missing: 1
-zh-cn.js   Found: 420   Missing: 0
-zh.js      Found: 420   Missing: 0
+af.js      Found: 396   Missing: 32
+ar.js      Found: 420   Missing: 8
+bg.js      Found: 373   Missing: 55
+bn.js      Found: 380   Missing: 48
+bs.js      Found: 226   Missing: 202
+ca.js      Found: 420   Missing: 8
+cs.js      Found: 420   Missing: 8
+da.js      Found: 419   Missing: 9
+de.js      Found: 420   Missing: 8
+el.js      Found: 396   Missing: 32
+en-au.js   Found: 423   Missing: 5
+en-ca.js   Found: 423   Missing: 5
+en-uk.js   Found: 423   Missing: 5
+eo.js      Found: 346   Missing: 82
+es.js      Found: 428   Missing: 0
+et.js      Found: 411   Missing: 17
+eu.js      Found: 420   Missing: 8
+fa.js      Found: 413   Missing: 15
+fi.js      Found: 411   Missing: 17
+fo.js      Found: 420   Missing: 8
+fr-ca.js   Found: 419   Missing: 9
+fr.js      Found: 428   Missing: 0
+gl.js      Found: 381   Missing: 47
+gu.js      Found: 411   Missing: 17
+he.js      Found: 428   Missing: 0
+hi.js      Found: 420   Missing: 8
+hr.js      Found: 420   Missing: 8
+hu.js      Found: 411   Missing: 17
+is.js      Found: 428   Missing: 0
+it.js      Found: 410   Missing: 18
+ja.js      Found: 420   Missing: 8
+km.js      Found: 370   Missing: 58
+ko.js      Found: 390   Missing: 38
+lt.js      Found: 376   Missing: 52
+lv.js      Found: 381   Missing: 47
+mn.js      Found: 411   Missing: 17
+ms.js      Found: 352   Missing: 76
+nb.js      Found: 414   Missing: 14
+nl.js      Found: 420   Missing: 8
+no.js      Found: 414   Missing: 14
+pl.js      Found: 411   Missing: 17
+pt-br.js   Found: 411   Missing: 17
+pt.js      Found: 381   Missing: 47
+ro.js      Found: 410   Missing: 18
+ru.js      Found: 427   Missing: 1
+sk.js      Found: 420   Missing: 8
+sl.js      Found: 411   Missing: 17
+sr-latn.js Found: 368   Missing: 60
+sr.js      Found: 368   Missing: 60
+sv.js      Found: 409   Missing: 19
+th.js      Found: 393   Missing: 35
+tr.js      Found: 428   Missing: 0
+uk.js      Found: 419   Missing: 9
+vi.js      Found: 419   Missing: 9
+zh-cn.js   Found: 428   Missing: 0
+zh.js      Found: 423   Missing: 5</diff>
      <filename>public/javascripts/fckeditor/editor/lang/_translationstatus.txt</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Cell spasieering&quot;,
 DlgTableCellPad		: &quot;Cell buffer&quot;,
 DlgTableCaption		: &quot;Beskreiwing&quot;,
 DlgTableSummary		: &quot;Opsomming&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Cell eienskappe&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Bo&quot;,
 DlgCellVerAlignMiddle	: &quot;Middel&quot;,
 DlgCellVerAlignBottom	: &quot;Onder&quot;,
 DlgCellVerAlignBaseline	: &quot;Baseline&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Rei strekking&quot;,
 DlgCellCollSpan		: &quot;Kolom strekking&quot;,
 DlgCellBackColor	: &quot;Agtergrond Kleur&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/af.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -44,7 +44,7 @@ RemoveFormat		: &quot;&#1573;&#1586;&#1575;&#1604;&#1577; &#1575;&#1604;&#1578;&#1606;&#1587;&#1610;&#1602;&#1575;&#1578;&quot;,
 InsertLinkLbl		: &quot;&#1585;&#1575;&#1576;&#1591;&quot;,
 InsertLink			: &quot;&#1573;&#1583;&#1585;&#1575;&#1580;/&#1578;&#1581;&#1585;&#1610;&#1585; &#1585;&#1575;&#1576;&#1591;&quot;,
 RemoveLink			: &quot;&#1573;&#1586;&#1575;&#1604;&#1577; &#1585;&#1575;&#1576;&#1591;&quot;,
-VisitLink			: &quot;Open Link&quot;,	//MISSING
+VisitLink			: &quot;&#1575;&#1601;&#1578;&#1581; &#1575;&#1604;&#1585;&#1575;&#1576;&#1591;&quot;,
 Anchor				: &quot;&#1573;&#1583;&#1585;&#1575;&#1580;/&#1578;&#1581;&#1585;&#1610;&#1585; &#1573;&#1588;&#1575;&#1585;&#1577; &#1605;&#1585;&#1580;&#1593;&#1610;&#1577;&quot;,
 AnchorDelete		: &quot;&#1573;&#1586;&#1575;&#1604;&#1577; &#1573;&#1588;&#1575;&#1585;&#1577; &#1605;&#1585;&#1580;&#1593;&#1610;&#1577;&quot;,
 InsertImageLbl		: &quot;&#1589;&#1608;&#1585;&#1577;&quot;,
@@ -73,9 +73,9 @@ BlockJustify		: &quot;&#1590;&#1576;&#1591;&quot;,
 DecreaseIndent		: &quot;&#1573;&#1606;&#1602;&#1575;&#1589; &#1575;&#1604;&#1605;&#1587;&#1575;&#1601;&#1577; &#1575;&#1604;&#1576;&#1575;&#1583;&#1574;&#1577;&quot;,
 IncreaseIndent		: &quot;&#1586;&#1610;&#1575;&#1583;&#1577; &#1575;&#1604;&#1605;&#1587;&#1575;&#1601;&#1577; &#1575;&#1604;&#1576;&#1575;&#1583;&#1574;&#1577;&quot;,
 Blockquote			: &quot;&#1575;&#1602;&#1578;&#1576;&#1575;&#1587;&quot;,
-CreateDiv			: &quot;Create Div Container&quot;,	//MISSING
-EditDiv				: &quot;Edit Div Container&quot;,	//MISSING
-DeleteDiv			: &quot;Remove Div Container&quot;,	//MISSING
+CreateDiv			: &quot;&#1573;&#1606;&#1588;&#1575;&#1569; &#1581;&#1575;&#1608;&#1610;&#1577; Div&quot;,
+EditDiv				: &quot;&#1578;&#1593;&#1583;&#1610;&#1604; &#1581;&#1575;&#1608;&#1610;&#1577; Div&quot;,
+DeleteDiv			: &quot;&#1573;&#1586;&#1575;&#1604;&#1577; &#1581;&#1575;&#1608;&#1610;&#1577; Div&quot;,
 Undo				: &quot;&#1578;&#1585;&#1575;&#1580;&#1593;&quot;,
 Redo				: &quot;&#1573;&#1593;&#1575;&#1583;&#1577;&quot;,
 NumberedListLbl		: &quot;&#1578;&#1593;&#1583;&#1575;&#1583; &#1585;&#1602;&#1605;&#1610;&quot;,
@@ -161,7 +161,7 @@ UnknownToolbarSet	: &quot;&#1604;&#1605; &#1571;&#1578;&#1605;&#1603;&#1606; &#1605;&#1606; &#1575;&#1604;&#1593;&#1579;&#1608;&#1585; &#1593;&#1604;&#1609; &#1591;&#1602;&#1605; &#1575;&#1604;&#1571;&#1583;&#1608;
 NoActiveX			: &quot;&#1604;&#1578;&#1571;&#1605;&#1610;&#1606; &#1605;&#1578;&#1589;&#1601;&#1581;&#1603; &#1610;&#1580;&#1576; &#1571;&#1606; &#1578;&#1581;&#1583;&#1583; &#1576;&#1593;&#1590; &#1605;&#1605;&#1610;&#1586;&#1575;&#1578; &#1575;&#1604;&#1605;&#1581;&#1585;&#1585;. &#1610;&#1578;&#1608;&#1580;&#1576; &#1593;&#1604;&#1610;&#1603; &#1578;&#1605;&#1603;&#1610;&#1606; &#1575;&#1604;&#1582;&#1610;&#1575;&#1585; \&quot;Run ActiveX controls and plug-ins\&quot;. &#1602;&#1583; &#1578;&#1608;&#1575;&#1580;&#1577; &#1571;&#1582;&#1591;&#1575;&#1569; &#1608;&#1578;&#1604;&#1575;&#1581;&#1592; &#1605;&#1605;&#1610;&#1586;&#1575;&#1578; &#1605;&#1601;&#1602;&#1608;&#1583;&#1577;&quot;,
 BrowseServerBlocked : &quot;&#1604;&#1575;&#1610;&#1605;&#1603;&#1606; &#1601;&#1578;&#1581; &#1605;&#1589;&#1583;&#1585; &#1575;&#1604;&#1605;&#1578;&#1589;&#1601;&#1581;. &#1601;&#1590;&#1604;&#1575; &#1610;&#1580;&#1576; &#1575;&#1604;&#1578;&#1571;&#1603;&#1583; &#1576;&#1571;&#1606; &#1580;&#1605;&#1610;&#1593; &#1605;&#1608;&#1575;&#1606;&#1593; &#1575;&#1604;&#1606;&#1608;&#1575;&#1601;&#1584; &#1575;&#1604;&#1605;&#1606;&#1576;&#1579;&#1602;&#1577; &#1605;&#1593;&#1591;&#1604;&#1577;&quot;,
 DialogBlocked		: &quot;&#1604;&#1575;&#1610;&#1605;&#1603;&#1606; &#1601;&#1578;&#1581; &#1606;&#1575;&#1601;&#1584;&#1577; &#1575;&#1604;&#1581;&#1608;&#1575;&#1585; . &#1601;&#1590;&#1604;&#1575; &#1578;&#1571;&#1603;&#1583; &#1605;&#1606; &#1571;&#1606;  &#1605;&#1575;&#1606;&#1593; &#1575;&#1604;&#1606;&#1608;&#1575;&#1601;&#1584; &#1575;&#1604;&#1605;&#1606;&#1576;&#1579;&#1577; &#1605;&#1593;&#1591;&#1604; .&quot;,
-VisitLinkBlocked	: &quot;It was not possible to open a new window. Make sure all popup blockers are disabled.&quot;,	//MISSING
+VisitLinkBlocked	: &quot;&#1604;&#1575; &#1610;&#1605;&#1603;&#1606; &#1601;&#1578;&#1581; &#1606;&#1575;&#1601;&#1584;&#1577; &#1580;&#1583;&#1610;&#1583;&#1577;. &#1578;&#1571;&#1603;&#1583; &#1605;&#1606; &#1573;&#1610;&#1602;&#1575;&#1601; &#1603;&#1604; &#1605;&#1575;&#1606;&#1593;&#1610; &#1601;&#1578;&#1581; &#1575;&#1604;&#1606;&#1608;&#1575;&#1601;&#1584; &#1605;&#1606; &#1575;&#1604;&#1593;&#1605;&#1604;.&quot;,
 
 // Dialogs
 DlgBtnOK			: &quot;&#1605;&#1608;&#1575;&#1601;&#1602;&quot;,
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#1578;&#1576;&#1575;&#1593;&#1583; &#1575;&#1604;&#1582;&#1604;&#1575;&#1610;&#1575;&quot;,
 DlgTableCellPad		: &quot;&#1575;&#1604;&#1605;&#1587;&#1575;&#1601;&#1577; &#1575;&#1604;&#1576;&#1575;&#1583;&#1574;&#1577;&quot;,
 DlgTableCaption		: &quot;&#1575;&#1604;&#1608;&#1589;&#1601;&quot;,
 DlgTableSummary		: &quot;&#1575;&#1604;&#1582;&#1604;&#1575;&#1589;&#1577;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#1582;&#1589;&#1575;&#1574;&#1589; &#1575;&#1604;&#1582;&#1604;&#1610;&#1577;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#1571;&#1593;&#1604;&#1609;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#1608;&#1587;&#1591;&quot;,
 DlgCellVerAlignBottom	: &quot;&#1571;&#1587;&#1601;&#1604;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#1593;&#1604;&#1609; &#1575;&#1604;&#1587;&#1591;&#1585;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#1573;&#1605;&#1578;&#1583;&#1575;&#1583; &#1575;&#1604;&#1589;&#1601;&#1608;&#1601;&quot;,
 DlgCellCollSpan		: &quot;&#1573;&#1605;&#1578;&#1583;&#1575;&#1583; &#1575;&#1604;&#1571;&#1593;&#1605;&#1583;&#1577;&quot;,
 DlgCellBackColor	: &quot;&#1604;&#1608;&#1606; &#1575;&#1604;&#1582;&#1604;&#1601;&#1610;&#1577;&quot;,
@@ -519,8 +527,8 @@ DlgAboutVersion		: &quot;&#1575;&#1604;&#1573;&#1589;&#1583;&#1575;&#1585;&quot;,
 DlgAboutInfo		: &quot;&#1604;&#1605;&#1586;&#1610;&#1583; &#1605;&#1606; &#1575;&#1604;&#1605;&#1593;&#1604;&#1608;&#1605;&#1575;&#1578; &#1578;&#1601;&#1590;&#1604; &#1576;&#1586;&#1610;&#1575;&#1585;&#1577;&quot;,
 
 // Div Dialog
-DlgDivGeneralTab	: &quot;General&quot;,	//MISSING
-DlgDivAdvancedTab	: &quot;Advanced&quot;,	//MISSING
-DlgDivStyle		: &quot;Style&quot;,	//MISSING
-DlgDivInlineStyle	: &quot;Inline Style&quot;	//MISSING
+DlgDivGeneralTab	: &quot;&#1593;&#1575;&#1605;&quot;,
+DlgDivAdvancedTab	: &quot;&#1605;&#1578;&#1602;&#1583;&#1605;&quot;,
+DlgDivStyle		: &quot;&#1575;&#1604;&#1605;&#1592;&#1607;&#1585;&quot;,
+DlgDivInlineStyle	: &quot;&#1575;&#1604;&#1605;&#1592;&#1607;&#1585; &#1575;&#1604;&#1605;&#1590;&#1605;&#1606;&quot;
 };</diff>
      <filename>public/javascripts/fckeditor/editor/lang/ar.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#1056;&#1072;&#1079;&#1089;&#1090;&#1086;&#1103;&#1085;&#1080;&#1077; &#1084;&#1077;&#1078;&#1076;&#1091; &#1082;&#1083;&#1077;&#1090;&#1082;&#1080;&#1090;&#1077;&quot;,
 DlgTableCellPad		: &quot;&#1054;&#1090;&#1089;&#1090;&#1098;&#1087; &#1085;&#1072; &#1089;&#1098;&#1076;&#1098;&#1088;&#1078;&#1072;&#1085;&#1080;&#1077;&#1090;&#1086; &#1074; &#1082;&#1083;&#1077;&#1090;&#1082;&#1080;&#1090;&#1077;&quot;,
 DlgTableCaption		: &quot;&#1047;&#1072;&#1075;&#1083;&#1072;&#1074;&#1080;&#1077;&quot;,
 DlgTableSummary		: &quot;&#1056;&#1077;&#1079;&#1102;&#1084;&#1077;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#1055;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088;&#1080; &#1085;&#1072; &#1082;&#1083;&#1077;&#1090;&#1082;&#1072;&#1090;&#1072;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#1043;&#1086;&#1088;&#1077;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#1055;&#1086; &#1089;&#1088;&#1077;&#1076;&#1072;&#1090;&#1072;&quot;,
 DlgCellVerAlignBottom	: &quot;&#1044;&#1086;&#1083;&#1091;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#1055;&#1086; &#1073;&#1072;&#1079;&#1086;&#1074;&#1072;&#1090;&#1072; &#1083;&#1080;&#1085;&#1080;&#1103;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#1087;&#1086;&#1074;&#1077;&#1095;&#1077; &#1086;&#1090; &#1077;&#1076;&#1080;&#1085; &#1088;&#1077;&#1076;&quot;,
 DlgCellCollSpan		: &quot;&#1087;&#1086;&#1074;&#1077;&#1095;&#1077; &#1086;&#1090; &#1077;&#1076;&#1085;&#1072; &#1082;&#1086;&#1083;&#1086;&#1085;&#1072;&quot;,
 DlgCellBackColor	: &quot;&#1092;&#1086;&#1085;&#1086;&#1074; &#1094;&#1074;&#1103;&#1090;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/bg.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#2488;&#2503;&#2482; &#2488;&#2509;&#2474;&#2503;&#2488;&quot;,
 DlgTableCellPad		: &quot;&#2488;&#2503;&#2482; &#2474;&#2509;&#2479;&#2494;&#2465;&#2495;&#2434;&quot;,
 DlgTableCaption		: &quot;&#2486;&#2496;&#2480;&#2509;&#2487;&#2453;&quot;,
 DlgTableSummary		: &quot;&#2488;&#2494;&#2480;&#2494;&#2434;&#2486;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#2488;&#2503;&#2482; &#2474;&#2509;&#2480;&#2507;&#2474;&#2494;&#2480;&#2509;&#2463;&#2495;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#2441;&#2474;&#2480;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#2478;&#2471;&#2509;&#2479;&quot;,
 DlgCellVerAlignBottom	: &quot;&#2472;&#2496;&#2458;&#2503;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#2478;&#2498;&#2482;&#2480;&#2503;&#2454;&#2494;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#2480;&#2507; &#2488;&#2509;&#2474;&#2509;&#2479;&#2494;&#2472;&quot;,
 DlgCellCollSpan		: &quot;&#2453;&#2482;&#2494;&#2478; &#2488;&#2509;&#2474;&#2509;&#2479;&#2494;&#2472;&quot;,
 DlgCellBackColor	: &quot;&#2476;&#2509;&#2479;&#2494;&#2453;&#2455;&#2509;&#2480;&#2494;&#2441;&#2472;&#2509;&#2465; &#2480;&#2434;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/bn.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Razmak &#230;elija&quot;,
 DlgTableCellPad		: &quot;Uvod &#230;elija&quot;,
 DlgTableCaption		: &quot;Naslov&quot;,
 DlgTableSummary		: &quot;Summary&quot;,	//MISSING
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Svojstva &#230;elije&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Gore&quot;,
 DlgCellVerAlignMiddle	: &quot;Sredina&quot;,
 DlgCellVerAlignBottom	: &quot;Dno&quot;,
 DlgCellVerAlignBaseline	: &quot;Bazno&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Spajanje &#230;elija&quot;,
 DlgCellCollSpan		: &quot;Spajanje kolona&quot;,
 DlgCellBackColor	: &quot;Boja pozadine&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/bs.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Espaiat de cel&#183;les&quot;,
 DlgTableCellPad		: &quot;Encoixinament de cel&#183;les&quot;,
 DlgTableCaption		: &quot;T&#237;tol&quot;,
 DlgTableSummary		: &quot;Resum&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Propietats de la cel&#183;la&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Top&quot;,
 DlgCellVerAlignMiddle	: &quot;Middle&quot;,
 DlgCellVerAlignBottom	: &quot;Bottom&quot;,
 DlgCellVerAlignBaseline	: &quot;Baseline&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Rows Span&quot;,
 DlgCellCollSpan		: &quot;Columns Span&quot;,
 DlgCellBackColor	: &quot;Color de fons&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/ca.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Vzd&#225;lenost bun&#283;k&quot;,
 DlgTableCellPad		: &quot;Odsazen&#237; obsahu&quot;,
 DlgTableCaption		: &quot;Popis&quot;,
 DlgTableSummary		: &quot;Souhrn&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Vlastnosti bu&#328;ky&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Nahoru&quot;,
 DlgCellVerAlignMiddle	: &quot;Doprost&#345;ed&quot;,
 DlgCellVerAlignBottom	: &quot;Dol&#367;&quot;,
 DlgCellVerAlignBaseline	: &quot;Na &#250;&#269;a&#345;&#237;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Slou&#269;en&#233; &#345;&#225;dky&quot;,
 DlgCellCollSpan		: &quot;Slou&#269;en&#233; sloupce&quot;,
 DlgCellBackColor	: &quot;Barva pozad&#237;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/cs.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -44,9 +44,9 @@ RemoveFormat		: &quot;Fjern formatering&quot;,
 InsertLinkLbl		: &quot;Hyperlink&quot;,
 InsertLink			: &quot;Inds&#230;t/rediger hyperlink&quot;,
 RemoveLink			: &quot;Fjern hyperlink&quot;,
-VisitLink			: &quot;Open Link&quot;,	//MISSING
+VisitLink			: &quot;&#197;bn hyperlink&quot;,
 Anchor				: &quot;Inds&#230;t/rediger bogm&#230;rke&quot;,
-AnchorDelete		: &quot;Remove Anchor&quot;,	//MISSING
+AnchorDelete		: &quot;Fjern bogm&#230;rke&quot;,
 InsertImageLbl		: &quot;Inds&#230;t billede&quot;,
 InsertImage			: &quot;Inds&#230;t/rediger billede&quot;,
 InsertFlashLbl		: &quot;Flash&quot;,
@@ -72,10 +72,10 @@ RightJustify		: &quot;H&#248;jrestillet&quot;,
 BlockJustify		: &quot;Lige margener&quot;,
 DecreaseIndent		: &quot;Formindsk indrykning&quot;,
 IncreaseIndent		: &quot;For&#248;g indrykning&quot;,
-Blockquote			: &quot;Blockquote&quot;,	//MISSING
-CreateDiv			: &quot;Create Div Container&quot;,	//MISSING
-EditDiv				: &quot;Edit Div Container&quot;,	//MISSING
-DeleteDiv			: &quot;Remove Div Container&quot;,	//MISSING
+Blockquote			: &quot;Blokcitat&quot;,
+CreateDiv			: &quot;Opret div container&quot;,
+EditDiv				: &quot;Rediger div container&quot;,
+DeleteDiv			: &quot;Fjern div container&quot;,
 Undo				: &quot;Fortryd&quot;,
 Redo				: &quot;Annuller fortryd&quot;,
 NumberedListLbl		: &quot;Talopstilling&quot;,
@@ -116,20 +116,20 @@ EditLink			: &quot;Rediger hyperlink&quot;,
 CellCM				: &quot;Celle&quot;,
 RowCM				: &quot;R&#230;kke&quot;,
 ColumnCM			: &quot;Kolonne&quot;,
-InsertRowAfter		: &quot;Insert Row After&quot;,	//MISSING
-InsertRowBefore		: &quot;Insert Row Before&quot;,	//MISSING
+InsertRowAfter		: &quot;Inds&#230;t r&#230;kke efter&quot;,
+InsertRowBefore		: &quot;Inds&#230;t r&#230;kke f&#248;r&quot;,
 DeleteRows			: &quot;Slet r&#230;kke&quot;,
-InsertColumnAfter	: &quot;Insert Column After&quot;,	//MISSING
-InsertColumnBefore	: &quot;Insert Column Before&quot;,	//MISSING
+InsertColumnAfter	: &quot;Inds&#230;t kolonne efter&quot;,
+InsertColumnBefore	: &quot;Inds&#230;t kolonne f&#248;r&quot;,
 DeleteColumns		: &quot;Slet kolonne&quot;,
-InsertCellAfter		: &quot;Insert Cell After&quot;,	//MISSING
-InsertCellBefore	: &quot;Insert Cell Before&quot;,	//MISSING
+InsertCellAfter		: &quot;Inds&#230;t celle efter&quot;,
+InsertCellBefore	: &quot;Inds&#230;t celle f&#248;r&quot;,
 DeleteCells			: &quot;Slet celle&quot;,
 MergeCells			: &quot;Flet celler&quot;,
-MergeRight			: &quot;Merge Right&quot;,	//MISSING
-MergeDown			: &quot;Merge Down&quot;,	//MISSING
-HorizontalSplitCell	: &quot;Split Cell Horizontally&quot;,	//MISSING
-VerticalSplitCell	: &quot;Split Cell Vertically&quot;,	//MISSING
+MergeRight			: &quot;Flet til h&#248;jre&quot;,
+MergeDown			: &quot;Flet nedad&quot;,
+HorizontalSplitCell	: &quot;Del celle vandret&quot;,
+VerticalSplitCell	: &quot;Del celle lodret&quot;,
 TableDelete			: &quot;Slet tabel&quot;,
 CellProperties		: &quot;Egenskaber for celle&quot;,
 TableProperties		: &quot;Egenskaber for tabel&quot;,
@@ -161,7 +161,7 @@ UnknownToolbarSet	: &quot;V&#230;rkt&#248;jslinjen \&quot;%1\&quot; eksisterer ikke!&quot;,
 NoActiveX			: &quot;Din browsers sikkerhedsindstillinger begr&#230;nser nogle af editorens muligheder.&lt;br&gt;Sl&#229; \&quot;K&#248;r ActiveX-objekter og plug-ins\&quot; til, ellers vil du opleve fejl og manglende muligheder.&quot;,
 BrowseServerBlocked : &quot;Browseren kunne ikke &#229;bne de n&#248;dvendige ressourcer!&lt;br&gt;Sl&#229; pop-up blokering fra.&quot;,
 DialogBlocked		: &quot;Dialogvinduet kunne ikke &#229;bnes!&lt;br&gt;Sl&#229; pop-up blokering fra.&quot;,
-VisitLinkBlocked	: &quot;It was not possible to open a new window. Make sure all popup blockers are disabled.&quot;,	//MISSING
+VisitLinkBlocked	: &quot;Det var ikke muligt at &#229;bne et nyt vindue. Tjek, at ingen popup-blokkere er aktive.&quot;,
 
 // Dialogs
 DlgBtnOK			: &quot;OK&quot;,
@@ -276,7 +276,7 @@ DlgLnkPopTop		: &quot;Position fra toppen&quot;,
 DlnLnkMsgNoUrl		: &quot;Indtast hyperlink URL!&quot;,
 DlnLnkMsgNoEMail	: &quot;Indtast e-mailaddresse!&quot;,
 DlnLnkMsgNoAnchor	: &quot;V&#230;lg bogm&#230;rke!&quot;,
-DlnLnkMsgInvPopName	: &quot;The popup name must begin with an alphabetic character and must not contain spaces&quot;,	//MISSING
+DlnLnkMsgInvPopName	: &quot;Navnet p&#229; popup'en skal starte med et bogstav og m&#229; ikke indeholde mellemrum&quot;,
 
 // Color Dialog
 DlgColorTitle		: &quot;V&#230;lg farve&quot;,
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Celleafstand&quot;,
 DlgTableCellPad		: &quot;Cellemargen&quot;,
 DlgTableCaption		: &quot;Titel&quot;,
 DlgTableSummary		: &quot;Resume&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Egenskaber for celle&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#216;verst&quot;,
 DlgCellVerAlignMiddle	: &quot;Centreret&quot;,
 DlgCellVerAlignBottom	: &quot;Nederst&quot;,
 DlgCellVerAlignBaseline	: &quot;Grundlinje&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;H&#248;jde i antal r&#230;kker&quot;,
 DlgCellCollSpan		: &quot;Bredde i antal kolonner&quot;,
 DlgCellBackColor	: &quot;Baggrundsfarve&quot;,
@@ -337,7 +345,7 @@ DlgCellBorderColor	: &quot;Rammefarve&quot;,
 DlgCellBtnSelect	: &quot;V&#230;lg...&quot;,
 
 // Find and Replace Dialog
-DlgFindAndReplaceTitle	: &quot;Find and Replace&quot;,	//MISSING
+DlgFindAndReplaceTitle	: &quot;S&#248;g og erstat&quot;,
 
 // Find Dialog
 DlgFindTitle		: &quot;Find&quot;,
@@ -361,7 +369,7 @@ PasteAsText		: &quot;Inds&#230;t som ikke-formateret tekst&quot;,
 PasteFromWord	: &quot;Inds&#230;t fra Word&quot;,
 
 DlgPasteMsg2	: &quot;Inds&#230;t i feltet herunder (&lt;STRONG&gt;Ctrl+V&lt;/STRONG&gt;) og klik &lt;STRONG&gt;OK&lt;/STRONG&gt;.&quot;,
-DlgPasteSec		: &quot;Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.&quot;,	//MISSING
+DlgPasteSec		: &quot;P&#229; grund af browserens sikkerhedsindstillinger kan editoren ikke tilg&#229; udklipsholderen direkte. Du skal inds&#230;tte udklipsholderens indhold i dette vindue igen.&quot;,
 DlgPasteIgnoreFont		: &quot;Ignorer font definitioner&quot;,
 DlgPasteRemoveStyles	: &quot;Ignorer typografi&quot;,
 
@@ -397,9 +405,9 @@ IeSpellDownload			: &quot;Stavekontrol ikke installeret.&lt;br&gt;Vil du hente den nu?&quot;,
 // Button Dialog
 DlgButtonText		: &quot;Tekst&quot;,
 DlgButtonType		: &quot;Type&quot;,
-DlgButtonTypeBtn	: &quot;Button&quot;,	//MISSING
-DlgButtonTypeSbm	: &quot;Submit&quot;,	//MISSING
-DlgButtonTypeRst	: &quot;Reset&quot;,	//MISSING
+DlgButtonTypeBtn	: &quot;Knap&quot;,
+DlgButtonTypeSbm	: &quot;Send&quot;,
+DlgButtonTypeRst	: &quot;Nulstil&quot;,
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: &quot;Navn&quot;,
@@ -448,7 +456,7 @@ DlgHiddenValue	: &quot;V&#230;rdi&quot;,
 // Bulleted List Dialog
 BulletedListProp	: &quot;Egenskaber for punktopstilling&quot;,
 NumberedListProp	: &quot;Egenskaber for talopstilling&quot;,
-DlgLstStart			: &quot;Start&quot;,	//MISSING
+DlgLstStart			: &quot;Start&quot;,
 DlgLstType			: &quot;Type&quot;,
 DlgLstTypeCircle	: &quot;Cirkel&quot;,
 DlgLstTypeDisc		: &quot;Udfyldt cirkel&quot;,
@@ -471,15 +479,15 @@ DlgDocLangDirLTR	: &quot;Fra venstre mod h&#248;jre (LTR)&quot;,
 DlgDocLangDirRTL	: &quot;Fra h&#248;jre mod venstre (RTL)&quot;,
 DlgDocLangCode		: &quot;Landekode&quot;,
 DlgDocCharSet		: &quot;Tegns&#230;t kode&quot;,
-DlgDocCharSetCE		: &quot;Central European&quot;,	//MISSING
-DlgDocCharSetCT		: &quot;Chinese Traditional (Big5)&quot;,	//MISSING
-DlgDocCharSetCR		: &quot;Cyrillic&quot;,	//MISSING
-DlgDocCharSetGR		: &quot;Greek&quot;,	//MISSING
-DlgDocCharSetJP		: &quot;Japanese&quot;,	//MISSING
-DlgDocCharSetKR		: &quot;Korean&quot;,	//MISSING
-DlgDocCharSetTR		: &quot;Turkish&quot;,	//MISSING
-DlgDocCharSetUN		: &quot;Unicode (UTF-8)&quot;,	//MISSING
-DlgDocCharSetWE		: &quot;Western European&quot;,	//MISSING
+DlgDocCharSetCE		: &quot;Centraleurop&#230;isk&quot;,
+DlgDocCharSetCT		: &quot;Traditionel kinesisk (Big5)&quot;,
+DlgDocCharSetCR		: &quot;Kyrillisk&quot;,
+DlgDocCharSetGR		: &quot;Gr&#230;sk&quot;,
+DlgDocCharSetJP		: &quot;Japansk&quot;,
+DlgDocCharSetKR		: &quot;Koreansk&quot;,
+DlgDocCharSetTR		: &quot;Tyrkisk&quot;,
+DlgDocCharSetUN		: &quot;Unicode (UTF-8)&quot;,
+DlgDocCharSetWE		: &quot;Vesteurop&#230;isk&quot;,
 DlgDocCharSetOther	: &quot;Anden tegns&#230;t kode&quot;,
 
 DlgDocDocType		: &quot;Dokumenttype kategori&quot;,
@@ -509,7 +517,7 @@ DlgTemplatesTitle	: &quot;Indholdsskabeloner&quot;,
 DlgTemplatesSelMsg	: &quot;V&#230;lg den skabelon, som skal &#229;bnes i editoren.&lt;br&gt;(Nuv&#230;rende indhold vil blive overskrevet!):&quot;,
 DlgTemplatesLoading	: &quot;Henter liste over skabeloner...&quot;,
 DlgTemplatesNoTpl	: &quot;(Der er ikke defineret nogen skabelon!)&quot;,
-DlgTemplatesReplace	: &quot;Replace actual contents&quot;,	//MISSING
+DlgTemplatesReplace	: &quot;Erstat det faktiske indhold&quot;,
 
 // About Dialog
 DlgAboutAboutTab	: &quot;Om&quot;,
@@ -519,8 +527,8 @@ DlgAboutVersion		: &quot;version&quot;,
 DlgAboutInfo		: &quot;For yderlig information g&#229; til&quot;,
 
 // Div Dialog
-DlgDivGeneralTab	: &quot;General&quot;,	//MISSING
-DlgDivAdvancedTab	: &quot;Advanced&quot;,	//MISSING
-DlgDivStyle		: &quot;Style&quot;,	//MISSING
-DlgDivInlineStyle	: &quot;Inline Style&quot;	//MISSING
+DlgDivGeneralTab	: &quot;Generelt&quot;,
+DlgDivAdvancedTab	: &quot;Avanceret&quot;,
+DlgDivStyle		: &quot;Style&quot;,
+DlgDivInlineStyle	: &quot;Inline style&quot;
 };</diff>
      <filename>public/javascripts/fckeditor/editor/lang/da.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -161,7 +161,7 @@ UnknownToolbarSet	: &quot;Men&#252;leiste \&quot;%1\&quot; existiert nicht&quot;,
 NoActiveX			: &quot;Die Sicherheitseinstellungen Ihres Browsers beschr&#228;nken evtl. einige Funktionen des Editors. Aktivieren Sie die Option \&quot;ActiveX-Steuerelemente und Plugins ausf&#252;hren\&quot; in den Sicherheitseinstellungen, um diese Funktionen nutzen zu k&#246;nnen&quot;,
 BrowseServerBlocked : &quot;Ein Auswahlfenster konnte nicht ge&#246;ffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.&quot;,
 DialogBlocked		: &quot;Das Dialog-Fenster konnte nicht ge&#246;ffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.&quot;,
-VisitLinkBlocked	: &quot;It was not possible to open a new window. Make sure all popup blockers are disabled.&quot;,	//MISSING
+VisitLinkBlocked	: &quot;Es war leider nicht m&#246;glich ein neues Fenster zu &#246;ffnen. Bitte versichern Sie sich das der Popup-Blocker ausgeschaltet ist.&quot;,
 
 // Dialogs
 DlgBtnOK			: &quot;OK&quot;,
@@ -202,8 +202,8 @@ DlgImgHeight		: &quot;H&#246;he&quot;,
 DlgImgLockRatio		: &quot;Gr&#246;&#223;enverh&#228;ltniss beibehalten&quot;,
 DlgBtnResetSize		: &quot;Gr&#246;&#223;e zur&#252;cksetzen&quot;,
 DlgImgBorder		: &quot;Rahmen&quot;,
-DlgImgHSpace		: &quot;H-Abstand&quot;,
-DlgImgVSpace		: &quot;V-Abstand&quot;,
+DlgImgHSpace		: &quot;Horizontal-Abstand&quot;,
+DlgImgVSpace		: &quot;Vertikal-Abstand&quot;,
 DlgImgAlign			: &quot;Ausrichtung&quot;,
 DlgImgAlignLeft		: &quot;Links&quot;,
 DlgImgAlignAbsBottom: &quot;Abs Unten&quot;,
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Zellenabstand au&#223;en&quot;,
 DlgTableCellPad		: &quot;Zellenabstand innen&quot;,
 DlgTableCaption		: &quot;&#220;berschrift&quot;,
 DlgTableSummary		: &quot;Inhalts&#252;bersicht&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Zellen-Eigenschaften&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Oben&quot;,
 DlgCellVerAlignMiddle	: &quot;Mitte&quot;,
 DlgCellVerAlignBottom	: &quot;Unten&quot;,
 DlgCellVerAlignBaseline	: &quot;Grundlinie&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Zeilen zusammenfassen&quot;,
 DlgCellCollSpan		: &quot;Spalten zusammenfassen&quot;,
 DlgCellBackColor	: &quot;Hintergrundfarbe&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/de.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#913;&#960;&#972;&#963;&#964;&#945;&#963;&#951; &#954;&#949;&#955;&#953;&#974;&#957;&quot;,
 DlgTableCellPad		: &quot;&#915;&#941;&#956;&#953;&#963;&#956;&#945; &#954;&#949;&#955;&#953;&#974;&#957;&quot;,
 DlgTableCaption		: &quot;&#933;&#960;&#941;&#961;&#964;&#953;&#964;&#955;&#959;&#962;&quot;,
 DlgTableSummary		: &quot;&#928;&#949;&#961;&#943;&#955;&#951;&#968;&#951;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#921;&#948;&#953;&#972;&#964;&#951;&#964;&#949;&#962; &#922;&#949;&#955;&#953;&#959;&#973;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#928;&#940;&#957;&#969; (Top)&quot;,
 DlgCellVerAlignMiddle	: &quot;&#924;&#941;&#963;&#951; (Middle)&quot;,
 DlgCellVerAlignBottom	: &quot;&#922;&#940;&#964;&#969; (Bottom)&quot;,
 DlgCellVerAlignBaseline	: &quot;&#915;&#961;&#945;&#956;&#956;&#942; &#914;&#940;&#963;&#951;&#962; (Baseline)&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#913;&#961;&#953;&#952;&#956;&#972;&#962; &#915;&#961;&#945;&#956;&#956;&#974;&#957; (Rows Span)&quot;,
 DlgCellCollSpan		: &quot;&#913;&#961;&#953;&#952;&#956;&#972;&#962; &#922;&#959;&#955;&#969;&#957;&#974;&#957; (Columns Span)&quot;,
 DlgCellBackColor	: &quot;&#935;&#961;&#974;&#956;&#945; &#933;&#960;&#959;&#946;&#940;&#952;&#961;&#959;&#965;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/el.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Cell spacing&quot;,
 DlgTableCellPad		: &quot;Cell padding&quot;,
 DlgTableCaption		: &quot;Caption&quot;,
 DlgTableSummary		: &quot;Summary&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Cell Properties&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Top&quot;,
 DlgCellVerAlignMiddle	: &quot;Middle&quot;,
 DlgCellVerAlignBottom	: &quot;Bottom&quot;,
 DlgCellVerAlignBaseline	: &quot;Baseline&quot;,
+DlgCellType		: &quot;Cell Type&quot;,
+DlgCellTypeData		: &quot;Data&quot;,
+DlgCellTypeHeader	: &quot;Header&quot;,
 DlgCellRowSpan		: &quot;Rows Span&quot;,
 DlgCellCollSpan		: &quot;Columns Span&quot;,
 DlgCellBackColor	: &quot;Background Colour&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/en-au.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Cell spacing&quot;,
 DlgTableCellPad		: &quot;Cell padding&quot;,
 DlgTableCaption		: &quot;Caption&quot;,
 DlgTableSummary		: &quot;Summary&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Cell Properties&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Top&quot;,
 DlgCellVerAlignMiddle	: &quot;Middle&quot;,
 DlgCellVerAlignBottom	: &quot;Bottom&quot;,
 DlgCellVerAlignBaseline	: &quot;Baseline&quot;,
+DlgCellType		: &quot;Cell Type&quot;,
+DlgCellTypeData		: &quot;Data&quot;,
+DlgCellTypeHeader	: &quot;Header&quot;,
 DlgCellRowSpan		: &quot;Rows Span&quot;,
 DlgCellCollSpan		: &quot;Columns Span&quot;,
 DlgCellBackColor	: &quot;Background Colour&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/en-ca.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Cell spacing&quot;,
 DlgTableCellPad		: &quot;Cell padding&quot;,
 DlgTableCaption		: &quot;Caption&quot;,
 DlgTableSummary		: &quot;Summary&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Cell Properties&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Top&quot;,
 DlgCellVerAlignMiddle	: &quot;Middle&quot;,
 DlgCellVerAlignBottom	: &quot;Bottom&quot;,
 DlgCellVerAlignBaseline	: &quot;Baseline&quot;,
+DlgCellType		: &quot;Cell Type&quot;,
+DlgCellTypeData		: &quot;Data&quot;,
+DlgCellTypeHeader	: &quot;Header&quot;,
 DlgCellRowSpan		: &quot;Rows Span&quot;,
 DlgCellCollSpan		: &quot;Columns Span&quot;,
 DlgCellBackColor	: &quot;Background Colour&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/en-uk.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Cell spacing&quot;,
 DlgTableCellPad		: &quot;Cell padding&quot;,
 DlgTableCaption		: &quot;Caption&quot;,
 DlgTableSummary		: &quot;Summary&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,
+DlgTableHeadersNone		: &quot;None&quot;,
+DlgTableHeadersColumn	: &quot;First column&quot;,
+DlgTableHeadersRow		: &quot;First Row&quot;,
+DlgTableHeadersBoth		: &quot;Both&quot;,
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Cell Properties&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Top&quot;,
 DlgCellVerAlignMiddle	: &quot;Middle&quot;,
 DlgCellVerAlignBottom	: &quot;Bottom&quot;,
 DlgCellVerAlignBaseline	: &quot;Baseline&quot;,
+DlgCellType		: &quot;Cell Type&quot;,
+DlgCellTypeData		: &quot;Data&quot;,
+DlgCellTypeHeader	: &quot;Header&quot;,
 DlgCellRowSpan		: &quot;Rows Span&quot;,
 DlgCellCollSpan		: &quot;Columns Span&quot;,
 DlgCellBackColor	: &quot;Background Color&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/en.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Interspacigo de &#264;eloj&quot;,
 DlgTableCellPad		: &quot;&#264;irka&#365;enhava Plenigado&quot;,
 DlgTableCaption		: &quot;Titolo&quot;,
 DlgTableSummary		: &quot;Summary&quot;,	//MISSING
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Atributoj de Celo&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Supre&quot;,
 DlgCellVerAlignMiddle	: &quot;Centre&quot;,
 DlgCellVerAlignBottom	: &quot;Malsupre&quot;,
 DlgCellVerAlignBaseline	: &quot;Je Malsupro de Teksto&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Linioj Kunfanditaj&quot;,
 DlgCellCollSpan		: &quot;Kolumnoj Kunfanditaj&quot;,
 DlgCellBackColor	: &quot;Fono&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/eo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Esp. e/celdas&quot;,
 DlgTableCellPad		: &quot;Esp. interior&quot;,
 DlgTableCaption		: &quot;T&#237;tulo&quot;,
 DlgTableSummary		: &quot;S&#237;ntesis&quot;,
+DlgTableHeaders		: &quot;Encabezados&quot;,
+DlgTableHeadersNone		: &quot;Ninguno&quot;,
+DlgTableHeadersColumn	: &quot;Primera columna&quot;,
+DlgTableHeadersRow		: &quot;Primera fila&quot;,
+DlgTableHeadersBoth		: &quot;Ambas&quot;,
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Propiedades de Celda&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Tope&quot;,
 DlgCellVerAlignMiddle	: &quot;Medio&quot;,
 DlgCellVerAlignBottom	: &quot;ie&quot;,
 DlgCellVerAlignBaseline	: &quot;L&#237;nea de Base&quot;,
+DlgCellType		: &quot;Tipo de celda&quot;,
+DlgCellTypeData		: &quot;Datos&quot;,
+DlgCellTypeHeader	: &quot;Encabezado&quot;,
 DlgCellRowSpan		: &quot;Abarcar Filas&quot;,
 DlgCellCollSpan		: &quot;Abarcar Columnas&quot;,
 DlgCellBackColor	: &quot;Color de Fondo&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/es.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Lahtri vahe&quot;,
 DlgTableCellPad		: &quot;Lahtri t&#228;idis&quot;,
 DlgTableCaption		: &quot;Tabeli tiitel&quot;,
 DlgTableSummary		: &quot;Kokkuv&#245;te&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Lahtri atribuudid&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#220;les&quot;,
 DlgCellVerAlignMiddle	: &quot;Keskele&quot;,
 DlgCellVerAlignBottom	: &quot;Alla&quot;,
 DlgCellVerAlignBaseline	: &quot;Baasjoonele&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Reaulatus&quot;,
 DlgCellCollSpan		: &quot;Veeruulatus&quot;,
 DlgCellBackColor	: &quot;Tausta v&#228;rv&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/et.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -41,11 +41,11 @@ PasteText			: &quot;Itsatsi testu bezala&quot;,
 PasteWord			: &quot;Itsatsi Word-etik&quot;,
 Print				: &quot;Inprimatu&quot;,
 SelectAll			: &quot;Hautatu dena&quot;,
-RemoveFormat		: &quot;Kendu Formatoa&quot;,
+RemoveFormat		: &quot;Kendu Formatua&quot;,
 InsertLinkLbl		: &quot;Esteka&quot;,
 InsertLink			: &quot;Txertatu/Editatu Esteka&quot;,
 RemoveLink			: &quot;Kendu Esteka&quot;,
-VisitLink			: &quot;Open Link&quot;,	//MISSING
+VisitLink			: &quot;Ireki Esteka&quot;,
 Anchor				: &quot;Aingura&quot;,
 AnchorDelete		: &quot;Ezabatu Aingura&quot;,
 InsertImageLbl		: &quot;Irudia&quot;,
@@ -74,9 +74,9 @@ BlockJustify		: &quot;Justifikatu&quot;,
 DecreaseIndent		: &quot;Txikitu Koska&quot;,
 IncreaseIndent		: &quot;Handitu Koska&quot;,
 Blockquote			: &quot;Aipamen blokea&quot;,
-CreateDiv			: &quot;Create Div Container&quot;,	//MISSING
-EditDiv				: &quot;Edit Div Container&quot;,	//MISSING
-DeleteDiv			: &quot;Remove Div Container&quot;,	//MISSING
+CreateDiv			: &quot;Sortu Div Edukitzailea&quot;,
+EditDiv				: &quot;Editatu Div Edukitzailea&quot;,
+DeleteDiv			: &quot;Ezabatu Div Edukitzailea&quot;,
 Undo				: &quot;Desegin&quot;,
 Redo				: &quot;Berregin&quot;,
 NumberedListLbl		: &quot;Zenbakidun Zerrenda&quot;,
@@ -86,7 +86,7 @@ BulletedList		: &quot;Txertatu/Kendu Buletdun zerrenda&quot;,
 ShowTableBorders	: &quot;Erakutsi Taularen Ertzak&quot;,
 ShowDetails			: &quot;Erakutsi Xehetasunak&quot;,
 Style				: &quot;Estiloa&quot;,
-FontFormat			: &quot;Formatoa&quot;,
+FontFormat			: &quot;Formatua&quot;,
 Font				: &quot;Letra-tipoa&quot;,
 FontSize			: &quot;Tamaina&quot;,
 TextColor			: &quot;Testu Kolorea&quot;,
@@ -153,16 +153,16 @@ FontFormats			: &quot;Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua
 // Alerts and Messages
 ProcessingXHTML		: &quot;XHTML Prozesatzen. Itxaron mesedez...&quot;,
 Done				: &quot;Eginda&quot;,
-PasteWordConfirm	: &quot;Itsatsi nahi duzun textua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?&quot;,
+PasteWordConfirm	: &quot;Itsatsi nahi duzun testua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?&quot;,
 NotCompatiblePaste	: &quot;Komando hau Internet Explorer 5.5 bertsiorako edo ondorengoentzako erabilgarria dago. Garbitu gabe itsatsi nahi duzu?&quot;,
 UnknownToolbarItem	: &quot;Ataza barrako elementu ezezaguna \&quot;%1\&quot;&quot;,
 UnknownCommand		: &quot;Komando izen ezezaguna \&quot;%1\&quot;&quot;,
 NotImplemented		: &quot;Komando ez inplementatua&quot;,
 UnknownToolbarSet	: &quot;Ataza barra \&quot;%1\&quot; taldea ez da existitzen&quot;,
-NoActiveX			: &quot;Zure nabigatzailearen segustasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \&quot;ActiveX kontrolak eta plug-inak\&quot; aktibatu beharko zenituzke, bestela erroreak eta ezaugarrietan mugak egon daitezke.&quot;,
+NoActiveX			: &quot;Zure nabigatzailearen segurtasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \&quot;ActiveX kontrolak eta pluginak\&quot; aktibatu beharko zenituzke, bestela erroreak eta ezaugarrietan mugak egon daitezke.&quot;,
 BrowseServerBlocked : &quot;Baliabideen arakatzailea ezin da ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.&quot;,
 DialogBlocked		: &quot;Ezin da elkarrizketa-leihoa ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.&quot;,
-VisitLinkBlocked	: &quot;It was not possible to open a new window. Make sure all popup blockers are disabled.&quot;,	//MISSING
+VisitLinkBlocked	: &quot;Ezin da leiho berri bat ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.&quot;,
 
 // Dialogs
 DlgBtnOK			: &quot;Ados&quot;,
@@ -197,7 +197,7 @@ DlgImgInfoTab		: &quot;Irudi informazioa&quot;,
 DlgImgBtnUpload		: &quot;Zerbitzarira bidalia&quot;,
 DlgImgURL			: &quot;URL&quot;,
 DlgImgUpload		: &quot;Gora Kargatu&quot;,
-DlgImgAlt			: &quot;Textu Alternatiboa&quot;,
+DlgImgAlt			: &quot;Ordezko Testua&quot;,
 DlgImgWidth			: &quot;Zabalera&quot;,
 DlgImgHeight		: &quot;Altuera&quot;,
 DlgImgLockRatio		: &quot;Erlazioa Blokeatu&quot;,
@@ -226,7 +226,7 @@ DlgFlashChkLoop		: &quot;Begizta&quot;,
 DlgFlashChkMenu		: &quot;Flasharen Menua Gaitu&quot;,
 DlgFlashScale		: &quot;Eskalatu&quot;,
 DlgFlashScaleAll	: &quot;Dena erakutsi&quot;,
-DlgFlashScaleNoBorder	: &quot;Ertzarik gabe&quot;,
+DlgFlashScaleNoBorder	: &quot;Ertzik gabe&quot;,
 DlgFlashScaleFit	: &quot;Doitu&quot;,
 
 // Link Dialog
@@ -236,7 +236,7 @@ DlgLnkTargetTab		: &quot;Helburua&quot;,
 
 DlgLnkType			: &quot;Esteka Mota&quot;,
 DlgLnkTypeURL		: &quot;URL&quot;,
-DlgLnkTypeAnchor	: &quot;Aingura horrialde honentan&quot;,
+DlgLnkTypeAnchor	: &quot;Aingura orrialde honetan&quot;,
 DlgLnkTypeEMail		: &quot;ePosta&quot;,
 DlgLnkProto			: &quot;Protokoloa&quot;,
 DlgLnkProtoOther	: &quot;&lt;Beste batzuk&gt;&quot;,
@@ -253,14 +253,14 @@ DlgLnkBtnUpload		: &quot;Zerbitzarira bidali&quot;,
 
 DlgLnkTarget		: &quot;Target (Helburua)&quot;,
 DlgLnkTargetFrame	: &quot;&lt;marko&gt;&quot;,
-DlgLnkTargetPopup	: &quot;&lt;popup lehioa&gt;&quot;,
-DlgLnkTargetBlank	: &quot;Lehio Berria (_blank)&quot;,
-DlgLnkTargetParent	: &quot;Lehio Gurasoa (_parent)&quot;,
-DlgLnkTargetSelf	: &quot;Lehio Berdina (_self)&quot;,
-DlgLnkTargetTop		: &quot;Goiko Lehioa (_top)&quot;,
+DlgLnkTargetPopup	: &quot;&lt;popup leihoa&gt;&quot;,
+DlgLnkTargetBlank	: &quot;Leiho Berria (_blank)&quot;,
+DlgLnkTargetParent	: &quot;Leiho Gurasoa (_parent)&quot;,
+DlgLnkTargetSelf	: &quot;Leiho Berdina (_self)&quot;,
+DlgLnkTargetTop		: &quot;Goiko Leihoa (_top)&quot;,
 DlgLnkTargetFrameName	: &quot;Marko Helburuaren Izena&quot;,
-DlgLnkPopWinName	: &quot;Popup Lehioaren Izena&quot;,
-DlgLnkPopWinFeat	: &quot;Popup Lehioaren Ezaugarriak&quot;,
+DlgLnkPopWinName	: &quot;Popup Leihoaren Izena&quot;,
+DlgLnkPopWinFeat	: &quot;Popup Leihoaren Ezaugarriak&quot;,
 DlgLnkPopResize		: &quot;Tamaina Aldakorra&quot;,
 DlgLnkPopLocation	: &quot;Kokaleku Barra&quot;,
 DlgLnkPopMenu		: &quot;Menu Barra&quot;,
@@ -277,7 +277,7 @@ DlgLnkPopTop		: &quot;Goiko Posizioa&quot;,
 DlnLnkMsgNoUrl		: &quot;Mesedez URL esteka idatzi&quot;,
 DlnLnkMsgNoEMail	: &quot;Mesedez ePosta helbidea idatzi&quot;,
 DlnLnkMsgNoAnchor	: &quot;Mesedez aingura bat aukeratu&quot;,
-DlnLnkMsgInvPopName	: &quot;Popup lehioaren izenak karaktere alfabetiko batekin hasi behar du eta eta ezin du zuriunerik izan&quot;,
+DlnLnkMsgInvPopName	: &quot;Popup leihoaren izenak karaktere alfabetiko batekin hasi behar du eta eta ezin du zuriunerik izan&quot;,
 
 // Color Dialog
 DlgColorTitle		: &quot;Kolore Aukeraketa&quot;,
@@ -309,6 +309,11 @@ DlgTableCellSpace	: &quot;Gelaxka arteko tartea&quot;,
 DlgTableCellPad		: &quot;Gelaxken betegarria&quot;,
 DlgTableCaption		: &quot;Epigrafea&quot;,
 DlgTableSummary		: &quot;Laburpena&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Gelaxken Ezaugarriak&quot;,
@@ -320,7 +325,7 @@ DlgCellWordWrap		: &quot;Itzulbira&quot;,
 DlgCellWordWrapNotSet	: &quot;&lt;Ezarri gabe&gt;&quot;,
 DlgCellWordWrapYes	: &quot;Bai&quot;,
 DlgCellWordWrapNo	: &quot;Ez&quot;,
-DlgCellHorAlign		: &quot;Horizontal Alignment&quot;,
+DlgCellHorAlign		: &quot;Lerrokatu Horizontalki&quot;,
 DlgCellHorAlignNotSet	: &quot;&lt;Ezarri gabe&gt;&quot;,
 DlgCellHorAlignLeft	: &quot;Ezkerrean&quot;,
 DlgCellHorAlignCenter	: &quot;Erdian&quot;,
@@ -330,12 +335,15 @@ DlgCellVerAlignNotSet	: &quot;&lt;Ezarri gabe&gt;&quot;,
 DlgCellVerAlignTop	: &quot;Goian&quot;,
 DlgCellVerAlignMiddle	: &quot;Erdian&quot;,
 DlgCellVerAlignBottom	: &quot;Behean&quot;,
-DlgCellVerAlignBaseline	: &quot;Oinan&quot;,
+DlgCellVerAlignBaseline	: &quot;Oinean&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Lerroak Hedatu&quot;,
 DlgCellCollSpan		: &quot;Zutabeak Hedatu&quot;,
 DlgCellBackColor	: &quot;Atzeko Kolorea&quot;,
 DlgCellBorderColor	: &quot;Ertzako Kolorea&quot;,
-DlgCellBtnSelect	: &quot;Aukertau...&quot;,
+DlgCellBtnSelect	: &quot;Aukeratu...&quot;,
 
 // Find and Replace Dialog
 DlgFindAndReplaceTitle	: &quot;Bilatu eta Ordeztu&quot;,
@@ -410,7 +418,7 @@ DlgCheckboxSelected	: &quot;Hautatuta&quot;,
 // Form Dialog
 DlgFormName		: &quot;Izena&quot;,
 DlgFormAction	: &quot;Ekintza&quot;,
-DlgFormMethod	: &quot;Method&quot;,
+DlgFormMethod	: &quot;Metodoa&quot;,
 
 // Select Field Dialog
 DlgSelectName		: &quot;Izena&quot;,
@@ -462,7 +470,7 @@ DlgLstTypeLRoman	: &quot;Erromatar zenbaki larriak (I, II, III)&quot;,
 
 // Document Properties Dialog
 DlgDocGeneralTab	: &quot;Orokorra&quot;,
-DlgDocBackTab		: &quot;Atzekaldea&quot;,
+DlgDocBackTab		: &quot;Atzealdea&quot;,
 DlgDocColorsTab		: &quot;Koloreak eta Marjinak&quot;,
 DlgDocMetaTab		: &quot;Meta Informazioa&quot;,
 
@@ -488,7 +496,7 @@ DlgDocDocTypeOther	: &quot;Beste Document Type Goiburua&quot;,
 DlgDocIncXHTML		: &quot;XHTML Ezarpenak&quot;,
 DlgDocBgColor		: &quot;Atzeko Kolorea&quot;,
 DlgDocBgImage		: &quot;Atzeko Irudiaren URL-a&quot;,
-DlgDocBgNoScroll	: &quot;Korritze gabeko Atzekaldea&quot;,
+DlgDocBgNoScroll	: &quot;Korritze gabeko Atzealdea&quot;,
 DlgDocCText			: &quot;Testua&quot;,
 DlgDocCLink			: &quot;Estekak&quot;,
 DlgDocCVisited		: &quot;Bisitatutako Estekak&quot;,
@@ -520,8 +528,8 @@ DlgAboutVersion		: &quot;bertsioa&quot;,
 DlgAboutInfo		: &quot;Informazio gehiago eskuratzeko hona joan&quot;,
 
 // Div Dialog
-DlgDivGeneralTab	: &quot;General&quot;,	//MISSING
-DlgDivAdvancedTab	: &quot;Advanced&quot;,	//MISSING
-DlgDivStyle		: &quot;Style&quot;,	//MISSING
-DlgDivInlineStyle	: &quot;Inline Style&quot;	//MISSING
+DlgDivGeneralTab	: &quot;Orokorra&quot;,
+DlgDivAdvancedTab	: &quot;Aurreratua&quot;,
+DlgDivStyle		: &quot;Estiloa&quot;,
+DlgDivInlineStyle	: &quot;Inline Estiloa&quot;
 };</diff>
      <filename>public/javascripts/fckeditor/editor/lang/eu.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#1601;&#1575;&#1589;&#1604;&#1607;&#1652; &#1605;&#1740;&#1575;&#1606; &#1587;&#1604;&#1608;&#1604;&#1607;&#1575;&quot;,
 DlgTableCellPad		: &quot;&#1601;&#1575;&#1589;&#1604;&#1607;&#1652; &#1662;&#1585;&#1588;&#1583;&#1607; &#1583;&#1585; &#1587;&#1604;&#1608;&#1604;&quot;,
 DlgTableCaption		: &quot;&#1593;&#1606;&#1608;&#1575;&#1606;&quot;,
 DlgTableSummary		: &quot;&#1582;&#1604;&#1575;&#1589;&#1607;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#1608;&#1740;&#1688;&#1711;&#1740;&#1607;&#1575;&#1740; &#1587;&#1604;&#1608;&#1604;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#1576;&#1575;&#1604;&#1575;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#1605;&#1740;&#1575;&#1606;&quot;,
 DlgCellVerAlignBottom	: &quot;&#1662;&#1575;&#1574;&#1740;&#1606;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#1582;&#1591;&#8204;&#1662;&#1575;&#1740;&#1607;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#1711;&#1587;&#1578;&#1585;&#1583;&#1711;&#1740; &#1587;&#1591;&#1585;&#1607;&#1575;&quot;,
 DlgCellCollSpan		: &quot;&#1711;&#1587;&#1578;&#1585;&#1583;&#1711;&#1740; &#1587;&#1578;&#1608;&#1606;&#1607;&#1575;&quot;,
 DlgCellBackColor	: &quot;&#1585;&#1606;&#1711; &#1662;&#1587;&#8204;&#1586;&#1605;&#1740;&#1606;&#1607;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/fa.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Solujen v&#228;li&quot;,
 DlgTableCellPad		: &quot;Solujen sisennys&quot;,
 DlgTableCaption		: &quot;Otsikko&quot;,
 DlgTableSummary		: &quot;Yhteenveto&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Solun ominaisuudet&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Yl&#246;s&quot;,
 DlgCellVerAlignMiddle	: &quot;Keskelle&quot;,
 DlgCellVerAlignBottom	: &quot;Alas&quot;,
 DlgCellVerAlignBaseline	: &quot;Tekstin alas&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Rivin jatkuvuus&quot;,
 DlgCellCollSpan		: &quot;Sarakkeen jatkuvuus&quot;,
 DlgCellBackColor	: &quot;Taustav&#228;ri&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/fi.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Fjarst&#248;&#240;a millum meskar&quot;,
 DlgTableCellPad		: &quot;Meskubreddi&quot;,
 DlgTableCaption		: &quot;Tabellfr&#225;grei&#240;ing&quot;,
 DlgTableSummary		: &quot;Samandr&#225;ttur&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Mesku eginleikar&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Ovast&quot;,
 DlgCellVerAlignMiddle	: &quot;Mi&#240;jan&quot;,
 DlgCellVerAlignBottom	: &quot;Ni&#240;ast&quot;,
 DlgCellVerAlignBaseline	: &quot;Basislinja&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;R&#248;&#240;ir, meskin fevnir um&quot;,
 DlgCellCollSpan		: &quot;Kolonnur, meskin fevnir um&quot;,
 DlgCellBackColor	: &quot;Bakgrundslitur&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/fo.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Espacement&quot;,
 DlgTableCellPad		: &quot;Contour&quot;,
 DlgTableCaption		: &quot;Titre&quot;,
 DlgTableSummary		: &quot;R&#233;sum&#233;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Propri&#233;t&#233;s de la cellule&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Haut&quot;,
 DlgCellVerAlignMiddle	: &quot;Milieu&quot;,
 DlgCellVerAlignBottom	: &quot;Bas&quot;,
 DlgCellVerAlignBaseline	: &quot;Bas du texte&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Lignes fusionn&#233;es&quot;,
 DlgCellCollSpan		: &quot;Colonnes fusionn&#233;es&quot;,
 DlgCellBackColor	: &quot;Couleur de fond&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/fr-ca.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Espacement&quot;,
 DlgTableCellPad		: &quot;Contour&quot;,
 DlgTableCaption		: &quot;Titre&quot;,
 DlgTableSummary		: &quot;R&#233;sum&#233;&quot;,
+DlgTableHeaders		: &quot;Ent&#234;tes&quot;,
+DlgTableHeadersNone		: &quot;Sans&quot;,
+DlgTableHeadersColumn	: &quot;Premi&#232;re colonne&quot;,
+DlgTableHeadersRow		: &quot;Premi&#232;re Ligne&quot;,
+DlgTableHeadersBoth		: &quot;Les 2&quot;,
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Propri&#233;t&#233;s de la cellule&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Haut&quot;,
 DlgCellVerAlignMiddle	: &quot;Milieu&quot;,
 DlgCellVerAlignBottom	: &quot;Bas&quot;,
 DlgCellVerAlignBaseline	: &quot;Bas du texte&quot;,
+DlgCellType		: &quot;Type de Cellule&quot;,
+DlgCellTypeData		: &quot;Donn&#233;es&quot;,
+DlgCellTypeHeader	: &quot;Ent&#234;te&quot;,
 DlgCellRowSpan		: &quot;Lignes fusionn&#233;es&quot;,
 DlgCellCollSpan		: &quot;Colonnes fusionn&#233;es&quot;,
 DlgCellBackColor	: &quot;Fond&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/fr.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Marxe entre Celas&quot;,
 DlgTableCellPad		: &quot;Marxe interior&quot;,
 DlgTableCaption		: &quot;T&#237;tulo&quot;,
 DlgTableSummary		: &quot;Sumario&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Propriedades da Cela&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Arriba&quot;,
 DlgCellVerAlignMiddle	: &quot;Medio&quot;,
 DlgCellVerAlignBottom	: &quot;Abaixo&quot;,
 DlgCellVerAlignBaseline	: &quot;Li&#241;a de Base&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Ocupar Filas&quot;,
 DlgCellCollSpan		: &quot;Ocupar Columnas&quot;,
 DlgCellBackColor	: &quot;Color de Fondo&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/gl.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#2744;&#2759;&#2738; &#2693;&#2690;&#2724;&#2736;&quot;,
 DlgTableCellPad		: &quot;&#2744;&#2759;&#2738; &#2730;&#2757;&#2721;&#2751;&#2690;&#2711;&quot;,
 DlgTableCaption		: &quot;&#2734;&#2725;&#2750;&#2739;&#2753;&#2690;/&#2709;&#2757;&#2730;&#2765;&#2742;&#2728; &quot;,
 DlgTableSummary		: &quot;&#2719;&#2754;&#2690;&#2709;&#2763; &#2703;&#2745;&#2759;&#2741;&#2750;&#2738;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#2730;&#2690;&#2709;&#2765;&#2724;&#2751;&#2728;&#2750; &#2710;&#2750;&#2728;&#2750;&#2728;&#2750; &#2711;&#2753;&#2723;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#2697;&#2730;&#2736;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#2734;&#2727;&#2765;&#2735; &#2744;&#2759;&#2728;&#2765;&#2719;&#2736;&quot;,
 DlgCellVerAlignBottom	: &quot;&#2728;&#2752;&#2714;&#2759;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#2734;&#2754;&#2739; &#2736;&#2759;&#2710;&#2750;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#2730;&#2690;&#2709;&#2765;&#2724;&#2751; &#2744;&#2765;&#2730;&#2750;&#2728;&quot;,
 DlgCellCollSpan		: &quot;&#2709;&#2761;&#2738;&#2734;/&#2698;&#2733;&#2752; &#2709;&#2719;&#2750;&#2736; &#2744;&#2765;&#2730;&#2750;&#2728;&quot;,
 DlgCellBackColor	: &quot;&#2732;&#2757;&#2709;&#2711;&#2765;&#2736;&#2750;&#2697;&#2728;&#2765;&#2721; &#2736;&#2690;&#2711;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/gu.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#1502;&#1512;&#1493;&#1493;&#1495; &#1514;&#1488;&quot;,
 DlgTableCellPad		: &quot;&#1512;&#1497;&#1508;&#1493;&#1491; &#1514;&#1488;&quot;,
 DlgTableCaption		: &quot;&#1499;&#1497;&#1514;&#1493;&#1489;&quot;,
 DlgTableSummary		: &quot;&#1505;&#1497;&#1499;&#1493;&#1501;&quot;,
+DlgTableHeaders		: &quot;&#1499;&#1493;&#1514;&#1512;&#1493;&#1514;&quot;,
+DlgTableHeadersNone		: &quot;&#1488;&#1497;&#1503;&quot;,
+DlgTableHeadersColumn	: &quot;&#1506;&#1502;&#1493;&#1491;&#1492; &#1512;&#1488;&#1513;&#1493;&#1504;&#1492;&quot;,
+DlgTableHeadersRow		: &quot;&#1513;&#1493;&#1512;&#1492; &#1512;&#1488;&#1513;&#1493;&#1504;&#1492;&quot;,
+DlgTableHeadersBoth		: &quot;&#1513;&#1504;&#1497;&#1492;&#1501;&quot;,
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#1514;&#1499;&#1493;&#1504;&#1493;&#1514; &#1514;&#1488;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#1500;&#1502;&#1506;&#1500;&#1492;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#1500;&#1488;&#1502;&#1510;&#1506;&quot;,
 DlgCellVerAlignBottom	: &quot;&#1500;&#1514;&#1495;&#1514;&#1497;&#1514;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#1511;&#1493; &#1514;&#1495;&#1514;&#1497;&#1514;&quot;,
+DlgCellType		: &quot;&#1505;&#1493;&#1490; &#1514;&#1488;&quot;,
+DlgCellTypeData		: &quot;&#1505;&#1493;&#1490;&quot;,
+DlgCellTypeHeader	: &quot;&#1499;&#1493;&#1514;&#1512;&#1514;&quot;,
 DlgCellRowSpan		: &quot;&#1496;&#1493;&#1493;&#1495; &#1513;&#1493;&#1512;&#1493;&#1514;&quot;,
 DlgCellCollSpan		: &quot;&#1496;&#1493;&#1493;&#1495; &#1506;&#1502;&#1493;&#1491;&#1493;&#1514;&quot;,
 DlgCellBackColor	: &quot;&#1510;&#1489;&#1506; &#1512;&#1511;&#1506;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/he.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#2360;&#2376;&#2354; &#2309;&#2306;&#2340;&#2352;&quot;,
 DlgTableCellPad		: &quot;&#2360;&#2376;&#2354; &#2346;&#2376;&#2337;&#2367;&#2306;&#2327;&quot;,
 DlgTableCaption		: &quot;&#2358;&#2368;&#2352;&#2381;&#2359;&#2325;&quot;,
 DlgTableSummary		: &quot;&#2360;&#2366;&#2352;&#2366;&#2306;&#2358;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#2360;&#2376;&#2354; &#2346;&#2381;&#2352;&#2377;&#2346;&#2352;&#2381;&#2335;&#2368;&#2395;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#2314;&#2346;&#2352;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#2350;&#2343;&#2381;&#2351;&quot;,
 DlgCellVerAlignBottom	: &quot;&#2344;&#2368;&#2330;&#2375;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#2350;&#2370;&#2354;&#2352;&#2375;&#2326;&#2366;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#2346;&#2306;&#2325;&#2381;&#2340;&#2367; &#2360;&#2381;&#2346;&#2376;&#2344;&quot;,
 DlgCellCollSpan		: &quot;&#2325;&#2366;&#2354;&#2350; &#2360;&#2381;&#2346;&#2376;&#2344;&quot;,
 DlgCellBackColor	: &quot;&#2348;&#2376;&#2325;&#2381;&#2327;&#2381;&#2352;&#2366;&#2313;&#2344;&#2381;&#2337; &#2352;&#2306;&#2327;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/hi.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Prostornost &#263;elija&quot;,
 DlgTableCellPad		: &quot;Razmak &#263;elija&quot;,
 DlgTableCaption		: &quot;Naslov&quot;,
 DlgTableSummary		: &quot;Sa&#382;etak&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Svojstva &#263;elije&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Gornje&quot;,
 DlgCellVerAlignMiddle	: &quot;Sredni&#353;nje&quot;,
 DlgCellVerAlignBottom	: &quot;Donje&quot;,
 DlgCellVerAlignBaseline	: &quot;Bazno&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Spajanje redova&quot;,
 DlgCellCollSpan		: &quot;Spajanje kolona&quot;,
 DlgCellBackColor	: &quot;Boja pozadine&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/hr.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Cella t&#233;rk&#246;z&quot;,
 DlgTableCellPad		: &quot;Cella bels&#337; marg&#243;&quot;,
 DlgTableCaption		: &quot;Felirat&quot;,
 DlgTableSummary		: &quot;Le&#237;r&#225;s&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Cella tulajdons&#225;gai&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Tetej&#233;re&quot;,
 DlgCellVerAlignMiddle	: &quot;K&#246;z&#233;pre&quot;,
 DlgCellVerAlignBottom	: &quot;Alj&#225;ra&quot;,
 DlgCellVerAlignBaseline	: &quot;Egyvonalba&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Sorok egyes&#237;t&#233;se&quot;,
 DlgCellCollSpan		: &quot;Oszlopok egyes&#237;t&#233;se&quot;,
 DlgCellBackColor	: &quot;H&#225;tt&#233;rsz&#237;n&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/hu.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Spaziatura celle&quot;,
 DlgTableCellPad		: &quot;Padding celle&quot;,
 DlgTableCaption		: &quot;Intestazione&quot;,
 DlgTableSummary		: &quot;Indice&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Propriet&#224; cella&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;In Alto&quot;,
 DlgCellVerAlignMiddle	: &quot;Centrato&quot;,
 DlgCellVerAlignBottom	: &quot;In Basso&quot;,
 DlgCellVerAlignBaseline	: &quot;Linea base&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Righe occupate&quot;,
 DlgCellCollSpan		: &quot;Colonne occupate&quot;,
 DlgCellBackColor	: &quot;Colore sfondo&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/it.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#12475;&#12523;&#20869;&#20313;&#30333;&quot;,
 DlgTableCellPad		: &quot;&#12475;&#12523;&#20869;&#38291;&#38548;&quot;,
 DlgTableCaption		: &quot;&#65399;&#65388;&#65420;&#65439;&#65404;&#65390;&#65437;&quot;,
 DlgTableSummary		: &quot;&#12486;&#12540;&#12502;&#12523;&#30446;&#30340;/&#27083;&#36896;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#12475;&#12523; &#12503;&#12525;&#12497;&#12486;&#12451;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#19978;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#20013;&#22830;&quot;,
 DlgCellVerAlignBottom	: &quot;&#19979;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#12505;&#12540;&#12473;&#12521;&#12452;&#12531;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#32294;&#24133;(&#34892;&#25968;)&quot;,
 DlgCellCollSpan		: &quot;&#27178;&#24133;(&#21015;&#25968;)&quot;,
 DlgCellBackColor	: &quot;&#32972;&#26223;&#33394;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/ja.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#6018;&#6086;&#6043;&#6070;&#6031;&#6047;&#6082;&#6043;&quot;,
 DlgTableCellPad		: &quot;&#6018;&#6082;&#6040;&#6047;&#6082;&#6043;&quot;,
 DlgTableCaption		: &quot;&#6021;&#6086;&#6030;&#6020;&#6023;&#6078;&#6020;&quot;,
 DlgTableSummary		: &quot;&#6047;&#6081;&#6021;&#6016;&#6098;&#6031;&#6072;&#6047;&#6020;&#6098;&#6017;&#6081;&#6036;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#6016;&#6070;&#6042;&#6016;&#6086;&#6030;&#6031;&#6091; &#6047;&#6082;&#6043;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#6017;&#6070;&#6020;&#6043;&#6078;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#6016;&#6030;&#6098;&#6031;&#6070;&#6043;&quot;,
 DlgCellVerAlignBottom	: &quot;&#6017;&#6070;&#6020;&#6016;&#6098;&#6042;&#6084;&#6040;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#6036;&#6035;&#6098;&#6033;&#6070;&#6031;&#6091;&#6023;&#6070;&#6040;&#6076;&#6043;&#6026;&#6098;&#6027;&#6070;&#6035;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#6036;&#6025;&#6098;&#6023;&#6076;&#6043;&#6023;&#6077;&#6042;&#6037;&#6098;&#6031;&#6081;&#6016;&quot;,
 DlgCellCollSpan		: &quot;&#6036;&#6025;&#6098;&#6023;&#6076;&#6043;&#6023;&#6077;&#6042;&#6024;&#6042;&quot;,
 DlgCellBackColor	: &quot;&#6038;&#6030;&#6092;&#6037;&#6098;&#6035;&#6082;&#6016;&#6017;&#6070;&#6020;&#6016;&#6098;&#6042;&#6084;&#6040;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/km.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#49472; &#44036;&#44201;&quot;,
 DlgTableCellPad		: &quot;&#49472; &#50668;&#48177;&quot;,
 DlgTableCaption		: &quot;&#52897;&#49496;&quot;,
 DlgTableSummary		: &quot;Summary&quot;,	//MISSING
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#49472; &#49444;&#51221;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#50948;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#51473;&#44036;&quot;,
 DlgCellVerAlignBottom	: &quot;&#50500;&#47000;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#44592;&#51456;&#49440;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#49464;&#47196; &#54633;&#52824;&#44592;&quot;,
 DlgCellCollSpan		: &quot;&#44032;&#47196; &#54633;&#52824;&#44592;&quot;,
 DlgCellBackColor	: &quot;&#48176;&#44221; &#49353;&#49345;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/ko.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Tarpas tarp langeli&#371;&quot;,
 DlgTableCellPad		: &quot;Trapas nuo langelio r&#279;mo iki teksto&quot;,
 DlgTableCaption		: &quot;Antra&#353;t&#279;&quot;,
 DlgTableSummary		: &quot;Santrauka&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Langelio savyb&#279;s&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Vir&#353;&#371;&quot;,
 DlgCellVerAlignMiddle	: &quot;Vidur&#303;&quot;,
 DlgCellVerAlignBottom	: &quot;Apa&#269;i&#261;&quot;,
 DlgCellVerAlignBaseline	: &quot;Apatin&#281; linij&#261;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Eilu&#269;i&#371; apjungimas&quot;,
 DlgCellCollSpan		: &quot;Stulpeli&#371; apjungimas&quot;,
 DlgCellBackColor	: &quot;Fono spalva&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/lt.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;R&#363;ti&#326;u atstatums&quot;,
 DlgTableCellPad		: &quot;R&#363;ti&#326;u nob&#299;de&quot;,
 DlgTableCaption		: &quot;Le&#291;enda&quot;,
 DlgTableSummary		: &quot;Anot&#257;cija&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;R&#363;ti&#326;as &#299;pa&#353;&#299;bas&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Aug&#353;a&quot;,
 DlgCellVerAlignMiddle	: &quot;Vidus&quot;,
 DlgCellVerAlignBottom	: &quot;Apak&#353;a&quot;,
 DlgCellVerAlignBaseline	: &quot;Pamatrind&#257;&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Rindu p&#257;rnese&quot;,
 DlgCellCollSpan		: &quot;Kolonnu p&#257;rnese&quot;,
 DlgCellBackColor	: &quot;Fona kr&#257;sa&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/lv.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#1053;&#1199;&#1093; &#1093;&#1086;&#1086;&#1088;&#1086;&#1085;&#1076;&#1099;&#1085; &#1079;&#1072;&#1081; (spacing)&quot;,
 DlgTableCellPad		: &quot;&#1053;&#1199;&#1093; &#1076;&#1086;&#1090;&#1086;&#1088;&#1083;&#1086;&#1093;(padding)&quot;,
 DlgTableCaption		: &quot;&#1058;&#1072;&#1081;&#1083;&#1073;&#1072;&#1088;&quot;,
 DlgTableSummary		: &quot;&#1058;&#1072;&#1081;&#1083;&#1073;&#1072;&#1088;&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#1061;&#1086;&#1086;&#1089;&#1086;&#1085; &#1079;&#1072;&#1081;&#1085; &#1096;&#1080;&#1085;&#1078; &#1095;&#1072;&#1085;&#1072;&#1088;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#1044;&#1101;&#1101;&#1076; &#1090;&#1072;&#1083;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#1044;&#1091;&#1085;&#1076;&quot;,
 DlgCellVerAlignBottom	: &quot;&#1044;&#1086;&#1086;&#1076; &#1090;&#1072;&#1083;&quot;,
 DlgCellVerAlignBaseline	: &quot;Baseline&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;&#1053;&#1080;&#1081;&#1090; &#1084;&#1257;&#1088; (span)&quot;,
 DlgCellCollSpan		: &quot;&#1053;&#1080;&#1081;&#1090; &#1073;&#1072;&#1075;&#1072;&#1085;&#1072; (span)&quot;,
 DlgCellBackColor	: &quot;&#1060;&#1086;&#1085;&#1085;&#1099; &#1257;&#1085;&#1075;&#1257;&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/mn.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Ruangan Antara Sel&quot;,
 DlgTableCellPad		: &quot;Tambahan Ruang Sel&quot;,
 DlgTableCaption		: &quot;Keterangan&quot;,
 DlgTableSummary		: &quot;Summary&quot;,	//MISSING
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Ciri-ciri Sel&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Atas&quot;,
 DlgCellVerAlignMiddle	: &quot;Tengah&quot;,
 DlgCellVerAlignBottom	: &quot;Bawah&quot;,
 DlgCellVerAlignBaseline	: &quot;Garis Dasar&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Penggunaan Baris&quot;,
 DlgCellCollSpan		: &quot;Penggunaan Lajur&quot;,
 DlgCellBackColor	: &quot;Warna Latarbelakang&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/ms.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Cellemarg&quot;,
 DlgTableCellPad		: &quot;Cellepolstring&quot;,
 DlgTableCaption		: &quot;Tittel&quot;,
 DlgTableSummary		: &quot;Sammendrag&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Celleegenskaper&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Topp&quot;,
 DlgCellVerAlignMiddle	: &quot;Midten&quot;,
 DlgCellVerAlignBottom	: &quot;Bunn&quot;,
 DlgCellVerAlignBaseline	: &quot;Bunnlinje&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Radspenn&quot;,
 DlgCellCollSpan		: &quot;Kolonnespenn&quot;,
 DlgCellBackColor	: &quot;Bakgrunnsfarge&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/nb.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -152,13 +152,13 @@ FontFormats			: &quot;Normaal;Met opmaak;Adres;Kop 1;Kop 2;Kop 3;Kop 4;Kop 5;Kop 6;No
 // Alerts and Messages
 ProcessingXHTML		: &quot;Bezig met verwerken XHTML. Even geduld aub...&quot;,
 Done				: &quot;Klaar&quot;,
-PasteWordConfirm	: &quot;De tekst die je plakte lijkt gekopieerd uit te zijn Word. Wil je de tekst opschonen voordat deze geplakt wordt?&quot;,
-NotCompatiblePaste	: &quot;Deze opdracht is beschikbaar voor Internet Explorer versie 5.5 of hoger. Wil je plakken zonder op te schonen?&quot;,
+PasteWordConfirm	: &quot;De tekst die u plakte lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?&quot;,
+NotCompatiblePaste	: &quot;Deze opdracht is beschikbaar voor Internet Explorer versie 5.5 of hoger. Wilt u plakken zonder op te schonen?&quot;,
 UnknownToolbarItem	: &quot;Onbekend item op menubalk \&quot;%1\&quot;&quot;,
 UnknownCommand		: &quot;Onbekende opdrachtnaam: \&quot;%1\&quot;&quot;,
 NotImplemented		: &quot;Opdracht niet ge&#239;mplementeerd.&quot;,
 UnknownToolbarSet	: &quot;Menubalk \&quot;%1\&quot; bestaat niet.&quot;,
-NoActiveX			: &quot;De beveilingsinstellingen van je browser zouden sommige functies van de editor kunnen beperken. De optie \&quot;Activeer ActiveX-elementen en plug-ins\&quot; dient ingeschakeld te worden. Het kan zijn dat er nu functies ontbreken of niet werken.&quot;,
+NoActiveX			: &quot;De beveilingsinstellingen van uw browser zouden sommige functies van de editor kunnen beperken. De optie \&quot;Activeer ActiveX-elementen en plug-ins\&quot; dient ingeschakeld te worden. Het kan zijn dat er nu functies ontbreken of niet werken.&quot;,
 BrowseServerBlocked : &quot;De bestandsbrowser kon niet geopend worden. Zorg ervoor dat pop-up-blokkeerders uit staan.&quot;,
 DialogBlocked		: &quot;Kan het dialoogvenster niet weergeven. Zorg ervoor dat pop-up-blokkeerders uit staan.&quot;,
 VisitLinkBlocked	: &quot;Het was niet mogelijk een nieuw venster te openen. Controleer of er geen pop-up-blocker aktief is.&quot;,
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Afstand tussen cellen&quot;,
 DlgTableCellPad		: &quot;Afstand vanaf rand cel&quot;,
 DlgTableCaption		: &quot;Naam&quot;,
 DlgTableSummary		: &quot;Samenvatting&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Eigenschappen cel&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Boven&quot;,
 DlgCellVerAlignMiddle	: &quot;Midden&quot;,
 DlgCellVerAlignBottom	: &quot;Beneden&quot;,
 DlgCellVerAlignBaseline	: &quot;Basislijn&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Overkoepeling rijen&quot;,
 DlgCellCollSpan		: &quot;Overkoepeling kolommen&quot;,
 DlgCellBackColor	: &quot;Achtergrondkleur&quot;,
@@ -360,7 +368,7 @@ PasteErrorCopy	: &quot;De beveiligingsinstelling van de browser verhinderen het autom
 PasteAsText		: &quot;Plakken als platte tekst&quot;,
 PasteFromWord	: &quot;Plakken als Word-gegevens&quot;,
 
-DlgPasteMsg2	: &quot;Plak de tekst in het volgende vak gebruik makend van je toetstenbord (&lt;strong&gt;Ctrl+V&lt;/strong&gt;) en klik op &lt;strong&gt;OK&lt;/strong&gt;.&quot;,
+DlgPasteMsg2	: &quot;Plak de tekst in het volgende vak gebruik makend van uw toetsenbord (&lt;strong&gt;Ctrl+V&lt;/strong&gt;) en klik op &lt;strong&gt;OK&lt;/strong&gt;.&quot;,
 DlgPasteSec		: &quot;Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.&quot;,
 DlgPasteIgnoreFont		: &quot;Negeer \&quot;Font Face\&quot;-definities&quot;,
 DlgPasteRemoveStyles	: &quot;Verwijder \&quot;Style\&quot;-definities&quot;,
@@ -392,7 +400,7 @@ DlgSpellNoChanges		: &quot;Klaar met spellingscontrole: geen woorden aangepast&quot;,
 DlgSpellOneChange		: &quot;Klaar met spellingscontrole: &#233;&#233;n woord aangepast&quot;,
 DlgSpellManyChanges		: &quot;Klaar met spellingscontrole: %1 woorden aangepast&quot;,
 
-IeSpellDownload			: &quot;De spellingscontrole niet ge&#239;nstalleerd. Wil je deze nu downloaden?&quot;,
+IeSpellDownload			: &quot;De spellingscontrole niet ge&#239;nstalleerd. Wilt u deze nu downloaden?&quot;,
 
 // Button Dialog
 DlgButtonText		: &quot;Tekst (waarde)&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/nl.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Cellemarg&quot;,
 DlgTableCellPad		: &quot;Cellepolstring&quot;,
 DlgTableCaption		: &quot;Tittel&quot;,
 DlgTableSummary		: &quot;Sammendrag&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Celleegenskaper&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Topp&quot;,
 DlgCellVerAlignMiddle	: &quot;Midten&quot;,
 DlgCellVerAlignBottom	: &quot;Bunn&quot;,
 DlgCellVerAlignBaseline	: &quot;Bunnlinje&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Radspenn&quot;,
 DlgCellCollSpan		: &quot;Kolonnespenn&quot;,
 DlgCellBackColor	: &quot;Bakgrunnsfarge&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/no.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Odst&#281;p pomi&#281;dzy kom&#243;rkami&quot;,
 DlgTableCellPad		: &quot;Margines wewn&#281;trzny kom&#243;rek&quot;,
 DlgTableCaption		: &quot;Tytu&#322;&quot;,
 DlgTableSummary		: &quot;Podsumowanie&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;W&#322;a&#347;ciwo&#347;ci kom&#243;rki&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Do g&#243;ry&quot;,
 DlgCellVerAlignMiddle	: &quot;Do &#347;rodka&quot;,
 DlgCellVerAlignBottom	: &quot;Do do&#322;u&quot;,
 DlgCellVerAlignBaseline	: &quot;Do linii bazowej&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Zaj&#281;to&#347;&#263; wierszy&quot;,
 DlgCellCollSpan		: &quot;Zaj&#281;to&#347;&#263; kolumn&quot;,
 DlgCellBackColor	: &quot;Kolor t&#322;a&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/pl.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Espa&#231;amento&quot;,
 DlgTableCellPad		: &quot;Enchimento&quot;,
 DlgTableCaption		: &quot;Legenda&quot;,
 DlgTableSummary		: &quot;Resumo&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Formatar c&#233;lula&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Superior&quot;,
 DlgCellVerAlignMiddle	: &quot;Centralizado&quot;,
 DlgCellVerAlignBottom	: &quot;Inferior&quot;,
 DlgCellVerAlignBaseline	: &quot;Baseline&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Transpor Linhas&quot;,
 DlgCellCollSpan		: &quot;Transpor Colunas&quot;,
 DlgCellBackColor	: &quot;Cor do Plano de Fundo&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/pt-br.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Esp. e/c&#233;lulas&quot;,
 DlgTableCellPad		: &quot;Esp. interior&quot;,
 DlgTableCaption		: &quot;T&#237;tulo&quot;,
 DlgTableSummary		: &quot;Sum&#225;rio&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Propriedades da C&#233;lula&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Topo&quot;,
 DlgCellVerAlignMiddle	: &quot;M&#233;dio&quot;,
 DlgCellVerAlignBottom	: &quot;Fundi&quot;,
 DlgCellVerAlignBaseline	: &quot;Linha de Base&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Unir Linhas&quot;,
 DlgCellCollSpan		: &quot;Unir Colunas&quot;,
 DlgCellBackColor	: &quot;Cor do Fundo&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/pt.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;Spa&#355;iu &#238;ntre celule&quot;,
 DlgTableCellPad		: &quot;Spa&#355;iu &#238;n cadrul celulei&quot;,
 DlgTableCaption		: &quot;Titlu (Caption)&quot;,
 DlgTableSummary		: &quot;Rezumat&quot;,
+DlgTableHeaders		: &quot;Headers&quot;,	//MISSING
+DlgTableHeadersNone		: &quot;None&quot;,	//MISSING
+DlgTableHeadersColumn	: &quot;First column&quot;,	//MISSING
+DlgTableHeadersRow		: &quot;First Row&quot;,	//MISSING
+DlgTableHeadersBoth		: &quot;Both&quot;,	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;Propriet&#259;&#355;ile celulei&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;Sus&quot;,
 DlgCellVerAlignMiddle	: &quot;Mijloc&quot;,
 DlgCellVerAlignBottom	: &quot;Jos&quot;,
 DlgCellVerAlignBaseline	: &quot;Linia de jos (Baseline)&quot;,
+DlgCellType		: &quot;Cell Type&quot;,	//MISSING
+DlgCellTypeData		: &quot;Data&quot;,	//MISSING
+DlgCellTypeHeader	: &quot;Header&quot;,	//MISSING
 DlgCellRowSpan		: &quot;Lungimea &#238;n linii (Span)&quot;,
 DlgCellCollSpan		: &quot;Lungimea &#238;n coloane (Span)&quot;,
 DlgCellBackColor	: &quot;Culoarea fundalului&quot;,</diff>
      <filename>public/javascripts/fckeditor/editor/lang/ro.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -44,7 +44,7 @@ RemoveFormat		: &quot;&#1059;&#1073;&#1088;&#1072;&#1090;&#1100; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077;&quot;,
 InsertLinkLbl		: &quot;&#1057;&#1089;&#1099;&#1083;&#1082;&#1072;&quot;,
 InsertLink			: &quot;&#1042;&#1089;&#1090;&#1072;&#1074;&#1080;&#1090;&#1100;/&#1056;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1089;&#1089;&#1099;&#1083;&#1082;&#1091;&quot;,
 RemoveLink			: &quot;&#1059;&#1073;&#1088;&#1072;&#1090;&#1100; &#1089;&#1089;&#1099;&#1083;&#1082;&#1091;&quot;,
-VisitLink			: &quot;Open Link&quot;,	//MISSING
+VisitLink			: &quot;&#1055;&#1077;&#1088;&#1077;&#1081;&#1090;&#1080; &#1087;&#1086; &#1089;&#1089;&#1099;&#1083;&#1082;&#1077;&quot;,
 Anchor				: &quot;&#1042;&#1089;&#1090;&#1072;&#1074;&#1080;&#1090;&#1100;/&#1056;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1103;&#1082;&#1086;&#1088;&#1100;&quot;,
 AnchorDelete		: &quot;&#1059;&#1073;&#1088;&#1072;&#1090;&#1100; &#1103;&#1082;&#1086;&#1088;&#1100;&quot;,
 InsertImageLbl		: &quot;&#1048;&#1079;&#1086;&#1073;&#1088;&#1072;&#1078;&#1077;&#1085;&#1080;&#1077;&quot;,
@@ -73,9 +73,9 @@ BlockJustify		: &quot;&#1055;&#1086; &#1096;&#1080;&#1088;&#1080;&#1085;&#1077;&quot;,
 DecreaseIndent		: &quot;&#1059;&#1084;&#1077;&#1085;&#1100;&#1096;&#1080;&#1090;&#1100; &#1086;&#1090;&#1089;&#1090;&#1091;&#1087;&quot;,
 IncreaseIndent		: &quot;&#1059;&#1074;&#1077;&#1083;&#1080;&#1095;&#1080;&#1090;&#1100; &#1086;&#1090;&#1089;&#1090;&#1091;&#1087;&quot;,
 Blockquote			: &quot;&#1062;&#1080;&#1090;&#1072;&#1090;&#1072;&quot;,
-CreateDiv			: &quot;Create Div Container&quot;,	//MISSING
-EditDiv				: &quot;Edit Div Container&quot;,	//MISSING
-DeleteDiv			: &quot;Remove Div Container&quot;,	//MISSING
+CreateDiv			: &quot;&#1057;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; Div &#1082;&#1086;&#1085;&#1090;&#1077;&#1081;&#1085;&#1077;&#1088;&quot;,
+EditDiv				: &quot;&#1056;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; Div &#1082;&#1086;&#1085;&#1090;&#1077;&#1081;&#1085;&#1077;&#1088;&quot;,
+DeleteDiv			: &quot;&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; Div &#1082;&#1086;&#1085;&#1090;&#1077;&#1081;&#1085;&#1077;&#1088;&quot;,
 Undo				: &quot;&#1054;&#1090;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100;&quot;,
 Redo				: &quot;&#1055;&#1086;&#1074;&#1090;&#1086;&#1088;&#1080;&#1090;&#1100;&quot;,
 NumberedListLbl		: &quot;&#1053;&#1091;&#1084;&#1077;&#1088;&#1086;&#1074;&#1072;&#1085;&#1085;&#1099;&#1081; &#1089;&#1087;&#1080;&#1089;&#1086;&#1082;&quot;,
@@ -308,6 +308,11 @@ DlgTableCellSpace	: &quot;&#1055;&#1088;&#1086;&#1084;&#1077;&#1078;&#1091;&#1090;&#1086;&#1082; (spacing)&quot;,
 DlgTableCellPad		: &quot;&#1054;&#1090;&#1089;&#1090;&#1091;&#1087; (padding)&quot;,
 DlgTableCaption		: &quot;&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;&quot;,
 DlgTableSummary		: &quot;&#1056;&#1077;&#1079;&#1102;&#1084;&#1077;&quot;,
+DlgTableHeaders		: &quot;&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1082;&#1080;&quot;,
+DlgTableHeadersNone		: &quot;&#1053;&#1077;&#1090;&quot;,
+DlgTableHeadersColumn	: &quot;&#1055;&#1077;&#1088;&#1074;&#1099;&#1081; &#1089;&#1090;&#1086;&#1083;&#1073;&#1077;&#1094;&quot;,
+DlgTableHeadersRow		: &quot;&#1055;&#1077;&#1088;&#1074;&#1072;&#1103; &#1089;&#1090;&#1088;&#1086;&#1082;&#1072;&quot;,
+DlgTableHeadersBoth		: &quot;&#1054;&#1073;&#1072; &#1074;&#1072;&#1088;&#1080;&#1072;&#1085;&#1090;&#1072;&quot;,
 
 // Table Cell Dialog
 DlgCellTitle		: &quot;&#1057;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;&#1072; &#1103;&#1095;&#1077;&#1081;&#1082;&#1080;&quot;,
@@ -330,6 +335,9 @@ DlgCellVerAlignTop	: &quot;&#1057;&#1074;&#1077;&#1088;&#1093;&#1091;&quot;,
 DlgCellVerAlignMiddle	: &quot;&#1055;&#1086;&#1089;&#1077;&#1088;&#1077;&#1076;&#1080;&#1085;&#1077;&quot;,
 DlgCellVerAlignBottom	: &quot;&#1057;&#1085;&#1080;&#1079;&#1091;&quot;,
 DlgCellVerAlignBaseline	: &quot;&#1055;&#1086; &#1073;&#1072;&#1079;&#1086;&#1074;&#1086;&#1081; &#1083;&#1080;&#1085;&#1080;&#1080;&quot;,
+DlgCellType		: &quot;&#1058;&#1080;&#1087; &#1103;&#1095;&#1077;&#1081;&#1082;&#1080;&quot;,
+DlgCellTypeData		: &quot;&#1044;&#1072;&#1085;&#1085;&#1099;&#1077;&quot;,
+DlgCellTypeHeader	: &quot;&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;&quot;,
 DlgCellRowSpan		: &quot;&#1044;&#1080;&#1072;&#1087;&#1072;&#1079;&#1086;&#1085; &#1089;&#1090;&#1088;&#1086;&#1082; (span)&quot;,
 DlgCellCollSpan		: &quot;&#1044;&#1080;&#1072;&#1087;&#1072;&#1079;&#1086;&#1085; &#1082;&#1086;&#1083;&#1086;&#1085;&#1086;&#1082; (span)&quot;,
 DlgCellBackColor	: &quot;&#1062;&#1074;&#1077;&#1090; &#1092;&#1086;&#1085;&#1072;&quot;,
@@ -519,8 +527,8 @@ DlgAboutVersion		: &quot;&#1042;&#1077;&#1088;&#1089;&#1080;&#1103;&quot;,
 DlgAboutInfo		: &quot;&#1044;&#1083;&#1103; &#1073;&#1086;&#1083;&#1100;&#1096;&#1077;&#1081; &#1080;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1080;&#1080;, &#1087;&#1086;&#1089;&#1077;&#1090;&#1080;&#1090;&#1077;&quot;,
 
 // Div Dialog
-DlgDivGeneralTab	: &quot;General&quot;,	//MISSING
-DlgDivAdvancedTab	: &quot;Advanced&quot;,	//MISSING
-DlgDivStyle		: &quot;Style&quot;,	//MISSING
-DlgDivInlineStyle	: &quot;Inline Style&quot;	//MISSING
+DlgDivGeneralTab	: &quot;&#1048;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1080;&#1103;&quot;,
+DlgDivAdvancedTab	: &quot;&#1056;&#1072;&#1089;&#1096;&#1080;&#1088;&#1077;&#1085;&#1085;&#1099;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;&quot;,
+DlgDivStyle		: &quot;&#1057;&#1090;&#1080;&#1083;&#1100;&quot;,
+DlgDivInlineStyle	: &quot;&#1042;&#1089;&#1090;&#1088;&#1086;&#1077;&#1085;&#1085;&#1099;&#1077; &#1089;&#1090;&#1080;&#1083;&#1080;&quot;
 };</diff>
      <filename>public/javascripts/fckeditor/editor/lang/ru.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &#65279;/*
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  *
  * == BEGIN LICENSE ==
  *
@@ -30,7 +30,7 @@ ToolbarCollapse		: &quot;Skry&#357; panel n&#225;strojov&quot;,
 ToolbarExpand		: &quot;Zobrazi&#357; panel n&#225;strojov&quot;,
 
 // Toolbar Items and Context Menu
-Save				: &quot;Ulo&#382;it&quot;,
+Save				: &quot;Ulo&#382;i&#357;&quot;,
 NewPage				: &quot;Nov&#225; str&#225;nka&quot;,
 Preview				: &quot;N&#225;h&#318;ad&quot;,
 Cut					: &quot;Vystrihn&#250;&#357;&quot;,
@@ -44,9 +44,9 @@ RemoveFormat		: &quot;Odstr&#225;ni&#357; form&#225;tovanie&quot;,
 InsertLinkLbl		: &quot;Odkaz&quot;,
 InsertLink			: &quot;Vlo&#382;i&#357;/zmeni&#357; odkaz&quot;,
 RemoveLink			: &quot;Odstr&#225;ni&#357; odkaz&quot;,
-VisitLink			: &quot;Open Link&quot;,	//MISSING
+VisitLink			: &quot;&#205;s&#357; na odkaz&quot;,
 Anchor				: &quot;Vlo&#382;i&#357;/zmeni&#357; kotvu&quot;,
-AnchorDelete		: &quot;Remove Anchor&quot;,	//MISSING
+AnchorDelete		: &quot;Odstr&#225;ni&#357; kotvu&quot;,
 InsertImageLbl		: &quot;Obr&#225;zok&quot;,
 InsertImage			: &quot;Vlo&#382;i&#357;/zmeni&#357; obr&#225;zok&quot;,
 InsertFlashLbl		: &quot;Flash&quot;,
@@ -59,7 +59,7 @@ InsertSpecialCharLbl: &quot;&#352;peci&#225;lne znaky&quot;,
 InsertSpecialChar	: &quot;Vlo&#382;i&#357; &#353;peci&#225;lne znaky&quot;,
 InsertSmileyLbl		: &quot;Smajl&#237;ky&quot;,
 InsertSmiley		: &quot;Vlo&#382;i&#357; smajl&#237;ka&quot;,
-About				: &quot;O aplik&#225;ci FCKeditor&quot;,
+About				: &quot;O aplik&#225;cii FCKeditor&quot;,
 Bold				: &quot;Tu&#269;n&#233;&quot;,
 Italic				: &quot;Kurz&#237;va&quot;,
 Underline			: &quot;Pod&#269;iarknut&#233;&quot;,
@@ -72,14 +72,14 @@ RightJustify		: &quot;Zarovna&#357; vpravo&quot;,
 BlockJustify		: &quot;Zarovna&#357; do bloku&quot;,
 DecreaseIndent		: &quot;Zmen&#353;i&#357; odsadenie&quot;,
 IncreaseIndent		: &quot;Zv&#228;&#269;&#353;i&#357; odsadenie&quot;,
-Blockquote			: &quot;Blockquote&quot;,	//MISSING
-CreateDiv			: &quot;Create Div Container&quot;,	//MISSING
-EditDiv				: &quot;Edit Div Container&quot;,	//MISSING
-DeleteDiv			: &quot;Remove Div Container&quot;,	//MISSING
+Blockquote			: &quot;Cit&#225;cia&quot;,
+CreateDiv			: &quot;Vytvori&#357; Div kontajner&quot;,
+EditDiv				: &quot;Editova&#357; Div kontajner&quot;,
+DeleteDiv			: &quot;Odstr&#225;ni&#357; Div kontajner&quot;,
 Undo				: &quot;Sp&#228;&#357;&quot;,
 Redo				: &quot;Znovu&quot;,
 NumberedListLbl		: &quot;&#268;&#237;slovanie&quot;,
-NumberedList		: &quot;Vlo&#382;i&#357;/odstr&#225;ni&#357; &#269;&#237;slovan&#253; zoznam&quot;,
+NumberedList		: &quot;Vlo&#382;i&#357;/odstr&#225;ni&#357; &#269;&#237;slovanie&quot;,
 BulletedListLbl		