summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorCiro Mattia Gonano <ciromattia@gmail.com>2013-09-11 15:56:48 +0200
committerCiro Mattia Gonano <ciromattia@gmail.com>2013-09-11 15:57:07 +0200
commit3069eaf35e833ffe4a1c1c7829dd7e168ae27420 (patch)
treed0c2e4d934cc34ba7d4232f759923b5a257dcb21 /framework
parentb833247ce597ec26159b46c8dfbea7f1e265950b (diff)
Merge up to r3319
Diffstat (limited to 'framework')
-rw-r--r--framework/3rdParty/SafeHtml/TSafeHtmlParser.php30
-rw-r--r--framework/3rdParty/WsdlGen/Wsdl.php11
-rw-r--r--framework/3rdParty/WsdlGen/WsdlGenerator.php32
-rw-r--r--framework/Caching/TAPCCache.php10
-rw-r--r--framework/Caching/TEACache.php1
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php2
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php2
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php2
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php2
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php2
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php2
-rw-r--r--framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php2
-rw-r--r--framework/PradoBase.php6
-rw-r--r--framework/TApplication.php13
-rw-r--r--framework/Web/Javascripts/packages.php7
-rw-r--r--framework/Web/Javascripts/source/prado/controls/htmlarea.js4
-rw-r--r--framework/Web/Javascripts/source/prado/controls/htmlarea4.js58
-rw-r--r--framework/Web/Javascripts/source/prado/datepicker/datepicker.js5
-rw-r--r--framework/Web/Javascripts/source/prado/scriptaculous-adapter.js2
-rw-r--r--framework/Web/Javascripts/source/prado/validator/validation3.js2
-rw-r--r--framework/Web/Javascripts/source/prototype-1.7/prototype.js7
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/changelog.txt213
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ar.js156
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/bg_BG.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/bs.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ca.js118
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/cs.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/cy.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/da.js156
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/de.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/de_AT.js156
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/el.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/es.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/et.js173
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/eu.js174
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/fa.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/fi.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/fo.js156
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/fr_FR.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/gl.js156
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/he_IL.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/hr.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/hu_HU.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/id.js71
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/it.js174
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ja.js174
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ka_GE.js172
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ko_KR.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/lb.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/lt.js76
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/lv.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/nb_NO.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/nl.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/pl.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/pt_BR.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/pt_PT.js173
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ro.js174
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ru.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/si_LK.js156
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/sk.js174
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/sl_SI.js152
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/sr.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/sv_SE.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ta.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ta_IN.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/th_TH.js156
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/tr_TR.js174
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/ug.js156
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/uk.js159
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/uk_UA.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/vi.js96
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/vi_VN.js173
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/zh_CN.js173
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/langs/zh_TW.js175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/license.txt504
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/advlist/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/anchor/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/autolink/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/autoresize/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/autosave/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/bbcode/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/charmap/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/code/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/compat3x/editable_selects.js70
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/compat3x/form_utils.js210
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/compat3x/mctabs.js162
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/compat3x/tiny_mce_popup.js435
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/compat3x/validate.js252
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/contextmenu/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/directionality/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-cool.gifbin0 -> 354 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-cry.gifbin0 -> 329 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-embarassed.gifbin0 -> 331 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-foot-in-mouth.gifbin0 -> 342 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-frown.gifbin0 -> 340 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-innocent.gifbin0 -> 336 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-kiss.gifbin0 -> 338 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-laughing.gifbin0 -> 343 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-money-mouth.gifbin0 -> 321 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-sealed.gifbin0 -> 323 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-smile.gifbin0 -> 344 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-surprised.gifbin0 -> 338 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-tongue-out.gifbin0 -> 328 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-undecided.gifbin0 -> 337 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-wink.gifbin0 -> 350 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-yell.gifbin0 -> 336 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/emoticons/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/example/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/example_dependency/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/fullpage/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/fullscreen/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/hr/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/image/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/importcss/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/insertdatetime/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/layer/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/legacyoutput/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/link/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/lists/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/media/moxieplayer.swfbin0 -> 20017 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/media/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/nonbreaking/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/noneditable/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/pagebreak/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/paste/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/preview/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/print/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/save/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/searchreplace/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/spellchecker/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/tabfocus/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/table/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/template/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/textcolor/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/visualblocks/css/visualblocks.css136
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/visualblocks/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/visualchars/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/plugins/wordcount/plugin.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/content.inline.min.css1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/content.min.css1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.eotbin0 -> 8344 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.svg175
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.ttfbin0 -> 8160 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.woffbin0 -> 8336 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.eotbin0 -> 8268 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.svg153
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.ttfbin0 -> 8104 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.woffbin0 -> 8400 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/readme.md1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/anchor.gifbin0 -> 53 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/loader.gifbin0 -> 2608 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/object.gifbin0 -> 152 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/trans.gifbin0 -> 43 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/wline.gifbin0 -> 46 bytes
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/skin.ie7.min.css1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/skins/lightgray/skin.min.css1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/themes/modern/theme.min.js1
-rwxr-xr-xframework/Web/Javascripts/source/tinymce-405/tinymce.min.js10
-rw-r--r--framework/Web/UI/WebControls/TAccordion.php1
-rw-r--r--framework/Web/UI/WebControls/TBaseValidator.php12
-rw-r--r--framework/Web/UI/WebControls/TDatePicker.php12
-rw-r--r--framework/Web/UI/WebControls/THtmlArea4.php474
-rwxr-xr-xframework/prado-cli4
-rw-r--r--framework/prado-cli.bat39
-rwxr-xr-xframework/prado-cli.php881
-rw-r--r--framework/pradolite.php861
166 files changed, 12282 insertions, 1123 deletions
diff --git a/framework/3rdParty/SafeHtml/TSafeHtmlParser.php b/framework/3rdParty/SafeHtml/TSafeHtmlParser.php
index f26c0ae1..29f2cb65 100644
--- a/framework/3rdParty/SafeHtml/TSafeHtmlParser.php
+++ b/framework/3rdParty/SafeHtml/TSafeHtmlParser.php
@@ -364,21 +364,21 @@ class TSafeHtmlParser
}
}
- $tempval = preg_replace_callback(
- '/&#(\d+);?/m',
- function ($matches) {
- return chr($matches[0]);
- },
- $value
- ); //"'
-
- $tempval = preg_replace_callback(
- '/&#x([0-9a-f]+);?/mi',
- function ($matches) {
- return chr(hexdec($matches[0]));
- },
- $tempval
- );
+ $tempval = preg_replace_callback(
+ '/&#(\d+);?/m',
+ function ($matches) {
+ return chr($matches[0]);
+ },
+ $value
+ ); //"'
+
+ $tempval = preg_replace_callback(
+ '/&#x([0-9a-f]+);?/mi',
+ function ($matches) {
+ return chr(hexdec($matches[0]));
+ },
+ $tempval
+ );
if ((in_array($name, $this->protocolAttributes)) &&
(strpos($tempval, ':') !== false))
diff --git a/framework/3rdParty/WsdlGen/Wsdl.php b/framework/3rdParty/WsdlGen/Wsdl.php
index 5d9c6aec..8cfee9cc 100644
--- a/framework/3rdParty/WsdlGen/Wsdl.php
+++ b/framework/3rdParty/WsdlGen/Wsdl.php
@@ -12,7 +12,7 @@
*
* @author Marcus Nyeholt <tanus@users.sourceforge.net>
* @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: Wsdl.php 3188 2012-07-12 12:13:23Z ctrlaltca $
+ * @version $Id: Wsdl.php 3314 2013-08-20 10:00:47Z ctrlaltca $
* @package System.Web.Services.SOAP
*/
@@ -90,7 +90,8 @@ class Wsdl
{
$this->_encoding = $encoding;
$this->serviceName = $name;
- if ($serviceUri == '') $serviceUri = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
+ $protocol=(isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']!=='off'))?'https://':'http://';
+ if ($serviceUri === '') $serviceUri = $protocol.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$this->serviceUri = str_replace('&amp;', '&', $serviceUri);
$this->types = new ArrayObject();
$this->targetNamespace = 'urn:'.$name.'wsdl';
@@ -167,6 +168,12 @@ class Wsdl
$e = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:element');
$e->setAttribute('name', $elem['name']);
$e->setAttribute('type', $elem['type']);
+ if($elem['minOc']!==false)
+ $e->setAttribute('minOccurs',$elem['minOc']);
+ if($elem['maxOc']!==false)
+ $e->setAttribute('maxOccurs',$elem['maxOc']);
+ if($elem['nil']!==false)
+ $e->setAttribute('nillable',$elem['nil']);
$all->appendChild($e);
}
$complexType->appendChild($all);
diff --git a/framework/3rdParty/WsdlGen/WsdlGenerator.php b/framework/3rdParty/WsdlGen/WsdlGenerator.php
index b208fb8b..0bc2e6d4 100644
--- a/framework/3rdParty/WsdlGen/WsdlGenerator.php
+++ b/framework/3rdParty/WsdlGen/WsdlGenerator.php
@@ -11,7 +11,7 @@
* This file is part of the PRADO framework from {@link http://www.xisc.com}
*
* @author Marcus Nyeholt <tanus@users.sourceforge.net>
- * @version $Id: WsdlGenerator.php 3188 2012-07-12 12:13:23Z ctrlaltca $
+ * @version $Id: WsdlGenerator.php 3314 2013-08-20 10:00:47Z ctrlaltca $
* @package System.Web.Services.SOAP
*/
@@ -282,11 +282,35 @@ class WsdlGenerator
$comment = $property->getDocComment();
if(strpos($comment, '@soapproperty') !== false)
{
- if (preg_match('/@var\s+(\w+(\[\])?)\s+\$(\w+)/mi', $comment, $match)) {
+ if(preg_match('/@var\s+([\w\.]+(\[\s*\])?)\s*?\$(.*)$/mi',$comment,$matches))
+ {
+ // support nillable, minOccurs, maxOccurs attributes
+ $nillable=$minOccurs=$maxOccurs=false;
+ if(preg_match('/{(.+)}/',$matches[3],$attr))
+ {
+ $matches[3]=str_replace($attr[0],'',$matches[3]);
+ if(preg_match_all('/((\w+)\s*=\s*(\w+))/mi',$attr[1],$attr))
+ {
+ foreach($attr[2] as $id=>$prop)
+ {
+ if(strcasecmp($prop,'nillable')===0)
+ $nillable=$attr[3][$id] ? 'true' : 'false';
+ elseif(strcasecmp($prop,'minOccurs')===0)
+ $minOccurs=(int)$attr[3][$id];
+ elseif(strcasecmp($prop,'maxOccurs')===0)
+ $maxOccurs=(int)$attr[3][$id];
+ }
+ }
+ }
+
$param = array();
- $param['type'] = $this->convertType($match[1]);
- $param['name'] = $match[3];
+ $param['type'] = $this->convertType($matches[1]);
+ $param['name'] = trim($matches[3]);
+ $param['nil'] = $nillable;
+ $param['minOc'] = $minOccurs;
+ $param['maxOc'] = $maxOccurs;
$this->types[$className][] = $param;
+
}
}
}
diff --git a/framework/Caching/TAPCCache.php b/framework/Caching/TAPCCache.php
index 53e3e388..8826fac6 100644
--- a/framework/Caching/TAPCCache.php
+++ b/framework/Caching/TAPCCache.php
@@ -6,7 +6,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @version $Id: TAPCCache.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TAPCCache.php 3281 2013-03-13 21:01:40Z ctrlaltca $
* @package System.Caching
*/
@@ -41,7 +41,7 @@
*
* @author Alban Hanry <compte_messagerie@hotmail.com>
* @author Knut Urdalen <knut.urdalen@gmail.com>
- * @version $Id: TAPCCache.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TAPCCache.php 3281 2013-03-13 21:01:40Z ctrlaltca $
* @package System.Caching
* @since 3.0b
*/
@@ -103,11 +103,7 @@ class TAPCCache extends TCache
*/
protected function addValue($key,$value,$expire)
{
- if(function_exists('apc_add')) {
- return apc_add($key,$value,$expire);
- } else {
- throw new TNotSupportedException('apccache_add_unsupported');
- }
+ return apc_add($key,$value,$expire);
}
/**
diff --git a/framework/Caching/TEACache.php b/framework/Caching/TEACache.php
new file mode 100644
index 00000000..6a20f63b
--- /dev/null
+++ b/framework/Caching/TEACache.php
@@ -0,0 +1 @@
+<?php /** * TEACache class file * * @author Dario rigolin <drigolin@e-portaltech.it> * @link http://www.pradosoft.com/ * @copyright Copyright &copy; 2005-2013 PradoSoft * @license http://www.pradosoft.com/license/ * @version $Id: TEACache.php 3281 2013-03-13 19:31:03Z xue $ * @package System.Caching */ /** * TEACache class * * TEACache implements a cache application module based on {@link http://eaccelerator.net/ eAccelerator}. * * By definition, cache does not ensure the existence of a value * even if it never expires. Cache is not meant to be an persistent storage. * * To use this module, the eAccelerator PHP extension must be loaded and enabled * * Please note that as of v0.9.6, eAccelerator no longer supports data caching. * This means if you still want to use this component, your eAccelerator should be of 0.9.5.x or lower version. * * Some usage examples of TEACache are as follows, * <code> * $cache=new TEACache; // TEACache may also be loaded as a Prado application module * $cache->init(null); * $cache->add('object',$object); * $object2=$cache->get('object'); * </code> * * If loaded, TEACache will register itself with {@link TApplication} as the * cache module. It can be accessed via {@link TApplication::getCache()}. * * TEACache may be configured in application configuration file as follows * <code> * <module id="cache" class="System.Caching.TEACache" /> * </code> * * @author Dario Rigolin <drigolin@e-portaltech.it> * @version $Id: TEACache.php 3281 2013-03-13 19:31:03Z xue $ * @package System.Caching * @since 3.2.2 */ class TEACache extends TCache { /** * Initializes this module. * This method is required by the IModule interface. * @param TXmlElement configuration for this module, can be null * @throws TConfigurationException if eaccelerator extension is not installed or not started, check your php.ini */ public function init($config) { if(!function_exists('eaccelerator_get')) throw new TConfigurationException('eacceleratorcache_extension_required'); parent::init($config); } /** * Retrieves a value from cache with a specified key. * This is the implementation of the method declared in the parent class. * @param string a unique key identifying the cached value * @return string the value stored in cache, false if the value is not in the cache or expired. */ protected function getValue($key) { $value = eaccelerator_get($key); return ($value === null) ? false : $value; } /** * Stores a value identified by a key in cache. * This is the implementation of the method declared in the parent class. * * @param string the key identifying the value to be cached * @param string the value to be cached * @param integer the number of seconds in which the cached value will expire. 0 means never expire. * @return boolean true if the value is successfully stored into cache, false otherwise */ protected function setValue($key,$value,$expire) { return eaccelerator_put($key,$value,$expire); } /** * Stores a value identified by a key into cache if the cache does not contain this key. * This is the implementation of the method declared in the parent class. * * @param string the key identifying the value to be cached * @param string the value to be cached * @param integer the number of seconds in which the cached value will expire. 0 means never expire. * @return boolean true if the value is successfully stored into cache, false otherwise */ protected function addValue($key,$value,$expire) { return (null === eaccelerator_get($key)) ? $this->setValue($key,$value,$expire) : false; } /** * Deletes a value with the specified key from cache * This is the implementation of the method declared in the parent class. * @param string the key of the value to be deleted * @return boolean if no error happens during deletion */ protected function deleteValue($key) { return eaccelerator_rm($key); } /** * Deletes all values from cache. * Be careful of performing this operation if the cache is shared by multiple applications. */ public function flush() { // first, remove expired content from cache eaccelerator_gc(); // now, remove leftover cache-keys $keys = eaccelerator_list_keys(); foreach($keys as $key) $this->deleteValue(substr($key['name'], 1)); return true; } } \ No newline at end of file
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php
index caeacf63..71f015b8 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TIbmScaffoldInput.php
@@ -6,7 +6,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ * @package System.Data.ActiveRecord.Scaffold.InputBuilder
*/
Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php
index b223e7e4..b9d133a2 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMssqlScaffoldInput.php
@@ -5,7 +5,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ * @package System.Data.ActiveRecord.Scaffold.InputBuilder
*/
Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php
index ea1dd377..74eddbd8 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TMysqlScaffoldInput.php
@@ -5,7 +5,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ * @package System.Data.ActiveRecord.Scaffold.InputBuilder
*/
Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php
index 72a31f20..088bbd42 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TPgsqlScaffoldInput.php
@@ -5,7 +5,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ * @package System.Data.ActiveRecord.Scaffold.InputBuilder
*/
Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php
index 39ecd4a2..611cfdfb 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputBase.php
@@ -5,7 +5,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ * @package System.Data.ActiveRecord.Scaffold.InputBuilder
*/
class TScaffoldInputBase
{
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php
index 415b85a5..68404adb 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TScaffoldInputCommon.php
@@ -5,7 +5,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ * @package System.Data.ActiveRecord.Scaffold.InputBuilder
*/
Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputBase');
diff --git a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php
index e821121a..302f320b 100644
--- a/framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php
+++ b/framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php
@@ -5,7 +5,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @package System.Data.ActiveReecord.Scaffold.InputBuilder
+ * @package System.Data.ActiveRecord.Scaffold.InputBuilder
*/
Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
diff --git a/framework/PradoBase.php b/framework/PradoBase.php
index 9f20eb36..7cb7e841 100644
--- a/framework/PradoBase.php
+++ b/framework/PradoBase.php
@@ -9,7 +9,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @version $Id: PradoBase.php 3246 2013-01-07 21:07:38Z ctrlaltca $
+ * @version $Id: PradoBase.php 3293 2013-07-10 21:33:04Z ctrlaltca $
* @package System
*/
@@ -34,7 +34,7 @@ if(!defined('PRADO_CHMOD'))
* rewritten for customization.
*
* @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id: PradoBase.php 3246 2013-01-07 21:07:38Z ctrlaltca $
+ * @version $Id: PradoBase.php 3293 2013-07-10 21:33:04Z ctrlaltca $
* @package System
* @since 3.0
*/
@@ -71,7 +71,7 @@ class PradoBase
*/
public static function getVersion()
{
- return '3.2.1';
+ return '3.2.2';
}
/**
diff --git a/framework/TApplication.php b/framework/TApplication.php
index a4a4b423..1bbbbdb6 100644
--- a/framework/TApplication.php
+++ b/framework/TApplication.php
@@ -6,7 +6,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @version $Id: TApplication.php 3272 2013-02-13 21:43:28Z ctrlaltca $
+ * @version $Id: TApplication.php 3317 2013-09-03 10:19:09Z ctrlaltca $
* @package System
*/
@@ -105,7 +105,7 @@ Prado::using('System.I18N.TGlobalization');
* </code>
*
* @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id: TApplication.php 3272 2013-02-13 21:43:28Z ctrlaltca $
+ * @version $Id: TApplication.php 3317 2013-09-03 10:19:09Z ctrlaltca $
* @package System
* @since 3.0
*/
@@ -972,7 +972,8 @@ class TApplication extends TComponent
$module->setSubProperty($name,$value);
}
$this->setModule($id,$module);
- unset($this->_lazyModules[$id]);
+ // keep the key to avoid reuse of the old module id
+ $this->_lazyModules[$id]=null;
return array($module,$configElement);
}
@@ -1279,7 +1280,7 @@ class TApplication extends TComponent
* - Normal: the application is running in normal production mode.
* - Performance: the application is running in performance mode.
* @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id: TApplication.php 3272 2013-02-13 21:43:28Z ctrlaltca $
+ * @version $Id: TApplication.php 3317 2013-09-03 10:19:09Z ctrlaltca $
* @package System
* @since 3.0.4
*/
@@ -1299,7 +1300,7 @@ class TApplicationMode extends TEnumerable
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @author Carl G. Mathisen <carlgmathisen@gmail.com>
- * @version $Id: TApplication.php 3272 2013-02-13 21:43:28Z ctrlaltca $
+ * @version $Id: TApplication.php 3317 2013-09-03 10:19:09Z ctrlaltca $
* @package System
* @since 3.0
*/
@@ -1808,7 +1809,7 @@ class TApplicationConfiguration extends TComponent
* Cache will be exploited if it is enabled.
*
* @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id: TApplication.php 3272 2013-02-13 21:43:28Z ctrlaltca $
+ * @version $Id: TApplication.php 3317 2013-09-03 10:19:09Z ctrlaltca $
* @package System
* @since 3.0
*/
diff --git a/framework/Web/Javascripts/packages.php b/framework/Web/Javascripts/packages.php
index 65921920..1d98f60f 100644
--- a/framework/Web/Javascripts/packages.php
+++ b/framework/Web/Javascripts/packages.php
@@ -1,6 +1,6 @@
<?php
-//$Id: packages.php 3187 2012-07-12 11:21:01Z ctrlaltca $
+//$Id: packages.php 3319 2013-09-08 20:59:44Z ctrlaltca $
// To make future upgrades easier
if (!defined('PROTOTYPE_DIR')) define ('PROTOTYPE_DIR', 'prototype-1.7');
@@ -83,6 +83,10 @@ $packages = array(
'prado/controls/htmlarea.js'
),
+ 'htmlarea4'=>array(
+ 'prado/controls/htmlarea4.js'
+ ),
+
'ratings' => array(
'prado/ratings/ratings.js',
),
@@ -113,6 +117,7 @@ $dependencies = array(
'dragdropextra' => array('prototype', 'prado', 'effects', 'ajax', 'dragdrop','dragdropextra'),
'accordion' => array('prototype', 'prado', 'effects', 'accordion'),
'htmlarea' => array('prototype', 'prado', 'htmlarea'),
+ 'htmlarea4' => array('prototype', 'prado', 'htmlarea4'),
'ratings' => array('prototype', 'prado', 'effects', 'ajax', 'ratings'),
'inlineeditor' => array('prototype', 'prado', 'effects', 'ajax', 'inlineeditor'),
);
diff --git a/framework/Web/Javascripts/source/prado/controls/htmlarea.js b/framework/Web/Javascripts/source/prado/controls/htmlarea.js
index 30bb82dd..5cba4f6c 100644
--- a/framework/Web/Javascripts/source/prado/controls/htmlarea.js
+++ b/framework/Web/Javascripts/source/prado/controls/htmlarea.js
@@ -124,7 +124,11 @@ Prado.WebUI.THtmlArea = Class.create(Prado.WebUI.Control,
try
{
tinyMCE.execCommand('mceFocus', false, this.ID);
+ // when removed, tinyMCE restores its content to the textarea. If the textarea content has been
+ // updated in this same callback, it will be overwritten with the old content. Workaround this.
+ var curtext = $(this.ID).value;
tinyMCE.execCommand('mceRemoveControl', false, this.ID);
+ $(this.ID).value = curtext;
}
catch (e)
{
diff --git a/framework/Web/Javascripts/source/prado/controls/htmlarea4.js b/framework/Web/Javascripts/source/prado/controls/htmlarea4.js
new file mode 100644
index 00000000..cd3c6a0e
--- /dev/null
+++ b/framework/Web/Javascripts/source/prado/controls/htmlarea4.js
@@ -0,0 +1,58 @@
+
+/*
+ *
+ * HtmlArea (tinyMCE 4) wrapper
+ *
+ * @author Gabor Berczi <gabor.berczi@devworx.hu>
+ *
+*/
+
+
+Prado.WebUI.THtmlArea4 = Class.create(Prado.WebUI.Control,
+{
+ initialize: function($super, options)
+ {
+ options.ID = options.EditorOptions.elements;
+ $super(options);
+ },
+
+ onInit : function(options)
+ {
+ this.options = options;
+ tinyMCE.init(this.options.EditorOptions);
+ },
+
+ removePreviousInstance: function()
+ {
+ for(var i=0;i<tinyMCE.editors.length;i++)
+ if (tinyMCE.editors[i].id==this.ID)
+ {
+ tinyMCE.editors.splice(i,1); // ugly hack, but works
+ i--;
+ }
+ },
+
+ onDone: function()
+ {
+ // check for previous tinyMCE registration, and try to remove it gracefully first
+ var prev = tinyMCE.get(this.ID);
+ if (prev)
+ try
+ {
+ tinyMCE.execCommand('mceFocus', false, this.ID);
+ // when removed, tinyMCE restores its content to the textarea. If the textarea content has been
+ // updated in this same callback, it will be overwritten with the old content. Workaround this.
+ // var curtext = $(this.ID).html();
+ tinyMCE.execCommand('mceRemoveControl', false, this.ID);
+ // $(this.ID).html(curtext);
+ }
+ catch (e)
+ {
+ // suppress error here in case editor can't be properly removed
+ // (happens when <textarea> has been removed from DOM tree without deinitialzing the tinyMCE editor first)
+ }
+
+ // doublecheck editor instance here and remove manually from tinyMCE-registry if neccessary
+ this.removePreviousInstance();
+ }
+});
diff --git a/framework/Web/Javascripts/source/prado/datepicker/datepicker.js b/framework/Web/Javascripts/source/prado/datepicker/datepicker.js
index ad7eb019..ae1ad4b9 100644
--- a/framework/Web/Javascripts/source/prado/datepicker/datepicker.js
+++ b/framework/Web/Javascripts/source/prado/datepicker/datepicker.js
@@ -496,7 +496,10 @@ Prado.WebUI.TDatePicker = Class.create(Prado.WebUI.Control,
for(var i = 0; i < years.length; i++)
years[i].selected = years[i].value.toInteger() == currentYear;
}
- this.fireChangeEvent(day || month || year, capevents);
+
+ day && this.fireChangeEvent(day, capevents);
+ month && this.fireChangeEvent(month, capevents);
+ year && this.fireChangeEvent(year, capevents);
}
},
diff --git a/framework/Web/Javascripts/source/prado/scriptaculous-adapter.js b/framework/Web/Javascripts/source/prado/scriptaculous-adapter.js
index febe6ad9..1b9b2909 100644
--- a/framework/Web/Javascripts/source/prado/scriptaculous-adapter.js
+++ b/framework/Web/Javascripts/source/prado/scriptaculous-adapter.js
@@ -362,7 +362,7 @@ Prado.Element =
}
var opt = document.createElement('option');
opt.text = option[0];
- opt.innerText = option[0];
+ opt.innerHTML = option[0];
opt.value = option[1];
if(optgroup!=null)
optgroup.appendChild(opt);
diff --git a/framework/Web/Javascripts/source/prado/validator/validation3.js b/framework/Web/Javascripts/source/prado/validator/validation3.js
index 97fff053..0361389f 100644
--- a/framework/Web/Javascripts/source/prado/validator/validation3.js
+++ b/framework/Web/Javascripts/source/prado/validator/validation3.js
@@ -1148,6 +1148,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
return Prado.WebUI.TDatePicker.getDropDownDate(control);//.getTime();
}
case 'THtmlArea':
+ case 'THtmlArea4':
if(typeof tinyMCE != "undefined")
tinyMCE.triggerSave();
return $F(control);
@@ -1180,6 +1181,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
case 'TDatePicker':
return value;
case 'THtmlArea':
+ case 'THtmlArea4':
return this.trim(value);
case 'TRadioButton':
return value;
diff --git a/framework/Web/Javascripts/source/prototype-1.7/prototype.js b/framework/Web/Javascripts/source/prototype-1.7/prototype.js
index 37dd39ac..de5fff4a 100644
--- a/framework/Web/Javascripts/source/prototype-1.7/prototype.js
+++ b/framework/Web/Javascripts/source/prototype-1.7/prototype.js
@@ -2755,9 +2755,12 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
}
var PROBLEMATIC_ATTRIBUTE_READING = (function() {
- DIV.setAttribute('onclick', Prototype.emptyFunction);
+ // This test used to set 'onclick' to `Prototype.emptyFunction`, but that
+ // caused an (uncatchable) error in IE 10. For some reason, switching to
+ // an empty array prevents this issue.
+ DIV.setAttribute('onclick', []);
var value = DIV.getAttribute('onclick');
- var isFunction = (typeof value === 'function');
+ var isFunction = Object.isArray(value);
DIV.removeAttribute('onclick');
return isFunction;
})();
diff --git a/framework/Web/Javascripts/source/tinymce-405/changelog.txt b/framework/Web/Javascripts/source/tinymce-405/changelog.txt
new file mode 100755
index 00000000..f7a6c7c4
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/changelog.txt
@@ -0,0 +1,213 @@
+Version 4.0.5 (2013-08-27)
+ Added visuals for UL, LI and BR to visualblocks plugin. Patch contributed by Dan Ransom.
+ Added new autosave_restore_when_empty option to autosave plugin. Enabled by default.
+ Fixed bug where an exception was thrown when inserting images if valid_elements didn't include an ID for the image.
+ Fixed bug where the advlist plugin wouldn't properly render the splitbutton controls.
+ Fixed bug where visual blocks menu item wouldn't be marked checked when using the visualblocks_default_state option.
+ Fixed bug where save button in save plugin wouldn't get properly enabled when contents was changed.
+ Fixed bug where it was possible to insert images without any value for it's source attribute.
+ Fixed bug where altering image attributes wouldn't add a new undo level.
+ Fixed bug where import rules in CSS files wouldn't be properly imported by the importcss plugin.
+ Fixed bug where selectors could be imported multiple times. Producing duplicate formats.
+ Fixed bug where IE would throw exception if selection was changed while the editor was hidden.
+ Fixed so complex rules like .class:before doesn't get imported by default in the importcss plugin.
+ Fixed so it's possible to remove images by setting the src attribute to a blank value.
+ Fixed so the save_enablewhendirty setting in the save plugin is enabled by default.
+ Fixed so block formats drop down for classic mode can be translated properly using language packs.
+ Fixed so hr menu item and toolbar button gets the same translation string.
+ Fixed so bullet list toolbar button gets the correct translation from language packs.
+ Fixed issue with Chrome logging CSS warning about border styling for combo boxes.
+ Fixed issue with Chrome logging warnings about deprecated keyLocation property.
+ Fixed issue where custom_elements would not remove the some of the default rules when cloning rules from div and span.
+Version 4.0.4 (2013-08-21)
+ Added new importcss plugin. Lets you auto import classes from CSS files similar to the 3.x behavior.
+ Fixed bug where resize handles would be positioned incorrectly when inline element parent was using position: relative.
+ Fixed bug where IE 8 would throw Unknown runtime error if the editor was placed within a P tag.
+ Fixed bug where removing empty lists wouldn't produce blocks or brs where the old list was in the DOM.
+ Fixed bug where IE 10 wouldn't properly initialize template dialog due to async loading issues.
+ Fixed bug where autosave wouldn't properly display the warning about content not being saved due to isDirty changes.
+ Fixed bug where it wouldn't be possible to type if a touchstart event was bound to the parent document.
+ Fixed bug where code dialog in code plugin wouldn't wouldn't add a proper undo level.
+ Fixed issue where resizing the editor in vertical mode would set the iframe width to a pixel value.
+ Fixed issue with naming of insertdatetime settings. All are now prefixed with the plugin name.
+ Fixed so an initial change event is fired when the user types the first character into the editor.
+ Fixed so swf gets mapped to object element in media plugin. Enables embedding of flash with alternative poster.
+Version 4.0.3 (2013-08-08)
+ Added new code_dialog_width/code_dialog_height options to control code dialog size.
+ Added missing pastetext button that works the same way as the pastetext menu item.
+ Added missing smaller browse button for the classical smaller toolbars.
+ Fixed bug where input method would produce new lines when inserting contents to an empty editor.
+ Fixed bug where pasting single indented list items from Word would cause a JS exception.
+ Fixed bug where applying block formats inside list elements in inline mode would apply them to whole document.
+ Fixed bug where link editing in inline mode would cause exception on IE/WebKit.
+ Fixed bug where IE 10 wouldn't render the last button group properly in inline mode due to wrapping.
+ Fixed bug where localStorage initialization would fail on Firefox/Chrome with disabled support.
+ Fixed bug where image elements would get an __mce id when undo/redo:ing to a level with image changes.
+ Fixed bug where too long template names wouldn't fit the listbox in template plugin.
+ Fixed bug where alignment format options would be marked disabled when forced_root_block was set to false.
+ Fixed bug where UI listboxes such as fontsize, fontfamily wouldn't update properly when switching editors in inline mode.
+ Fixed bug where the formats select box would mark the editable container DIV as a applied format in inline mode.
+ Fixed bug where IE 7/8 would scroll to empty editors when initialized.
+ Fixed bug where IE 7/8 wouldn't display previews of format options.
+ Fixed bug where UI states wasn't properly updated after code was changed in the code dialog.
+ Fixed bug with setting contents in IE would select all contents within the editor.
+ Fixed so the undoManages transact function disables any other undo levels from being added while within the transaction.
+ Fixed so sub/sup elements gets removed when the Clear formatting action is executed.
+ Fixed so text/javascript type value get removed by default from script elements to match the HTML5 spec.
+Version 4.0.2 (2013-07-18)
+ Fixed bug where formatting using menus or toolbars wasn't possible on Opera 12.15.
+ Fixed bug where IE 8 keyboard input would break after paste using the paste plugin.
+ Fixed bug where IE 8 would throw an error when populating image size in image dialog.
+ Fixed bug where image resizing wouldn't work properly on latest IE 10.0.9 version.
+ Fixed bug where focus wasn't moved to the hovered menu button in a menubar container.
+ Fixed bug where paste would produce an extra uneeded undo level on IE and Gecko.
+ Fixed so anchors gets listed in the link dialog as they where in TinyMCE 3.x.
+ Fixed so sub, sup and strike though gets passed through when pasting from Word.
+ Fixed so Ctrl+P can be used to print the current document. Patch contributed by jashua212.
+Version 4.0.1 (2013-06-26)
+ Added new paste_as_text config option to force paste as plaintext mode.
+ Added new pastetext menu item that lets you toggle paste as plain text mode on/off.
+ Added new insertdatetime_element option to insertdatetime plugin. Enables HTML5 time element support.
+ Added new spellchecker_wordchar_pattern option to allow configuration of language specific characters.
+ Added new marker to formats menu displaying the formats used at the current selection/caret location.
+ Fixed bug where the position of the text color picker would be wrong if you switched to fullscreen.
+ Fixed bug where the link plugin would ask to add the mailto: prefix multiple times.
+ Fixed bug where list outdent operation could produce empty list elements on specific selections.
+ Fixed bug where element path wouldn't properly select parent elements on IE.
+ Fixed bug where IE would sometimes throw an exception when extrancting the current selection range.
+ Fixed bug where line feeds wasn't properly rendered in source view on IE.
+ Fixed bug where word count wouldn't be properly rendered on IE 7.
+ Fixed bug where menubuttons/listboxes would have an incorrect height on IE 7.
+ Fixed bug where browser spellchecking was enabled while editing inline on IE 10.
+ Fixed bug where spellchecker wouldn't properly find non English words.
+ Fixed bug where deactivating inline editor instances would force padding-top: 0 on page body.
+ Fixed bug where jQuery would initialize editors multiple times since it didn't check if the editor already existed.
+ Fixed bug where it wasn't possible to paste contents on IE 10 in modern UI mode when paste filtering was enabled.
+ Fixed bug where tabfocus plugin wouldn't work properly on inline editor instances.
+ Fixed bug where fullpage plugin would clear the existing HTML head if contents where inserted into the editor.
+ Fixed bug where deleting all table rows/columns in a table would cause an exception to be thrown on IE.
+ Fixed so color button panels gets toggled on/off when activated/deactivated.
+ Fixed so format menu items that can't be applied to the current selection gets disabled.
+ Fixed so the icon parameter for addButton isn't automatically filled if a button text is provided.
+ Fixed so image size fields gets updated when selecting a new image in the image dialog.
+ Fixed so it doesn't load any language pack if the language option is set to "en".
+ Fixed so ctrl+shift+z works as an alternative redo shortcut to match a common Mac OS X shortcut.
+ Fixed so it's not possible to drag/drop in images in Gecko by default when paste plugin is enabled.
+ Fixed so format menu item texts gets translated using the specified language pack.
+ Fixed so the image dialog title is the same as the insert/edit image button text.
+ Fixed so paste as plain text produces BR:s in PRE block and when forced_root_block is disabled.
+Version 4.0 (2013-06-13)
+ Added new insertdate_dateformat, insertdate_timeformat and insertdate_formats options to insertdatetime.
+ Added new font_formats, fontsize_formats and block_formats options to configure fontselect, fontsizeselect and formatselect.
+ Added new table_clone_elements option to table plugin. Enables you to specify what elements to clone when adding columns/rows.
+ Added new auto detect logic for site and email urls in link plugin to match the logic found in 3.x.
+ Added new getParams/setParams to WindowManager to make it easier to handle params to iframe based dialogs. Contributed by Ryan Demmer.
+ Added new textcolor options that enables you to specify the colors you want to display. Contributed by Jennifer Arsenault.
+ Added new external file support for link_list and image_list options. The file format is a simple JSON file.
+ Added new "both" mode for the resize option. Enables resizing in both width and height.
+ Added new paste_data_images option that allows you to enable/disable paste of data images.
+ Added new fixed_toolbar_container option that allows you to add a fixed container for the inline toolbar.
+ Fixed so font name, font size and block format select boxes gets updated with the current format.
+ Fixed so the resizeTo/resizeBy methods for the theme are exposed as it as in 3.x.
+ Fixed so the textcolor controls are splitbuttons as in 3.x. Patch contributed by toxalot/jashua212.
+ Fixed bug where the theme content css wasn't loaded into the preview dialog.
+ Fixed bug where the template description in template dialog wouldn't display the text correctly.
+ Fixed bug where various UI elements wasn't properly removed when an editor instance was removed.
+ Fixed bug where editing links in inline mode would fail on WebKit.
+ Fixed bug where the pagebreak_separator option in the pagebreak plugin wasn't working properly.
+ Fixed bug where the child panels of the float panel in inline mode wasn't properly placed.
+ Fixed bug where the float panel children of windows wasn't position fixed.
+ Fixed bug where the size of the ok button was hardcoded, caused issues with i18n.
+ Fixed bug where single comment in editor would cause exceptions due to resolve path logic not detecting elements only.
+ Fixed bug where switching alignment of tables in dialogs wouldn't properly remove existing alignments.
+ Fixed bug where the table properties dialog would show columns/rows textboxes.
+ Fixed bug where jQuery wasn't used instead of Sizzle in the jQuery version of TinyMCE.
+ Fixed bug where setting resize option to false whouldn't properly render the word count.
+ Fixed bug where table row type change would produce multiple table section elements.
+ Fixed bug where table row type change on multiple rows would add them in incorrect order.
+ Fixed bug where fullscreen plugin would maximize the editor on resize after toggling it off.
+ Fixed bug where context menu would be position at an incorrect coordinate in inline mode.
+ Fixed bug where inserting lists in inline mode on IE would produce errors since the body would be converted.
+ Fixed bug where the body couldn't be styled properly in custom content_css files.
+ Fixed bug where template plugins menu item would override the image menu item.
+ Fixed bug where IE 7-8 would render the text inside inputs at the wrong vertical location.
+ Fixed bug where IE configured to IE 7 compatibility mode wouldn't render the icons properly.
+ Fixed bug where editor.focus wouldn't properly fire the focusin event on WebKit.
+ Fixed bug where some keyboard shortcuts wouldn't work on IE 8.
+ Fixed bug where the undo state wasn't updated until the end of a typing level.
+ Fixed bug where keyboard shortcuts on Mac OS wasn't working correctly.
+ Fixed bug where empty inline elements would be created when toggling formatting of in empty block.
+ Fixed bug where applying styles on WebKit would fail in inline mode if the user released the mouse button outside the body.
+ Fixed bug where the visual aids menu item wasn't selected if the editor was empty.
+ Fixed so the isDirty/isNotDirty states gets updated to true/false on save() and change events.
+ Fixed so skins have separate CSS files for inline and iframe mode.
+ Fixed so menus and tool tips gets constrained to the current viewport.
+ Fixed so an error is thrown if users load jQuery after the jQuery version of TinyMCE.
+ Fixed so the filetype for media dialog passes out media instead of image as file type.
+ Fixed so it's possible to disable the toolbar by setting it to false.
+ Fixed so autoresize plugin isn't initialized when the editor is in inline mode.
+ Fixed so the inline editing toolbar will be rendered below elements if it doesn't fit above it.
+Version 4.0b3 (2013-05-15)
+ Added new optional advanced tab for image dialog with hspace, vspace, border and style.
+ Added new change event that gets fired when undo levels are added to editor instances.
+ Added new removed_menuitems option enables you to list menu items to remove from menus.
+ Added new external_plugins option enables you to specify external locations for plugins.
+ Added new language_url option enables you to specify an external location for the language pack.
+ Added new table toolbar control that displays a menu for inserting/editing menus.
+ Fixed bug where IE 10 wouldn't load files properly from cache.
+ Fixed bug where image dialog wouldn't properly remove width/height if blanked.
+ Fixed bug where all events wasn't properly unbound when editor instances where removed.
+ Fixed bug where data- attributes wasn't working properly in the SaxParser.
+ Fixed bug where Gecko wouldn't properly render broken images.
+ Fixed bug where Gecko wouldn't produce the same error dialog on paste as other browsers.
+ Fixed bug where is wasn't possible to prevent execCommands in beforeExecCommand event.
+ Fixed bug where the fullpage_hide_in_source_view option wasn't working in the fullpage plugin.
+ Fixed bug where the WindowManager close method wouldn't properly close the top most window.
+ Fixed bug where it wasn't possible to paste in IE 10 due to JS exception.
+ Fixed bug where tab key didn't move to the right child control in tabpanels.
+ Fixed bug where enter inside a form would focus the first button like control in TinyMCE.
+ Fixed bug where it would match scripts that looked like the tinymce base directory incorrectly.
+ Fixed bug where the spellchecker wouldn't properly toggle off the spellcheck mode if no errors where found.
+ Fixed bug in searchreplace plugin where it would remove all spans instead of the marker spans.
+ Fixed issue where selector wouldn't disable existing mode setting.
+ Fixed so it's easier to configure the menu and menubar.
+ Fixed so bodyId/bodyClass is applied to preview as it's done to the editor iframe.
+Version 4.0b2 (2013-04-24)
+ Added new rel_list option to link plugin. Enables you to specify values for a rel drop down.
+ Added new target_list option to link plugin. Enables you to add to or disable the link targets.
+ Added new link_list option to link plugin. Enables you to specify a list of links to pick from.
+ Added new image_list option to image pluigin. Enables you to specify a list of images to pick from.
+ Added new textcolor plugin. This plugin holds the text color and text background color buttons.
+ Fixed bug where alignment of images wasn't working properly on Firefox.
+ Fixed bug where IE 8 would throw error when inserting a table.
+ Fixed bug where IE 8 wouldn't render the element path properly.
+ Fixed bug where old IE versions would render a red focus border.
+ Fixed bug where old IE versions would render a frameborder for iframes.
+ Fixed bug where WebKit wouldn't properly open the cell properties dialog on edge case selection.
+ Fixed bug where charmap wouldn't correctly render all characters in grid.
+ Fixed bug where link dialog wouldn't update the link text properly.
+ Fixed bug where the focus/blur states on inline editors wasn't handled correctly on IE.
+ Fixed bug where IE would throw "unknown error" exception sometimes in ForceBlocks logic.
+ Fixed bug where IE would't properly render disabled buttons in button groups.
+ Fixed bug where tab key wouldn't properly move to next input field in dialogs.
+ Fixed bug where resize handles for tables and images would appear at wrong positions on IE 8.
+ Fixed bug where dialogs would produce stack overflow if title was wider than content.
+ Fixed bug with table cell/row menu items being enabled even if no cell was selected.
+ Fixed so the text to display is after the URL field in the link dialog.
+ Fixed so the width setting applies to the editor panel in modern theme.
+ Fixed so it's easier to make custom icons for buttons using plain old images.
+Version 4.0b1 (2013-04-11)
+ Added new node.js based build process used uglify, amdlc, jake etc.
+ Added new package.json to enable easy installation of dependent npm packages used for building.
+ Added new link, image, charmap, anchor, code, hr plugins since these are now moved out of the theme.
+ Rewrote all plugins and themes from scratch so they match the new UI framework.
+ Replaced all events to use the more common <target>.on/off(<event>) methods instead of <target>.<event>.add/remove.
+ Rewrote the TinyMCE core to use AMD style modules. Gets compiled to an inline library using amdlc.
+ Rewrote all core logic to pass jshint rules. Each file has specific jshint rules.
+ Removed all IE6 specific logic since 4.x will no longer support such an old browser.
+ Reworked the file names and directory structure of the whole project to be more similar to other JS projects.
+ Replaced tinymce.util.Cookie with tinymce.util.LocalStorage. Fallback to userData for IE 7 native localStorage for the rest.
+ Replaced the old 3.x UI with a new modern UI framework.
+ Removed "simple" theme and added new "modern" theme.
+ Removed advhr, advimage, advlink, iespell, inlinepopups, xhtmlxtras and style plugins.
+ Updated Sizzle to the latest version.
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ar.js b/framework/Web/Javascripts/source/tinymce-405/langs/ar.js
new file mode 100755
index 00000000..5a60b65b
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ar.js
@@ -0,0 +1,156 @@
+tinymce.addI18n('ar',{
+"Cut": "\u0642\u0635",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0645\u062a\u0635\u0641\u062d\u0643 \u0644\u0627 \u064a\u062f\u0639\u0645 \u0627\u0644\u0648\u0635\u0648\u0644 \u0627\u0644\u0645\u0628\u0627\u0634\u0631 \u0625\u0644\u0649 \u0627\u0644\u062d\u0627\u0641\u0638\u0629. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d Ctrl+X\/C\/V \u0628\u062f\u0644\u0627 \u0645\u0646 \u0630\u0644\u0643.",
+"Paste": "\u0644\u0635\u0642",
+"Close": "\u0625\u063a\u0644\u0627\u0642",
+"Align right": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0627\u0644\u0646\u0635 \u0644\u0644\u064a\u0645\u064a\u0646",
+"New document": "\u0645\u0633\u062a\u0646\u062f \u062c\u062f\u064a\u062f",
+"Numbered list": "\u062a\u0631\u0642\u064a\u0645",
+"Increase indent": "\u0632\u064a\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629",
+"Formats": "\u0627\u0644\u062a\u0646\u0633\u064a\u0642\u0627\u062a",
+"Select all": "\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0643\u0644",
+"Undo": "\u062a\u0631\u0627\u062c\u0639",
+"Strikethrough": "\u064a\u062a\u0648\u0633\u0637 \u062e\u0637",
+"Bullet list": "\u062a\u0639\u062f\u0627\u062f \u0646\u0642\u0637\u064a",
+"Superscript": "\u0645\u0631\u062a\u0641\u0639",
+"Clear formatting": "\u0645\u0633\u062d \u0627\u0644\u062a\u0646\u0633\u064a\u0642",
+"Subscript": "\u0645\u0646\u062e\u0641\u0636",
+"Redo": "\u0625\u0639\u0627\u062f\u0629",
+"Ok": "\u0645\u0648\u0627\u0641\u0642",
+"Bold": "\u063a\u0627\u0645\u0642",
+"Italic": "\u0645\u0627\u0626\u0644",
+"Align center": "\u062a\u0648\u0633\u064a\u0637",
+"Decrease indent": "\u0625\u0646\u0642\u0627\u0635 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629",
+"Underline": "\u062a\u0633\u0637\u064a\u0631",
+"Cancel": "\u0625\u0644\u063a\u0627\u0621",
+"Justify": "\u0636\u0628\u0637",
+"Copy": "\u0646\u0633\u062e",
+"Align left": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0627\u0644\u0646\u0635 \u0644\u0644\u064a\u0633\u0627\u0631",
+"Visual aids": "\u0627\u0644\u0645\u0639\u064a\u0646\u0627\u062a \u0627\u0644\u0628\u0635\u0631\u064a\u0629",
+"Lower Greek": "\u062a\u0631\u0642\u064a\u0645 \u064a\u0648\u0646\u0627\u0646\u064a \u0635\u063a\u064a\u0631",
+"Square": "\u0645\u0631\u0628\u0639",
+"Default": "\u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a",
+"Lower Alpha": "\u062a\u0631\u0642\u064a\u0645 \u0623\u062e\u0631\u0641 \u0635\u063a\u064a\u0631\u0629",
+"Circle": "\u062f\u0627\u0626\u0631\u0629",
+"Disc": "\u0642\u0631\u0635",
+"Upper Alpha": "\u062a\u0631\u0642\u064a\u0645 \u0623\u062d\u0631\u0641 \u0643\u0628\u064a\u0631\u0629",
+"Upper Roman": "\u062a\u0631\u0642\u064a\u0645 \u0631\u0648\u0645\u0627\u0646\u064a \u0643\u0628\u064a\u0631",
+"Lower Roman": "\u062a\u0631\u0642\u064a\u0645 \u0631\u0648\u0645\u0627\u0646\u064a \u0635\u063a\u064a\u0631",
+"Name": "\u0627\u0644\u0627\u0633\u0645",
+"Anchor": "\u0645\u0631\u0633\u0627\u0629",
+"You have unsaved changes are you sure you want to navigate away?": "\u0644\u062f\u064a\u0643 \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0644\u0645 \u064a\u062a\u0645 \u062d\u0641\u0638\u0647\u0627 \u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0641\u064a \u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u0639\u064a\u062f\u0627\u061f",
+"Restore last draft": "\u0627\u0633\u062a\u0639\u0627\u062f\u0629 \u0623\u062e\u0631 \u0645\u0633\u0648\u062f\u0629",
+"Special character": "\u0631\u0645\u0632",
+"Source code": "\u0634\u0641\u0631\u0629 \u0627\u0644\u0645\u0635\u062f\u0631",
+"Right to left": "\u0645\u0646 \u0627\u0644\u064a\u0645\u064a\u0646 \u0644\u0644\u064a\u0633\u0627\u0631",
+"Left to right": "\u0645\u0646 \u0627\u0644\u064a\u0633\u0627\u0631 \u0644\u0644\u064a\u0645\u064a\u0646",
+"Emoticons": "\u0627\u0644\u0631\u0645\u0648\u0632",
+"Robots": "\u0627\u0644\u0631\u0648\u0628\u0648\u062a\u0627\u062a",
+"Document properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0645\u0633\u062a\u0646\u062f",
+"Title": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646",
+"Keywords": "\u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0628\u062d\u062b",
+"Encoding": "\u0627\u0644\u062a\u0631\u0645\u064a\u0632",
+"Description": "\u0627\u0644\u0648\u0635\u0641",
+"Author": "\u0627\u0644\u0643\u0627\u062a\u0628",
+"Fullscreen": "\u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629",
+"Horizontal line": "\u062e\u0637 \u0623\u0641\u0642\u064a",
+"Horizontal space": "\u0645\u0633\u0627\u0641\u0629 \u0623\u0641\u0642\u064a\u0629",
+"Insert\/edit image": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0635\u0648\u0631\u0629",
+"General": "\u0639\u0627\u0645",
+"Advanced": "\u062e\u0635\u0627\u0626\u0635 \u0645\u062a\u0642\u062f\u0645\u0647",
+"Source": "\u0627\u0644\u0645\u0635\u062f\u0631",
+"Border": "\u062d\u062f\u0648\u062f",
+"Constrain proportions": "\u0627\u0644\u062a\u0646\u0627\u0633\u0628",
+"Vertical space": "\u0645\u0633\u0627\u0641\u0629 \u0639\u0645\u0648\u062f\u064a\u0629",
+"Image description": "\u0648\u0635\u0641 \u0627\u0644\u0635\u0648\u0631\u0629",
+"Style": "\u0627\u0644\u0646\u0645\u0637 \/ \u0627\u0644\u0634\u0643\u0644",
+"Dimensions": "\u0627\u0644\u0623\u0628\u0639\u0627\u062f",
+"Insert date\/time": "\u0625\u062f\u0631\u0627\u062c \u062a\u0627\u0631\u064a\u062e\/\u0648\u0642\u062a",
+"Url": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646",
+"Text to display": "\u0627\u0644\u0646\u0635 \u0627\u0644\u0645\u0637\u0644\u0648\u0628 \u0639\u0631\u0636\u0647",
+"Insert link": "\u0625\u062f\u0631\u0627\u062c \u0631\u0627\u0628\u0637",
+"New window": "\u0646\u0627\u0641\u0630\u0629 \u062c\u062f\u064a\u062f\u0629",
+"None": "\u0628\u0644\u0627",
+"Target": "\u0627\u0644\u0625\u0637\u0627\u0631 \u0627\u0644\u0647\u062f\u0641",
+"Insert\/edit link": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0631\u0627\u0628\u0637",
+"Insert\/edit video": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0641\u064a\u062f\u064a\u0648",
+"Poster": "\u0645\u0644\u0635\u0642",
+"Alternative source": "\u0645\u0635\u062f\u0631 \u0628\u062f\u064a\u0644",
+"Paste your embed code below:": "\u0644\u0635\u0642 \u0643\u0648\u062f \u0627\u0644\u062a\u0636\u0645\u064a\u0646 \u0647\u0646\u0627:",
+"Insert video": "\u0625\u062f\u0631\u0627\u062c \u0641\u064a\u062f\u064a\u0648",
+"Embed": "\u062a\u0636\u0645\u064a\u0646",
+"Nonbreaking space": "\u0645\u0633\u0627\u0641\u0629 \u063a\u064a\u0631 \u0645\u0646\u0642\u0633\u0645\u0629",
+"Page break": "\u0641\u0627\u0635\u0644 \u0644\u0644\u0635\u0641\u062d\u0629",
+"Preview": "\u0645\u0639\u0627\u064a\u0646\u0629",
+"Print": "\u0637\u0628\u0627\u0639\u0629",
+"Save": "\u062d\u0641\u0638",
+"Could not find the specified string.": "\u062a\u0639\u0630\u0631 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0627\u0644\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u062d\u062f\u062f\u0629",
+"Replace": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644",
+"Next": "\u0627\u0644\u062a\u0627\u0644\u064a",
+"Whole words": "\u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0644\u0643\u0644\u0645\u0627\u062a \u0628\u0627\u0644\u0643\u0627\u0645\u0644",
+"Find and replace": "\u0628\u062d\u062b \u0648\u0627\u0633\u062a\u0628\u062f\u0627\u0644",
+"Replace with": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0628\u0640",
+"Find": "\u0628\u062d\u062b",
+"Replace all": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0627\u0644\u0643\u0644",
+"Match case": "\u0645\u0637\u0627\u0628\u0642\u0629 \u062d\u0627\u0644\u0629 \u0627\u0644\u0623\u062d\u0631\u0641",
+"Prev": "\u0627\u0644\u0633\u0627\u0628\u0642",
+"Spellcheck": "\u062a\u062f\u0642\u064a\u0642 \u0625\u0645\u0644\u0627\u0626\u064a",
+"Finish": "\u0627\u0646\u062a\u0647\u064a",
+"Ignore all": "\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u0643\u0644",
+"Ignore": "\u062a\u062c\u0627\u0647\u0644",
+"Insert row before": "\u0625\u062f\u0631\u0627\u062c \u0635\u0641 \u0644\u0644\u0623\u0639\u0644\u0649",
+"Rows": "\u0639\u062f\u062f \u0627\u0644\u0635\u0641\u0648\u0641",
+"Height": "\u0627\u0631\u062a\u0641\u0627\u0639",
+"Paste row after": "\u0644\u0635\u0642 \u0627\u0644\u0635\u0641 \u0644\u0644\u0623\u0633\u0641\u0644",
+"Alignment": "\u0645\u062d\u0627\u0630\u0627\u0629",
+"Column group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0639\u0645\u0648\u062f",
+"Row": "\u0635\u0641",
+"Insert column before": "\u0625\u062f\u0631\u0627\u062c \u0639\u0645\u0648\u062f \u0644\u0644\u064a\u0633\u0627\u0631",
+"Split cell": "\u062a\u0642\u0633\u064a\u0645 \u0627\u0644\u062e\u0644\u0627\u064a\u0627",
+"Cell padding": "\u062a\u0628\u0627\u0639\u062f \u0627\u0644\u062e\u0644\u064a\u0629",
+"Cell spacing": "\u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0628\u064a\u0646 \u0627\u0644\u062e\u0644\u0627\u064a\u0627",
+"Row type": "\u0646\u0648\u0639 \u0627\u0644\u0635\u0641",
+"Insert table": "\u0625\u062f\u0631\u0627\u062c \u062c\u062f\u0648\u0644",
+"Body": "\u0647\u064a\u0643\u0644",
+"Caption": "\u0634\u0631\u062d",
+"Footer": "\u062a\u0630\u064a\u064a\u0644",
+"Delete row": "\u062d\u0630\u0641 \u0635\u0641",
+"Paste row before": "\u0644\u0635\u0642 \u0627\u0644\u0635\u0641 \u0644\u0644\u0623\u0639\u0644\u0649",
+"Scope": "\u0627\u0644\u0645\u062c\u0627\u0644",
+"Delete table": "\u062d\u0630\u0641 \u062c\u062f\u0648\u0644",
+"Header cell": "\u0631\u0623\u0633 \u0627\u0644\u062e\u0644\u064a\u0629",
+"Column": "\u0639\u0645\u0648\u062f",
+"Cell": "\u062e\u0644\u064a\u0629",
+"Header": "\u0627\u0644\u0631\u0623\u0633",
+"Cell type": "\u0646\u0648\u0639 \u0627\u0644\u062e\u0644\u064a\u0629",
+"Copy row": "\u0646\u0633\u062e \u0627\u0644\u0635\u0641",
+"Row properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0635\u0641",
+"Table properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u062c\u062f\u0648\u0644",
+"Row group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0635\u0641",
+"Right": "\u064a\u0645\u064a\u0646",
+"Insert column after": "\u0625\u062f\u0631\u0627\u062c \u0639\u0645\u0648\u062f \u0644\u0644\u064a\u0645\u064a\u0646",
+"Cols": "\u0639\u062f\u062f \u0627\u0644\u0623\u0639\u0645\u062f\u0629",
+"Insert row after": "\u0625\u062f\u0631\u0627\u062c \u0635\u0641 \u0644\u0644\u0623\u0633\u0641\u0644",
+"Width": "\u0639\u0631\u0636",
+"Cell properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u062e\u0644\u064a\u0629",
+"Left": "\u064a\u0633\u0627\u0631",
+"Cut row": "\u0642\u0635 \u0627\u0644\u0635\u0641",
+"Delete column": "\u062d\u0630\u0641 \u0639\u0645\u0648\u062f",
+"Center": "\u062a\u0648\u0633\u064a\u0637",
+"Merge cells": "\u062f\u0645\u062c \u062e\u0644\u0627\u064a\u0627",
+"Insert template": "\u0625\u062f\u0631\u0627\u062c \u0642\u0627\u0644\u0628",
+"Templates": "\u0642\u0648\u0627\u0644\u0628",
+"Background color": "\u0644\u0648\u0646 \u0627\u0644\u062e\u0644\u0641\u064a\u0629",
+"Text color": "\u0644\u0648\u0646 \u0627\u0644\u0646\u0635",
+"Show blocks": "\u0645\u0634\u0627\u0647\u062f\u0629 \u0627\u0644\u0643\u062a\u0644",
+"Show invisible characters": "\u0623\u0638\u0647\u0631 \u0627\u0644\u0623\u062d\u0631\u0641 \u0627\u0644\u063a\u064a\u0631 \u0645\u0631\u0626\u064a\u0629",
+"Words: {0}": "\u0627\u0644\u0643\u0644\u0645\u0627\u062a:{0}",
+"Insert": "\u0625\u062f\u0631\u0627\u062c",
+"File": "\u0645\u0644\u0641",
+"Edit": "\u062a\u062d\u0631\u064a\u0631",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0645\u0646\u0637\u0642\u0629 \u0646\u0635 \u0645\u0646\u0633\u0642. \u0627\u0636\u063a\u0637 ALT-F9 \u0644\u0644\u0642\u0627\u0626\u0645\u0629. \u0627\u0636\u063a\u0637 ALT-F10 \u0644\u0634\u0631\u064a\u0637 \u0627\u0644\u0623\u062f\u0648\u0627\u062a. \u0627\u0636\u063a\u0637 ALT-0 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0645\u0633\u0627\u0639\u062f\u0629",
+"Tools": "\u0623\u062f\u0627\u0648\u0627\u062a",
+"View": "\u0639\u0631\u0636",
+"Table": "\u062c\u062f\u0648\u0644",
+"Format": "\u062a\u0646\u0633\u064a\u0642"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/bg_BG.js b/framework/Web/Javascripts/source/tinymce-405/langs/bg_BG.js
new file mode 100755
index 00000000..e1f39e9f
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/bg_BG.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('bg_BG',{
+"Cut": "\u0418\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435",
+"Header 2": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448\u0438\u044f\u0442 \u0431\u0440\u0430\u0443\u0437\u044a\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0432\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 Ctrl+X (\u0437\u0430 \u0438\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435), Ctrl+C (\u0437\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435) \u0438 Ctrl+V (\u0437\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435).",
+"Div": "\u0411\u043b\u043e\u043a",
+"Paste": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435",
+"Close": "\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435",
+"Pre": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u043d\u043e \u043e\u0444\u043e\u0440\u043c\u0435\u043d \u0442\u0435\u043a\u0441\u0442",
+"Align right": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435 \u043e\u0442\u0434\u044f\u0441\u043d\u043e",
+"New document": "\u041d\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
+"Blockquote": "\u0426\u0438\u0442\u0430\u0442",
+"Numbered list": "\u041d\u043e\u043c\u0435\u0440\u0438\u0440\u0430\u043d \u0441\u043f\u0438\u0441\u044a\u043a",
+"Increase indent": "\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u0442\u044a\u043f\u0430",
+"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435",
+"Headers": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u044f",
+"Select all": "\u041c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0446\u044f\u043b\u043e\u0442\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435",
+"Header 3": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 3",
+"Blocks": "\u0411\u043b\u043e\u043a\u043e\u0432\u0435",
+"Undo": "\u0412\u044a\u0440\u043d\u0438",
+"Strikethrough": "\u0417\u0430\u0447\u0435\u0440\u0442\u0430\u0432\u0430\u043d\u0435",
+"Bullet list": "\u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u0432\u043e\u0434\u0430\u0447\u0438",
+"Header 1": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 1",
+"Superscript": "\u0413\u043e\u0440\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441",
+"Clear formatting": "\u0418\u0437\u0447\u0438\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e",
+"Subscript": "\u0414\u043e\u043b\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441",
+"Header 6": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 6",
+"Redo": "\u041e\u0442\u043c\u0435\u043d\u0438",
+"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444",
+"Ok": "\u0414\u043e\u0431\u0440\u0435",
+"Bold": "\u0423\u0434\u0435\u0431\u0435\u043b\u0435\u043d (\u043f\u043e\u043b\u0443\u0447\u0435\u0440)",
+"Code": "\u041a\u043e\u0434",
+"Italic": "\u041d\u0430\u043a\u043b\u043e\u043d\u0435\u043d (\u043a\u0443\u0440\u0441\u0438\u0432)",
+"Align center": "\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0430\u043d\u043e",
+"Header 5": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 5",
+"Decrease indent": "\u041d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u0442\u044a\u043f\u0430",
+"Header 4": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435\u0442\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0435 \u0432 \u043e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d \u0440\u0435\u0436\u0438\u043c. \u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e \u0449\u0435 \u0431\u044a\u0434\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u043e \u043a\u0430\u0442\u043e \u043d\u0435\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d \u0442\u0435\u043a\u0441\u0442, \u0434\u043e\u043a\u0430\u0442\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0442\u0430\u0437\u0438 \u043e\u043f\u0446\u0438\u044f.",
+"Underline": "\u041f\u043e\u0434\u0447\u0435\u0440\u0442\u0430\u043d",
+"Cancel": "\u041e\u0442\u043a\u0430\u0437",
+"Justify": "\u0414\u0432\u0443\u0441\u0442\u0440\u0430\u043d\u043d\u043e \u043f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435",
+"Inline": "\u041d\u0430 \u0435\u0434\u0438\u043d \u0440\u0435\u0434",
+"Copy": "\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435",
+"Align left": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435 \u043e\u0442\u043b\u044f\u0432\u043e",
+"Visual aids": "\u0412\u0438\u0437\u0443\u0430\u043b\u043d\u043e \u043e\u0442\u043a\u0440\u043e\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0438 \u0431\u0435\u0437 \u043a\u0430\u043d\u0442\u043e\u0432\u0435 (\u0440\u0430\u043c\u043a\u0438)",
+"Lower Greek": "\u041c\u0430\u043b\u043a\u0438 \u0433\u0440\u044a\u0446\u043a\u0438 \u0431\u0443\u043a\u0432\u0438",
+"Square": "\u0417\u0430\u043f\u044a\u043b\u043d\u0435\u043d\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438",
+"Default": "\u041f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435",
+"Lower Alpha": "\u041c\u0430\u043b\u043a\u0438 \u0431\u0443\u043a\u0432\u0438",
+"Circle": "\u041e\u043a\u0440\u044a\u0436\u043d\u043e\u0441\u0442\u0438",
+"Disc": "\u041a\u0440\u044a\u0433\u0447\u0435\u0442\u0430",
+"Upper Alpha": "\u0413\u043e\u043b\u0435\u043c\u0438 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438 \u0431\u0443\u043a\u0432\u0438",
+"Upper Roman": "\u0413\u043e\u043b\u0435\u043c\u0438 \u0440\u0438\u043c\u0441\u043a\u0438 \u0446\u0438\u0444\u0440\u0438",
+"Lower Roman": "\u041c\u0430\u043b\u043a\u0438 \u0440\u0438\u043c\u0441\u043a\u0438 \u0446\u0438\u0444\u0440\u0438",
+"Name": "\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435",
+"Anchor": "\u041a\u043e\u0442\u0432\u0430 (\u0432\u0440\u044a\u0437\u043a\u0430 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430)",
+"You have unsaved changes are you sure you want to navigate away?": "\u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u043c\u0430 \u043d\u0435\u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0438 \u043f\u0440\u043e\u043c\u0435\u043d\u0438. \u0429\u0435 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435 \u043b\u0438?",
+"Restore last draft": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u0447\u0435\u0440\u043d\u043e\u0432\u0430",
+"Special character": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0435\u043d \u0437\u043d\u0430\u043a",
+"Source code": "\u0418\u0437\u0445\u043e\u0434\u0435\u043d \u043a\u043e\u0434 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0432 HTML",
+"Right to left": "\u041e\u0442\u0434\u044f\u0441\u043d\u043e \u043d\u0430\u043b\u044f\u0432\u043e",
+"Left to right": "\u041e\u0442\u043b\u044f\u0432\u043e \u043d\u0430\u0434\u044f\u0441\u043d\u043e",
+"Emoticons": "\u0415\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0438",
+"Robots": "\u0420\u043e\u0431\u043e\u0442\u0438 \u043d\u0430 \u0443\u0435\u0431 \u0442\u044a\u0440\u0441\u0430\u0447\u043a\u0438",
+"Document properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
+"Title": "\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435",
+"Keywords": "\u041a\u043b\u044e\u0447\u043e\u0432\u0438 \u0434\u0443\u043c\u0438",
+"Encoding": "\u041a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u043d\u0430\u0446\u0438\u0442\u0435",
+"Description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
+"Author": "\u0410\u0432\u0442\u043e\u0440",
+"Fullscreen": "\u041d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",
+"Horizontal line": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u0430 \u0447\u0435\u0440\u0442\u0430",
+"Horizontal space": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e",
+"Insert\/edit image": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430",
+"General": "\u041e\u0431\u0449\u043e",
+"Advanced": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e",
+"Source": "\u0410\u0434\u0440\u0435\u0441",
+"Border": "\u041a\u0430\u043d\u0442 (\u0440\u0430\u043c\u043a\u0430)",
+"Constrain proportions": "\u0417\u0430\u0432\u0430\u0437\u043d\u0430\u0432\u0435 \u043d\u0430 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438\u0442\u0435",
+"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e",
+"Image description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u0442\u0430",
+"Style": "\u0421\u0442\u0438\u043b",
+"Dimensions": "\u0420\u0430\u0437\u043c\u0435\u0440",
+"Insert image": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
+"Insert date\/time": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0434\u0430\u0442\u0430\/\u0447\u0430\u0441",
+"Remove link": "\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430",
+"Url": "\u0410\u0434\u0440\u0435\u0441 (URL)",
+"Text to display": "\u0422\u0435\u043a\u0441\u0442",
+"Anchors": "\u041a\u043e\u0442\u0432\u0430 (\u0432\u0440\u044a\u0437\u043a\u0430 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430)",
+"Insert link": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430 (\u043b\u0438\u043d\u043a)",
+"New window": "\u0412 \u043d\u043e\u0432 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 (\u043f\u043e\u0434\u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446)",
+"None": "\u0411\u0435\u0437",
+"Target": "\u0426\u0435\u043b \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
+"Insert\/edit link": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430 (\u043b\u0438\u043d\u043a)",
+"Insert\/edit video": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u0432\u0438\u0434\u0435\u043e",
+"Poster": "\u041f\u043e\u0441\u0442\u0435\u0440",
+"Alternative source": "\u0410\u043b\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0435\u043d \u0430\u0434\u0440\u0435\u0441",
+"Paste your embed code below:": "\u041f\u043e\u0441\u0442\u0430\u0432\u0435\u0442\u0435 \u043a\u043e\u0434\u0430 \u0437\u0430 \u0432\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0432 \u043f\u043e\u043b\u0435\u0442\u043e \u043f\u043e-\u0434\u043e\u043b\u0443:",
+"Insert video": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e",
+"Embed": "\u0412\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435",
+"Nonbreaking space": "\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
+"Page break": "\u041d\u043e\u0432\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430",
+"Paste as text": "\u041f\u043e\u0441\u0442\u0430\u0432\u0438 \u043a\u0430\u0442\u043e \u0442\u0435\u043a\u0441\u0442",
+"Preview": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434",
+"Print": "\u041f\u0435\u0447\u0430\u0442",
+"Save": "\u0421\u044a\u0445\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435",
+"Could not find the specified string.": "\u0422\u044a\u0440\u0441\u0435\u043d\u0438\u044f\u0442 \u0442\u0435\u043a\u0441\u0442 \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d.",
+"Replace": "\u0417\u0430\u043c\u044f\u043d\u0430",
+"Next": "\u0421\u043b\u0435\u0434\u0432\u0430\u0449",
+"Whole words": "\u0421\u0430\u043c\u043e \u0446\u0435\u043b\u0438 \u0434\u0443\u043c\u0438",
+"Find and replace": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u0438 \u0437\u0430\u043c\u044f\u043d\u0430",
+"Replace with": "\u0417\u0430\u043c\u044f\u043d\u0430 \u0441",
+"Find": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u0437\u0430",
+"Replace all": "\u0417\u0430\u043c\u044f\u043d\u0430 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0441\u0440\u0435\u0449\u0430\u043d\u0438\u044f",
+"Match case": "\u0421\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u044a\u0440\u0430 (\u043c\u0430\u043b\u043a\u0438\/\u0433\u043b\u0430\u0432\u043d\u0438 \u0431\u0443\u043a\u0432\u0438)",
+"Prev": "\u041f\u0440\u0435\u0434\u0438\u0448\u0435\u043d",
+"Spellcheck": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430",
+"Finish": "\u041a\u0440\u0430\u0439",
+"Ignore all": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u043e",
+"Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u043d\u0435",
+"Insert row before": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u043f\u0440\u0435\u0434\u0438",
+"Rows": "\u0420\u0435\u0434\u043e\u0432\u0435",
+"Height": "\u0412\u0438\u0441\u043e\u0447\u0438\u043d\u0430",
+"Paste row after": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u0441\u043b\u0435\u0434",
+"Alignment": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435",
+"Column group": "Column group",
+"Row": "\u0420\u0435\u0434",
+"Insert column before": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u0438",
+"Split cell": "\u0420\u0430\u0437\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430",
+"Cell padding": "\u0420\u0430\u0437\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e",
+"Cell spacing": "\u0420\u0430\u0437\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0435\u0442\u043a\u0438\u0442\u0435",
+"Row type": "\u0422\u0438\u043f \u043d\u0430 \u0440\u0435\u0434\u0430",
+"Insert table": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430",
+"Body": "\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 (body)",
+"Caption": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435 \u043f\u0440\u0435\u0434\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430",
+"Footer": "\u0414\u043e\u043b\u0435\u043d \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b (footer)",
+"Delete row": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434\u0430",
+"Paste row before": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u043f\u0440\u0435\u0434\u0438",
+"Scope": "\u041e\u0431\u0445\u0432\u0430\u0442",
+"Delete table": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430",
+"Header cell": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430 (\u0430\u043d\u0442\u0435\u0442\u043a\u0430)",
+"Column": "\u041a\u043e\u043b\u043e\u043d\u0430",
+"Cell": "\u041a\u043b\u0435\u0442\u043a\u0430",
+"Header": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u0430 \u0430\u043d\u0442\u0435\u0442\u043a\u0430 (header)",
+"Cell type": "\u0422\u0438\u043f \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430\u0442\u0430",
+"Copy row": "\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434",
+"Row properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0440\u0435\u0434\u0430",
+"Table properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430",
+"Row group": "Row group",
+"Right": "\u0414\u044f\u0441\u043d\u043e",
+"Insert column after": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u0441\u043b\u0435\u0434",
+"Cols": "\u041a\u043e\u043b\u043e\u043d\u0438",
+"Insert row after": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u0441\u043b\u0435\u0434",
+"Width": "\u0428\u0438\u0440\u0438\u043d\u0430",
+"Cell properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430\u0442\u0430",
+"Left": "\u041b\u044f\u0432\u043e",
+"Cut row": "\u0418\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434",
+"Delete column": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430\u0442\u0430",
+"Center": "\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0430\u043d\u043e",
+"Merge cells": "\u0421\u043b\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0438\u0442\u0435",
+"Insert template": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d",
+"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438",
+"Background color": "\u0424\u043e\u043d\u043e\u0432 \u0446\u0432\u044f\u0442",
+"Text color": "\u0426\u0432\u044f\u0442 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430",
+"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u043b\u043e\u043a\u043e\u0432\u0435\u0442\u0435",
+"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c\u0438 \u0437\u043d\u0430\u0446\u0438",
+"Words: {0}": "\u0411\u0440\u043e\u0439 \u0434\u0443\u043c\u0438: {0}",
+"Insert": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435",
+"File": "\u0424\u0430\u0439\u043b",
+"Edit": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u041f\u043e\u043b\u0435 \u0437\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d \u0442\u0435\u043a\u0441\u0442. \u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 Alt+F9 \u0437\u0430 \u043c\u0435\u043d\u044e; Alt+F10 \u0437\u0430 \u043b\u0435\u043d\u0442\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438; Alt+0 \u0437\u0430 \u043f\u043e\u043c\u043e\u0449.",
+"Tools": "\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438",
+"View": "\u0418\u0437\u0433\u043b\u0435\u0434",
+"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430",
+"Format": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/bs.js b/framework/Web/Javascripts/source/tinymce-405/langs/bs.js
new file mode 100755
index 00000000..77b8000f
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/bs.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('bs',{
+"Cut": "Izre\u017ei",
+"Header 2": "Zaglavlje 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Va\u0161 browser ne podr\u017eava direktan pristup me\u0111umemoriji. Molimo vas da koristite pre\u010dice Ctrl+X\/C\/V na tastaturi.",
+"Div": "Div",
+"Paste": "Zalijepi",
+"Close": "Zatvori",
+"Pre": "Pre",
+"Align right": "Poravnaj desno",
+"New document": "Novi dokument",
+"Blockquote": "Blok citat",
+"Numbered list": "Numerisana lista",
+"Increase indent": "Pove\u0107aj uvlaku",
+"Formats": "Formati",
+"Headers": "Zaglavlja",
+"Select all": "Ozna\u010di sve",
+"Header 3": "Zaglavlje 3",
+"Blocks": "Blokovi",
+"Undo": "Nazad",
+"Strikethrough": "Precrtano",
+"Bullet list": "Bullet lista",
+"Header 1": "Zaglavlje 1",
+"Superscript": "Eksponent",
+"Clear formatting": "Poni\u0161ti formatiranje",
+"Subscript": "Indeks",
+"Header 6": "Zaglavlje 6",
+"Redo": "Naprijed",
+"Paragraph": "Paragraf",
+"Ok": "U redu",
+"Bold": "Podebljano",
+"Code": "Kod",
+"Italic": "Nakrivljen",
+"Align center": "Centriraj",
+"Header 5": "Zaglavlje 5",
+"Decrease indent": "Smanji uvlaku",
+"Header 4": "Zaglavlje 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Lijepljenje je sada u modu obi\u010dnog teksta. Sadr\u017eaj \u0107e sada biti zalijepljen kao obi\u010dni tekst sve dok ovu opciju ne ugasite.",
+"Underline": "Podvu\u010deno",
+"Cancel": "Otka\u017ei",
+"Justify": "Obostrano poravnanje",
+"Inline": "U liniji",
+"Copy": "Kopiraj",
+"Align left": "Poravnaj lijevo",
+"Visual aids": "Vizualna pomo\u0107",
+"Lower Greek": "Mala gr\u010dka slova",
+"Square": "Kvadrat",
+"Default": "Po\u010detno",
+"Lower Alpha": "Mala slova",
+"Circle": "Krug",
+"Disc": "Disk",
+"Upper Alpha": "Velika slova",
+"Upper Roman": "Velika rimska slova",
+"Lower Roman": "Mala rimska slova",
+"Name": "Ime",
+"Anchor": "Anchor",
+"You have unsaved changes are you sure you want to navigate away?": "Niste sa\u010duvali izmjene. Jeste li sigurni da \u017eelite napustiti stranicu?",
+"Restore last draft": "Vrati posljednju skicu",
+"Special character": "Specijalni znak",
+"Source code": "Izvorni kod",
+"Right to left": "S desna na lijevo",
+"Left to right": "S lijeva na desno",
+"Emoticons": "Smajliji",
+"Robots": "Roboti",
+"Document properties": "Svojstva dokumenta",
+"Title": "Naslov",
+"Keywords": "Klju\u010dne rije\u010di",
+"Encoding": "Kodiranje",
+"Description": "Opis",
+"Author": "Autor",
+"Fullscreen": "Cijeli ekran",
+"Horizontal line": "Vodoravna linija",
+"Horizontal space": "Horizontalni razmak",
+"Insert\/edit image": "Umetni\/uredi sliku",
+"General": "Op\u0107enito",
+"Advanced": "Napredno",
+"Source": "Izvor",
+"Border": "Okvir",
+"Constrain proportions": "Ograni\u010di proporcije",
+"Vertical space": "Vertikalni razmak",
+"Image description": "Opis slike",
+"Style": "Stil",
+"Dimensions": "Dimenzije",
+"Insert image": "Umetni sliku",
+"Insert date\/time": "Umetni datum\/vrijeme",
+"Remove link": "Ukloni link",
+"Url": "URL",
+"Text to display": "Tekst za prikaz",
+"Anchors": "Anchori",
+"Insert link": "Umetni link",
+"New window": "Novi prozor",
+"None": "Ni\u0161ta",
+"Target": "Odredi\u0161te",
+"Insert\/edit link": "Umetni\/uredi link",
+"Insert\/edit video": "Umetni\/uredi video",
+"Poster": "Objavio",
+"Alternative source": "Alternativni izvor",
+"Paste your embed code below:": "Zalijepite va\u0161 ugradbeni kod ispod:",
+"Insert video": "Umetni video",
+"Embed": "Ugradi",
+"Nonbreaking space": "Neprijelomni razmak",
+"Page break": "Prijelom stranice",
+"Paste as text": "Zalijepi kao tekst",
+"Preview": "Pregled",
+"Print": "\u0160tampaj",
+"Save": "Sa\u010duvaj",
+"Could not find the specified string.": "Tra\u017eeni string nije prona\u0111en.",
+"Replace": "Zamijeni",
+"Next": "Sljede\u0107e",
+"Whole words": "Cijele rije\u010di",
+"Find and replace": "Prona\u0111i i zamijeni",
+"Replace with": "Zamijena sa",
+"Find": "Prona\u0111i",
+"Replace all": "Zamijeni sve",
+"Match case": "Razlikuj mala i velika slova",
+"Prev": "Prethodno",
+"Spellcheck": "Provjera pravopisa",
+"Finish": "Zavr\u0161i",
+"Ignore all": "Zanemari sve",
+"Ignore": "Zanemari",
+"Insert row before": "Umetni red iznad",
+"Rows": "Redovi",
+"Height": "Visina",
+"Paste row after": "Zalijepi red iznad",
+"Alignment": "Poravnanje",
+"Column group": "Grupa kolone",
+"Row": "Red",
+"Insert column before": "Umetni kolonu iznad",
+"Split cell": "Podijeli \u0107eliju",
+"Cell padding": "Ispunjenje \u0107elije",
+"Cell spacing": "Razmak \u0107elija",
+"Row type": "Vrsta reda",
+"Insert table": "Umetni tabelu",
+"Body": "Tijelo",
+"Caption": "Natpis",
+"Footer": "Podno\u017eje",
+"Delete row": "Obri\u0161i red",
+"Paste row before": "Zalijepi red ispod",
+"Scope": "Opseg",
+"Delete table": "Obri\u0161i tabelu",
+"Header cell": "\u0106elija zaglavlja",
+"Column": "Kolona",
+"Cell": "\u0106elija",
+"Header": "Zaglavlje",
+"Cell type": "Vrsta \u0107elije",
+"Copy row": "Kopiraj red",
+"Row properties": "Svojstva reda",
+"Table properties": "Svojstva tabele",
+"Row group": "Grupa reda",
+"Right": "Desno",
+"Insert column after": "Umetni kolonu ispod",
+"Cols": "Kolone",
+"Insert row after": "Umetni red ispod",
+"Width": "\u0160irina",
+"Cell properties": "Svojstva \u0107elije",
+"Left": "Lijevo",
+"Cut row": "Izre\u017ei red",
+"Delete column": "Obri\u0161i kolonu",
+"Center": "Centrirano",
+"Merge cells": "Spoji \u0107elije",
+"Insert template": "Umetni predlo\u017eak",
+"Templates": "Predlo\u0161ci",
+"Background color": "Boja pozadine",
+"Text color": "Boja tekst",
+"Show blocks": "Prika\u017ei blokove",
+"Show invisible characters": "Prika\u017ei nevidljive znakove",
+"Words: {0}": "Rije\u010di: {0}",
+"Insert": "Umetni",
+"File": "Datoteka",
+"Edit": "Uredi",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Oblast za ure\u0111ivanje teksta. Pritisnite ALT-F9 za meni. Pritisnite ALT-F10 za prikaz alatne trake. Pritisnite ALT-0 za pomo\u0107.",
+"Tools": "Alati",
+"View": "Pregled",
+"Table": "Tabela",
+"Format": "Formatiranje"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ca.js b/framework/Web/Javascripts/source/tinymce-405/langs/ca.js
new file mode 100755
index 00000000..110b0109
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ca.js
@@ -0,0 +1,118 @@
+tinymce.addI18n('ca',{
+"Cut": "Retalla",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "El vostre navegador no suporta l'acc\u00e9s directe al portaobjectes. Si us plau, feu servir les dreceres de teclat Ctrl+X\/C\/V en el seu lloc",
+"Paste": "Pega",
+"Close": "Tanca",
+"Align right": "Aliniat a la dreta",
+"New document": "Nou document",
+"Numbered list": "Llista enumerada",
+"Increase indent": "Augmentar sagnat",
+"Formats": "Formats",
+"Select all": "Seleccionar-ho tot",
+"Undo": "Desfer",
+"Strikethrough": "Ratllat",
+"Bullet list": "Llista no ordenada",
+"Superscript": "Super\u00edndex",
+"Clear formatting": "Eliminar format",
+"Subscript": "Sub\u00edndex",
+"Redo": "Refer",
+"Ok": "Acceptar",
+"Bold": "Negreta",
+"Italic": "Cursiva",
+"Align center": "Centrat",
+"Decrease indent": "Disminuir sagnat",
+"Underline": "Subratllat",
+"Cancel": "Cancel\u00b7la",
+"Justify": "Justificat",
+"Copy": "Copia",
+"Align left": "Aliniat a l'esquerra",
+"Visual aids": "Assist\u00e8ncia visual",
+"Lower Greek": "Grec menor",
+"Square": "Quadrat",
+"Default": "Per defecte",
+"Lower Alpha": "Alfa menor",
+"Circle": "Cercle",
+"Disc": "Disc",
+"Upper Alpha": "Alfa major",
+"Upper Roman": "Roman major",
+"Lower Roman": "Roman menor",
+"Name": "Nom",
+"Anchor": "\u00c0ncora",
+"You have unsaved changes are you sure you want to navigate away?": "Teniu canvis sense desar, esteu segur que voleu deixar-ho ara?",
+"Restore last draft": "Restaurar l'\u00faltim esborrany",
+"Special character": "Car\u00e0cter especial",
+"Source code": "Codi font",
+"Right to left": "De dreta a esquerra",
+"Left to right": "D'esquerra a dreta",
+"Emoticons": "Emoticones",
+"Robots": "Robots",
+"Document properties": "Propietats del document",
+"Title": "T\u00edtol",
+"Keywords": "Paraules clau",
+"Encoding": "Codificaci\u00f3",
+"Description": "Descripci\u00f3",
+"Author": "Autor",
+"Fullscreen": "Pantalla completa",
+"Horizontal line": "L\u00ednia horitzontal",
+"Horizontal space": "Espai horitzontal",
+"Insert\/edit image": "Inserir\/editar imatge",
+"General": "General",
+"Advanced": "Avan\u00e7at",
+"Source": "Font",
+"Border": "Vora",
+"Constrain proportions": "Mantenir proporcions",
+"Vertical space": "Espai vertical",
+"Image description": "Descripci\u00f3 de la imatge",
+"Style": "Estil",
+"Dimensions": "Dimensions",
+"Insert image": "Inserir imatge",
+"Insert date\/time": "Inserir data\/hora",
+"Remove link": "Treure enlla\u00e7",
+"Url": "URL",
+"Text to display": "Text per mostrar",
+"Insert link": "Inserir enlla\u00e7",
+"New window": "Finestra nova",
+"None": "Cap",
+"Target": "Dest\u00ed",
+"Insert\/edit link": "Inserir\/editar enlla\u00e7",
+"Insert\/edit video": "Inserir\/editar v\u00eddeo",
+"Poster": "P\u00f3ster",
+"Alternative source": "Font alternativa",
+"Paste your embed code below:": "Enganxau el codi a sota:",
+"Insert video": "Inserir v\u00eddeo",
+"Embed": "Incloure",
+"Nonbreaking space": "Espai fixe",
+"Page break": "Salt de p\u00e0gina",
+"Preview": "Previsualitzaci\u00f3",
+"Print": "Imprimir",
+"Save": "Desa",
+"Could not find the specified string.": "No es pot trobar el text especificat.",
+"Replace": "Rempla\u00e7ar",
+"Next": "Seg\u00fcent",
+"Whole words": "Paraules senceres",
+"Find and replace": "Buscar i rempla\u00e7ar",
+"Replace with": "Rempla\u00e7ar amb",
+"Find": "Buscar",
+"Replace all": "Rempla\u00e7ar-ho tot",
+"Match case": "Coincidir maj\u00fascules",
+"Prev": "Ant",
+"Spellcheck": "Comprovar ortrografia",
+"Finish": "Finalitzar",
+"Ignore all": "Ignorar tots",
+"Ignore": "Ignorar",
+"Insert template": "Inserir plantilla",
+"Templates": "Plantilles",
+"Background color": "Color del fons",
+"Text color": "Color del text",
+"Show blocks": "Mostrar blocs",
+"Show invisible characters": "Mostrar car\u00e0cters invisibles",
+"Words: {0}": "Paraules: {0}",
+"Insert": "Inserir",
+"File": "Arxiu",
+"Edit": "Edici\u00f3",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c0rea de text amb format. Premeu ALT-F9 per mostrar el men\u00fa, ALT F10 per la barra d'eines i ALT-0 per ajuda.",
+"Tools": "Eines",
+"View": "Veure",
+"Table": "Taula",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/cs.js b/framework/Web/Javascripts/source/tinymce-405/langs/cs.js
new file mode 100755
index 00000000..9ab436c3
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/cs.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('cs',{
+"Cut": "Vyjmout",
+"Header 2": "Nadpis 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "V\u00e1\u0161 prohl\u00ed\u017ee\u010d nepodporuje p\u0159\u00edm\u00fd p\u0159\u00edstup do schr\u00e1nky. Pou\u017eijte pros\u00edm kl\u00e1vesov\u00e9 zkratky Ctrl+X\/C\/V.",
+"Div": "Div (blok)",
+"Paste": "Vlo\u017eit",
+"Close": "Zav\u0159\u00edt",
+"Pre": "Pre (p\u0159edform\u00e1tov\u00e1no)",
+"Align right": "Zarovnat vpravo",
+"New document": "Nov\u00fd dokument",
+"Blockquote": "Citace",
+"Numbered list": "\u010c\u00edslov\u00e1n\u00ed",
+"Increase indent": "Zv\u011bt\u0161it odsazen\u00ed",
+"Formats": "Form\u00e1ty",
+"Headers": "Nadpisy",
+"Select all": "Vybrat v\u0161e",
+"Header 3": "Nadpis 3",
+"Blocks": "Blokov\u00e9 zobrazen\u00ed (block)",
+"Undo": "Zp\u011bt",
+"Strikethrough": "P\u0159e\u0161rktnut\u00e9",
+"Bullet list": "Odr\u00e1\u017eky",
+"Header 1": "Nadpis 1",
+"Superscript": "Horn\u00ed index",
+"Clear formatting": "Vymazat form\u00e1tov\u00e1n\u00ed",
+"Subscript": "Doln\u00ed index",
+"Header 6": "Nadpis 6",
+"Redo": "Znovu",
+"Paragraph": "Odstavec",
+"Ok": "OK",
+"Bold": "Tu\u010dn\u00e9",
+"Code": "Code (k\u00f3d)",
+"Italic": "Kurz\u00edva",
+"Align center": "Zarovnat na st\u0159ed",
+"Header 5": "Nadpis 5",
+"Decrease indent": "Zmen\u0161it odsazen\u00ed",
+"Header 4": "Nadpis 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Je zapnuto vkl\u00e1d\u00e1n\u00ed \u010dist\u00e9ho textu. Dokud nebude tato volba vypnuta, bude ve\u0161ker\u00fd obsah vlo\u017een jako \u010dist\u00fd text.",
+"Underline": "Podtr\u017een\u00e9",
+"Cancel": "Zru\u0161it",
+"Justify": "Zarovnat do bloku",
+"Inline": "\u0158\u00e1dkov\u00e9 zobrazen\u00ed (inline)",
+"Copy": "Kop\u00edrovat",
+"Align left": "Zarovnat vlevo",
+"Visual aids": "Vizu\u00e1ln\u00ed pom\u016fcky",
+"Lower Greek": "Mal\u00e9 p\u00edsmenkov\u00e1n\u00ed",
+"Square": "\u010ctvere\u010dek",
+"Default": "V\u00fdchoz\u00ed",
+"Lower Alpha": "Norm\u00e1ln\u00ed \u010d\u00edslov\u00e1n\u00ed",
+"Circle": "Kole\u010dko",
+"Disc": "Punt\u00edk",
+"Upper Alpha": "velk\u00e9 p\u00edsmenkov\u00e1n\u00ed",
+"Upper Roman": "\u0158\u00edmsk\u00e9 \u010d\u00edslice",
+"Lower Roman": "Mal\u00e9 \u0159\u00edmsk\u00e9 \u010d\u00edslice",
+"Name": "N\u00e1zev",
+"Anchor": "Kotva",
+"You have unsaved changes are you sure you want to navigate away?": "M\u00e1te neulo\u017een\u00e9 zm\u011bny. Opravdu chcete opustit str\u00e1nku?",
+"Restore last draft": "Obnovit posledn\u00ed koncept",
+"Special character": "Speci\u00e1ln\u00ed znak",
+"Source code": "Zdrojov\u00fd k\u00f3d",
+"Right to left": "Zprava doleva",
+"Left to right": "Zleva doprava",
+"Emoticons": "Emotikony",
+"Robots": "Roboti",
+"Document properties": "Vlastnosti dokumentu",
+"Title": "Titulek",
+"Keywords": "Kl\u00ed\u010dov\u00e1 slova",
+"Encoding": "K\u00f3dov\u00e1n\u00ed",
+"Description": "Popis",
+"Author": "Autor",
+"Fullscreen": "Na celou obrazovku",
+"Horizontal line": "Vodorovn\u00e1 \u010d\u00e1ra",
+"Horizontal space": "Horizont\u00e1ln\u00ed mezera",
+"Insert\/edit image": "Vlo\u017eit \/ upravit obr\u00e1zek",
+"General": "Obecn\u00e9",
+"Advanced": "Pokro\u010dil\u00e9",
+"Source": "Zdroj",
+"Border": "R\u00e1me\u010dek",
+"Constrain proportions": "Zachovat proporce",
+"Vertical space": "Vertik\u00e1ln\u00ed mezera",
+"Image description": "Popis obr\u00e1zku",
+"Style": "Styl",
+"Dimensions": "Rozm\u011bry",
+"Insert image": "Vlo\u017eit obr\u00e1zek",
+"Insert date\/time": "Vlo\u017eit datum \/ \u010das",
+"Remove link": "Odstranit odkaz",
+"Url": "Odkaz",
+"Text to display": "Text k zobrazen\u00ed",
+"Anchors": "Kotvy",
+"Insert link": "Vlo\u017eit odkaz",
+"New window": "Nov\u00e9 okno",
+"None": "\u017d\u00e1dn\u00e9",
+"Target": "C\u00edl",
+"Insert\/edit link": "Vlo\u017eit \/ upravit odkaz",
+"Insert\/edit video": "Vlo\u017eit \/ upravit video",
+"Poster": "N\u00e1hled",
+"Alternative source": "Alternativn\u00ed zdroj",
+"Paste your embed code below:": "Vlo\u017ete k\u00f3d pro vlo\u017een\u00ed n\u00ed\u017ee:",
+"Insert video": "Vlo\u017eit video",
+"Embed": "Vlo\u017eit",
+"Nonbreaking space": "Pevn\u00e1 mezera",
+"Page break": "Konec str\u00e1nky",
+"Paste as text": "Vlo\u017eit jako text",
+"Preview": "N\u00e1hled",
+"Print": "Tisk",
+"Save": "Ulo\u017eit",
+"Could not find the specified string.": "Zadan\u00fd \u0159et\u011bzec nebyl nalezen.",
+"Replace": "Nahradit",
+"Next": "Dal\u0161\u00ed",
+"Whole words": "Cel\u00e1 slova",
+"Find and replace": "Naj\u00edt a nahradit",
+"Replace with": "Nahradit za",
+"Find": "Naj\u00edt",
+"Replace all": "Nahradit v\u0161e",
+"Match case": "Rozli\u0161ovat velikost",
+"Prev": "P\u0159edchoz\u00ed",
+"Spellcheck": "Kontrola pravopisu",
+"Finish": "Ukon\u010dit",
+"Ignore all": "Ignorovat v\u0161e",
+"Ignore": "Ignorovat",
+"Insert row before": "Vlo\u017eit \u0159\u00e1dek nad",
+"Rows": "\u0158\u00e1dek",
+"Height": "V\u00fd\u0161ka",
+"Paste row after": "Vlo\u017eit \u0159\u00e1dek pod",
+"Alignment": "Zarovn\u00e1n\u00ed",
+"Column group": "Skupina sloupc\u016f",
+"Row": "\u0158\u00e1dek",
+"Insert column before": "Vlo\u017eit sloupec vlevo",
+"Split cell": "Rozd\u011blit bu\u0148ky",
+"Cell padding": "Vnit\u0159n\u00ed okraj bun\u011bk",
+"Cell spacing": "Vn\u011bj\u0161\u00ed okraj bun\u011bk",
+"Row type": "Typ \u0159\u00e1dku",
+"Insert table": "Vlo\u017eit tabulku",
+"Body": "T\u011blo",
+"Caption": "Nadpis",
+"Footer": "Pati\u010dka",
+"Delete row": "Smazat \u0159\u00e1dek",
+"Paste row before": "Vlo\u017eit \u0159\u00e1dek nad",
+"Scope": "Rozsah",
+"Delete table": "Smazat tabulku",
+"Header cell": "Hlavi\u010dkov\u00e1 bu\u0148ka",
+"Column": "Sloupec",
+"Cell": "Bu\u0148ka",
+"Header": "Hlavi\u010dka",
+"Cell type": "Typ bu\u0148ky",
+"Copy row": "Kop\u00edrovat \u0159\u00e1dek",
+"Row properties": "Vlastnosti \u0159\u00e1dku",
+"Table properties": "Vlastnosti tabulky",
+"Row group": "Skupina \u0159\u00e1dk\u016f",
+"Right": "Vpravo",
+"Insert column after": "Vlo\u017eit sloupec vpravo",
+"Cols": "Sloupc\u016f",
+"Insert row after": "Vlo\u017eit \u0159\u00e1dek pod",
+"Width": "\u0160\u00ed\u0159ka",
+"Cell properties": "Vlastnosti bu\u0148ky",
+"Left": "Vlevo",
+"Cut row": "Vyjmout \u0159\u00e1dek",
+"Delete column": "Smazat sloupec",
+"Center": "Na st\u0159ed",
+"Merge cells": "Slou\u010dit bu\u0148ky",
+"Insert template": "Vlo\u017eit \u0161ablonu",
+"Templates": "\u0160ablony",
+"Background color": "Barva pozad\u00ed",
+"Text color": "Barva p\u00edsma",
+"Show blocks": "Uk\u00e1zat bloky",
+"Show invisible characters": "Zobrazit speci\u00e1ln\u00ed znaky",
+"Words: {0}": "Po\u010det slov: {0}",
+"Insert": "Vlo\u017eit",
+"File": "Soubor",
+"Edit": "\u00dapravy",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Editor. Stiskn\u011bte ALT-F9 pro menu, ALT-F10 pro n\u00e1strojovou li\u0161tu a ALT-0 pro n\u00e1pov\u011bdu.",
+"Tools": "N\u00e1stroje",
+"View": "Zobrazit",
+"Table": "Tabulka",
+"Format": "Form\u00e1t"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/cy.js b/framework/Web/Javascripts/source/tinymce-405/langs/cy.js
new file mode 100755
index 00000000..23e3fb50
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/cy.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('cy',{
+"Cut": "Torri",
+"Header 2": "Pennawd 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Dyw eich porwr ddim yn cynnal mynediad uniongyrchol i'r clipfwrdd. Defnyddiwch yr allweddau llwybr brys Ctrl+X\/C\/V yn lle 'ny.",
+"Div": "Div",
+"Paste": "Gludo",
+"Close": "Cau",
+"Pre": "Pre",
+"Align right": "Aliniad dde",
+"New document": "Dogfen newydd",
+"Blockquote": "Dyfyniad bloc",
+"Numbered list": "Rhestr rifol",
+"Increase indent": "Cynyddu mewnoliad",
+"Formats": "Fformatiau",
+"Headers": "Penawdau",
+"Select all": "Dewis popeth",
+"Header 3": "Pennawd 3",
+"Blocks": "Blociau",
+"Undo": "Dadwneud",
+"Strikethrough": "Llinell drwodd",
+"Bullet list": "Rhestr fwled",
+"Header 1": "Pennawd 1",
+"Superscript": "Uwchsgript",
+"Clear formatting": "Clirio fformatio",
+"Subscript": "Is-sgript",
+"Header 6": "Pennawd 6",
+"Redo": "AIlwneud",
+"Paragraph": "Paragraff",
+"Ok": "Iawn",
+"Bold": "Bras",
+"Code": "Cod",
+"Italic": "Italig",
+"Align center": "Aliniad canol",
+"Header 5": "Pennawd 5",
+"Decrease indent": "Lleinhau mewnoliad",
+"Header 4": "Pennawd 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Mae gludo o fewn modd testun plaen. Caiff y cynnwys ei ludo ar ffurf destun plaen tan gaiff yr opsiwn ei doglo bant.",
+"Underline": "Tanlinellu",
+"Cancel": "Canslo",
+"Justify": "Unioni",
+"Inline": "Mewn llinell",
+"Copy": "Cop\u00efo",
+"Align left": "Aliniad chwith",
+"Visual aids": "Cymorth gweledol",
+"Lower Greek": "Groeg Is",
+"Square": "Sgw\u00e2r",
+"Default": "Diofyn",
+"Lower Alpha": "Alffa Is",
+"Circle": "Cylch",
+"Disc": "Disg",
+"Upper Alpha": "Alffa Uwch",
+"Upper Roman": "Rhufeinig Uwch",
+"Lower Roman": "Rhufeinig Is",
+"Name": "Enw",
+"Anchor": "Angor",
+"You have unsaved changes are you sure you want to navigate away?": "Mae newidiadau heb eu cadw - ydych chi wir am symud i ffwrdd?",
+"Restore last draft": "Adfer y drafft olaf",
+"Special character": "Nod arbennig",
+"Source code": "Cod gwreiddiol",
+"Right to left": "Dde i'r chwith",
+"Left to right": "Chwith i'r dde",
+"Emoticons": "Gwenogluniau",
+"Robots": "Robotiaid",
+"Document properties": "Priodweddau'r ddogfen",
+"Title": "Teitl",
+"Keywords": "Allweddeiriau",
+"Encoding": "Amgodiad",
+"Description": "Disgrifiad",
+"Author": "Awdur",
+"Fullscreen": "Sgrin llawn",
+"Horizontal line": "Llinell lorweddol",
+"Horizontal space": "Gofod llorweddol",
+"Insert\/edit image": "Mewnosod\/golygu delwedd",
+"General": "Cyffredinol",
+"Advanced": "Uwch",
+"Source": "Ffynhonnell",
+"Border": "Ymyl",
+"Constrain proportions": "Gorfodi cyfrannedd",
+"Vertical space": "Gofod fertigol",
+"Image description": "Disgrifiad y ddelwedd",
+"Style": "Arddull",
+"Dimensions": "Dimensiynau",
+"Insert image": "Mewnosod delwedd",
+"Insert date\/time": "Mewnosod dyddiad\/amser",
+"Remove link": "Tynnu dolen",
+"Url": "Url",
+"Text to display": "Testun i'w ddangos",
+"Anchors": "Angorau",
+"Insert link": "Mewnosod dolen",
+"New window": "Ffenest newydd",
+"None": "Dim",
+"Target": "Targed",
+"Insert\/edit link": "Mewnosod\/golygu dolen",
+"Insert\/edit video": "Mewnosod\/golygu fideo",
+"Poster": "Poster",
+"Alternative source": "Ffynhonnell amgen",
+"Paste your embed code below:": "Gludwch eich cod mewnosod isod:",
+"Insert video": "Mewnosod fideo",
+"Embed": "Mewnosod",
+"Nonbreaking space": "Bwlch heb dorri",
+"Page break": "Toriad tudalen",
+"Paste as text": "Gludo fel testun",
+"Preview": "Rhagolwg",
+"Print": "Argraffu",
+"Save": "Cadw",
+"Could not find the specified string.": "Methu ffeindio'r llinyn hwnnw.",
+"Replace": "Amnewid",
+"Next": "Nesaf",
+"Whole words": "Geiriau cyfan",
+"Find and replace": "Chwilio ac amnewid",
+"Replace with": "Amnewid gyda",
+"Find": "Chwilio",
+"Replace all": "Amnewid pob",
+"Match case": "Cydweddu'r un c\u00eas",
+"Prev": "Cynt",
+"Spellcheck": "Sillafydd",
+"Finish": "Gorffen",
+"Ignore all": "Amwybyddu pob",
+"Ignore": "Anwybyddu",
+"Insert row before": "Mewnosod rhes cyn",
+"Rows": "Rhesi",
+"Height": "Uchder",
+"Paste row after": "Gludo rhes ar \u00f4l",
+"Alignment": "Aliniad",
+"Column group": "Gr\u0175p colofn",
+"Row": "Rhes",
+"Insert column before": "Mewnosod colofn cyn",
+"Split cell": "Hollti celloedd",
+"Cell padding": "Padio cell",
+"Cell spacing": "Bylchiau cell",
+"Row type": "Math y rhes",
+"Insert table": "Mewnosod tabl",
+"Body": "Corff",
+"Caption": "Pennawd",
+"Footer": "Troedyn",
+"Delete row": "Dileu rhes",
+"Paste row before": "Gludo rhes cyn",
+"Scope": "Sgop",
+"Delete table": "Dileu'r tabl",
+"Header cell": "Cell bennawd",
+"Column": "Colofn",
+"Cell": "Cell",
+"Header": "Pennyn",
+"Cell type": "Math y gell",
+"Copy row": "Cop\u00efo rhes",
+"Row properties": "Priodweddau rhes",
+"Table properties": "Priodweddau tabl",
+"Row group": "Gr\u0175p rhes",
+"Right": "Dde",
+"Insert column after": "Mewnosod colofn ar \u00f4l",
+"Cols": "Col'u",
+"Insert row after": "Mewnosod rhes ar \u00f4l",
+"Width": "Lled",
+"Cell properties": "Priodweddau'r gell",
+"Left": "Chwith",
+"Cut row": "Torri rhes",
+"Delete column": "Dileu colofn",
+"Center": "Canol",
+"Merge cells": "Cyfuno celloedd",
+"Insert template": "Mewnosod templed",
+"Templates": "Templedi",
+"Background color": "Lliw cefndir",
+"Text color": "Lliw testun",
+"Show blocks": "Dangos blociau",
+"Show invisible characters": "Dangos nodau anweledig",
+"Words: {0}": "Geiriau: {0}",
+"Insert": "Mewnosod",
+"File": "Ffeil",
+"Edit": "Golygu",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Ardal Testun Uwch. Pwyswch ALT-F9 ar gyfer y ddewislen, Pwyswch ALT-F10 ar gyfer y bar offer. Pwyswch ALT-0 am gymorth",
+"Tools": "Offer",
+"View": "Dangos",
+"Table": "Tabl",
+"Format": "Fformat"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/da.js b/framework/Web/Javascripts/source/tinymce-405/langs/da.js
new file mode 100755
index 00000000..3cf7acb5
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/da.js
@@ -0,0 +1,156 @@
+tinymce.addI18n('da',{
+"Cut": "Klip",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Din browser underst\u00f8tter ikke direkte adgang til clipboard. Benyt Ctrl+X\/C\/ keybord shortcuts i stedet for.",
+"Paste": "Inds\u00e6t",
+"Close": "Luk",
+"Align right": "H\u00f8jrejusteret",
+"New document": "Nyt dokument",
+"Numbered list": "Nummerering",
+"Increase indent": "For\u00f8g indrykning",
+"Formats": "Formater",
+"Select all": "V\u00e6lg alle",
+"Undo": "Fortryd",
+"Strikethrough": "Gennemstreg",
+"Bullet list": "Punkt tegn",
+"Superscript": "Superscript",
+"Clear formatting": "Nulstil formattering",
+"Subscript": "Subscript",
+"Redo": "Genopret",
+"Ok": "Ok",
+"Bold": "Fed",
+"Italic": "Kursiv",
+"Align center": "Centreret",
+"Decrease indent": "Formindsk indrykning",
+"Underline": "Understreg",
+"Cancel": "Fortryd",
+"Justify": "Justering",
+"Copy": "Kopier",
+"Align left": "Venstrejusteret",
+"Visual aids": "Visuel hj\u00e6lp",
+"Lower Greek": "Lower Gr\u00e6sk",
+"Square": "Kvadrat",
+"Default": "Standard",
+"Lower Alpha": "Lower Alpha",
+"Circle": "Cirkel",
+"Disc": "Disk",
+"Upper Alpha": "Upper Alpha",
+"Upper Roman": "Upper Roman",
+"Lower Roman": "Lavere Roman",
+"Name": "Navn",
+"Anchor": "Anchor",
+"You have unsaved changes are you sure you want to navigate away?": "Du har ikke gemte \u00e6ndringer. Er du sikker p\u00e5 at du vil forts\u00e6tte?",
+"Restore last draft": "Genopret sidste kladde",
+"Special character": "Specielle tegn",
+"Source code": "Kildekode",
+"Right to left": "H\u00f8jre til venstre",
+"Left to right": "Venstre til h\u00f8jre",
+"Emoticons": "Emoticons",
+"Robots": "Robotter",
+"Document properties": "Dokument egenskaber",
+"Title": "Titel",
+"Keywords": "S\u00f8geord",
+"Encoding": "Kodning",
+"Description": "Beskrivelse",
+"Author": "Forfatter",
+"Fullscreen": "Fuldsk\u00e6rm",
+"Horizontal line": "Vandret linie",
+"Horizontal space": "Vandret afstand",
+"Insert\/edit image": "Inds\u00e6t\/ret billede",
+"General": "Generet",
+"Advanced": "Avanceret",
+"Source": "Kilde",
+"Border": "Kant",
+"Constrain proportions": "Behold propertioner",
+"Vertical space": "Lodret afstand",
+"Image description": "Billede beskrivelse",
+"Style": "Stil",
+"Dimensions": "Dimensioner",
+"Insert date\/time": "Inds\u00e6t dato\/klokkeslet",
+"Url": "Url",
+"Text to display": "Vis tekst",
+"Insert link": "Inds\u00e6t link",
+"New window": "Nyt vindue",
+"None": "Ingen",
+"Target": "Target",
+"Insert\/edit link": "Inds\u00e6t\/ret link",
+"Insert\/edit video": "Inds\u00e6t\/ret video",
+"Poster": "Poster",
+"Alternative source": "Alternativ kilde",
+"Paste your embed code below:": "Inds\u00e6t din embed kode herunder:",
+"Insert video": "Inds\u00e6t video",
+"Embed": "Integrer",
+"Nonbreaking space": "H\u00e5rd mellemrum",
+"Page break": "Sideskift",
+"Preview": "Forh\u00e5ndsvisning",
+"Print": "Udskriv",
+"Save": "Gem",
+"Could not find the specified string.": "Kunne ikke finde s\u00f8getekst",
+"Replace": "Erstat",
+"Next": "N\u00e6ste",
+"Whole words": "Hele ord",
+"Find and replace": "Find og erstat",
+"Replace with": "Erstat med",
+"Find": "Find",
+"Replace all": "Erstat alt",
+"Match case": "STORE og sm\u00e5 bogstaver",
+"Prev": "Forrige",
+"Spellcheck": "Stavekontrol",
+"Finish": "F\u00e6rdig",
+"Ignore all": "Ignorer alt",
+"Ignore": "Ignorer",
+"Insert row before": "Inds\u00e6t r\u00e6kke f\u00f8r",
+"Rows": "R\u00e6kker",
+"Height": "H\u00f8jde",
+"Paste row after": "Inds\u00e6t r\u00e6kke efter",
+"Alignment": "Tilpasning",
+"Column group": "Kolonne gruppe",
+"Row": "R\u00e6kke",
+"Insert column before": "Inds\u00e6t kolonne f\u00f8r",
+"Split cell": "Split celle",
+"Cell padding": "Celle padding",
+"Cell spacing": "Celle afstand",
+"Row type": "R\u00e6kke type",
+"Insert table": "Inds\u00e6t tabel",
+"Body": "Krop",
+"Caption": "Tekst",
+"Footer": "Sidefod",
+"Delete row": "Slet r\u00e6kke",
+"Paste row before": "Inds\u00e6t r\u00e6kke f\u00f8r",
+"Scope": "Anvendelsesomr\u00e5de",
+"Delete table": "Slet tabel",
+"Header cell": "Header celle",
+"Column": "Kolonne",
+"Cell": "Celle",
+"Header": "Overskrift",
+"Cell type": "Celle type",
+"Copy row": "Kopier r\u00e6kke",
+"Row properties": "R\u00e6kke egenskaber",
+"Table properties": "Tabel egenskaber",
+"Row group": "R\u00e6kke gruppe",
+"Right": "H\u00f8jre",
+"Insert column after": "Inds\u00e6t kolonne efter",
+"Cols": "Kolonne",
+"Insert row after": "Inds\u00e6t r\u00e6kke efter",
+"Width": "Bredde",
+"Cell properties": "Celle egenskaber",
+"Left": "Venstre",
+"Cut row": "Klip r\u00e6kke",
+"Delete column": "Slet kolonne",
+"Center": "Centrering",
+"Merge cells": "Flet celler",
+"Insert template": "Inds\u00e6t skabelon",
+"Templates": "Skabeloner",
+"Background color": "Baggrunds farve",
+"Text color": "Tekst farve",
+"Show blocks": "Vis klokke",
+"Show invisible characters": "Vis usynlige tegn",
+"Words: {0}": "Ord: {0}",
+"Insert": "Inds\u00e6t",
+"File": "Fil",
+"Edit": "\u00c6ndre",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text omr\u00e5de. Tryk ALT-F9 for menu. Tryk ALT-F10 for toolbar. Tryk ALT-0 for hj\u00e6lp",
+"Tools": "V\u00e6rkt\u00f8j",
+"View": "Vis",
+"Table": "Tabel",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/de.js b/framework/Web/Javascripts/source/tinymce-405/langs/de.js
new file mode 100755
index 00000000..5f2dc750
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/de.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('de',{
+"Cut": "Ausschneiden",
+"Header 2": "\u00dcberschrift 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Ihr Browser unterst\u00fctzt leider keinen direkten Zugriff auf die Zwischenablage. Bitte benutzen Sie die Strg + X \/ C \/ V Tastenkombinationen.",
+"Div": "Textblock",
+"Paste": "Einf\u00fcgen",
+"Close": "Schlie\u00dfen",
+"Pre": "Vorformatierter Text",
+"Align right": "Rechts ausrichten ",
+"New document": "Neues Dokument",
+"Blockquote": "Zitat",
+"Numbered list": "Alphabetische Sortierung",
+"Increase indent": "Einr\u00fcckung vergr\u00f6\u00dfern",
+"Formats": "Formate",
+"Headers": "\u00dcberschriften",
+"Select all": "Alles ausw\u00e4hlen",
+"Header 3": "\u00dcberschrift 3",
+"Blocks": "Absatzformate",
+"Undo": "R\u00fcckg\u00e4ngig",
+"Strikethrough": "Durchgestrichen",
+"Bullet list": "Aufz\u00e4hlungszeichen",
+"Header 1": "\u00dcberschrift 1",
+"Superscript": "Hochgestellt",
+"Clear formatting": "Formatierung entfernen",
+"Subscript": "Tiefgestellt",
+"Header 6": "\u00dcberschrift 6",
+"Redo": "Wiederholen",
+"Paragraph": "Absatz",
+"Ok": "Ok",
+"Bold": "Fett",
+"Code": "Quelltext",
+"Italic": "Kursiv",
+"Align center": "Zentriert ausrichten",
+"Header 5": "\u00dcberschrift 5",
+"Decrease indent": "Einzug verringern",
+"Header 4": "\u00dcberschrift 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Einf\u00fcgungen erfolgen bis zum Abschalten dieses Modus als unformatierter Text.",
+"Underline": "Unterstrichen",
+"Cancel": "Abbrechen",
+"Justify": "Blockausrichtung",
+"Inline": "Zeichenformate",
+"Copy": "Kopieren",
+"Align left": "Ausrichtung nach links",
+"Visual aids": "Visuelle Hilfen",
+"Lower Greek": "Lower Greek",
+"Square": "Quadrat",
+"Default": "Standard",
+"Lower Alpha": "Lower Alpha",
+"Circle": "Kreis",
+"Disc": "Disc",
+"Upper Alpha": "Upper Alpha",
+"Upper Roman": "Upper Roman",
+"Lower Roman": "Lower Roman",
+"Name": "Name",
+"Anchor": "Textmarke",
+"You have unsaved changes are you sure you want to navigate away?": "Die \u00c4nderungen wurden noch nicht gespeichert, sind Sie sicher, dass Sie diese Seite verlassen wollen?",
+"Restore last draft": "Zur\u00fcckholen den letzten Entwurf",
+"Special character": "Sonderzeichen",
+"Source code": "Quelltext",
+"Right to left": "Von rechts nach links",
+"Left to right": "Rechts nach Links",
+"Emoticons": "Emoticons",
+"Robots": "Robots",
+"Document properties": "Dokumenteigenschaften",
+"Title": "Titel",
+"Keywords": "Sch\u00fcsselw\u00f6rter",
+"Encoding": "Enkodieren",
+"Description": "Beschreibung",
+"Author": "Verfasser",
+"Fullscreen": "Vollbild",
+"Horizontal line": "Horizontale Linie",
+"Horizontal space": "Horizontaler Abstand",
+"Insert\/edit image": "Bild einf\u00fcgen\/bearbeiten",
+"General": "Allgemein",
+"Advanced": "Erweitert",
+"Source": "Quelle",
+"Border": "Grenze",
+"Constrain proportions": "Seitenverh\u00e4ltnis beibehalten",
+"Vertical space": "Vertikaler Abstand",
+"Image description": "Bildbeschreibung",
+"Style": "Stil",
+"Dimensions": "Abmessungen",
+"Insert image": "Bild einf\u00fcgen",
+"Insert date\/time": "Datum\/Uhrzeit einf\u00fcgen ",
+"Remove link": "Link entfernen",
+"Url": "URL",
+"Text to display": "Anzuzeigender Text",
+"Anchors": "Textmarken",
+"Insert link": "Link einf\u00fcgen",
+"New window": "Neues Fenster",
+"None": "Nichts",
+"Target": "Ziel",
+"Insert\/edit link": "Link einf\u00fcgen\/bearbeiten",
+"Insert\/edit video": "Video einf\u00fcgen\/bearbeiten",
+"Poster": "Poster",
+"Alternative source": "Alternative Quelle",
+"Paste your embed code below:": "F\u00fcgen Sie Ihren Einbettungscode hier ein:",
+"Insert video": "Video einf\u00fcgen",
+"Embed": "Einbetten",
+"Nonbreaking space": "Gesch\u00fctztes Leerzeichen",
+"Page break": "Seitenumbruch",
+"Paste as text": "Als Text einf\u00fcgen",
+"Preview": "Vorschau",
+"Print": "Drucken",
+"Save": "Speichern",
+"Could not find the specified string.": "Die Zeichenfolge wurde nicht gefunden.",
+"Replace": "Ersetzen",
+"Next": "N\u00e4chstes",
+"Whole words": "Ganze W\u00f6rter",
+"Find and replace": "Finden und ersetzen",
+"Replace with": "Ersetzen mit",
+"Find": "Finden",
+"Replace all": "Alles ersetzen",
+"Match case": "Gro\u00df-\/Kleinschreibung beachten",
+"Prev": "Vor",
+"Spellcheck": "Rechtschreibpr\u00fcfung",
+"Finish": "Ende",
+"Ignore all": "Alles Ignorieren",
+"Ignore": "Ignorieren",
+"Insert row before": "Zeile einf\u00fcgen bevor ",
+"Rows": "Zeilen",
+"Height": "H\u00f6he",
+"Paste row after": "Zelle danach einf\u00fcgen",
+"Alignment": "Ausrichtung ",
+"Column group": "Spalten gruppen",
+"Row": "Zeile",
+"Insert column before": "Spalte einf\u00fcgen bevor ",
+"Split cell": "Zellen splitten",
+"Cell padding": "Zellauff\u00fcllung ",
+"Cell spacing": "Zellenabstand",
+"Row type": "Zellentypen",
+"Insert table": "Tabelle einf\u00fcgen",
+"Body": "K\u00f6rper",
+"Caption": "Titel",
+"Footer": "Fu\u00dfzeile",
+"Delete row": "Zelle l\u00f6schen",
+"Paste row before": "Zelle bevor einf\u00fcgen",
+"Scope": "Rahmen",
+"Delete table": "Tabelle l\u00f6schen",
+"Header cell": "Kopfzelle ",
+"Column": "Spalte",
+"Cell": "Zelle",
+"Header": "Kopfzeile",
+"Cell type": "Zellentyp",
+"Copy row": "Zelle Kopieren",
+"Row properties": "Zelle Proportionen",
+"Table properties": "Tabelleneigenschaften",
+"Row group": "Zellen gruppen",
+"Right": "Rechts",
+"Insert column after": "Spalte danach einf\u00fcgen",
+"Cols": "Cols",
+"Insert row after": "Zelle danach einf\u00fcgen",
+"Width": "Breite",
+"Cell properties": "Zellenproportionen",
+"Left": "Links",
+"Cut row": "Zelle schneiden",
+"Delete column": "Spalte l\u00f6schen",
+"Center": "Zentrum",
+"Merge cells": "Zellen verbinden",
+"Insert template": "Vorlage einf\u00fcgen ",
+"Templates": "Vorlagen",
+"Background color": "Hintergrundfarbe",
+"Text color": "Textfarbe",
+"Show blocks": " Bl\u00f6cke anzeigen",
+"Show invisible characters": "Unsichtbare Zeichen anzeigen",
+"Words: {0}": "W\u00f6rter: {0}",
+"Insert": "Einf\u00fcgen",
+"File": "Datei",
+"Edit": "Bearbeiten",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich-Text- Area. Dr\u00fccken Sie ALT-F9 f\u00fcr das Men\u00fc. Dr\u00fccken Sie ALT-F10 f\u00fcr Symbolleiste. Dr\u00fccken Sie ALT-0 f\u00fcr Hilfe",
+"Tools": "Werkzeuge",
+"View": "Ansicht",
+"Table": "Tabelle",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/de_AT.js b/framework/Web/Javascripts/source/tinymce-405/langs/de_AT.js
new file mode 100755
index 00000000..d41ab6b3
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/de_AT.js
@@ -0,0 +1,156 @@
+tinymce.addI18n('de_AT',{
+"Cut": "Ausschneiden",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Ihr Browser unterst\u00fctzt keinen direkten Zugriff auf die Zwischenablage. Bitte nutzen Sie die Tastaturk\u00fcrzel Strg+X\/C\/V stattdessen.",
+"Paste": "Einf\u00fcgen",
+"Close": "Schlie\u00dfen",
+"Align right": "Rechtsb\u00fcndig",
+"New document": "Neues Dokument",
+"Numbered list": "Sortierte Liste",
+"Increase indent": "Einr\u00fccken",
+"Formats": "Formate",
+"Select all": "Alles ausw\u00e4hlen",
+"Undo": "Wiederholen",
+"Strikethrough": "Durchgestrichen",
+"Bullet list": "Unsortierte Liste",
+"Superscript": "Hochgestellt",
+"Clear formatting": "Formatierungen zur\u00fccksetzen",
+"Subscript": "Tiefgestellt",
+"Redo": "R\u00fcckg\u00e4ngig",
+"Ok": "Ok",
+"Bold": "Fett",
+"Italic": "Kursiv",
+"Align center": "Zentriert",
+"Decrease indent": "Ausr\u00fccken",
+"Underline": "Unterstrichen",
+"Cancel": "Abbrechen",
+"Justify": "Blocksatz",
+"Copy": "Kopieren",
+"Align left": "Linksb\u00fcndig",
+"Visual aids": "Hilfslinien und unsichtbare Elemente einblenden",
+"Lower Greek": "Griechische Kleinbuchstaben",
+"Square": "Quadrat",
+"Default": "Standard",
+"Lower Alpha": "Kleinbuchstaben",
+"Circle": "Kreis",
+"Disc": "Scheibe",
+"Upper Alpha": "Griechische Gro\u00dfbuchstaben",
+"Upper Roman": "R\u00f6mische Gro\u00dfbuchstaben",
+"Lower Roman": "R\u00f6mische Kleinbuchstaben",
+"Name": "Name",
+"Anchor": "Anker",
+"You have unsaved changes are you sure you want to navigate away?": "Sie haben ungespeicherte \u00c4nderungen. Sind Sie sicher, dass Sie die Seite verlassen wollen?",
+"Restore last draft": "Letzten Entwurf speichern.",
+"Special character": "Sonderzeichen",
+"Source code": "Quelltext",
+"Right to left": "Rechts nach links",
+"Left to right": "Links nach rechts",
+"Emoticons": "Emoticons",
+"Robots": "Suchmaschinen",
+"Document properties": "Dokumenteigenschaften",
+"Title": "Titel",
+"Keywords": "Schl\u00fcsselw\u00f6rter",
+"Encoding": "Encoding",
+"Description": "Beschreibung",
+"Author": "Author",
+"Fullscreen": "Vollbild",
+"Horizontal line": "Horizontale Trennlinie",
+"Horizontal space": "Horizontaler Abstand",
+"Insert\/edit image": "Bild einf\u00fcgen\/bearbeiten",
+"General": "Allgemein",
+"Advanced": "Erweitert",
+"Source": "Adresse",
+"Border": "Rahmen",
+"Constrain proportions": "Seitenverh\u00e4ltnis beibehalten",
+"Vertical space": "Vertikaler Abstand",
+"Image description": "Bildbeschreibung",
+"Style": "Format",
+"Dimensions": "Ausma\u00dfe",
+"Insert date\/time": "Zeit\/Datum einf\u00fcgen",
+"Url": "Url",
+"Text to display": "Angezeigter Text",
+"Insert link": "Link einf\u00fcgen",
+"New window": "Neues Fenster",
+"None": "Keine",
+"Target": "Ziel",
+"Insert\/edit link": "Link einf\u00fcgen\/bearbeiten",
+"Insert\/edit video": "Video einf\u00fcgen\/bearbeiten",
+"Poster": "Poster",
+"Alternative source": "Alternative Quelle",
+"Paste your embed code below:": "F\u00fcgen unten Sie Ihren Quellcode zum einbetten ein",
+"Insert video": "Video einf\u00fcgen",
+"Embed": "Einbetten",
+"Nonbreaking space": "gesch\u00fctztes Leerzeichen",
+"Page break": "Seitenumbruch",
+"Preview": "Vorschau",
+"Print": "Drucken",
+"Save": "Speichern",
+"Could not find the specified string.": "Keine \u00dcbereinstimmung gefunden",
+"Replace": "Ersetzen",
+"Next": "N\u00e4chstes",
+"Whole words": "Vollst\u00e4ndige W\u00f6rter",
+"Find and replace": "Suchen und ersetzen",
+"Replace with": "Ersetzen mit",
+"Find": "Suchen",
+"Replace all": "Alle ersetzen",
+"Match case": "Gro\u00df-\/Kleinschreibung beachten",
+"Prev": "Vorheriges",
+"Spellcheck": "Rechtschreibung \u00fcberpr\u00fcfen",
+"Finish": "Fertig",
+"Ignore all": "Alle ignorieren",
+"Ignore": "Ignorieren",
+"Insert row before": "Neue Zeile oberhalb einf\u00fcgen",
+"Rows": "Zeilen",
+"Height": "H\u00f6he",
+"Paste row after": "Zeile unterhalb einf\u00fcgen",
+"Alignment": "Ausrichtung",
+"Column group": "Spaltengruppe",
+"Row": "Zeile",
+"Insert column before": "Neue Spalte links einf\u00fcgen",
+"Split cell": "Verbundene Zellen trennen",
+"Cell padding": "Abstand innerhalb der Zellen",
+"Cell spacing": "Zellenabstand",
+"Row type": "Zeilentyp",
+"Insert table": "Tabelle einf\u00fcgen",
+"Body": "Tabellenk\u00f6rper",
+"Caption": "Beschriftung der Tabelle",
+"Footer": "Tabellenfu\u00df",
+"Delete row": "Zeile l\u00f6schen",
+"Paste row before": "Zeile oberhalb einf\u00fcgen",
+"Scope": "Geltungsbereich",
+"Delete table": "Tabelle l\u00f6schen",
+"Header cell": "\u00dcberschrift",
+"Column": "Spalte",
+"Cell": "Zelle",
+"Header": "\u00dcberschrift",
+"Cell type": "Zellentyp",
+"Copy row": "Zeile kopieren",
+"Row properties": "Zeileneigenschaften",
+"Table properties": "Tabelleneigenschaften",
+"Row group": "Zeilengruppe",
+"Right": "Rechts",
+"Insert column after": "Neue Spalte rechts einf\u00fcgen",
+"Cols": "Spalten",
+"Insert row after": "Neue Zeile unterhalb einf\u00fcgen",
+"Width": "Breite",
+"Cell properties": "Zelleneigenschaften",
+"Left": "Links",
+"Cut row": "Zeile ausschneiden",
+"Delete column": "Spalte l\u00f6schen",
+"Center": "Zentriert",
+"Merge cells": "Zellen vereinen",
+"Insert template": "Vorlage einf\u00fcgen",
+"Templates": "Vorlagen",
+"Background color": "Hintergrundfarbe",
+"Text color": "Textfarbe",
+"Show blocks": "Blockelemente einblenden",
+"Show invisible characters": "Unsichtbare Zeichen einblenden",
+"Words: {0}": "W\u00f6rter: {0}",
+"Insert": "Einf\u00fcgen",
+"File": "Datei",
+"Edit": "Bearbeiten",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Dr\u00fccken Sie ALT-F9 f\u00fcr das Men\u00fc. Dr\u00fccken Sie ALT-F10 f\u00fcr die Werkzeugleiste. Dr\u00fccken Sie ALT-0 f\u00fcr Hilfe",
+"Tools": "Extras",
+"View": "Ansicht",
+"Table": "Tabelle",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/el.js b/framework/Web/Javascripts/source/tinymce-405/langs/el.js
new file mode 100755
index 00000000..9ccd9ec3
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/el.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('el',{
+"Cut": "\u0391\u03c0\u03bf\u03ba\u03bf\u03c0\u03ae",
+"Header 2": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u039f \u03c0\u03b5\u03c1\u03b9\u03b7\u03b3\u03b7\u03c4\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03b4\u03b5\u03bd \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9 \u03ac\u03bc\u03b5\u03c3\u03b7 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03bf \u03c0\u03c1\u03cc\u03c7\u03b5\u03b9\u03c1\u03bf. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03b9\u03c2 \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 Ctrl+X\/C\/V.",
+"Div": "Div",
+"Paste": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7",
+"Close": "\u039a\u03bb\u03b5\u03b9\u03c3\u03b9\u03bc\u03bf",
+"Pre": "Pre",
+"Align right": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7 \u03b4\u03b5\u03be\u03b9\u03ac",
+"New document": "\u039d\u03ad\u03bf \u03ad\u03b3\u03b3\u03c1\u03b1\u03c6\u03bf",
+"Blockquote": "\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u03c0\u03b1\u03c1\u03ac\u03b8\u03b5\u03c3\u03b7\u03c2",
+"Numbered list": "\u0391\u03c1\u03b9\u03b8\u03bc\u03b7\u03bc\u03ad\u03bd\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1",
+"Increase indent": "\u0391\u03cd\u03be\u03b7\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2",
+"Formats": "\u039c\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
+"Headers": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b5\u03c2",
+"Select all": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03b7 \u03bf\u03bb\u03c9\u03bd",
+"Header 3": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 3",
+"Blocks": "\u03a4\u03bc\u03ae\u03bc\u03b1\u03c4\u03b1",
+"Undo": "\u0391\u03bd\u03b1\u03af\u03c1\u03b5\u03c3\u03b7",
+"Strikethrough": "\u0394\u03b9\u03b1\u03ba\u03c1\u03b9\u03c4\u03ae \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae",
+"Bullet list": "\u039b\u03af\u03c3\u03c4\u03b1 \u03bc\u03b5 \u03ba\u03bf\u03c5\u03ba\u03ba\u03af\u03b4\u03b5\u03c2",
+"Header 1": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 1",
+"Superscript": "\u0395\u03ba\u03b8\u03ad\u03c4\u03b7\u03c2",
+"Clear formatting": "\u0391\u03c0\u03b1\u03bb\u03bf\u03b9\u03c6\u03ae \u03bc\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2",
+"Subscript": "\u0394\u03b5\u03af\u03ba\u03c4\u03b7\u03c2",
+"Header 6": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 6",
+"Redo": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac",
+"Paragraph": "\u03a0\u03b1\u03c1\u03ac\u03b3\u03c1\u03b1\u03c6\u03bf\u03c2",
+"Ok": "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9",
+"Bold": "\u0388\u03bd\u03c4\u03bf\u03bd\u03b7",
+"Code": "\u039a\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2",
+"Italic": "\u03a0\u03bb\u03ac\u03b3\u03b9\u03b1",
+"Align center": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7 \u03c3\u03c4\u03bf \u03ba\u03ad\u03bd\u03c4\u03c1\u03bf",
+"Header 5": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 5",
+"Decrease indent": "\u039c\u03b5\u03af\u03c9\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2",
+"Header 4": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0397 \u03b5\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03ce\u03c1\u03b1 \u03c3\u03b5 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c0\u03bb\u03bf\u03cd \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5. \u03a4\u03b1 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03b1 \u03c3\u03b5 \u03bc\u03af\u03b1 \u03b5\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b8\u03b1 \u03b5\u03c0\u03b9\u03ba\u03bf\u03bb\u03bb\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03c9\u03c2 \u03b1\u03c0\u03bb\u03cc \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03cc\u03c3\u03bf \u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c5\u03c4\u03ae \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03bd\u03b5\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae.",
+"Underline": "\u03a5\u03c0\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b9\u03c3\u03b7",
+"Cancel": "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7",
+"Justify": "\u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u03c3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7",
+"Inline": "\u0395\u03bd\u03c3\u03c9\u03bc\u03b1\u03c4\u03c9\u03bc\u03ad\u03bd\u03b5\u03c2",
+"Copy": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae",
+"Align left": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7 \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac",
+"Visual aids": "\u0392\u03bf\u03b7\u03b8\u03ae\u03bc\u03b1\u03c4\u03b1 \u03c7\u03b1\u03bc\u03b7\u03bb\u03ae\u03c2 \u03cc\u03c1\u03b1\u03c3\u03b7\u03c2",
+"Lower Greek": "\u039c\u03b9\u03ba\u03c1\u03ac \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
+"Square": "\u03a4\u03b5\u03c4\u03c1\u03ac\u03b3\u03c9\u03bd\u03bf",
+"Default": "\u03a0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf",
+"Lower Alpha": "\u039c\u03b9\u03ba\u03c1\u03ac \u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ac",
+"Circle": "\u039a\u03cd\u03ba\u03bb\u03bf\u03c2",
+"Disc": "\u0394\u03af\u03c3\u03ba\u03bf\u03c2",
+"Upper Alpha": "\u039a\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03b1 \u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ac",
+"Upper Roman": "\u039a\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03b1 \u03a1\u03c9\u03bc\u03b1\u03ca\u03ba\u03ac",
+"Lower Roman": "\u039c\u03b9\u03ba\u03c1\u03ac \u03a1\u03c9\u03bc\u03b1\u03ca\u03ba\u03ac",
+"Name": "\u039f\u03bd\u03bf\u03bc\u03b1",
+"Anchor": "\u0386\u03b3\u03ba\u03c5\u03c1\u03b1 ",
+"You have unsaved changes are you sure you want to navigate away?": "\u0388\u03c7\u03b5\u03c4\u03b5 \u03bc\u03b7 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c6\u03cd\u03b3\u03b5\u03c4\u03b5?",
+"Restore last draft": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03bf\u03c5 \u03c3\u03c7\u03ad\u03b4\u03b9\u03bf\u03c5",
+"Special character": "\u0395\u03b9\u03b4\u03b9\u03ba\u03bf\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b1\u03c2",
+"Source code": "\u03a0\u03b7\u03b3\u03b1\u03af\u03bf\u03c2 \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2",
+"Right to left": "\u0391\u03c0\u03bf \u03c4\u03b1 \u03b4\u03b5\u03be\u03b9\u03b1 \u03c0\u03c1\u03bf\u03c2 \u03c4\u03b1 \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03b1",
+"Left to right": "\u0391\u03c0\u03cc \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac \u03c0\u03c1\u03bf\u03c2 \u03c4\u03b1 \u03b4\u03b5\u03be\u03b9\u03ac ",
+"Emoticons": "\u03a6\u03b1\u03c4\u03c3\u03bf\u03cd\u03bb\u03b5\u03c2",
+"Robots": "Robots",
+"Document properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03bd\u03c4\u03bf\u03ba\u03bf\u03c5\u03bc\u03b5\u03bd\u03c4\u03bf\u03c5",
+"Title": "\u03a4\u03b9\u03c4\u03bb\u03bf\u03c2",
+"Keywords": "\u039b\u03b5\u03be\u03b5\u03b9\u03c2 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03b1",
+"Encoding": "\u039a\u03c9\u03b4\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
+"Description": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae",
+"Author": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03bf\u03c2",
+"Fullscreen": "\u039f\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03b7 \u03bf\u03b8\u03bf\u03bd\u03b7",
+"Horizontal line": "\u039f\u03c1\u03b9\u03b6\u03bf\u03bd\u03c4\u03b9\u03b1 \u03b3\u03c1\u03b1\u03bc\u03bc\u03b7",
+"Horizontal space": "\u039f\u03c1\u03b9\u03b6\u03cc\u03bd\u03c4\u03b9\u03bf \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1",
+"Insert\/edit image": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2",
+"General": "\u0393\u03b5\u03bd\u03b9\u03ba\u03b1",
+"Advanced": "\u0393\u03b9\u03b1 \u03a0\u03c1\u03bf\u03c7\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03bf\u03c5\u03c2",
+"Source": "\u03a0\u03b7\u03b3\u03ae",
+"Border": "\u03a3\u03cd\u03bd\u03bf\u03c1\u03bf",
+"Constrain proportions": "\u03a0\u03b5\u03c1\u03b9\u03bf\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2 \u03b1\u03bd\u03b1\u03bb\u03bf\u03b3\u03b9\u03ce\u03bd",
+"Vertical space": "\u039a\u03ac\u03b8\u03b5\u03c4\u03bf \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1",
+"Image description": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2",
+"Style": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7",
+"Dimensions": "\u039c\u03b5\u03b3\u03b5\u03b8\u03bf\u03b9",
+"Insert image": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2",
+"Insert date\/time": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03b7 \u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03b9\u03b1\u03c2\/\u03c9\u03c1\u03b1\u03c2",
+"Remove link": "\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5",
+"Url": "Url",
+"Text to display": "\u039a\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03b3\u03b9\u03b1 \u03b5\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7",
+"Anchors": "\u0386\u03b3\u03ba\u03c5\u03c1\u03b5\u03c2",
+"Insert link": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03b7 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5",
+"New window": "\u039d\u03ad\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf",
+"None": "\u039a\u03b1\u03bc\u03af\u03b1",
+"Target": "\u03a3\u03c4\u03cc\u03c7\u03bf\u03c2",
+"Insert\/edit link": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5",
+"Insert\/edit video": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03b7\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03b1 \u0392\u03b9\u03bd\u03c4\u03b5\u03bf",
+"Poster": "\u0391\u03c6\u03af\u03c3\u03b1",
+"Alternative source": "\u0395\u03bd\u03b1\u03bb\u03bb\u03b1\u03ba\u03c4\u03b9\u03ba\u03ae \u03c0\u03b7\u03b3\u03ae",
+"Paste your embed code below:": "\u0395\u03b9\u03c3\u03b1\u03b3\u03b5\u03c4\u03b5 \u03b5\u03b4\u03c9 \u03c4\u03bf\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf \u03c3\u03b1\u03c2:",
+"Insert video": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03b7 \u0392\u03b9\u03bd\u03c4\u03b5\u03bf",
+"Embed": "\u0395\u03bd\u03c3\u03c9\u03bc\u03b1\u03c4\u03c9\u03bc\u03b5\u03bd\u03b1",
+"Nonbreaking space": "\u039a\u03b5\u03bd\u03cc \u03c7\u03c9\u03c1\u03af\u03c2 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae",
+"Page break": "\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2",
+"Paste as text": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03c9\u03c2 \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf",
+"Preview": "\u03a0\u03c1\u03bf\u03b5\u03c0\u03b9\u03c3\u03ba\u03bf\u03c0\u03b7\u03c3\u03b7",
+"Print": "\u0395\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7",
+"Save": "\u0391\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c3\u03b7",
+"Could not find the specified string.": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03cd\u03c1\u03b5\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5 string.",
+"Replace": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03b1\u03c3\u03b7",
+"Next": "\u0395\u03c0\u03bf\u03bc\u03b5\u03bd\u03bf",
+"Whole words": "\u039f\u03bb\u03b5\u03c2 \u03bf\u03b9 \u03bb\u03b5\u03be\u03b5\u03b9\u03c2",
+"Find and replace": "\u0395\u03c5\u03c1\u03b5\u03c3\u03b7 \u03ba\u03b1\u03b9 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03b1\u03c3\u03b7",
+"Replace with": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03b1\u03c3\u03b7 \u03bc\u03b5",
+"Find": "\u0395\u03c5\u03c1\u03b5\u03c3\u03b7",
+"Replace all": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03b1\u03c3\u03b7 \u03bf\u03bb\u03c9\u03bd",
+"Match case": "\u03a0\u03b5\u03c1\u03af\u03c0\u03c4\u03c9\u03c3\u03b7 ",
+"Prev": "\u03a0\u03c1\u03bf",
+"Spellcheck": "\u039f\u03c1\u03b8\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03cc\u03c2 \u03ad\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 ",
+"Finish": "\u03a4\u03b5\u03bb\u03bf\u03c2",
+"Ignore all": "\u0391\u03b3\u03bd\u03bf\u03b7\u03c3\u03b7 \u03bf\u03bb\u03c9\u03bd",
+"Ignore": "\u0391\u03b3\u03bd\u03bf\u03b7\u03c3\u03b7",
+"Insert row before": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03c0\u03c1\u03b9\u03bd",
+"Rows": "\u0393\u03c1\u03b1\u03bc\u03bc\u03ad\u03c2",
+"Height": "\u038e\u03c8\u03bf\u03c2",
+"Paste row after": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03bc\u03b5\u03c4\u03ac",
+"Alignment": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7",
+"Column group": "\u039f\u03bc\u03ac\u03b4\u03b1 \u03c3\u03c4\u03b7\u03bb\u03ce\u03bd",
+"Row": "\u0393\u03c1\u03b1\u03bc\u03bc\u03ae",
+"Insert column before": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03c4\u03ae\u03bb\u03b7\u03c2 \u03c0\u03c1\u03b9\u03bd",
+"Split cell": "\u0394\u03b9\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03bf\u03cd",
+"Cell padding": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1 \u03ba\u03b5\u03bb\u03b9\u03ce\u03bd",
+"Cell spacing": "\u0391\u03c0\u03cc\u03c3\u03c4\u03b1\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03ce\u03bd",
+"Row type": "\u03a4\u03cd\u03c0\u03bf\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
+"Insert table": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c0\u03af\u03bd\u03b1\u03ba\u03b1",
+"Body": "\u03a3\u03ce\u03bc\u03b1",
+"Caption": "\u0395\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1",
+"Footer": "\u03a5\u03c0\u03bf\u03c3\u03ad\u03bb\u03b9\u03b4\u03bf",
+"Delete row": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
+"Paste row before": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03c0\u03c1\u03b9\u03bd",
+"Scope": "\u0388\u03ba\u03c4\u03b1\u03c3\u03b7",
+"Delete table": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c0\u03af\u03bd\u03b1\u03ba\u03b1",
+"Header cell": "\u039a\u03b5\u03bb\u03af-\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1",
+"Column": "\u03a3\u03c4\u03ae\u03bb\u03b7",
+"Cell": "\u039a\u03b5\u03bb\u03af",
+"Header": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1",
+"Cell type": "\u03a4\u03cd\u03c0\u03bf\u03c2 \u03ba\u03b5\u03bb\u03b9\u03bf\u03cd",
+"Copy row": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
+"Row properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
+"Table properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1",
+"Row group": "\u039f\u03bc\u03ac\u03b4\u03b1 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ce\u03bd",
+"Right": "\u0394\u03b5\u03be\u03b9\u03ac",
+"Insert column after": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03c4\u03ae\u03bb\u03b7\u03c2 \u03bc\u03b5\u03c4\u03ac",
+"Cols": "\u03a3\u03c4\u03ae\u03bb\u03b5\u03c2",
+"Insert row after": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03bc\u03b5\u03c4\u03ac",
+"Width": "\u03a0\u03bb\u03ac\u03c4\u03bf\u03c2",
+"Cell properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03ba\u03b5\u03bb\u03b9\u03bf\u03cd",
+"Left": "\u0391\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac",
+"Cut row": "\u0391\u03c0\u03bf\u03ba\u03bf\u03c0\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
+"Delete column": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c3\u03c4\u03ae\u03bb\u03b7\u03c2",
+"Center": "\u039a\u03b5\u03bd\u03c4\u03c1\u03b1\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b7",
+"Merge cells": "\u03a3\u03c5\u03b3\u03c7\u03ce\u03bd\u03b5\u03c5\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03ce\u03bd",
+"Insert template": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c0\u03c1\u03bf\u03c4\u03cd\u03c0\u03bf\u03c5 ",
+"Templates": "\u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03b1",
+"Background color": "\u03a7\u03c1\u03ce\u03bc\u03b1 \u03c6\u03cc\u03bd\u03c4\u03bf\u03c5",
+"Text color": "\u03a7\u03c1\u03ce\u03bc\u03b1 \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 ",
+"Show blocks": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03bc\u03b7\u03bc\u03ac\u03c4\u03c9\u03bd",
+"Show invisible characters": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03b1\u03cc\u03c1\u03b1\u03c4\u03bf\u03bd \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03c9\u03bd",
+"Words: {0}": "\u039b\u03b5\u03be\u03b5\u03b9\u03c2: {0}",
+"Insert": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03b7",
+"File": "\u0391\u03c1\u03c7\u03b5\u03af\u03bf",
+"Edit": "\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03b1",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. \u03a0\u03b1\u03c4\u03b7\u03c3\u03c4\u03b5 ALT-F9 \u03b3\u03b9\u03b1 \u03bc\u03b5\u03bd\u03bf\u03c5. \u03a0\u03b1\u03c4\u03b7\u03c3\u03c4\u03b5 ALT-F10 \u03b3\u03b9\u03b1 toolbar. \u03a0\u03b1\u03c4\u03b7\u03c3\u03c4\u03b5 ALT-0 \u03b3\u03b9\u03b1 \u03b2\u03bf\u03b7\u03b8\u03b5\u03b9\u03b1",
+"Tools": "\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03b9\u03b1",
+"View": "\u0395\u03bc\u03c6\u03b1\u03bd\u03b9\u03c3\u03b7",
+"Table": "\u03a4\u03b1\u03bc\u03c0\u03b5\u03bb\u03b1",
+"Format": "\u03a4\u03c5\u03c0\u03bf\u03c2"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/es.js b/framework/Web/Javascripts/source/tinymce-405/langs/es.js
new file mode 100755
index 00000000..a7696176
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/es.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('es',{
+"Cut": "Cortar",
+"Header 2": "Header 2 ",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Tu navegador no soporta acceso directo al portapapeles. Por favor usa las teclas Crtl+X\/C\/V de tu teclado",
+"Div": "Capa",
+"Paste": "Pegar",
+"Close": "Cerrar",
+"Pre": "Pre",
+"Align right": "Alinear a la derecha",
+"New document": "Nuevo documento",
+"Blockquote": "Bloque de cita",
+"Numbered list": "Lista numerada",
+"Increase indent": "Incrementar sangr\u00eda",
+"Formats": "Formatos",
+"Headers": "Headers",
+"Select all": "Seleccionar todo",
+"Header 3": "Header 3",
+"Blocks": "Bloques",
+"Undo": "Deshacer",
+"Strikethrough": "Tachado",
+"Bullet list": "Lista de vi\u00f1etas",
+"Header 1": "Header 1",
+"Superscript": "Super\u00edndice",
+"Clear formatting": "Limpiar formato",
+"Subscript": "Sub\u00edndice",
+"Header 6": "Header 6",
+"Redo": "Rehacer",
+"Paragraph": "P\u00e1rrafo",
+"Ok": "Ok",
+"Bold": "Negrita",
+"Code": "C\u00f3digo",
+"Italic": "It\u00e1lica",
+"Align center": "Alinear al centro",
+"Header 5": "Header 5 ",
+"Decrease indent": "Disminuir sangr\u00eda",
+"Header 4": "Header 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Pegar est\u00e1 ahora en modo de texto plano. El contenido se pegar\u00e1 como texto plano hasta que desactive esta opci\u00f3n.",
+"Underline": "Subrayado",
+"Cancel": "Cancelar",
+"Justify": "Justificar",
+"Inline": "en l\u00ednea",
+"Copy": "Copiar",
+"Align left": "Alinear a la izquierda",
+"Visual aids": "Ayudas visuales",
+"Lower Greek": "Inferior Griega",
+"Square": "Cuadrado",
+"Default": "Por defecto",
+"Lower Alpha": "Inferior Alfa",
+"Circle": "C\u00edrculo",
+"Disc": "Disco",
+"Upper Alpha": "Superior Alfa",
+"Upper Roman": "Superior Romana",
+"Lower Roman": "Inferior Romana",
+"Name": "Nombre",
+"Anchor": "Ancla",
+"You have unsaved changes are you sure you want to navigate away?": "Tiene cambios sin guardar. \u00bfEst\u00e1 seguro de que quiere salir fuera?",
+"Restore last draft": "Restaurar el \u00faltimo borrador",
+"Special character": "Car\u00e1cter especial",
+"Source code": "C\u00f3digo fuente",
+"Right to left": "De derecha a izquierda",
+"Left to right": "De izquierda a derecha",
+"Emoticons": "Emoticonos",
+"Robots": "Robots",
+"Document properties": "Propiedades del documento",
+"Title": "T\u00edtulo",
+"Keywords": "Palabras clave",
+"Encoding": "Codificaci\u00f3n",
+"Description": "Descripci\u00f3n",
+"Author": "Autor",
+"Fullscreen": "Pantalla completa",
+"Horizontal line": "L\u00ednea horizontal",
+"Horizontal space": "Espacio horizontal",
+"Insert\/edit image": "Insertar\/editar imagen",
+"General": "General",
+"Advanced": "Avanzado",
+"Source": "Origen",
+"Border": "Borde",
+"Constrain proportions": "Restringir proporciones",
+"Vertical space": "Espacio vertical",
+"Image description": "Descripci\u00f3n de la imagen",
+"Style": "Estilo",
+"Dimensions": "Dimensiones",
+"Insert image": "Insertar imagen",
+"Insert date\/time": "Insertar fecha\/hora",
+"Remove link": "Quitar enlace",
+"Url": "Url",
+"Text to display": "Texto para mostrar",
+"Anchors": "Anclas",
+"Insert link": "Insertar enlace",
+"New window": "Nueva ventana",
+"None": "Ninguno",
+"Target": "Destino",
+"Insert\/edit link": "Insertar\/editar enlace",
+"Insert\/edit video": "Insertar\/editar video",
+"Poster": "Miniatura",
+"Alternative source": "Fuente alternativa",
+"Paste your embed code below:": "Pega tu c\u00f3digo embebido debajo",
+"Insert video": "Insertar video",
+"Embed": "Incrustado",
+"Nonbreaking space": "Espacio fijo",
+"Page break": "Salto de p\u00e1gina",
+"Paste as text": "Pegar como texto",
+"Preview": "Previsualizar",
+"Print": "Imprimir",
+"Save": "Guardar",
+"Could not find the specified string.": "No se encuentra la cadena de texto especificada",
+"Replace": "Reemplazar",
+"Next": "Siguiente",
+"Whole words": "Palabras completas",
+"Find and replace": "Buscar y reemplazar",
+"Replace with": "Reemplazar con",
+"Find": "Buscar",
+"Replace all": "Reemplazar todo",
+"Match case": "Coincidencia exacta",
+"Prev": "Anterior",
+"Spellcheck": "Corrector ortogr\u00e1fico",
+"Finish": "Finalizar",
+"Ignore all": "Ignorar todos",
+"Ignore": "Ignorar",
+"Insert row before": "Insertar fila antes",
+"Rows": "Filas",
+"Height": "Alto",
+"Paste row after": "Pegar la fila despu\u00e9s",
+"Alignment": "Alineaci\u00f3n",
+"Column group": "Grupo de columnas",
+"Row": "Fila",
+"Insert column before": "Insertar columna antes",
+"Split cell": "Dividir celdas",
+"Cell padding": "Relleno de celda",
+"Cell spacing": "Espacio entre celdas",
+"Row type": "Tipo de fila",
+"Insert table": "Insertar tabla",
+"Body": "Cuerpo",
+"Caption": "Subt\u00edtulo",
+"Footer": "Pie de p\u00e1gina",
+"Delete row": "Eliminar fila",
+"Paste row before": "Pegar la fila antes",
+"Scope": "\u00c1mbito",
+"Delete table": "Eliminar tabla",
+"Header cell": "Celda de la cebecera",
+"Column": "Columna",
+"Cell": "Celda",
+"Header": "Cabecera",
+"Cell type": "Tipo de celda",
+"Copy row": "Copiar fila",
+"Row properties": "Propiedades de la fila",
+"Table properties": "Propiedades de la tabla",
+"Row group": "Grupo de filas",
+"Right": "Derecha",
+"Insert column after": "Insertar columna despu\u00e9s",
+"Cols": "Columnas",
+"Insert row after": "Insertar fila despu\u00e9s ",
+"Width": "Ancho",
+"Cell properties": "Propiedades de la celda",
+"Left": "Izquierda",
+"Cut row": "Cortar fila",
+"Delete column": "Eliminar columna",
+"Center": "Centrado",
+"Merge cells": "Combinar celdas",
+"Insert template": "Insertar plantilla",
+"Templates": "Plantillas",
+"Background color": "Color de fondo",
+"Text color": "Color del texto",
+"Show blocks": "Mostrar bloques",
+"Show invisible characters": "Mostrar caracteres invisibles",
+"Words: {0}": "Palabras: {0}",
+"Insert": "Insertar",
+"File": "Archivo",
+"Edit": "Editar",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto enriquecido. Pulse ALT-F9 para el menu. Pulse ALT-F10 para la barra de herramientas. Pulse ALT-0 para ayuda",
+"Tools": "Herramientas",
+"View": "Ver",
+"Table": "Tabla",
+"Format": "Formato"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/et.js b/framework/Web/Javascripts/source/tinymce-405/langs/et.js
new file mode 100755
index 00000000..d7f9f07c
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/et.js
@@ -0,0 +1,173 @@
+tinymce.addI18n('et',{
+"Cut": "L\u00f5ika",
+"Header 2": "Pealkiri 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Sinu veebilehitseja ei toeta otsest ligip\u00e4\u00e4su l\u00f5ikelauale. Palun kasuta selle asemel klaviatuuri kiirk\u00e4sklusi Ctrl+X\/C\/V.",
+"Div": "Sektsioon",
+"Paste": "Kleebi",
+"Close": "Sulge",
+"Pre": "Eelvormindatud",
+"Align right": "Joonda paremale",
+"New document": "Uus dokument",
+"Blockquote": "Plokktsitaat",
+"Numbered list": "J\u00e4rjestatud loend",
+"Increase indent": "Suurenda taanet",
+"Formats": "Vormingud",
+"Headers": "P\u00e4ised",
+"Select all": "Vali k\u00f5ik",
+"Header 3": "Pealkiri 3",
+"Blocks": "Plokid",
+"Undo": "V\u00f5ta tagasi",
+"Strikethrough": "L\u00e4bikriipsutatud",
+"Bullet list": "J\u00e4rjestamata loend",
+"Header 1": "Pealkiri 1",
+"Superscript": "\u00dclaindeks",
+"Clear formatting": "Puhasta vorming",
+"Subscript": "Alaindeks",
+"Header 6": "Pealkiri 6",
+"Redo": "Tee uuesti",
+"Paragraph": "L\u00f5ik",
+"Ok": "Ok",
+"Bold": "Rasvane",
+"Code": "Kood",
+"Italic": "Kaldkiri",
+"Align center": "Joonda keskele",
+"Header 5": "Pealkiri 5",
+"Decrease indent": "V\u00e4henda taanet",
+"Header 4": "Pealkiri 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Kleepimine on n\u00fc\u00fcd lihtteksti re\u017eiimis. Sisu kleebitakse lihttekstina seni, kuni Sa selle valiku v\u00e4lja l\u00fclitad.",
+"Underline": "Allakriipsutatud",
+"Cancel": "Katkesta",
+"Justify": "Joonda r\u00f6\u00f6pselt",
+"Inline": "Reasisene",
+"Copy": "Kopeeri",
+"Align left": "Joonda vasakule",
+"Visual aids": "N\u00e4itevahendid",
+"Lower Greek": "Kreeka v\u00e4iket\u00e4hed (\u03b1, \u03b2, \u03b3)",
+"Square": "Ruut",
+"Default": "Vaikimisi",
+"Lower Alpha": "V\u00e4iket\u00e4hed (a, b, c)",
+"Circle": "Ring",
+"Disc": "Ketas",
+"Upper Alpha": "Suurt\u00e4hed (A, B, C)",
+"Upper Roman": "Rooma suurt\u00e4hed (I, II, III)",
+"Lower Roman": "Rooma v\u00e4iket\u00e4hed (i, ii, iii)",
+"Name": "Nimi",
+"Anchor": "Ankur",
+"You have unsaved changes are you sure you want to navigate away?": "Sul on salvestamata muudatusi. Oled Sa kindel, et soovid mujale navigeeruda?",
+"Restore last draft": "Taasta viimane mustand",
+"Special character": "Erim\u00e4rk",
+"Source code": "L\u00e4htekood",
+"Right to left": "Paremalt vasakule",
+"Left to right": "Vasakult paremale",
+"Emoticons": "Emotikonid",
+"Robots": "Robotid",
+"Document properties": "Dokumendi omadused",
+"Title": "Pealkiri",
+"Keywords": "M\u00e4rks\u00f5nad",
+"Encoding": "M\u00e4rgistik",
+"Description": "Kirjeldus",
+"Author": "Autor",
+"Fullscreen": "T\u00e4isekraan",
+"Horizontal line": "Horisontaaljoon",
+"Horizontal space": "Reavahe",
+"Insert\/edit image": "Lisa\/muuda pilt",
+"General": "\u00dcldine",
+"Advanced": "T\u00e4iendavad seaded",
+"Source": "Allikas",
+"Border": "\u00c4\u00e4ris",
+"Constrain proportions": "S\u00e4ilita kuvasuhe",
+"Vertical space": "P\u00fcstine vahe",
+"Image description": "Pildi kirjeldus",
+"Style": "Stiil",
+"Dimensions": "M\u00f5\u00f5tmed",
+"Insert image": "Lisa pilt",
+"Insert date\/time": "Lisa kuup\u00e4ev\/kellaaeg",
+"Remove link": "Eemalda link",
+"Url": "Viide (url)",
+"Text to display": "Kuvatav tekst",
+"Insert link": "Lisa link",
+"New window": "Uus aken",
+"None": "Puudub",
+"Target": "Sihtm\u00e4rk",
+"Insert\/edit link": "Lisa\/muuda link",
+"Insert\/edit video": "Lisa\/muuda video",
+"Poster": "Lisaja",
+"Alternative source": "Teine allikas",
+"Paste your embed code below:": "Kleebi oma manustamiskood siia alla:",
+"Insert video": "Lisa video",
+"Embed": "Manusta",
+"Nonbreaking space": "T\u00fchim\u00e4rk (nbsp)",
+"Page break": "Lehevahetus",
+"Preview": "Eelvaade",
+"Print": "Tr\u00fcki",
+"Save": "Salvesta",
+"Could not find the specified string.": "Ei suutnud leida etteantud s\u00f5net.",
+"Replace": "Asenda",
+"Next": "J\u00e4rg",
+"Whole words": "Terviks\u00f5nad",
+"Find and replace": "Otsi ja asenda",
+"Replace with": "Asendus",
+"Find": "Otsi",
+"Replace all": "Asenda k\u00f5ik",
+"Match case": "Erista suur- ja v\u00e4iket\u00e4hti",
+"Prev": "Eelm",
+"Spellcheck": "\u00d5igekirja kontroll",
+"Finish": "L\u00f5peta",
+"Ignore all": "Eira k\u00f5iki",
+"Ignore": "Eira",
+"Insert row before": "Lisa rida enne",
+"Rows": "Read",
+"Height": "K\u00f5rgus",
+"Paste row after": "Kleebi rida j\u00e4rele",
+"Alignment": "Joondus",
+"Column group": "Veergude r\u00fchm",
+"Row": "Rida",
+"Insert column before": "Lisa tulp enne",
+"Split cell": "T\u00fckelda lahter",
+"Cell padding": "Lahtri sisu ja tabeli \u00e4\u00e4rise vahe",
+"Cell spacing": "Lahtrivahe",
+"Row type": "Rea t\u00fc\u00fcp",
+"Insert table": "Lisa tabel",
+"Body": "P\u00f5hiosa",
+"Caption": "Alapealkiri",
+"Footer": "Jalus",
+"Delete row": "Kustuta rida",
+"Paste row before": "Kleebi rida enne",
+"Scope": "Ulatus",
+"Delete table": "Kustuta tabel",
+"Header cell": "P\u00e4islahter",
+"Column": "Tulp",
+"Cell": "Lahter",
+"Header": "P\u00e4is",
+"Cell type": "Lahtri t\u00fc\u00fcp",
+"Copy row": "Kopeeri rida",
+"Row properties": "Rea omadused",
+"Table properties": "Tabeli omadused",
+"Row group": "Ridade r\u00fchm",
+"Right": "Paremal",
+"Insert column after": "Lisa tulp j\u00e4rele",
+"Cols": "Veerud",
+"Insert row after": "Lisa rida j\u00e4rele",
+"Width": "Laius",
+"Cell properties": "Lahtri omadused",
+"Left": "Vasakul",
+"Cut row": "L\u00f5ika rida",
+"Delete column": "Kustuta tulp",
+"Center": "Keskel",
+"Merge cells": "\u00dchenda lahtrid",
+"Insert template": "Lisa mall",
+"Templates": "Mallid",
+"Background color": "Tausta v\u00e4rv",
+"Text color": "Teksti v\u00e4rv",
+"Show blocks": "N\u00e4ita plokke",
+"Show invisible characters": "N\u00e4ita peidetud m\u00e4rke",
+"Words: {0}": "S\u00f5nu: {0}",
+"Insert": "Sisesta",
+"File": "Fail",
+"Edit": "Muuda",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rikastatud teksti ala. Men\u00fc\u00fc jaoks vajuta ALT-F9. T\u00f6\u00f6riistariba jaoks vajuta ALT-F10. Abi saamiseks vajuta ALT-0.",
+"Tools": "T\u00f6\u00f6riistad",
+"View": "Vaade",
+"Table": "Tabel",
+"Format": "Vorming"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/eu.js b/framework/Web/Javascripts/source/tinymce-405/langs/eu.js
new file mode 100755
index 00000000..3985de09
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/eu.js
@@ -0,0 +1,174 @@
+tinymce.addI18n('eu',{
+"Cut": "Ebaki",
+"Header 2": "2 Goiburua",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Zure nabigatzaileak ez du arbela zuzenean erabiltzeko euskarririk. Mesedez erabili CTRL+X\/C\/V teklatuko lasterbideak.",
+"Div": "Div",
+"Paste": "Itsatsi",
+"Close": "Itxi",
+"Pre": "Pre",
+"Align right": "Lerrokatu eskuinean",
+"New document": "Dokumentu berria",
+"Blockquote": "Blockquote",
+"Numbered list": "Zerrenda zenbatua",
+"Increase indent": "Handitu koska",
+"Formats": "Formatuak",
+"Headers": "Goiburuak",
+"Select all": "Hautatu dena",
+"Header 3": "3 Goiburua",
+"Blocks": "Blokeak",
+"Undo": "Desegin",
+"Strikethrough": "Marratua",
+"Bullet list": "Bulet zerrenda",
+"Header 1": "1 Goiburua",
+"Superscript": "Goi-indize",
+"Clear formatting": "Garbitu formatua",
+"Subscript": "Azpiindize",
+"Header 6": "6 Goiburua",
+"Redo": "Berregin",
+"Paragraph": "Parrafoa",
+"Ok": "Ondo",
+"Bold": "Lodia",
+"Code": "Kodea",
+"Italic": "Etzana",
+"Align center": "Lerrokatu horizontalki erdian",
+"Header 5": "5 Goiburua",
+"Decrease indent": "Txikitu koska",
+"Header 4": "4 Goiburua",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Txertatzea testu formatu arruntean dago. Orain edukiak testu arrunt moduan txertatuko dira aukera hau kendu bitartean.",
+"Underline": "Azpimarratua",
+"Cancel": "Ezeztatu",
+"Justify": "Justifikatuta",
+"Inline": "Lerroan",
+"Copy": "Kopiatu",
+"Align left": "Lerrokatu ezkerrean",
+"Visual aids": "Laguntza bisualak",
+"Lower Greek": "Behe grekoa",
+"Square": "Karratua",
+"Default": "Lehenetstia",
+"Lower Alpha": "Behe alfa",
+"Circle": "Zirkulua",
+"Disc": "Diskoa",
+"Upper Alpha": "Goi alfa",
+"Upper Roman": "Goi erromatarra",
+"Lower Roman": "Behe erromatarra",
+"Name": "Izena",
+"Anchor": "Esteka",
+"You have unsaved changes are you sure you want to navigate away?": "Gorde gabeko aldaketak dituzu, zihur zaude hemendik irten nahi duzula?",
+"Restore last draft": "Leheneratu azken zirriborroa",
+"Special character": "Karaktere bereziak",
+"Source code": "Iturburu-kodea",
+"Right to left": "Eskuinetik ezkerrera",
+"Left to right": "Eskerretik eskuinera",
+"Emoticons": "Irrifartxoak",
+"Robots": "Robotak",
+"Document properties": "Dokumentuaren propietateak",
+"Title": "Titulua",
+"Keywords": "Hitz gakoak",
+"Encoding": "Encoding",
+"Description": "Deskribapena",
+"Author": "Egilea",
+"Fullscreen": "Pantaila osoa",
+"Horizontal line": "Marra horizontala",
+"Horizontal space": "Hutsune horizontala",
+"Insert\/edit image": "Irudia txertatu\/editatu",
+"General": "Orokorra",
+"Advanced": "Aurreratua",
+"Source": "Iturburua",
+"Border": "Bordea",
+"Constrain proportions": "Zerraditu proportzioak",
+"Vertical space": "Hutsune bertikala",
+"Image description": "Irudiaren deskribapena",
+"Style": "Estiloa",
+"Dimensions": "Neurriak",
+"Insert image": "Irudia txertatu",
+"Insert date\/time": "Data\/ordua txertatu",
+"Remove link": "Kendu esteka",
+"Url": "Url",
+"Text to display": "Bistaratzeko testua",
+"Anchors": "Estekak",
+"Insert link": "Esteka txertatu",
+"New window": "Lehio berria",
+"None": "Bat ere ez",
+"Target": "Target",
+"Insert\/edit link": "Esteka txertatu\/editatu",
+"Insert\/edit video": "Bideoa txertatu\/editatu",
+"Poster": "Poster-a",
+"Alternative source": "Iturburu alternatiboa",
+"Paste your embed code below:": "Itsatsi hemen zure enkapsulatzeko kodea:",
+"Insert video": "Bideoa txertatu",
+"Embed": "Kapsulatu",
+"Nonbreaking space": "Zuriune zatiezina",
+"Page break": "Orrialde-jauzia",
+"Preview": "Aurrebista",
+"Print": "Inprimatu",
+"Save": "Gorde",
+"Could not find the specified string.": "Ezin izan da zehaztutako katea aurkitu.",
+"Replace": "Ordeztu",
+"Next": "Hurrengoa",
+"Whole words": "hitz osoak",
+"Find and replace": "Bilatu eta ordeztu",
+"Replace with": "Honekin ordeztu",
+"Find": "Bilatu",
+"Replace all": "Ordeztu dena",
+"Match case": "Maiuskula\/minuskula",
+"Prev": "Aurrekoa",
+"Spellcheck": "Egiaztapenak",
+"Finish": "Amaitu",
+"Ignore all": "Ez ikusi guztia",
+"Ignore": "Ez ikusi",
+"Insert row before": "Txertatu errenkada aurretik",
+"Rows": "Errenkadak",
+"Height": "Altuera",
+"Paste row after": "Itsatsi errenkada ostean",
+"Alignment": "Lerrokatzea",
+"Column group": "Zutabe taldea",
+"Row": "Errenkada",
+"Insert column before": "Txertatu zutabe aurretik",
+"Split cell": "Gelaxkak banatu",
+"Cell padding": "Gelaxken betegarria",
+"Cell spacing": "Gelaxka arteko tartea",
+"Row type": "Lerro mota",
+"Insert table": "Txertatu taula",
+"Body": "Gorputza",
+"Caption": "Epigrafea",
+"Footer": "Oina",
+"Delete row": "Ezabatu errenkada",
+"Paste row before": "Itsatsi errenkada aurretik",
+"Scope": "Esparrua",
+"Delete table": "Taula ezabatu",
+"Header cell": "Goiburuko gelaxka",
+"Column": "Zutabea",
+"Cell": "Gelaxka",
+"Header": "Goiburua",
+"Cell type": "Gelaxka mota",
+"Copy row": "Kopiatu errenkada",
+"Row properties": "Errenkadaren propietateak",
+"Table properties": "Taularen propietateak",
+"Row group": "Lerro taldea",
+"Right": "Eskuma",
+"Insert column after": "Txertatu zutabea ostean",
+"Cols": "Zutabeak",
+"Insert row after": "Txertatu errenkada ostean",
+"Width": "Zabalera",
+"Cell properties": "Gelaxkaren propietateak",
+"Left": "Ezkerra",
+"Cut row": "Ebaki errenkada",
+"Delete column": "Ezabatu zutabea",
+"Center": "Erdia",
+"Merge cells": "Gelaxkak batu",
+"Insert template": "Txertatu txantiloia",
+"Templates": "Txantiloiak",
+"Background color": "Atzeko kolorea",
+"Text color": "Testuaren kolorea",
+"Show blocks": "Erakutsi blokeak",
+"Show invisible characters": "Erakutsi karaktere izkutuak",
+"Words: {0}": "Hitzak: {0}",
+"Insert": "Sartu",
+"File": "Fitxategia",
+"Edit": "Editatu",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Testu aberastuko area. Sakatu ALT-F9 menurako. Sakatu ALT-F10 tresna-barrarako. Sakatu ALT-0 laguntzarako",
+"Tools": "Tresnak",
+"View": "Ikusi",
+"Table": "Taula",
+"Format": "Formatua"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/fa.js b/framework/Web/Javascripts/source/tinymce-405/langs/fa.js
new file mode 100755
index 00000000..a8fd76b2
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/fa.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('fa',{
+"Cut": "\u0628\u0631\u062f\u0627\u0634\u062a\u0646",
+"Header 2": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 \u06f2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627 \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0647 \u062d\u0627\u0641\u0638\u0647 \u06a9\u067e\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u06a9\u0646\u062f. \u0644\u0637\u0641\u0627 \u0627\u0632 \u06a9\u0644\u06cc\u062f \u0647\u0627\u06cc Ctrl+X\/C\/V \u062f\u0631 \u06a9\u06cc\u0628\u0648\u0631\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.",
+"Div": "\u062a\u06af Div - \u0628\u062e\u0634",
+"Paste": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646",
+"Close": "\u0628\u0633\u062a\u0646",
+"Pre": "\u062a\u06af Pre",
+"Align right": "\u0631\u0627\u0633\u062a \u0686\u06cc\u0646",
+"New document": "\u0633\u0646\u062f \u062c\u062f\u06cc\u062f",
+"Blockquote": "\u062a\u06af \u0646\u0642\u0644 \u0642\u0648\u0644 - Blockquote",
+"Numbered list": "\u0644\u06cc\u0633\u062a \u0634\u0645\u0627\u0631\u0647 \u0627\u06cc",
+"Increase indent": "\u0627\u0641\u0632\u0627\u06cc\u0634 \u062a\u0648 \u0631\u0641\u062a\u06af\u06cc",
+"Formats": "\u0642\u0627\u0644\u0628",
+"Headers": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647\u200c\u0647\u0627",
+"Select all": "\u0627\u0646\u062a\u062e\u0627\u0628 \u0647\u0645\u0647",
+"Header 3": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 \u06f3",
+"Blocks": "\u0628\u0644\u0648\u06a9",
+"Undo": "\t\n\u0628\u0627\u0637\u0644 \u06a9\u0631\u062f\u0646",
+"Strikethrough": "\u062e\u0637 \u062e\u0648\u0631\u062f\u0647",
+"Bullet list": "\u0644\u06cc\u0633\u062a \u062f\u0627\u06cc\u0631\u0647 \u0627\u06cc",
+"Header 1": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 \u06f1",
+"Superscript": "\u0628\u0627\u0644\u0627\u0646\u0648\u06cc\u0633 - \u062d\u0627\u0644\u062a \u062a\u0648\u0627\u0646",
+"Clear formatting": "\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc",
+"Subscript": "\u0632\u06cc\u0631 \u0646\u0648\u06cc\u0633 - \u062d\u0627\u0644\u062a \u0627\u0646\u062f\u06cc\u0633",
+"Header 6": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 \u06f6",
+"Redo": "\u0627\u0646\u062c\u0627\u0645 \u062f\u0648\u0628\u0627\u0631\u0647",
+"Paragraph": "\u062a\u06af \u067e\u0627\u0631\u0627\u06af\u0631\u0627\u0641 - Paragraph",
+"Ok": "\u0628\u0627\u0634\u0647",
+"Bold": "\u062f\u0631\u0634\u062a",
+"Code": "\u062a\u06af Code",
+"Italic": "\u062e\u0637 \u06a9\u062c",
+"Align center": "\u0648\u0633\u0637 \u0686\u06cc\u0646",
+"Header 5": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 \u06f5",
+"Decrease indent": "\u06a9\u0627\u0647\u0634 \u062a\u0648 \u0631\u0641\u062a\u06af\u06cc",
+"Header 4": "\u0633\u0631\u200c\u0635\u0641\u062d\u0647 \u06f4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0647\u0645 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0646 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a. \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u0631\u0627 \u063a\u06cc\u0631\u200c\u0641\u0639\u0627\u0644 \u0646\u06a9\u0646\u06cc\u062f\u060c \u0645\u062d\u062a\u0648\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0646 \u0633\u0627\u062f\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.",
+"Underline": "\u062e\u0637 \u0632\u06cc\u0631",
+"Cancel": "\u0644\u063a\u0648",
+"Justify": "\u0645\u0633\u0627\u0648\u06cc \u0627\u0632 \u0637\u0631\u0641\u06cc\u0646",
+"Inline": "\u062e\u0637\u06cc",
+"Copy": "\u06a9\u067e\u06cc",
+"Align left": "\u0686\u067e \u0686\u06cc\u0646",
+"Visual aids": "\u06a9\u0645\u06a9 \u0647\u0627\u06cc \u0628\u0635\u0631\u06cc",
+"Lower Greek": "\u06cc\u0648\u0646\u0627\u0646\u06cc \u06a9\u0648\u0686\u06a9",
+"Square": "\u0645\u0631\u0628\u0639",
+"Default": "\u067e\u06cc\u0634\u0641\u0631\u0636",
+"Lower Alpha": "\u0622\u0644\u0641\u0627\u0621 \u06a9\u0648\u0686\u06a9",
+"Circle": "\u062f\u0627\u06cc\u0631\u0647",
+"Disc": "\u062f\u06cc\u0633\u06a9",
+"Upper Alpha": "\u0622\u0644\u0641\u0627\u0621 \u0628\u0632\u0631\u06af",
+"Upper Roman": "\u0631\u0648\u0645\u06cc \u0628\u0632\u0631\u06af",
+"Lower Roman": "\u0631\u0648\u0645\u06cc \u06a9\u0648\u0686\u06a9",
+"Name": "\u0646\u0627\u0645",
+"Anchor": "\u0644\u0646\u06af\u0631 - \u0644\u06cc\u0646\u06a9",
+"You have unsaved changes are you sure you want to navigate away?": "\u0634\u0645\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0630\u062e\u06cc\u0631\u0647 \u0646\u0634\u062f\u0647 \u0627\u06cc \u062f\u0627\u0631\u06cc\u062f\u060c \u0622\u06cc\u0627 \u0645\u0637\u0645\u0626\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0635\u0641\u062d\u0647 \u0628\u0631\u0648\u06cc\u062f\u061f",
+"Restore last draft": "\u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u0622\u062e\u0631\u06cc\u0646 \u067e\u06cc\u0634 \u0646\u0648\u06cc\u0633",
+"Special character": "\u06a9\u0627\u0631\u0627\u06a9\u062a\u0631 \u0647\u0627\u06cc \u062e\u0627\u0635",
+"Source code": "\u06a9\u062f \u0645\u0646\u0628\u0639",
+"Right to left": "\u0631\u0627\u0633\u062a \u0628\u0647 \u0686\u067e",
+"Left to right": "\u0686\u067e \u0628\u0647 \u0631\u0627\u0633\u062a",
+"Emoticons": "\u0634\u06a9\u0644\u06a9\u200c\u0647\u0627",
+"Robots": "\u0631\u0628\u0627\u062a \u0647\u0627",
+"Document properties": "\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0633\u0646\u062f",
+"Title": "\u0639\u0646\u0648\u0627\u0646",
+"Keywords": "\u06a9\u0644\u0645\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc",
+"Encoding": "\u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc",
+"Description": "\u062a\u0648\u0636\u06cc\u062d\u0627\u062a",
+"Author": "\u0646\u0648\u06cc\u0633\u0646\u062f\u0647",
+"Fullscreen": "\u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647",
+"Horizontal line": "\u062e\u0637 \u0627\u0641\u0642\u06cc",
+"Horizontal space": "\u0641\u0636\u0627\u06cc \u0627\u0641\u0642\u06cc",
+"Insert\/edit image": "\u0627\u0636\u0627\u0641\u0647\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631",
+"General": "\u06a9\u0644\u06cc",
+"Advanced": "\u067e\u06cc\u0634\u0631\u0641\u062a\u0647",
+"Source": "\u0645\u0646\u0628\u0639",
+"Border": "\u062d\u0627\u0634\u06cc\u0647",
+"Constrain proportions": "\u062a\u0646\u0627\u0633\u0628",
+"Vertical space": "\u0641\u0636\u0627\u06cc \u0639\u0645\u0648\u062f\u06cc",
+"Image description": "\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0639\u06a9\u0633",
+"Style": "\u0633\u0628\u06a9",
+"Dimensions": "\u0627\u0628\u0639\u0627\u062f",
+"Insert image": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631",
+"Insert date\/time": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062a\u0627\u0631\u06cc\u062e\/\u0632\u0645\u0627\u0646",
+"Remove link": "\u062d\u0630\u0641 \u0644\u06cc\u0646\u06a9",
+"Url": "\u0627\u062f\u0631\u0633 \u0644\u06cc\u0646\u06a9",
+"Text to display": "\u0645\u062a\u0646 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634",
+"Anchors": "\u0644\u0646\u06af\u0631 - \u0644\u06cc\u0646\u06a9 \u062f\u0627\u062e\u0644 \u0635\u0641\u062d\u0647",
+"Insert link": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0644\u06cc\u0646\u06a9",
+"New window": "\u067e\u0646\u062c\u0631\u0647 \u062c\u062f\u06cc\u062f",
+"None": "\u0647\u06cc\u0686 \u06a9\u062f\u0627\u0645",
+"Target": "\u0646\u062d\u0648\u0647 \u0628\u0627\u0632 \u0634\u062f\u0646 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631",
+"Insert\/edit link": "\u0627\u0636\u0627\u0641\u0647\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0646 \u0644\u06cc\u0646\u06a9",
+"Insert\/edit video": "\u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0646\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0627\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631\u06cc",
+"Poster": "\u067e\u0648\u0633\u062a\u0631",
+"Alternative source": "\u0645\u0646\u0628\u0639 \u062f\u06cc\u06af\u0631",
+"Paste your embed code below:": "\u06a9\u062f \u062c\u0627 \u062f\u0627\u062f\u0646 - embed - \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0632\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:",
+"Insert video": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631\u06cc",
+"Embed": "\u062c\u0627 \u062f\u0627\u062f\u0646",
+"Nonbreaking space": "\u0641\u0636\u0627\u06cc \u063a\u06cc\u0631 \u0634\u06a9\u0633\u062a\u0646",
+"Page break": "\u0634\u06a9\u0633\u062a\u0646 \u0635\u0641\u062d\u0647",
+"Paste as text": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062a\u0646",
+"Preview": "\u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634",
+"Print": "\u0686\u0627\u067e",
+"Save": "\u0630\u062e\u06cc\u0631\u0647",
+"Could not find the specified string.": "\u0631\u0634\u062a\u0647 \u0645\u062a\u0646\u06cc \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u067e\u06cc\u062f\u0627 \u0646\u0634\u062f.",
+"Replace": "\u062c\u0627 \u0628\u0647 \u062c\u0627 \u06a9\u0631\u062f\u0646",
+"Next": "\u0628\u0639\u062f\u06cc",
+"Whole words": "\u0647\u0645\u0647 \u06a9\u0644\u0645\u0647 \u0647\u0627",
+"Find and replace": "\u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 \u0648 \u062c\u0627 \u0628\u0647 \u062c\u0627 \u06a9\u0631\u062f\u0646",
+"Replace with": "\u062c\u0627 \u0628\u0647 \u062c\u0627 \u06a9\u0631\u062f\u0646 \u0628\u0627",
+"Find": "\u062c\u0633\u062a \u0648 \u062c\u0648",
+"Replace all": "\u062c\u0627 \u0628\u0647 \u062c\u0627 \u06a9\u0631\u062f\u0646 \u0647\u0645\u0647",
+"Match case": "\u0645\u0648\u0627\u0631\u062f \u067e\u06cc\u062f\u0627 \u0634\u062f\u0647",
+"Prev": "\u0642\u0628\u0644\u06cc",
+"Spellcheck": "\u0628\u0631\u0631\u0633\u06cc \u0627\u0645\u0644\u0627\u06cc\u06cc",
+"Finish": "\u067e\u0627\u06cc\u0627\u0646",
+"Ignore all": "\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0647\u0645\u0647",
+"Ignore": "\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646",
+"Insert row before": "\u0633\u0637\u0631 \u062c\u062f\u06cc\u062f\u060c \u067e\u06cc\u0634 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631",
+"Rows": "\u062a\u0639\u062f\u0627\u062f \u0633\u0637\u0631",
+"Height": "\u0627\u0631\u062a\u0641\u0627\u0639",
+"Paste row after": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0633\u0637\u0631\u060c \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631",
+"Alignment": "\u0631\u062f\u06cc\u0641 \u0628\u0646\u062f\u06cc \u0646\u0648\u0634\u062a\u0647",
+"Column group": "\u06af\u0631\u0648\u0647 \u0633\u062a\u0648\u0646",
+"Row": "\u0633\u0637\u0631",
+"Insert column before": "\u0633\u062a\u0648\u0646 \u062c\u062f\u06cc\u062f\u060c \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646",
+"Split cell": "\u062a\u0642\u0633\u06cc\u0645 \u0633\u0644\u0648\u0644 \u062c\u062f\u0648\u0644",
+"Cell padding": "\u062d\u0627\u0634\u06cc\u0647 \u0633\u0644\u0648\u0644\u0647\u0627",
+"Cell spacing": "\u0641\u0627\u0635\u0644\u0647\u200c\u06cc \u0628\u06cc\u0646 \u0633\u0644\u0648\u0644\u0647\u0627",
+"Row type": "\u0646\u0648\u0639 \u0633\u0637\u0631",
+"Insert table": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062c\u062f\u0648\u0644",
+"Body": "\u0628\u062f\u0646\u0647",
+"Caption": "\u0639\u0646\u0648\u0627\u0646",
+"Footer": "\u067e\u0627\u0646\u0648\u06cc\u0633",
+"Delete row": "\u062d\u0630\u0641 \u0633\u0637\u0631",
+"Paste row before": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0633\u0637\u0631\u060c \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631",
+"Scope": "\u0645\u062d\u062f\u0648\u062f\u0647\u200c\u06cc \u0639\u0646\u0648\u0627\u0646",
+"Delete table": "\u062d\u0630\u0641 \u062c\u062f\u0648\u0644",
+"Header cell": "\u0633\u0631\u0622\u06cc\u0646\u062f \u0633\u0644\u0648\u0644",
+"Column": "\u0633\u062a\u0648\u0646",
+"Cell": "\u0633\u0644\u0648\u0644",
+"Header": "\u0633\u0631\u0622\u06cc\u0646\u062f",
+"Cell type": "\u0646\u0648\u0639 \u0633\u0644\u0648\u0644",
+"Copy row": "\u06a9\u067e\u06cc \u0633\u0637\u0631",
+"Row properties": "\u0648\u06cc\u0698\u06af\u06cc\u0647\u0627\u06cc \u0633\u0637\u0631",
+"Table properties": "\u0648\u06cc\u0698\u06af\u06cc\u0647\u0627\u06cc \u062c\u062f\u0648\u0644",
+"Row group": "\u06af\u0631\u0648\u0647 \u0633\u0637\u0631",
+"Right": "\u0631\u0627\u0633\u062a",
+"Insert column after": "\u0633\u062a\u0648\u0646 \u062c\u062f\u06cc\u062f \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646",
+"Cols": "\u062a\u0639\u062f\u0627\u062f \u0633\u062a\u0648\u0646",
+"Insert row after": "\u0633\u0637\u0631 \u062c\u062f\u06cc\u062f\u060c \u067e\u0633 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631",
+"Width": "\u0639\u0631\u0636",
+"Cell properties": "\u0648\u06cc\u0698\u06af\u06cc\u0647\u0627\u06cc \u0633\u0644\u0648\u0644",
+"Left": "\u0686\u067e",
+"Cut row": "\u0628\u0631\u062f\u0627\u0634\u062a\u0646 \u0633\u0637\u0631",
+"Delete column": "\u062d\u0630\u0641 \u0633\u062a\u0648\u0646",
+"Center": "\u0645\u0631\u06a9\u0632",
+"Merge cells": "\u0627\u062f\u063a\u0627\u0645 \u0633\u0644\u0648\u0644\u0647\u0627",
+"Insert template": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0627\u0644\u06af\u0648",
+"Templates": "\u0627\u0644\u06af\u0648\u200c\u0647\u0627",
+"Background color": "\u0631\u0646\u06af \u0632\u0645\u06cc\u0646\u0647 \u0645\u062a\u0646",
+"Text color": "\u0631\u0646\u06af \u0645\u062a\u0646",
+"Show blocks": "\u0646\u0645\u0627\u06cc\u0634 \u0628\u062e\u0634\u200c\u0647\u0627",
+"Show invisible characters": "\u0646\u0645\u0627\u06cc\u0634 \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627\u06cc \u063a\u06cc\u0631 \u0642\u0627\u0628\u0644 \u0686\u0627\u067e",
+"Words: {0}": "\u06a9\u0644\u0645\u0627\u062a : {0}",
+"Insert": "\u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646",
+"File": "\u067e\u0631\u0648\u0646\u062f\u0647",
+"Edit": "\u0648\u06cc\u0631\u0627\u06cc\u0634",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u06cc \u0645\u062a\u0646. \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u0646\u0648 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc ALT-F9\u060c \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631 ALT-F10 \u0648 \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647\u200c\u06cc \u0631\u0627\u0647\u0646\u0645\u0627 ALT-0 \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.",
+"Tools": "\u0627\u0628\u0632\u0627\u0631\u0647\u0627",
+"View": "\u0646\u0645\u0627\u06cc\u0634",
+"Table": "\u062c\u062f\u0648\u0644",
+"Format": "\u0642\u0627\u0644\u0628"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/fi.js b/framework/Web/Javascripts/source/tinymce-405/langs/fi.js
new file mode 100755
index 00000000..d5565d39
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/fi.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('fi',{
+"Cut": "Leikkaa",
+"Header 2": "Otsikko 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Selaimesi ei tue leikekirjan suoraa k\u00e4ytt\u00e4mist\u00e4. Ole hyv\u00e4 ja k\u00e4yt\u00e4 n\u00e4pp\u00e4imist\u00f6n Ctrl+X ja Ctrl+V n\u00e4pp\u00e4inyhdistelmi\u00e4.",
+"Div": "Div",
+"Paste": "Liit\u00e4",
+"Close": "Sulje",
+"Pre": "Esimuotoiltu",
+"Align right": "Tasaa oikealle",
+"New document": "Uusi dokumentti",
+"Blockquote": "Lainauslogko",
+"Numbered list": "J\u00e4rjestetty lista",
+"Increase indent": "Loitonna",
+"Formats": "Muotoilut",
+"Headers": "Otsikot",
+"Select all": "Valitse kaikki",
+"Header 3": "Otsikko 3",
+"Blocks": "Lohkot",
+"Undo": "Peru",
+"Strikethrough": "Yliviivaus",
+"Bullet list": "J\u00e4rjest\u00e4m\u00e4t\u00f6n lista",
+"Header 1": "Otsikko 1",
+"Superscript": "Yl\u00e4indeksi",
+"Clear formatting": "Poista muotoilu",
+"Subscript": "Alaindeksi",
+"Header 6": "Otsikko 6",
+"Redo": "Tee uudelleen",
+"Paragraph": "Kappale",
+"Ok": "Ok",
+"Bold": "Lihavointi",
+"Code": "Koodi",
+"Italic": "Kursivointi",
+"Align center": "Keskit\u00e4",
+"Header 5": "Otsikko 5",
+"Decrease indent": "Sisenn\u00e4",
+"Header 4": "Otsikko 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Liitt\u00e4minen on nyt pelk\u00e4n tekstin -tilassa. Sis\u00e4ll\u00f6t liitet\u00e4\u00e4n nyt pelkk\u00e4n\u00e4 tekstin\u00e4, kunnes otat vaihtoehdon pois k\u00e4yt\u00f6st\u00e4.",
+"Underline": "Alleviivaus",
+"Cancel": "Peruuta",
+"Justify": "Tasaa",
+"Inline": "Samalla rivill\u00e4",
+"Copy": "Kopioi",
+"Align left": "Tasaa vasemmalle",
+"Visual aids": "Visuaaliset neuvot",
+"Lower Greek": "pienet kirjaimet: \u03b1, \u03b2, \u03b3",
+"Square": "Neli\u00f6",
+"Default": "Oletus",
+"Lower Alpha": "pienet kirjaimet: a, b, c",
+"Circle": "Pallo",
+"Disc": "Ympyr\u00e4",
+"Upper Alpha": "isot kirjaimet: A, B, C",
+"Upper Roman": "isot kirjaimet: I, II, III",
+"Lower Roman": "pienet kirjaimet: i, ii, iii",
+"Name": "Nimi",
+"Anchor": "Ankkuri",
+"You have unsaved changes are you sure you want to navigate away?": "Sinulla on tallentamattomia muutoksia, haluatko varmasti siirty\u00e4 toiselle sivulle?",
+"Restore last draft": "Palauta aiempi luonnos",
+"Special character": "Erikoismerkki",
+"Source code": "L\u00e4hdekoodi",
+"Right to left": "Oikealta vasemmalle",
+"Left to right": "Vasemmalta oikealle",
+"Emoticons": "Hymi\u00f6t",
+"Robots": "Robotit",
+"Document properties": "Dokumentin ominaisuudet",
+"Title": "Otsikko",
+"Keywords": "Avainsanat",
+"Encoding": "Merkist\u00f6",
+"Description": "Kuvaus",
+"Author": "Tekij\u00e4",
+"Fullscreen": "Koko ruutu",
+"Horizontal line": "Vaakasuora viiva",
+"Horizontal space": "Horisontaalinen tila",
+"Insert\/edit image": "Lis\u00e4\u00e4\/muokkaa kuva",
+"General": "Yleiset",
+"Advanced": "Lis\u00e4asetukset",
+"Source": "L\u00e4hde",
+"Border": "Reunus",
+"Constrain proportions": "S\u00e4ilyt\u00e4 mittasuhteet",
+"Vertical space": "Vertikaalinen tila",
+"Image description": "Kuvaus",
+"Style": "Tyyli",
+"Dimensions": "Mittasuhteet",
+"Insert image": "Lis\u00e4\u00e4 kuva",
+"Insert date\/time": "Lis\u00e4\u00e4 p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 tai aika",
+"Remove link": "Poista linkki",
+"Url": "Osoite",
+"Text to display": "N\u00e4ytett\u00e4v\u00e4 teksti",
+"Anchors": "Ankkurit",
+"Insert link": "Lis\u00e4\u00e4 linkki",
+"New window": "Uusi ikkuna",
+"None": "Ei mit\u00e4\u00e4n",
+"Target": "Kohde",
+"Insert\/edit link": "Lis\u00e4\u00e4 tai muokkaa linkki",
+"Insert\/edit video": "Lis\u00e4\u00e4 tai muokkaa video",
+"Poster": "L\u00e4hett\u00e4j\u00e4",
+"Alternative source": "Vaihtoehtoinen l\u00e4hde",
+"Paste your embed code below:": "Liit\u00e4 upotuskoodisi alapuolelle:",
+"Insert video": "Lis\u00e4\u00e4 video",
+"Embed": "Upota",
+"Nonbreaking space": "Tyhj\u00e4 merkki (nbsp)",
+"Page break": "Sivunvaihto",
+"Paste as text": "Liit\u00e4 tekstin\u00e4",
+"Preview": "Esikatselu",
+"Print": "Tulosta",
+"Save": "Tallenna",
+"Could not find the specified string.": "Haettua merkkijonoa ei l\u00f6ytynyt.",
+"Replace": "Korvaa",
+"Next": "Seur.",
+"Whole words": "Koko sanat",
+"Find and replace": "Etsi ja korvaa",
+"Replace with": "Korvaa",
+"Find": "Etsi",
+"Replace all": "Korvaa kaikki",
+"Match case": "Erota isot ja pienet kirjaimet",
+"Prev": "Edel.",
+"Spellcheck": "Oikolue",
+"Finish": "Lopeta",
+"Ignore all": "\u00c4l\u00e4 huomioi mit\u00e4\u00e4n",
+"Ignore": "\u00c4l\u00e4 huomioi",
+"Insert row before": "Lis\u00e4\u00e4 rivi ennen",
+"Rows": "Rivit",
+"Height": "Korkeus",
+"Paste row after": "Liit\u00e4 rivi j\u00e4lkeen",
+"Alignment": "Tasaus",
+"Column group": "Sarakeryhm\u00e4",
+"Row": "Rivi",
+"Insert column before": "Lis\u00e4\u00e4 rivi ennen",
+"Split cell": "Jaa solu",
+"Cell padding": "Solun tyhj\u00e4 tila",
+"Cell spacing": "Solun v\u00e4li",
+"Row type": "Rivityyppi",
+"Insert table": "Lis\u00e4\u00e4 taulukko",
+"Body": "Runko",
+"Caption": "Seloste",
+"Footer": "Alaosa",
+"Delete row": "Poista rivi",
+"Paste row before": "Liit\u00e4 rivi ennen",
+"Scope": "Laajuus",
+"Delete table": "Poista taulukko",
+"Header cell": "Otsikkosolu",
+"Column": "Sarake",
+"Cell": "Solu",
+"Header": "Otsikko",
+"Cell type": "Solun tyyppi",
+"Copy row": "Kopioi rivi",
+"Row properties": "Rivin ominaisuudet",
+"Table properties": "Taulukon ominaisuudet",
+"Row group": "Riviryhm\u00e4",
+"Right": "Oikea",
+"Insert column after": "Lis\u00e4\u00e4 rivi j\u00e4lkeen",
+"Cols": "Sarakkeet",
+"Insert row after": "Lis\u00e4\u00e4 rivi j\u00e4lkeen",
+"Width": "Leveys",
+"Cell properties": "Solun ominaisuudet",
+"Left": "Vasen",
+"Cut row": "Leikkaa rivi",
+"Delete column": "Poista sarake",
+"Center": "Keskell\u00e4",
+"Merge cells": "Yhdist\u00e4 solut",
+"Insert template": "Lis\u00e4\u00e4 pohja",
+"Templates": "Pohjat",
+"Background color": "Taustan v\u00e4ri",
+"Text color": "Tekstin v\u00e4ri",
+"Show blocks": "N\u00e4yt\u00e4 lohkot",
+"Show invisible characters": "N\u00e4yt\u00e4 n\u00e4kym\u00e4tt\u00f6m\u00e4t merkit",
+"Words: {0}": "Sanat: {0}",
+"Insert": "Lis\u00e4\u00e4",
+"File": "Tiedosto",
+"Edit": "Muokkaa",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rikastetun tekstin alue. Paina ALT-F9 valikkoon. Paina ALT-F10 ty\u00f6kaluriviin. Paina ALT-0 ohjeeseen.",
+"Tools": "Ty\u00f6kalut",
+"View": "N\u00e4yt\u00e4",
+"Table": "Taulukko",
+"Format": "Muotoilu"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/fo.js b/framework/Web/Javascripts/source/tinymce-405/langs/fo.js
new file mode 100755
index 00000000..c6fc5eb0
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/fo.js
@@ -0,0 +1,156 @@
+tinymce.addI18n('fo',{
+"Cut": "Klipp",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "T\u00edn kagi hevur ikki beinlei\u00f0is atgongd til setibor\u00f0i\u00f0. Vinarliga br\u00faka CTRL+X\/C\/V snarvegirnar \u00edsta\u00f0in.",
+"Paste": "L\u00edma",
+"Close": "Lat aftur",
+"Align right": "H\u00f8gra stilla",
+"New document": "N\u00fdtt skjal",
+"Numbered list": "Tal listi",
+"Increase indent": "vaks inndr\u00e1tt",
+"Formats": "Sni\u00f0",
+"Select all": "Vel alt",
+"Undo": "Angra ger",
+"Strikethrough": "Strika \u00edgj\u00f8gnum",
+"Bullet list": "Punkt listi",
+"Superscript": "H\u00e1skrift",
+"Clear formatting": "Strika sni\u00f0",
+"Subscript": "L\u00e1gskrift",
+"Redo": "Ger aftur",
+"Ok": "Ok",
+"Bold": "Feit",
+"Italic": "Sk\u00e1ktekstur",
+"Align center": "Mi\u00f0set",
+"Decrease indent": "Minka inndr\u00e1tt",
+"Underline": "Undirstrika",
+"Cancel": "\u00d3gilda",
+"Justify": "L\u00edka breddar",
+"Copy": "Avrita",
+"Align left": "Vinstra stilla",
+"Visual aids": "Sj\u00f3nhj\u00e1lp",
+"Lower Greek": "L\u00edti Grikskt",
+"Square": "Fj\u00f3rhyrningur",
+"Default": "Forsettur",
+"Lower Alpha": "L\u00edti Alfa",
+"Circle": "Ringur",
+"Disc": "Skiva",
+"Upper Alpha": "St\u00f3rt Alfa",
+"Upper Roman": "St\u00f3rt R\u00f3mverskt",
+"Lower Roman": "L\u00edti R\u00f3mverskt",
+"Name": "Navn",
+"Anchor": "Akker",
+"You have unsaved changes are you sure you want to navigate away?": "T\u00fa hevur ikki goymdar broytingar. Ert t\u00fa v\u00edsur \u00ed at t\u00fa vilt halda fram?",
+"Restore last draft": "Endurskapa seinasta uppkast",
+"Special character": "Serst\u00f8k tekn",
+"Source code": "keldukoda",
+"Right to left": "H\u00f8gra til vinstra",
+"Left to right": "Vinstra til h\u00f8gra",
+"Emoticons": "Emotikonur",
+"Robots": "Robottar",
+"Document properties": "Skjal eginleikar",
+"Title": "Heiti",
+"Keywords": "Leitior\u00f0",
+"Encoding": "Koding",
+"Description": "L\u00fdsing",
+"Author": "H\u00f8vundur",
+"Fullscreen": "Fullan sk\u00edggja",
+"Horizontal line": "Vatnr\u00f8tt linja",
+"Horizontal space": "Vatnr\u00e6tt fr\u00e1st\u00f8\u00f0a",
+"Insert\/edit image": "Innset\/r\u00e6tta mynd",
+"General": "Vanligt",
+"Advanced": "Framkomi",
+"Source": "Kelda",
+"Border": "Rammi",
+"Constrain proportions": "Var\u00f0veit lutfall",
+"Vertical space": "Loddr\u00e6t fr\u00e1st\u00f8\u00f0a",
+"Image description": "L\u00fdsing av mynd",
+"Style": "St\u00edlur",
+"Dimensions": "St\u00f8dd",
+"Insert date\/time": "Innset dag\/t\u00ed\u00f0",
+"Url": "Url",
+"Text to display": "Tekstur at v\u00edsa",
+"Insert link": "Innset leinkju",
+"New window": "N\u00fdggjan glugga",
+"None": "Eingin",
+"Target": "M\u00e1l",
+"Insert\/edit link": "Innset\/r\u00e6tta leinkju",
+"Insert\/edit video": "Innset\/r\u00e6tta kykmynd",
+"Poster": "Uppslag",
+"Alternative source": "Onnur kelda",
+"Paste your embed code below:": "Innset ta\u00f0 kodu, sum skal leggjast inn \u00ed, ni\u00f0anfyri:",
+"Insert video": "Innset kykmynd",
+"Embed": "Legg inn \u00ed",
+"Nonbreaking space": "Hart millumr\u00fam",
+"Page break": "S\u00ed\u00f0uskift",
+"Preview": "V\u00eds frammanundan",
+"Print": "Prenta",
+"Save": "Goym",
+"Could not find the specified string.": "Kundi ikki finna leititekst",
+"Replace": "Set \u00edsta\u00f0in",
+"Next": "N\u00e6sta",
+"Whole words": "Heil or\u00f0",
+"Find and replace": "Finn og set \u00edsta\u00f0in",
+"Replace with": "Set hetta \u00edsta\u00f0in",
+"Find": "Finn",
+"Replace all": "Set \u00edsta\u00f0in fyri \u00f8ll",
+"Match case": "ST\u00d3RIR og l\u00edtlir b\u00f3kstavir",
+"Prev": "Fyrra",
+"Spellcheck": "R\u00e6ttstavari",
+"Finish": "Enda",
+"Ignore all": "Leyp alt um",
+"Ignore": "Leyp um",
+"Insert row before": "Innset ra\u00f0 \u00e1\u00f0renn",
+"Rows": "Ra\u00f0ir",
+"Height": "H\u00e6dd",
+"Paste row after": "L\u00edma ra\u00f0 aftan\u00e1",
+"Alignment": "Stilling",
+"Column group": "Teig b\u00f3lkur",
+"Row": "Ra\u00f0",
+"Insert column before": "Innset teig \u00e1\u00f0renn",
+"Split cell": "Syndra puntar",
+"Cell padding": "Punt fylling",
+"Cell spacing": "Punt fr\u00e1st\u00f8\u00f0a",
+"Row type": "Ra\u00f0 slag",
+"Insert table": "Innset talvu",
+"Body": "Likam",
+"Caption": "Tekstur",
+"Footer": "F\u00f3tur",
+"Delete row": "Skrika ra\u00f0",
+"Paste row before": "L\u00edma ra\u00f0 \u00e1\u00f0renn",
+"Scope": "N\u00fdtslu\u00f8ki",
+"Delete table": "Strika talvu",
+"Header cell": "H\u00f8vd puntur",
+"Column": "Teigur",
+"Cell": "Puntur",
+"Header": "H\u00f8vd",
+"Cell type": "Punt slag",
+"Copy row": "Avrita ra\u00f0",
+"Row properties": "Ra\u00f0 eginleikar",
+"Table properties": "Talvu eginleikar",
+"Row group": "Ra\u00f0 b\u00f3lkur",
+"Right": "H\u00f8gra",
+"Insert column after": "Innset teig aftan\u00e1",
+"Cols": "Teigar",
+"Insert row after": "Innset ra\u00f0 aftan\u00e1",
+"Width": "Breidd",
+"Cell properties": "Punt eginleikar",
+"Left": "Vinstra",
+"Cut row": "Klipp ra\u00f0",
+"Delete column": "Strika teig",
+"Center": "Mi\u00f0a",
+"Merge cells": "Fl\u00e6tta puntar",
+"Insert template": "Innset form",
+"Templates": "Formur",
+"Background color": "Bakgrundslitur",
+"Text color": "Tekst litur",
+"Show blocks": "V\u00eds blokkar",
+"Show invisible characters": "V\u00eds \u00f3sj\u00f3nlig tekn",
+"Words: {0}": "Or\u00f0: {0}",
+"Insert": "Innset",
+"File": "F\u00edla",
+"Edit": "Ritstj\u00f3rna",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "R\u00edkt Tekst \u00d8ki. Tr\u00fdst ALT-F9 fyri valmynd. Tr\u00fdst ALT-F10 fyri ambo\u00f0slinju. Tr\u00fdst ALT-0 fyri hj\u00e1lp",
+"Tools": "Ambo\u00f0",
+"View": "V\u00eds",
+"Table": "Talva",
+"Format": "Smi\u00f0"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/fr_FR.js b/framework/Web/Javascripts/source/tinymce-405/langs/fr_FR.js
new file mode 100755
index 00000000..b2978b86
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/fr_FR.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('fr_FR',{
+"Cut": "Couper",
+"Header 2": "En-t\u00eate 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Votre navigateur ne supporte pas la copie directe. Merci d'utiliser les touches Ctrl+X\/C\/V.",
+"Div": "Div",
+"Paste": "Coller",
+"Close": "Fermer",
+"Pre": "Pre",
+"Align right": "Aligner \u00e0 droite",
+"New document": "Nouveau document",
+"Blockquote": "Citation",
+"Numbered list": "Num\u00e9rotation",
+"Increase indent": "Augmenter le retrait",
+"Formats": "Formats",
+"Headers": "En-t\u00eates",
+"Select all": "Tout s\u00e9lectionner",
+"Header 3": "En-t\u00eate 3",
+"Blocks": "Blocs",
+"Undo": "Annuler",
+"Strikethrough": "Barr\u00e9",
+"Bullet list": "Puces",
+"Header 1": "En-t\u00eate 1",
+"Superscript": "Exposant",
+"Clear formatting": "Effacer la mise en forme",
+"Subscript": "Indice",
+"Header 6": "En-t\u00eate 6",
+"Redo": "R\u00e9tablir",
+"Paragraph": "Paragraphe",
+"Ok": "Ok",
+"Bold": "Gras",
+"Code": "Code",
+"Italic": "Italique",
+"Align center": "Aligner au centre",
+"Header 5": "En-t\u00eate 5",
+"Decrease indent": "Diminuer le retrait",
+"Header 4": "En-t\u00eate 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Le presse-papiers est maintenant en mode \"texte plein\". Les contenus seront coll\u00e9s sans retenir les formatages jusqu'\u00e0 ce que vous d\u00e9sactiviez cette option.",
+"Underline": "Soulign\u00e9",
+"Cancel": "Annuler",
+"Justify": "Justifi\u00e9",
+"Inline": "en place",
+"Copy": "Copier",
+"Align left": "Aligner \u00e0 gauche",
+"Visual aids": "Aides visuelle",
+"Lower Greek": "Grec minuscule",
+"Square": "Carr\u00e9",
+"Default": "Par d\u00e9faut",
+"Lower Alpha": "Alpha inf\u00e9rieure",
+"Circle": "Cercle",
+"Disc": "Disque",
+"Upper Alpha": "Alpha majuscule",
+"Upper Roman": "Romain majuscule",
+"Lower Roman": "Romain minuscule",
+"Name": "Nom",
+"Anchor": "Ancre",
+"You have unsaved changes are you sure you want to navigate away?": "Vous avez des modifications non enregistr\u00e9es, \u00eates-vous s\u00fbr de quitter la page?",
+"Restore last draft": "Restaurer le dernier brouillon",
+"Special character": "Caract\u00e8res sp\u00e9ciaux",
+"Source code": "Code source",
+"Right to left": "Droite \u00e0 gauche",
+"Left to right": "Gauche \u00e0 droite",
+"Emoticons": "Emotic\u00f4nes",
+"Robots": "Robots",
+"Document properties": "Propri\u00e9t\u00e9 du document",
+"Title": "Titre",
+"Keywords": "Mots-cl\u00e9s",
+"Encoding": "Encodage",
+"Description": "Description",
+"Author": "Auteur",
+"Fullscreen": "Plein \u00e9cran",
+"Horizontal line": "Ligne horizontale",
+"Horizontal space": "Espacement horizontal",
+"Insert\/edit image": "Ins\u00e9rer\/\u00e9diter une image",
+"General": "G\u00e9n\u00e9ral",
+"Advanced": "Avanc\u00e9",
+"Source": "Source",
+"Border": "Bordure",
+"Constrain proportions": "Contraindre les proportions",
+"Vertical space": "Espacement vertical",
+"Image description": "Description de l'image",
+"Style": "Style",
+"Dimensions": "Dimensions",
+"Insert image": "Ins\u00e9rer une image",
+"Insert date\/time": "Ins\u00e9rer date\/heure",
+"Remove link": "Enlever le lien",
+"Url": "Url",
+"Text to display": "Texte \u00e0 afficher",
+"Anchors": "Ancre",
+"Insert link": "Ins\u00e9rer un lien",
+"New window": "Nouvelle fen\u00eatre",
+"None": "n\/a",
+"Target": "Cible",
+"Insert\/edit link": "Ins\u00e9rer\/\u00e9diter un lien",
+"Insert\/edit video": "Ins\u00e9rer\/\u00e9diter une vid\u00e9o",
+"Poster": "Afficher",
+"Alternative source": "Source alternative",
+"Paste your embed code below:": "Collez votre code d'int\u00e9gration ci-dessous :",
+"Insert video": "Ins\u00e9rer une vid\u00e9o",
+"Embed": "Int\u00e9grer",
+"Nonbreaking space": "Espace ins\u00e9cable",
+"Page break": "Saut de page",
+"Paste as text": "Coller comme texte",
+"Preview": "Pr\u00e9visualiser",
+"Print": "Imprimer",
+"Save": "Enregistrer",
+"Could not find the specified string.": "Impossible de trouver la cha\u00eene sp\u00e9cifi\u00e9e.",
+"Replace": "Remplacer",
+"Next": "Suiv",
+"Whole words": "Mots entiers",
+"Find and replace": "Trouver et remplacer",
+"Replace with": "Remplacer par",
+"Find": "Chercher",
+"Replace all": "Tout remplacer",
+"Match case": "Respecter la casse",
+"Prev": "Pr\u00e9c ",
+"Spellcheck": "V\u00e9rification orthographique",
+"Finish": "Finie",
+"Ignore all": "Tout ignorer",
+"Ignore": "Ignorer",
+"Insert row before": "Ins\u00e9rer une ligne avant",
+"Rows": "Lignes",
+"Height": "Hauteur",
+"Paste row after": "Coller la ligne apr\u00e8s",
+"Alignment": "Alignement",
+"Column group": "Groupe de colonnes",
+"Row": "Ligne",
+"Insert column before": "Ins\u00e9rer une colonne avant",
+"Split cell": "Diviser la cellule",
+"Cell padding": "Espacement interne cellule",
+"Cell spacing": "Espacement inter-cellulles",
+"Row type": "Type de ligne",
+"Insert table": "Ins\u00e9rer un tableau",
+"Body": "Corps",
+"Caption": "Titre",
+"Footer": "Pied",
+"Delete row": "Effacer la ligne",
+"Paste row before": "Coller la ligne avant",
+"Scope": "Etendue",
+"Delete table": "Supprimer le tableau",
+"Header cell": "Cellule d'en-t\u00eate",
+"Column": "Colonne",
+"Cell": "Cellule",
+"Header": "En-t\u00eate",
+"Cell type": "Type de cellule",
+"Copy row": "Copier la ligne",
+"Row properties": "Propri\u00e9t\u00e9s de la ligne",
+"Table properties": "Propri\u00e9t\u00e9s du tableau",
+"Row group": "Groupe de lignes",
+"Right": "Droite",
+"Insert column after": "Ins\u00e9rer une colonne apr\u00e8s",
+"Cols": "Colonnes",
+"Insert row after": "Ins\u00e9rer une ligne apr\u00e8s",
+"Width": "Largeur",
+"Cell properties": "Propri\u00e9t\u00e9s de la cellule",
+"Left": "Gauche",
+"Cut row": "Couper la ligne",
+"Delete column": "Effacer la colonne",
+"Center": "Centr\u00e9",
+"Merge cells": "Fusionner les cellules",
+"Insert template": "Ajouter un th\u00e8me",
+"Templates": "Th\u00e8mes",
+"Background color": "Couleur d'arri\u00e8re-plan",
+"Text color": "Couleur du texte",
+"Show blocks": "Afficher les blocs",
+"Show invisible characters": "Afficher les caract\u00e8res invisibles",
+"Words: {0}": "Mots : {0}",
+"Insert": "Ins\u00e9rer",
+"File": "Fichier",
+"Edit": "Editer",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zone Texte Riche. Appuyer sur ALT-F9 pour le menu. Appuyer sur ALT-F10 pour la barre d'outils. Appuyer sur ALT-0 pour de l'aide.",
+"Tools": "Outils",
+"View": "Voir",
+"Table": "Tableau",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/gl.js b/framework/Web/Javascripts/source/tinymce-405/langs/gl.js
new file mode 100755
index 00000000..8d7f7069
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/gl.js
@@ -0,0 +1,156 @@
+tinymce.addI18n('gl',{
+"Cut": "Cortar",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "O seu navegador non admite o acceso directo ao portapapeis. Empregue os atallos de teclado Crtl+X\/C\/V no seu canto.",
+"Paste": "Pegar",
+"Close": "Pechar",
+"Align right": "Ali\u00f1ar \u00e1 dereita",
+"New document": "Novo documento",
+"Numbered list": "Lista numerada",
+"Increase indent": "Aumentar a sangr\u00eda",
+"Formats": "Formatos",
+"Select all": "Seleccionar todo",
+"Undo": "Desfacer",
+"Strikethrough": "Riscado",
+"Bullet list": "Lista vi\u00f1etada",
+"Superscript": "Super\u00edndice",
+"Clear formatting": "Limpar o formato",
+"Subscript": "Sub\u00edndice",
+"Redo": "Refacer",
+"Ok": "Aceptar",
+"Bold": "Negra",
+"Italic": "Cursiva",
+"Align center": "Ali\u00f1ar ao centro",
+"Decrease indent": "Reducir a sangr\u00eda",
+"Underline": "Subli\u00f1ado",
+"Cancel": "Cancelar",
+"Justify": "Xustificar",
+"Copy": "Copiar",
+"Align left": "Ali\u00f1ar \u00e1 esquerda",
+"Visual aids": "Axudas visuais",
+"Lower Greek": "Inferior grega",
+"Square": "Cadrado",
+"Default": "Predeterminada",
+"Lower Alpha": "Inferior alfa",
+"Circle": "Circulo",
+"Disc": "Disco",
+"Upper Alpha": "Superior alfa",
+"Upper Roman": "Superior romana",
+"Lower Roman": "Inferior romana",
+"Name": "Nome",
+"Anchor": "Ancoraxe",
+"You have unsaved changes are you sure you want to navigate away?": "Ten cambios sen gardar. Confirma que quere sa\u00edr?",
+"Restore last draft": "Restaurar o \u00faltimo borrador",
+"Special character": "Car\u00e1cter especial",
+"Source code": "C\u00f3digo fonte",
+"Right to left": "De dereita a esquerda",
+"Left to right": "De esquerda a dereita",
+"Emoticons": "Emoticonas",
+"Robots": "Robots",
+"Document properties": "Propiedades do documento",
+"Title": "T\u00edtulo",
+"Keywords": "Palabras clave",
+"Encoding": "Codificaci\u00f3n",
+"Description": "Descrici\u00f3n",
+"Author": "Autor",
+"Fullscreen": "Pantalla completa",
+"Horizontal line": "Li\u00f1a horizontal",
+"Horizontal space": "Espazo horizontal",
+"Insert\/edit image": "Inserir\/editar imaxe",
+"General": "Xeral",
+"Advanced": "Avanzado",
+"Source": "Orixe",
+"Border": "Bordo",
+"Constrain proportions": "Restrinxir as proporci\u00f3ns",
+"Vertical space": "Espazo vertical",
+"Image description": "Descrici\u00f3n da imaxe",
+"Style": "Estilo",
+"Dimensions": "Dimensi\u00f3ns",
+"Insert date\/time": "Inserir data\/hora",
+"Url": "URL",
+"Text to display": "Texto que amosar",
+"Insert link": "Inserir ligaz\u00f3n",
+"New window": "Nova xanela",
+"None": "Ning\u00fan",
+"Target": "Destino",
+"Insert\/edit link": "Inserir\/editar ligaz\u00f3n",
+"Insert\/edit video": "Inserir\/editar v\u00eddeo",
+"Poster": "Cartel",
+"Alternative source": "Orixe alternativa",
+"Paste your embed code below:": "Pegue embaixo o c\u00f3digo incrustado",
+"Insert video": "Inserir v\u00eddeo",
+"Embed": "Incrustado",
+"Nonbreaking space": "Espazo irromp\u00edbel",
+"Page break": "Quebra de p\u00e1xina",
+"Preview": "Vista previa",
+"Print": "Imprimir",
+"Save": "Gardar",
+"Could not find the specified string.": "Non foi pos\u00edbel atopar a cadea de texto especificada.",
+"Replace": "Substitu\u00edr",
+"Next": "Seguinte",
+"Whole words": "Palabras completas",
+"Find and replace": "Buscar e substitu\u00edr",
+"Replace with": "Substitu\u00edr con",
+"Find": "Buscar",
+"Replace all": "Substitu\u00edr todo",
+"Match case": "Coincidencia exacta",
+"Prev": "Anterior",
+"Spellcheck": "Corrector ortogr\u00e1fico",
+"Finish": "Rematar",
+"Ignore all": "Ignorar todo",
+"Ignore": "Ignorar",
+"Insert row before": "Inserir unha fila enriba",
+"Rows": "Filas",
+"Height": "Alto",
+"Paste row after": "Pegar fila enriba",
+"Alignment": "Ali\u00f1amento",
+"Column group": "Grupo de columnas",
+"Row": "Fila",
+"Insert column before": "Inserir columna \u00e1 esquerda",
+"Split cell": "Dividir celas",
+"Cell padding": "Marxe interior da cela",
+"Cell spacing": "Marxe entre celas",
+"Row type": "Tipo de fia",
+"Insert table": "Inserir t\u00e1boa",
+"Body": "Corpo",
+"Caption": "Subt\u00edtulo",
+"Footer": "Rodap\u00e9",
+"Delete row": "Eliminar fila",
+"Paste row before": "Pegar fila embaixo",
+"Scope": "\u00c1mbito",
+"Delete table": "Eliminar t\u00e1boa",
+"Header cell": "Cela de cabeceira",
+"Column": "Columna",
+"Cell": "Cela",
+"Header": "Cabeceira",
+"Cell type": "Tipo de cela",
+"Copy row": "Copiar fila",
+"Row properties": "Propiedades das filas",
+"Table properties": "Propiedades da t\u00e1boa",
+"Row group": "Grupo de filas",
+"Right": "Dereita",
+"Insert column after": "Inserir columna \u00e1 dereita",
+"Cols": "Cols.",
+"Insert row after": "Inserir unha fila embaixo",
+"Width": "Largo",
+"Cell properties": "Propiedades da cela",
+"Left": "Esquerda",
+"Cut row": "Cortar fila",
+"Delete column": "Eliminar columna",
+"Center": "Centro",
+"Merge cells": "Combinar celas",
+"Insert template": "Inserir modelo",
+"Templates": "Modelos",
+"Background color": "Cor do fondo",
+"Text color": "Cor do texto",
+"Show blocks": "Amosar os bloques",
+"Show invisible characters": "Amosar caracteres invis\u00edbeis",
+"Words: {0}": "Palabras: {0}",
+"Insert": "Inserir",
+"File": "Ficheiro",
+"Edit": "Editar",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto mellorado. Prema ALT-F9 para o men\u00fa. Prema ALT-F10 para a barra de ferramentas. Prema ALT-0 para a axuda",
+"Tools": "Ferramentas",
+"View": "Ver",
+"Table": "T\u00e1boa",
+"Format": "Formato"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/he_IL.js b/framework/Web/Javascripts/source/tinymce-405/langs/he_IL.js
new file mode 100755
index 00000000..b80ffc63
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/he_IL.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('he_IL',{
+"Cut": "\u05d2\u05d6\u05d5\u05e8",
+"Header 2": "\u05db\u05d5\u05ea\u05e8\u05ea 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da \u05d0\u05d9\u05e0\u05d5 \u05de\u05d0\u05e4\u05e9\u05e8 \u05d2\u05d9\u05e9\u05d4 \u05d9\u05e9\u05d9\u05e8\u05d4 \u05dc\u05dc\u05d5\u05d7. \u05d0\u05e0\u05d0, \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05de\u05e7\u05e9\u05d9\u05dd Ctrl+X\/C\/V ",
+"Div": "\u05de\u05e7\u05d8\u05e2 \u05e7\u05d5\u05d3 Div",
+"Paste": "\u05d4\u05d3\u05d1\u05e7",
+"Close": "\u05e1\u05d2\u05d5\u05e8",
+"Pre": "\u05e7\u05d8\u05e2 \u05de\u05e7\u05d3\u05d9\u05dd Pre",
+"Align right": "\u05d9\u05d9\u05e9\u05e8 \u05dc\u05e9\u05de\u05d0\u05dc",
+"New document": "\u05de\u05e1\u05de\u05da \u05d7\u05d3\u05e9",
+"Blockquote": "\u05de\u05e7\u05d8\u05e2 \u05e6\u05d9\u05d8\u05d5\u05d8",
+"Numbered list": "\u05e8\u05e9\u05d9\u05de\u05d4 \u05de\u05de\u05d5\u05e1\u05e4\u05e8\u05ea",
+"Increase indent": "\u05d4\u05d2\u05d3\u05dc \u05d4\u05d6\u05d7\u05d4",
+"Formats": "\u05e4\u05d5\u05e8\u05de\u05d8\u05d9\u05dd",
+"Headers": "\u05db\u05d5\u05ea\u05e8\u05d5\u05ea",
+"Select all": "\u05d1\u05d7\u05e8 \u05d4\u05db\u05dc",
+"Header 3": "\u05db\u05d5\u05ea\u05e8\u05ea 3",
+"Blocks": "\u05de\u05d1\u05e0\u05d9\u05dd",
+"Undo": "\u05d1\u05d8\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4",
+"Strikethrough": "\u05e7\u05d5 \u05d7\u05d5\u05e6\u05d4",
+"Bullet list": "\u05e8\u05e9\u05d9\u05de\u05d4 \u05de\u05d5\u05d3\u05d2\u05e9\u05ea",
+"Header 1": "\u05db\u05d5\u05ea\u05e8\u05ea 1",
+"Superscript": "\u05db\u05ea\u05d1 \u05e2\u05d9\u05dc\u05d9",
+"Clear formatting": "\u05e0\u05e7\u05d4 \u05e4\u05d5\u05e8\u05de\u05d8\u05d9\u05dd",
+"Subscript": "\u05db\u05ea\u05d1 \u05ea\u05d7\u05ea\u05d9",
+"Header 6": "\u05db\u05d5\u05ea\u05e8\u05ea 6",
+"Redo": "\u05d1\u05e6\u05e2 \u05e9\u05d5\u05d1",
+"Paragraph": "\u05e4\u05d9\u05e1\u05e7\u05d4",
+"Ok": "\u05d1\u05e1\u05d3\u05e8",
+"Bold": "\u05de\u05d5\u05d3\u05d2\u05e9",
+"Code": "\u05e7\u05d5\u05d3",
+"Italic": "\u05e0\u05d8\u05d5\u05d9",
+"Align center": "\u05de\u05e8\u05db\u05d6",
+"Header 5": "\u05db\u05d5\u05ea\u05e8\u05ea 5",
+"Decrease indent": "\u05d4\u05e7\u05d8\u05df \u05d4\u05d6\u05d7\u05d4",
+"Header 4": "\u05db\u05d5\u05ea\u05e8\u05ea 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u05d4\u05d3\u05d1\u05e7\u05d4 \u05d1\u05de\u05e6\u05d1 \u05d8\u05e7\u05e1\u05d8 \u05e8\u05d2\u05d9\u05dc. \u05ea\u05db\u05e0\u05d9\u05dd \u05d9\u05d5\u05d3\u05d1\u05e7\u05d5 \u05de\u05e2\u05ea\u05d4 \u05db\u05d8\u05e7\u05e1\u05d8 \u05e8\u05d2\u05d9\u05dc \u05e2\u05d3 \u05e9\u05ea\u05db\u05d1\u05d4 \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05d6\u05d5.",
+"Underline": "\u05e7\u05d5 \u05ea\u05d7\u05ea\u05d5\u05df",
+"Cancel": "\u05d1\u05d8\u05dc",
+"Justify": "\u05d9\u05d9\u05e9\u05d5\u05e8",
+"Inline": "\u05d1\u05d2\u05d5\u05e3 \u05d4\u05d8\u05e7\u05e1\u05d8",
+"Copy": "\u05d4\u05e2\u05ea\u05e7",
+"Align left": "\u05d9\u05d9\u05e9\u05e8 \u05dc\u05e9\u05de\u05d0\u05dc",
+"Visual aids": "\u05e2\u05d6\u05e8\u05d9\u05dd \u05d7\u05d6\u05d5\u05ea\u05d9\u05d9\u05dd",
+"Lower Greek": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d9\u05d5\u05d5\u05e0\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea",
+"Square": "\u05e8\u05d9\u05d1\u05d5\u05e2",
+"Default": "\u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc",
+"Lower Alpha": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d0\u05e0\u05d2\u05dc\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea",
+"Circle": "\u05e2\u05d9\u05d2\u05d5\u05dc",
+"Disc": "\u05d7\u05d9\u05e9\u05d5\u05e7",
+"Upper Alpha": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d0\u05e0\u05d2\u05dc\u05d9\u05d5\u05ea \u05d2\u05d3\u05d5\u05dc\u05d5\u05ea",
+"Upper Roman": "\u05e1\u05e4\u05e8\u05d5\u05ea \u05e8\u05d5\u05de\u05d9\u05d5\u05ea \u05d2\u05d3\u05d5\u05dc\u05d5\u05ea",
+"Lower Roman": "\u05e1\u05e4\u05e8\u05d5\u05ea \u05e8\u05d5\u05de\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea",
+"Name": "\u05e9\u05dd",
+"Anchor": "\u05de\u05e7\u05d5\u05dd \u05e2\u05d9\u05d2\u05d5\u05df",
+"You have unsaved changes are you sure you want to navigate away?": "\u05d4\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05dc\u05d0 \u05e0\u05e9\u05de\u05e8\u05d5. \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05e6\u05d0\u05ea \u05de\u05d4\u05d3\u05e3?",
+"Restore last draft": "\u05e9\u05d7\u05d6\u05e8 \u05d8\u05d9\u05d5\u05d8\u05d4 \u05d0\u05d7\u05e8\u05d5\u05e0\u05d4",
+"Special character": "\u05ea\u05d5\u05d5\u05d9\u05dd \u05de\u05d9\u05d5\u05d7\u05d3\u05d9\u05dd",
+"Source code": "\u05e7\u05d5\u05d3 \u05de\u05e7\u05d5\u05e8",
+"Right to left": "\u05de\u05d9\u05de\u05d9\u05df \u05dc\u05e9\u05de\u05d0\u05dc",
+"Left to right": "\u05de\u05e9\u05de\u05d0\u05dc \u05dc\u05d9\u05de\u05d9\u05df",
+"Emoticons": "\u05de\u05d7\u05d5\u05d5\u05ea",
+"Robots": "\u05e8\u05d5\u05d1\u05d5\u05d8\u05d9\u05dd",
+"Document properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05de\u05e1\u05de\u05da",
+"Title": "\u05db\u05d5\u05ea\u05e8\u05ea",
+"Keywords": "\u05de\u05d9\u05dc\u05d5\u05ea \u05de\u05e4\u05ea\u05d7",
+"Encoding": "\u05e7\u05d9\u05d3\u05d5\u05d3",
+"Description": "\u05ea\u05d9\u05d0\u05d5\u05e8",
+"Author": "\u05de\u05d7\u05d1\u05e8",
+"Fullscreen": "\u05de\u05e1\u05da \u05de\u05dc\u05d0",
+"Horizontal line": "\u05e7\u05d5 \u05d0\u05d5\u05e4\u05e7\u05d9",
+"Horizontal space": "\u05de\u05e8\u05d5\u05d5\u05d7 \u05d0\u05d5\u05e4\u05e7\u05d9",
+"Insert\/edit image": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05ea\u05de\u05d5\u05e0\u05d4",
+"General": "\u05db\u05dc\u05dc\u05d9",
+"Advanced": "\u05de\u05ea\u05e7\u05d3\u05dd",
+"Source": "\u05de\u05e7\u05d5\u05e8",
+"Border": "\u05de\u05e1\u05d2\u05e8\u05ea",
+"Constrain proportions": "\u05d4\u05d2\u05d1\u05dc\u05ea \u05e4\u05e8\u05d5\u05e4\u05d5\u05e8\u05e6\u05d9\u05d5\u05ea",
+"Vertical space": "\u05de\u05e8\u05d5\u05d5\u05d7 \u05d0\u05e0\u05db\u05d9",
+"Image description": "\u05ea\u05d9\u05d0\u05d5\u05e8 \u05d4\u05ea\u05de\u05d5\u05e0\u05d4",
+"Style": "\u05e1\u05d2\u05e0\u05d5\u05df",
+"Dimensions": "\u05de\u05d9\u05de\u05d3\u05d9\u05dd",
+"Insert image": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05de\u05d5\u05e0\u05d4",
+"Insert date\/time": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05d0\u05e8\u05d9\u05da\/\u05e9\u05e2\u05d4",
+"Remove link": "\u05de\u05d7\u05e7 \u05e7\u05d9\u05e9\u05d5\u05e8",
+"Url": "\u05db\u05ea\u05d5\u05d1\u05ea \u05e7\u05d9\u05e9\u05d5\u05e8",
+"Text to display": "\u05d8\u05e7\u05e1\u05d8 \u05dc\u05d4\u05e6\u05d2\u05d4",
+"Anchors": "\u05e2\u05d5\u05d2\u05e0\u05d9\u05dd",
+"Insert link": "\u05d4\u05db\u05e0\u05e1 \u05e7\u05d9\u05e9\u05d5\u05e8",
+"New window": "\u05d7\u05dc\u05d5\u05df \u05d7\u05d3\u05e9",
+"None": "\u05dc\u05dc\u05d0",
+"Target": "\u05de\u05d8\u05e8\u05d4",
+"Insert\/edit link": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05e7\u05d9\u05e9\u05d5\u05e8",
+"Insert\/edit video": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05e1\u05e8\u05d8\u05d5\u05df",
+"Poster": "\u05e4\u05d5\u05e1\u05d8\u05e8",
+"Alternative source": "\u05de\u05e7\u05d5\u05e8 \u05de\u05e9\u05e0\u05d9",
+"Paste your embed code below:": "\u05d4\u05d3\u05d1\u05e7 \u05e7\u05d5\u05d3 \u05d4\u05d8\u05de\u05e2\u05d4 \u05de\u05ea\u05d7\u05ea:",
+"Insert video": "\u05d4\u05db\u05e0\u05e1 \u05e1\u05e8\u05d8\u05d5\u05df",
+"Embed": "\u05de\u05d5\u05d8\u05de\u05e2",
+"Nonbreaking space": "\u05e8\u05d5\u05d5\u05d7 (\u05dc\u05dc\u05d0 \u05e9\u05d1\u05d9\u05e8\u05ea \u05e9\u05d5\u05e8\u05d4)",
+"Page break": "\u05d3\u05e3 \u05d7\u05d3\u05e9",
+"Paste as text": "\u05d4\u05d3\u05d1\u05e7 \u05db\u05d8\u05e7\u05e1\u05d8",
+"Preview": "\u05ea\u05e6\u05d5\u05d2\u05d4 \u05de\u05e7\u05d3\u05d9\u05de\u05d4",
+"Print": "\u05d4\u05d3\u05e4\u05e1",
+"Save": "\u05e9\u05de\u05d9\u05e8\u05d4",
+"Could not find the specified string.": "\u05de\u05d7\u05e8\u05d5\u05d6\u05ea \u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d4",
+"Replace": "\u05d4\u05d7\u05dc\u05e3",
+"Next": "\u05d4\u05d1\u05d0",
+"Whole words": "\u05de\u05d9\u05dc\u05d4 \u05e9\u05dc\u05de\u05d4",
+"Find and replace": "\u05d7\u05e4\u05e9 \u05d5\u05d4\u05d7\u05dc\u05e3",
+"Replace with": "\u05d4\u05d7\u05dc\u05e3 \u05d1",
+"Find": "\u05d7\u05e4\u05e9",
+"Replace all": "\u05d4\u05d7\u05dc\u05e3 \u05d4\u05db\u05dc",
+"Match case": "\u05d4\u05d1\u05d7\u05df \u05d1\u05d9\u05df \u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea \u05dc\u05d2\u05d3\u05d5\u05dc\u05d5\u05ea",
+"Prev": "\u05e7\u05d5\u05d3\u05dd",
+"Spellcheck": "\u05d1\u05d5\u05d3\u05e7 \u05d0\u05d9\u05d5\u05ea",
+"Finish": "\u05e1\u05d9\u05d9\u05dd",
+"Ignore all": "\u05d4\u05ea\u05e2\u05dc\u05dd \u05de\u05d4\u05db\u05dc",
+"Ignore": "\u05d4\u05ea\u05e2\u05dc\u05dd",
+"Insert row before": "\u05d4\u05d5\u05e1\u05e3 \u05e9\u05d5\u05e8\u05d4 \u05dc\u05e4\u05e0\u05d9",
+"Rows": "\u05e9\u05d5\u05e8\u05d5\u05ea",
+"Height": "\u05d2\u05d5\u05d1\u05d4",
+"Paste row after": "\u05d4\u05e2\u05ea\u05e7 \u05e9\u05d5\u05e8\u05d4 \u05d0\u05d7\u05e8\u05d9",
+"Alignment": "\u05d9\u05d9\u05e9\u05d5\u05e8",
+"Column group": "\u05e7\u05d9\u05d1\u05d5\u05e5 \u05e2\u05de\u05d5\u05d3\u05d5\u05ea",
+"Row": "\u05e9\u05d5\u05e8\u05d4",
+"Insert column before": "\u05d4\u05e2\u05ea\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4 \u05dc\u05e4\u05e0\u05d9",
+"Split cell": "\u05e4\u05e6\u05dc \u05ea\u05d0",
+"Cell padding": "\u05e9\u05d5\u05dc\u05d9\u05d9\u05dd \u05e4\u05e0\u05d9\u05de\u05d9\u05d9\u05dd \u05dc\u05ea\u05d0",
+"Cell spacing": "\u05e9\u05d5\u05dc\u05d9\u05d9\u05dd \u05d7\u05d9\u05e6\u05d5\u05e0\u05d9\u05dd \u05dc\u05ea\u05d0",
+"Row type": "\u05e1\u05d5\u05d2 \u05e9\u05d5\u05e8\u05d4",
+"Insert table": "\u05d4\u05db\u05e0\u05e1 \u05d8\u05d1\u05dc\u05d4",
+"Body": "\u05d2\u05d5\u05e3 \u05d4\u05d8\u05d1\u05dc\u05d0",
+"Caption": "\u05db\u05d9\u05ea\u05d5\u05d1",
+"Footer": "\u05db\u05d5\u05ea\u05e8\u05ea \u05ea\u05d7\u05ea\u05d5\u05e0\u05d4",
+"Delete row": "\u05de\u05d7\u05e7 \u05e9\u05d5\u05e8\u05d4",
+"Paste row before": "\u05d4\u05d3\u05d1\u05e7 \u05e9\u05d5\u05e8\u05d4 \u05dc\u05e4\u05e0\u05d9",
+"Scope": "\u05d4\u05d9\u05e7\u05e3",
+"Delete table": "\u05de\u05d7\u05e7 \u05d8\u05d1\u05dc\u05d4",
+"Header cell": "\u05db\u05d5\u05ea\u05e8\u05ea \u05dc\u05ea\u05d0",
+"Column": "\u05e2\u05de\u05d5\u05d3\u05d4",
+"Cell": "\u05ea\u05d0",
+"Header": "\u05db\u05d5\u05ea\u05e8\u05ea",
+"Cell type": "\u05e1\u05d5\u05d2 \u05ea\u05d0",
+"Copy row": "\u05d4\u05e2\u05ea\u05e7 \u05e9\u05d5\u05e8\u05d4",
+"Row properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05e9\u05d5\u05e8\u05d4",
+"Table properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05d8\u05d1\u05dc\u05d4",
+"Row group": "\u05e7\u05d9\u05d1\u05d5\u05e5 \u05e9\u05d5\u05e8\u05d5\u05ea",
+"Right": "\u05d9\u05de\u05d9\u05df",
+"Insert column after": "\u05d4\u05e2\u05ea\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4 \u05d0\u05d7\u05e8\u05d9",
+"Cols": "\u05e2\u05de\u05d5\u05d3\u05d5\u05ea",
+"Insert row after": "\u05d4\u05d5\u05e1\u05e3 \u05e9\u05d5\u05e8\u05d4 \u05d0\u05d7\u05e8\u05d9",
+"Width": "\u05e8\u05d5\u05d7\u05d1",
+"Cell properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05ea\u05d0",
+"Left": "\u05e9\u05de\u05d0\u05dc",
+"Cut row": "\u05d2\u05d6\u05d5\u05e8 \u05e9\u05d5\u05e8\u05d4",
+"Delete column": "\u05de\u05d7\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4",
+"Center": "\u05de\u05e8\u05db\u05d6",
+"Merge cells": "\u05de\u05d6\u05d2 \u05ea\u05d0\u05d9\u05dd",
+"Insert template": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05d1\u05e0\u05d9\u05ea",
+"Templates": "\u05ea\u05d1\u05e0\u05d9\u05d5\u05ea",
+"Background color": "\u05e6\u05d1\u05e2 \u05e8\u05e7\u05e2",
+"Text color": "\u05e6\u05d1\u05e2 \u05d4\u05db\u05ea\u05d1",
+"Show blocks": "\u05d4\u05e6\u05d2 \u05ea\u05d9\u05d1\u05d5\u05ea",
+"Show invisible characters": "\u05d4\u05e6\u05d2 \u05ea\u05d5\u05d5\u05d9\u05dd \u05dc\u05d0 \u05e0\u05e8\u05d0\u05d9\u05dd",
+"Words: {0}": "\u05de\u05d9\u05dc\u05d9\u05dd: {0}",
+"Insert": "\u05d4\u05d5\u05e1\u05e3",
+"File": "\u05e7\u05d5\u05d1\u05e5",
+"Edit": "\u05e2\u05e8\u05d5\u05da",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u05ea\u05d9\u05d1\u05ea \u05e2\u05e8\u05d9\u05db\u05d4 \u05d7\u05db\u05de\u05d4. \u05dc\u05d7\u05e5 Alt-F9 \u05dc\u05ea\u05e4\u05e8\u05d9\u05d8. Alt-F10 \u05dc\u05ea\u05e6\u05d5\u05d2\u05ea \u05db\u05e4\u05ea\u05d5\u05e8\u05d9\u05dd, Alt-0 \u05dc\u05e2\u05d6\u05e8\u05d4",
+"Tools": "\u05db\u05dc\u05d9\u05dd",
+"View": "\u05ea\u05e6\u05d5\u05d2\u05d4",
+"Table": "\u05d8\u05d1\u05dc\u05d4",
+"Format": "\u05e4\u05d5\u05e8\u05de\u05d8"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/hr.js b/framework/Web/Javascripts/source/tinymce-405/langs/hr.js
new file mode 100755
index 00000000..81924b36
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/hr.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('hr',{
+"Cut": "Izre\u017ei",
+"Header 2": "Zaglavlje 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Va\u0161 preglednik ne podr\u017eava direktan pristup me\u0111uspremniku. Molimo Vas da umjesto toga koristite tipkovni\u010dke kratice Ctrl+X\/C\/V.",
+"Div": "DIV",
+"Paste": "Zalijepi",
+"Close": "Zatvori",
+"Pre": "PRE",
+"Align right": "Poravnaj desno",
+"New document": "Novi dokument",
+"Blockquote": "BLOCKQUOTE",
+"Numbered list": "Numerirana lista",
+"Increase indent": "Pove\u0107aj uvla\u010denje",
+"Formats": "Formati",
+"Headers": "Zaglavlja",
+"Select all": "Ozna\u010di sve",
+"Header 3": "Zaglavlje 3",
+"Blocks": "Blokovi",
+"Undo": "Poni\u0161ti",
+"Strikethrough": "Crta kroz sredinu",
+"Bullet list": "Lista",
+"Header 1": "Zaglavlje 1",
+"Superscript": "Natpis",
+"Clear formatting": "Ukloni oblikovanje",
+"Subscript": "Potpis",
+"Header 6": "Zaglavlje 6",
+"Redo": "Vrati",
+"Paragraph": "Paragraf",
+"Ok": "Uredu",
+"Bold": "Masna",
+"Code": "CODE oznaka",
+"Italic": "Kurziv",
+"Align center": "Poravnaj po sredini",
+"Header 5": "Zaglavlje 5",
+"Decrease indent": "Smanji uvla\u010denje",
+"Header 4": "Zaglavlje 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Akcija zalijepi od sada lijepi \u010disti tekst. Sadr\u017eaj \u0107e biti zaljepljen kao \u010disti tekst sve dok ne isklju\u010dite ovu opciju.",
+"Underline": "Crta ispod",
+"Cancel": "Odustani",
+"Justify": "Obostrano poravnanje",
+"Inline": "Unutarnje",
+"Copy": "Kopiraj",
+"Align left": "Poravnaj lijevo",
+"Visual aids": "Vizualna pomo\u0107",
+"Lower Greek": "Mala gr\u010dka slova",
+"Square": "Kvadrat",
+"Default": "Zadano",
+"Lower Alpha": "Mala slova",
+"Circle": "Krug",
+"Disc": "To\u010dka",
+"Upper Alpha": "Velika slova",
+"Upper Roman": "Velika rimska slova",
+"Lower Roman": "Mala rimska slova",
+"Name": "Ime",
+"Anchor": "Sidro",
+"You have unsaved changes are you sure you want to navigate away?": "Postoje ne pohranjene izmjene, jeste li sigurni da \u017eelite oti\u0107i?",
+"Restore last draft": "Vrati posljednju skicu",
+"Special character": "Poseban znak",
+"Source code": "Izvorni kod",
+"Right to left": "S desna na lijevo",
+"Left to right": "S lijeva na desno",
+"Emoticons": "Emotikoni",
+"Robots": "Roboti pretra\u017eiva\u010da",
+"Document properties": "Svojstva dokumenta",
+"Title": "Naslov",
+"Keywords": "Klju\u010dne rije\u010di",
+"Encoding": "Kodna stranica",
+"Description": "Opis",
+"Author": "Autor",
+"Fullscreen": "Cijeli ekran",
+"Horizontal line": "Horizontalna linija",
+"Horizontal space": "Horizontalan razmak",
+"Insert\/edit image": "Umetni\/izmijeni sliku",
+"General": "Op\u0107enito",
+"Advanced": "Napredno",
+"Source": "Izvor",
+"Border": "Rub",
+"Constrain proportions": "Zadr\u017ei proporcije",
+"Vertical space": "Okomit razmak",
+"Image description": "Opis slike",
+"Style": "Stil",
+"Dimensions": "Dimenzije",
+"Insert image": "Umetni sliku",
+"Insert date\/time": "Umetni datum\/vrijeme",
+"Remove link": "Ukloni poveznicu",
+"Url": "Url",
+"Text to display": "Tekst za prikaz",
+"Anchors": "Kra\u0107e poveznice",
+"Insert link": "Umetni poveznicu",
+"New window": "Novi prozor",
+"None": "Ni\u0161ta",
+"Target": "Meta",
+"Insert\/edit link": "Umetni\/izmijeni poveznicu",
+"Insert\/edit video": "Umetni\/izmijeni video",
+"Poster": "Poster",
+"Alternative source": "Alternativni izvor",
+"Paste your embed code below:": "Umetnite va\u0161 kod za ugradnju ispod:",
+"Insert video": "Umetni video",
+"Embed": "Ugradi",
+"Nonbreaking space": "Neprekidaju\u0107i razmak",
+"Page break": "Prijelom stranice",
+"Paste as text": "Zalijepi kao tekst",
+"Preview": "Pregled",
+"Print": "Ispis",
+"Save": "Spremi",
+"Could not find the specified string.": "Tra\u017eeni tekst nije prona\u0111en",
+"Replace": "Zamijeni",
+"Next": "Slijede\u0107i",
+"Whole words": "Cijele rije\u010di",
+"Find and replace": "Prona\u0111i i zamijeni",
+"Replace with": "Zamijeni s",
+"Find": "Tra\u017ei",
+"Replace all": "Zamijeni sve",
+"Match case": "Pazi na mala i velika slova",
+"Prev": "Prethodni",
+"Spellcheck": "Provjeri pravopis",
+"Finish": "Zavr\u0161i",
+"Ignore all": "Zanemari sve",
+"Ignore": "Zanemari",
+"Insert row before": "Umetni redak prije",
+"Rows": "Redci",
+"Height": "Visina",
+"Paste row after": "Zalijepi redak nakon",
+"Alignment": "Poravnanje",
+"Column group": "Grupirani stupci",
+"Row": "Redak",
+"Insert column before": "Umetni stupac prije",
+"Split cell": "Razdvoji polja",
+"Cell padding": "Razmak unutar polja",
+"Cell spacing": "Razmak izme\u0111u polja",
+"Row type": "Vrsta redka",
+"Insert table": "Umetni tablicu",
+"Body": "Sadr\u017eaj",
+"Caption": "Natpis",
+"Footer": "Podno\u017eje",
+"Delete row": "Izbri\u0161i redak",
+"Paste row before": "Zalijepi redak prije",
+"Scope": "Doseg",
+"Delete table": "Izbri\u0161i tablicu",
+"Header cell": "Polje zaglavlja",
+"Column": "Stupac",
+"Cell": "Polje",
+"Header": "Zaglavlje",
+"Cell type": "Vrsta polja",
+"Copy row": "Kopiraj redak",
+"Row properties": "Svojstva redka",
+"Table properties": "Svojstva tablice",
+"Row group": "Grupirani redci",
+"Right": "Desno",
+"Insert column after": "Umetni stupac nakon",
+"Cols": "Stupci",
+"Insert row after": "Umetni redak nakon",
+"Width": "\u0160irina",
+"Cell properties": "Svojstva polja",
+"Left": "Lijevo",
+"Cut row": "Izre\u017ei redak",
+"Delete column": "Izbri\u0161i stupac",
+"Center": "Sredina",
+"Merge cells": "Spoji polja",
+"Insert template": "Umetni predlo\u017eak",
+"Templates": "Predlo\u0161ci",
+"Background color": "Boja pozadine",
+"Text color": "Boja teksta",
+"Show blocks": "Prika\u017ei blokove",
+"Show invisible characters": "Prika\u017ei nevidljive znakove",
+"Words: {0}": "Rije\u010di: {0}",
+"Insert": "Umetni",
+"File": "Datoteka",
+"Edit": "Izmijeni",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Pritisni ALT-F9 za izbornik. Pritisni ALT-F10 za alatnu traku. Pritisni ALT-0 za pomo\u0107",
+"Tools": "Alati",
+"View": "Pogled",
+"Table": "Tablica",
+"Format": "Oblikuj"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/hu_HU.js b/framework/Web/Javascripts/source/tinymce-405/langs/hu_HU.js
new file mode 100755
index 00000000..e3705cae
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/hu_HU.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('hu_HU',{
+"Cut": "Kiv\u00e1g\u00e1s",
+"Header 2": "C\u00edmsor 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "A b\u00f6ng\u00e9sz\u0151d nem t\u00e1mogatja a k\u00f6zvetlen hozz\u00e1f\u00e9r\u00e9st a v\u00e1g\u00f3laphoz. K\u00e9rlek haszn\u00e1ld a Ctrl+X\/C\/V billenty\u0171ket.",
+"Div": "Div",
+"Paste": "Beilleszt\u00e9s",
+"Close": "Bez\u00e1r",
+"Pre": "El\u0151",
+"Align right": "Jobbra igaz\u00edt",
+"New document": "\u00daj dokumentum",
+"Blockquote": "Id\u00e9zetblokk",
+"Numbered list": "Sz\u00e1moz\u00e1s",
+"Increase indent": "Beh\u00faz\u00e1s n\u00f6vel\u00e9se",
+"Formats": "Form\u00e1tumok",
+"Headers": "C\u00edmsorok",
+"Select all": "Minden kijel\u00f6l\u00e9se",
+"Header 3": "C\u00edmsor 3",
+"Blocks": "Blokkok",
+"Undo": "Visszavon\u00e1s",
+"Strikethrough": "\u00c1th\u00fazott",
+"Bullet list": "Felsorol\u00e1s",
+"Header 1": "C\u00edmsor 1",
+"Superscript": "Fels\u0151 index",
+"Clear formatting": "Form\u00e1z\u00e1s t\u00f6rl\u00e9se",
+"Subscript": "Als\u00f3 index",
+"Header 6": "C\u00edmsor 6",
+"Redo": "Ism\u00e9t",
+"Paragraph": "Bekezd\u00e9s",
+"Ok": "Rendben",
+"Bold": "F\u00e9lk\u00f6v\u00e9r",
+"Code": "K\u00f3d",
+"Italic": "D\u0151lt",
+"Align center": "K\u00f6z\u00e9pre z\u00e1r",
+"Header 5": "C\u00edmsor 5",
+"Decrease indent": "Beh\u00faz\u00e1s cs\u00f6kkent\u00e9se",
+"Header 4": "C\u00edmsor 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Beilleszt\u00e9s mostant\u00f3l egyszer\u0171 sz\u00f6veg m\u00f3dban. A tartalmak mostant\u00f3l egyszer\u0171 sz\u00f6vegk\u00e9nt lesznek beillesztve, am\u00edg nem kapcsolod ki ezt az opci\u00f3t.",
+"Underline": "Al\u00e1h\u00fazott",
+"Cancel": "M\u00e9gse",
+"Justify": "Sorkiz\u00e1r\u00e1s",
+"Inline": "Vonalon bel\u00fcl",
+"Copy": "M\u00e1sol\u00e1s",
+"Align left": "Balra igaz\u00edt",
+"Visual aids": "Vizu\u00e1lis seg\u00e9deszk\u00f6z\u00f6k",
+"Lower Greek": "Kis g\u00f6r\u00f6g sz\u00e1m",
+"Square": "N\u00e9gyzet",
+"Default": "Alap\u00e9rtelmezett",
+"Lower Alpha": "Kisbet\u0171",
+"Circle": "K\u00f6r",
+"Disc": "Pont",
+"Upper Alpha": "Nagybet\u0171",
+"Upper Roman": "Nagy r\u00f3mai sz\u00e1m",
+"Lower Roman": "Kis r\u00f3mai sz\u00e1m",
+"Name": "N\u00e9v",
+"Anchor": "Horgony",
+"You have unsaved changes are you sure you want to navigate away?": "Nem mentett m\u00f3dos\u00edt\u00e1said vannak, biztos hogy el akarsz navig\u00e1lni?",
+"Restore last draft": "Utols\u00f3 piszkozat vissza\u00e1ll\u00edt\u00e1sa",
+"Special character": "Speci\u00e1lis karakter",
+"Source code": "Forr\u00e1sk\u00f3d",
+"Right to left": "Jobbr\u00f3l balra",
+"Left to right": "Balr\u00f3l jobbra",
+"Emoticons": "Mosolyok",
+"Robots": "Robotok",
+"Document properties": "Dokumentum tulajdons\u00e1gai",
+"Title": "C\u00edm",
+"Keywords": "Kulcsszavak",
+"Encoding": "K\u00f3dol\u00e1s",
+"Description": "Le\u00edr\u00e1s",
+"Author": "Szerz\u0151",
+"Fullscreen": "Teljes k\u00e9perny\u0151",
+"Horizontal line": "V\u00edzszintes vonal",
+"Horizontal space": "Horizont\u00e1lis hely",
+"Insert\/edit image": "K\u00e9p beilleszt\u00e9se\/szerkeszt\u00e9se",
+"General": "\u00c1ltal\u00e1nos",
+"Advanced": "Halad\u00f3",
+"Source": "Forr\u00e1s",
+"Border": "Szeg\u00e9ly",
+"Constrain proportions": "M\u00e9retar\u00e1ny",
+"Vertical space": "Vertik\u00e1lis hely",
+"Image description": "K\u00e9p le\u00edr\u00e1sa",
+"Style": "St\u00edlus",
+"Dimensions": "M\u00e9retek",
+"Insert image": "K\u00e9p besz\u00far\u00e1sa",
+"Insert date\/time": "D\u00e1tum\/id\u0151 beilleszt\u00e9se",
+"Remove link": "Hivatkoz\u00e1s t\u00f6rl\u00e9se",
+"Url": "Url",
+"Text to display": "Megjelen\u0151 sz\u00f6veg",
+"Anchors": "Horgonyok",
+"Insert link": "Link beilleszt\u00e9se",
+"New window": "\u00daj ablak",
+"None": "Nincs",
+"Target": "C\u00e9l",
+"Insert\/edit link": "Link beilleszt\u00e9se\/szerkeszt\u00e9se",
+"Insert\/edit video": "Vide\u00f3 beilleszt\u00e9se\/szerkeszt\u00e9se",
+"Poster": "El\u0151n\u00e9zeti k\u00e9p",
+"Alternative source": "Alternat\u00edv forr\u00e1s",
+"Paste your embed code below:": "Illeszd be a be\u00e1gyaz\u00f3 k\u00f3dot alulra:",
+"Insert video": "Vide\u00f3 beilleszt\u00e9se",
+"Embed": "Be\u00e1gyaz",
+"Nonbreaking space": "Nem t\u00f6rhet\u0151 hely",
+"Page break": "Oldalt\u00f6r\u00e9s",
+"Paste as text": "Beilleszt\u00e9s sz\u00f6vegk\u00e9nt",
+"Preview": "El\u0151n\u00e9zet",
+"Print": "Nyomtat\u00e1s",
+"Save": "Ment\u00e9s",
+"Could not find the specified string.": "A be\u00edrt kifejez\u00e9s nem tal\u00e1lhat\u00f3.",
+"Replace": "Csere",
+"Next": "K\u00f6vetkez\u0151",
+"Whole words": "Csak ha ez a teljes sz\u00f3",
+"Find and replace": "Keres\u00e9s \u00e9s csere",
+"Replace with": "Csere erre",
+"Find": "Keres\u00e9s",
+"Replace all": "Az \u00f6sszes cser\u00e9je",
+"Match case": "Teljes egyez\u00e9s",
+"Prev": "El\u0151z\u0151",
+"Spellcheck": "Helyes\u00edr\u00e1s ellen\u0151rz\u00e9s",
+"Finish": "Befejez\u00e9s",
+"Ignore all": "Mindent figyelmen k\u00edv\u00fcl hagy",
+"Ignore": "Figyelmen k\u00edv\u00fcl hagy",
+"Insert row before": "Sor besz\u00far\u00e1sa el\u00e9",
+"Rows": "Sorok",
+"Height": "Magass\u00e1g",
+"Paste row after": "Sor beilleszt\u00e9se m\u00f6g\u00e9",
+"Alignment": "Igaz\u00edt\u00e1s",
+"Column group": "Oszlop csoport",
+"Row": "Sor",
+"Insert column before": "Oszlop besz\u00far\u00e1sa el\u00e9",
+"Split cell": "Cell\u00e1k sz\u00e9tv\u00e1laszt\u00e1sa",
+"Cell padding": "Cella m\u00e9rete",
+"Cell spacing": "Cell\u00e1k t\u00e1vols\u00e1ga",
+"Row type": "Sor t\u00edpus",
+"Insert table": "T\u00e1bl\u00e1zat beilleszt\u00e9se",
+"Body": "Sz\u00f6vegt\u00f6rzs",
+"Caption": "Felirat",
+"Footer": "L\u00e1bl\u00e9c",
+"Delete row": "Sor t\u00f6rl\u00e9se",
+"Paste row before": "Sor beilleszt\u00e9se el\u00e9",
+"Scope": "Hat\u00f3k\u00f6r",
+"Delete table": "T\u00e1bl\u00e1zat t\u00f6rl\u00e9se",
+"Header cell": "Fejl\u00e9c cella",
+"Column": "Oszlop",
+"Cell": "Cella",
+"Header": "Fejl\u00e9c",
+"Cell type": "Cella t\u00edpusa",
+"Copy row": "Sor m\u00e1sol\u00e1sa",
+"Row properties": "Sor tulajdons\u00e1gai",
+"Table properties": "T\u00e1bl\u00e1zat tulajdons\u00e1gok",
+"Row group": "Sor csoport",
+"Right": "Jobb",
+"Insert column after": "Oszlop besz\u00far\u00e1sa m\u00f6g\u00e9",
+"Cols": "Oszlopok",
+"Insert row after": "Sor besz\u00far\u00e1sa m\u00f6g\u00e9",
+"Width": "Sz\u00e9less\u00e9g",
+"Cell properties": "Cella tulajdons\u00e1gok",
+"Left": "Bal",
+"Cut row": "Sor kiv\u00e1g\u00e1sa",
+"Delete column": "Oszlop t\u00f6rl\u00e9se",
+"Center": "K\u00f6z\u00e9p",
+"Merge cells": "Cell\u00e1k egyes\u00edt\u00e9se",
+"Insert template": "Sablon beilleszt\u00e9se",
+"Templates": "Sablonok",
+"Background color": "H\u00e1tt\u00e9r sz\u00edn",
+"Text color": "Sz\u00f6veg sz\u00edne",
+"Show blocks": "Blokkok mutat\u00e1sa",
+"Show invisible characters": "L\u00e1thatatlan karakterek mutat\u00e1sa",
+"Words: {0}": "Szavak: {0}",
+"Insert": "Beilleszt\u00e9s",
+"File": "F\u00e1jl",
+"Edit": "Szerkeszt\u00e9s",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text ter\u00fclet. Nyomj ALT-F9-et a men\u00fch\u00f6z. Nyomj ALT-F10-et az eszk\u00f6zt\u00e1rhoz. Nyomj ALT-0-t a s\u00fag\u00f3hoz",
+"Tools": "Eszk\u00f6z\u00f6k",
+"View": "N\u00e9zet",
+"Table": "T\u00e1bl\u00e1zat",
+"Format": "Form\u00e1tum"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/id.js b/framework/Web/Javascripts/source/tinymce-405/langs/id.js
new file mode 100755
index 00000000..c62179c4
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/id.js
@@ -0,0 +1,71 @@
+tinymce.addI18n('id',{
+"Cut": "Penggal",
+"Header 2": "Header 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Browser anda tidak mendukung akses langsung ke clipboard. Silahkan gunakan Ctrl+X\/C\/V dari keyboard.",
+"Div": "Div",
+"Paste": "Tempel",
+"Close": "Tutup",
+"Pre": "Pre",
+"Align right": "Rata kanan",
+"New document": "Dokumen baru",
+"Blockquote": "Kutipan",
+"Numbered list": "list nomor",
+"Increase indent": "Tambah inden",
+"Formats": "Format",
+"Headers": "Header",
+"Select all": "Pilih semua",
+"Header 3": "Header 3",
+"Blocks": "Blok",
+"Undo": "Batal",
+"Strikethrough": "Coret",
+"Bullet list": "list simbol",
+"Header 1": "Header 1",
+"Superscript": "Superskrip",
+"Clear formatting": "Hapus format",
+"Subscript": "Subskrip",
+"Header 6": "Header 6",
+"Redo": "Ulang",
+"Paragraph": "Paragraf",
+"Ok": "Ok",
+"Bold": "Tebal",
+"Code": "Code",
+"Italic": "Miring",
+"Align center": "Rate tengah",
+"Header 5": "Header 5",
+"Decrease indent": "Turunkan inden",
+"Header 4": "Header 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Aksi 'Tempel' sekarang ini dalam mode text. Konten akan 'ditempelkan' sebagai 'Plain Text' hingga anda mematikan opsi ini.",
+"Underline": "Garis bawah",
+"Cancel": "Batal",
+"Justify": "Justifi",
+"Inline": "Inline",
+"Copy": "Salin",
+"Align left": "Rate kiri",
+"Visual aids": "Alat bantu visual",
+"Lower Greek": "Lower Yunani",
+"Square": "Kotak",
+"Default": "Bawaan",
+"Lower Alpha": "Lower Alpha",
+"Circle": "Lingkaran",
+"Disc": "Cakram",
+"Upper Alpha": "Upper Alpha",
+"Upper Roman": "Upper Roman",
+"Lower Roman": "Lower Roman",
+"Name": "Nama",
+"Anchor": "Anjar",
+"You have unsaved changes are you sure you want to navigate away?": "Anda memiliki perubahan yang belum disimpan, yakin ingin beralih ?",
+"Restore last draft": "Muat kembali draft sebelumnya",
+"Special character": "Spesial karakter",
+"Source code": "Kode sumber",
+"Right to left": "Kanan ke kiri",
+"Left to right": "Kiri ke kanan",
+"Emoticons": "Emotikon",
+"Robots": "Robot",
+"Document properties": "Properti dokumwn",
+"Title": "Judul",
+"Keywords": "Kata kunci",
+"Encoding": "Enkoding",
+"Description": "Deskripsi",
+"Author": "Penulis",
+"Fullscreen": "Layar penuh"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/it.js b/framework/Web/Javascripts/source/tinymce-405/langs/it.js
new file mode 100755
index 00000000..90a34df2
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/it.js
@@ -0,0 +1,174 @@
+tinymce.addI18n('it',{
+"Cut": "Taglia",
+"Header 2": "Header 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Il tuo browser non supporta l'accesso diretto negli Appunti. Per favore usa i tasti di scelta rapida Ctrl+X\/C\/V.",
+"Div": "Div",
+"Paste": "Incolla",
+"Close": "Chiudi",
+"Pre": "Pre",
+"Align right": "Allinea a Destra",
+"New document": "Nuovo Documento",
+"Blockquote": "Blockquote",
+"Numbered list": "Elenchi Numerati",
+"Increase indent": "Aumenta Rientro",
+"Formats": "Formattazioni",
+"Headers": "Intestazioni",
+"Select all": "Seleziona Tutto",
+"Header 3": "Intestazione 3",
+"Blocks": "Blocchi",
+"Undo": "Indietro",
+"Strikethrough": "Barrato",
+"Bullet list": "Elenchi Puntati",
+"Header 1": "Intestazione 1",
+"Superscript": "Apice",
+"Clear formatting": "Cancella Formattazione",
+"Subscript": "Pedice",
+"Header 6": "Intestazione 6",
+"Redo": "Ripeti",
+"Paragraph": "Paragrafo",
+"Ok": "Ok",
+"Bold": "Grassetto",
+"Code": "Codice",
+"Italic": "Corsivo",
+"Align center": "Allinea al Cento",
+"Header 5": "Intestazione 5",
+"Decrease indent": "Riduci Rientro",
+"Header 4": "Intestazione 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Incolla \u00e8 in modalit\u00e0 testo normale. I contenuti sono incollati come testo normale se non disattivi l'opzione.",
+"Underline": "Sottolineato",
+"Cancel": "Cancella",
+"Justify": "Giustifica",
+"Inline": "Inlinea",
+"Copy": "Copia",
+"Align left": "Allinea a Sinistra",
+"Visual aids": "Elementi Visivi",
+"Lower Greek": "Greek Minore",
+"Square": "Quadrato",
+"Default": "Default",
+"Lower Alpha": "Alpha Minore",
+"Circle": "Cerchio",
+"Disc": "Disco",
+"Upper Alpha": "Alpha Superiore",
+"Upper Roman": "Roman Superiore",
+"Lower Roman": "Roman Minore",
+"Name": "Nome",
+"Anchor": "Fissa",
+"You have unsaved changes are you sure you want to navigate away?": "Non hai salvato delle modifiche, sei sicuro di andartene?",
+"Restore last draft": "Ripristina l'ultima bozza.",
+"Special character": "Carattere Speciale",
+"Source code": "Codice Sorgente",
+"Right to left": "Da Destra a Sinistra",
+"Left to right": "Da Sinistra a Destra",
+"Emoticons": "Emoction",
+"Robots": "Robot",
+"Document properties": "Propriet\u00e0 Documento",
+"Title": "Titolo",
+"Keywords": "Parola Chiave",
+"Encoding": "Codifica",
+"Description": "Descrizione",
+"Author": "Autore",
+"Fullscreen": "Schermo Intero",
+"Horizontal line": "Linea Orizzontale",
+"Horizontal space": "Spazio Orizzontale",
+"Insert\/edit image": "Aggiungi\/Modifica Immagine",
+"General": "Generale",
+"Advanced": "Avanzato",
+"Source": "Fonte",
+"Border": "Bordo",
+"Constrain proportions": "Mantieni Proporzioni",
+"Vertical space": "Spazio Verticale",
+"Image description": "Descrizione Immagine",
+"Style": "Stile",
+"Dimensions": "Dimenzioni",
+"Insert image": "Inserisci immagine",
+"Insert date\/time": "Inserisci Data\/Ora",
+"Remove link": "Rimuovi link",
+"Url": "Url",
+"Text to display": "Testo da Visualizzare",
+"Anchors": "Anchors",
+"Insert link": "Inserisci il Link",
+"New window": "Nuova Finestra",
+"None": "No",
+"Target": "Target",
+"Insert\/edit link": "Inserisci\/Modifica Link",
+"Insert\/edit video": "Inserisci\/Modifica Video",
+"Poster": "Anteprima",
+"Alternative source": "Alternativo",
+"Paste your embed code below:": "Incolla il codice d'incorporamento qui:",
+"Insert video": "Inserisci Video",
+"Embed": "Incorporare",
+"Nonbreaking space": "Spazio unificatore",
+"Paste as text": "incolla come testo",
+"Preview": "Anteprima",
+"Print": "Stampa",
+"Save": "Salva",
+"Could not find the specified string.": "Impossibile trovare la parola specifica.",
+"Replace": "Sostituisci",
+"Next": "Successivo",
+"Whole words": "Parole Sbagliate",
+"Find and replace": "Trova e Sostituisci",
+"Replace with": "Sostituisci Con",
+"Find": "Trova",
+"Replace all": "Sostituisci Tutto",
+"Match case": "Maiuscole\/Minuscole ",
+"Prev": "Precedente",
+"Spellcheck": "Controllo ortografico",
+"Finish": "Termina",
+"Ignore all": "Ignora Tutto",
+"Ignore": "Ignora",
+"Insert row before": "Inserisci una Riga Prima",
+"Rows": "Righe",
+"Height": "Altezza",
+"Paste row after": "Incolla una Riga Dopo",
+"Alignment": "Allineamento",
+"Column group": "Gruppo di Colonne",
+"Row": "Riga",
+"Insert column before": "Inserisci una Colonna Prima",
+"Split cell": "Dividi Cella",
+"Cell padding": "Padding della Cella",
+"Cell spacing": "Spaziatura della Cella",
+"Row type": "Tipo di Riga",
+"Insert table": "Inserisci Tabella",
+"Body": "Body",
+"Caption": "Didascalia",
+"Footer": "Footer",
+"Delete row": "Cancella Riga",
+"Paste row before": "Incolla una Riga Prima",
+"Scope": "Campo",
+"Delete table": "Cancella Tabella",
+"Header cell": "cella d'intestazione",
+"Column": "Colonna",
+"Cell": "Cella",
+"Header": "Header",
+"Cell type": "Tipo di Cella",
+"Copy row": "Copia Riga",
+"Row properties": "Propriet\u00e0 della Riga",
+"Table properties": "Propiet\u00e0 della Tabella",
+"Row group": "Gruppo di Righe",
+"Right": "Destra",
+"Insert column after": "Inserisci una Colonna Dopo",
+"Cols": "Colonne",
+"Insert row after": "Inserisci una Riga Dopo",
+"Width": "Larghezza",
+"Cell properties": "Propiet\u00e0 della Cella",
+"Left": "Sinistra",
+"Cut row": "Taglia Riga",
+"Delete column": "Cancella Colonna",
+"Center": "Centro",
+"Merge cells": "Unisci Cella",
+"Insert template": "Inserisci Template",
+"Templates": "Template",
+"Background color": "Colore Background",
+"Text color": "Colore Testo",
+"Show blocks": "Mostra Blocchi",
+"Show invisible characters": "Mostra Caratteri Invisibili",
+"Words: {0}": "Parole: {0}",
+"Insert": "Inserisci",
+"File": "File",
+"Edit": "Modifica",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Premi ALT-F9 per il men\u00f9. Premi ALT-F10 per la barra degli strumenti. Premi ALT-0 per l'aiuto.",
+"Tools": "Strumenti",
+"View": "Visualiza",
+"Table": "Tabella",
+"Format": "Formato"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ja.js b/framework/Web/Javascripts/source/tinymce-405/langs/ja.js
new file mode 100755
index 00000000..75a23c3b
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ja.js
@@ -0,0 +1,174 @@
+tinymce.addI18n('ja',{
+"Cut": "\u5207\u308a\u53d6\u308a",
+"Header 2": "\u30d8\u30c3\u30c0\u30fc 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u304a\u4f7f\u3044\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u306f\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u6a5f\u80fd\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\uff08Ctrl+X, Ctrl+C, Ctrl+V\uff09\u3092\u304a\u4f7f\u3044\u4e0b\u3055\u3044\u3002",
+"Div": "Div",
+"Paste": "\u8cbc\u308a\u4ed8\u3051",
+"Close": "\u9589\u3058\u308b",
+"Pre": "Pre",
+"Align right": "\u53f3\u5bc4\u305b",
+"New document": "\u65b0\u898f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8",
+"Blockquote": "Blockquote",
+"Numbered list": "\u756a\u53f7\u4ed8\u304d\u7b87\u6761\u66f8\u304d",
+"Increase indent": "\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u5897\u3084\u3059",
+"Formats": "\u66f8\u5f0f",
+"Headers": "\u30d8\u30c3\u30c0\u30fc",
+"Select all": "\u5168\u3066\u3092\u9078\u629e",
+"Header 3": "\u30d8\u30c3\u30c0\u30fc 3",
+"Blocks": "\u30d6\u30ed\u30c3\u30af",
+"Undo": "\u5143\u306b\u623b\u3059",
+"Strikethrough": "\u53d6\u308a\u6d88\u3057\u7dda",
+"Bullet list": "\u7b87\u6761\u66f8\u304d",
+"Header 1": "\u30d8\u30c3\u30c0\u30fc 1",
+"Superscript": "\u4e0a\u4ed8\u304d\u6587\u5b57",
+"Clear formatting": "\u66f8\u5f0f\u3092\u30af\u30ea\u30a2",
+"Subscript": "\u4e0b\u4ed8\u304d\u6587\u5b57",
+"Header 6": "\u30d8\u30c3\u30c0\u30fc 6",
+"Redo": "\u3084\u308a\u76f4\u3059",
+"Paragraph": "\u6bb5\u843d",
+"Ok": "OK",
+"Bold": "\u592a\u5b57",
+"Code": "\u30b3\u30fc\u30c9",
+"Italic": "\u659c\u4f53",
+"Align center": "\u4e2d\u592e\u63c3\u3048",
+"Header 5": "\u30d8\u30c3\u30c0\u30fc 5",
+"Decrease indent": "\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u6e1b\u3089\u3059",
+"Header 4": "\u30d8\u30c3\u30c0\u30fc 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u8cbc\u308a\u4ed8\u3051\u306f\u73fe\u5728\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u30e2\u30fc\u30c9\u3067\u3059\u3002\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u30aa\u30d5\u306b\u3057\u306a\u3044\u9650\u308a\u5185\u5bb9\u306f\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u8cbc\u308a\u4ed8\u3051\u3089\u308c\u307e\u3059\u3002",
+"Underline": "\u4e0b\u7dda",
+"Cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
+"Justify": "\u4e21\u7aef\u63c3\u3048",
+"Inline": "\u30a4\u30f3\u30e9\u30a4\u30f3",
+"Copy": "\u30b3\u30d4\u30fc",
+"Align left": "\u5de6\u5bc4\u305b",
+"Visual aids": "\u8868\u306e\u67a0\u7dda\u3092\u70b9\u7dda\u3067\u8868\u793a",
+"Lower Greek": "\u5c0f\u6587\u5b57\u306e\u30ae\u30ea\u30b7\u30e3\u6587\u5b57",
+"Square": "\u56db\u89d2",
+"Default": "\u30c7\u30d5\u30a9\u30eb\u30c8",
+"Lower Alpha": "\u5c0f\u6587\u5b57\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8",
+"Circle": "\u5186",
+"Disc": "\u70b9",
+"Upper Alpha": "\u5927\u6587\u5b57\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8",
+"Upper Roman": "\u5927\u6587\u5b57\u306e\u30ed\u30fc\u30de\u6570\u5b57",
+"Lower Roman": "\u5c0f\u6587\u5b57\u306e\u30ed\u30fc\u30de\u6570\u5b57",
+"Name": "\u30a2\u30f3\u30ab\u30fc\u540d",
+"Anchor": "\u30a2\u30f3\u30ab\u30fc\uff08\u30ea\u30f3\u30af\u306e\u5230\u9054\u70b9\uff09",
+"You have unsaved changes are you sure you want to navigate away?": "\u307e\u3060\u4fdd\u5b58\u3057\u3066\u3044\u306a\u3044\u5909\u66f4\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u672c\u5f53\u306b\u3053\u306e\u30da\u30fc\u30b8\u3092\u96e2\u308c\u307e\u3059\u304b\uff1f",
+"Restore last draft": "\u524d\u56de\u306e\u4e0b\u66f8\u304d\u3092\u5fa9\u6d3b\u3055\u305b\u308b",
+"Special character": "\u7279\u6b8a\u6587\u5b57",
+"Source code": "\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9",
+"Right to left": "\u53f3\u304b\u3089\u5de6",
+"Left to right": "\u5de6\u304b\u3089\u53f3",
+"Emoticons": "\u7d75\u6587\u5b57",
+"Robots": "\u30ed\u30dc\u30c3\u30c8",
+"Document properties": "\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3",
+"Title": "\u30bf\u30a4\u30c8\u30eb",
+"Keywords": "\u30ad\u30fc\u30ef\u30fc\u30c9",
+"Encoding": "\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0",
+"Description": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u5185\u5bb9",
+"Author": "\u8457\u8005",
+"Fullscreen": "\u5168\u753b\u9762\u8868\u793a",
+"Horizontal line": "\u6c34\u5e73\u7f6b\u7dda",
+"Horizontal space": "\u6a2a\u65b9\u5411\u306e\u4f59\u767d",
+"Insert\/edit image": "\u753b\u50cf\u306e\u633f\u5165\u30fb\u7de8\u96c6",
+"General": "\u4e00\u822c",
+"Advanced": "\u8a73\u7d30\u8a2d\u5b9a",
+"Source": "\u753b\u50cf\u306e\u30bd\u30fc\u30b9",
+"Border": "\u67a0\u7dda",
+"Constrain proportions": "\u7e26\u6a2a\u6bd4\u3092\u4fdd\u6301\u3059\u308b",
+"Vertical space": "\u7e26\u65b9\u5411\u306e\u4f59\u767d",
+"Image description": "\u753b\u50cf\u306e\u8aac\u660e\u6587",
+"Style": "\u30b9\u30bf\u30a4\u30eb",
+"Dimensions": "\u753b\u50cf\u30b5\u30a4\u30ba\uff08\u6a2a\u30fb\u7e26\uff09",
+"Insert image": "\u753b\u50cf\u306e\u633f\u5165",
+"Insert date\/time": "\u65e5\u4ed8\u30fb\u6642\u523b",
+"Remove link": "\u30ea\u30f3\u30af\u306e\u524a\u9664",
+"Url": "\u30ea\u30f3\u30af\u5148URL",
+"Text to display": "\u30ea\u30f3\u30af\u5143\u30c6\u30ad\u30b9\u30c8",
+"Anchors": "\u30a2\u30f3\u30ab\u30fc\uff08\u30ea\u30f3\u30af\u306e\u5230\u9054\u70b9\uff09",
+"Insert link": "\u30ea\u30f3\u30af",
+"New window": "\u65b0\u898f\u30a6\u30a3\u30f3\u30c9\u30a6",
+"None": "\u306a\u3057",
+"Target": "\u30bf\u30fc\u30b2\u30c3\u30c8\u5c5e\u6027",
+"Insert\/edit link": "\u30ea\u30f3\u30af\u306e\u633f\u5165\u30fb\u7de8\u96c6",
+"Insert\/edit video": "\u52d5\u753b\u306e\u633f\u5165\u30fb\u7de8\u96c6",
+"Poster": "\u4ee3\u66ff\u753b\u50cf\u306e\u5834\u6240",
+"Alternative source": "\u4ee3\u66ff\u52d5\u753b\u306e\u5834\u6240",
+"Paste your embed code below:": "\u57cb\u3081\u8fbc\u307f\u7528\u30b3\u30fc\u30c9\u3092\u4e0b\u8a18\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044\u3002",
+"Insert video": "\u52d5\u753b",
+"Embed": "\u57cb\u3081\u8fbc\u307f",
+"Nonbreaking space": "\u56fa\u5b9a\u30b9\u30da\u30fc\u30b9\uff08&nbsp;\uff09",
+"Page break": "\u30da\u30fc\u30b8\u533a\u5207\u308a",
+"Preview": "\u30d7\u30ec\u30d3\u30e5\u30fc",
+"Print": "\u5370\u5237",
+"Save": "\u4fdd\u5b58",
+"Could not find the specified string.": "\u304a\u63a2\u3057\u306e\u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002",
+"Replace": "\u7f6e\u304d\u63db\u3048",
+"Next": "\u6b21",
+"Whole words": "\u5358\u8a9e\u5358\u4f4d\u3067\u691c\u7d22\u3059\u308b",
+"Find and replace": "\u691c\u7d22\u3068\u7f6e\u304d\u63db\u3048",
+"Replace with": "\u7f6e\u304d\u63db\u3048",
+"Find": "\u691c\u7d22\u3059\u308b\u6587\u5b57",
+"Replace all": "\u5168\u3066\u3092\u7f6e\u304d\u63db\u3048\u308b",
+"Match case": "\u5927\u6587\u5b57\u30fb\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b",
+"Prev": "\u524d",
+"Spellcheck": "\u30b9\u30da\u30eb\u30c1\u30a7\u30c3\u30af",
+"Finish": "\u7d42\u4e86",
+"Ignore all": "\u5168\u3066\u3092\u7121\u8996",
+"Ignore": "\u7121\u8996",
+"Insert row before": "\u4e0a\u5074\u306b\u884c\u3092\u633f\u5165",
+"Rows": "\u884c\u6570",
+"Height": "\u9ad8\u3055",
+"Paste row after": "\u4e0b\u5074\u306b\u884c\u3092\u8cbc\u308a\u4ed8\u3051",
+"Alignment": "\u914d\u7f6e",
+"Column group": "\u5217\u30b0\u30eb\u30fc\u30d7",
+"Row": "\u884c",
+"Insert column before": "\u5de6\u5074\u306b\u5217\u3092\u633f\u5165",
+"Split cell": "\u30bb\u30eb\u306e\u5206\u5272",
+"Cell padding": "\u30bb\u30eb\u5185\u4f59\u767d\uff08\u30d1\u30c7\u30a3\u30f3\u30b0\uff09",
+"Cell spacing": "\u30bb\u30eb\u306e\u9593\u9694",
+"Row type": "\u884c\u30bf\u30a4\u30d7",
+"Insert table": "\u8868\u306e\u633f\u5165",
+"Body": "\u30dc\u30c7\u30a3\u30fc",
+"Caption": "\u8868\u984c",
+"Footer": "\u30d5\u30c3\u30bf\u30fc",
+"Delete row": "\u884c\u306e\u524a\u9664",
+"Paste row before": "\u4e0a\u5074\u306b\u884c\u3092\u8cbc\u308a\u4ed8\u3051",
+"Scope": "\u30b9\u30b3\u30fc\u30d7",
+"Delete table": "\u8868\u306e\u524a\u9664",
+"Header cell": "\u30d8\u30c3\u30c0\u30fc\u30bb\u30eb",
+"Column": "\u5217",
+"Cell": "\u30bb\u30eb",
+"Header": "\u30d8\u30c3\u30c0\u30fc",
+"Cell type": "\u30bb\u30eb\u30bf\u30a4\u30d7",
+"Copy row": "\u884c\u306e\u30b3\u30d4\u30fc",
+"Row properties": "\u884c\u306e\u8a73\u7d30\u8a2d\u5b9a",
+"Table properties": "\u8868\u306e\u8a73\u7d30\u8a2d\u5b9a",
+"Row group": "\u884c\u30b0\u30eb\u30fc\u30d7",
+"Right": "\u53f3\u5bc4\u305b",
+"Insert column after": "\u53f3\u5074\u306b\u5217\u3092\u633f\u5165",
+"Cols": "\u5217\u6570",
+"Insert row after": "\u4e0b\u5074\u306b\u884c\u3092\u633f\u5165",
+"Width": "\u5e45",
+"Cell properties": "\u30bb\u30eb\u306e\u8a73\u7d30\u8a2d\u5b9a",
+"Left": "\u5de6\u5bc4\u305b",
+"Cut row": "\u884c\u306e\u5207\u308a\u53d6\u308a",
+"Delete column": "\u5217\u306e\u524a\u9664",
+"Center": "\u4e2d\u592e\u63c3\u3048",
+"Merge cells": "\u30bb\u30eb\u306e\u7d50\u5408",
+"Insert template": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u633f\u5165",
+"Templates": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u4e00\u89a7",
+"Background color": "\u80cc\u666f\u8272",
+"Text color": "\u6587\u5b57\u306e\u8272",
+"Show blocks": "\u6587\u7ae0\u306e\u533a\u5207\u308a\u3092\u70b9\u7dda\u3067\u8868\u793a",
+"Show invisible characters": "\u4e0d\u53ef\u8996\u6587\u5b57\u3092\u8868\u793a",
+"Words: {0}": "\u5358\u8a9e\u6570: {0}",
+"Insert": "\u633f\u5165",
+"File": "\u30d5\u30a1\u30a4\u30eb",
+"Edit": "\u7de8\u96c6",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u66f8\u5f0f\u4ed8\u304d\u30c6\u30ad\u30b9\u30c8\u306e\u7de8\u96c6\u753b\u9762\u3002ALT-F9\u3067\u30e1\u30cb\u30e5\u30fc\u3001ALT-F10\u3067\u30c4\u30fc\u30eb\u30d0\u30fc\u3001ALT-0\u3067\u30d8\u30eb\u30d7\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002",
+"Tools": "\u30c4\u30fc\u30eb",
+"View": "\u8868\u793a",
+"Table": "\u8868",
+"Format": "\u66f8\u5f0f"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ka_GE.js b/framework/Web/Javascripts/source/tinymce-405/langs/ka_GE.js
new file mode 100755
index 00000000..5846773e
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ka_GE.js
@@ -0,0 +1,172 @@
+tinymce.addI18n('ka_GE',{
+"Cut": "\u10d0\u10db\u10dd\u10ed\u10e0\u10d0",
+"Header 2": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u10d7\u10e5\u10d5\u10d4\u10dc \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10e1 \u10d0\u10e0 \u10d0\u10e5\u10d5\u10e1 \u10d1\u10e3\u10e4\u10e0\u10e2\u10e8\u10d8 \u10e8\u10d4\u10ee\u10ec\u10d4\u10d5\u10d8\u10e1 \u10db\u10ee\u10d0\u10e0\u10d3\u10d0\u10ed\u10d4\u10e0\u10d0. \u10d2\u10d7\u10ee\u10dd\u10d5\u10d7 \u10e1\u10d0\u10dc\u10d0\u10ea\u10d5\u10da\u10dd\u10d3 \u10d8\u10e1\u10d0\u10e0\u10d2\u10d4\u10d1\u10da\u10dd\u10d7 Ctrl+X\/C\/V \u10db\u10d0\u10da\u10e1\u10d0\u10ee\u10db\u10dd\u10d1\u10d8 \u10d9\u10dd\u10db\u10d1\u10d8\u10dc\u10d0\u10ea\u10d8\u10d4\u10d1\u10d8\u10d7.",
+"Div": "\u10d2\u10d0\u10dc\u10d0\u10ec\u10d8\u10da\u10d4\u10d1\u10d0",
+"Paste": "\u10e9\u10d0\u10e1\u10db\u10d0",
+"Close": "\u10d3\u10d0\u10ee\u10e3\u10e0\u10d5\u10d0",
+"Pre": "\u10de\u10e0\u10d4\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10d8",
+"Align right": "\u10d2\u10d0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4 \u10db\u10d0\u10e0\u10ef\u10d5\u10dc\u10d8\u10d5",
+"New document": "\u10d0\u10ee\u10d0\u10da\u10d8 \u10d3\u10dd\u10d9\u10e3\u10db\u10d4\u10dc\u10e2\u10d8",
+"Blockquote": "\u10d1\u10da\u10dd\u10d9\u10d8\u10e0\u10d4\u10d1\u10e3\u10da\u10d8 \u10ea\u10d8\u10e2\u10d0\u10e2\u10d0",
+"Numbered list": "\u10d3\u10d0\u10dc\u10dd\u10db\u10e0\u10d8\u10da\u10d8 \u10e1\u10d8\u10d0",
+"Increase indent": "\u10d0\u10d1\u10d6\u10d0\u10ea\u10d8\u10e1 \u10d2\u10d0\u10d6\u10e0\u10d3\u10d0",
+"Formats": "\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10d4\u10d1\u10d8",
+"Headers": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d4\u10d1\u10d8",
+"Select all": "\u10e7\u10d5\u10d4\u10da\u10d0\u10e1 \u10db\u10dd\u10e6\u10dc\u10d8\u10e8\u10d5\u10dc\u10d0",
+"Header 3": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 3",
+"Blocks": "\u10d1\u10da\u10dd\u10d9\u10d4\u10d1\u10d8",
+"Undo": "\u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d4\u10d1\u10d0",
+"Strikethrough": "\u10e8\u10e3\u10d0 \u10ee\u10d0\u10d6\u10d8",
+"Bullet list": "\u10d1\u10e3\u10da\u10d4\u10e2 \u10e1\u10d8\u10d0",
+"Header 1": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 1",
+"Superscript": "\u10d6\u10d4\u10d3\u10d0 \u10d8\u10dc\u10d3\u10d4\u10e5\u10e1\u10d8",
+"Clear formatting": "\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d8\u10e1 \u10d2\u10d0\u10e1\u10e3\u10e4\u10d7\u10d0\u10d5\u10d4\u10d1\u10d0",
+"Subscript": "\u10e5\u10d5\u10d4\u10d3\u10d0 \u10d8\u10dc\u10d3\u10d4\u10e5\u10e1\u10d8",
+"Header 6": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 6",
+"Redo": "\u10d2\u10d0\u10db\u10d4\u10dd\u10e0\u10d4\u10d1\u10d0",
+"Paragraph": "\u10de\u10d0\u10e0\u10d0\u10d2\u10e0\u10d0\u10e4\u10d8",
+"Ok": "\u10d9\u10d0\u10e0\u10d2\u10d8",
+"Bold": "\u10db\u10d9\u10d5\u10d4\u10d7\u10e0\u10d8",
+"Code": "\u10d9\u10dd\u10d3\u10d8",
+"Italic": "\u10d3\u10d0\u10ee\u10e0\u10d8\u10da\u10d8",
+"Align center": "\u10d2\u10d0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4 \u10ea\u10d4\u10dc\u10e2\u10e0\u10e8\u10d8",
+"Header 5": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 5",
+"Decrease indent": "\u10d0\u10d1\u10d6\u10d0\u10ea\u10d8\u10e1 \u10e8\u10d4\u10db\u10ea\u10d8\u10e0\u10d4\u10d1\u10d0",
+"Header 4": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u10d0\u10ee\u10da\u10d0 \u10e2\u10d4\u10e5\u10e1\u10e2\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0 \u10e9\u10d5\u10d4\u10e3\u10da\u10d4\u10d1\u10e0\u10d8\u10d5 \u10e0\u10d4\u10df\u10d8\u10db\u10e8\u10d8\u10d0. \u10e2\u10d4\u10e5\u10e1\u10e2\u10d8 \u10e9\u10d0\u10d8\u10e1\u10db\u10d4\u10d5\u10d0 \u10e3\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10dd\u10d7 \u10e1\u10d0\u10dc\u10d0\u10db \u10d0\u10db \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d0\u10e1 \u10d0\u10e0 \u10d2\u10d0\u10d7\u10d8\u10e8\u10d0\u10d5\u10d7.",
+"Underline": "\u10e5\u10d5\u10d4\u10d3\u10d0 \u10ee\u10d0\u10d6\u10d8",
+"Cancel": "\u10d2\u10d0\u10e3\u10e5\u10db\u10d4\u10d1\u10d0",
+"Justify": "\u10d2\u10d0\u10db\u10d0\u10e0\u10d7\u10e3\u10da\u10d8",
+"Inline": "\u10ee\u10d0\u10d6\u10e8\u10d8\u10d3\u10d0",
+"Copy": "\u10d9\u10dd\u10de\u10d8\u10e0\u10d4\u10d1\u10d0",
+"Align left": "\u10d2\u10d0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4 \u10db\u10d0\u10e0\u10ea\u10ee\u10dc\u10d8\u10d5",
+"Visual aids": "\u10d5\u10d8\u10d6\u10e3\u10d0\u10da\u10d8\u10d6\u10d0\u10ea\u10d8\u10d0",
+"Lower Greek": "\u10d3\u10d0\u10d1\u10d0\u10da\u10d8 \u10d1\u10d4\u10e0\u10eb\u10dc\u10e3\u10da\u10d8",
+"Square": "\u10d9\u10d5\u10d0\u10d3\u10e0\u10d0\u10e2\u10d8",
+"Default": "\u10e1\u10e2\u10d0\u10dc\u10d3\u10d0\u10e0\u10e2\u10e3\u10da\u10d8",
+"Lower Alpha": "\u10d3\u10d0\u10d1\u10d0\u10da\u10d8 \u10d0\u10da\u10e4\u10d0",
+"Circle": "\u10ec\u10e0\u10d4",
+"Disc": "\u10d3\u10d8\u10e1\u10d9\u10d8",
+"Upper Alpha": "\u10db\u10d0\u10e6\u10d0\u10da\u10d8 \u10d0\u10da\u10e4\u10d0",
+"Upper Roman": "\u10db\u10d0\u10e6\u10d0\u10da\u10d8 \u10e0\u10dd\u10db\u10d0\u10e3\u10da\u10d8",
+"Lower Roman": "\u10d3\u10d0\u10d1\u10d0\u10da\u10d8 \u10e0\u10dd\u10db\u10d0\u10e3\u10da\u10d8",
+"Name": "\u10e1\u10d0\u10ee\u10d4\u10da\u10d8",
+"Anchor": "\u10e6\u10e3\u10d6\u10d0",
+"You have unsaved changes are you sure you want to navigate away?": "\u10d7\u10e5\u10d5\u10d4\u10dc \u10d2\u10d0\u10e5\u10d5\u10d7 \u10e8\u10d4\u10e3\u10dc\u10d0\u10ee\u10d0\u10d5\u10d8 \u10e8\u10d4\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d4\u10d1\u10d8, \u10d3\u10d0\u10e0\u10ec\u10db\u10e3\u10dc\u10d4\u10d1\u10e3\u10da\u10d8 \u10ee\u10d0\u10d7 \u10e0\u10dd\u10db \u10e1\u10ee\u10d5\u10d0\u10d2\u10d0\u10dc \u10d2\u10d0\u10d3\u10d0\u10e1\u10d5\u10da\u10d0 \u10d2\u10e1\u10e3\u10e0\u10d7?",
+"Restore last draft": "\u10d1\u10dd\u10da\u10dd\u10e1 \u10e8\u10d4\u10dc\u10d0\u10ee\u10e3\u10da\u10d8\u10e1 \u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d0",
+"Special character": "\u10e1\u10de\u10d4\u10ea\u10d8\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10db\u10d1\u10dd\u10da\u10dd",
+"Source code": "\u10ec\u10e7\u10d0\u10e0\u10dd\u10e1 \u10d9\u10dd\u10d3\u10d8",
+"Right to left": "\u10db\u10d0\u10e0\u10ef\u10d5\u10dc\u10d8\u10d3\u10d0\u10dc \u10db\u10d0\u10e0\u10ea\u10ee\u10dc\u10d8\u10d5",
+"Left to right": "\u10db\u10d0\u10e0\u10ea\u10ee\u10dc\u10d8\u10d3\u10d0\u10dc \u10db\u10d0\u10e0\u10ef\u10d5\u10dc\u10d8\u10d5",
+"Emoticons": "\u10e1\u10db\u10d0\u10d8\u10da\u10d8\u10d9\u10d4\u10d1\u10d8",
+"Robots": "\u10e0\u10dd\u10d1\u10dd\u10d4\u10d1\u10d8",
+"Document properties": "\u10d3\u10dd\u10d9\u10e3\u10db\u10d4\u10dc\u10e2\u10d8\u10e1 \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d4\u10d1\u10d8",
+"Title": "\u10e1\u10d0\u10d7\u10d0\u10e3\u10e0\u10d8",
+"Keywords": "\u10e1\u10d0\u10d9\u10d5\u10d0\u10dc\u10eb\u10dd \u10e1\u10d8\u10e2\u10e7\u10d5\u10d4\u10d1\u10d8",
+"Encoding": "\u10d9\u10dd\u10d3\u10d8\u10e0\u10d4\u10d1\u10d0",
+"Description": "\u10d0\u10ee\u10ec\u10d4\u10e0\u10d0",
+"Author": "\u10d0\u10d5\u10e2\u10dd\u10e0\u10d8",
+"Fullscreen": "\u10e1\u10d0\u10d5\u10e1\u10d4 \u10d4\u10d9\u10e0\u10d0\u10dc\u10d8",
+"Horizontal line": "\u10f0\u10dd\u10e0\u10d8\u10d6\u10dd\u10dc\u10e2\u10d0\u10da\u10e3\u10e0\u10d8 \u10ee\u10d0\u10d6\u10d8",
+"Horizontal space": "\u10f0\u10dd\u10e0\u10d8\u10d6\u10dd\u10dc\u10e2\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10d5\u10e0\u10ea\u10d4",
+"Insert\/edit image": "\u10e9\u10d0\u10e1\u10d5\u10d8\/\u10e8\u10d4\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4 \u10e1\u10e3\u10e0\u10d0\u10d7\u10d8",
+"General": "\u10db\u10d7\u10d0\u10d5\u10d0\u10e0\u10d8",
+"Advanced": "\u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d8\u10d7\u10d8",
+"Source": "\u10d1\u10db\u10e3\u10da\u10d8",
+"Border": "\u10e1\u10d0\u10d6\u10e6\u10d5\u10d0\u10e0\u10d8",
+"Constrain proportions": "\u10de\u10e0\u10dd\u10de\u10dd\u10e0\u10ea\u10d8\u10d8\u10e1 \u10d3\u10d0\u10ea\u10d5\u10d0",
+"Vertical space": "\u10d5\u10d4\u10e0\u10e2\u10d8\u10d9\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10d5\u10e0\u10ea\u10d4",
+"Image description": "\u10e1\u10e3\u10e0\u10d0\u10d7\u10d8\u10e1 \u10d3\u10d0\u10ee\u10d0\u10e1\u10d8\u10d0\u10d7\u10d4\u10d1\u10d0",
+"Style": "\u10e1\u10e2\u10d8\u10da\u10d8",
+"Dimensions": "\u10d2\u10d0\u10dc\u10d6\u10dd\u10db\u10d8\u10da\u10d4\u10d1\u10d0",
+"Insert image": "\u10e1\u10e3\u10e0\u10d0\u10d7\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
+"Insert date\/time": "\u10d7\u10d0\u10e0\u10d8\u10e6\u10d8\/\u10d3\u10e0\u10dd\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
+"Url": "Url",
+"Text to display": "\u10e2\u10d4\u10e5\u10e1\u10e2\u10d8",
+"Insert link": "\u10d1\u10db\u10e3\u10da\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
+"New window": "\u10d0\u10ee\u10d0\u10da \u10e4\u10d0\u10dc\u10ef\u10d0\u10e0\u10d0\u10e8\u10d8",
+"None": "\u10d0\u10e0\u10ea\u10d4\u10e0\u10d7\u10d8",
+"Target": "\u10d2\u10d0\u10ee\u10e1\u10dc\u10d0",
+"Insert\/edit link": "\u10d1\u10db\u10e3\u10da\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0\/\u10e0\u10d4\u10d3\u10d0\u10e5\u10e2\u10d8\u10e0\u10d4\u10d0",
+"Insert\/edit video": "\u10d5\u10d8\u10d3\u10d4\u10dd\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0\/\u10e0\u10d4\u10d3\u10d0\u10e5\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0",
+"Poster": "\u10de\u10da\u10d0\u10d9\u10d0\u10e2\u10d8",
+"Alternative source": "\u10d0\u10da\u10e2\u10d4\u10e0\u10dc\u10d0\u10e2\u10d8\u10e3\u10da\u10d8 \u10ec\u10e7\u10d0\u10e0\u10dd",
+"Paste your embed code below:": "\u10d0\u10e5 \u10e9\u10d0\u10e1\u10d5\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d9\u10dd\u10d3\u10d8:",
+"Insert video": "\u10d5\u10d8\u10d3\u10d4\u10dd\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
+"Embed": "Embed",
+"Nonbreaking space": "\u10e3\u10ec\u10e7\u10d5\u10d4\u10e2\u10d8 \u10e1\u10d8\u10d5\u10e0\u10ea\u10d4",
+"Page break": "\u10d2\u10d5\u10d4\u10e0\u10d3\u10d8\u10e1 \u10d2\u10d0\u10ec\u10e7\u10d5\u10d4\u10e2\u10d0",
+"Preview": "\u10ec\u10d8\u10dc\u10d0\u10e1\u10ec\u10d0\u10e0 \u10dc\u10d0\u10ee\u10d5\u10d0",
+"Print": "\u10d0\u10db\u10dd\u10d1\u10d4\u10ed\u10d5\u10d3\u10d0",
+"Save": "\u10e8\u10d4\u10dc\u10d0\u10ee\u10d5\u10d0",
+"Could not find the specified string.": "\u10db\u10dd\u10ea\u10d4\u10db\u10e3\u10da\u10d8 \u10e9\u10d0\u10dc\u10d0\u10ec\u10d4\u10e0\u10d8 \u10d5\u10d4\u10e0 \u10db\u10dd\u10d8\u10eb\u10d4\u10d1\u10dc\u10d0.",
+"Replace": "\u10e8\u10d4\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d0",
+"Next": "\u10e8\u10d4\u10db\u10d3\u10d4\u10d2\u10d8",
+"Whole words": "\u10e1\u10e0\u10e3\u10da\u10d8 \u10e1\u10d8\u10e2\u10e7\u10d5\u10d4\u10d1\u10d8",
+"Find and replace": "\u10db\u10dd\u10eb\u10d4\u10d1\u10dc\u10d4 \u10d3\u10d0 \u10e8\u10d4\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4",
+"Replace with": "\u10e8\u10d4\u10e1\u10d0\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 \u10e1\u10d8\u10e2\u10e7\u10d5\u10d0",
+"Find": "\u10eb\u10d4\u10d1\u10dc\u10d0",
+"Replace all": "\u10e7\u10d5\u10d4\u10da\u10d0\u10e1 \u10e8\u10d4\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d0",
+"Match case": "\u10d3\u10d0\u10d0\u10db\u10d7\u10ee\u10d5\u10d8\u10d4 \u10d0\u10e1\u10dd\u10d4\u10d1\u10d8\u10e1 \u10d6\u10dd\u10db\u10d0",
+"Prev": "\u10ec\u10d8\u10dc\u10d0",
+"Spellcheck": "\u10db\u10d0\u10e0\u10d7\u10da\u10ec\u10d4\u10e0\u10d8\u10e1 \u10e8\u10d4\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d0",
+"Finish": "\u10e4\u10d8\u10dc\u10d8\u10e8\u10d8",
+"Ignore all": "\u10e7\u10d5\u10d4\u10da\u10d0\u10e1 \u10d8\u10d2\u10dc\u10dd\u10e0\u10d8\u10e0\u10d4\u10d1\u10d0",
+"Ignore": "\u10d8\u10d2\u10dc\u10dd\u10e0\u10d8\u10e0\u10d4\u10d1\u10d0",
+"Insert row before": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d7\u10d0\u10d5\u10e8\u10d8 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0",
+"Rows": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d4\u10d1\u10d8",
+"Height": "\u10e1\u10d8\u10db\u10d0\u10e6\u10da\u10d4",
+"Paste row after": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d1\u10dd\u10da\u10dd\u10e8\u10d8 \u10e9\u10d0\u10e1\u10db\u10d0",
+"Alignment": "\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d0",
+"Column group": "\u10e1\u10d5\u10d4\u10e2\u10d8\u10e1 \u10ef\u10d2\u10e3\u10e4\u10d8",
+"Row": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8",
+"Insert column before": "\u10e1\u10d5\u10d4\u10e2\u10d8\u10e1 \u10d7\u10d0\u10d5\u10e8\u10d8 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0",
+"Split cell": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10d2\u10d0\u10e7\u10dd\u10e4\u10d0",
+"Cell padding": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10e4\u10d0\u10e0\u10d7\u10dd\u10d1\u10d8",
+"Cell spacing": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10d3\u10d0\u10e8\u10dd\u10e0\u10d4\u10d1\u10d0",
+"Row type": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10e2\u10d8\u10de\u10d8",
+"Insert table": "\u10ea\u10ee\u10e0\u10d8\u10da\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
+"Body": "\u10e2\u10d0\u10dc\u10d8",
+"Caption": "\u10ec\u10d0\u10e0\u10ec\u10d4\u10e0\u10d0",
+"Footer": "\u10eb\u10d8\u10e0\u10d8",
+"Delete row": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0",
+"Paste row before": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d7\u10d0\u10d5\u10e8\u10d8 \u10e9\u10d0\u10e1\u10db\u10d0",
+"Scope": "\u10e9\u10d0\u10e0\u10e9\u10dd",
+"Delete table": "\u10ea\u10ee\u10e0\u10d8\u10da\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0",
+"Header cell": "\u10d7\u10d0\u10d5\u10d8\u10e1 \u10e3\u10ef\u10e0\u10d0",
+"Column": "\u10e1\u10d5\u10d4\u10e2\u10d8",
+"Cell": "\u10e3\u10ef\u10e0\u10d0",
+"Header": "\u10d7\u10d0\u10d5\u10d8",
+"Cell type": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10e2\u10d8\u10de\u10d8",
+"Copy row": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d9\u10dd\u10de\u10d8\u10e0\u10d4\u10d1\u10d0",
+"Row properties": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d4\u10d1\u10d8",
+"Table properties": "\u10ea\u10ee\u10e0\u10d8\u10da\u10d8\u10e1 \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d4\u10d1\u10d8",
+"Row group": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10ef\u10d2\u10e3\u10e4\u10d8",
+"Right": "\u10db\u10d0\u10e0\u10ef\u10d5\u10dc\u10d8\u10d5",
+"Insert column after": "\u10e1\u10d5\u10d4\u10e2\u10d8\u10e1 \u10d1\u10dd\u10da\u10dd\u10e8\u10d8 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0",
+"Cols": "\u10e1\u10d5\u10d4\u10e2\u10d4\u10d1\u10d8",
+"Insert row after": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d1\u10dd\u10da\u10dd\u10e8\u10d8 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0",
+"Width": "\u10e1\u10d8\u10d2\u10d0\u10dc\u10d4",
+"Cell properties": "\u10e3\u10ef\u10e0\u10d8\u10e1 \u10d7\u10d5\u10d8\u10e1\u10d4\u10d1\u10d4\u10d1\u10d8",
+"Left": "\u10db\u10d0\u10e0\u10ea\u10ee\u10dc\u10d8\u10d5",
+"Cut row": "\u10e1\u10e2\u10e0\u10d8\u10e5\u10dd\u10dc\u10d8\u10e1 \u10d0\u10db\u10dd\u10ed\u10e0\u10d0",
+"Delete column": "\u10e1\u10d5\u10d4\u10e2\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0",
+"Center": "\u10ea\u10d4\u10dc\u10e2\u10e0\u10e8\u10d8",
+"Merge cells": "\u10e3\u10ef\u10e0\u10d4\u10d1\u10d8\u10e1 \u10d2\u10d0\u10d4\u10e0\u10d7\u10d8\u10d0\u10dc\u10d4\u10d1\u10d0",
+"Insert template": "\u10e8\u10d0\u10d1\u10da\u10dd\u10dc\u10d8\u10e1 \u10e9\u10d0\u10e1\u10db\u10d0",
+"Templates": "\u10e8\u10d0\u10d1\u10da\u10dd\u10dc\u10d4\u10d1\u10d8",
+"Background color": "\u10e3\u10d9\u10d0\u10dc\u10d0 \u10e4\u10d4\u10e0\u10d8",
+"Text color": "\u10e2\u10d4\u10e5\u10e1\u10e2\u10d8\u10e1 \u10e4\u10d4\u10e0\u10d8",
+"Show blocks": "\u10d1\u10da\u10dd\u10d9\u10d4\u10d1\u10d8\u10e1 \u10e9\u10d5\u10d4\u10dc\u10d4\u10d1\u10d0",
+"Show invisible characters": "\u10e3\u10ee\u10d8\u10da\u10d0\u10d5\u10d8 \u10e1\u10d8\u10db\u10d1\u10dd\u10da\u10dd\u10d4\u10d1\u10d8\u10e1 \u10e9\u10d5\u10d4\u10dc\u10d4\u10d1\u10d0",
+"Words: {0}": "\u10e1\u10d8\u10e2\u10e7\u10d5\u10d4\u10d1\u10d8: {0}",
+"Insert": "\u10e9\u10d0\u10e1\u10db\u10d0",
+"File": "\u10e4\u10d0\u10d8\u10da\u10d8",
+"Edit": "\u10e8\u10d4\u10e1\u10ec\u10dd\u10e0\u10d4\u10d1\u10d0",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u10e2\u10d4\u10e5\u10e1\u10e2\u10d8\u10e1 \u10e4\u10d0\u10e0\u10d7\u10d8. \u10d3\u10d0\u10d0\u10ed\u10d8\u10e0\u10d4\u10d7 ALT-F9\u10e1 \u10db\u10d4\u10dc\u10d8\u10e3\u10e1 \u10d2\u10d0\u10db\u10dd\u10e1\u10d0\u10eb\u10d0\u10ee\u10d4\u10d1\u10da\u10d0\u10d3. \u10d3\u10d0\u10d0\u10ed\u10d8\u10e0\u10d4\u10d7 ALT-F10\u10e1 \u10de\u10d0\u10dc\u10d4\u10da\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1. \u10d3\u10d0\u10d0\u10ed\u10d8\u10e0\u10d4\u10d7 ALT-0\u10e1 \u10d3\u10d0\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1",
+"Tools": "\u10d8\u10d0\u10e0\u10d0\u10e6\u10d4\u10d1\u10d8",
+"View": "\u10dc\u10d0\u10ee\u10d5\u10d0",
+"Table": "\u10ea\u10ee\u10e0\u10d8\u10da\u10d8",
+"Format": "\u10e4\u10dd\u10e0\u10db\u10d0\u10e2\u10d8"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ko_KR.js b/framework/Web/Javascripts/source/tinymce-405/langs/ko_KR.js
new file mode 100755
index 00000000..1f89ae4d
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ko_KR.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('ko_KR',{
+"Cut": "\uc798\ub77c\ub0b4\uae30",
+"Header 2": "\uc81c\ubaa9 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\ube0c\ub77c\uc6b0\uc838\uac00 \ud074\ub9bd\ubcf4\ub4dc \uc811\uadfc\uc744 \ud5c8\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. Ctrl+X\/C\/V \ud0a4\ub97c \uc774\uc6a9\ud574 \uc8fc\uc138\uc694.",
+"Div": "\uad6c\ubd84",
+"Paste": "\ubd99\uc5ec\ub123\uae30",
+"Close": "\ub2eb\uae30",
+"Pre": "Pre",
+"Align right": "\uc624\ub978\ucabd\uc815\ub82c",
+"New document": "\uc0c8 \ubb38\uc11c",
+"Blockquote": "\uad6c\ud68d",
+"Numbered list": "\uc22b\uc790\ub9ac\uc2a4\ud2b8",
+"Increase indent": "\ub4e4\uc5ec\uc4f0\uae30",
+"Formats": "\ud3ec\ub9f7",
+"Headers": "\uc2a4\ud0c0\uc77c",
+"Select all": "\uc804\uccb4\uc120\ud0dd",
+"Header 3": "\uc81c\ubaa9 3",
+"Blocks": "\ube14\ub85d \uc124\uc815",
+"Undo": "\uc2e4\ud589\ucde8\uc18c",
+"Strikethrough": "\ucde8\uc18c\uc120",
+"Bullet list": "\uc810\ub9ac\uc2a4\ud2b8",
+"Header 1": "\uc81c\ubaa9 1",
+"Superscript": "\uc717\ucca8\uc790",
+"Clear formatting": "\ud3ec\ub9f7\ucd08\uae30\ud654",
+"Subscript": "\uc544\ub798\ucca8\uc790",
+"Header 6": "\uc81c\ubaa9 6",
+"Redo": "\ub2e4\uc2dc\uc2e4\ud589",
+"Paragraph": "\ub2e8\ub77d",
+"Ok": "\ud655\uc778",
+"Bold": "\uad75\uac8c",
+"Code": "\ucf54\ub4dc",
+"Italic": "\uae30\uc6b8\uc784\uaf34",
+"Align center": "\uac00\uc6b4\ub370\uc815\ub82c",
+"Header 5": "\uc81c\ubaa9 5",
+"Decrease indent": "\ub0b4\uc5b4\uc4f0\uae30",
+"Header 4": "\uc81c\ubaa9 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\uc774 \uc635\uc158\uc744 \ub044\uc9c0 \uc54a\uc73c\uba74 \ub0b4\uc6a9\uc774 \uc77c\ubc18 \ud14d\uc2a4\ud2b8\ub85c \ubd99\uc5ec\ub123\uae30 \ub418\uc5b4\uc9d1\ub2c8\ub2e4.",
+"Underline": "\ubc11\uc904",
+"Cancel": "\ucde8\uc18c",
+"Justify": "\uc591\ucabd\uc815\ub82c",
+"Inline": "\ub77c\uc778 \uc124\uc815",
+"Copy": "\ubcf5\uc0ac\ud558\uae30",
+"Align left": "\uc67c\ucabd\uc815\ub82c",
+"Visual aids": "\uc2dc\uac01\uad50\uc7ac",
+"Lower Greek": "\uadf8\ub9ac\uc2a4\uc5b4 \uc18c\ubb38\uc790",
+"Square": "\uc0ac\uac01",
+"Default": "\uae30\ubcf8",
+"Lower Alpha": "\uc54c\ud30c\ubcb3 \uc18c\ubb38\uc790",
+"Circle": "\uc6d0",
+"Disc": "\uc6d0\ubc18",
+"Upper Alpha": "\uc54c\ud30c\ubcb3 \uc18c\ubb38\uc790",
+"Upper Roman": "\ub85c\ub9c8\uc790 \ub300\ubb38\uc790",
+"Lower Roman": "\ub85c\ub9c8\uc790 \uc18c\ubb38\uc790",
+"Name": "\uc774\ub984",
+"Anchor": "\uc575\ucee4",
+"You have unsaved changes are you sure you want to navigate away?": "\uc800\uc7a5\ud558\uc9c0 \uc54a\uc740 \uc815\ubcf4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud398\uc774\uc9c0\ub97c \ubc97\uc5b4\ub098\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",
+"Restore last draft": "\ub9c8\uc9c0\ub9c9 \ucd08\uc548 \ubcf5\uc6d0",
+"Special character": "\ud2b9\uc218\ubb38\uc790",
+"Source code": "\uc18c\uc2a4\ucf54\ub4dc",
+"Right to left": "\uc624\ub978\ucabd\uc5d0\uc11c \uc67c",
+"Left to right": "\uc67c\ucabd\uc5d0\uc11c \uc624\ub978",
+"Emoticons": "\uc774\ubaa8\ud2f0\ucf58",
+"Robots": "\ub85c\ubd07",
+"Document properties": "\ubb38\uc11c \uc18d\uc131",
+"Title": "\uc81c\ubaa9",
+"Keywords": "\ud0a4\uc6cc\ub4dc",
+"Encoding": "\uc778\ucf54",
+"Description": "\uc124\uba85",
+"Author": "\uc800",
+"Fullscreen": "\uc804\uccb4\ud654",
+"Horizontal line": "\uac00\ub85c",
+"Horizontal space": "\uc218\ud3c9 \uacf5\ubc31",
+"Insert\/edit image": "\uc774\ubbf8\uc9c0 \uc0bd\uc785\/\uc218\uc815",
+"General": "\uc77c\ubc18",
+"Advanced": "\uace0\uae09",
+"Source": "\uc18c\uc2a4",
+"Border": "\ud14c\ub450\ub9ac",
+"Constrain proportions": "\uc791\uc5c5 \uc81c\ud55c",
+"Vertical space": "\uc218\uc9c1 \uacf5\ubc31",
+"Image description": "\uc774\ubbf8\uc9c0 \uc124\uba85",
+"Style": "\uc2a4\ud0c0\uc77c",
+"Dimensions": "\ud06c\uae30",
+"Insert image": "\uc774\ubbf8\uc9c0 \uc0bd\uc785",
+"Insert date\/time": "\ub0a0\uc9dc\/\uc2dc\uac04\uc0bd\uc785",
+"Remove link": "\ub9c1\ud06c\uc0ad\uc81c",
+"Url": "\uc8fc\uc18c",
+"Text to display": "\ubcf8\ubb38",
+"Anchors": "\ucc45\uac08\ud53c",
+"Insert link": "\ub9c1\ud06c\uc0bd\uc785 ",
+"New window": "\uc0c8\ucc3d",
+"None": "\uc5c6\uc74c",
+"Target": "\ub300\uc0c1",
+"Insert\/edit link": "\ub9c1\ud06c \uc0bd\uc785\/\uc218\uc815",
+"Insert\/edit video": "\ube44\ub514\uc624 \uc0bd\uc785\/\uc218\uc815",
+"Poster": "\ud3ec\uc2a4\ud130",
+"Alternative source": "\ub300\uccb4 \uc18c\uc2a4",
+"Paste your embed code below:": "\uc544\ub798\uc5d0 \ucf54\ub4dc\ub97c \ubd99\uc5ec\ub123\uc73c\uc138\uc694:",
+"Insert video": "\ube44\ub514\uc624 \uc0bd\uc785",
+"Embed": "\uc0bd\uc785",
+"Nonbreaking space": "\ub744\uc5b4\uc4f0\uae30",
+"Page break": "\ud398\uc774\uc9c0 \uad6c\ubd84\uc790",
+"Paste as text": "\ud14d\uc2a4\ud2b8\ub85c \ubd99\uc5ec\ub123\uae30",
+"Preview": "\ubbf8\ub9ac\ubcf4\uae30",
+"Print": "\ucd9c\ub825",
+"Save": "\uc800\uc7a5",
+"Could not find the specified string.": "\ubb38\uc790\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",
+"Replace": "\uad50\uccb4",
+"Next": "\ub2e4\uc74c",
+"Whole words": "\uc804\uccb4 \ub2e8\uc5b4",
+"Find and replace": "\ucc3e\uc544\uc11c \uad50\uccb4",
+"Replace with": "\uad50\uccb4",
+"Find": "\ucc3e\uae30",
+"Replace all": "\uc804\uccb4 \uad50\uccb4",
+"Match case": "\ub300\uc18c\ubb38\uc790 \uc77c\uce58",
+"Prev": "\uc774\uc804",
+"Spellcheck": "\ubb38\ubc95\uccb4",
+"Finish": "\ub05d",
+"Ignore all": "\uc804\uccb4\ubb34",
+"Ignore": "\ubb34",
+"Insert row before": "\uc774\uc804\uc5d0 \ud589 \uc0bd\uc785",
+"Rows": "\ud589",
+"Height": "\ub192\uc774",
+"Paste row after": "\ub2e4\uc74c\uc5d0 \ud589 \ubd99\uc5ec\ub123\uae30",
+"Alignment": "\uc815\ub82c",
+"Column group": "\uc5f4 \uadf8\ub8f9",
+"Row": "\uc5f4",
+"Insert column before": "\uc774\uc804\uc5d0 \ud589 \uc0bd\uc785",
+"Split cell": "\uc140 \ub098\ub204\uae30",
+"Cell padding": "\uc140 \uc548\ucabd \uc5ec\ubc31",
+"Cell spacing": "\uc140 \uac04\uaca9",
+"Row type": "\ud589 \ud0c0\uc785",
+"Insert table": "\ud14c\uc774\ube14 \uc0bd\uc785",
+"Body": "\ubc14\ub514",
+"Caption": "\ucea1\uc158",
+"Footer": "\ud478\ud130",
+"Delete row": "\ud589 \uc9c0\uc6b0\uae30",
+"Paste row before": "\uc774\uc804\uc5d0 \ud589 \ubd99\uc5ec\ub123\uae30",
+"Scope": "\ubc94\uc704",
+"Delete table": "\ud14c\uc774\ube14 \uc0ad\uc81c",
+"Header cell": "\ud5e4\ub354 \uc140",
+"Column": "\ud589",
+"Cell": "\uc140",
+"Header": "\ud5e4\ub354",
+"Cell type": "\uc140 \ud0c0\uc785",
+"Copy row": "\ud589 \ubcf5\uc0ac",
+"Row properties": "\ud589 \uc18d\uc131",
+"Table properties": "\ud14c\uc774\ube14 \uc18d\uc131",
+"Row group": "\ud589 \uadf8\ub8f9",
+"Right": "\uc624\ub978\ucabd",
+"Insert column after": "\ub2e4\uc74c\uc5d0 \uc5f4 \uc0bd\uc785",
+"Cols": "\uc5f4",
+"Insert row after": "\ub2e4\uc74c\uc5d0 \ud589 \uc0bd\uc785",
+"Width": "\ub113\uc774",
+"Cell properties": "\uc140 \uc18d",
+"Left": "\uc67c\ucabd",
+"Cut row": "\ud589 \uc798\ub77c\ub0b4\uae30",
+"Delete column": "\uc5f4 \uc9c0\uc6b0\uae30",
+"Center": "\uac00\uc6b4\ub370",
+"Merge cells": "\uc140 \ud569\uce58\uae30",
+"Insert template": "\ud15c\ud50c\ub9bf \uc0bd\uc785",
+"Templates": "\ud15c\ud50c\ub9bf",
+"Background color": "\ubc30\uacbd\uc0c9",
+"Text color": "\ubb38\uc790 \uc0c9\uae54",
+"Show blocks": "\ube14\ub7ed \ubcf4\uc5ec\uc8fc\uae30",
+"Show invisible characters": "\uc548\ubcf4\uc774\ub294 \ubb38\uc790 \ubcf4\uc774\uae30",
+"Words: {0}": "\ub2e8\uc5b4: {0}",
+"Insert": "\uc0bd\uc785",
+"File": "\ud30c\uc77c",
+"Edit": "\uc218\uc815",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\uc11c\uc2dd \uc788\ub294 \ud14d\uc2a4\ud2b8 \ud3b8\uc9d1\uae30 \uc785\ub2c8\ub2e4. ALT-F9\ub97c \ub204\ub974\uba74 \uba54\ub274, ALT-F10\ub97c \ub204\ub974\uba74 \ud234\ubc14, ALT-0\uc744 \ub204\ub974\uba74 \ub3c4\uc6c0\ub9d0\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
+"Tools": "\ub3c4\uad6c",
+"View": "\ubcf4\uae30",
+"Table": "\ud14c\uc774\ube14",
+"Format": "\ud3ec\ub9f7"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/lb.js b/framework/Web/Javascripts/source/tinymce-405/langs/lb.js
new file mode 100755
index 00000000..76cba87f
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/lb.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('lb',{
+"Cut": "Ausschneiden",
+"Header 2": "Titel 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "D\u00e4i Web-Browser \u00ebnnerst\u00ebtzt keen direkten Acc\u00e8s op d'Zw\u00ebschenaplag. Benotz w.e.gl. CTRL+C fir den ausgewielten Text ze kop\u00e9ieren an CTRL+V fir en anzepechen.",
+"Div": "DIV",
+"Paste": "Apechen",
+"Close": "Zoumaachen",
+"Pre": "PRE",
+"Align right": "Riets align\u00e9iert",
+"New document": "Neit Dokument",
+"Blockquote": "Zitat",
+"Numbered list": "Nummer\u00e9iert L\u00ebscht",
+"Increase indent": "Ident\u00e9ierung vergr\u00e9isseren",
+"Formats": "Formater",
+"Headers": "Titelen",
+"Select all": "Alles auswielen",
+"Header 3": "Titel 3",
+"Blocks": "Bl\u00e9ck",
+"Undo": "R\u00e9ckg\u00e4ngeg maachen",
+"Strikethrough": "Duerchgestrach",
+"Bullet list": "Opzielung",
+"Header 1": "Titel 1",
+"Superscript": "H\u00e9ichgestallt",
+"Clear formatting": "Format\u00e9ierung l\u00e4schen",
+"Subscript": "Erofgestallt",
+"Header 6": "Titel 6",
+"Redo": "Widderhuelen",
+"Paragraph": "Paragraph",
+"Ok": "Okee",
+"Bold": "Fett",
+"Code": "CODE",
+"Italic": "Kursiv",
+"Align center": "Zentr\u00e9iert",
+"Header 5": "Titel 5",
+"Decrease indent": "Ident\u00e9ierung verklengeren",
+"Header 4": "Titel 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\"Apechen\" ass elo am Textmodus. Inhalter ginn elo ouni Format\u00e9ierungen agepecht bis du d\u00ebs Optioun ausm\u00e9chs.",
+"Underline": "\u00cbnnerstrach",
+"Cancel": "Ofbriechen",
+"Justify": "Blocksaz",
+"Inline": "Inline",
+"Copy": "Kop\u00e9ieren",
+"Align left": "L\u00e9nks align\u00e9iert",
+"Visual aids": "Visuell H\u00ebllefen",
+"Lower Greek": "Klengt griichescht Alphabet",
+"Square": "Quadrat",
+"Default": "Standard",
+"Lower Alpha": "Klengt Alphabet",
+"Circle": "Krees",
+"Disc": "Scheif",
+"Upper Alpha": "Grousst Alphabet",
+"Upper Roman": "Grousst r\u00e9imescht Alphabet",
+"Lower Roman": "Klengt r\u00e9imescht Alphabet",
+"Name": "Numm",
+"Anchor": "Anker",
+"You have unsaved changes are you sure you want to navigate away?": "Du hues ongesp\u00e4ichert \u00c4nnerungen. W\u00eblls du s\u00e9cher ewechnavig\u00e9ieren?",
+"Restore last draft": "Leschten Entworf er\u00ebm zr\u00e9cksetzen",
+"Special character": "Speziell Zeechen",
+"Source code": "Quelltext",
+"Right to left": "Vu riets no l\u00e9nks",
+"Left to right": "Vu l\u00e9nks no riets",
+"Emoticons": "Smileyen",
+"Robots": "Robotter",
+"Document properties": "Eegeschafte vum Dokument",
+"Title": "Titel",
+"Keywords": "Schl\u00ebsselwierder",
+"Encoding": "Cod\u00e9ierung",
+"Description": "Beschreiwung",
+"Author": "Auteur",
+"Fullscreen": "Vollbildschierm",
+"Horizontal line": "Horizontal Linn",
+"Horizontal space": "Horizontalen Espace",
+"Insert\/edit image": "Bild af\u00fcgen\/\u00e4nneren",
+"General": "Allgemeng",
+"Advanced": "Erweidert",
+"Source": "Quell",
+"Border": "Rand",
+"Constrain proportions": "Proportioune b\u00e4ibehalen",
+"Vertical space": "Vertikalen Espace",
+"Image description": "Bildbeschreiwung",
+"Style": "Stil",
+"Dimensions": "Dimensiounen",
+"Insert image": "Bild af\u00fcgen",
+"Insert date\/time": "Datum\/Z\u00e4it af\u00fcgen",
+"Remove link": "Link l\u00e4schen",
+"Url": "URL",
+"Text to display": "Text deen unzeweisen ass",
+"Anchors": "Ankeren",
+"Insert link": "Link drasetzen",
+"New window": "Nei F\u00ebnster",
+"None": "Keen",
+"Target": "Zil",
+"Insert\/edit link": "Link drasetzen\/\u00e4nneren",
+"Insert\/edit video": "Video drasetzen\/\u00e4nneren",
+"Poster": "Pouster",
+"Alternative source": "Alternativ Quell",
+"Paste your embed code below:": "Abannungscode hei apechen:",
+"Insert video": "Video drasetzen",
+"Embed": "Abannen",
+"Nonbreaking space": "Net-\u00ebmbriechenden Espace",
+"Page break": "S\u00e4iten\u00ebmbroch",
+"Paste as text": "Als Text apechen",
+"Preview": "Kucken",
+"Print": "Dr\u00e9cken",
+"Save": "Sp\u00e4icheren",
+"Could not find the specified string.": "Den Text konnt net fonnt ginn.",
+"Replace": "Ersetzen",
+"Next": "Weider",
+"Whole words": "Ganz Wierder",
+"Find and replace": "Fannen an ersetzen",
+"Replace with": "Ersetze mat",
+"Find": "Fannen",
+"Replace all": "All ersetzen",
+"Match case": "Grouss-\/Klengschreiwung respekt\u00e9ieren",
+"Prev": "Zr\u00e9ck",
+"Spellcheck": "Verbesseren",
+"Finish": "Ofschl\u00e9issen",
+"Ignore all": "All ignor\u00e9ieren",
+"Ignore": "Ignor\u00e9ieren",
+"Insert row before": "Rei virdrun drasetzen",
+"Rows": "Reien",
+"Height": "H\u00e9icht",
+"Paste row after": "Rei herno apechen",
+"Alignment": "Align\u00e9ierung",
+"Column group": "Kolonnegrupp",
+"Row": "Rei",
+"Insert column before": "Kolonn virdrun drasetzen",
+"Split cell": "Zell opspl\u00e9cken",
+"Cell padding": "Zellenopf\u00ebllung",
+"Cell spacing": "Zellenofstand",
+"Row type": "Reientyp",
+"Insert table": "Tabell drasetzen",
+"Body": "Kierper",
+"Caption": "Beschr\u00ebftung",
+"Footer": "Fouss",
+"Delete row": "Rei l\u00e4schen",
+"Paste row before": "Rei virdrun apechen",
+"Scope": "Ber\u00e4ich",
+"Delete table": "Tabell l\u00e4schen",
+"Header cell": "Kappzell",
+"Column": "Kolonn",
+"Cell": "Zell",
+"Header": "Kapp",
+"Cell type": "Zellentyp",
+"Copy row": "Rei kop\u00e9ieren",
+"Row properties": "Eegeschafte vu Reien",
+"Table properties": "Eegeschafte vun Tabellen",
+"Row group": "Reiegrupp",
+"Right": "Riets",
+"Insert column after": "Kolonn herno drasetzen",
+"Cols": "Kolonnen",
+"Insert row after": "Rei herno drasetzen",
+"Width": "Breet",
+"Cell properties": "Eegeschafte vun Zellen",
+"Left": "L\u00e9nks",
+"Cut row": "Rei ausschneiden",
+"Delete column": "Kolonn l\u00e4schen",
+"Center": "M\u00ebtt",
+"Merge cells": "Zelle fusion\u00e9ieren",
+"Insert template": "Virlag drasetzen",
+"Templates": "Virlagen",
+"Background color": "Hanndergrondfaarf",
+"Text color": "Textfaarf",
+"Show blocks": "Bl\u00e9ck weisen",
+"Show invisible characters": "Onsiichtbar Zeeche weisen",
+"Words: {0}": "Wierder: {0}",
+"Insert": "Drasetzen",
+"File": "Fichier",
+"Edit": "\u00c4nneren",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Ber\u00e4ich fir format\u00e9ierten Text. Dr\u00e9ck ALT+F9 fir de Men\u00fc. Dr\u00e9ck ALT+F10 fir d'Geschirleescht. Dr\u00e9ck ALT+0 fir d'H\u00ebllef.",
+"Tools": "Geschir",
+"View": "Kucken",
+"Table": "Tabell",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/lt.js b/framework/Web/Javascripts/source/tinymce-405/langs/lt.js
new file mode 100755
index 00000000..b008f308
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/lt.js
@@ -0,0 +1,76 @@
+tinymce.addI18n('lt',{
+"Cut": "I\u0161kirpti",
+"Header 2": "Antra\u0161t\u0117 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Nar\u0161ykl\u0117s nustatymai neleid\u017eia redaktoriui tiesiogiai pasiekti laikinosios atminties. Pra\u0161ome naudoti klaviat\u016bros klavi\u0161us Ctrl+X\/C\/V.",
+"Div": "Div",
+"Paste": "\u012ed\u0117ti",
+"Close": "U\u017edaryti",
+"Pre": "Pre",
+"Align right": "Lygiuoti de\u0161in\u0117je",
+"New document": "Naujas dokumentas",
+"Blockquote": "Citata",
+"Numbered list": "Skaitmeninis s\u0105ra\u0161as",
+"Increase indent": "Didinti \u012ftrauk\u0105",
+"Formats": "Formatai",
+"Headers": "Antra\u0161t\u0117s",
+"Select all": "Pa\u017eym\u0117ti visk\u0105",
+"Header 3": "Antra\u0161t\u0117 3",
+"Blocks": "Blokai",
+"Undo": "Atstatyti",
+"Strikethrough": "Perbrauktas",
+"Bullet list": "\u017denklinimo s\u0105ra\u0161as",
+"Header 1": "Antra\u0161t\u0117 1",
+"Superscript": "Vir\u0161utinis indeksas",
+"Clear formatting": "Naikinti formatavim\u0105",
+"Subscript": "Apatinis indeksas",
+"Header 6": "Antra\u0161t\u0117 6",
+"Redo": "Gr\u0105\u017einti",
+"Paragraph": "Paragrafas",
+"Ok": "Gerai",
+"Bold": "Pary\u0161kintas",
+"Code": "Kodas",
+"Italic": "Kursyvinis",
+"Align center": "Centruoti",
+"Header 5": "Antra\u0161t\u0117 5",
+"Decrease indent": "Ma\u017einti \u012ftrauk\u0105",
+"Header 4": "Antra\u0161t\u0117 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Dabar \u012fterpiama paprastojo teksto re\u017eimu. Kol \u0161i parinktis \u012fjungta, turinys bus \u012fterptas kaip paprastas tekstas.",
+"Underline": "Pabrauktas",
+"Cancel": "Atsisakyti",
+"Justify": "I\u0161d\u0117styti per vis\u0105 plot\u012f",
+"Inline": "Inline",
+"Copy": "Kopijuoti",
+"Align left": "Lygiuoti kair\u0117je",
+"Visual aids": "Vaizdin\u0117s priemon\u0117s",
+"Lower Greek": "Ma\u017eosios graik\u0173",
+"Square": "Kvadratas",
+"Default": "Pagrindinis",
+"Lower Alpha": "Ma\u017eosios raid\u0117s",
+"Circle": "Apskritimas",
+"Disc": "Diskas",
+"Upper Alpha": "Did\u017eiosios raid\u0117s",
+"Upper Roman": "Did\u017eiosios rom\u0117n\u0173",
+"Lower Roman": "Ma\u017eosios rom\u0117n\u0173",
+"Emoticons": "Jaustukai",
+"Horizontal space": "Horizontalus tarpas",
+"Insert\/edit image": "\u012eterpti|Tvarkyti paveiksl\u0117l\u012f",
+"General": "Pagrindinis",
+"Advanced": "I\u0161pl\u0117stas",
+"Source": "Pirmin\u0117 nuoroda",
+"Border": "R\u0117melis",
+"Constrain proportions": "Taikyti proporcijas",
+"Vertical space": "Vertikalus tarpas",
+"Image description": "Paveiksl\u0117lio apra\u0161as",
+"Style": "Stilius",
+"Dimensions": "Matmenys",
+"Insert image": "\u012eterpti paveiksl\u0117l\u012f",
+"Remove link": "\u0160alinti nuorod\u0105",
+"Url": "Nuoroda",
+"Text to display": "Rodomas tekstas",
+"Insert link": "\u012eterpti nuorod\u0105",
+"New window": "Naujas langas",
+"None": "Niekas",
+"Target": "Tikslin\u0117 nuoroda",
+"Insert\/edit link": "\u012eterpti\/taisyti nuorod\u0105",
+"Show invisible characters": "Rodyti nematomus simbolius"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/lv.js b/framework/Web/Javascripts/source/tinymce-405/langs/lv.js
new file mode 100755
index 00000000..e85bed57
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/lv.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('lv',{
+"Cut": "Izgriezt",
+"Header 2": "Otr\u0101 l\u012bme\u0146a virsraksts",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "J\u016bsu p\u0101rl\u016bkprogramma neatbalsta piek\u013cuvi starpliktuvei. L\u016bdzu izmantojiet Ctrl+X\/C\/V klaviat\u016bras sa\u012bsnes.",
+"Div": "Div elements",
+"Paste": "Iel\u012bm\u0113t",
+"Close": "Aizv\u0113rt",
+"Pre": "Pre elements",
+"Align right": "L\u012bdzin\u0101t pa labi",
+"New document": "Jauns dokuments",
+"Blockquote": "Cit\u0101ts",
+"Numbered list": "Numur\u0113ts saraksts",
+"Increase indent": "Palielin\u0101t atk\u0101pi",
+"Formats": "Form\u0101ti",
+"Headers": "Virsraksti",
+"Select all": "Iez\u012bm\u0113t",
+"Header 3": "Tre\u0161\u0101 l\u012bme\u0146a virsraksts",
+"Blocks": "Bloka elements",
+"Undo": "Atsaukt",
+"Strikethrough": "P\u0101rsv\u012btrot",
+"Bullet list": "Nenumuer\u0113ts saraksts",
+"Header 1": "Pirm\u0101 l\u012bme\u0146a virsraksts",
+"Superscript": "Aug\u0161raksts",
+"Clear formatting": "No\u0146emt format\u0113jumu",
+"Subscript": "Apak\u0161raksts",
+"Header 6": "Sest\u0101 l\u012bme\u0146a virsraksts",
+"Redo": "Atcelt atsauk\u0161anu",
+"Paragraph": "Paragr\u0101fs",
+"Ok": "Labi",
+"Bold": "Treknraksts",
+"Code": "Koda elements",
+"Italic": "Kurs\u012bvs",
+"Align center": "Centr\u0113t",
+"Header 5": "Piekt\u0101 l\u012bme\u0146a virsraksts",
+"Decrease indent": "Samazin\u0101t atk\u0101pi",
+"Header 4": "Ceturt\u0101 l\u012bme\u0146a virsraksts",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Iel\u012bm\u0113\u0161ana tagad ir vienk\u0101r\u0161teksta re\u017e\u012bm\u0101. Saturs tiks iel\u012bm\u0113ts k\u0101 vienk\u0101r\u0161teksts, l\u012bdz \u0161\u012b opcija tiks atsl\u0113gta.",
+"Underline": "Pasv\u012btrot",
+"Cancel": "Atcelt",
+"Justify": "L\u012bdzin\u0101t abas malas",
+"Inline": "Rindi\u0146as elements",
+"Copy": "Kop\u0113t",
+"Align left": "L\u012bdzin\u0101t pa kreisi",
+"Visual aids": "Uzskates l\u012bdzek\u013ci",
+"Lower Greek": "Grie\u0137u mazie burti",
+"Square": "Kvadr\u0101ts",
+"Default": "Noklus\u0113juma",
+"Lower Alpha": "Lat\u012b\u0146u mazie burti",
+"Circle": "Aplis",
+"Disc": "Disks",
+"Upper Alpha": "Lat\u012b\u0146u lielie burti",
+"Upper Roman": "Romie\u0161u lielie burti",
+"Lower Roman": "Romie\u0161u mazie burti",
+"Name": "V\u0101rds",
+"Anchor": "Enkurelements",
+"You have unsaved changes are you sure you want to navigate away?": "Jums ir nesaglab\u0101tas izmai\u0146as, esat dro\u0161s, ka v\u0113laties doties prom",
+"Restore last draft": "Atjaunot p\u0113d\u0113jo melnrakstu",
+"Special character": "\u012apa\u0161ais simbols",
+"Source code": "Pirmkods",
+"Right to left": "No lab\u0101s uz kreiso",
+"Left to right": "No kreis\u0101s uz labo",
+"Emoticons": "Emocijas",
+"Robots": "Programmas",
+"Document properties": "Dokumenta uzst\u0101d\u012bjumi",
+"Title": "Nosaukums",
+"Keywords": "Atsl\u0113gv\u0101rdi",
+"Encoding": "Kod\u0113jums",
+"Description": "Apraksts",
+"Author": "Autors",
+"Fullscreen": "Pilnekr\u0101na re\u017e\u012bms",
+"Horizontal line": "Horizont\u0101la l\u012bnija",
+"Horizontal space": "Horizont\u0101l\u0101 vieta",
+"Insert\/edit image": "Ievietot\/labot att\u0113lu",
+"General": "Visp\u0101r\u012bgi",
+"Advanced": "Papildus",
+"Source": "Avots",
+"Border": "Apmale",
+"Constrain proportions": "Saglab\u0101t malu attiec\u012bbu",
+"Vertical space": "Vertik\u0101l\u0101 vieta",
+"Image description": "Att\u0113la apraksts",
+"Style": "Stils",
+"Dimensions": "Izm\u0113ri",
+"Insert image": "Ievietot att\u0113lu",
+"Insert date\/time": "Ievietot datumu\/laiku",
+"Remove link": "No\u0146emt saiti",
+"Url": "Adrese",
+"Text to display": "Teksts",
+"Anchors": "Enkurelements",
+"Insert link": "Ievietot saiti",
+"New window": "Jauns logs",
+"None": "Nek\u0101",
+"Target": "M\u0113r\u0137is",
+"Insert\/edit link": "Ievietot\/labot saiti",
+"Insert\/edit video": "Ievietot\/redi\u0123\u0113t video",
+"Poster": "Att\u0113ls",
+"Alternative source": "Alternat\u012bvs avots",
+"Paste your embed code below:": "Iekop\u0113jiet embed kodu zem\u0101k:",
+"Insert video": "Ievietot video",
+"Embed": "Embed",
+"Nonbreaking space": "L\u012bnij-nedalo\u0161s atstarpes simbols",
+"Page break": "P\u0101rnest jaun\u0101 lap\u0101",
+"Paste as text": "Iel\u012bm\u0113t k\u0101 tekstu",
+"Preview": "Priek\u0161skat\u012bjums",
+"Print": "Print\u0113t",
+"Save": "Saglab\u0101t",
+"Could not find the specified string.": "Mekl\u0113tais teksts netika atrasts",
+"Replace": "Aizvietot",
+"Next": "N\u0101ko\u0161ais",
+"Whole words": "Pilnus v\u0101rdus",
+"Find and replace": "Mekl\u0113t un aizvietot",
+"Replace with": "Aizvietot ar",
+"Find": "Mekl\u0113t",
+"Replace all": "Aizvietot visu",
+"Match case": "Re\u0123istrj\u016bt\u012bgs",
+"Prev": "Iepriek\u0161\u0113jais",
+"Spellcheck": "Pareizrakst\u012bbas p\u0101rbaude",
+"Finish": "Beigt",
+"Ignore all": "Ignor\u0113t visu",
+"Ignore": "Ignor\u0113t",
+"Insert row before": "Ievietot rindu pirms",
+"Rows": "Rindas",
+"Height": "Augstums",
+"Paste row after": "Iel\u012bm\u0113t rindu p\u0113c",
+"Alignment": "L\u012bdzin\u0101jums",
+"Column group": "Kolonnu grupa",
+"Row": "Rinda",
+"Insert column before": "Ievietot kolonu pirms",
+"Split cell": "Sadal\u012bt \u0161\u016bnas",
+"Cell padding": "\u0160\u016bnas atstatumi",
+"Cell spacing": "\u0160\u016bnu atstarpes",
+"Row type": "Rindas tips",
+"Insert table": "Ievietot tabulu",
+"Body": "\u0136ermenis",
+"Caption": "Virsraksts",
+"Footer": "K\u0101jene",
+"Delete row": "Dz\u0113st rindu",
+"Paste row before": "Iel\u012bm\u0113t rindu pirms",
+"Scope": "Apgabals",
+"Delete table": "Dz\u0113st tabulu",
+"Header cell": "Galvenes \u0161\u016bna",
+"Column": "Kolona",
+"Cell": "\u0160\u016bna",
+"Header": "Galvene",
+"Cell type": "\u0160\u016bnas tips",
+"Copy row": "Kop\u0113t rindu",
+"Row properties": "Rindas uzst\u0101d\u012bjumi",
+"Table properties": "Tabulas uzst\u0101d\u012bjumi",
+"Row group": "Rindu grupa",
+"Right": "Pa labi",
+"Insert column after": "Ievietot kolonu p\u0113c",
+"Cols": "Kolonas",
+"Insert row after": "Ievietot rindu p\u0113c",
+"Width": "Platums",
+"Cell properties": "\u0160\u016bnas uzst\u0101d\u012bjumi",
+"Left": "Pa kreisi",
+"Cut row": "Izgriezt rindu",
+"Delete column": "Dz\u0113st kolonu",
+"Center": "Centr\u0113t",
+"Merge cells": "Apvienot \u0161\u016bnas",
+"Insert template": "Ievietot \u0161ablonu",
+"Templates": "\u0160abloni",
+"Background color": "Fona kr\u0101sa",
+"Text color": "Teksta kr\u0101sa",
+"Show blocks": "R\u0101d\u012bt blokus",
+"Show invisible characters": "R\u0101d\u012bt neredzam\u0101s rakstz\u012bmes",
+"Words: {0}": "V\u0101rdi: {0}",
+"Insert": "Ievietot",
+"File": "Fails",
+"Edit": "Labot",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Vizu\u0101li redi\u0123\u0113jama teksta apgabals. Nospiediet ALT-F9 izv\u0113lnei, ALT-F10 r\u012bkjoslai vai ALT-0 pal\u012bdz\u012bbai.",
+"Tools": "R\u012bki",
+"View": "Skat\u012bt",
+"Table": "Tabula",
+"Format": "Form\u0101ts"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/nb_NO.js b/framework/Web/Javascripts/source/tinymce-405/langs/nb_NO.js
new file mode 100755
index 00000000..4eb851ed
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/nb_NO.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('nb_NO',{
+"Cut": "Klipp ut",
+"Header 2": "Overskrift 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Nettleseren din st\u00f8tter ikke direkte tilgang til utklippsboken. Bruk istedet tastatur-snarveiene Ctrl+X\/C\/V, eller Cmd+X\/C\/V p\u00e5 Mac.",
+"Div": "Div",
+"Paste": "Lim inn",
+"Close": "Lukk",
+"Pre": "Pre",
+"Align right": "H\u00f8yrejustert",
+"New document": "Nytt dokument",
+"Blockquote": "Blokksitat",
+"Numbered list": "Nummerliste",
+"Increase indent": "\u00d8k innrykk",
+"Formats": "Stiler",
+"Headers": "Overskrifter",
+"Select all": "Marker alt",
+"Header 3": "Overskrift 3",
+"Blocks": "Blokker",
+"Undo": "Angre",
+"Strikethrough": "Gjennomstreket",
+"Bullet list": "Punktliste",
+"Header 1": "Overskrift 1",
+"Superscript": "Hevet skrift",
+"Clear formatting": "Fjern formateringer",
+"Subscript": "Senket skrift",
+"Header 6": "Overskrift 6",
+"Redo": "Utf\u00f8r likevel",
+"Paragraph": "Avsnitt",
+"Ok": "OK",
+"Bold": "Halvfet",
+"Code": "Kode",
+"Italic": "Kursiv",
+"Align center": "Midtstilt",
+"Header 5": "Overskrift 5",
+"Decrease indent": "Reduser innrykk",
+"Header 4": "Overskrift 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Lim inn - er n\u00e5 i ren-tekst modus. Kopiert innhold vil bli limt inn som ren-tekst inntil du sl\u00e5r av dette valget.",
+"Underline": "Understreket",
+"Cancel": "Avbryt",
+"Justify": "Juster alle linjer",
+"Inline": "Innkapslet - inline",
+"Copy": "Kopier",
+"Align left": "Venstrejustert",
+"Visual aids": "Visuelle hjelpemidler",
+"Lower Greek": "Greske minuskler",
+"Square": "Fylt firkant",
+"Default": "Normal",
+"Lower Alpha": "Minuskler",
+"Circle": "\u00c5pen sirkel",
+"Disc": "Fylt sirkel",
+"Upper Alpha": "Versaler",
+"Upper Roman": "Romerske versaler",
+"Lower Roman": "Romerske minuskler",
+"Name": "Navn",
+"Anchor": "Anker",
+"You have unsaved changes are you sure you want to navigate away?": "Endringer er ikke arkivert. Vil du fortsette uten \u00e5 arkivere endringer?",
+"Restore last draft": "Gjenopprett siste utkast",
+"Special character": "Spesialtegn",
+"Source code": "Kildekode",
+"Right to left": "H\u00f8yre til venstre",
+"Left to right": "Venstre til h\u00f8yre",
+"Emoticons": "Emoticons",
+"Robots": "Roboter",
+"Document properties": "Dokumentegenskaper",
+"Title": "Tittel",
+"Keywords": "N\u00f8kkelord",
+"Encoding": "Tegnkoding",
+"Description": "Beskrivelse",
+"Author": "Forfatter",
+"Fullscreen": "Fullskjerm",
+"Horizontal line": "Horisontal linje",
+"Horizontal space": "Horisontal marg",
+"Insert\/edit image": "Sett inn\/endre bilde",
+"General": "Generelt",
+"Advanced": "Avansert",
+"Source": "Bildelenke",
+"Border": "Ramme",
+"Constrain proportions": "Behold proporsjoner",
+"Vertical space": "Vertikal marg",
+"Image description": "Bildebeskrivelse",
+"Style": "Stil",
+"Dimensions": "Dimensjoner",
+"Insert image": "Sett inn bilde",
+"Insert date\/time": "Sett inn dato\/tid",
+"Remove link": "Fjern lenke",
+"Url": "Url",
+"Text to display": "Tekst som skal vises",
+"Anchors": "Anker",
+"Insert link": "Sett inn lenke",
+"New window": "Nytt vindu",
+"None": "Ingen",
+"Target": "M\u00e5l",
+"Insert\/edit link": "Sett inn\/endre lenke",
+"Insert\/edit video": "Sett inn\/endre video",
+"Poster": "Poster",
+"Alternative source": "Alternativ kilde",
+"Paste your embed code below:": "Lim inn inkluderings-koden nedenfor",
+"Insert video": "Sett inn video",
+"Embed": "Inkluder",
+"Nonbreaking space": "Hardt mellomrom",
+"Page break": "Sideskifte",
+"Paste as text": "Lim inn som tekst",
+"Preview": "Forh\u00e5ndsvisning",
+"Print": "Skriv ut",
+"Save": "Arkiver",
+"Could not find the specified string.": "Kunne ikke finne den spesifiserte teksten",
+"Replace": "Erstatt",
+"Next": "Neste",
+"Whole words": "Hele ord",
+"Find and replace": "Finn og erstatt",
+"Replace with": "Erstatt med",
+"Find": "Finn",
+"Replace all": "Erstatt alle",
+"Match case": "Match store og sm\u00e5 bokstaver",
+"Prev": "Forrige",
+"Spellcheck": "Stavekontroll",
+"Finish": "Avslutt",
+"Ignore all": "Ignorer alle",
+"Ignore": "Ignorer",
+"Insert row before": "Sett inn rad f\u00f8r",
+"Rows": "Rader",
+"Height": "H\u00f8yde",
+"Paste row after": "Lim inn rad etter",
+"Alignment": "Justering",
+"Column group": "Kolonnegruppe",
+"Row": "Rad",
+"Insert column before": "Sett inn kolonne f\u00f8r",
+"Split cell": "Splitt celle",
+"Cell padding": "Celle rammemarg",
+"Cell spacing": "Celleavstand",
+"Row type": "Radtype",
+"Insert table": "Sett inn tabell",
+"Body": "Br\u00f8dtekst",
+"Caption": "Tittel",
+"Footer": "Bunntekst",
+"Delete row": "Slett rad",
+"Paste row before": "Lim inn rad f\u00f8r",
+"Scope": "Omfang",
+"Delete table": "Slett tabell",
+"Header cell": "Topptekst celle",
+"Column": "Kolonne",
+"Cell": "Celle",
+"Header": "Topptekst",
+"Cell type": "Celletype",
+"Copy row": "Kopier rad",
+"Row properties": "Rad egenskaper",
+"Table properties": "Tabell egenskaper",
+"Row group": "Radgruppe",
+"Right": "H\u00f8yre",
+"Insert column after": "Sett inn kolonne etter",
+"Cols": "Kolonner",
+"Insert row after": "Sett in rad etter",
+"Width": "Bredde",
+"Cell properties": "Celle egenskaper",
+"Left": "Venstre",
+"Cut row": "Klipp ut rad",
+"Delete column": "Slett kolonne",
+"Center": "Midtstilt",
+"Merge cells": "Sl\u00e5 sammen celler",
+"Insert template": "Sett inn mal",
+"Templates": "Maler",
+"Background color": "Bakgrunnsfarge",
+"Text color": "Tekstfarge",
+"Show blocks": "Vis blokker",
+"Show invisible characters": "Vis usynlige tegn",
+"Words: {0}": "Antall ord: {0}",
+"Insert": "Sett inn",
+"File": "Arkiv",
+"Edit": "Rediger",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Tekstredigering. Tast ALT-F9 for meny. Tast ALT-F10 for verkt\u00f8ys-rader. Trykk ALT-0 for hjelp.",
+"Tools": "Verkt\u00f8y",
+"View": "Vis",
+"Table": "Tabell",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/nl.js b/framework/Web/Javascripts/source/tinymce-405/langs/nl.js
new file mode 100755
index 00000000..92b6dcef
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/nl.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('nl',{
+"Cut": "Knippen",
+"Header 2": "Kop 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Uw browser ondersteunt geen toegang tot het clipboard. Gelieve ctrl+X\/C\/V sneltoetsen te gebruiken.",
+"Div": "Div",
+"Paste": "Plakken",
+"Close": "Sluiten",
+"Pre": "Pre",
+"Align right": "Rechts uitlijnen",
+"New document": "Nieuw document",
+"Blockquote": "Quote",
+"Numbered list": "Nummering",
+"Increase indent": "Inspringen vergroten",
+"Formats": "Opmaak",
+"Headers": "Kopteksten",
+"Select all": "Alles selecteren",
+"Header 3": "Hoofding 3",
+"Blocks": "Blok",
+"Undo": "Ongedaan maken",
+"Strikethrough": "Doorhalen",
+"Bullet list": "Opsommingsteken",
+"Header 1": "Kop 1",
+"Superscript": "Superscript",
+"Clear formatting": "Opmaak verwijderen",
+"Subscript": "Subscript",
+"Header 6": "Hoofding 6",
+"Redo": "Opnieuw",
+"Paragraph": "Paragraaf",
+"Ok": "Ok\u00e9",
+"Bold": "Vet",
+"Code": "Code",
+"Italic": "Schuin",
+"Align center": "Centreren",
+"Header 5": "Hoofding 5",
+"Decrease indent": "Inspringen verkleinen",
+"Header 4": "Hoofding 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Plakken gebeurt nu als platte tekst. Tekst wordt nu ingevoegd zonder opmaak tenzij deze optie uitgeschakeld wordt.",
+"Underline": "Onderstreept",
+"Cancel": "Annuleren",
+"Justify": "Uitlijnen",
+"Inline": "Inlijn",
+"Copy": "Kopi\u00ebren",
+"Align left": "Links uitlijnen",
+"Visual aids": "Hulpmiddelen",
+"Lower Greek": "greek verlagen",
+"Square": "Vierkant",
+"Default": "Standaard",
+"Lower Alpha": "Kleine letters",
+"Circle": "Cirkel",
+"Disc": "Bolletje",
+"Upper Alpha": "Hoofdletters",
+"Upper Roman": "Roman vergroten",
+"Lower Roman": "Roman verlagen",
+"Name": "Naam",
+"Anchor": "Anker",
+"You have unsaved changes are you sure you want to navigate away?": "U hebt niet alles opgeslagen bent u zeker dat u de pagina wenst te verlaten?",
+"Restore last draft": "Herstel het laatste concept",
+"Special character": "Speciale karakters",
+"Source code": "Broncode",
+"Right to left": "Rechts naar links",
+"Left to right": "Links naar rechts",
+"Emoticons": "Emoticons",
+"Robots": "Robots",
+"Document properties": "Document eigenschappen",
+"Title": "Titel",
+"Keywords": "Sleutelwoorden",
+"Encoding": "Codering",
+"Description": "Omschrijving",
+"Author": "Auteur",
+"Fullscreen": "Volledig scherm",
+"Horizontal line": "Horizontale lijn",
+"Horizontal space": "Horizontale spatie",
+"Insert\/edit image": "afbeelding invoegen\/bewerken",
+"General": "Algemeen",
+"Advanced": "geavanceerd",
+"Source": "Bron",
+"Border": "Rand",
+"Constrain proportions": "verhoudingen behouden",
+"Vertical space": "Verticale spatie",
+"Image description": "Afbeelding omschrijving",
+"Style": "Stijl",
+"Dimensions": "Afmetingen",
+"Insert image": "Afbeelding invoegen",
+"Insert date\/time": "Voeg datum\/tijd in",
+"Remove link": "Link verwijderen",
+"Url": "Url",
+"Text to display": "Linktekst",
+"Anchors": "Anker",
+"Insert link": "Hyperlink invoegen",
+"New window": "Nieuw venster",
+"None": "Geen",
+"Target": "doel",
+"Insert\/edit link": "Hyperlink invoegen\/bewerken",
+"Insert\/edit video": "Video invoegen\/bewerken",
+"Poster": "Poster",
+"Alternative source": "Alternatieve bron",
+"Paste your embed code below:": "Plak u in te sluiten code hieronder:",
+"Insert video": "Video invoegen",
+"Embed": "insluiten",
+"Nonbreaking space": "Vaste spatie invoegen",
+"Page break": "Pagina einde",
+"Paste as text": "Plakken",
+"Preview": "Voorbeeld",
+"Print": "Print",
+"Save": "Opslaan",
+"Could not find the specified string.": "Geen resultaten gevonden",
+"Replace": "Vervangen",
+"Next": "Volgende",
+"Whole words": "alleen hele worden",
+"Find and replace": "Zoek en vervang",
+"Replace with": "Vervangen door",
+"Find": "Zoeken",
+"Replace all": "Vervang allemaal",
+"Match case": "Overeenkomen",
+"Prev": "Vorige",
+"Spellcheck": "Spellingscontrole",
+"Finish": "Einde",
+"Ignore all": "Alles negeren",
+"Ignore": "Negeren",
+"Insert row before": "Voeg rij boven toe",
+"Rows": "Rijen",
+"Height": "Hoogte",
+"Paste row after": "Plak rij achter",
+"Alignment": "uitlijning",
+"Column group": "kolom groep",
+"Row": "Rij",
+"Insert column before": "Voeg kolom in voor",
+"Split cell": "Cel splitsen",
+"Cell padding": "cel pading",
+"Cell spacing": "celruimte",
+"Row type": "Rij type",
+"Insert table": "Tabel invoegen",
+"Body": "Body",
+"Caption": "onderschrift",
+"Footer": "voettekst",
+"Delete row": "Verwijder rij",
+"Paste row before": "Plak rij voor",
+"Scope": "wijdte",
+"Delete table": "Verwijder tabel",
+"Header cell": "koptekstcel",
+"Column": "Kolom",
+"Cell": "Cel",
+"Header": "hoofdtekst",
+"Cell type": "cel type",
+"Copy row": "Kopieer rij",
+"Row properties": "Rij eigenschappen",
+"Table properties": "Tabel eigenschappen",
+"Row group": "rij groep",
+"Right": "Rechts",
+"Insert column after": "Voeg kolom in na",
+"Cols": "kollomen",
+"Insert row after": "Voeg rij onder toe",
+"Width": "Breedte",
+"Cell properties": "Cel eigenschappen",
+"Left": "Links",
+"Cut row": "Knip rij",
+"Delete column": "Verwijder kolom",
+"Center": "Midden",
+"Merge cells": "Cellen samenvoegen",
+"Insert template": "Sjabloon invoegen",
+"Templates": "Sjablonen",
+"Background color": "Achtergrondkleur",
+"Text color": "Tekstkleur",
+"Show blocks": "Blokken tonen",
+"Show invisible characters": "Onzichtbare karakters tonen",
+"Words: {0}": "Woorden: {0}",
+"Insert": "Invoegen",
+"File": "Bestand",
+"Edit": "Bewerken",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Druk ALT-F9 voor de menu. Druk ALT-F10 voor de toolbar. Druk ALT-0 voor de help.",
+"Tools": "gereedschap",
+"View": "Beeld",
+"Table": "Tabel",
+"Format": "Opmaak"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/pl.js b/framework/Web/Javascripts/source/tinymce-405/langs/pl.js
new file mode 100755
index 00000000..953966d2
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/pl.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('pl',{
+"Cut": "Wytnij",
+"Header 2": "Nag\u0142\u00f3wek 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Twoja przegl\u0105darka nie obs\u0142uguje bezpo\u015bredniego dost\u0119pu do schowka. U\u017cyj zamiast tego kombinacji klawiszy Ctrl+X\/C\/V.",
+"Div": "Div",
+"Paste": "Wklej",
+"Close": "Zamknij",
+"Pre": "Sformatowany tekst",
+"Align right": "Wyr\u00f3wnaj do prawej",
+"New document": "Nowy dokument",
+"Blockquote": "Blok cytatu",
+"Numbered list": "Lista numerowana",
+"Increase indent": "Zwi\u0119ksz wci\u0119cie",
+"Formats": "Formaty",
+"Headers": "Nag\u0142\u00f3wki",
+"Select all": "Zaznacz wszystko",
+"Header 3": "Nag\u0142\u00f3wek 3",
+"Blocks": "Bloki",
+"Undo": "Cofnij",
+"Strikethrough": "Przekre\u015blenie",
+"Bullet list": "Lista wypunktowana",
+"Header 1": "Nag\u0142\u00f3wek 1",
+"Superscript": "Indeks g\u00f3rny",
+"Clear formatting": "Wyczy\u015b\u0107 formatowanie",
+"Subscript": "Indeks dolny",
+"Header 6": "Nag\u0142\u00f3wek 6",
+"Redo": "Pon\u00f3w",
+"Paragraph": "Akapit",
+"Ok": "Ok",
+"Bold": "Pogrubienie",
+"Code": "Kod \u017ar\u00f3d\u0142owy",
+"Italic": "Kursywa",
+"Align center": "Wyr\u00f3wnaj do \u015brodka",
+"Header 5": "Nag\u0142\u00f3wek 5",
+"Decrease indent": "Zmniejsz wci\u0119cie",
+"Header 4": "Nag\u0142\u00f3wek 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Wklejanie jest w trybie tekstowym. Zawarto\u015b\u0107 zostanie wklejona jako zwyk\u0142y tekst dop\u00f3ki nie wy\u0142\u0105czysz tej opcji.",
+"Underline": "Podkre\u015blenie",
+"Cancel": "Anuluj",
+"Justify": "Wyjustuj",
+"Inline": "W tek\u015bcie",
+"Copy": "Kopiuj",
+"Align left": "Wyr\u00f3wnaj do lewej",
+"Visual aids": "Pomoce wizualne",
+"Lower Greek": "Ma\u0142e greckie",
+"Square": "Kwadrat",
+"Default": "Domy\u015blne",
+"Lower Alpha": "Ma\u0142e litery",
+"Circle": "K\u00f3\u0142ko",
+"Disc": "Dysk",
+"Upper Alpha": "Wielkie litery",
+"Upper Roman": "Wielkie rzymskie",
+"Lower Roman": "Ma\u0142e rzymskie",
+"Name": "Nazwa",
+"Anchor": "Kotwica",
+"You have unsaved changes are you sure you want to navigate away?": "Masz niezapisane zmiany. Czy na pewno chcesz opu\u015bci\u0107 stron\u0119?",
+"Restore last draft": "Przywr\u00f3\u0107 ostatni szkic",
+"Special character": "Znak specjalny",
+"Source code": "Kod \u017ar\u00f3d\u0142owy",
+"Right to left": "Od prawej do lewej",
+"Left to right": "Od lewej do prawej",
+"Emoticons": "Emotikony",
+"Robots": "Roboty",
+"Document properties": "W\u0142a\u015bciwo\u015bci dokumentu",
+"Title": "Tytu\u0142",
+"Keywords": "S\u0142owa kluczowe",
+"Encoding": "Kodowanie",
+"Description": "Opis",
+"Author": "Autor",
+"Fullscreen": "Pe\u0142ny ekran",
+"Horizontal line": "Pozioma linia",
+"Horizontal space": "Odst\u0119p poziomy",
+"Insert\/edit image": "Wstaw\/edytuj obrazek",
+"General": "Og\u00f3lne",
+"Advanced": "Zaawansowane",
+"Source": "\u0179r\u00f3d\u0142o",
+"Border": "Ramka",
+"Constrain proportions": "Zachowaj proporcje",
+"Vertical space": "Odst\u0119p pionowy",
+"Image description": "Opis obrazka",
+"Style": "Styl",
+"Dimensions": "Wymiary",
+"Insert image": "Wstaw obrazek",
+"Insert date\/time": "Wstaw dat\u0119\/czas",
+"Remove link": "Usu\u0144 link",
+"Url": "Url",
+"Text to display": "Tekst do wy\u015bwietlenia",
+"Anchors": "Kotwice",
+"Insert link": "Wstaw link",
+"New window": "Nowe okno",
+"None": "\u017baden",
+"Target": "Cel",
+"Insert\/edit link": "Wstaw\/edytuj link",
+"Insert\/edit video": "Wstaw\/edytuj wideo",
+"Poster": "Plakat",
+"Alternative source": "Alternatywne \u017ar\u00f3d\u0142o",
+"Paste your embed code below:": "Wklej tutaj kod do osadzenia:",
+"Insert video": "Wstaw wideo",
+"Embed": "Osad\u017a",
+"Nonbreaking space": "Nie\u0142amliwa spacja",
+"Page break": "Podzia\u0142 strony",
+"Paste as text": "Wklej jako zwyk\u0142y tekst",
+"Preview": "Podgl\u0105d",
+"Print": "Drukuj",
+"Save": "Zapisz",
+"Could not find the specified string.": "Nie znaleziono szukanego tekstu.",
+"Replace": "Zamie\u0144",
+"Next": "Nast.",
+"Whole words": "Ca\u0142e s\u0142owa",
+"Find and replace": "Znajd\u017a i zamie\u0144",
+"Replace with": "Zamie\u0144 na",
+"Find": "Znajd\u017a",
+"Replace all": "Zamie\u0144 wszystko",
+"Match case": "Dopasuj wielko\u015b\u0107 liter",
+"Prev": "Poprz.",
+"Spellcheck": "Sprawdzanie pisowni",
+"Finish": "Zako\u0144cz",
+"Ignore all": "Ignoruj wszystko",
+"Ignore": "Ignoruj",
+"Insert row before": "Wstaw wiersz przed",
+"Rows": "Wiersz.",
+"Height": "Wysoko\u015b\u0107",
+"Paste row after": "Wklej wiersz po",
+"Alignment": "Wyr\u00f3wnanie",
+"Column group": "Grupa kolumn",
+"Row": "Wiersz",
+"Insert column before": "Wstaw kolumn\u0119 przed",
+"Split cell": "Podziel kom\u00f3rk\u0119",
+"Cell padding": "Dope\u0142nienie kom\u00f3rki",
+"Cell spacing": "Odst\u0119py kom\u00f3rek",
+"Row type": "Typ wiersza",
+"Insert table": "Wstaw tabel\u0119",
+"Body": "Tre\u015b\u0107",
+"Caption": "Tytu\u0142",
+"Footer": "Stopka",
+"Delete row": "Usu\u0144 wiersz",
+"Paste row before": "Wklej wiersz przed",
+"Scope": "Kontekst",
+"Delete table": "Usu\u0144 tabel\u0119",
+"Header cell": "Kom\u00f3rka nag\u0142\u00f3wka",
+"Column": "Kolumna",
+"Cell": "Kom\u00f3rka",
+"Header": "Nag\u0142\u00f3wek",
+"Cell type": "Typ kom\u00f3rki",
+"Copy row": "Kopiuj wiersz",
+"Row properties": "W\u0142a\u015bciwo\u015bci wiersza",
+"Table properties": "W\u0142a\u015bciwo\u015bci tabeli",
+"Row group": "Grupa wierszy",
+"Right": "Prawo",
+"Insert column after": "Wstaw kolumn\u0119 po",
+"Cols": "Kol.",
+"Insert row after": "Wstaw wiersz po",
+"Width": "Szeroko\u015b\u0107",
+"Cell properties": "W\u0142a\u015bciwo\u015bci kom\u00f3rki",
+"Left": "Lewo",
+"Cut row": "Wytnij wiersz",
+"Delete column": "Usu\u0144 kolumn\u0119",
+"Center": "\u015arodek",
+"Merge cells": "\u0141\u0105cz kom\u00f3rki",
+"Insert template": "Wstaw szablon",
+"Templates": "Szablony",
+"Background color": "Kolor t\u0142a",
+"Text color": "Kolor tekstu",
+"Show blocks": "Poka\u017c bloki",
+"Show invisible characters": "Poka\u017c niewidoczne znaki",
+"Words: {0}": "S\u0142\u00f3w: {0}",
+"Insert": "Wstaw",
+"File": "Plik",
+"Edit": "Edycja",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Obszar Edycji. ALT-F9 - menu. ALT-F10 - pasek narz\u0119dzi. ALT-0 - pomoc",
+"Tools": "Narz\u0119dzia",
+"View": "Widok",
+"Table": "Tabela",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/pt_BR.js b/framework/Web/Javascripts/source/tinymce-405/langs/pt_BR.js
new file mode 100755
index 00000000..116035b3
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/pt_BR.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('pt_BR',{
+"Cut": "Recortar",
+"Header 2": "Cabe\u00e7alho 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Seu navegador n\u00e3o suporta acesso direto \u00e0 \u00e1rea de transfer\u00eancia. Por favor use os atalhos Ctrl+X - C - V do teclado",
+"Div": "Div",
+"Paste": "Colar",
+"Close": "Fechar",
+"Pre": "Pre",
+"Align right": "Alinhar \u00e0 direita",
+"New document": "Novo documento",
+"Blockquote": "Aspas",
+"Numbered list": "Lista ordenada",
+"Increase indent": "Aumentar recuo",
+"Formats": "Formatos",
+"Headers": "Cabe\u00e7alhos",
+"Select all": "Selecionar tudo",
+"Header 3": "Cabe\u00e7alho 3",
+"Blocks": "Blocos",
+"Undo": "Desfazer",
+"Strikethrough": "Riscar",
+"Bullet list": "Lista n\u00e3o ordenada",
+"Header 1": "Cabe\u00e7alho 1",
+"Superscript": "Sobrescrever",
+"Clear formatting": "Limpar formata\u00e7\u00e3o",
+"Subscript": "Subscrever",
+"Header 6": "Cabe\u00e7alho 6",
+"Redo": "Refazer",
+"Paragraph": "Par\u00e1grafo",
+"Ok": "Ok",
+"Bold": "Negrito",
+"Code": "C\u00f3digo",
+"Italic": "It\u00e1lico",
+"Align center": "Centralizar",
+"Header 5": "Cabe\u00e7alho 5",
+"Decrease indent": "Diminuir recuo",
+"Header 4": "Cabe\u00e7alho 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "O comando colar est\u00e1 agora em modo texto plano. O conte\u00fado ser\u00e1 colado como texto plano at\u00e9 voc\u00ea desligar esta op\u00e7\u00e3o.",
+"Underline": "Sublinhar",
+"Cancel": "Cancelar",
+"Justify": "Justificar",
+"Inline": "Em linha",
+"Copy": "Copiar",
+"Align left": "Alinhar \u00e0 esquerda",
+"Visual aids": "Ajuda visual",
+"Lower Greek": "\u03b1. \u03b2. \u03b3. ...",
+"Square": "Quadrado",
+"Default": "Padr\u00e3o",
+"Lower Alpha": "a. b. c. ...",
+"Circle": "C\u00edrculo",
+"Disc": "Disco",
+"Upper Alpha": "A. B. C. ...",
+"Upper Roman": "I. II. III. ...",
+"Lower Roman": "i. ii. iii. ...",
+"Name": "Nome",
+"Anchor": "\u00c2ncora",
+"You have unsaved changes are you sure you want to navigate away?": "Voc\u00ea tem mudan\u00e7as n\u00e3o salvas. Voc\u00ea tem certeza que deseja sair?",
+"Restore last draft": "Restaurar \u00faltimo rascunho",
+"Special character": "Caracteres especiais",
+"Source code": "C\u00f3digo fonte",
+"Right to left": "Da direita para a esquerda",
+"Left to right": "Da esquerda para a direita",
+"Emoticons": "Emoticons",
+"Robots": "Rob\u00f4s",
+"Document properties": "Propriedades do documento",
+"Title": "T\u00edtulo",
+"Keywords": "Palavras-chave",
+"Encoding": "Codifica\u00e7\u00e3o",
+"Description": "Descri\u00e7\u00e3o",
+"Author": "Autor",
+"Fullscreen": "Tela cheia",
+"Horizontal line": "Linha horizontal",
+"Horizontal space": "Espa\u00e7amento horizontal",
+"Insert\/edit image": "Inserir\/editar imagem",
+"General": "Geral",
+"Advanced": "Avan\u00e7ado",
+"Source": "Endere\u00e7o da imagem",
+"Border": "Borda",
+"Constrain proportions": "Manter propor\u00e7\u00f5es",
+"Vertical space": "Espa\u00e7amento vertical",
+"Image description": "Inserir descri\u00e7\u00e3o",
+"Style": "Estilo",
+"Dimensions": "Dimens\u00f5es",
+"Insert image": "Inserir imagem",
+"Insert date\/time": "Inserir data\/hora",
+"Remove link": "Remover link",
+"Url": "Url",
+"Text to display": "Texto para mostrar",
+"Anchors": "\u00c2ncoras",
+"Insert link": "Inserir link",
+"New window": "Nova janela",
+"None": "Nenhum",
+"Target": "Alvo",
+"Insert\/edit link": "Inserir\/editar link",
+"Insert\/edit video": "Inserir\/editar v\u00eddeo",
+"Poster": "Autor",
+"Alternative source": "Fonte alternativa",
+"Paste your embed code below:": "Insira o c\u00f3digo de incorpora\u00e7\u00e3o abaixo:",
+"Insert video": "Inserir v\u00eddeo",
+"Embed": "Incorporar",
+"Nonbreaking space": "Espa\u00e7o n\u00e3o separ\u00e1vel",
+"Page break": "Quebra de p\u00e1gina",
+"Paste as text": "Colar como texto",
+"Preview": "Pr\u00e9-visualizar",
+"Print": "Imprimir",
+"Save": "Salvar",
+"Could not find the specified string.": "N\u00e3o foi poss\u00edvel encontrar o termo especificado",
+"Replace": "Substituir",
+"Next": "Pr\u00f3ximo",
+"Whole words": "Palavras inteiras",
+"Find and replace": "Localizar e substituir",
+"Replace with": "Substituir por",
+"Find": "Localizar",
+"Replace all": "Substituir tudo",
+"Match case": "Diferenciar mai\u00fasculas e min\u00fasculas",
+"Prev": "Anterior",
+"Spellcheck": "Corretor ortogr\u00e1fico",
+"Finish": "Finalizar",
+"Ignore all": "Ignorar tudo",
+"Ignore": "Ignorar",
+"Insert row before": "Inserir linha antes",
+"Rows": "Linhas",
+"Height": "Altura",
+"Paste row after": "Colar linha depois",
+"Alignment": "Alinhamento",
+"Column group": "Agrupar coluna",
+"Row": "Linha",
+"Insert column before": "Inserir coluna antes",
+"Split cell": "Dividir c\u00e9lula",
+"Cell padding": "Espa\u00e7amento interno da c\u00e9lula",
+"Cell spacing": "Espa\u00e7amento da c\u00e9lula",
+"Row type": "Tipo de linha",
+"Insert table": "Inserir tabela",
+"Body": "Corpo",
+"Caption": "Legenda",
+"Footer": "Rodap\u00e9",
+"Delete row": "Excluir linha",
+"Paste row before": "Colar linha antes",
+"Scope": "Escopo",
+"Delete table": "Excluir tabela",
+"Header cell": "C\u00e9lula cabe\u00e7alho",
+"Column": "Coluna",
+"Cell": "C\u00e9lula",
+"Header": "Cabe\u00e7alho",
+"Cell type": "Tipo de c\u00e9lula",
+"Copy row": "Copiar linha",
+"Row properties": "Propriedades da linha",
+"Table properties": "Propriedades da tabela",
+"Row group": "Agrupar linha",
+"Right": "Direita",
+"Insert column after": "Inserir coluna depois",
+"Cols": "Colunas",
+"Insert row after": "Inserir linha depois",
+"Width": "Largura",
+"Cell properties": "Propriedades da c\u00e9lula",
+"Left": "Esquerdo",
+"Cut row": "Recortar linha",
+"Delete column": "Excluir coluna",
+"Center": "Centro",
+"Merge cells": "Agrupar c\u00e9lulas",
+"Insert template": "Inserir modelo",
+"Templates": "Modelos",
+"Background color": "Cor do fundo",
+"Text color": "Cor do texto",
+"Show blocks": "Mostrar blocos",
+"Show invisible characters": "Exibir caracteres invis\u00edveis",
+"Words: {0}": "Palavras: {0}",
+"Insert": "Inserir",
+"File": "Arquivo",
+"Edit": "Editar",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto formatado. Pressione ALT-F9 para exibir o menu, ALT-F10 para exibir a barra de ferramentas ou ALT-0 para exibir a ajuda",
+"Tools": "Ferramentas",
+"View": "Visualizar",
+"Table": "Tabela",
+"Format": "Formatar"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/pt_PT.js b/framework/Web/Javascripts/source/tinymce-405/langs/pt_PT.js
new file mode 100755
index 00000000..b1abd8ef
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/pt_PT.js
@@ -0,0 +1,173 @@
+tinymce.addI18n('pt_PT',{
+"Cut": "Cortar",
+"Header 2": "Cabe\u00e7alho 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "O seu navegador n\u00e3o suporta acesso directo \u00e0 \u00e1rea de transfer\u00eancia. Por favor use os atalhos Ctrl+X\/C\/V do seu teclado.",
+"Div": "Div",
+"Paste": "Colar",
+"Close": "Fechar",
+"Pre": "Pre",
+"Align right": "Alinhar \u00e0 direita",
+"New document": "Novo documento",
+"Blockquote": "Cita\u00e7\u00e3o em bloco",
+"Numbered list": "Lista numerada",
+"Increase indent": "Aumentar avan\u00e7o",
+"Formats": "Formatos",
+"Headers": "Cabe\u00e7alhos",
+"Select all": "Seleccionar tudo",
+"Header 3": "Cabe\u00e7alho 3",
+"Blocks": "Blocos",
+"Undo": "Anular",
+"Strikethrough": "Rasurado",
+"Bullet list": "Lista com marcadores",
+"Header 1": "Cabe\u00e7alho 1",
+"Superscript": "Superior \u00e0 linha",
+"Clear formatting": "Limpar formata\u00e7\u00e3o",
+"Subscript": "Inferior \u00e0 linha",
+"Header 6": "Cabe\u00e7alho 6",
+"Redo": "Restaurar",
+"Paragraph": "Par\u00e1grafo",
+"Ok": "Ok",
+"Bold": "Negrito",
+"Code": "C\u00f3digo",
+"Italic": "It\u00e1lico",
+"Align center": "Alinhar ao centro",
+"Header 5": "Cabe\u00e7alho 5",
+"Decrease indent": "Diminuir avan\u00e7o",
+"Header 4": "Cabe\u00e7alho 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "O comando colar est\u00e1 em modo de texto plano. O conte\u00fado ser\u00e1 colado como texto plano at\u00e9 desactivar esta op\u00e7\u00e3o.",
+"Underline": "Sublinhado",
+"Cancel": "Cancelar",
+"Justify": "Justificado",
+"Inline": "Inline",
+"Copy": "Copiar",
+"Align left": "Alinhar \u00e0 esquerda",
+"Visual aids": "Ajuda visual",
+"Lower Greek": "\\u03b1. \\u03b2. \\u03b3. ...",
+"Square": "Quadrado",
+"Default": "Padr\u00e3o",
+"Lower Alpha": "a. b. c. ...",
+"Circle": "C\u00edrculo",
+"Disc": "Disco",
+"Upper Alpha": "A. B. C. ...",
+"Upper Roman": "I. II. III. ...",
+"Lower Roman": "i. ii. iii. ...",
+"Name": "Nome",
+"Anchor": "\u00c2ncora",
+"You have unsaved changes are you sure you want to navigate away?": "Tem altera\u00e7\u00f5es que ainda n\u00e3o foram guardadas, tem a certeza que pretende sair?",
+"Restore last draft": "Restaurar o \u00faltimo rascunho",
+"Special character": "Car\u00e1cter especial",
+"Source code": "C\u00f3digo fonte",
+"Right to left": "Da direita para a esquerda",
+"Left to right": "Da esquerda para a direita",
+"Emoticons": "\u00cdcones expressivos",
+"Robots": "Rob\u00f4s",
+"Document properties": "Propriedades do documento",
+"Title": "T\u00edtulo",
+"Keywords": "Palavras-chave",
+"Encoding": "Codifica\u00e7\u00e3o",
+"Description": "Descri\u00e7\u00e3o",
+"Author": "Autor",
+"Fullscreen": "Ecr\u00e3 completo",
+"Horizontal line": "Linha horizontal",
+"Horizontal space": "Espa\u00e7amento horizontal",
+"Insert\/edit image": "Inserir\/editar imagem",
+"General": "Geral",
+"Advanced": "Avan\u00e7ado",
+"Source": "Localiza\u00e7\u00e3o",
+"Border": "Contorno",
+"Constrain proportions": "Manter propor\u00e7\u00f5es",
+"Vertical space": "Espa\u00e7amento vertical",
+"Image description": "Descri\u00e7\u00e3o da imagem",
+"Style": "Estilo",
+"Dimensions": "Dimens\u00f5es",
+"Insert image": "Inserir imagem",
+"Insert date\/time": "Inserir data\/hora",
+"Remove link": "Remover link",
+"Url": "Url",
+"Text to display": "Texto a exibir",
+"Insert link": "Inserir link",
+"New window": "Nova janela",
+"None": "Nenhum",
+"Target": "Alvo",
+"Insert\/edit link": "Inserir\/editar link",
+"Insert\/edit video": "Inserir\/editar v\u00eddeo",
+"Poster": "Autor",
+"Alternative source": "Localiza\u00e7\u00e3o alternativa",
+"Paste your embed code below:": "Insira o c\u00f3digo de incorpora\u00e7\u00e3o abaixo:",
+"Insert video": "Inserir v\u00eddeo",
+"Embed": "Incorporar",
+"Nonbreaking space": "Espa\u00e7amento n\u00e3o separ\u00e1vel",
+"Page break": "Quebra de p\u00e1gina",
+"Preview": "Pr\u00e9-visualizar",
+"Print": "Imprimir",
+"Save": "Guardar",
+"Could not find the specified string.": "N\u00e3o foi poss\u00edvel localizar o termo especificado.",
+"Replace": "Substituir",
+"Next": "Pr\u00f3ximo",
+"Whole words": "Palavras completas",
+"Find and replace": "Localizar e substituir",
+"Replace with": "Substituir por",
+"Find": "Localizar",
+"Replace all": "Substituir tudo",
+"Match case": "Diferenciar mai\u00fasculas e min\u00fasculas",
+"Prev": "Anterior",
+"Spellcheck": "Corrector ortogr\u00e1fico",
+"Finish": "Concluir",
+"Ignore all": "Ignorar tudo",
+"Ignore": "Ignorar",
+"Insert row before": "Inserir linha antes",
+"Rows": "Linhas",
+"Height": "Altura",
+"Paste row after": "Colar linha depois",
+"Alignment": "Alinhamento",
+"Column group": "Agrupar coluna",
+"Row": "Linha",
+"Insert column before": "Inserir coluna antes",
+"Split cell": "Dividir c\u00e9lula",
+"Cell padding": "Espa\u00e7amento interno da c\u00e9lula",
+"Cell spacing": "Espa\u00e7amento da c\u00e9lula",
+"Row type": "Tipo de linha",
+"Insert table": "Inserir tabela",
+"Body": "Corpo",
+"Caption": "Legenda",
+"Footer": "Rodap\u00e9",
+"Delete row": "Eliminar linha",
+"Paste row before": "Colar linha antes",
+"Scope": "Escopo",
+"Delete table": "Eliminar tabela",
+"Header cell": "Cabe\u00e7alho da c\u00e9lula",
+"Column": "Coluna",
+"Cell": "C\u00e9lula",
+"Header": "Cabe\u00e7alho",
+"Cell type": "Tipo de c\u00e9lula",
+"Copy row": "Copiar linha",
+"Row properties": "Propriedades da linha",
+"Table properties": "Propriedades da tabela",
+"Row group": "Agrupar linha",
+"Right": "Direita",
+"Insert column after": "Inserir coluna depois",
+"Cols": "Colunas",
+"Insert row after": "Inserir linha depois",
+"Width": "Largura",
+"Cell properties": "Propriedades da c\u00e9lula",
+"Left": "Esquerda",
+"Cut row": "Cortar linha",
+"Delete column": "Eliminar coluna",
+"Center": "Centro",
+"Merge cells": "Unir c\u00e9lulas",
+"Insert template": "Inserir modelo",
+"Templates": "Modelos",
+"Background color": "Cor de fundo",
+"Text color": "Cor do texto",
+"Show blocks": "Mostrar blocos",
+"Show invisible characters": "Mostrar caracteres \u00ednvisiveis",
+"Words: {0}": "Palavras: {0}",
+"Insert": "Inserir",
+"File": "Ficheiro",
+"Edit": "Editar",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto formatado. Pressione ALT-F9 para exibir o menu. Pressione ALT-F10 para exibir a barra de ferramentas. Pressione ALT-0 para exibir a ajuda",
+"Tools": "Ferramentas",
+"View": "Ver",
+"Table": "Tabela",
+"Format": "Formatar"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ro.js b/framework/Web/Javascripts/source/tinymce-405/langs/ro.js
new file mode 100755
index 00000000..b3f49734
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ro.js
@@ -0,0 +1,174 @@
+tinymce.addI18n('ro',{
+"Cut": "Decupeaz\u0103",
+"Header 2": "Antet 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Browserul dumneavoastr\u0103 nu support\u0103 acces direct la clipboard. Folosi\u0163i combina\u0163ile de tastatur\u0103 Ctrl+X\/C\/V.",
+"Div": "Div",
+"Paste": "Lipe\u015fte",
+"Close": "\u00cenchide",
+"Pre": "Pre",
+"Align right": "Aliniere la dreapta",
+"New document": "Document nou",
+"Blockquote": "Men\u0163iune bloc",
+"Numbered list": "List\u0103 ordonat\u0103",
+"Increase indent": "Indenteaz\u0103",
+"Formats": "Formate",
+"Headers": "Antete",
+"Select all": "Selecteaz\u0103 tot",
+"Header 3": "Antet 3",
+"Blocks": "Blocuri",
+"Undo": "Reexecut\u0103",
+"Strikethrough": "T\u0103iat",
+"Bullet list": "List\u0103 neordonat\u0103",
+"Header 1": "Antet 1",
+"Superscript": "Superscript",
+"Clear formatting": "\u015eterge format\u0103rile",
+"Subscript": "Subscript",
+"Header 6": "Antet 6",
+"Redo": "Dezexecut\u0103",
+"Paragraph": "Paragraf",
+"Ok": "Ok",
+"Bold": "\u00cengro\u015fat",
+"Code": "Cod",
+"Italic": "Italic",
+"Align center": "Centrare",
+"Header 5": "Antet 5",
+"Decrease indent": "De-indenteaz\u0103",
+"Header 4": "Antet 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Inserarea este acum \u00een modul text simplu. Con\u021binutul va fi inserat ca \u0219i text simplu p\u00e2n\u0103 c\u00e2nd nu schimba\u021bi \u00eenapoi op\u021biune.",
+"Underline": "Subliniat",
+"Cancel": "Anuleaz\u0103",
+"Justify": "Aliniere pe toat\u0103 l\u0103\u021bimea",
+"Inline": "Inline",
+"Copy": "Copiaz\u0103",
+"Align left": "Aliniere la st\u00e2nga",
+"Visual aids": "Ajutor vizual",
+"Lower Greek": "Minuscule Grecesti",
+"Square": "P\u0103trat",
+"Default": "Implicit",
+"Lower Alpha": "Minuscule Alfanumerice",
+"Circle": "Cerc",
+"Disc": "Disc",
+"Upper Alpha": "Majuscule Alfanumerice",
+"Upper Roman": "Majuscule Romane",
+"Lower Roman": "Minuscule Romane",
+"Name": "Nume",
+"Anchor": "Ancor\u0103",
+"You have unsaved changes are you sure you want to navigate away?": "Ave\u021bi modific\u0103ri nesalvate! Sunte\u0163i sigur c\u0103 dori\u0163i s\u0103 ie\u015fiti?",
+"Restore last draft": "Restaurare la ultima salvare",
+"Special character": "Caractere speciale",
+"Source code": "Codul surs\u0103",
+"Right to left": "Dreapta la st\u00e2nga",
+"Left to right": "St\u00e2nga la dreapta",
+"Emoticons": "Emoticoane",
+"Robots": "Robo\u021bi",
+"Document properties": "Propriet\u0103\u021bi document",
+"Title": "Titlu",
+"Keywords": "Cuvinte cheie",
+"Encoding": "Codare",
+"Description": "Descriere",
+"Author": "Autor",
+"Fullscreen": "Pe tot ecranul",
+"Horizontal line": "Linie orizontal\u0103",
+"Horizontal space": "Spa\u021biul orizontal",
+"Insert\/edit image": "Inserare\/editarea imaginilor",
+"General": "General",
+"Advanced": "Avansat",
+"Source": "Surs\u0103",
+"Border": "Bordur\u0103",
+"Constrain proportions": "Constr\u00e2nge propor\u021biile",
+"Vertical space": "Spa\u021biul vertical",
+"Image description": "Descrierea imaginii",
+"Style": "Stil",
+"Dimensions": "Dimensiuni",
+"Insert image": "Inserare imagine",
+"Insert date\/time": "Insereaz\u0103 data\/ora",
+"Remove link": "\u0218terge link-ul",
+"Url": "Url",
+"Text to display": "Text de afi\u0219at",
+"Anchors": "Ancor\u0103",
+"Insert link": "Inserare link",
+"New window": "Fereastr\u0103 nou\u0103",
+"None": "Nici unul",
+"Target": "\u021aint\u0103",
+"Insert\/edit link": "Inserare\/editare link",
+"Insert\/edit video": "Inserare\/editare video",
+"Poster": "Poster",
+"Alternative source": "Surs\u0103 alternativ\u0103",
+"Paste your embed code below:": "Insera\u021bi codul:",
+"Insert video": "Inserare video",
+"Embed": "Embed",
+"Nonbreaking space": "Spa\u021biu neseparator",
+"Page break": "\u00centrerupere de pagin\u0103",
+"Preview": "Previzualizare",
+"Print": "Tip\u0103re\u0219te",
+"Save": "Salveaz\u0103",
+"Could not find the specified string.": "Nu am putut g\u0103si \u0219irul specificat.",
+"Replace": "\u00cenlocuie\u015fte",
+"Next": "Precedent",
+"Whole words": "Doar cuv\u00eentul \u00eentreg",
+"Find and replace": "Caut\u0103 \u015fi \u00eenlocuie\u015fte",
+"Replace with": "\u00cenlocuie\u015fte cu",
+"Find": "Caut\u0103",
+"Replace all": "\u00cenlocuie\u015fte toate",
+"Match case": "Distinge majuscule\/minuscule",
+"Prev": "Anterior",
+"Spellcheck": "Verificarea ortografic\u0103",
+"Finish": "Finalizeaz\u0103",
+"Ignore all": "Ignor\u0103 toate",
+"Ignore": "Ignor\u0103",
+"Insert row before": "Insereaz\u0103 \u00eenainte de linie",
+"Rows": "Linii",
+"Height": "\u00cen\u0103l\u0163ime",
+"Paste row after": "Lipe\u015fte linie dup\u0103",
+"Alignment": "Aliniament",
+"Column group": "Grup de coloane",
+"Row": "Linie",
+"Insert column before": "Insereaza \u00eenainte de coloan\u0103",
+"Split cell": "\u00cemp\u0103r\u021birea celulelor",
+"Cell padding": "Spa\u021biere",
+"Cell spacing": "Spa\u021biere celule",
+"Row type": "Tip de linie",
+"Insert table": "Insereaz\u0103 tabel\u0103",
+"Body": "Corp",
+"Caption": "Titlu",
+"Footer": "Subsol",
+"Delete row": "\u0218terge linia",
+"Paste row before": "Lipe\u015fte \u00eenainte de linie",
+"Scope": "Domeniu",
+"Delete table": "\u0218terge tabel\u0103",
+"Header cell": "Antet celul\u0103",
+"Column": "Coloan\u0103",
+"Cell": "Celul\u0103",
+"Header": "Antet",
+"Cell type": "Tip celul\u0103",
+"Copy row": "Copiaz\u0103 linie",
+"Row properties": "Propriet\u0103\u021bi linie",
+"Table properties": "Propriet\u0103\u021bi tabel\u0103",
+"Row group": "Grup de linii",
+"Right": "Dreapta",
+"Insert column after": "Insereaza dup\u0103 coloan\u0103",
+"Cols": "Coloane",
+"Insert row after": "Insereaz\u0103 dup\u0103 linie",
+"Width": "L\u0103\u0163ime",
+"Cell properties": "Propriet\u0103\u021bi celul\u0103",
+"Left": "St\u00e2nga",
+"Cut row": "Taie linie",
+"Delete column": "\u0218terge coloana",
+"Center": "Centru",
+"Merge cells": "\u00cembinarea celulelor",
+"Insert template": "Insereaz\u0103 \u0219ablon",
+"Templates": "\u015eabloane",
+"Background color": "Culoare fundal",
+"Text color": "Culoare text",
+"Show blocks": "Afi\u0219are blocuri",
+"Show invisible characters": "Afi\u0219are caractere invizibile",
+"Words: {0}": "Cuvinte: {0}",
+"Insert": "Insereaz\u0103",
+"File": "Fil\u0103",
+"Edit": "Editeaz\u0103",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zon\u0103 cu Rich Text. Apas\u0103 ALT-F9 pentru meniu. Apas\u0103 ALT-F10 pentru bara de unelte. Apas\u0103 ALT-0 pentru ajutor",
+"Tools": "Unelte",
+"View": "Vezi",
+"Table": "Tabel\u0103",
+"Format": "Formateaz\u0103"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ru.js b/framework/Web/Javascripts/source/tinymce-405/langs/ru.js
new file mode 100755
index 00000000..618a9a20
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ru.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('ru',{
+"Cut": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c",
+"Header 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0443\u0444\u0435\u0440\u0443 \u043e\u0431\u043c\u0435\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448: Ctrl+X\/C\/V.",
+"Div": "\u0411\u043b\u043e\u043a",
+"Paste": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c",
+"Close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c",
+"Pre": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435",
+"Align right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
+"New document": "\u041d\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
+"Blockquote": "\u0426\u0438\u0442\u0430\u0442\u0430",
+"Numbered list": "\u041d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
+"Increase indent": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f",
+"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442",
+"Headers": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438",
+"Select all": "\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435",
+"Header 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3",
+"Blocks": "\u0411\u043b\u043e\u043a\u0438",
+"Undo": "\u0412\u0435\u0440\u043d\u0443\u0442\u044c",
+"Strikethrough": "\u0417\u0430\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044b\u0439",
+"Bullet list": "\u041c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
+"Header 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1",
+"Superscript": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441",
+"Clear formatting": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442",
+"Subscript": "\u041d\u0438\u0436\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441",
+"Header 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6",
+"Redo": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
+"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444",
+"Ok": "\u041e\u043a",
+"Bold": "\u041f\u043e\u043b\u0443\u0436\u0438\u0440\u043d\u044b\u0439",
+"Code": "\u041a\u043e\u0434",
+"Italic": "\u041a\u0443\u0440\u0441\u0438\u0432",
+"Align center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
+"Header 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5",
+"Decrease indent": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f",
+"Header 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u043e\u043f\u0446\u0438\u044e.",
+"Underline": "\u041f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044b\u0439",
+"Cancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
+"Justify": "\u041f\u043e \u0448\u0438\u0440\u0438\u043d\u0435",
+"Inline": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435",
+"Copy": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c",
+"Align left": "\u041f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
+"Visual aids": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0440\u044b",
+"Lower Greek": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b",
+"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u044b",
+"Default": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439",
+"Lower Alpha": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b",
+"Circle": "\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438",
+"Disc": "\u041a\u0440\u0443\u0433\u0438",
+"Upper Alpha": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b",
+"Upper Roman": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b",
+"Lower Roman": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b",
+"Name": "\u0418\u043c\u044f",
+"Anchor": "\u042f\u043a\u043e\u0440\u044c",
+"You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0439\u0442\u0438?",
+"Restore last draft": "\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430",
+"Special character": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b",
+"Source code": "\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434",
+"Right to left": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e",
+"Left to right": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e",
+"Emoticons": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043c\u0430\u0439\u043b",
+"Robots": "\u0420\u043e\u0431\u043e\u0442\u044b",
+"Document properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
+"Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
+"Keywords": "\u041a\u043b\u044e\u0447\u0438\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430",
+"Encoding": "\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",
+"Description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
+"Author": "\u0410\u0432\u0442\u043e\u0440",
+"Fullscreen": "\u041f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c",
+"Horizontal line": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f",
+"Horizontal space": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
+"Insert\/edit image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
+"General": "\u041e\u0431\u0449\u0435\u0435",
+"Advanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435",
+"Source": "\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a",
+"Border": "\u0420\u0430\u043c\u043a\u0430",
+"Constrain proportions": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438",
+"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
+"Image description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f",
+"Style": "\u0421\u0442\u0438\u043b\u044c",
+"Dimensions": "\u0420\u0430\u0437\u043c\u0435\u0440",
+"Insert image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
+"Insert date\/time": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u0442\u0443\/\u0432\u0440\u0435\u043c\u044f",
+"Remove link": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
+"Url": "\u0410\u0434\u0440\u0435\u0441 \u0441\u0441\u044b\u043b\u043a\u0438",
+"Text to display": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442",
+"Anchors": "\u042f\u043a\u043e\u0440\u044f",
+"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
+"New window": "\u0412 \u043d\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435",
+"None": "\u041d\u0435\u0442",
+"Target": "\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
+"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
+"Insert\/edit video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e",
+"Poster": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
+"Alternative source": "\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a",
+"Paste your embed code below:": "\u0412\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0438\u0436\u0435:",
+"Insert video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e",
+"Embed": "\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438",
+"Nonbreaking space": "\u041d\u0435\u0440\u0430\u0437\u0440\u044b\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0431\u0435\u043b",
+"Page break": "\u0420\u0430\u0437\u0440\u044b\u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b",
+"Paste as text": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442",
+"Preview": "\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440",
+"Print": "\u041f\u0435\u0447\u0430\u0442\u044c",
+"Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c",
+"Could not find the specified string.": "\u0417\u0430\u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430",
+"Replace": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c",
+"Next": "\u0412\u043d\u0438\u0437",
+"Whole words": "\u0421\u043b\u043e\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c",
+"Find and replace": "\u041f\u043e\u0438\u0441\u043a \u0438 \u0437\u0430\u043c\u0435\u043d\u0430",
+"Replace with": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430",
+"Find": "\u041d\u0430\u0439\u0442\u0438",
+"Replace all": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435",
+"Match case": "\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440",
+"Prev": "\u0412\u0432\u0435\u0440\u0445",
+"Spellcheck": "\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
+"Finish": "\u0417\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c",
+"Ignore all": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435",
+"Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c",
+"Insert row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443",
+"Rows": "\u0421\u0442\u0440\u043e\u043a\u0438",
+"Height": "\u0412\u044b\u0441\u043e\u0442\u0430",
+"Paste row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443",
+"Alignment": "\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435",
+"Column group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a",
+"Row": "\u0421\u0442\u0440\u043e\u043a\u0430",
+"Insert column before": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043b\u0435\u0432\u0430",
+"Split cell": "\u0420\u0430\u0437\u0431\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0443",
+"Cell padding": "\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f",
+"Cell spacing": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f",
+"Row type": "\u0422\u0438\u043f \u0441\u0442\u0440\u043e\u043a\u0438",
+"Insert table": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443",
+"Body": "\u0422\u0435\u043b\u043e",
+"Caption": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
+"Footer": "\u041d\u0438\u0437",
+"Delete row": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443",
+"Paste row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443",
+"Scope": "Scope",
+"Delete table": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443",
+"Header cell": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
+"Column": "\u0421\u0442\u043e\u043b\u0431\u0435\u0446",
+"Cell": "\u042f\u0447\u0435\u0439\u043a\u0430",
+"Header": "\u0428\u0430\u043f\u043a\u0430",
+"Cell type": "\u0422\u0438\u043f \u044f\u0447\u0435\u0439\u043a\u0438",
+"Copy row": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443",
+"Row properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0442\u0440\u043e\u043a\u0438",
+"Table properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b",
+"Row group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u0441\u0442\u0440\u043e\u043a",
+"Right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
+"Insert column after": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043f\u0440\u0430\u0432\u0430",
+"Cols": "\u0421\u0442\u043e\u043b\u0431\u0446\u044b",
+"Insert row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443",
+"Width": "\u0428\u0438\u0440\u0438\u043d\u0430",
+"Cell properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044f\u0447\u0435\u0439\u043a\u0438",
+"Left": "\u041f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
+"Cut row": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443",
+"Delete column": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446",
+"Center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
+"Merge cells": "\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0438",
+"Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d",
+"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u044b",
+"Background color": "\u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430",
+"Text color": "\u0426\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430",
+"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438",
+"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b",
+"Words: {0}": "\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432: {0}",
+"Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c",
+"File": "\u0424\u0430\u0439\u043b",
+"Edit": "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 ALT-F9 \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044e, ALT-F10 \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, ALT-0 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u043e\u043c\u043e\u0449\u0438.",
+"Tools": "\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b",
+"View": "\u0412\u0438\u0434",
+"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430",
+"Format": "\u0424\u043e\u0440\u043c\u0430\u0442"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/si_LK.js b/framework/Web/Javascripts/source/tinymce-405/langs/si_LK.js
new file mode 100755
index 00000000..7ea42077
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/si_LK.js
@@ -0,0 +1,156 @@
+tinymce.addI18n('si_LK',{
+"Cut": "\u0d9a\u0db4\u0db1\u0dca\u0db1",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0d9c\u0dca\u200d\u0dbb\u0dcf\u0dc4\u0d9a \u0db4\u0dd4\u0dc0\u0dbb\u0dd4\u0dc0\u0da7 \u0d8d\u0da2\u0dd4 \u0db4\u0dca\u200d\u0dbb\u0dc0\u0dda\u0dc1\u0dba\u0d9a\u0dca \u0dbd\u0db6\u0dcf\u0daf\u0dd3\u0db8\u0da7 \u0d94\u0db6\u0d9c\u0dda \u0db6\u0dca\u200d\u0dbb\u0dc0\u0dd4\u0dc3\u0dbb\u0dba \u0dc3\u0dc4\u0dba\u0d9a\u0dca \u0db1\u0ddc\u0daf\u0d9a\u0dca\u0dc0\u0dba\u0dd3. \u0d9a\u0dbb\u0dd4\u0dab\u0dcf\u0d9a\u0dbb \u0d92\u0dc0\u0dd9\u0db1\u0dd4\u0dc0\u0da7 Ctrl+X\/C\/V \u0dba\u0db1 \u0dba\u0dad\u0dd4\u0dbb\u0dd4\u0db4\u0dd4\u0dc0\u0dbb\u0dd4 \u0d9a\u0dd9\u0da7\u0dd2\u0db8\u0d9f \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1.",
+"Paste": "\u0d85\u0dbd\u0dc0\u0db1\u0dca\u0db1",
+"Close": "\u0dc0\u0dc3\u0db1\u0dca\u0db1",
+"Align right": "\u0daf\u0d9a\u0dd4\u0dab\u0dd4\u0db4\u0dc3\u0da7 \u0db4\u0dd9\u0dc5\u0d9c\u0dc3\u0dca\u0dc0\u0db1\u0dca\u0db1",
+"New document": "\u0db1\u0dc0 \u0dbd\u0dda\u0d9b\u0db1\u0dba\u0d9a\u0dca",
+"Numbered list": "\u0d85\u0d82\u0d9a\u0db1\u0dba \u0d9a\u0dbd \u0dbd\u0dd0\u0dba\u0dd2\u0dc3\u0dca\u0dad\u0dd4\u0dc0",
+"Increase indent": "\u0dc0\u0dd0\u0da9\u0dd2\u0dc0\u0db1 \u0d91\u0db6\u0dd4\u0db8",
+"Formats": "\u0d86\u0d9a\u0dd8\u0dad\u0dd2",
+"Select all": "\u0dc3\u0dd2\u0dba\u0dbd\u0dca\u0dbd \u0dad\u0ddd\u0dbb\u0db1\u0dca\u0db1",
+"Undo": "\u0db1\u0dd2\u0dc2\u0dca\u0db4\u0dca\u200d\u0dbb\u0db7\u0dcf \u0d9a\u0dbb\u0db1\u0dc0\u0dcf",
+"Strikethrough": "\u0db8\u0dd0\u0daf\u0dd2 \u0d89\u0dbb\u0dd0\u0dad\u0dd2",
+"Bullet list": "\u0dbd\u0dd0\u0dba\u0dd2\u0dc3\u0dca\u0dad\u0dd4\u0dc0",
+"Superscript": "\u0d8b\u0da9\u0dd4\u0dbd\u0d9a\u0dd4\u0dab\u0dd4",
+"Clear formatting": "\u0db4\u0dd0\u0dc4\u0dd0\u0daf\u0dd2\u0dbd\u0dd2 \u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0d9a\u0dbb\u0dab\u0dba",
+"Subscript": "\u0dba\u0da7\u0dd2\u0dbd\u0d9a\u0dd4\u0dab\u0dd4",
+"Redo": "\t\u0db1\u0dd0\u0dc0\u0dad \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Ok": "\u0d85\u0db1\u0dd4\u0db8\u0dad \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Bold": "\u0db4\u0dd0\u0dc4\u0dd0\u0daf\u0dd2\u0dbd\u0dd2 \u0dc3\u0dda \u0db4\u0dd9\u0db1\u0dd9\u0db1",
+"Italic": "\u0d87\u0dbd\u0d9a\u0dd4\u0dbb\u0dd4",
+"Align center": "\u0db8\u0dd0\u0daf\u0dd2 \u0d9a\u0ddc\u0da7 \u0db4\u0dd9\u0dc5\u0d9c\u0dc3\u0dca\u0dc0\u0db1\u0dca\u0db1",
+"Decrease indent": "\u0d85\u0da9\u0dd4\u0dc0\u0db1 \u0d91\u0db6\u0dd4\u0db8",
+"Underline": "\u0dba\u0da7\u0dd2\u0db1\u0dca \u0d89\u0dbb\u0d9a\u0dca \u0d85\u0db3\u0dd2\u0db1\u0dca\u0db1",
+"Cancel": "\u0d85\u0dc4\u0ddd\u0dc3\u0dd2 \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Justify": "\u0dc3\u0db8\u0dc0 \u0db4\u0dd9\u0dc5\u0d9c\u0dc3\u0dca\u0dc0\u0db1\u0dca\u0db1",
+"Copy": "\u0db4\u0dd2\u0da7\u0db4\u0dad\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Align left": "\u0dc0\u0db8\u0dca\u0db4\u0dc3\u0da7 \u0db4\u0dd9\u0dc5\u0d9c\u0dc3\u0dca\u0dc0\u0db1\u0dca\u0db1",
+"Visual aids": "\u0daf\u0dd8\u0dc1\u0dca\u200d\u0dba\u0dcf\u0db0\u0dcf\u0dbb",
+"Lower Greek": "\u0d9a\u0dd4\u0da9\u0dcf \u0d9c\u0dca\u200d\u0dbb\u0dd3\u0d9a ",
+"Square": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0",
+"Default": "\u0db4\u0dd9\u0dbb\u0db1\u0dd2\u0db8\u0dd2\u0dba ",
+"Lower Alpha": "\u0d9a\u0dd4\u0da9\u0dcf \u0d87\u0dbd\u0dca\u0dc6\u0dcf ",
+"Circle": "\u0dc0\u0d9a\u0dca\u200d\u0dbb\u0dba",
+"Disc": "\u0dad\u0dd0\u0da7\u0dd2\u0dba ",
+"Upper Alpha": "\u0dc0\u0dd2\u0dc1\u0dcf\u0dbd \u0d87\u0dbd\u0dca\u0dc6\u0dcf ",
+"Upper Roman": "\u0dc0\u0dd2\u0dc1\u0dcf\u0dbd \u0dbb\u0ddd\u0db8\u0dcf\u0db1\u0dd4 ",
+"Lower Roman": "\u0d9a\u0dd4\u0da9\u0dcf \u0dbb\u0ddd\u0db8\u0dcf\u0db1\u0dd4 ",
+"Name": "\u0db1\u0dcf\u0db8\u0dba ",
+"Anchor": "\u0d87\u0db1\u0dca\u0d9a\u0dbb\u0dba",
+"You have unsaved changes are you sure you want to navigate away?": "\u0d94\u0db6\u0d9c\u0dda \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1 \u0db1\u0ddc\u0dbd\u0daf \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dca \u0d87\u0dad,\u0d94\u0db6\u0da7 \u0dc0\u0dd2\u0dc1\u0dca\u0dc0\u0dcf\u0dc3\u0daf \u0d89\u0dc0\u0dad\u0da7 \u0dba\u0dcf\u0dba\u0dd4\u0dad\u0dd4\u0dba\u0dd2 \u0d9a\u0dd2\u0dba\u0dcf?",
+"Restore last draft": "\u0d85\u0dc0\u0dc3\u0dcf\u0db1\u0dba\u0da7 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0d9a\u0dc5 \u0d9a\u0dd9\u0da7\u0dd4\u0db8\u0dca\u0db4\u0dad \u0db4\u0dd2\u0dc5\u0dd2\u0db1\u0d9c\u0db1\u0dca\u0db1 ",
+"Special character": "\u0dc0\u0dd2\u0dc1\u0dda\u0dc2 \u0d85\u0db1\u0dd4\u0dbd\u0d9a\u0dd4\u0dab ",
+"Source code": "\u0db8\u0dd6\u0dbd \u0d9a\u0dda\u0dad\u0dba ",
+"Right to left": "\u0daf\u0d9a\u0dd4\u0dab\u0dd4\u0db4\u0dc3 \u0dc3\u0dd2\u0da7 \u0dc0\u0db8\u0dca\u0db4\u0dc3\u0da7 ",
+"Left to right": "\u0dc0\u0db8\u0dca\u0db4\u0dc3 \u0dc3\u0dd2\u0da7 \u0daf\u0d9a\u0dd4\u0db1\u0dd4\u0db4\u0dc3\u0da7 ",
+"Emoticons": "\u0db7\u0dcf\u0dc0 \u0db1\u0dd2\u0dbb\u0dd4\u0db4\u0d9a",
+"Robots": "\u0dbb\u0ddc\u0db6\u0ddd",
+"Document properties": "\u0dbd\u0dda\u0d9b\u0db1\u0dba\u0dda \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c ",
+"Title": "\u0db8\u0dcf\u0dad\u0dd8\u0d9a\u0dcf\u0dc0",
+"Keywords": "\u0db8\u0dd6\u0dbd \u0db4\u0daf\u0dba ",
+"Encoding": "\u0d9a\u0dda\u0dad\u0db1\u0dba",
+"Description": "\u0dc0\u0dd2\u0dc3\u0dca\u0dad\u0dbb\u0dba ",
+"Author": "\u0d9a\u0dad\u0dd8 ",
+"Fullscreen": "\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0dad\u0dd2\u0dbb\u0dba ",
+"Horizontal line": "\u0dad\u0dd2\u0dbb\u0dc3\u0dca \u0d89\u0dbb ",
+"Horizontal space": "\u0dad\u0dd2\u0dbb\u0dc3\u0dca \u0dc4\u0dd2\u0dc3\u0dca \u0d89\u0da9",
+"Insert\/edit image": "\u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd4\u0dbb\u0dba \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 \/ \u0dc3\u0d9a\u0dc3\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
+"General": "\u0db4\u0ddc\u0daf\u0dd4",
+"Advanced": "\u0db4\u0dca\u200d\u0dbb\u0d9c\u0dad",
+"Source": "\u0db8\u0dd6\u0dbd\u0dba ",
+"Border": "\u0dc3\u0dd3\u0db8\u0dcf\u0dc0 ",
+"Constrain proportions": "\u0dc3\u0d82\u0dbb\u0ddd\u0daf\u0d9a \u0db4\u0dca\u200d\u0dbb\u0db8\u0dcf\u0dab\u0db1",
+"Vertical space": "\u0dc3\u0dd2\u0dbb\u0dc3\u0dca \u0dc4\u0dd2\u0dc3\u0dca \u0d89\u0da9",
+"Image description": "\u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd4\u0dbb\u0dba\u0dda \u0dc0\u0dd2\u0dc3\u0dca\u0dad\u0dbb\u0dba ",
+"Style": "\u0dc0\u0dd2\u0dbd\u0dcf\u0dc3\u0dba",
+"Dimensions": "\u0db8\u0dcf\u0db1",
+"Insert date\/time": "\u0daf\u0dd2\u0db1\u0dba \/ \u0dc0\u0dda\u0dbd\u0dcf\u0dc0 \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Url": "Url",
+"Text to display": "\u0db4\u0dd9\u0dc5 - \u0dc3\u0d82\u0daf\u0dbb\u0dca\u0dc1\u0d9a\u0dba",
+"Insert link": "\u0dc3\u0db6\u0dd0\u0db3\u0dd2\u0dba \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"New window": "\u0db1\u0dc0 \u0d9a\u0dc0\u0dd4\u0dc5\u0dd4\u0dc0\u0d9a\u0dca",
+"None": "\u0d9a\u0dd2\u0dc3\u0dd2\u0dc0\u0d9a\u0dca \u0db1\u0dd0\u0dad",
+"Target": "\u0d89\u0dbd\u0d9a\u0dca\u0d9a\u0dba",
+"Insert\/edit link": "\u0dc3\u0db6\u0dd0\u0db3\u0dd2\u0dba \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 \/ \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Insert\/edit video": "\u0dc0\u0dd3\u0da9\u0dd2\u0dba\u0ddd\u0dc0 \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 \/ \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Poster": "\u0db4\u0ddd\u0dc3\u0dca\u0da7\u0dbb\u0dba",
+"Alternative source": "\u0dc0\u0dd2\u0d9a\u0dbd\u0dca\u0db4 \u0db8\u0dd6\u0dbd\u0dba",
+"Paste your embed code below:": "\u0d94\u0db6\u0d9c\u0dda \u0d9a\u0dcf\u0dc0\u0dd0\u0daf\u0dca\u0daf\u0dd6 \u0d9a\u0dda\u0dad\u0dba \u0db4\u0dc4\u0dad\u0dd2\u0db1\u0dca \u0daf\u0db8\u0db1\u0dca\u0db1",
+"Insert video": "\u0dc0\u0dd3\u0da9\u0dd2\u0dba\u0ddd\u0dc0 \u0d87\u0dad\u0dd4\u0dbd\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Embed": "\u0d9a\u0dcf\u0dc0\u0daf\u0dca\u0daf\u0db1\u0dca\u0db1",
+"Nonbreaking space": "\u0db1\u0ddc\u0d9a\u0dd0\u0da9\u0dd4\u0dab\u0dd4 \u0dc4\u0dd2\u0dc3\u0dca \u0d89\u0dbb",
+"Page break": "\u0db4\u0dd2\u0da7\u0dd4 \u0d9a\u0da9\u0db1\u0dba",
+"Preview": "\u0db4\u0dd9\u0dbb\u0daf\u0dc3\u0dd4\u0db1",
+"Print": "\u0db8\u0dd4\u0daf\u0dca\u200d\u0dbb\u0dab\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Save": "\u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dca\u0db1",
+"Could not find the specified string.": "\u0db1\u0dd2\u0dbb\u0dd6\u0db4\u0dd2\u0dad \u0d85\u0db1\u0dd4\u0dbd\u0d9a\u0dd4\u0dab\u0dd4 \u0dc0\u0dd0\u0dbd \u0dc3\u0ddc\u0dba\u0dcf \u0d9c\u0dad \u0db1\u0ddc\u0dc4\u0dd0\u0d9a\u0dd2 \u0dc0\u0dd2\u0dba",
+"Replace": "\u0db4\u0dca\u200d\u0dbb\u0dad\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db4\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Next": "\u0db4\u0dc3\u0dd4",
+"Whole words": "\u0dc3\u0db8\u0dc3\u0dca\u0dad \u0db4\u0daf",
+"Find and replace": "\u0dc3\u0ddc\u0dba\u0dcf \u0db4\u0dc3\u0dd4\u0dc0 \u0db4\u0dca\u200d\u0dbb\u0dad\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db4\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Replace with": "\u0db8\u0dd9\u0dba \u0dc3\u0db8\u0d9f \u0db4\u0dca\u200d\u0dbb\u0dad\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db4\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Find": "\u0dc3\u0ddc\u0dba\u0db1\u0dca\u0db1",
+"Replace all": "\u0dc3\u0dd2\u0dba\u0dbd\u0dca\u0dbd\u0db8 \u0db4\u0dca\u200d\u0dbb\u0dad\u0dd2\u0dc3\u0dca\u0dae\u0dcf\u0db4\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Match case": "\u0d9a\u0dcf\u0dbb\u0dab\u0dba \u0d9c\u0dbd\u0db4\u0db1\u0dca\u0db1",
+"Prev": "\u0db4\u0dd9\u0dbb",
+"Spellcheck": "\u0d85\u0d9a\u0dca\u0dc2\u0dbb \u0dc0\u0dd2\u0db1\u0dca\u200d\u0dba\u0dcf\u0dc3\u0dba \u0db4\u0dbb\u0dd3\u0d9a\u0dca\u0dc2\u0dcf \u0d9a\u0dbb \u0db6\u0dd0\u0dbd\u0dd3\u0db8",
+"Finish": "\u0d85\u0dc0\u0dc3\u0db1\u0dca",
+"Ignore all": "\u0dc3\u0dd2\u0dba\u0dbd\u0dca\u0dbd\u0db8 \u0db1\u0ddc\u0dc3\u0dbd\u0d9a\u0dcf \u0dc4\u0dbb\u0dd2\u0db1\u0dca\u0db1",
+"Ignore": "\u0db1\u0ddc\u0dc3\u0dbd\u0d9a\u0dcf \u0dc4\u0dd0\u0dbb\u0dd3\u0db8",
+"Insert row before": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dd9\u0dbb \u0db4\u0dda\u0dc5\u0dd2\u0dba\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Rows": "\u0db4\u0dda\u0dc5\u0dd2",
+"Height": "\u0d8b\u0dc3 ",
+"Paste row after": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dc3\u0dd4 \u0db4\u0dda\u0dc5\u0dd2\u0dba \u0d85\u0db8\u0dd4\u0dab\u0db1\u0dca\u0db1 ",
+"Alignment": "\u0db4\u0dd9\u0dc5 \u0d9c\u0dd0\u0dc3\u0dd4\u0db8",
+"Column group": "\u0dad\u0dd3\u0dbb\u0dd4 \u0d9a\u0dcf\u0dab\u0dca\u0da9\u0dba",
+"Row": "\u0db4\u0dda\u0dc5\u0dd2\u0dba ",
+"Insert column before": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dd9\u0dbb \u0dad\u0dd3\u0dbb\u0dd4\u0dc0 \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Split cell": "\u0d9a\u0ddc\u0da7\u0dd4 \u0dc0\u0dd9\u0db1\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
+"Cell padding": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0db4\u0dd2\u0dbb\u0dc0\u0dd4\u0db8",
+"Cell spacing": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0d89\u0da9 \u0dc3\u0dd3\u0db8\u0dcf\u0dc0 ",
+"Row type": "\u0db4\u0dda\u0dc5\u0dd2\u0dba\u0dd9\u0dc4\u0dd2 \u0dc0\u0dbb\u0dca\u0d9c\u0dba",
+"Insert table": "\u0dc0\u0d9c\u0dd4\u0dc0\u0da7 \u0d87\u0dad\u0dd4\u0dbd\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
+"Body": "\u0db4\u0dca\u200d\u0dbb\u0db0\u0dcf\u0db1 \u0d9a\u0ddc\u0da7\u0dc3",
+"Caption": "\u0dba\u0da7\u0dd2 \u0dbd\u0dd2\u0dba\u0db8\u0db1 ",
+"Footer": "\u0db4\u0dcf\u0daf\u0d9a\u0dba",
+"Delete row": "\u0db4\u0dda\u0dc5\u0dd2\u0dba \u0db8\u0d9a\u0db1\u0dca\u0db1 ",
+"Paste row before": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dd9\u0dbb \u0db4\u0dda\u0dc5\u0dd2\u0dba \u0d85\u0db8\u0dd4\u0dab\u0db1\u0dca\u0db1 ",
+"Scope": "\u0dc0\u0dd2\u0dc2\u0dba\u0db4\u0dae\u0dba",
+"Delete table": "\u0dc0\u0d9c\u0dd4\u0dc0 \u0db8\u0d9a\u0db1\u0dca\u0db1 ",
+"Header cell": "\u0dc1\u0dd3\u0dbb\u0dca\u0dc2 \u0d9a\u0ddc\u0da7\u0dd4\u0dc0",
+"Column": "\u0dad\u0dd3\u0dbb\u0dd4\u0dc0",
+"Cell": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0 ",
+"Header": "\u0dc1\u0dd3\u0dbb\u0dca\u0dc2\u0d9a\u0dba",
+"Cell type": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0dc0\u0dbb\u0dca\u0d9c\u0dba",
+"Copy row": "\u0db4\u0dda\u0dc5\u0dd2\u0dba \u0db4\u0dd2\u0da7\u0db4\u0dad\u0dca \u0d9a\u0dbb\u0d9c\u0db1\u0dca\u0db1 ",
+"Row properties": "\u0db4\u0dda\u0dc5\u0dd2\u0dba\u0dd9\u0dc4\u0dd2 \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c ",
+"Table properties": "\u0dc0\u0d9c\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c ",
+"Row group": "\u0db4\u0dda\u0dc5\u0dd2 \u0d9a\u0dcf\u0dab\u0dca\u0da9\u0dba",
+"Right": "\u0daf\u0d9a\u0dd4\u0dab",
+"Insert column after": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dc3\u0dd4 \u0dad\u0dd3\u0dbb\u0dd4\u0dc0 \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
+"Cols": "\u0dad\u0dd3\u0dbb\u0dd4 ",
+"Insert row after": "\u0db8\u0dda \u0dad\u0dd0\u0db1\u0da7 \u0db4\u0dc3\u0dd4 \u0db4\u0dda\u0dc5\u0dd2\u0dba\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
+"Width": "\u0db4\u0dc5\u0dbd",
+"Cell properties": "\u0d9a\u0ddc\u0da7\u0dd4\u0dc0\u0dd9\u0dc4\u0dd2 \u0d9c\u0dd4\u0dab\u0dcf\u0d82\u0d9c ",
+"Left": "\u0dc0\u0db8",
+"Cut row": "\u0db4\u0dda\u0dc5\u0dd2\u0dba \u0d9a\u0db4\u0dcf\u0d9c\u0db1\u0dca\u0db1 ",
+"Delete column": "\u0dad\u0dd3\u0dbb\u0dd4\u0dc0 \u0db8\u0d9a\u0db1\u0dca\u0db1 ",
+"Center": "\u0db8\u0dd0\u0daf",
+"Merge cells": "\u0d9a\u0ddc\u0da7\u0dd4 \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 ",
+"Insert template": "\u0d85\u0da0\u0dca\u0da0\u0dd4\u0dc0 \u0d87\u0dad\u0dd4\u0dbd\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"Templates": "\u0d85\u0da0\u0dca\u0da0\u0dd4",
+"Background color": "\u0db4\u0dc3\u0dd4\u0db6\u0dd2\u0db8\u0dd9\u0dc4\u0dd2 \u0dc0\u0dbb\u0dca\u0dab\u0dba",
+"Text color": "\u0db4\u0dd9\u0dc5 \u0dc3\u0da7\u0dc4\u0db1\u0dda \u0dc0\u0dbb\u0dca\u0dab\u0dba",
+"Show blocks": "\u0d9a\u0ddc\u0da7\u0dc3\u0dca \u0db4\u0dd9\u0db1\u0dca\u0dc0\u0db1\u0dca\u0db1",
+"Show invisible characters": "\u0db1\u0ddc\u0db4\u0dd9\u0db1\u0dd9\u0db1 \u0d85\u0db1\u0dd4\u0dbd\u0d9a\u0dd4\u0dab\u0dd4 \u0db4\u0dd9\u0db1\u0dca\u0dc0\u0db1\u0dca\u0db1",
+"Words: {0}": "\u0dc0\u0da0\u0db1: {0}",
+"Insert": "\u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1",
+"File": "\u0d9c\u0ddc\u0db1\u0dd4\u0dc0",
+"Edit": "\u0dc3\u0d9a\u0dc3\u0db1\u0dca\u0db1",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0db4\u0dd9\u0dc5 \u0dc3\u0da7\u0dc4\u0db1\u0dca \u0db6\u0dc4\u0dd4\u0dbd \u0db4\u0dca\u200d\u0dbb\u0daf\u0dda\u0dc1\u0dba. \u0db8\u0dd9\u0db1\u0dd4\u0dc0 \u0dc3\u0db3\u0dc4\u0dcf ALT-F9 \u0d94\u0db6\u0db1\u0dca\u0db1. \u0db8\u0dd9\u0dc0\u0dbd\u0db8\u0dca \u0dad\u0dd3\u0dbb\u0dd4\u0dc0 \u0dc3\u0db3\u0dc4\u0dcf ALT-F10 \u0d94\u0db6\u0db1\u0dca\u0db1. \u0dc3\u0dc4\u0dba \u0dbd\u0db6\u0dcf\u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf ALT-0 \u0d94\u0db6\u0db1\u0dca\u0db1.",
+"Tools": "\u0db8\u0dd9\u0dc0\u0dbd\u0db8\u0dca",
+"View": "\u0db4\u0dd9\u0db1\u0dca\u0dc0\u0db1\u0dca\u0db1",
+"Table": "\u0dc0\u0d9c\u0dd4\u0dc0",
+"Format": "\u0dc4\u0dd0\u0da9\u0dad\u0dbd\u0dba"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/sk.js b/framework/Web/Javascripts/source/tinymce-405/langs/sk.js
new file mode 100755
index 00000000..b07a1c0c
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/sk.js
@@ -0,0 +1,174 @@
+tinymce.addI18n('sk',{
+"Cut": "Vystrihn\u00fa\u0165",
+"Header 2": "Nadpis 2. \u00farovne",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "V\u00e1\u0161 prehliada\u010d nepodporuje priamy pr\u00edstup do schr\u00e1nky. Pou\u017eite kl\u00e1vesov\u00e9 skratky Ctrl+X\/C\/V.",
+"Div": "Blok",
+"Paste": "Vlo\u017ei\u0165",
+"Close": "Zatvori\u0165",
+"Pre": "Preform\u00e1tovan\u00fd",
+"Align right": "Zarovna\u0165 vpravo",
+"New document": "Nov\u00fd dokument",
+"Blockquote": "Cit\u00e1cia",
+"Numbered list": "\u010c\u00edslovan\u00fd zoznam",
+"Increase indent": "Zv\u00e4\u010d\u0161i\u0165 odsadenie",
+"Formats": "Form\u00e1ty",
+"Headers": "Nadpisy",
+"Select all": "Ozna\u010di\u0165 v\u0161etko",
+"Header 3": "Nadpis 3. \u00farovne",
+"Blocks": "Bloky",
+"Undo": "Vr\u00e1ti\u0165",
+"Strikethrough": "Pre\u010diarknut\u00e9",
+"Bullet list": "Odr\u00e1\u017eky",
+"Header 1": "Nadpis 1. \u00farovne",
+"Superscript": "Horn\u00fd index",
+"Clear formatting": "Vymaza\u0165 form\u00e1tovanie",
+"Subscript": "Spodn\u00fd index",
+"Header 6": "Nadpis 6. \u00farovne",
+"Redo": "Znova",
+"Paragraph": "Odsek",
+"Ok": "Ok",
+"Bold": "Tu\u010dn\u00e9",
+"Code": "K\u00f3d",
+"Italic": "Kurz\u00edva",
+"Align center": "Zarovna\u0165 na stred",
+"Header 5": "Nadpis 5. \u00farovne",
+"Decrease indent": "Zmen\u0161i\u0165 odsadenie",
+"Header 4": "Nadpis 4. \u00farovne",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Vkladanie je v m\u00f3de neform\u00e1tovan\u00e9ho textu. Vkladan\u00fd obsah bude vlo\u017een\u00fd ako neform\u00e1tovan\u00fd, a\u017e pok\u00fdm t\u00fato mo\u017enos\u0165 nevypnete.",
+"Underline": "Pod\u010diarknut\u00e9",
+"Cancel": "Zru\u0161i\u0165",
+"Justify": "Zarovna\u0165",
+"Inline": "Do riadku",
+"Copy": "Kop\u00edrova\u0165",
+"Align left": "Zarovna\u0165 v\u013eavo",
+"Visual aids": "Vizu\u00e1lne pom\u00f4cky",
+"Lower Greek": "Mal\u00e9 gr\u00e9cke p\u00edsmen\u00e1",
+"Square": "\u0160tvorec",
+"Default": "V\u00fdchodzie",
+"Lower Alpha": "Mal\u00e9 p\u00edsmen\u00e1",
+"Circle": "Kruh",
+"Disc": "Disk",
+"Upper Alpha": "Ve\u013ek\u00e9 p\u00edsmen\u00e1",
+"Upper Roman": "Ve\u013ek\u00e9 r\u00edmske \u010d\u00edslice",
+"Lower Roman": "Mal\u00e9 r\u00edmske \u010d\u00edslice",
+"Name": "N\u00e1zov",
+"Anchor": "Odkaz",
+"You have unsaved changes are you sure you want to navigate away?": "M\u00e1te neulo\u017een\u00e9 zmeny, naozaj chcete opusti\u0165 str\u00e1nku?",
+"Restore last draft": "Obnovi\u0165 posledn\u00fd koncept",
+"Special character": "\u0160peci\u00e1lny znak",
+"Source code": "Zdrojov\u00fd k\u00f3d",
+"Right to left": "Sprava do\u013eava",
+"Left to right": "Z\u013eava doprava",
+"Emoticons": "Smajl\u00edci",
+"Robots": "Preh\u013ead\u00e1vacie roboty",
+"Document properties": "Vlastnosti dokumentu",
+"Title": "Nadpis",
+"Keywords": "K\u013e\u00fa\u010dov\u00e9 slov\u00e1",
+"Encoding": "K\u00f3dovanie",
+"Description": "Popis",
+"Author": "Autor",
+"Fullscreen": "Na cel\u00fa obrazovku",
+"Horizontal line": "Horizont\u00e1lna \u010diara",
+"Horizontal space": "Horizont\u00e1lny priestor",
+"Insert\/edit image": "Vlo\u017ei\u0165\/upravi\u0165 obr\u00e1zok",
+"General": "Hlavn\u00e9",
+"Advanced": "Pokro\u010dil\u00e9",
+"Source": "Zdroj",
+"Border": "Or\u00e1movanie",
+"Constrain proportions": "Vymedzen\u00e9 proporcie",
+"Vertical space": "Vertik\u00e1lny priestor",
+"Image description": "Popis obr\u00e1zku",
+"Style": "\u0160t\u00fdl",
+"Dimensions": "Rozmery",
+"Insert image": "Vlo\u017ei\u0165 obr\u00e1zok",
+"Insert date\/time": "Vlo\u017ei\u0165 d\u00e1tum\/\u010das",
+"Remove link": "Odstr\u00e1ni\u0165 odkaz",
+"Url": "Url",
+"Text to display": "Zobrazen\u00fd text",
+"Anchors": "Kotvy",
+"Insert link": "Vlo\u017ei\u0165 odkaz",
+"New window": "Nov\u00e9 okno",
+"None": "\u017diadne",
+"Target": "Cie\u013e",
+"Insert\/edit link": "Vlo\u017ei\u0165\/upravi\u0165 odkaz",
+"Insert\/edit video": "Vlo\u017ei\u0165\/upravi\u0165 video",
+"Poster": "Uk\u00e1\u017eka",
+"Alternative source": "Alternat\u00edvny zdroj",
+"Paste your embed code below:": "Vlo\u017ete k\u00f3d pre vlo\u017eenie na str\u00e1nku:",
+"Insert video": "Vlo\u017ei\u0165 video",
+"Embed": "Vlo\u017een\u00e9",
+"Nonbreaking space": "Nedelite\u013en\u00e1 medzera",
+"Page break": "Zalomenie str\u00e1nky",
+"Preview": "N\u00e1h\u013ead",
+"Print": "Tla\u010di\u0165",
+"Save": "Ulo\u017ei\u0165",
+"Could not find the specified string.": "Zadan\u00fd re\u0165azec sa nena\u0161iel.",
+"Replace": "Nahradi\u0165",
+"Next": "Nasleduj\u00face",
+"Whole words": "Cel\u00e9 slov\u00e1",
+"Find and replace": "Vyh\u013eada\u0165 a nahradi\u0165",
+"Replace with": "Nahradi\u0165 za",
+"Find": "H\u013eada\u0165",
+"Replace all": "Nahradi\u0165 v\u0161etko",
+"Match case": "Rozli\u0161ova\u0165 ve\u013ek\u00e9\/mal\u00e9",
+"Prev": "Predch\u00e1dzaj\u00face",
+"Spellcheck": "Kontrola pravopisu",
+"Finish": "Dokon\u010di\u0165",
+"Ignore all": "Ignorova\u0165 v\u0161etko",
+"Ignore": "Ignorova\u0165",
+"Insert row before": "Vlo\u017ei\u0165 nov\u00fd riadok pred",
+"Rows": "Riadky",
+"Height": "V\u00fd\u0161ka",
+"Paste row after": "Vlo\u017ei\u0165 riadok za",
+"Alignment": "Zarovnanie",
+"Column group": "Skupina st\u013apcov",
+"Row": "Riadok",
+"Insert column before": "Prida\u0165 nov\u00fd st\u013apec pred",
+"Split cell": "Rozdeli\u0165 bunku",
+"Cell padding": "Odsadenie v bunk\u00e1ch",
+"Cell spacing": "Priestor medzi bunkami",
+"Row type": "Typ riadku",
+"Insert table": "Vlo\u017ei\u0165 tabu\u013eku",
+"Body": "Telo",
+"Caption": "Popisok",
+"Footer": "P\u00e4ti\u010dka",
+"Delete row": "Zmaza\u0165 riadok",
+"Paste row before": "Vlo\u017ei\u0165 riadok pred",
+"Scope": "Oblas\u0165",
+"Delete table": "Zmaza\u0165 tabu\u013eku",
+"Header cell": "Bunka hlavi\u010dky",
+"Column": "St\u013apec",
+"Cell": "Bunka",
+"Header": "Z\u00e1hlavie",
+"Cell type": "Typ bunky",
+"Copy row": "Kop\u00edrova\u0165 riadok",
+"Row properties": "Vlastnosti riadku",
+"Table properties": "Nastavenia tabu\u013eky",
+"Row group": "Skupina riadkov",
+"Right": "Vpravo",
+"Insert column after": "Prida\u0165 nov\u00fd st\u013apec za",
+"Cols": "St\u013apce",
+"Insert row after": "Vlo\u017ei\u0165 nov\u00fd riadok za",
+"Width": "\u0160\u00edrka",
+"Cell properties": "Vlastnosti bunky",
+"Left": "V\u013eavo",
+"Cut row": "Vystrihn\u00fa\u0165 riadok",
+"Delete column": "Vymaza\u0165 st\u013apec",
+"Center": "Na stred",
+"Merge cells": "Spoji\u0165 bunky",
+"Insert template": "Vlo\u017ei\u0165 \u0161abl\u00f3nu",
+"Templates": "\u0160abl\u00f3ny",
+"Background color": "Farba pozadia",
+"Text color": "Farba textu",
+"Show blocks": "Zobrazi\u0165 bloky",
+"Show invisible characters": "Zobrazi\u0165 skryt\u00e9 znaky",
+"Words: {0}": "Slov: {0}",
+"Insert": "Vlo\u017ei\u0165",
+"File": "S\u00fabor",
+"Edit": "Upravi\u0165",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Textov\u00e9 pole. Stla\u010dte ALT-F9 pre zobrazenie menu, ALT-F10 pre zobrazenie panela n\u00e1strojov, ALT-0 pre n\u00e1povedu.",
+"Tools": "N\u00e1stroje",
+"View": "Zobrazi\u0165",
+"Table": "Tabu\u013eka",
+"Format": "Form\u00e1t"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/sl_SI.js b/framework/Web/Javascripts/source/tinymce-405/langs/sl_SI.js
new file mode 100755
index 00000000..1ded0d06
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/sl_SI.js
@@ -0,0 +1,152 @@
+tinymce.addI18n('sl_SI',{
+"Cut": "Izre\u017ei",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Varnostne nastavitve brskalnika ne dopu\u0161\u010dajo direktnega dostopa do odlo\u017ei\u0161\u010da. Uporabite kombinacijo tipk Ctrl+X\/C\/V na tipkovnici.",
+"Paste": "Prilepi",
+"Close": "Zapri",
+"Align right": "Desna poravnava",
+"New document": "Nov dokument",
+"Numbered list": "O\u0161tevil\u010den seznam",
+"Increase indent": "Pove\u010daj zamik",
+"Formats": "Oblika",
+"Select all": "Izberi vse",
+"Undo": "Razveljavi",
+"Strikethrough": "Pre\u010drtano",
+"Bullet list": "Ozna\u010den seznam",
+"Superscript": "Nadpisano",
+"Clear formatting": "Odstrani oblikovanje",
+"Subscript": "Podpisano",
+"Redo": "Ponovi",
+"Ok": "V redu",
+"Bold": "Krepko",
+"Italic": "Le\u017ee\u010de",
+"Align center": "Sredinska poravnava",
+"Decrease indent": "Zmanj\u0161aj zamik",
+"Underline": "Pod\u010drtano",
+"Cancel": "Prekli\u010di",
+"Justify": "Obojestranska poravnava",
+"Copy": "Kopiraj",
+"Align left": "Leva poravnava",
+"Visual aids": "Vizualni pripomo\u010dki",
+"Lower Greek": "Male gr\u0161ke \u010drke",
+"Square": "Kvadratek",
+"Default": "Privzeto",
+"Lower Alpha": "Male tiskane \u010drke",
+"Circle": "Pikica",
+"Disc": "Kroglica",
+"Upper Alpha": "Velike tiskane \u010drke",
+"Upper Roman": "Velike rimske \u0161tevilke",
+"Lower Roman": "Male rimske \u0161tevilke",
+"Name": "Naziv zaznamka",
+"Anchor": "Zaznamek",
+"You have unsaved changes are you sure you want to navigate away?": "Imate neshranjene spremembe. Ste prepri\u010dati, da \u017eelite zapustiti stran?",
+"Restore last draft": "Obnovi zadnji osnutek",
+"Special character": "Posebni znaki",
+"Source code": "Izvorna koda",
+"Right to left": "Od desne proti levi",
+"Left to right": "Od leve proti desni",
+"Emoticons": "Sme\u0161ki",
+"Robots": "Robotki",
+"Document properties": "Lastnosti dokumenta",
+"Title": "Naslov",
+"Keywords": "Klju\u010dne besede",
+"Encoding": "Kodiranje",
+"Description": "Opis",
+"Author": "Avtor",
+"Fullscreen": "\u010cez cel zaslon",
+"Horizontal line": "Vodoravna \u010drta",
+"Source": "Pot",
+"Constrain proportions": "Obdr\u017ei razmerje",
+"Dimensions": "Dimenzije",
+"Insert\/edit image": "Vstavi\/uredi sliko",
+"Image description": "Opis slike",
+"Insert date\/time": "Vstavi datum\/\u010das",
+"Url": "Povezava",
+"Text to display": "Prikazno besedilo",
+"Insert link": "Vstavi povezavo",
+"New window": "Novo okno",
+"None": "Brez",
+"Target": "Cilj",
+"Insert\/edit link": "Vstavi\/uredi povezavo",
+"Insert\/edit video": "Vstavi\/uredi video",
+"General": "Splo\u0161no",
+"Poster": "Poster",
+"Alternative source": "Alternativni vir",
+"Paste your embed code below:": "Vstavite kodo predvajalnika z videom:",
+"Insert video": "Vstavi video",
+"Embed": "Vdelaj",
+"Nonbreaking space": "Nedeljivi presledek",
+"Page break": "Prelom strani",
+"Preview": "Predogled",
+"Print": "Natisni",
+"Save": "Shrani",
+"Could not find the specified string.": "Iskanje ni vrnilo rezultatov.",
+"Replace": "Zamenjaj",
+"Next": "Naprej",
+"Whole words": "Cele besede",
+"Find and replace": "Poi\u0161\u010di in zamenjaj",
+"Replace with": "Zamenjaj z",
+"Find": "I\u0161\u010di",
+"Replace all": "Zamenjaj vse",
+"Match case": "Ujemanje malih in velikih \u010drk",
+"Prev": "Nazaj",
+"Spellcheck": "Preverjanje \u010drkovanja",
+"Finish": "Zaklju\u010di",
+"Ignore all": "Prezri vse",
+"Ignore": "Prezri",
+"Insert row before": "Vstavi vrstico pred",
+"Rows": "Vrstice",
+"Height": "Vi\u0161ina",
+"Paste row after": "Prilepi vrstico za",
+"Alignment": "Poravnava",
+"Column group": "Grupiranje stolpcev",
+"Row": "Vrstica",
+"Insert column before": "Vstavi stolpec pred",
+"Split cell": "Razdeli celico",
+"Cell padding": "Polnilo med celicami",
+"Cell spacing": "Razmik med celicami",
+"Row type": "Tip vrstice",
+"Insert table": "Vstavi tabelo",
+"Body": "Vsebina",
+"Caption": "Naslov",
+"Footer": "Noga",
+"Delete row": "Izbri\u0161i vrstico",
+"Paste row before": "Prilepi vrstico pred",
+"Scope": "Obseg",
+"Delete table": "Izbri\u0161i tabelo",
+"Header cell": "Celica glave",
+"Column": "Stolpec",
+"Cell": "Celica",
+"Header": "Glava",
+"Border": "Obroba",
+"Cell type": "Tip celice",
+"Copy row": "Kopiraj vrstico",
+"Row properties": "Lastnosti vrstice",
+"Table properties": "Lastnosti tabele",
+"Row group": "Grupiranje vrstic",
+"Right": "Desno",
+"Insert column after": "Vstavi stolpec za",
+"Cols": "Stolpci",
+"Insert row after": "Vstavi vrstico za",
+"Width": "\u0160irina",
+"Cell properties": "Lastnosti celice",
+"Left": "Levo",
+"Cut row": "Izre\u017ei vrstico",
+"Delete column": "Izbri\u0161i stolpec",
+"Center": "Sredinsko",
+"Merge cells": "Zdru\u017ei celice",
+"Insert template": "Vstavi predlogo",
+"Templates": "Predloge",
+"Background color": "Barva ozadja",
+"Text color": "Barva besedila",
+"Show blocks": "Prika\u017ei bloke",
+"Show invisible characters": "Prika\u017ei skrite znake",
+"Words: {0}": "Besed: {0}",
+"Insert": "Vstavi",
+"File": "Datoteka",
+"Edit": "Uredi",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Bogato besedilo. Pritisnite ALT-F9 za meni. Pritisnite ALT-F10 za orodno vrstico. Pritisnite ALT-0 za pomo\u010d",
+"Tools": "Orodja",
+"View": "Pogled",
+"Table": "Tabela",
+"Format": "Oblika"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/sr.js b/framework/Web/Javascripts/source/tinymce-405/langs/sr.js
new file mode 100755
index 00000000..93fe66ed
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/sr.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('sr',{
+"Cut": "Ise\u0107i",
+"Header 2": "Zaglavlje 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Va\u0161 pretra\u017eiva\u010d nepodr\u017eava direktan pristup prenosu.Koristite Ctrl+X\/C\/V pre\u010dice na tastaturi",
+"Div": "Div",
+"Paste": "Nalepiti",
+"Close": "Zatvori",
+"Pre": "pre",
+"Align right": "Poravnano desno",
+"New document": "Novi dokument",
+"Blockquote": "navodnici",
+"Numbered list": "Numerisana lista",
+"Increase indent": "Pove\u0107aj uvla\u010denje",
+"Formats": "Forrmatiraj",
+"Headers": "Zaglavlje",
+"Select all": "Obele\u017ei sve",
+"Header 3": "Zaglavlje 3",
+"Blocks": "blokovi",
+"Undo": "Korak unazad",
+"Strikethrough": "Precrtan",
+"Bullet list": "Lista nabrajanja",
+"Header 1": "Zaglavlje 1",
+"Superscript": "Natpis",
+"Clear formatting": "Brisanje formatiranja",
+"Subscript": "Potpisan",
+"Header 6": "Zaglavlje 6",
+"Redo": "Korak napred",
+"Paragraph": "Paragraf",
+"Ok": "Ok",
+"Bold": "Podebljan",
+"Code": "kod",
+"Italic": "isko\u0161en",
+"Align center": "Poravnano centar",
+"Header 5": "Zaglavlje 5",
+"Decrease indent": "Smanji uvla\u010denje",
+"Header 4": "Zaglavlje 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Nalepiti je sada u obi\u010dnom text modu.Sadr\u017eaj \u0107e biti nalepljen kao obi\u010dan tekst dok ne ugasite ovu opciju.",
+"Underline": "Podvu\u010den",
+"Cancel": "Opozovi",
+"Justify": "Poravnanje",
+"Inline": "u liniji",
+"Copy": "kopirati",
+"Align left": "Poravnano levo",
+"Visual aids": "Vizuelna pomagala",
+"Lower Greek": "Ni\u017ei gr\u010dki",
+"Square": "Kvadrat",
+"Default": "Podrazumevano",
+"Lower Alpha": "Donja Alpha",
+"Circle": "Krug",
+"Disc": "Disk",
+"Upper Alpha": "Gornji Alpha",
+"Upper Roman": "Gornji Roman",
+"Lower Roman": "Donji Roman",
+"Name": "Ime",
+"Anchor": "Sidro",
+"You have unsaved changes are you sure you want to navigate away?": "Imate nesa\u010duvane promene dali ste sigurni da \u017eelite da iza\u0111ete?",
+"Restore last draft": "Vrati poslednji nacrt",
+"Special character": "Specijalni karakter",
+"Source code": "Izvorni kod",
+"Right to left": "Sa desne na levu",
+"Left to right": "Sa leve na desnu",
+"Emoticons": "Smajliji",
+"Robots": "Roboti",
+"Document properties": "Postavke dokumenta",
+"Title": "Naslov",
+"Keywords": "Klju\u010dne re\u010di",
+"Encoding": "Kodiranje",
+"Description": "Opis",
+"Author": "Autor",
+"Fullscreen": "Pun ekran",
+"Horizontal line": "Horizontalna linija",
+"Horizontal space": "Horizontalni razmak",
+"Insert\/edit image": "Ubaci\/Promeni sliku",
+"General": "Op\u0161te",
+"Advanced": "Napredno",
+"Source": "Izvor",
+"Border": "Okvir",
+"Constrain proportions": "Ograni\u010dene proporcije",
+"Vertical space": "Vertikalni razmak",
+"Image description": "Opis slike",
+"Style": "Stil",
+"Dimensions": "Dimenzije",
+"Insert image": "Ubaci sliku",
+"Insert date\/time": "Ubaci datum\/vreme",
+"Remove link": "Ukloni link",
+"Url": "Url",
+"Text to display": "Tekst za prikaz",
+"Anchors": "sidro",
+"Insert link": "Ubaci vezu",
+"New window": "Novi prozor",
+"None": "Ni\u0161ta",
+"Target": "Meta",
+"Insert\/edit link": "Ubaci\/promeni vezu",
+"Insert\/edit video": "Ubaci\/promeni video",
+"Poster": "Poster",
+"Alternative source": "Alternativni izvor",
+"Paste your embed code below:": "Nalepite ugra\u0111eni kod ispod:",
+"Insert video": "Ubaci video",
+"Embed": "Ugra\u0111eno",
+"Nonbreaking space": "bez ramaka",
+"Page break": "Lomljenje stranice",
+"Paste as text": "Nalepi kao tekst",
+"Preview": "Pregled",
+"Print": "\u0160tampanje",
+"Save": "Sa\u010duvati",
+"Could not find the specified string.": "Nije mogu\u0107e prona\u0107i navedeni niz.",
+"Replace": "Zameni",
+"Next": "Slede\u0107i",
+"Whole words": "Cele re\u010di",
+"Find and replace": "Na\u0111i i zameni",
+"Replace with": "Zameni sa",
+"Find": "Na\u0111i",
+"Replace all": "Zameni sve",
+"Match case": "Predmet za upore\u0111ivanje",
+"Prev": "Prethodni",
+"Spellcheck": "Provera pravopisa",
+"Finish": "Kraj",
+"Ignore all": "Ignori\u0161i sve",
+"Ignore": "ignori\u0161i",
+"Insert row before": "Ubaci red pre",
+"Rows": "Redovi",
+"Height": "Visina",
+"Paste row after": "Nalepi red posle",
+"Alignment": "Svrstavanje",
+"Column group": "Grupa kolone",
+"Row": "Red",
+"Insert column before": "Ubaci kolonu pre",
+"Split cell": "Razdvoji \u0107elije",
+"Cell padding": "Razmak \u0107elije",
+"Cell spacing": "Prostor \u0107elije",
+"Row type": "Tip reda",
+"Insert table": "ubaci tabelu",
+"Body": "Telo",
+"Caption": "Natpis",
+"Footer": "Podno\u017eje",
+"Delete row": "Obri\u0161i red",
+"Paste row before": "Nalepi red pre",
+"Scope": "Obim",
+"Delete table": "Obri\u0161i tabelu",
+"Header cell": "Visina \u0107elije",
+"Column": "Kolona",
+"Cell": "\u0106elija",
+"Header": "Zaglavlje",
+"Cell type": "Tip \u0107elije",
+"Copy row": "Kopiraj red",
+"Row properties": "Postavke reda",
+"Table properties": "Postavke tabele",
+"Row group": "Grupa reda",
+"Right": "Desno",
+"Insert column after": "Ubaci kolonu posle",
+"Cols": "Kolone",
+"Insert row after": "Ubaci red posle",
+"Width": "\u0160irina",
+"Cell properties": "Postavke \u0107elije",
+"Left": "Levo",
+"Cut row": "Iseci red",
+"Delete column": "Obri\u0161i kolonu",
+"Center": "Centar",
+"Merge cells": "Spoji \u0107elije",
+"Insert template": "Ubaci \u0161ablon",
+"Templates": "\u0160abloni",
+"Background color": "Boja pozadine",
+"Text color": "Boja tekst",
+"Show blocks": "Prikaz blokova",
+"Show invisible characters": "Prika\u017ei nevidljive karaktere",
+"Words: {0}": "Re\u010di:{0}",
+"Insert": "Umetni",
+"File": "Datoteka",
+"Edit": "Ure\u0111ivanje",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Oboga\u0107en tekst. Pritisni te ALT-F9 za meni.Pritisnite ALT-F10 za traku sa alatkama.Pritisnite ALT-0 za pomo\u0107",
+"Tools": "Alatke",
+"View": "Prikaz",
+"Table": "Tabela",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/sv_SE.js b/framework/Web/Javascripts/source/tinymce-405/langs/sv_SE.js
new file mode 100755
index 00000000..5bc67568
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/sv_SE.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('sv_SE',{
+"Cut": "Klipp ut",
+"Header 2": "Rubrik 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Din browser st\u00f6der inte direkt acess till klippboken. V\u00e4nligen anv\u00e4nd Ctrl+X\/C\/V kortkomandon i st\u00e4llet.",
+"Div": "Div",
+"Paste": "Klistra in",
+"Close": "St\u00e4ng",
+"Pre": "Pre",
+"Align right": "H\u00f6gerst\u00e4ll",
+"New document": "Nytt dokument",
+"Blockquote": "Blockcitat",
+"Numbered list": "Nummerlista",
+"Increase indent": "\u00d6ka indrag",
+"Formats": "Format",
+"Headers": "Rubriker",
+"Select all": "Markera allt",
+"Header 3": "Rubrik 3",
+"Blocks": "Block",
+"Undo": "\u00c5ngra",
+"Strikethrough": "Genomstruken",
+"Bullet list": "Punktlista",
+"Header 1": "Rubrik 1",
+"Superscript": "Upph\u00f6jd text",
+"Clear formatting": "Avformattera",
+"Subscript": "Neds\u00e4nkt text",
+"Header 6": "Rubrik 6",
+"Redo": "G\u00f6r om",
+"Paragraph": "Paragraf",
+"Ok": "Ok",
+"Bold": "Fetstil",
+"Code": "K\u00e5d",
+"Italic": "Kurisvstil",
+"Align center": "Centrera",
+"Header 5": "Rubrik 5",
+"Decrease indent": "Minska indrag",
+"Header 4": "Rubrik 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Klistra in \u00e4r nu i textl\u00e4ge. Inneh\u00e5ll kommer att konverteras till text tills du sl\u00e5r av detta l\u00e4ge.",
+"Underline": "Understruken",
+"Cancel": "Avbryt",
+"Justify": "Justera",
+"Inline": "Inline",
+"Copy": "Kopiera",
+"Align left": "V\u00e4nsterst\u00e4ll",
+"Visual aids": "Visuella hj\u00e4lpmedel",
+"Lower Greek": "Grekiska gemener",
+"Square": "Fyrkant",
+"Default": "Orginal",
+"Lower Alpha": "Gemener",
+"Circle": "Cirkel",
+"Disc": "Disk",
+"Upper Alpha": "Varsaler",
+"Upper Roman": "Romerskaversaler",
+"Lower Roman": "Romerskagemener",
+"Name": "Namn",
+"Anchor": "Ankare",
+"You have unsaved changes are you sure you want to navigate away?": "Du har f\u00f6r\u00e4ndringar som du inte har sparat. \u00c4r du s\u00e4ker p\u00e5 att du vill navigera vidare?",
+"Restore last draft": "\u00c5terst\u00e4ll senaste utkast",
+"Special character": "Specialtecken",
+"Source code": "K\u00e4llkod",
+"Right to left": "H\u00f6ger till v\u00e4nster",
+"Left to right": "V\u00e4nster till h\u00f6ger",
+"Emoticons": "Emoticons",
+"Robots": "Robotar",
+"Document properties": "Dokumentegenskaper",
+"Title": "Titel",
+"Keywords": "Nyckelord",
+"Encoding": "Encoding",
+"Description": "Beskrivning",
+"Author": "F\u00f6rfattare",
+"Fullscreen": "Fullsk\u00e4rm",
+"Horizontal line": "Horizontell linie",
+"Horizontal space": "Horizontelltutrymme",
+"Insert\/edit image": "Infoga\/redigera bild",
+"General": "Generella",
+"Advanced": "Avancerat",
+"Source": "K\u00e4lla",
+"Border": "Ram",
+"Constrain proportions": "Begr\u00e4nsa proportioner",
+"Vertical space": "Vertikaltutrymme",
+"Image description": "Bildbeskrivning",
+"Style": "Stil",
+"Dimensions": "Dimensioner",
+"Insert image": "Infoga bild",
+"Insert date\/time": "Infoga datum\/tid",
+"Remove link": "Tabort l\u00e4nk",
+"Url": "Url",
+"Text to display": "Text att visa",
+"Anchors": "Bokm\u00e4rken",
+"Insert link": "Infoga l\u00e4nk",
+"New window": "Nytt f\u00f6nster",
+"None": "Ingen",
+"Target": "M\u00e5l",
+"Insert\/edit link": "Infoga\/redigera l\u00e4nk",
+"Insert\/edit video": "Infoga\/redigera video",
+"Poster": "Affish",
+"Alternative source": "Alternativ k\u00e4lla",
+"Paste your embed code below:": "Klistra in din inb\u00e4ddningsk\u00e5d nedan:",
+"Insert video": "Infoga video",
+"Embed": "Inb\u00e4ddning",
+"Nonbreaking space": "Avbrottsfritt mellanrum",
+"Page break": "Sydbrytning",
+"Paste as text": "Klistra in som text",
+"Preview": "F\u00f6rhandsgranska",
+"Print": "Skriv ut",
+"Save": "Spara",
+"Could not find the specified string.": "Kunde inte hitta den specifierade st\u00e4ngen.",
+"Replace": "Ers\u00e4tt",
+"Next": "N\u00e4sta",
+"Whole words": "Hela ord",
+"Find and replace": "S\u00f6k och ers\u00e4tt",
+"Replace with": "Ers\u00e4tt med",
+"Find": "S\u00f6k",
+"Replace all": "Ers\u00e4tt alla",
+"Match case": "Matcha gemener\/versaler",
+"Prev": "F\u00f6reg\u00e5ende",
+"Spellcheck": "R\u00e4ttstava",
+"Finish": "Avsluta",
+"Ignore all": "Ignorera alla",
+"Ignore": "Ignorera",
+"Insert row before": "Infoga rad f\u00f6re",
+"Rows": "Rader",
+"Height": "H\u00f6jd",
+"Paste row after": "Klistra in rad efter",
+"Alignment": "Justering",
+"Column group": "Kolumngrupp",
+"Row": "Rad",
+"Insert column before": "Infoga kollumn f\u00f6re",
+"Split cell": "Bryt is\u00e4r celler",
+"Cell padding": "Cellpaddning",
+"Cell spacing": "Cellmellanrum",
+"Row type": "Radtyp",
+"Insert table": "Infoga tabell",
+"Body": "Kropp",
+"Caption": "Rubrik",
+"Footer": "Fot",
+"Delete row": "Radera rad",
+"Paste row before": "Klista in rad f\u00f6re",
+"Scope": "Omf\u00e5ng",
+"Delete table": "Radera tabell",
+"Header cell": "Huvudcell",
+"Column": "Kolumn",
+"Cell": "Cell",
+"Header": "Huvud",
+"Cell type": "Celltyp",
+"Copy row": "Kopiera rad",
+"Row properties": "Radegenskaper",
+"Table properties": "Tabell egenskaper",
+"Row group": "Radgrupp",
+"Right": "H\u00f6ger",
+"Insert column after": "Infoga kolumn efter",
+"Cols": "Kolumner",
+"Insert row after": "Infoga rad efter",
+"Width": "Bredd",
+"Cell properties": "Cellegenskaper",
+"Left": "V\u00e4nster",
+"Cut row": "Klipp ut rad",
+"Delete column": "Radera kolumn",
+"Center": "Centrum",
+"Merge cells": "Sammanfoga celler",
+"Insert template": "Infoga mall",
+"Templates": "Mallar",
+"Background color": "Bakgrundsf\u00e4rg",
+"Text color": "Textf\u00e4rg",
+"Show blocks": "Visa block",
+"Show invisible characters": "Visa onsynliga tecken",
+"Words: {0}": "Ord: {0}",
+"Insert": "Infoga",
+"File": "Fil",
+"Edit": "Redigera",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Textredigerare. Tryck ALT-F9 f\u00f6r menyn. Tryck ALT-F10 f\u00f6r verktygsrader. Tryck ALT-0 f\u00f6r hj\u00e4lp.",
+"Tools": "Verktyg",
+"View": "Vy",
+"Table": "Tabell",
+"Format": "Format"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ta.js b/framework/Web/Javascripts/source/tinymce-405/langs/ta.js
new file mode 100755
index 00000000..d8210c1c
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ta.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('ta',{
+"Cut": "\u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Header 2": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0ba8\u0b95\u0bb2\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb1\u0bcd\u0b95\u0bc1 \u0ba8\u0bc7\u0bb0\u0b9f\u0bbf \u0b85\u0ba3\u0bc1\u0b95\u0bb2\u0bc8 \u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb2\u0bbe\u0bb5\u0bbf \u0b86\u0ba4\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8. \u0b86\u0b95\u0bb5\u0bc7 \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bb4\u0bbf\u0b95\u0bb3\u0bbe\u0ba9 Ctrl+X\/C\/V \u0b87\u0bb5\u0bb1\u0bcd\u0bb1\u0bc8 \u0ba4\u0baf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bc1 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95.",
+"Div": "\u0baa\u0bbf\u0bb0\u0bbf\u0bb5\u0bc1 (Div)",
+"Paste": "\u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Close": "\u0bae\u0bc2\u0b9f\u0bc1\u0b95",
+"Pre": "\u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1 (Pre)",
+"Align right": "\u0bb5\u0bb2\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
+"New document": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b86\u0bb5\u0ba3\u0bae\u0bcd",
+"Blockquote": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf \u0bae\u0bc7\u0bb1\u0bcd\u0b95\u0bcb\u0bb3\u0bcd",
+"Numbered list": "\u0b8e\u0ba3\u0bcd\u0ba3\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
+"Increase indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b85\u0ba4\u0bbf\u0b95\u0bb0\u0bbf\u0b95\u0bcd\u0b95",
+"Formats": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Headers": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Select all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
+"Header 3": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 3",
+"Blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bcd",
+"Undo": "\u0bae\u0bc1\u0ba9\u0bcd\u0b9a\u0bc6\u0baf\u0bb2\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Strikethrough": "\u0ba8\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1",
+"Bullet list": "\u0baa\u0bca\u0b9f\u0bcd\u0b9f\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
+"Header 1": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 1",
+"Superscript": "\u0bae\u0bc7\u0bb2\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1",
+"Clear formatting": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95",
+"Subscript": "\u0b95\u0bc0\u0bb4\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1",
+"Header 6": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 6",
+"Redo": "\u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
+"Paragraph": "\u0baa\u0ba4\u0bcd\u0ba4\u0bbf",
+"Ok": "\u0b9a\u0bb0\u0bbf",
+"Bold": "\u0ba4\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0bc1",
+"Code": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1",
+"Italic": "\u0b9a\u0bbe\u0baf\u0bcd\u0bb5\u0bc1",
+"Align center": "\u0bae\u0bc8\u0baf \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
+"Header 5": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 5",
+"Decrease indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b95\u0bc1\u0bb1\u0bc8\u0b95\u0bcd\u0b95",
+"Header 4": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8 \u0bae\u0bc1\u0bb1\u0bc8\u0bae\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc1 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1. \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc8 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0bb5\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd.",
+"Underline": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1",
+"Cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
+"Justify": "\u0ba8\u0bc7\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bbf \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
+"Inline": "\u0b89\u0bb3\u0bcd\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8",
+"Copy": "\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95",
+"Align left": "\u0b87\u0b9f\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
+"Visual aids": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0ba4\u0bcd \u0ba4\u0bc1\u0ba3\u0bc8\u0baf\u0ba9\u0bcd\u0b95\u0bb3\u0bcd",
+"Lower Greek": "\u0b95\u0bc0\u0bb4\u0bcd \u0b95\u0bbf\u0bb0\u0bc7\u0b95\u0bcd\u0b95\u0bae\u0bcd",
+"Square": "\u0b9a\u0ba4\u0bc1\u0bb0\u0bae\u0bcd",
+"Default": "\u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
+"Lower Alpha": "\u0b95\u0bc0\u0bb4\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
+"Circle": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bae\u0bcd",
+"Disc": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bc1",
+"Upper Alpha": "\u0bae\u0bc7\u0bb2\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
+"Upper Roman": "\u0bae\u0bc7\u0bb2\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd",
+"Lower Roman": "\u0b95\u0bc0\u0bb4\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd",
+"Name": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd",
+"Anchor": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0bae\u0bcd",
+"You have unsaved changes are you sure you want to navigate away?": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bbe\u0ba4 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba9; \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baf\u0bbe\u0b95 \u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc0\u0bb0\u0bcd\u0b95\u0bbe\u0bb3\u0bbe?",
+"Restore last draft": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95",
+"Special character": "\u0b9a\u0bbf\u0bb1\u0baa\u0bcd\u0baa\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1",
+"Source code": "\u0bae\u0bc2\u0bb2 \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1",
+"Right to left": "\u0bb5\u0bb2\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0b87\u0b9f\u0bae\u0bcd",
+"Left to right": "\u0b87\u0b9f\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0bb5\u0bb2\u0bae\u0bcd",
+"Emoticons": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+"Robots": "Robots",
+"Document properties": "\u0b86\u0bb5\u0ba3\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Title": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
+"Keywords": "\u0bae\u0bc1\u0ba4\u0ba9\u0bcd\u0bae\u0bc8\u0b9a\u0bcd\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd",
+"Encoding": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bbe\u0b95\u0bcd\u0b95\u0bae\u0bcd",
+"Description": "\u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd",
+"Author": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0bb3\u0bb0\u0bcd",
+"Fullscreen": "\u0bae\u0bc1\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb0\u0bc8",
+"Horizontal line": "\u0b95\u0bbf\u0b9f\u0bc8 \u0b95\u0bcb\u0b9f\u0bc1",
+"Horizontal space": "\u0b95\u0bbf\u0b9f\u0bc8\u0bae\u0b9f\u0bcd\u0b9f \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
+"Insert\/edit image": "\u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
+"General": "\u0baa\u0bca\u0ba4\u0bc1",
+"Advanced": "\u0bae\u0bc7\u0bae\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
+"Source": "\u0bae\u0bc2\u0bb2\u0bae\u0bcd",
+"Border": "\u0b95\u0bb0\u0bc8",
+"Constrain proportions": "\u0bb5\u0bbf\u0b95\u0bbf\u0ba4\u0bbe\u0b9a\u0bcd\u0b9a\u0bbe\u0bb0\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b95\u0b9f\u0bcd\u0b9f\u0bc1\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95",
+"Vertical space": "\u0ba8\u0bc6\u0b9f\u0bc1\u0ba4\u0bb3 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
+"Image description": "\u0baa\u0b9f \u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd",
+"Style": "\u0baa\u0bbe\u0ba3\u0bbf",
+"Dimensions": "\u0baa\u0bb0\u0bbf\u0bae\u0bbe\u0ba3\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+"Insert image": "\u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Insert date\/time": "\u0ba4\u0bc7\u0ba4\u0bbf\/\u0ba8\u0bc7\u0bb0\u0bae\u0bcd \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Remove link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Url": "\u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
+"Text to display": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bbf\u0baf \u0b89\u0bb0\u0bc8",
+"Anchors": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+"Insert link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"New window": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b9a\u0bbe\u0bb3\u0bb0\u0bae\u0bcd",
+"None": "\u0b8f\u0ba4\u0bc1\u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
+"Target": "\u0b87\u0bb2\u0b95\u0bcd\u0b95\u0bc1",
+"Insert\/edit link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
+"Insert\/edit video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
+"Poster": "\u0b9a\u0bc1\u0bb5\u0bb0\u0bca\u0b9f\u0bcd\u0b9f\u0bbf",
+"Alternative source": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 \u0bae\u0bc2\u0bb2\u0bae\u0bcd",
+"Paste your embed code below:": "\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0b9f\u0bcd\u0baa\u0bc6\u0bbe\u0ba4\u0bbf \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc8 \u0b95\u0bc0\u0bb4\u0bc7 \u0b92\u0b9f\u0bcd\u0b9f\u0bb5\u0bc1\u0bae\u0bcd:",
+"Insert video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Embed": "\u0b89\u0b9f\u0bcd\u0baa\u0bca\u0ba4\u0bbf",
+"Nonbreaking space": "\u0baa\u0bbf\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
+"Page break": "\u0baa\u0b95\u0bcd\u0b95 \u0baa\u0bbf\u0bb0\u0bbf\u0baa\u0bcd\u0baa\u0bc1",
+"Paste as text": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Preview": "\u0bae\u0bc1\u0ba9\u0bcd\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1",
+"Print": "\u0b85\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95",
+"Save": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95",
+"Could not find the specified string.": "\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bcd\u0b9f \u0b9a\u0bb0\u0bae\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
+"Replace": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Next": "\u0b85\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4",
+"Whole words": "\u0bae\u0bc1\u0bb4\u0bc1 \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd",
+"Find and replace": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Replace with": "\u0b87\u0ba4\u0ba9\u0bc1\u0b9f\u0ba9\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Find": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95",
+"Replace all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Match case": "\u0bb5\u0b9f\u0bbf\u0bb5\u0ba4\u0bcd\u0ba4\u0bc8 \u0baa\u0bca\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95",
+"Prev": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf",
+"Spellcheck": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0bb4\u0bc8\u0baf\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95",
+"Finish": "\u0bae\u0bc1\u0b9f\u0bbf\u0b95\u0bcd\u0b95",
+"Ignore all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95",
+"Ignore": "\u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95",
+"Insert row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Rows": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
+"Height": "\u0b89\u0baf\u0bb0\u0bae\u0bcd",
+"Paste row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Alignment": "\u0b9a\u0bc0\u0bb0\u0bae\u0bc8\u0bb5\u0bc1",
+"Column group": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1",
+"Row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8",
+"Insert column before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Split cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8\u0b95\u0bb3\u0bc8 \u0baa\u0bbf\u0bb0\u0bbf\u0b95\u0bcd\u0b95",
+"Cell padding": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0ba8\u0bbf\u0bb0\u0baa\u0bcd\u0baa\u0bb2\u0bcd",
+"Cell spacing": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
+"Row type": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0bb5\u0b95\u0bc8",
+"Insert table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Body": "\u0b89\u0b9f\u0bb2\u0bcd",
+"Caption": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
+"Footer": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bc1",
+"Delete row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Paste row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Scope": "\u0bb5\u0bb0\u0bc8\u0baf\u0bc6\u0bb2\u0bcd\u0bb2\u0bc8",
+"Delete table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8\u0baf\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Header cell": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8",
+"Column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8",
+"Cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8",
+"Header": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
+"Cell type": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0bb5\u0b95\u0bc8",
+"Copy row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95",
+"Row properties": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Table properties": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Row group": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1",
+"Right": "\u0bb5\u0bb2\u0bae\u0bcd",
+"Insert column after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Cols": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
+"Insert row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Width": "\u0b85\u0b95\u0bb2\u0bae\u0bcd",
+"Cell properties": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Left": "\u0b87\u0b9f\u0bae\u0bcd",
+"Cut row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Delete column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Center": "\u0bae\u0bc8\u0baf\u0bae\u0bcd",
+"Merge cells": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8\u0b95\u0bb3\u0bc8 \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95",
+"Insert template": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1\u0bb5\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Templates": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd",
+"Background color": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0ba3\u0bbf \u0ba8\u0bbf\u0bb1\u0bae\u0bcd",
+"Text color": "\u0b89\u0bb0\u0bc8\u0baf\u0bbf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd",
+"Show blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Show invisible characters": "\u0b95\u0ba3\u0bcd\u0ba3\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0ba4\u0bcd \u0ba4\u0bc6\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Words: {0}": "\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd: {0}",
+"Insert": "\u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"File": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1",
+"Edit": "\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0b89\u0baf\u0bb0\u0bcd \u0b89\u0bb0\u0bc8 \u0baa\u0b95\u0bc1\u0ba4\u0bbf. \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-F9 , \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc1 ALT-F10 , \u0b89\u0ba4\u0bb5\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-0",
+"Tools": "\u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0b95\u0bb3\u0bcd",
+"View": "\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8",
+"Format": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ta_IN.js b/framework/Web/Javascripts/source/tinymce-405/langs/ta_IN.js
new file mode 100755
index 00000000..92821d17
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ta_IN.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('ta_IN',{
+"Cut": "\u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Header 2": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0ba8\u0b95\u0bb2\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb1\u0bcd\u0b95\u0bc1 \u0ba8\u0bc7\u0bb0\u0b9f\u0bbf \u0b85\u0ba3\u0bc1\u0b95\u0bb2\u0bc8 \u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb2\u0bbe\u0bb5\u0bbf \u0b86\u0ba4\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8. \u0b86\u0b95\u0bb5\u0bc7 \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bb4\u0bbf\u0b95\u0bb3\u0bbe\u0ba9 Ctrl+X\/C\/V \u0b87\u0bb5\u0bb1\u0bcd\u0bb1\u0bc8 \u0ba4\u0baf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bc1 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95.",
+"Div": "Div",
+"Paste": "\u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Close": "\u0bae\u0bc2\u0b9f\u0bc1\u0b95",
+"Pre": "Pre",
+"Align right": "\u0bb5\u0bb2\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
+"New document": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b86\u0bb5\u0ba3\u0bae\u0bcd",
+"Blockquote": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf \u0bae\u0bc7\u0bb1\u0bcd\u0b95\u0bcb\u0bb3\u0bcd",
+"Numbered list": "\u0b8e\u0ba3\u0bcd\u0ba3\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
+"Increase indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b85\u0ba4\u0bbf\u0b95\u0bb0\u0bbf\u0b95\u0bcd\u0b95",
+"Formats": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Headers": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Select all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
+"Header 3": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 3",
+"Blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bcd",
+"Undo": "\u0bae\u0bc1\u0ba9\u0bcd\u0b9a\u0bc6\u0baf\u0bb2\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Strikethrough": "\u0ba8\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1",
+"Bullet list": "\u0baa\u0bca\u0b9f\u0bcd\u0b9f\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
+"Header 1": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 1",
+"Superscript": "\u0bae\u0bc7\u0bb2\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1",
+"Clear formatting": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95",
+"Subscript": "\u0b95\u0bc0\u0bb4\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1",
+"Header 6": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 6",
+"Redo": "\u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
+"Paragraph": "\u0baa\u0ba4\u0bcd\u0ba4\u0bbf",
+"Ok": "\u0b9a\u0bb0\u0bbf",
+"Bold": "\u0ba4\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0bc1",
+"Code": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1",
+"Italic": "\u0b9a\u0bbe\u0baf\u0bcd\u0bb5\u0bc1",
+"Align center": "\u0bae\u0bc8\u0baf \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
+"Header 5": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 5",
+"Decrease indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b95\u0bc1\u0bb1\u0bc8\u0b95\u0bcd\u0b95",
+"Header 4": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8 \u0bae\u0bc1\u0bb1\u0bc8\u0bae\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc1 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1. \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc8 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0bb5\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd.",
+"Underline": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1",
+"Cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
+"Justify": "\u0ba8\u0bc7\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bbf \u0b9a\u0bc6\u0baf\u0bcd\u0b95",
+"Inline": "\u0b89\u0bb3\u0bcd\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8",
+"Copy": "\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95",
+"Align left": "\u0b87\u0b9f\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8",
+"Visual aids": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0ba4\u0bcd \u0ba4\u0bc1\u0ba3\u0bc8\u0baf\u0ba9\u0bcd\u0b95\u0bb3\u0bcd",
+"Lower Greek": "\u0b95\u0bc0\u0bb4\u0bcd \u0b95\u0bbf\u0bb0\u0bc7\u0b95\u0bcd\u0b95\u0bae\u0bcd",
+"Square": "\u0b9a\u0ba4\u0bc1\u0bb0\u0bae\u0bcd",
+"Default": "\u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
+"Lower Alpha": "\u0b95\u0bc0\u0bb4\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
+"Circle": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bae\u0bcd",
+"Disc": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bc1",
+"Upper Alpha": "\u0bae\u0bc7\u0bb2\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
+"Upper Roman": "\u0bae\u0bc7\u0bb2\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd",
+"Lower Roman": "\u0b95\u0bc0\u0bb4\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd",
+"Name": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd",
+"Anchor": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0bae\u0bcd",
+"You have unsaved changes are you sure you want to navigate away?": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bbe\u0ba4 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba9; \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baf\u0bbe\u0b95 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc0\u0bb0\u0bcd\u0b95\u0bbe\u0bb3\u0bbe?",
+"Restore last draft": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95",
+"Special character": "\u0b9a\u0bbf\u0bb1\u0baa\u0bcd\u0baa\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1",
+"Source code": "\u0bae\u0bc2\u0bb2 \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1",
+"Right to left": "\u0bb5\u0bb2\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0b87\u0b9f\u0bae\u0bcd",
+"Left to right": "\u0b87\u0b9f\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0bb5\u0bb2\u0bae\u0bcd",
+"Emoticons": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+"Robots": "Robots",
+"Document properties": "\u0b86\u0bb5\u0ba3\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Title": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
+"Keywords": "\u0bae\u0bc1\u0ba4\u0ba9\u0bcd\u0bae\u0bc8\u0b9a\u0bcd\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd",
+"Encoding": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bbe\u0b95\u0bcd\u0b95\u0bae\u0bcd",
+"Description": "\u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd",
+"Author": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0bb3\u0bb0\u0bcd",
+"Fullscreen": "\u0bae\u0bc1\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb0\u0bc8",
+"Horizontal line": "\u0b95\u0bbf\u0b9f\u0bc8 \u0b95\u0bcb\u0b9f\u0bc1",
+"Horizontal space": "\u0b95\u0bbf\u0b9f\u0bc8\u0bae\u0b9f\u0bcd\u0b9f \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
+"Insert\/edit image": "\u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
+"General": "\u0baa\u0bca\u0ba4\u0bc1",
+"Advanced": "\u0bae\u0bc7\u0bae\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
+"Source": "\u0bae\u0bc2\u0bb2\u0bae\u0bcd",
+"Border": "\u0b95\u0bb0\u0bc8",
+"Constrain proportions": "\u0bb5\u0bbf\u0b95\u0bbf\u0ba4\u0bbe\u0b9a\u0bcd\u0b9a\u0bbe\u0bb0\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b95\u0b9f\u0bcd\u0b9f\u0bc1\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95",
+"Vertical space": "\u0ba8\u0bc6\u0b9f\u0bc1\u0ba4\u0bb3 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
+"Image description": "\u0baa\u0b9f \u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd",
+"Style": "\u0baa\u0bbe\u0ba3\u0bbf",
+"Dimensions": "\u0baa\u0bb0\u0bbf\u0bae\u0bbe\u0ba3\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+"Insert image": "\u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Insert date\/time": "\u0ba4\u0bc7\u0ba4\u0bbf\/\u0ba8\u0bc7\u0bb0\u0bae\u0bcd \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Remove link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Url": "\u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
+"Text to display": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bbf\u0baf \u0b89\u0bb0\u0bc8",
+"Anchors": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+"Insert link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"New window": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b9a\u0bbe\u0bb3\u0bb0\u0bae\u0bcd",
+"None": "\u0b8f\u0ba4\u0bc1\u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
+"Target": "\u0b87\u0bb2\u0b95\u0bcd\u0b95\u0bc1",
+"Insert\/edit link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
+"Insert\/edit video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
+"Poster": "\u0b9a\u0bc1\u0bb5\u0bb0\u0bca\u0b9f\u0bcd\u0b9f\u0bbf",
+"Alternative source": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 \u0bae\u0bc2\u0bb2\u0bae\u0bcd",
+"Paste your embed code below:": "\u0b95\u0bc0\u0bb4\u0bc7 \u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0b9f\u0bcd\u0baa\u0bc6\u0bbe\u0ba4\u0bbf \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bb5\u0bc1\u0bae\u0bcd:",
+"Insert video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Embed": "\u0b89\u0b9f\u0bcd\u0baa\u0bca\u0ba4\u0bbf",
+"Nonbreaking space": "\u0baa\u0bbf\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
+"Page break": "\u0baa\u0b95\u0bcd\u0b95 \u0baa\u0bbf\u0bb0\u0bbf\u0baa\u0bcd\u0baa\u0bc1",
+"Paste as text": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Preview": "\u0bae\u0bc1\u0ba9\u0bcd\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1",
+"Print": "\u0b85\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95",
+"Save": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95",
+"Could not find the specified string.": "\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bcd\u0b9f \u0b9a\u0bb0\u0bae\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
+"Replace": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Next": "\u0b85\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4",
+"Whole words": "\u0bae\u0bc1\u0bb4\u0bc1 \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd",
+"Find and replace": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Replace with": "\u0b87\u0ba4\u0ba9\u0bc1\u0b9f\u0ba9\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Find": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95",
+"Replace all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95",
+"Match case": "\u0bb5\u0b9f\u0bbf\u0bb5\u0ba4\u0bcd\u0ba4\u0bc8 \u0baa\u0bca\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95",
+"Prev": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf",
+"Spellcheck": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0bb4\u0bc8\u0baf\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95",
+"Finish": "\u0bae\u0bc1\u0b9f\u0bbf\u0b95\u0bcd\u0b95",
+"Ignore all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95",
+"Ignore": "\u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95",
+"Insert row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Rows": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
+"Height": "\u0b89\u0baf\u0bb0\u0bae\u0bcd",
+"Paste row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Alignment": "\u0b9a\u0bc0\u0bb0\u0bae\u0bc8\u0bb5\u0bc1",
+"Column group": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1",
+"Row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8",
+"Insert column before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Split cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8\u0b95\u0bb3\u0bc8 \u0baa\u0bbf\u0bb0\u0bbf\u0b95\u0bcd\u0b95",
+"Cell padding": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0ba8\u0bbf\u0bb0\u0baa\u0bcd\u0baa\u0bb2\u0bcd",
+"Cell spacing": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf",
+"Row type": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0bb5\u0b95\u0bc8",
+"Insert table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Body": "\u0b89\u0b9f\u0bb2\u0bcd",
+"Caption": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
+"Footer": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bc1",
+"Delete row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Paste row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Scope": "\u0bb5\u0bb0\u0bc8\u0baf\u0bc6\u0bb2\u0bcd\u0bb2\u0bc8",
+"Delete table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8\u0baf\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Header cell": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8",
+"Column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8",
+"Cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8",
+"Header": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
+"Cell type": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0bb5\u0b95\u0bc8",
+"Copy row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95",
+"Row properties": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Table properties": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Row group": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1",
+"Right": "\u0bb5\u0bb2\u0bae\u0bcd",
+"Insert column after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Cols": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
+"Insert row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Width": "\u0b85\u0b95\u0bb2\u0bae\u0bcd",
+"Cell properties": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
+"Left": "\u0b87\u0b9f\u0bae\u0bcd",
+"Cut row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Delete column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0baf\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Center": "\u0bae\u0bc8\u0baf\u0bae\u0bcd",
+"Merge cells": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8\u0b95\u0bb3\u0bc8 \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95",
+"Insert template": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1\u0bb5\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"Templates": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd",
+"Background color": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0ba3\u0bbf \u0ba8\u0bbf\u0bb1\u0bae\u0bcd",
+"Text color": "\u0b89\u0bb0\u0bc8\u0baf\u0bbf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd",
+"Show blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Show invisible characters": "\u0b95\u0ba3\u0bcd\u0ba3\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0ba4\u0bcd \u0ba4\u0bc6\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
+"Words: {0}": "\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd: {0}",
+"Insert": "\u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95",
+"File": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1",
+"Edit": "\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0b89\u0baf\u0bb0\u0bcd \u0b89\u0bb0\u0bc8 \u0baa\u0b95\u0bc1\u0ba4\u0bbf. \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-F9 , \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc1 ALT-F10 , \u0b89\u0ba4\u0bb5\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-0",
+"Tools": "\u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0b95\u0bb3\u0bcd",
+"View": "\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1\u0b95",
+"Table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8",
+"Format": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/th_TH.js b/framework/Web/Javascripts/source/tinymce-405/langs/th_TH.js
new file mode 100755
index 00000000..28d2c8b4
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/th_TH.js
@@ -0,0 +1,156 @@
+tinymce.addI18n('th_TH',{
+"Cut": "\u0e15\u0e31\u0e14",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e42\u0e14\u0e22\u0e15\u0e23\u0e07\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e04\u0e25\u0e34\u0e1b\u0e1a\u0e2d\u0e23\u0e4c\u0e14 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e43\u0e0a\u0e49\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e25\u0e31\u0e14 Ctrl+X\/C\/V \u0e41\u0e17\u0e19",
+"Paste": "\u0e27\u0e32\u0e07",
+"Close": "\u0e1b\u0e34\u0e14",
+"Align right": "\u0e08\u0e31\u0e14\u0e0a\u0e34\u0e14\u0e02\u0e27\u0e32",
+"New document": "\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e43\u0e2b\u0e21\u0e48",
+"Numbered list": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e40\u0e25\u0e02",
+"Increase indent": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e40\u0e22\u0e37\u0e49\u0e2d\u0e07",
+"Formats": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
+"Select all": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+"Undo": "\u0e40\u0e25\u0e34\u0e01\u0e17\u0e33",
+"Strikethrough": "\u0e02\u0e35\u0e14\u0e17\u0e31\u0e1a",
+"Bullet list": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d\u0e22\u0e48\u0e2d\u0e22",
+"Superscript": "\u0e15\u0e31\u0e27\u0e22\u0e01",
+"Clear formatting": "\u0e25\u0e49\u0e32\u0e07\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
+"Subscript": "\u0e15\u0e31\u0e27\u0e2b\u0e49\u0e2d\u0e22",
+"Redo": "\u0e17\u0e4d\u0e32\u0e0b\u0e49\u0e33",
+"Ok": "\u0e15\u0e01\u0e25\u0e07",
+"Bold": "\u0e15\u0e31\u0e27\u0e2b\u0e19\u0e32",
+"Italic": "\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e35\u0e22\u0e07",
+"Align center": "\u0e08\u0e31\u0e14\u0e01\u0e36\u0e48\u0e07\u0e01\u0e25\u0e32\u0e07",
+"Decrease indent": "\u0e25\u0e14\u0e01\u0e32\u0e23\u0e40\u0e22\u0e37\u0e49\u0e2d\u0e07",
+"Underline": "\u0e02\u0e35\u0e14\u0e40\u0e2a\u0e49\u0e19\u0e43\u0e15\u0e49",
+"Cancel": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+"Justify": "\u0e40\u0e15\u0e47\u0e21\u0e41\u0e19\u0e27",
+"Copy": "\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01",
+"Align left": "\u0e08\u0e31\u0e14\u0e0a\u0e34\u0e14\u0e0b\u0e49\u0e32\u0e22",
+"Visual aids": "\u0e17\u0e31\u0e28\u0e19\u0e39\u0e1b\u0e01\u0e23\u0e13\u0e4c",
+"Lower Greek": "\u0e01\u0e23\u0e35\u0e01\u0e17\u0e35\u0e48\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32",
+"Square": "\u0e08\u0e31\u0e15\u0e38\u0e23\u0e31\u0e2a",
+"Default": "\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+"Lower Alpha": "\u0e2d\u0e31\u0e25\u0e1f\u0e32\u0e17\u0e35\u0e48\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32",
+"Circle": "\u0e27\u0e07\u0e01\u0e25\u0e21",
+"Disc": "\u0e14\u0e34\u0e2a\u0e01\u0e4c",
+"Upper Alpha": "\u0e2d\u0e31\u0e25\u0e1f\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e39\u0e07\u0e01\u0e27\u0e48\u0e32",
+"Upper Roman": "\u0e42\u0e23\u0e21\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e39\u0e07\u0e01\u0e27\u0e48\u0e32",
+"Lower Roman": "\u0e42\u0e23\u0e21\u0e31\u0e19\u0e17\u0e35\u0e48\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32",
+"Name": "\u0e0a\u0e37\u0e48\u0e2d",
+"Anchor": "\u0e08\u0e38\u0e14\u0e22\u0e36\u0e14",
+"You have unsaved changes are you sure you want to navigate away?": "\u0e04\u0e38\u0e13\u0e21\u0e35\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01 \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2d\u0e2d\u0e01\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48?",
+"Restore last draft": "\u0e04\u0e37\u0e19\u0e04\u0e48\u0e32\u0e41\u0e1a\u0e1a\u0e23\u0e48\u0e32\u0e07\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
+"Special character": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e1e\u0e34\u0e40\u0e28\u0e29",
+"Source code": "\u0e42\u0e04\u0e49\u0e14\u0e15\u0e49\u0e19\u0e09\u0e1a\u0e31\u0e1a",
+"Right to left": "\u0e02\u0e27\u0e32\u0e44\u0e1b\u0e0b\u0e49\u0e32\u0e22",
+"Left to right": "\u0e0b\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e02\u0e27\u0e32",
+"Emoticons": "\u0e2d\u0e34\u0e42\u0e21\u0e15\u0e34\u0e04\u0e2d\u0e19",
+"Robots": "\u0e2b\u0e38\u0e48\u0e19\u0e22\u0e19\u0e15\u0e4c",
+"Document properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+"Title": "\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+"Keywords": "\u0e04\u0e33\u0e2a\u0e33\u0e04\u0e31\u0e0d",
+"Encoding": "\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e2b\u0e31\u0e2a",
+"Description": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22",
+"Author": "\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e35\u0e22\u0e19",
+"Fullscreen": "\u0e40\u0e15\u0e47\u0e21\u0e08\u0e2d",
+"Horizontal line": "\u0e40\u0e2a\u0e49\u0e19\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19",
+"Horizontal space": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19",
+"Insert\/edit image": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e23\u0e39\u0e1b",
+"General": "\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b",
+"Advanced": "\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07",
+"Source": "\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32",
+"Border": "\u0e40\u0e2a\u0e49\u0e19\u0e02\u0e2d\u0e1a",
+"Constrain proportions": "\u0e08\u0e33\u0e01\u0e31\u0e14\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19",
+"Vertical space": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e41\u0e19\u0e27\u0e15\u0e31\u0e49\u0e07",
+"Image description": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e23\u0e39\u0e1b",
+"Style": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
+"Dimensions": "\u0e02\u0e19\u0e32\u0e14",
+"Insert date\/time": "\u0e41\u0e17\u0e23\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\/\u0e40\u0e27\u0e25\u0e32",
+"Url": "URL",
+"Text to display": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e35\u0e48\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07",
+"Insert link": "\u0e41\u0e17\u0e23\u0e01\u0e25\u0e34\u0e07\u0e01\u0e4c",
+"New window": "\u0e40\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e43\u0e2b\u0e21\u0e48",
+"None": "\u0e44\u0e21\u0e48\u0e21\u0e35",
+"Target": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+"Insert\/edit link": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e25\u0e34\u0e07\u0e01\u0e4c",
+"Insert\/edit video": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d",
+"Poster": "\u0e42\u0e1b\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c",
+"Alternative source": "\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e2a\u0e33\u0e23\u0e2d\u0e07",
+"Paste your embed code below:": "\u0e27\u0e32\u0e07\u0e42\u0e04\u0e49\u0e14\u0e1d\u0e31\u0e07\u0e15\u0e31\u0e27\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07:",
+"Insert video": "\u0e41\u0e17\u0e23\u0e01\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d",
+"Embed": "\u0e1d\u0e31\u0e07",
+"Nonbreaking space": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e44\u0e21\u0e48\u0e41\u0e22\u0e01",
+"Page break": "\u0e15\u0e31\u0e27\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
+"Preview": "\u0e41\u0e2a\u0e14\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07",
+"Print": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c",
+"Save": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01",
+"Could not find the specified string.": "\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e2a\u0e15\u0e23\u0e34\u0e07\u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38",
+"Replace": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48",
+"Next": "\u0e16\u0e31\u0e14\u0e44\u0e1b",
+"Whole words": "\u0e17\u0e31\u0e49\u0e07\u0e04\u0e33",
+"Find and replace": "\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e41\u0e25\u0e30\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48",
+"Replace with": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e14\u0e49\u0e27\u0e22",
+"Find": "\u0e04\u0e49\u0e19\u0e2b\u0e32",
+"Replace all": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+"Match case": "\u0e15\u0e23\u0e07\u0e15\u0e32\u0e21\u0e15\u0e31\u0e27\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e43\u0e2b\u0e0d\u0e48-\u0e40\u0e25\u0e47\u0e01",
+"Prev": "\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32",
+"Spellcheck": "\u0e15\u0e23\u0e27\u0e08\u0e01\u0e32\u0e23\u0e2a\u0e30\u0e01\u0e14",
+"Finish": "\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e34\u0e49\u0e19",
+"Ignore all": "\u0e25\u0e30\u0e40\u0e27\u0e49\u0e19\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+"Ignore": "\u0e25\u0e30\u0e40\u0e27\u0e49\u0e19",
+"Insert row before": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19",
+"Rows": "\u0e41\u0e16\u0e27",
+"Height": "\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e39\u0e07",
+"Paste row after": "\u0e27\u0e32\u0e07\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07",
+"Alignment": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e41\u0e19\u0e27",
+"Column group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c",
+"Row": "\u0e41\u0e16\u0e27",
+"Insert column before": "\u0e41\u0e17\u0e23\u0e01\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e02\u0e49\u0e32\u0e07\u0e2b\u0e19\u0e49\u0e32",
+"Split cell": "\u0e41\u0e22\u0e01\u0e40\u0e0b\u0e25\u0e25\u0e4c",
+"Cell padding": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e20\u0e32\u0e22\u0e43\u0e19\u0e40\u0e0b\u0e25\u0e25\u0e4c",
+"Cell spacing": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e40\u0e0b\u0e25\u0e25\u0e4c",
+"Row type": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e41\u0e16\u0e27",
+"Insert table": "\u0e41\u0e17\u0e23\u0e01\u0e15\u0e32\u0e23\u0e32\u0e07",
+"Body": "\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+"Caption": "\u0e1b\u0e49\u0e32\u0e22\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22",
+"Footer": "\u0e2a\u0e48\u0e27\u0e19\u0e17\u0e49\u0e32\u0e22",
+"Delete row": "\u0e25\u0e1a\u0e41\u0e16\u0e27",
+"Paste row before": "\u0e27\u0e32\u0e07\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19",
+"Scope": "\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15",
+"Delete table": "\u0e25\u0e1a\u0e15\u0e32\u0e23\u0e32\u0e07",
+"Header cell": "\u0e40\u0e0b\u0e25\u0e25\u0e4c\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27",
+"Column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c",
+"Cell": "\u0e40\u0e0b\u0e25\u0e25\u0e4c",
+"Header": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27",
+"Cell type": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e25\u0e25\u0e4c",
+"Copy row": "\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e41\u0e16\u0e27",
+"Row properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e41\u0e16\u0e27",
+"Table properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07",
+"Row group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e41\u0e16\u0e27",
+"Right": "\u0e02\u0e27\u0e32",
+"Insert column after": "\u0e41\u0e17\u0e23\u0e01\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e02\u0e49\u0e32\u0e07\u0e2b\u0e25\u0e31\u0e07",
+"Cols": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c",
+"Insert row after": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07",
+"Width": "\u0e04\u0e27\u0e32\u0e21\u0e01\u0e27\u0e49\u0e32\u0e07",
+"Cell properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e25\u0e25\u0e4c",
+"Left": "\u0e0b\u0e49\u0e32\u0e22",
+"Cut row": "\u0e15\u0e31\u0e14\u0e41\u0e16\u0e27",
+"Delete column": "\u0e25\u0e1a\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c",
+"Center": "\u0e01\u0e36\u0e48\u0e07\u0e01\u0e25\u0e32\u0e07",
+"Merge cells": "\u0e1c\u0e2a\u0e32\u0e19\u0e40\u0e0b\u0e25\u0e25\u0e4c",
+"Insert template": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a",
+"Templates": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a",
+"Background color": "\u0e2a\u0e35\u0e1e\u0e37\u0e49\u0e19\u0e2b\u0e25\u0e31\u0e07",
+"Text color": "\u0e2a\u0e35\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+"Show blocks": "\u0e41\u0e2a\u0e14\u0e07\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+"Show invisible characters": "\u0e41\u0e2a\u0e14\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e17\u0e35\u0e48\u0e21\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e2b\u0e47\u0e19",
+"Words: {0}": "\u0e04\u0e33: {0}",
+"Insert": "\u0e41\u0e17\u0e23\u0e01",
+"File": "\u0e44\u0e1f\u0e25\u0e4c",
+"Edit": "\u0e41\u0e01\u0e49\u0e44\u0e02",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 Rich Text \u0e01\u0e14 ALT-F9 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e21\u0e19\u0e39 \u0e01\u0e14 ALT-F10 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e41\u0e16\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d \u0e01\u0e14 ALT-0 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d",
+"Tools": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d",
+"View": "\u0e21\u0e38\u0e21\u0e21\u0e2d\u0e07",
+"Table": "\u0e15\u0e32\u0e23\u0e32\u0e07",
+"Format": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/tr_TR.js b/framework/Web/Javascripts/source/tinymce-405/langs/tr_TR.js
new file mode 100755
index 00000000..9ca6142d
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/tr_TR.js
@@ -0,0 +1,174 @@
+tinymce.addI18n('tr_TR',{
+"Cut": "Kes",
+"Header 2": "Ba\u015fl\u0131k 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Taray\u0131c\u0131n\u0131z panoya direk eri\u015fimi desteklemiyor. L\u00fctfen Ctrl+X\/C\/V klavye k\u0131sayollar\u0131n\u0131 kullan\u0131n.",
+"Div": "Div",
+"Paste": "Yap\u0131\u015ft\u0131r",
+"Close": "Kapat",
+"Pre": "\u00d6n",
+"Align right": "Sa\u011fa hizala",
+"New document": "Yeni dok\u00fcman",
+"Blockquote": "Al\u0131nt\u0131",
+"Numbered list": "S\u0131ral\u0131 liste",
+"Increase indent": "Girintiyi art\u0131r",
+"Formats": "Bi\u00e7imler",
+"Headers": "Ba\u015fl\u0131klar",
+"Select all": "T\u00fcm\u00fcn\u00fc se\u00e7",
+"Header 3": "Ba\u015fl\u0131k 3",
+"Blocks": "Engeller",
+"Undo": "Geri Al",
+"Strikethrough": "\u00dcst\u00fc \u00e7izili",
+"Bullet list": "S\u0131ras\u0131z liste",
+"Header 1": "Ba\u015fl\u0131k 1",
+"Superscript": "\u00dcst simge",
+"Clear formatting": "Bi\u00e7imi temizle",
+"Subscript": "Alt simge",
+"Header 6": "Ba\u015fl\u0131k 6",
+"Redo": "Yinele",
+"Paragraph": "Paragraf",
+"Ok": "Tamam",
+"Bold": "Kal\u0131n",
+"Code": "Kod",
+"Italic": "\u0130talik",
+"Align center": "Ortala",
+"Header 5": "Ba\u015fl\u0131k 5",
+"Decrease indent": "Girintiyi azalt",
+"Header 4": "Ba\u015fl\u0131k 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "D\u00fcz metin modunda yap\u0131\u015ft\u0131r. Bu se\u00e7ene\u011fi kapatana kadar i\u00e7erikler d\u00fcz metin olarak yap\u0131\u015ft\u0131r\u0131l\u0131r.",
+"Underline": "Alt\u0131 \u00e7izili",
+"Cancel": "\u0130ptal",
+"Justify": "\u0130ki yana yasla",
+"Inline": "Sat\u0131r i\u00e7i",
+"Copy": "Kopyala",
+"Align left": "Sola hizala",
+"Visual aids": "G\u00f6rsel ara\u00e7lar",
+"Lower Greek": "K\u00fc\u00e7\u00fck Yunan alfabesi",
+"Square": "Kare",
+"Default": "Varsay\u0131lan",
+"Lower Alpha": "K\u00fc\u00e7\u00fck ABC",
+"Circle": "Daire",
+"Disc": "Disk",
+"Upper Alpha": "B\u00fcy\u00fck ABC",
+"Upper Roman": "B\u00fcy\u00fck Roman alfabesi",
+"Lower Roman": "K\u00fc\u00e7\u00fck Roman alfabesi",
+"Name": "\u0130sim",
+"Anchor": "\u00c7apa",
+"You have unsaved changes are you sure you want to navigate away?": "Kaydedilmemi\u015f de\u011fi\u015fiklikler var, sayfadan ayr\u0131lmak istedi\u011finize emin misiniz?",
+"Restore last draft": "Son tasla\u011f\u0131 kurtar",
+"Special character": "\u00d6zel karakter",
+"Source code": "Kaynak kodu",
+"Right to left": "Sa\u011fdan sola",
+"Left to right": "Soldan sa\u011fa",
+"Emoticons": "G\u00fcl\u00fcc\u00fckler",
+"Robots": "Robotlar",
+"Document properties": "Dok\u00fcman \u00f6zellikleri",
+"Title": "Ba\u015fl\u0131k",
+"Keywords": "Anahtar kelimeler",
+"Encoding": "Kodlama",
+"Description": "A\u00e7\u0131klama",
+"Author": "Yazar",
+"Fullscreen": "Tam ekran",
+"Horizontal line": "Yatay \u00e7izgi",
+"Horizontal space": "Yatay bo\u015fluk",
+"Insert\/edit image": "Resim ekle\/d\u00fczenle",
+"General": "Genel",
+"Advanced": "Geli\u015fmi\u015f",
+"Source": "Kaynak",
+"Border": "\u00c7er\u00e7eve",
+"Constrain proportions": "En - Boy oran\u0131n\u0131 koru",
+"Vertical space": "Dikey bo\u015fluk",
+"Image description": "Resim a\u00e7\u0131klamas\u0131",
+"Style": "Stil",
+"Dimensions": "Boyutlar",
+"Insert image": "Resim ekle",
+"Insert date\/time": "Tarih \/ Zaman ekle",
+"Remove link": "Ba\u011flant\u0131y\u0131 kald\u0131r",
+"Url": "Url",
+"Text to display": "G\u00f6r\u00fcnen yaz\u0131",
+"Anchors": "\u00c7apalar",
+"Insert link": "Ba\u011flant\u0131 ekle",
+"New window": "Yeni pencere",
+"None": "Hi\u00e7biri",
+"Target": "Hedef",
+"Insert\/edit link": "Ba\u011flant\u0131 ekle\/d\u00fczenle",
+"Insert\/edit video": "Video ekle\/d\u00fczenle",
+"Poster": "Poster",
+"Alternative source": "Alternatif kaynak",
+"Paste your embed code below:": "Medya g\u00f6mme kodunu buraya yap\u0131\u015ft\u0131r:",
+"Insert video": "Video ekle",
+"Embed": "G\u00f6mme",
+"Nonbreaking space": "B\u00f6l\u00fcnemez bo\u015fluk",
+"Page break": "Sayfa sonu",
+"Preview": "\u00d6nizleme",
+"Print": "Yazd\u0131r",
+"Save": "Kaydet",
+"Could not find the specified string.": "Herhangi bir sonu\u00e7 bulunamad\u0131.",
+"Replace": "De\u011fi\u015ftir",
+"Next": "Sonraki",
+"Whole words": "Tam s\u00f6zc\u00fckler",
+"Find and replace": "Bul ve de\u011fi\u015ftir",
+"Replace with": "Bununla de\u011fi\u015ftir",
+"Find": "Bul",
+"Replace all": "T\u00fcm\u00fcn\u00fc de\u011fi\u015ftir",
+"Match case": "B\u00fcy\u00fck \/ K\u00fc\u00e7\u00fck harfe duyarl\u0131",
+"Prev": "\u00d6nceki",
+"Spellcheck": "Yaz\u0131m denetimi",
+"Finish": "Bitir",
+"Ignore all": "T\u00fcm\u00fcn\u00fc yoksay",
+"Ignore": "Yoksay",
+"Insert row before": "\u00d6ncesine yeni sat\u0131r ekle",
+"Rows": "Sat\u0131rlar",
+"Height": "Y\u00fckseklik",
+"Paste row after": "Sonras\u0131na sat\u0131r yap\u0131\u015ft\u0131r",
+"Alignment": "Hizalama",
+"Column group": "S\u00fctun grubu",
+"Row": "Sat\u0131r",
+"Insert column before": "\u00d6ncesine yeni s\u00fctun ekle",
+"Split cell": "H\u00fccreleri ay\u0131r",
+"Cell padding": "H\u00fccre i\u00e7 bo\u015flu\u011fu",
+"Cell spacing": "H\u00fccre aral\u0131\u011f\u0131",
+"Row type": "Sat\u0131r tipi",
+"Insert table": "Tablo ekle",
+"Body": "G\u00f6vde",
+"Caption": "Ba\u015fl\u0131k",
+"Footer": "Alt",
+"Delete row": "Sat\u0131r\u0131 sil",
+"Paste row before": "\u00d6ncesine sat\u0131r yap\u0131\u015ft\u0131r",
+"Scope": "Kapsam",
+"Delete table": "Tabloyu sil",
+"Header cell": "Ba\u015fl\u0131k h\u00fccresi",
+"Column": "S\u00fctun",
+"Cell": "H\u00fccre",
+"Header": "Ba\u015fl\u0131k",
+"Cell type": "H\u00fccre tipi",
+"Copy row": "Sat\u0131r\u0131 kopyala",
+"Row properties": "Sat\u0131r \u00f6zellikleri",
+"Table properties": "Tablo \u00f6zellikleri",
+"Row group": "Sat\u0131r grubu",
+"Right": "Sa\u011f",
+"Insert column after": "Sonras\u0131na yeni s\u00fctun ekle",
+"Cols": "S\u00fctunlar",
+"Insert row after": "Sonras\u0131na yeni sat\u0131r ekle",
+"Width": "Geni\u015flik",
+"Cell properties": "H\u00fccre \u00f6zellikleri",
+"Left": "Sol",
+"Cut row": "Sat\u0131r\u0131 kes",
+"Delete column": "S\u00fctunu sil",
+"Center": "Orta",
+"Merge cells": "H\u00fccreleri birle\u015ftir",
+"Insert template": "\u015eablon ekle",
+"Templates": "\u015eablonlar",
+"Background color": "Arkaplan rengi",
+"Text color": "Yaz\u0131 rengi",
+"Show blocks": "Bloklar\u0131 g\u00f6r\u00fcnt\u00fcle",
+"Show invisible characters": "G\u00f6r\u00fcnmez karakterleri g\u00f6ster",
+"Words: {0}": "Kelime: {0}",
+"Insert": "Ekle",
+"File": "Dosya",
+"Edit": "D\u00fczenle",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zengin Metin Alan\u0131. Men\u00fc i\u00e7in ALT-F9 k\u0131sayolunu kullan\u0131n. Ara\u00e7 \u00e7ubu\u011fu i\u00e7in ALT-F10 k\u0131sayolunu kullan\u0131n. Yard\u0131m i\u00e7in ALT-0 k\u0131sayolunu kullan\u0131n.",
+"Tools": "Ara\u00e7lar",
+"View": "G\u00f6r\u00fcnt\u00fcle",
+"Table": "Tablo",
+"Format": "Bi\u00e7im"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/ug.js b/framework/Web/Javascripts/source/tinymce-405/langs/ug.js
new file mode 100755
index 00000000..b4bd955f
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/ug.js
@@ -0,0 +1,156 @@
+tinymce.addI18n('ug',{
+"Cut": "\u0643\u06d0\u0633\u0649\u0634",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0633\u0649\u0632\u0646\u0649\u06ad \u062a\u0648\u0631 \u0643\u06c6\u0631\u06af\u06c8\u0686\u0649\u06ad\u0649\u0632 \u0642\u0649\u064a\u0649\u067e \u0686\u0627\u067e\u0644\u0627\u0634 \u062a\u0627\u062e\u062a\u0649\u0633\u0649 \u0632\u0649\u064a\u0627\u0631\u06d5\u062a \u0642\u0649\u0644\u0649\u0634\u0646\u0649 \u0642\u0648\u0644\u0644\u0649\u0645\u0627\u064a\u062f\u06c7. Ctrl+X\/C\/V \u062a\u06d0\u0632\u0644\u06d5\u062a\u0645\u06d5 \u0643\u0648\u0646\u06c7\u067e\u0643\u0649\u0633\u0649 \u0626\u0627\u0631\u0642\u0649\u0644\u0649\u0642 \u0643\u06d0\u0633\u0649\u067e \u0686\u0627\u067e\u0644\u0627\u0634 \u0645\u06d5\u0634\u063a\u06c7\u0644\u0627\u062a\u0649 \u0642\u0649\u0644\u0649\u06ad.",
+"Paste": "\u0686\u0627\u067e\u0644\u0627\u0634",
+"Close": "\u062a\u0627\u0642\u0627\u0634",
+"Align right": "\u0626\u0648\u06ad\u063a\u0627 \u062a\u0648\u063a\u06c7\u0631\u0644\u0627\u0634",
+"New document": "\u064a\u06d0\u06ad\u0649 \u06be\u06c6\u062c\u062c\u06d5\u062a \u0642\u06c7\u0631\u06c7\u0634",
+"Numbered list": "\u0633\u0627\u0646\u0644\u0649\u0642 \u062a\u0649\u0632\u0649\u0645\u0644\u0649\u0643",
+"Increase indent": "\u0643\u06d5\u064a\u0646\u0649\u06af\u06d5 \u0633\u06c8\u0631\u06c8\u0634",
+"Formats": "\u0641\u0648\u0631\u0645\u0627\u062a",
+"Select all": "\u06be\u06d5\u0645\u0645\u0649\u0646\u0649 \u062a\u0627\u0644\u0644\u0627\u0634",
+"Undo": "\u0626\u0627\u0631\u0642\u0649\u063a\u0627 \u064a\u06d0\u0646\u0649\u0634",
+"Strikethrough": "\u0626\u06c6\u0686\u06c8\u0631\u06c8\u0634 \u0633\u0649\u0632\u0649\u0642\u0649",
+"Bullet list": "\u0628\u06d5\u0644\u06af\u06d5 \u062a\u0649\u0632\u0649\u0645\u0644\u0649\u0643",
+"Superscript": "\u0626\u06c8\u0633\u062a\u06c8\u0646\u0643\u0649 \u0628\u06d5\u0644\u06af\u06d5",
+"Clear formatting": "\u0641\u0648\u0631\u0645\u0627\u062a\u0646\u0649 \u062a\u0627\u0632\u0644\u0627\u0634",
+"Subscript": "\u0626\u0627\u0633\u062a\u0649\u0646\u0642\u0649 \u0628\u06d5\u0644\u06af\u06d5",
+"Redo": "\u0642\u0627\u064a\u062a\u0627 \u0642\u0649\u0644\u0649\u0634",
+"Ok": "\u062c\u06d5\u0632\u0649\u0645\u0644\u06d5\u0634",
+"Bold": "\u062a\u0648\u0645",
+"Italic": "\u064a\u0627\u0646\u062a\u06c7",
+"Align center": "\u0645\u06d5\u0631\u0643\u06d5\u0632\u06af\u06d5 \u062a\u0648\u063a\u06c7\u0631\u0644\u0627\u0634",
+"Decrease indent": "\u0626\u0627\u0644\u062f\u0649\u063a\u0627 \u0633\u06c8\u0631\u06c8\u0634",
+"Underline": "\u0626\u0627\u0633\u062a\u0649 \u0633\u0649\u0632\u0649\u0642",
+"Cancel": "\u0642\u0627\u0644\u062f\u06c7\u0631\u06c7\u0634",
+"Justify": "\u0626\u0649\u0643\u0643\u0649 \u064a\u0627\u0646\u063a\u0627 \u062a\u0648\u063a\u06c7\u0631\u0644\u0627\u0634",
+"Copy": "\u0643\u06c6\u0686\u06c8\u0631\u06c8\u0634",
+"Align left": "\u0633\u0648\u0644\u063a\u0627 \u062a\u0648\u063a\u0631\u0649\u0644\u0627\u0634",
+"Visual aids": "\u0626\u06d5\u0633\u0643\u06d5\u0631\u062a\u0649\u0634",
+"Lower Greek": "\u06af\u0631\u06d0\u062a\u0633\u0649\u064a\u0649\u0686\u06d5 \u0643\u0649\u0686\u0649\u0643 \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
+"Square": "\u0643\u06cb\u0627\u062f\u0631\u0627\u062a",
+"Default": "\u0633\u06c8\u0643\u06c8\u062a",
+"Lower Alpha": "\u0626\u0649\u0646\u06af\u0649\u0644\u0649\u0632\u0686\u06d5 \u0643\u0649\u0686\u0649\u0643 \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
+"Circle": "\u0686\u06d5\u0645\u0628\u06d5\u0631",
+"Disc": "\u062f\u06d0\u0633\u0643\u0627",
+"Upper Alpha": "\u0626\u0649\u0646\u06af\u0649\u0644\u0649\u0632\u0686\u06d5 \u0686\u0648\u06ad \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
+"Upper Roman": "\u0631\u0649\u0645\u0686\u06d5 \u0686\u0648\u06ad \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
+"Lower Roman": "\u0631\u0649\u0645\u0686\u06d5 \u0643\u0649\u0686\u0649\u0643 \u064a\u06d0\u0632\u0649\u0644\u0649\u0634\u0649",
+"Name": "\u0646\u0627\u0645\u0649",
+"Anchor": "\u0626\u06c7\u0644\u0627\u0646\u0645\u0627",
+"You have unsaved changes are you sure you want to navigate away?": "\u0633\u0649\u0632 \u062a\u06d0\u062e\u0649 \u0645\u06d5\u0632\u0645\u06c7\u0646\u0646\u0649 \u0633\u0627\u0642\u0644\u0649\u0645\u0649\u062f\u0649\u06ad\u0649\u0632\u060c \u0626\u0627\u064a\u0631\u0649\u0644\u0627\u0645\u0633\u0649\u0632\u061f",
+"Restore last draft": "\u0626\u0627\u062e\u0649\u0631\u0642\u0649 \u0643\u06c7\u067e\u0649\u064a\u0649\u06af\u06d5 \u0642\u0627\u064a\u062a\u0649\u0634",
+"Special character": "\u0626\u0627\u0644\u0627\u06be\u0649\u062f\u06d5 \u0628\u06d5\u0644\u06af\u0649\u0644\u06d5\u0631",
+"Source code": "\u0626\u06d5\u0633\u0644\u0649 \u0643\u0648\u062f\u0649",
+"Right to left": "\u0626\u0648\u06ad\u062f\u0649\u0646 \u0633\u0648\u0644\u063a\u0627",
+"Left to right": "\u0633\u0648\u0644\u062f\u0649\u0646 \u0626\u0648\u06ad\u063a\u0627 ",
+"Emoticons": "\u0686\u0649\u0631\u0627\u064a \u0626\u0649\u067e\u0627\u062f\u06d5",
+"Robots": "\u0645\u0627\u0634\u0649\u0646\u0627 \u0626\u0627\u062f\u06d5\u0645",
+"Document properties": "\u06be\u06c6\u062c\u062c\u06d5\u062a \u062e\u0627\u0633\u0644\u0649\u0642\u0649",
+"Title": "\u062a\u06d0\u0645\u0627",
+"Keywords": "\u06be\u0627\u0644\u0642\u0649\u0644\u0649\u0642 \u0633\u06c6\u0632",
+"Encoding": "\u0643\u0648\u062f\u0644\u0627\u0634",
+"Description": "\u062a\u06d5\u0633\u0649\u06cb\u0649\u0631",
+"Author": "\u0626\u06c7\u0644\u0627\u0646\u0645\u0627",
+"Fullscreen": "\u067e\u06c8\u062a\u06c8\u0646 \u0626\u06d0\u0643\u0631\u0627\u0646",
+"Horizontal line": "\u06af\u0648\u0631\u0632\u0649\u0646\u062a\u0627\u0644 \u0642\u06c7\u0631",
+"Horizontal space": "\u06af\u0648\u0631\u0632\u0649\u0646\u062a\u0627\u0644 \u0628\u0648\u0634\u0644\u06c7\u0642",
+"Insert\/edit image": "\u0631\u06d5\u0633\u0649\u0645 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634 \u064a\u0627\u0643\u0649 \u062a\u06d5\u06be\u0631\u0649\u0631\u0644\u06d5\u0634",
+"General": "\u0626\u0627\u062f\u06d5\u062a\u062a\u0649\u0643\u0649",
+"Advanced": "\u0626\u0627\u0644\u0627\u06be\u0649\u062f\u06d5",
+"Source": "\u0645\u06d5\u0646\u0628\u06d5",
+"Border": "\u064a\u0627\u0642\u0627",
+"Constrain proportions": "\u0626\u06d0\u06af\u0649\u0632\u0644\u0649\u0643-\u0643\u06d5\u06ad\u0644\u0649\u0643 \u0646\u0649\u0633\u067e\u0649\u062a\u0649\u0646\u0649 \u0633\u0627\u0642\u0644\u0627\u0634",
+"Vertical space": "\u06cb\u06d0\u0631\u062a\u0649\u0643\u0627\u0644 \u0628\u0648\u0634\u0644\u06c7\u0642",
+"Image description": "\u0631\u06d5\u0633\u0649\u0645 \u062a\u06d5\u0633\u06cb\u0649\u0631\u0649",
+"Style": "\u0626\u06c7\u0633\u0644\u06c7\u067e",
+"Dimensions": "\u0686\u0648\u06ad-\u0643\u0649\u0686\u0649\u0643",
+"Insert date\/time": "\u0686\u0649\u0633\u0644\u0627\/\u06cb\u0627\u0642\u0649\u062a \u0643\u0649\u0631\u06af\u06c8\u0632\u06c8\u0634",
+"Url": "\u0626\u0627\u062f\u0631\u0649\u0633",
+"Text to display": "\u0643\u06c6\u0631\u06c8\u0646\u0649\u062f\u0649\u063a\u0627\u0646 \u0645\u06d5\u0632\u0645\u06c7\u0646",
+"Insert link": "\u0626\u06c7\u0644\u0649\u0646\u0649\u0634 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"New window": "\u064a\u06d0\u06ad\u0649 \u0643\u06c6\u0632\u0646\u06d5\u0643",
+"None": "\u064a\u0648\u0642",
+"Target": "\u0646\u0649\u0634\u0627\u0646",
+"Insert\/edit link": "\u0626\u06c7\u0644\u0649\u0646\u0649\u0634 \u0642\u06c7\u0633\u062a\u06c7\u0631\u06c7\u0634\/\u062a\u06d5\u06be\u0631\u0649\u0631\u0644\u06d5\u0634",
+"Insert\/edit video": "\u0633\u0649\u0646 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634\/\u062a\u06d5\u06be\u0631\u0649\u0631\u0644\u06d5\u0634",
+"Poster": "\u064a\u0648\u0644\u0644\u0649\u063a\u06c7\u0686\u0649",
+"Alternative source": "\u062a\u06d5\u0633\u06cb\u0649\u0631\u0649",
+"Paste your embed code below:": "\u0642\u0649\u0633\u062a\u06c7\u0631\u0645\u0627\u0642\u0686\u0649 \u0628\u0648\u0644\u063a\u0627\u0646 \u0643\u0648\u062f\u0646\u0649 \u0686\u0627\u067e\u0644\u0627\u06ad",
+"Insert video": "\u0633\u0649\u0646 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"Embed": "\u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"Nonbreaking space": "\u0628\u0648\u0634\u0644\u06c7\u0642",
+"Page break": "\u0628\u06d5\u062a \u0626\u0627\u062e\u0649\u0631\u0644\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
+"Preview": "\u0643\u06c6\u0631\u06c8\u0634",
+"Print": "\u0628\u0627\u0633\u0645\u0627\u0642 ",
+"Save": "\u0633\u0627\u0642\u0644\u0627\u0634",
+"Could not find the specified string.": "\u0626\u0649\u0632\u062f\u0649\u0645\u06d5\u0643\u0686\u0649 \u0628\u0648\u0644\u063a\u0627\u0646 \u0645\u06d5\u0632\u0645\u06c7\u0646\u0646\u0649 \u062a\u0627\u067e\u0627\u0644\u0645\u0649\u062f\u0649.",
+"Replace": "\u0626\u0627\u0644\u0645\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
+"Next": "\u0643\u06d0\u064a\u0649\u0646\u0643\u0649\u0633\u0649",
+"Whole words": "\u062a\u0648\u0644\u06c7\u0642 \u0645\u0627\u0633\u0644\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
+"Find and replace": "\u0626\u0649\u0632\u062f\u06d5\u0634 \u06cb\u06d5 \u0626\u0627\u0644\u0645\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
+"Replace with": "\u0626\u0627\u0644\u0645\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
+"Find": "\u0626\u0649\u0632\u062f\u06d5\u0634",
+"Replace all": "\u06be\u06d5\u0645\u0645\u0649\u0646\u0649 \u0626\u0627\u0644\u0645\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
+"Match case": "\u0686\u0648\u06ad \u0643\u0649\u0686\u0649\u0643 \u06be\u06d5\u0631\u0649\u067e\u0646\u0649 \u067e\u06d5\u0631\u0649\u0642\u0644\u06d5\u0646\u062f\u06c8\u0631\u06c8\u0634",
+"Prev": "\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649\u0633\u0649",
+"Spellcheck": "\u0626\u0649\u0645\u0644\u0627 \u062a\u06d5\u0643\u0634\u06c8\u0631\u06c8\u0634",
+"Finish": "\u0626\u0627\u062e\u0649\u0631\u0644\u0627\u0634\u062a\u06c7\u0631\u06c7\u0634",
+"Ignore all": "\u06be\u06d5\u0645\u0645\u0649\u0646\u0649 \u0626\u06c6\u062a\u0643\u06c8\u0632\u06c8\u0634",
+"Ignore": "\u0626\u06c6\u062a\u0643\u06c8\u0632\u06c8\u0634",
+"Insert row before": "\u0626\u0627\u0644\u062f\u0649\u063a\u0627 \u0642\u06c7\u0631 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"Rows": "\u0642\u06c7\u0631",
+"Height": "\u0626\u06d0\u06af\u0649\u0632\u0644\u0649\u0643\u0649",
+"Paste row after": "\u0642\u06c7\u0631 \u0643\u06d5\u064a\u0646\u0649\u06af\u06d5 \u0686\u0627\u067e\u0644\u0627\u0634",
+"Alignment": "\u064a\u06c6\u0644\u0649\u0646\u0649\u0634\u0649",
+"Column group": "\u0631\u06d5\u062a \u06af\u06c7\u0631\u06c7\u067e\u067e\u0649\u0633\u0649",
+"Row": "\u0642\u06c7\u0631",
+"Insert column before": "\u0631\u06d5\u062a \u0626\u0627\u0644\u062f\u0649\u063a\u0627 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"Split cell": "\u0643\u0627\u062a\u06d5\u0643 \u067e\u0627\u0631\u0686\u0649\u0644\u0627\u0634",
+"Cell padding": "\u0643\u0627\u062a\u06d5\u0643 \u0626\u0649\u0686\u0643\u0649 \u0626\u0627\u0631\u0649\u0644\u0649\u0642\u0649",
+"Cell spacing": "\u0643\u0627\u062a\u06d5\u0643 \u0633\u0649\u0631\u062a\u0642\u0649 \u0626\u0627\u0631\u0649\u0644\u0649\u0642\u0649",
+"Row type": "\u0642\u06c7\u0631 \u062a\u0649\u067e\u0649",
+"Insert table": "\u062c\u06d5\u062f\u06cb\u06d5\u0644 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"Body": "\u0628\u06d5\u062f\u0649\u0646\u0649",
+"Caption": "\u0686\u06c8\u0634\u06d5\u0646\u062f\u06c8\u0631\u06c8\u0634",
+"Footer": "\u067e\u06c7\u062a\u0649",
+"Delete row": "\u0642\u06c7\u0631 \u0626\u06c6\u0686\u06c8\u0631\u06c8\u0634",
+"Paste row before": "\u0642\u06c7\u0631 \u0626\u0627\u0644\u062f\u0649\u063a\u0627 \u0686\u0627\u067e\u0644\u0627\u0634",
+"Scope": "\u062f\u0627\u0626\u0649\u0631\u06d5",
+"Delete table": "\u062c\u06d5\u062f\u06cb\u06d5\u0644 \u0626\u06c6\u0686\u06c8\u0631\u0634",
+"Header cell": "\u0628\u0627\u0634 \u0643\u0627\u062a\u06d5\u0643",
+"Column": "\u0631\u06d5\u062a",
+"Cell": "\u0643\u0627\u062a\u06d5\u0643",
+"Header": "\u0628\u06d0\u0634\u0649",
+"Cell type": "\u0643\u0627\u062a\u06d5\u0643 \u062a\u0649\u067e\u0649",
+"Copy row": "\u0642\u06c7\u0631 \u0643\u06c6\u0686\u06c8\u0631\u06c8\u0634",
+"Row properties": "\u0642\u06c7\u0631 \u062e\u0627\u0633\u0644\u0649\u0642\u0649",
+"Table properties": "\u062c\u06d5\u062f\u06cb\u06d5\u0644 \u062e\u0627\u0633\u0644\u0649\u0642\u0649",
+"Row group": "\u0642\u06c7\u0631 \u06af\u06c7\u0631\u06c7\u067e\u067e\u0649\u0633\u0649",
+"Right": "\u0626\u0648\u06ad",
+"Insert column after": "\u0631\u06d5\u062a \u0643\u06d5\u064a\u0646\u0649\u06af\u06d5 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"Cols": "\u0631\u06d5\u062a",
+"Insert row after": "\u0626\u0627\u0631\u0642\u0649\u063a\u0627 \u0642\u06c7\u0631 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"Width": "\u0643\u06d5\u06ad\u0644\u0649\u0643\u0649",
+"Cell properties": "\u0643\u0627\u062a\u06d5\u0643 \u062e\u0627\u0633\u0644\u0649\u0642\u0649",
+"Left": "\u0633\u0648\u0644",
+"Cut row": "\u0642\u06c7\u0631 \u0643\u06d0\u0633\u0649\u0634",
+"Delete column": "\u0631\u06d5\u062a \u0626\u06c6\u0686\u06c8\u0631\u06c8\u0634",
+"Center": "\u0645\u06d5\u0631\u0643\u06d5\u0632",
+"Merge cells": "\u0643\u0627\u062a\u06d5\u0643 \u0628\u0649\u0631\u0644\u06d5\u0634\u062a\u06c8\u0631\u06c8\u0634",
+"Insert template": "\u0626\u06c8\u0644\u06af\u06d5 \u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"Templates": "\u0626\u06c8\u0644\u06af\u0649\u0644\u06d5\u0631",
+"Background color": "\u0626\u0627\u0631\u0642\u0627 \u0631\u06d5\u06ad\u06af\u0649",
+"Text color": "\u062e\u06d5\u062a \u0631\u06d5\u06ad\u06af\u0649",
+"Show blocks": "\u0631\u0627\u064a\u0648\u0646 \u0643\u06c6\u0631\u0633\u0649\u062a\u0649\u0634",
+"Show invisible characters": "\u0643\u06c6\u0631\u06c8\u0646\u0645\u06d5\u064a\u062f\u0649\u063a\u0627\u0646 \u06be\u06d5\u0631\u0649\u067e\u0644\u06d5\u0631\u0646\u0649 \u0643\u06c6\u0631\u0633\u0649\u062a\u0649\u0634",
+"Words: {0}": "\u0633\u06c6\u0632: {0}",
+"Insert": "\u0642\u0649\u0633\u062a\u06c7\u0631\u06c7\u0634",
+"File": "\u06be\u06c6\u062c\u062c\u06d5\u062a",
+"Edit": "\u062a\u06d5\u06be\u0631\u0649\u0631\u0644\u06d5\u0634",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help",
+"Tools": "\u0642\u06c7\u0631\u0627\u0644",
+"View": "\u0643\u06c6\u0631\u06c8\u0634",
+"Table": "\u062c\u06d5\u062f\u06cb\u06d5\u0644",
+"Format": "\u0641\u0648\u0631\u0645\u0627\u062a"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/uk.js b/framework/Web/Javascripts/source/tinymce-405/langs/uk.js
new file mode 100755
index 00000000..d8fccd33
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/uk.js
@@ -0,0 +1,159 @@
+tinymce.addI18n('uk',{
+"Cut": "\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454 \u043f\u0440\u044f\u043c\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0431\u0443\u0444\u0435\u0440\u0443 \u043e\u0431\u043c\u0456\u043d\u0443. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 Ctrl+X\/C\/V \u0437\u0430\u043c\u0456\u0441\u0442\u044c \u0441\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044f \u043a\u043b\u0430\u0432\u0456\u0448.",
+"Paste": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",
+"Close": "\u0417\u0430\u043a\u0440\u0438\u0442\u0438",
+"Align right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
+"New document": "\u041d\u043e\u0432\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
+"Numbered list": "\u041d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
+"Increase indent": "\u0417\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043f",
+"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438",
+"Select all": "\u0412\u0438\u0434\u0456\u043b\u0438\u0442\u0438 \u0432\u0441\u0435",
+"Undo": "\u0412\u0456\u0434\u043c\u0456\u043d\u0438\u0442\u0438",
+"Strikethrough": "\u0417\u0430\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u0438\u0439",
+"Bullet list": "\u041d\u0435\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
+"Superscript": "\u0412\u0435\u0440\u0445\u043d\u0456\u0439 \u0456\u043d\u0434\u0435\u043a\u0441",
+"Clear formatting": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0443\u0432\u0430\u043d\u043d\u044f",
+"Subscript": "\u041d\u0438\u0436\u043d\u0456\u0439 \u0456\u043d\u0434\u0435\u043a\u0441",
+"Redo": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438",
+"Ok": "\u0413\u0430\u0440\u0430\u0437\u0434",
+"Bold": "\u0416\u0438\u0440\u043d\u0438\u0439",
+"Italic": "\u041a\u0443\u0440\u0441\u0438\u0432",
+"Align center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
+"Decrease indent": "\u0417\u043c\u0435\u043d\u0448\u0438\u0442\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043f",
+"Underline": "\u041f\u0456\u0434\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u0438\u0439",
+"Cancel": "\u0412\u0456\u0434\u043c\u0456\u043d\u0438\u0442\u0438",
+"Justify": "\u0412\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f",
+"Copy": "\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438",
+"Align left": "\u041f\u043e \u043b\u0456\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
+"Visual aids": "\u041d\u0430\u043e\u0447\u043d\u0456 \u043f\u0440\u0438\u043b\u0430\u0434\u0434\u044f",
+"Lower Greek": "\u041c\u0430\u043b\u0456 \u0433\u0440\u0435\u0446\u044c\u043a\u0456 \u0431\u0443\u043a\u0432\u0438",
+"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u0438",
+"Default": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u0439",
+"Lower Alpha": "\u041c\u0430\u043b\u0456 \u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0456 \u0431\u0443\u043a\u0432\u0438",
+"Circle": "\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0456",
+"Disc": "\u041a\u0440\u0443\u0433\u0438",
+"Upper Alpha": "\u0412\u0435\u043b\u0438\u043a\u0456 \u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0456 \u0431\u0443\u043a\u0432\u0438",
+"Upper Roman": "\u0420\u0438\u043c\u0441\u044c\u043a\u0456 \u0446\u0438\u0444\u0440\u0438",
+"Lower Roman": "\u041c\u0430\u043b\u0456 \u0440\u0438\u043c\u0441\u044c\u043a\u0456 \u0446\u0438\u0444\u0440\u0438",
+"Name": "\u041d\u0430\u0437\u0432\u0430",
+"Anchor": "\u042f\u043a\u0456\u0440",
+"You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0412\u0430\u0441 \u0454 \u043d\u0435\u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0456 \u0437\u043c\u0456\u043d\u0438. \u0412\u0438 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u0449\u043e \u0445\u043e\u0447\u0435\u0442\u0435 \u043f\u0456\u0442\u0438?",
+"Restore last draft": "\u0412\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u043e\u0441\u0442\u0430\u043d\u043d\u044c\u043e\u0433\u043e \u0432\u0430\u0440\u0456\u0430\u043d\u0442\u0443",
+"Special character": "\u0421\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0456 \u0441\u0438\u043c\u0432\u043e\u043b\u0438",
+"Source code": "\u0412\u0438\u0445\u0456\u0434\u043d\u0438\u0439 \u043a\u043e\u0434",
+"Right to left": "\u0421\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0456\u0432\u043e",
+"Left to right": "\u0417\u043b\u0456\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e",
+"Emoticons": "\u0415\u043c\u043e\u0446\u0456\u0457",
+"Robots": "\u0420\u043e\u0431\u043e\u0442\u0438",
+"Document properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
+"Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
+"Keywords": "\u041a\u043b\u044e\u0447\u043e\u0432\u0456 \u0441\u043b\u043e\u0432\u0430",
+"Encoding": "\u041a\u043e\u0434\u0443\u0432\u0430\u043d\u043d\u044f",
+"Description": "\u041e\u043f\u0438\u0441",
+"Author": "\u0410\u0432\u0442\u043e\u0440",
+"Fullscreen": "\u041f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c",
+"Horizontal line": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430 \u043b\u0456\u043d\u0456\u044f",
+"Horizontal space": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0438\u0439 \u0456\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
+"Insert\/edit image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0437\u043c\u0456\u043d\u0438\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
+"General": "\u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0456",
+"Advanced": "\u0420\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u0456",
+"Source": "\u0414\u0436\u0435\u0440\u0435\u043b\u043e",
+"Border": "\u041c\u0435\u0436\u0430",
+"Constrain proportions": "\u0417\u0431\u0435\u0440\u0456\u0433\u0430\u0442\u0438 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0456\u0457",
+"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0438\u0439 \u0456\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
+"Image description": "\u041e\u043f\u0438\u0441 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
+"Style": "\u0421\u0442\u0438\u043b\u044c",
+"Dimensions": "\u0420\u043e\u0437\u043c\u0456\u0440",
+"Insert image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
+"Insert date\/time": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443\/\u0447\u0430\u0441",
+"Url": "\u0410\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
+"Text to display": "\u0422\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
+"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
+"New window": "\u0423 \u043d\u043e\u0432\u043e\u043c\u0443 \u0432\u0456\u043a\u043d\u0456",
+"None": "\u041d\u0456",
+"Target": "\u0412\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
+"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
+"Insert\/edit video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0432\u0456\u0434\u0435\u043e",
+"Poster": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
+"Alternative source": "\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u0435 \u0434\u0436\u0435\u0440\u0435\u043b\u043e",
+"Paste your embed code below:": "\u0412\u0441\u0442\u0430\u0432\u0442\u0435 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0438\u0436\u0447\u0435:",
+"Insert video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0432\u0456\u0434\u0435\u043e",
+"Embed": "\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438",
+"Nonbreaking space": "\u041d\u0435\u0440\u043e\u0437\u0440\u0438\u0432\u043d\u0438\u0439 \u043f\u0440\u043e\u0431\u0456\u043b",
+"Page break": "\u0420\u043e\u0437\u0440\u0438\u0432 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438",
+"Paste as text": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u044f\u043a \u0442\u0435\u043a\u0441\u0442",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0437\u0430\u0440\u0430\u0437 \u0432 \u0440\u0435\u0436\u0438\u043c\u0456 \u0437\u0432\u0438\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0443. \u0417\u043c\u0456\u0441\u0442 \u0431\u0443\u0434\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u044f\u043a \u043f\u0440\u043e\u0441\u0442\u0438\u0439 \u0442\u0435\u043a\u0441\u0442, \u043f\u043e\u043a\u0438 \u0412\u0438 \u043d\u0435 \u0432\u0438\u043c\u043a\u043d\u0435\u0442\u0435 \u0446\u044e \u043e\u043f\u0446\u0456\u044e.",
+"Preview": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434",
+"Print": "\u0414\u0440\u0443\u043a\u0443\u0432\u0430\u0442\u0438",
+"Save": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438",
+"Could not find the specified string.": "\u0412\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0440\u044f\u0434\u043e\u043a \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e",
+"Replace": "\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438",
+"Next": "\u0412\u043d\u0438\u0437",
+"Whole words": "\u0426\u0456\u043b\u0456 \u0441\u043b\u043e\u0432\u0430",
+"Find and replace": "\u041f\u043e\u0448\u0443\u043a \u0456 \u0437\u0430\u043c\u0456\u043d\u0430",
+"Replace with": "\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438 \u043d\u0430",
+"Find": "\u0417\u043d\u0430\u0439\u0442\u0438",
+"Replace all": "\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438 \u0432\u0441\u0435",
+"Match case": "\u0412\u0440\u0430\u0445\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0440\u0435\u0433\u0456\u0441\u0442\u0440",
+"Prev": "\u0412\u0433\u043e\u0440\u0443",
+"Spellcheck": "\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u0457",
+"Finish": "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0438",
+"Ignore all": "\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438 \u0432\u0441\u0435",
+"Ignore": "\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438",
+"Insert row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439 \u0440\u044f\u0434\u043e\u043a \u0437\u0432\u0435\u0440\u0445\u0443",
+"Rows": "\u0420\u044f\u0434\u043a\u0438",
+"Height": "\u0412\u0438\u0441\u043e\u0442\u0430",
+"Paste row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a \u0437\u043d\u0438\u0437\u0443",
+"Alignment": "\u0412\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f",
+"Column group": "\u0413\u0440\u0443\u043f\u0430 \u0441\u0442\u043e\u0432\u043f\u0446\u0456\u0432",
+"Row": "\u0420\u044f\u0434\u043e\u043a",
+"Insert column before": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c \u043b\u0456\u0432\u043e\u0440\u0443\u0447",
+"Split cell": "\u0420\u043e\u0437\u0431\u0438\u0442\u0438 \u043a\u043e\u043c\u0456\u0440\u043a\u0443",
+"Cell padding": "\u041f\u043e\u043b\u044f \u043a\u043e\u043c\u0456\u0440\u043e\u043a",
+"Cell spacing": "\u0412\u0456\u0434\u0441\u0442\u0430\u043d\u044c \u043c\u0456\u0436 \u043a\u043e\u043c\u0456\u0440\u043a\u0430\u043c\u0438",
+"Row type": "\u0422\u0438\u043f \u0440\u044f\u0434\u043a\u0430",
+"Insert table": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e",
+"Body": "\u0422\u0456\u043b\u043e",
+"Caption": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
+"Footer": "\u041d\u0438\u0436\u043d\u0456\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b",
+"Delete row": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a",
+"Paste row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a \u0437\u0432\u0435\u0440\u0445\u0443",
+"Scope": "\u0421\u0444\u0435\u0440\u0430",
+"Delete table": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e",
+"Header cell": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
+"Column": "\u0421\u0442\u043e\u0432\u043f\u0435\u0446\u044c",
+"Cell": "\u041a\u043e\u043c\u0456\u0440\u043a\u0430",
+"Header": "\u0428\u0430\u043f\u043a\u0430",
+"Cell type": "\u0422\u0438\u043f \u043a\u043e\u043c\u0456\u0440\u043a\u0438",
+"Copy row": "\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0440\u044f\u0434\u043e\u043a",
+"Row properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u0440\u044f\u0434\u043a\u0430",
+"Table properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0442\u0430\u0431\u043b\u0438\u0446\u0456",
+"Row group": "\u0413\u0440\u0443\u043f\u0430 \u0440\u044f\u0434\u043a\u0456\u0432",
+"Right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
+"Insert column after": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c \u043f\u0440\u0430\u0432\u043e\u0440\u0443\u0447",
+"Cols": "\u0421\u0442\u043e\u0432\u043f\u0446\u0456",
+"Insert row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439 \u0440\u044f\u0434\u043e\u043a \u0437\u043d\u0438\u0437\u0443",
+"Width": "\u0428\u0438\u0440\u0438\u043d\u0430",
+"Cell properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u043a\u043e\u043c\u0456\u0440\u043a\u0438",
+"Left": "\u041f\u043e \u043b\u0456\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
+"Cut row": "\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438 \u0440\u044f\u0434\u043e\u043a",
+"Delete column": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c",
+"Center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
+"Merge cells": "\u041e\u0431'\u0454\u0434\u043d\u0430\u0442\u0438 \u043a\u043e\u043c\u0456\u0440\u043a\u0438",
+"Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0448\u0430\u0431\u043b\u043e\u043d",
+"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438",
+"Background color": "\u041a\u043e\u043b\u0456\u0440 \u0444\u043e\u043d\u0443",
+"Text color": "\u041a\u043e\u043b\u0456\u0440 \u0442\u0435\u043a\u0441\u0442\u0443",
+"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u0431\u043b\u043e\u043a\u0438",
+"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u0456 \u0441\u0438\u043c\u0432\u043e\u043b\u0438",
+"Words: {0}": "\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0441\u043b\u0456\u0432: {0}",
+"Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",
+"File": "\u0424\u0430\u0439\u043b",
+"Edit": "\u0417\u043c\u0456\u043d\u0438\u0442\u0438",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c ALT-F9 \u0449\u043e\u0431 \u0432\u0438\u043a\u043b\u0438\u043a\u0430\u0442\u0438 \u043c\u0435\u043d\u044e, ALT-F10 \u043f\u0430\u043d\u0435\u043b\u044c \u0456\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0456\u0432, ALT-0 \u0434\u043b\u044f \u0432\u0438\u043a\u043b\u0438\u043a\u0443 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u0438.",
+"Tools": "\u0406\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438",
+"View": "\u0412\u0438\u0433\u043b\u044f\u0434",
+"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u044f",
+"Format": "\u0424\u043e\u0440\u043c\u0430\u0442"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/uk_UA.js b/framework/Web/Javascripts/source/tinymce-405/langs/uk_UA.js
new file mode 100755
index 00000000..e10a5f5c
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/uk_UA.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('uk_UA',{
+"Cut": "\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438",
+"Header 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454 \u043f\u0440\u044f\u043c\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u0431\u043c\u0456\u043d\u0443. \u0417\u0430\u043c\u0456\u0441\u0442\u044c \u0446\u044c\u043e\u0433\u043e \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 \u043f\u043e\u0454\u0434\u043d\u0430\u043d\u043d\u044f \u043a\u043b\u0430\u0432\u0456\u0448 Ctrl + X\/C\/V.",
+"Div": "Div",
+"Paste": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",
+"Close": "\u0417\u0430\u043a\u0440\u0438\u0442\u0438",
+"Pre": "Pre",
+"Align right": "\u041f\u0440\u0430\u0432\u043e\u0440\u0443\u0447",
+"New document": "\u041d\u043e\u0432\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
+"Blockquote": "\u0426\u0438\u0442\u0430\u0442\u0430",
+"Numbered list": "\u041f\u0440\u043e\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
+"Increase indent": "\u0417\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043f",
+"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438",
+"Headers": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438",
+"Select all": "\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0443\u0441\u0435",
+"Header 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3",
+"Blocks": "\u0411\u043b\u043e\u043a\u0438",
+"Undo": "\u0412\u0456\u0434\u043c\u0456\u043d\u0438\u0442\u0438",
+"Strikethrough": "\u041f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u0438\u0439",
+"Bullet list": "\u041c\u0430\u0440\u043a\u0456\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
+"Header 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1",
+"Superscript": "\u0412\u0435\u0440\u0445\u043d\u0456\u0439 \u0456\u043d\u0434\u0435\u043a\u0441",
+"Clear formatting": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0443\u0432\u0430\u043d\u043d\u044f",
+"Subscript": "\u0406\u043d\u0434\u0435\u043a\u0441",
+"Header 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6",
+"Redo": "\u0412\u0456\u0434\u043d\u043e\u0432\u0438\u0442\u0438",
+"Paragraph": "\u0410\u0431\u0437\u0430\u0446",
+"Ok": "Ok",
+"Bold": "\u0416\u0438\u0440\u043d\u0438\u0439",
+"Code": "\u041a\u043e\u0434",
+"Italic": "\u041a\u0443\u0440\u0441\u0438\u0432",
+"Align center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
+"Header 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5",
+"Decrease indent": "\u0417\u043c\u0435\u043d\u0448\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043f",
+"Header 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0437\u0430\u0440\u0430\u0437 \u0432 \u0440\u0435\u0436\u0438\u043c\u0456 \u0437\u0432\u0438\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0443. \u0417\u043c\u0456\u0441\u0442 \u0431\u0443\u0434\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u044f\u043a \u043f\u0440\u043e\u0441\u0442\u0438\u0439 \u0442\u0435\u043a\u0441\u0442, \u043f\u043e\u043a\u0438 \u0412\u0438 \u043d\u0435 \u0432\u0438\u043c\u043a\u043d\u0435\u0442\u0435 \u0446\u044e \u043e\u043f\u0446\u0456\u044e.",
+"Underline": "\u041f\u0456\u0434\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u0438\u0439",
+"Cancel": "\u0412\u0456\u0434\u043c\u0456\u043d\u0438\u0442\u0438",
+"Justify": "\u0412\u0438\u0440\u0456\u0432\u043d\u044f\u0442\u0438",
+"Inline": "\u0412\u0431\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0439",
+"Copy": "\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438",
+"Align left": "\u041b\u0456\u0432\u043e\u0440\u0443\u0447",
+"Visual aids": "\u0412\u0456\u0437\u0443\u0430\u043b\u044c\u043d\u0456 \u0437\u0430\u0441\u043e\u0431\u0438",
+"Lower Greek": "\u041d\u0438\u0436\u043d\u044f \u0433\u0440\u0435\u0446\u044c\u043a\u0430",
+"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442",
+"Default": "\u0423\u043c\u043e\u0432\u0447\u0430\u043d\u043d\u044f",
+"Lower Alpha": "\u041d\u0438\u0436\u0447\u0430 \u0410\u043b\u044c\u0444\u0430",
+"Circle": "\u041a\u0440\u0443\u0433",
+"Disc": "\u0414\u0438\u0441\u043a",
+"Upper Alpha": "\u0412\u0435\u0440\u0445\u043d\u044f \u0410\u043b\u044c\u0444\u0430",
+"Upper Roman": "\u0412\u0435\u0440\u0445\u043d\u0456\u0439 \u0440\u0438\u043c\u0441\u044c\u043a\u0430",
+"Lower Roman": "\u041d\u0438\u0436\u043d\u044f \u0440\u0438\u043c\u0441\u044c\u043a\u0430",
+"Name": "\u0406\u043c'\u044f",
+"Anchor": "\u041f\u0440\u0438\u0432'\u044f\u0437\u043a\u0430",
+"You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0432\u0430\u0441 \u0454 \u043d\u0435\u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0456 \u0437\u043c\u0456\u043d\u0438, \u0412\u0438 \u0443\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u0449\u043e \u0445\u043e\u0447\u0435\u0442\u0435 \u043f\u0456\u0442\u0438 ?",
+"Restore last draft": "\u0412\u0456\u0434\u043d\u043e\u0432\u0438\u0442\u0438 \u043e\u0441\u0442\u0430\u043d\u043d\u0456\u0439 \u043f\u0440\u043e\u0435\u043a\u0442",
+"Special character": "\u0421\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b",
+"Source code": "\u041f\u043e\u0447\u0430\u0442\u043a\u043e\u0432\u0438\u0439 \u043a\u043e\u0434",
+"Right to left": "\u0421\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0456\u0432\u043e",
+"Left to right": "\u0417\u043b\u0456\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e",
+"Emoticons": "\u0421\u043c\u0430\u0439\u043b\u0438\u043a\u0438",
+"Robots": "\u0420\u043e\u0431\u043e\u0442\u0438",
+"Document properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443",
+"Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
+"Keywords": "\u041a\u043b\u044e\u0447\u043e\u0432\u0456 \u0441\u043b\u043e\u0432\u0430",
+"Encoding": "\u041a\u043e\u0434\u0443\u0432\u0430\u043d\u043d\u044f",
+"Description": "\u041e\u043f\u0438\u0441",
+"Author": "\u0410\u0432\u0442\u043e\u0440",
+"Fullscreen": "\u041f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u0438\u0439",
+"Horizontal line": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c",
+"Horizontal space": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0438\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a",
+"Insert\/edit image": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430\/\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
+"General": "\u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0435",
+"Advanced": "\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u043e",
+"Source": "\u0414\u0436\u0435\u0440\u0435\u043b\u043e",
+"Border": "\u041c\u0435\u0436\u0430",
+"Constrain proportions": "\u0421\u0442\u0440\u0438\u043c\u0430\u0442\u0438 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0456\u0457",
+"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0438\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a",
+"Image description": "\u041e\u043f\u0438\u0441 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
+"Style": "\u0421\u0442\u0438\u043b\u044c",
+"Dimensions": "\u0412\u0438\u043c\u0456\u0440\u0438",
+"Insert image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
+"Insert date\/time": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443\/\u0447\u0430\u0441",
+"Remove link": "\u0412\u0438\u0434\u0430\u043b\u0456\u0442\u044c \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
+"Url": "Url",
+"Text to display": "\u0422\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f",
+"Anchors": "\u042f\u043a\u043e\u0440\u044f",
+"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
+"New window": "\u041d\u043e\u0432\u0435 \u0432\u0456\u043a\u043d\u043e",
+"None": "\u041d\u0456",
+"Target": "\u041c\u0435\u0442\u0430",
+"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u043f\u0440\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
+"Insert\/edit video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u043f\u0440\u0430\u0432\u0438\u0442\u0438 \u0432\u0456\u0434\u0435\u043e",
+"Poster": "\u0410\u0444\u0456\u0448\u0430",
+"Alternative source": "\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u0435 \u0434\u0436\u0435\u0440\u0435\u043b\u043e",
+"Paste your embed code below:": "\u0412\u0441\u0442\u0430\u0432\u0442\u0435 \u0432\u0430\u0448 \u0432\u043f\u0440\u043e\u0432\u0430\u0434\u0436\u0435\u043d\u0438\u0439 \u043a\u043e\u0434 \u043d\u0438\u0436\u0447\u0435:",
+"Insert video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0432\u0456\u0434\u0435\u043e",
+"Embed": "\u0412\u043f\u0440\u043e\u0432\u0430\u0434\u0438\u0442\u0438",
+"Nonbreaking space": "\u041d\u0435\u0440\u043e\u0437\u0440\u0438\u0432\u043d\u0438\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a",
+"Page break": "\u0420\u043e\u0437\u0440\u0438\u0432 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438",
+"Paste as text": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u044f\u043a \u0442\u0435\u043a\u0441\u0442",
+"Preview": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434",
+"Print": "\u0414\u0440\u0443\u043a",
+"Save": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438",
+"Could not find the specified string.": "\u041d\u0435 \u0437\u043c\u0456\u0433 \u0437\u043d\u0430\u0439\u0442\u0438 \u0432\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0440\u044f\u0434\u043e\u043a.",
+"Replace": "\u0417\u0430\u043c\u0456\u043d\u0430",
+"Next": "\u041d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0439",
+"Whole words": "\u0426\u0456\u043b\u0456 \u0441\u043b\u043e\u0432\u0430",
+"Find and replace": "\u0417\u043d\u0430\u0439\u0442\u0438 \u0456 \u0437\u0430\u043c\u0456\u043d\u0438\u0442\u0438",
+"Replace with": "\u0417\u0430\u043c\u0456\u043d\u0430 \u043d\u0430",
+"Find": "\u0417\u043d\u0430\u0439\u0442\u0438",
+"Replace all": "\u0417\u0430\u043c\u0456\u043d\u0456\u0442\u044c \u0443\u0441\u0435",
+"Match case": "\u0417 \u0443\u0440\u0430\u0445\u0443\u0432\u0430\u043d\u043d\u044f\u043c \u0440\u0435\u0433\u0456\u0441\u0442\u0440\u0430",
+"Prev": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439",
+"Spellcheck": "\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u0457",
+"Finish": "\u0424\u0456\u043d\u0456\u0448",
+"Ignore all": "\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438 \u0443\u0441\u0435",
+"Ignore": "\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438",
+"Insert row before": "\u0412\u0441\u0442\u0430\u0432\u0442\u0435 \u0440\u044f\u0434\u043e\u043a \u0440\u0430\u043d\u0456\u0448\u0435",
+"Rows": "\u0420\u044f\u0434\u0438",
+"Height": "\u0412\u0438\u0441\u043e\u0442\u0430",
+"Paste row after": "\u0412\u0441\u0442\u0430\u0432\u0442\u0435 \u0440\u044f\u0434\u043e\u043a \u043f\u0456\u0441\u043b\u044f",
+"Alignment": "\u0412\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f",
+"Column group": "\u0413\u0440\u0443\u043f\u0430 \u0441\u0442\u043e\u0432\u043f\u0446\u0456\u0432",
+"Row": "\u0420\u044f\u0434\u043e\u043a",
+"Insert column before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c \u0440\u0430\u043d\u0456\u0448\u0435",
+"Split cell": "\u0420\u043e\u0437\u0431\u0438\u0439\u0442\u0435 \u043e\u0441\u0435\u0440\u0435\u0434\u043e\u043a",
+"Cell padding": "\u0417\u0430\u043f\u043e\u0432\u043d\u0435\u043d\u043d\u044f \u043e\u0441\u0435\u0440\u0435\u0434\u043a\u0456\u0432",
+"Cell spacing": "\u0406\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0456\u0436 \u043e\u0441\u0435\u0440\u0435\u0434\u043a\u0430\u043c\u0438",
+"Row type": "\u0422\u0438\u043f \u0440\u044f\u0434\u0443",
+"Insert table": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e",
+"Body": "\u0422\u0456\u043b\u043e",
+"Caption": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
+"Footer": "\u041d\u0438\u0436\u043d\u0456\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b",
+"Delete row": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a",
+"Paste row before": "\u0412\u0441\u0442\u0430\u0432\u0442\u0435 \u0440\u044f\u0434\u043e\u043a \u0440\u0430\u043d\u0456\u0448\u0435",
+"Scope": "\u0423 \u043c\u0435\u0436\u0430\u0445",
+"Delete table": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e",
+"Header cell": "\u041e\u0441\u0435\u0440\u0435\u0434\u043e\u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430",
+"Column": "\u0421\u0442\u043e\u0432\u043f\u0435\u0446\u044c",
+"Cell": "\u041e\u0441\u0435\u0440\u0435\u0434\u043e\u043a",
+"Header": "\u0412\u0435\u0440\u0445\u043d\u0456\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b",
+"Cell type": "\u0422\u0438\u043f \u043e\u0441\u0435\u0440\u0435\u0434\u043a\u0443",
+"Copy row": "\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0440\u044f\u0434\u043e\u043a",
+"Row properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0440\u044f\u0434\u043a\u0430",
+"Table properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0442\u0430\u0431\u043b\u0438\u0446\u0456",
+"Row group": "\u0413\u0440\u0443\u043f\u0430 \u0440\u044f\u0434\u0456\u0432",
+"Right": "\u041f\u0440\u0430\u0432\u043e\u0440\u0443\u0447",
+"Insert column after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c \u043f\u0456\u0441\u043b\u044f",
+"Cols": "\u0421\u0442\u043e\u0432\u043f\u0446\u0456",
+"Insert row after": "\u0412\u0441\u0442\u0430\u0432\u0442\u0435 \u0440\u044f\u0434\u043e\u043a \u043f\u0456\u0441\u043b\u044f",
+"Width": "\u0428\u0438\u0440\u0438\u043d\u0430",
+"Cell properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u043e\u0441\u0435\u0440\u0435\u0434\u043a\u0443",
+"Left": "\u041b\u0456\u0432\u043e\u0440\u0443\u0447",
+"Cut row": "\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438 \u0440\u044f\u0434\u043e\u043a",
+"Delete column": "\u0412\u0438\u0434\u0430\u043b\u0456\u0442\u044c \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c",
+"Center": "\u0426\u0435\u043d\u0442\u0440",
+"Merge cells": "\u041e\u0431'\u0454\u0434\u043d\u0430\u0439\u0442\u0435 \u043e\u0441\u0435\u0440\u0435\u0434\u043a\u0438",
+"Insert template": "\u0412\u0441\u0442\u0430\u0432\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d",
+"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438",
+"Background color": "\u041a\u043e\u043b\u0456\u0440 \u0444\u043e\u043d\u0443",
+"Text color": "\u041a\u043e\u043b\u0456\u0440 \u0442\u0435\u043a\u0441\u0442\u0443",
+"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u0431\u043b\u043e\u043a\u0438",
+"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u0456 \u0441\u0438\u043c\u0432\u043e\u043b\u0438",
+"Words: {0}": "\u0421\u043b\u043e\u0432\u0430: {0}",
+"Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",
+"File": "\u0424\u0430\u0439\u043b",
+"Edit": "\u041f\u0440\u0430\u0432\u043a\u0430",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u041e\u0431\u043b\u0430\u0441\u0442\u044c Rich \u0442\u0435\u043a\u0441\u0442\u0443. \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c ALT-F9 - \u043c\u0435\u043d\u044e. \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c ALT-F10 - \u043f\u0430\u043d\u0435\u043b\u044c \u0456\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0456\u0432. \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c ALT-0 - \u0434\u043e\u0432\u0456\u0434\u043a\u0430",
+"Tools": "\u0406\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438",
+"View": "\u0412\u0438\u0434",
+"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u044f",
+"Format": "\u0424\u043e\u0440\u043c\u0430\u0442"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/vi.js b/framework/Web/Javascripts/source/tinymce-405/langs/vi.js
new file mode 100755
index 00000000..cc860c0e
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/vi.js
@@ -0,0 +1,96 @@
+tinymce.addI18n('vi',{
+"Cut": "C\u1eaft",
+"Header 2": "Ti\u00eau \u0111\u1ec1 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 truy c\u1eadp truy c\u1eadp b\u1ed9 nh\u1edb \u1ea3o, vui l\u00f2ng s\u1eed d\u1ee5ng c\u00e1c t\u1ed5 h\u1ee3p ph\u00edm Ctrl + X, C, V.",
+"Div": "Khung",
+"Paste": "D\u00e1n",
+"Close": "\u0110\u00f3ng L\u1ea1i",
+"Pre": "\u0110\u1ecbnh d\u1ea1ng",
+"Align right": "Canh ph\u1ea3i",
+"New document": "T\u1ea1o t\u00e0i li\u1ec7u m\u1edbi",
+"Blockquote": "\u0110o\u1ea1n Tr\u00edch D\u1eabn",
+"Numbered list": "Danh s\u00e1ch d\u1ea1ng s\u1ed1",
+"Increase indent": "T\u0103ng kho\u1ea3ng c\u00e1ch d\u00f2ng",
+"Formats": "\u0110\u1ecbnh d\u1ea1ng",
+"Headers": "\u0110\u1ea7u trang",
+"Select all": "Ch\u1ecdn t\u1ea5t c\u1ea3",
+"Header 3": "Ti\u00eau \u0111\u1ec1 3",
+"Blocks": "Bao",
+"Undo": "H\u1ee7y thao t\u00e1c",
+"Strikethrough": "G\u1ea1ch ngang",
+"Bullet list": "Danh s\u00e1ch d\u1ea1ng bi\u1ec3u t\u01b0\u1ee3ng",
+"Header 1": "Ti\u00eau \u0111\u1ec1 1",
+"Superscript": "K\u00fd t\u1ef1 m\u0169",
+"Clear formatting": "L\u01b0\u1ee3c b\u1ecf ph\u1ea7n hi\u1ec7u \u1ee9ng",
+"Subscript": "K\u00fd t\u1ef1 th\u1ea5p",
+"Header 6": "Ti\u00eau \u0111\u1ec1 6",
+"Redo": "L\u00e0m l\u1ea1i",
+"Paragraph": "\u0110o\u1ea1n v\u0103n",
+"Ok": "\u0110\u1ed3ng \u00dd",
+"Bold": "In \u0111\u1eadm",
+"Code": "M\u00e3",
+"Italic": "In nghi\u00eang",
+"Align center": "Canh gi\u1eefa",
+"Header 5": "Ti\u00eau \u0111\u1ec1 5",
+"Decrease indent": "Th\u1ee5t l\u00f9i d\u00f2ng",
+"Header 4": "Ti\u00eau \u0111\u1ec1 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "D\u00e1n \u0111ang trong tr\u1ea1ng th\u00e1i v\u0103n b\u1ea3n thu\u1ea7n. N\u1ed9i dung s\u1ebd \u0111\u01b0\u1ee3c d\u00e1n d\u01b0\u1edbi d\u1ea1ng v\u0103n b\u1ea3n thu\u1ea7n, kh\u00f4ng \u0111\u1ecbnh d\u1ea1ng.",
+"Underline": "G\u1ea1ch d\u01b0\u1edbi",
+"Cancel": "Hu\u1ef7 B\u1ecf",
+"Justify": "Canh \u0111\u1ec1u hai b\u00ean",
+"Inline": "C\u00f9ng d\u00f2ng",
+"Copy": "Sao ch\u00e9p",
+"Align left": "Canh tr\u00e1i",
+"Visual aids": "M\u1edf khung so\u1ea1n th\u1ea3o",
+"Lower Greek": "S\u1ed1 hy l\u1ea1p th\u01b0\u1eddng",
+"Square": "\u00d4 vu\u00f4ng",
+"Default": "Ng\u1ea7m \u0111\u1ecbnh",
+"Lower Alpha": "K\u00fd t\u1ef1 th\u01b0\u1eddng",
+"Circle": "H\u00ecnh tr\u00f2n",
+"Disc": "H\u00ecnh tr\u00f2n m\u1ecfng",
+"Upper Alpha": "K\u00fd t\u1ef1 hoa",
+"Upper Roman": "S\u1ed1 la m\u00e3 hoa",
+"Lower Roman": "S\u1ed1 la m\u00e3 th\u01b0\u1eddng",
+"Insert row before": "Th\u00eam d\u00f2ng ph\u00eda tr\u00ean",
+"Rows": "D\u00f2ng",
+"Height": "Cao",
+"Paste row after": "D\u00e1n v\u00e0o ph\u00eda sau, d\u01b0\u1edbi",
+"Alignment": "Canh ch\u1ec9nh",
+"Column group": "Nh\u00f3m c\u1ed9t",
+"Row": "D\u00f2ng",
+"Insert column before": "Th\u00eam c\u1ed9t b\u00ean tr\u00e1i",
+"Split cell": "Chia \u00f4",
+"Cell padding": "Kho\u1ea3ng c\u00e1ch trong \u00f4",
+"Cell spacing": "Kho\u1ea3ng c\u00e1ch \u00f4",
+"Row type": "Lo\u1ea1i d\u00f2ng",
+"Insert table": "Th\u00eam b\u1ea3ng",
+"Body": "N\u1ed9i dung",
+"Caption": "Ti\u00eau \u0111\u1ec1",
+"Footer": "Ch\u00e2n",
+"Delete row": "Xo\u00e1 d\u00f2ng",
+"Paste row before": "D\u00e1n v\u00e0o ph\u00eda tr\u01b0\u1edbc, tr\u00ean",
+"Scope": "Quy\u1ec1n",
+"Delete table": "Xo\u00e1 b\u1ea3ng",
+"Header cell": "Ti\u00eau \u0111\u1ec1 \u00f4",
+"Column": "C\u1ed9t",
+"None": "Kh\u00f4ng",
+"Cell": "\u00d4",
+"Header": "Ti\u00eau \u0111\u1ec1",
+"Border": "\u0110\u01b0\u1eddng vi\u1ec1n",
+"Cell type": "Lo\u1ea1i \u00f4",
+"Copy row": "Ch\u00e9p d\u00f2ng",
+"Row properties": "Thu\u1ed9c t\u00ednh d\u00f2ng",
+"Table properties": "Thu\u1ed9c t\u00ednh b\u1ea3ng",
+"Row group": "Nh\u00f3m d\u00f2ng",
+"Right": "Ph\u1ea3i",
+"Insert column after": "Th\u00eam c\u1ed9t b\u00ean ph\u1ea3i",
+"Cols": "C\u1ed9t",
+"Insert row after": "Th\u00eam d\u00f2ng ph\u00eda d\u01b0\u1edbi",
+"Width": "R\u1ed9ng",
+"Cell properties": "Thu\u1ed9c t\u00ednh \u00f4",
+"Left": "Tr\u00e1i",
+"Cut row": "C\u1eaft d\u00f2ng",
+"Delete column": "Xo\u00e1 c\u1ed9t",
+"Center": "Gi\u1eefa",
+"Merge cells": "N\u1ed1i \u00f4"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/vi_VN.js b/framework/Web/Javascripts/source/tinymce-405/langs/vi_VN.js
new file mode 100755
index 00000000..d1f1bae2
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/vi_VN.js
@@ -0,0 +1,173 @@
+tinymce.addI18n('vi_VN',{
+"Cut": "C\u1eaft",
+"Header 2": "Ti\u00eau \u0111\u1ec1 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 truy c\u1eadp clipboard, vui l\u00f2ng s\u1eed d\u1ee5ng c\u00e1c t\u1ed5 h\u1ee3p Ctrl + X, C, V.",
+"Div": "Khung",
+"Paste": "D\u00e1n",
+"Close": "\u0110\u00f3ng",
+"Pre": "\u0110\u1ecbnh d\u1ea1ng",
+"Align right": "Canh ph\u1ea3i",
+"New document": "T\u1ea1o t\u00e0i li\u1ec7u m\u1edbi",
+"Blockquote": "Tr\u00edch",
+"Numbered list": "Danh s\u00e1ch s\u1ed1",
+"Increase indent": "L\u00f9i v\u00e0o",
+"Formats": "\u0110\u1ecbnh d\u1ea1ng",
+"Headers": "\u0110\u1ea7u trang",
+"Select all": "Ch\u1ecdn t\u1ea5t c\u1ea3",
+"Header 3": "Ti\u00eau \u0111\u1ec1 3",
+"Blocks": "Bao",
+"Undo": "Hu\u1ef7 thao t\u00e1c",
+"Strikethrough": "G\u1ea1ch ngang",
+"Bullet list": "D\u1ea5u \u0111\u1ea7u d\u00f2ng",
+"Header 1": "Ti\u00eau \u0111\u1ec1 1",
+"Superscript": "Tr\u00ean d\u00f2ng",
+"Clear formatting": "Xo\u00e1 \u0111\u1ecbnh d\u1ea1ng",
+"Subscript": "D\u01b0\u1edbi d\u00f2ng",
+"Header 6": "Ti\u00eau \u0111\u1ec1 6",
+"Redo": "Ho\u00e0n t\u00e1t",
+"Paragraph": "\u0110o\u1ea1n v\u0103n",
+"Ok": "OK",
+"Bold": "T\u00f4 \u0111\u1eadm",
+"Code": "M\u00e3",
+"Italic": "In nghi\u00eang",
+"Align center": "Canh gi\u1eefa",
+"Header 5": "Ti\u00eau \u0111\u1ec1 5",
+"Decrease indent": "L\u00f9i ra",
+"Header 4": "Ti\u00eau \u0111\u1ec1 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "D\u00e1n \u0111ang trong tr\u1ea1ng th\u00e1i v\u0103n b\u1ea3n thu\u1ea7n. N\u1ed9i dung s\u1ebd \u0111\u01b0\u1ee3c d\u00e1n d\u01b0\u1edbi d\u1ea1ng v\u0103n b\u1ea3n thu\u1ea7n (Kh\u00f4ng \u0111\u1ecbnh d\u1ea1ng)",
+"Underline": "G\u1ea1ch d\u01b0\u1edbi",
+"Cancel": "Hu\u1ef7",
+"Justify": "Canh \u0111\u1ec1u hai b\u00ean",
+"Inline": "C\u00f9ng d\u00f2ng",
+"Copy": "Ch\u00e9p",
+"Align left": "Canh tr\u00e1i",
+"Visual aids": "Hi\u1ec7n khung so\u1ea1n th\u1ea3o",
+"Lower Greek": "S\u1ed1 hy l\u1ea1p th\u01b0\u1eddng",
+"Square": "\u00d4 vu\u00f4ng",
+"Default": "Ng\u1ea7m \u0111\u1ecbnh",
+"Lower Alpha": "K\u00fd t\u1ef1 th\u01b0\u1eddng",
+"Circle": "H\u00ecnh tr\u00f2n",
+"Disc": "H\u00ecnh tr\u00f2n m\u1ecfng",
+"Upper Alpha": "K\u00fd t\u1ef1 hoa",
+"Upper Roman": "S\u1ed1 la m\u00e3 hoa",
+"Lower Roman": "S\u1ed1 la m\u00e3 th\u01b0\u1eddng",
+"Name": "T\u00ean",
+"Anchor": "Neo",
+"You have unsaved changes are you sure you want to navigate away?": "B\u1ea1n ch\u01b0a l\u01b0u c\u00e1c thay \u0111\u1ed5i, b\u1ea1n c\u00f3 th\u1eadt s\u1ef1 mu\u1ed1n \u0111\u00f3ng ?",
+"Restore last draft": "Ph\u1ee5c h\u1ed3i b\u1ea3n l\u01b0u g\u1ea7n nh\u1ea5t",
+"Special character": "K\u00fd t\u1ef1 \u0111\u1eb7c bi\u1ec7t",
+"Source code": "M\u00e3 ngu\u1ed3n",
+"Right to left": "Ph\u1ea3i sang tr\u00e1i",
+"Left to right": "Tr\u00e1i sang ph\u1ea3i",
+"Emoticons": "Bi\u1ec3u t\u01b0\u1ee3ng c\u1ea3m x\u00fac",
+"Robots": "Robots",
+"Document properties": "Thu\u1ed9c t\u00ednh t\u00e0i li\u1ec7u",
+"Title": "Ti\u00eau \u0111\u1ec1",
+"Keywords": "T\u1eeb kho\u00e1",
+"Encoding": "M\u00e3 ho\u00e1",
+"Description": "Mi\u00eau t\u1ea3",
+"Author": "Neo",
+"Fullscreen": "\u0110\u1ea7y m\u00e0n h\u00ecnh",
+"Horizontal line": "G\u1ea1ch ngang",
+"Horizontal space": "Kho\u1ea3ng c\u00e1ch ngang",
+"Insert\/edit image": "Th\u00eam \/ s\u1eeda h\u00ecnh \u1ea3nh",
+"General": "T\u1ed5ng h\u1ee3p",
+"Advanced": "N\u00e2ng cao",
+"Source": "Ngu\u1ed3n",
+"Border": "\u0110\u01b0\u1eddng vi\u1ec1n",
+"Constrain proportions": "H\u1ea1n ch\u1ebf t\u1ef7 l\u1ec7",
+"Vertical space": "Kho\u1ea3ng c\u00e1ch d\u1ecdc",
+"Image description": "Mi\u00eau t\u1ea3 h\u00ecnh \u1ea3nh",
+"Style": "Ki\u1ec3u",
+"Dimensions": "K\u00edch th\u01b0\u1edbc",
+"Insert image": "Ch\u00e8n \u1ea3nh",
+"Insert date\/time": "Th\u00eam ng\u00e0y \/ gi\u1edd",
+"Remove link": "Xo\u00e1 li\u00ean k\u1ebft",
+"Url": "Li\u00ean k\u1ebft",
+"Text to display": "Ch\u1eef hi\u1ec3n th\u1ecb",
+"Insert link": "Th\u00eam li\u00ean k\u1ebft",
+"New window": "C\u1eeda s\u1ed5 m\u1edbi",
+"None": "Kh\u00f4ng",
+"Target": "M\u1ee5c ti\u00eau",
+"Insert\/edit link": "Th\u00eam \/ s\u1eeda li\u00ean k\u1ebft",
+"Insert\/edit video": "Th\u00eam \/ s\u1eeda video",
+"Poster": "Ng\u01b0\u1eddi \u0111\u0103ng",
+"Alternative source": "Ngu\u1ed3n thay th\u1ebf",
+"Paste your embed code below:": "D\u00e1n m\u00e3 embed v\u00e0o:",
+"Insert video": "Th\u00eam video",
+"Embed": "Embed",
+"Nonbreaking space": "Kh\u00f4ng ng\u1eaft kho\u1ea3ng",
+"Page break": "Ng\u1eaft trang",
+"Preview": "Xem tr\u01b0\u1edbc",
+"Print": "In",
+"Save": "L\u01b0u",
+"Could not find the specified string.": "Kh\u00f4ng t\u00ecm th\u1ea5y chu\u1ed7i y\u00eau c\u1ea7u",
+"Replace": "Thay th\u1ebf",
+"Next": "Sau",
+"Whole words": "T\u1ea5t c\u1ea3 \u0111o\u1ea1n",
+"Find and replace": "T\u00ecm v\u00e0 thay th\u1ebf",
+"Replace with": "Thay th\u1ebf b\u1eb1ng",
+"Find": "T\u00ecm",
+"Replace all": "Thay th\u1ebf t\u1ea5t c\u1ea3",
+"Match case": "Ph\u00e2n bi\u1ec7t hoa th\u01b0\u1eddng",
+"Prev": "Tr\u01b0\u1edbc",
+"Spellcheck": "Ki\u1ec3m tra ch\u00ednh t\u1ea3",
+"Finish": "K\u1ebft th\u00fac",
+"Ignore all": "L\u1edd t\u1ea5t c\u1ea3",
+"Ignore": "L\u1edd qua",
+"Insert row before": "Th\u00eam d\u00f2ng ph\u00eda tr\u00ean",
+"Rows": "D\u00f2ng",
+"Height": "Cao",
+"Paste row after": "D\u00e1n v\u00e0o ph\u00eda sau, d\u01b0\u1edbi",
+"Alignment": "Canh ch\u1ec9nh",
+"Column group": "Nh\u00f3m c\u1ed9t",
+"Row": "D\u00f2ng",
+"Insert column before": "Th\u00eam c\u1ed9t b\u00ean tr\u00e1i",
+"Split cell": "Chia \u00f4",
+"Cell padding": "Kho\u1ea3ng c\u00e1ch trong \u00f4",
+"Cell spacing": "Kho\u1ea3ng c\u00e1ch \u00f4",
+"Row type": "Lo\u1ea1i d\u00f2ng",
+"Insert table": "Th\u00eam b\u1ea3ng",
+"Body": "N\u1ed9i dung",
+"Caption": "Ti\u00eau \u0111\u1ec1",
+"Footer": "Ch\u00e2n",
+"Delete row": "Xo\u00e1 d\u00f2ng",
+"Paste row before": "D\u00e1n v\u00e0o ph\u00eda tr\u01b0\u1edbc, tr\u00ean",
+"Scope": "Quy\u1ec1n",
+"Delete table": "Xo\u00e1 b\u1ea3ng",
+"Header cell": "Ti\u00eau \u0111\u1ec1 \u00f4",
+"Column": "C\u1ed9t",
+"Cell": "\u00d4",
+"Header": "Ti\u00eau \u0111\u1ec1",
+"Cell type": "Lo\u1ea1i \u00f4",
+"Copy row": "Ch\u00e9p d\u00f2ng",
+"Row properties": "Thu\u1ed9c t\u00ednh d\u00f2ng",
+"Table properties": "Thu\u1ed9c t\u00ednh b\u1ea3ng",
+"Row group": "Nh\u00f3m d\u00f2ng",
+"Right": "Ph\u1ea3i",
+"Insert column after": "Th\u00eam c\u1ed9t b\u00ean ph\u1ea3i",
+"Cols": "C\u1ed9t",
+"Insert row after": "Th\u00eam d\u00f2ng ph\u00eda d\u01b0\u1edbi",
+"Width": "R\u1ed9ng",
+"Cell properties": "Thu\u1ed9c t\u00ednh \u00f4",
+"Left": "Tr\u00e1i",
+"Cut row": "C\u1eaft d\u00f2ng",
+"Delete column": "Xo\u00e1 c\u1ed9t",
+"Center": "Gi\u1eefa",
+"Merge cells": "N\u1ed1i \u00f4",
+"Insert template": "Th\u00eam giao di\u1ec7n",
+"Templates": "Giao di\u1ec7n",
+"Background color": "M\u00e0u n\u1ec1n",
+"Text color": "M\u00e0u ch\u1eef",
+"Show blocks": "Hi\u1ec3n th\u1ecb kh\u1ed1i",
+"Show invisible characters": "Hi\u1ec3n th\u1ecb c\u00e1c k\u00fd t\u1ef1 \u1ea9n",
+"Words: {0}": "T\u1eeb: {0}",
+"Insert": "Th\u00eam",
+"File": "T\u1eadp tin",
+"Edit": "S\u1eeda",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Khu v\u1ef1c so\u1ea1n th\u1ea3o. Nh\u1ea5n ALT+F9 \u0111\u1ec3 hi\u1ec7n menu, ALT+F10 \u0111\u1ec3 hi\u1ec7n thanh c\u00f4ng c\u1ee5. C\u1ea7n tr\u1ee3 gi\u00fap nh\u1ea5n ALT+0",
+"Tools": "C\u00f4ng c\u1ee5",
+"View": "Xem",
+"Table": "B\u1ea3ng",
+"Format": "\u0110\u1ecbnh d\u1ea1ng"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/zh_CN.js b/framework/Web/Javascripts/source/tinymce-405/langs/zh_CN.js
new file mode 100755
index 00000000..a537641d
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/zh_CN.js
@@ -0,0 +1,173 @@
+tinymce.addI18n('zh_CN',{
+"Cut": "\u526a\u5207",
+"Header 2": "\u6807\u98982",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002",
+"Div": "Div\u533a\u5757",
+"Paste": "\u7c98\u8d34",
+"Close": "\u5173\u95ed",
+"Pre": "\u9884\u683c\u5f0f\u6587\u672c",
+"Align right": "\u53f3\u5bf9\u9f50",
+"New document": "\u65b0\u6587\u6863",
+"Blockquote": "\u5f15\u7528",
+"Numbered list": "\u7f16\u53f7\u5217\u8868",
+"Increase indent": "\u589e\u52a0\u7f29\u8fdb",
+"Formats": "\u683c\u5f0f",
+"Headers": "\u6807\u9898",
+"Select all": "\u5168\u9009",
+"Header 3": "\u6807\u98983",
+"Blocks": "\u5757",
+"Undo": "\u64a4\u6d88",
+"Strikethrough": "\u5220\u9664\u7ebf",
+"Bullet list": "\u9879\u76ee\u7b26\u53f7",
+"Header 1": "\u6807\u98981",
+"Superscript": "\u4e0a\u6807",
+"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
+"Subscript": "\u4e0b\u6807",
+"Header 6": "\u6807\u98986",
+"Redo": "\u91cd\u590d",
+"Paragraph": "\u6bb5\u843d",
+"Ok": "\u786e\u5b9a",
+"Bold": "\u7c97\u4f53",
+"Code": "\u4ee3\u7801",
+"Italic": "\u659c\u4f53",
+"Align center": "\u5c45\u4e2d",
+"Header 5": "\u6807\u98985",
+"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb",
+"Header 4": "\u6807\u98984",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002",
+"Underline": "\u4e0b\u5212\u7ebf",
+"Cancel": "\u53d6\u6d88",
+"Justify": "\u4e24\u7aef\u5bf9\u9f50",
+"Inline": "\u5185\u5d4c",
+"Copy": "\u590d\u5236",
+"Align left": "\u5de6\u5bf9\u9f50",
+"Visual aids": "\u63d0\u793a",
+"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd",
+"Square": "\u65b9\u5757",
+"Default": "\u9ed8\u8ba4",
+"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd",
+"Circle": "\u7a7a\u5fc3\u5706",
+"Disc": "\u5b9e\u5fc3\u5706",
+"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd",
+"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd",
+"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd",
+"Name": "\u540d\u79f0",
+"Anchor": "\u951a\u70b9",
+"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f",
+"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f",
+"Special character": "\u7279\u6b8a\u7b26\u53f7",
+"Source code": "\u6e90\u4ee3\u7801",
+"Right to left": "\u4ece\u53f3\u5230\u5de6",
+"Left to right": "\u4ece\u5de6\u5230\u53f3",
+"Emoticons": "\u8868\u60c5",
+"Robots": "\u673a\u5668\u4eba",
+"Document properties": "\u6587\u6863\u5c5e\u6027",
+"Title": "\u6807\u9898",
+"Keywords": "\u5173\u952e\u8bcd",
+"Encoding": "\u7f16\u7801",
+"Description": "\u63cf\u8ff0",
+"Author": "\u4f5c\u8005",
+"Fullscreen": "\u5168\u5c4f",
+"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf",
+"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd",
+"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247",
+"General": "\u666e\u901a",
+"Advanced": "\u9ad8\u7ea7",
+"Source": "\u5730\u5740",
+"Border": "\u8fb9\u6846",
+"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4",
+"Vertical space": "\u5782\u76f4\u8fb9\u8ddd",
+"Image description": "\u56fe\u7247\u63cf\u8ff0",
+"Style": "\u6837\u5f0f",
+"Dimensions": "\u5927\u5c0f",
+"Insert image": "\u63d2\u5165\u56fe\u7247",
+"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4",
+"Remove link": "\u5220\u9664\u94fe\u63a5",
+"Url": "\u5730\u5740",
+"Text to display": "\u663e\u793a\u6587\u5b57",
+"Insert link": "\u63d2\u5165\u94fe\u63a5",
+"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00",
+"None": "\u65e0",
+"Target": "\u6253\u5f00\u65b9\u5f0f",
+"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
+"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891",
+"Poster": "\u5c01\u9762",
+"Alternative source": "\u955c\u50cf",
+"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:",
+"Insert video": "\u63d2\u5165\u89c6\u9891",
+"Embed": "\u5185\u5d4c",
+"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c",
+"Page break": "\u5206\u9875\u7b26",
+"Preview": "\u9884\u89c8",
+"Print": "\u6253\u5370",
+"Save": "\u4fdd\u5b58",
+"Could not find the specified string.": "\u627e\u4e0d\u5230\u8be5\u5b57\u7b26\u4e32",
+"Replace": "\u66ff\u6362",
+"Next": "\u4e0b\u4e00\u4e2a",
+"Whole words": "\u5b8c\u5168\u5339\u914d",
+"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362",
+"Replace with": "\u66ff\u6362\u4e3a",
+"Find": "\u67e5\u627e",
+"Replace all": "\u5168\u90e8\u66ff\u6362",
+"Match case": "\u5927\u5c0f\u5199\u533a\u5206",
+"Prev": "\u4e0a\u4e00\u4e2a",
+"Spellcheck": "\u62fc\u5199\u68c0\u67e5",
+"Finish": "\u5b8c\u6210",
+"Ignore all": "\u5168\u90e8\u5ffd\u7565",
+"Ignore": "\u5ffd\u7565",
+"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165",
+"Rows": "\u884c",
+"Height": "\u9ad8",
+"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9",
+"Alignment": "\u5bf9\u9f50\u65b9\u5f0f",
+"Column group": "\u5217\u7ec4",
+"Row": "\u884c",
+"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
+"Split cell": "\u62c6\u5206\u5355\u5143\u683c",
+"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd",
+"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd",
+"Row type": "\u884c\u7c7b\u578b",
+"Insert table": "\u63d2\u5165\u8868\u683c",
+"Body": "\u8868\u4f53",
+"Caption": "\u6807\u9898",
+"Footer": "\u8868\u5c3e",
+"Delete row": "\u5220\u9664\u884c",
+"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9",
+"Scope": "\u8303\u56f4",
+"Delete table": "\u5220\u9664\u8868\u683c",
+"Header cell": "\u8868\u5934\u5355\u5143\u683c",
+"Column": "\u5217",
+"Cell": "\u5355\u5143\u683c",
+"Header": "\u8868\u5934",
+"Cell type": "\u5355\u5143\u683c\u7c7b\u578b",
+"Copy row": "\u590d\u5236\u884c",
+"Row properties": "\u884c\u5c5e\u6027",
+"Table properties": "\u8868\u683c\u5c5e\u6027",
+"Row group": "\u884c\u7ec4",
+"Right": "\u53f3\u5bf9\u9f50",
+"Insert column after": "\u63d2\u5165\u5217\u4e8e\u4e4b\u540e",
+"Cols": "\u5217",
+"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165",
+"Width": "\u5bbd",
+"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027",
+"Left": "\u5de6\u5bf9\u9f50",
+"Cut row": "\u526a\u5207\u884c",
+"Delete column": "\u5220\u9664\u5217",
+"Center": "\u5c45\u4e2d",
+"Merge cells": "\u5408\u5e76\u5355\u5143\u683c",
+"Insert template": "\u63d2\u5165\u6a21\u677f",
+"Templates": "\u6a21\u677f",
+"Background color": "\u80cc\u666f\u8272",
+"Text color": "\u6587\u5b57\u989c\u8272",
+"Show blocks": "\u663e\u793a\u865a\u7ebf\u6846",
+"Show invisible characters": "\u663e\u793a\u53ef\u89c1\u5b57\u7b26",
+"Words: {0}": "\u5b57\u6570\uff1a{0}",
+"Insert": "\u63d2\u5165",
+"File": "\u6587\u4ef6",
+"Edit": "\u7f16\u8f91",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9",
+"Tools": "\u5de5\u5177",
+"View": "\u89c6\u56fe",
+"Table": "\u8868\u683c",
+"Format": "\u683c\u5f0f"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/langs/zh_TW.js b/framework/Web/Javascripts/source/tinymce-405/langs/zh_TW.js
new file mode 100755
index 00000000..64826fe1
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/langs/zh_TW.js
@@ -0,0 +1,175 @@
+tinymce.addI18n('zh_TW',{
+"Cut": "\u526a\u4e0b",
+"Header 2": "\u6a19\u984c 2",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u60a8\u7684\u700f\u89bd\u5668\u4e0d\u652f\u63f4\u5b58\u53d6\u526a\u8cbc\u7c3f\uff0c\u53ef\u4ee5\u4f7f\u7528\u5feb\u901f\u9375 Ctrl + X\/C\/V \u4ee3\u66ff\u526a\u4e0b\u3001\u8907\u88fd\u8207\u8cbc\u4e0a\u3002",
+"Div": "Div",
+"Paste": "\u8cbc\u4e0a",
+"Close": "\u95dc\u9589",
+"Pre": "Pre",
+"Align right": "\u7f6e\u53f3\u5c0d\u9f4a",
+"New document": "\u65b0\u6587\u4ef6",
+"Blockquote": "\u5f15\u7528",
+"Numbered list": "\u6578\u5b57\u6e05\u55ae",
+"Increase indent": "\u589e\u52a0\u7e2e\u6392",
+"Formats": "\u683c\u5f0f",
+"Headers": "\u6a19\u984c",
+"Select all": "\u5168\u9078",
+"Header 3": "\u6a19\u984c 3",
+"Blocks": "\u5340\u584a",
+"Undo": "\u5fa9\u539f",
+"Strikethrough": "\u522a\u9664\u7dda",
+"Bullet list": "\u9805\u76ee\u6e05\u55ae",
+"Header 1": "\u6a19\u984c 1",
+"Superscript": "\u4e0a\u6a19",
+"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
+"Subscript": "\u4e0b\u6a19",
+"Header 6": "\u6a19\u984c 6",
+"Redo": "\u53d6\u6d88\u5fa9\u539f",
+"Paragraph": "\u6bb5\u843d",
+"Ok": "\u78ba\u5b9a",
+"Bold": "\u7c97\u9ad4",
+"Code": "\u7a0b\u5f0f\u78bc",
+"Italic": "\u659c\u9ad4",
+"Align center": "\u7f6e\u4e2d\u5c0d\u9f4a",
+"Header 5": "\u6a19\u984c 5",
+"Decrease indent": "\u6e1b\u5c11\u7e2e\u6392",
+"Header 4": "\u6a19\u984c 4",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u76ee\u524d\u5c07\u4ee5\u7d14\u6587\u5b57\u7684\u6a21\u5f0f\u8cbc\u4e0a\uff0c\u60a8\u53ef\u4ee5\u518d\u9ede\u9078\u4e00\u6b21\u53d6\u6d88\u3002",
+"Underline": "\u5e95\u7dda",
+"Cancel": "\u53d6\u6d88",
+"Justify": "\u5de6\u53f3\u5c0d\u9f4a",
+"Inline": "Inline",
+"Copy": "\u8907\u88fd",
+"Align left": "\u7f6e\u5de6\u5c0d\u9f4a",
+"Visual aids": "\u5c0f\u5e6b\u624b",
+"Lower Greek": "\u5e0c\u81d8\u5b57\u6bcd",
+"Square": "\u6b63\u65b9\u5f62",
+"Default": "\u9810\u8a2d",
+"Lower Alpha": "\u5c0f\u5beb\u82f1\u6587\u5b57\u6bcd",
+"Circle": "\u7a7a\u5fc3\u5713",
+"Disc": "\u5be6\u5fc3\u5713",
+"Upper Alpha": "\u5927\u5beb\u82f1\u6587\u5b57\u6bcd",
+"Upper Roman": "\u5927\u5beb\u7f85\u99ac\u6578\u5b57",
+"Lower Roman": "\u5c0f\u5beb\u7f85\u99ac\u6578\u5b57",
+"Name": "\u540d\u7a31",
+"Anchor": "\u52a0\u5165\u9328\u9ede",
+"You have unsaved changes are you sure you want to navigate away?": "\u7de8\u8f2f\u5c1a\u672a\u88ab\u5132\u5b58\uff0c\u4f60\u78ba\u5b9a\u8981\u96e2\u958b\uff1f",
+"Restore last draft": "\u8f09\u5165\u4e0a\u4e00\u6b21\u7de8\u8f2f\u7684\u8349\u7a3f",
+"Special character": "\u7279\u6b8a\u5b57\u5143",
+"Source code": "\u539f\u59cb\u78bc",
+"Right to left": "\u5f9e\u53f3\u5230\u5de6",
+"Left to right": "\u5f9e\u5de6\u5230\u53f3",
+"Emoticons": "\u8868\u60c5",
+"Robots": "\u6a5f\u5668\u4eba",
+"Document properties": "\u6587\u4ef6\u7684\u5c6c\u6027",
+"Title": "\u6a19\u984c",
+"Keywords": "\u95dc\u9375\u5b57",
+"Encoding": "\u7de8\u78bc",
+"Description": "\u63cf\u8ff0",
+"Author": "\u4f5c\u8005",
+"Fullscreen": "\u5168\u87a2\u5e55",
+"Horizontal line": "\u6c34\u5e73\u7dda",
+"Horizontal space": "\u5bec\u5ea6",
+"Insert\/edit image": "\u63d2\u5165\/\u7de8\u8f2f \u5716\u7247",
+"General": "\u4e00\u822c\u7684",
+"Advanced": "\u9032\u968e",
+"Source": "\u5716\u7247\u7db2\u5740",
+"Border": "\u908a\u6846",
+"Constrain proportions": "\u88ab\u9650\u5236\u7684\u90e8\u5206",
+"Vertical space": "\u9ad8\u5ea6",
+"Image description": "\u5716\u7247\u63cf\u8ff0",
+"Style": "\u985e\u578b",
+"Dimensions": "\u5c3a\u5bf8",
+"Insert image": "\u63d2\u5165\u5716\u7247",
+"Insert date\/time": "\u63d2\u5165 \u65e5\u671f\/\u6642\u9593",
+"Remove link": "\u79fb\u9664\u9023\u7d50",
+"Url": "\u7db2\u5740",
+"Text to display": "\u986f\u793a\u6587\u5b57",
+"Anchors": "\u52a0\u5165\u9328\u9ede",
+"Insert link": "\u63d2\u5165\u9023\u7d50",
+"New window": "\u65b0\u8996\u7a97",
+"None": "\u7121",
+"Target": "\u76ee\u6a19",
+"Insert\/edit link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50",
+"Insert\/edit video": "\u63d2\u4ef6\u5f0f\/\u53ef\u7de8\u8f2f \u5f71\u97f3",
+"Poster": "\u6a19\u8a9e",
+"Alternative source": "\u984d\u5916\u8cc7\u6e90",
+"Paste your embed code below:": "\u8acb\u5c07\u60a8\u7684\u5d4c\u5165\u5f0f\u7a0b\u5f0f\u78bc\u8cbc\u5728\u4e0b\u9762:",
+"Insert video": "\u63d2\u4ef6\u5f0f\u5f71\u97f3",
+"Embed": "\u5d4c\u5165",
+"Nonbreaking space": "\u4e0d\u5206\u884c\u7684\u7a7a\u683c",
+"Page break": "\u5206\u9801",
+"Paste as text": "\u4ee5\u7d14\u6587\u5b57\u8cbc\u4e0a",
+"Preview": "\u9810\u89bd",
+"Print": "\u5217\u5370",
+"Save": "\u5132\u5b58",
+"Could not find the specified string.": "\u7121\u6cd5\u67e5\u8a62\u5230\u6b64\u7279\u5b9a\u5b57\u4e32",
+"Replace": "\u66ff\u63db",
+"Next": "\u4e0b\u4e00\u500b",
+"Whole words": "\u6574\u500b\u55ae\u5b57",
+"Find and replace": "\u5c0b\u627e\u53ca\u53d6\u4ee3",
+"Replace with": "\u66f4\u63db",
+"Find": "\u641c\u5c0b",
+"Replace all": "\u66ff\u63db\u5168\u90e8",
+"Match case": "\u76f8\u5339\u914d\u6848\u4ef6",
+"Prev": "\u4e0a\u4e00\u500b",
+"Spellcheck": "\u62fc\u5b57\u6aa2\u67e5",
+"Finish": "\u5b8c\u6210",
+"Ignore all": "\u5ffd\u7565\u6240\u6709",
+"Ignore": "\u5ffd\u7565",
+"Insert row before": "\u63d2\u5165\u5217\u5728...\u4e4b\u524d",
+"Rows": "\u5217",
+"Height": "\u9ad8\u5ea6",
+"Paste row after": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u5f8c",
+"Alignment": "\u5c0d\u9f4a",
+"Column group": "\u6b04\u4f4d\u7fa4\u7d44",
+"Row": "\u5217",
+"Insert column before": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u524d",
+"Split cell": "\u5206\u5272\u5132\u5b58\u683c",
+"Cell padding": "\u5132\u5b58\u683c\u7684\u908a\u8ddd",
+"Cell spacing": "\u5132\u5b58\u683c\u5f97\u9593\u8ddd",
+"Row type": "\u884c\u7684\u985e\u578b",
+"Insert table": "\u63d2\u5165\u8868\u683c",
+"Body": "\u4e3b\u9ad4",
+"Caption": "\u8868\u683c\u6a19\u984c",
+"Footer": "\u9801\u5c3e",
+"Delete row": "\u522a\u9664\u5217",
+"Paste row before": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u524d",
+"Scope": "\u7bc4\u570d",
+"Delete table": "\u522a\u9664\u8868\u683c",
+"Header cell": "\u6a19\u982d\u5132\u5b58\u683c",
+"Column": "\u884c",
+"Cell": "\u5132\u5b58\u683c",
+"Header": "\u6a19\u982d",
+"Cell type": "\u5132\u5b58\u683c\u7684\u985e\u578b",
+"Copy row": "\u8907\u88fd\u5217",
+"Row properties": "\u5217\u5c6c\u6027",
+"Table properties": "\u8868\u683c\u5c6c\u6027",
+"Row group": "\u5217\u7fa4\u7d44",
+"Right": "\u53f3\u908a",
+"Insert column after": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u5f8c",
+"Cols": "\u6b04\u4f4d\u6bb5",
+"Insert row after": "\u63d2\u5165\u5217\u5728...\u4e4b\u5f8c",
+"Width": "\u5bec\u5ea6",
+"Cell properties": "\u5132\u5b58\u683c\u5c6c\u6027",
+"Left": "\u5de6\u908a",
+"Cut row": "\u526a\u4e0b\u5217",
+"Delete column": "\u522a\u9664\u884c",
+"Center": "\u4e2d\u9593",
+"Merge cells": "\u5408\u4f75\u5132\u5b58\u683c",
+"Insert template": "\u63d2\u5165\u6a23\u7248",
+"Templates": "\u6a23\u7248",
+"Background color": "\u80cc\u666f\u984f\u8272",
+"Text color": "\u6587\u5b57\u984f\u8272",
+"Show blocks": "\u986f\u793a\u5340\u584a\u8cc7\u8a0a",
+"Show invisible characters": "\u986f\u793a\u96b1\u85cf\u5b57\u5143",
+"Words: {0}": "\u5b57\u6578\uff1a{0}",
+"Insert": "\u63d2\u5165",
+"File": "\u6a94\u6848",
+"Edit": "\u7de8\u8f2f",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u8c50\u5bcc\u7684\u6587\u672c\u5340\u57df\u3002\u6309ALT-F9\u524d\u5f80\u4e3b\u9078\u55ae\u3002\u6309ALT-F10\u547c\u53eb\u5de5\u5177\u6b04\u3002\u6309ALT-0\u5c0b\u6c42\u5e6b\u52a9",
+"Tools": "\u5de5\u5177",
+"View": "\u6aa2\u8996",
+"Table": "\u8868\u683c",
+"Format": "\u683c\u5f0f"
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/license.txt b/framework/Web/Javascripts/source/tinymce-405/license.txt
new file mode 100755
index 00000000..1837b0ac
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/license.txt
@@ -0,0 +1,504 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/advlist/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/advlist/plugin.min.js
new file mode 100755
index 00000000..da1cdb2b
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/advlist/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("advlist",function(t){function e(t,e){var n=[];return tinymce.each(e.split(/[ ,]/),function(t){n.push({text:t.replace(/\-/g," ").replace(/\b\w/g,function(t){return t.toUpperCase()}),data:"default"==t?"":t})}),n}function n(e,n){var i,r=t.dom,a=t.selection;i=r.getParent(a.getNode(),"ol,ul"),i&&i.nodeName==e&&n!==!1||t.execCommand("UL"==e?"InsertUnorderedList":"InsertOrderedList"),n=n===!1?o[e]:n,o[e]=n,i=r.getParent(a.getNode(),"ol,ul"),i&&(r.setStyle(i,"listStyleType",n),i.removeAttribute("data-mce-style")),t.focus()}function i(e){var n=t.dom.getStyle(t.dom.getParent(t.selection.getNode(),"ol,ul"),"listStyleType")||"";e.control.items().each(function(t){t.active(t.settings.data===n)})}var r,a,o={};r=e("OL",t.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),a=e("UL",t.getParam("advlist_bullet_styles","default,circle,disc,square")),t.addButton("numlist",{type:"splitbutton",tooltip:"Numbered list",menu:r,onshow:i,onselect:function(t){n("OL",t.control.settings.data)},onclick:function(){n("OL",!1)}}),t.addButton("bullist",{type:"splitbutton",tooltip:"Bullet list",menu:a,onshow:i,onselect:function(t){n("UL",t.control.settings.data)},onclick:function(){n("UL",!1)}})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/anchor/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/anchor/plugin.min.js
new file mode 100755
index 00000000..6a3fd792
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/anchor/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("anchor",function(e){function t(){var t=e.selection.getNode();e.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:t.name||t.id},onsubmit:function(t){e.execCommand("mceInsertContent",!1,e.dom.createHTML("a",{id:t.data.name}))}})}e.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:t,stateSelector:"a:not([href])"}),e.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:t})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/autolink/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/autolink/plugin.min.js
new file mode 100755
index 00000000..3d2f58ee
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/autolink/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("autolink",function(t){function e(t){o(t,-1,"(",!0)}function n(t){o(t,0,"",!0)}function i(t){o(t,-1,"",!1)}function o(t,e,n){var i,o,r,a,s,l,c,u,d;if(i=t.selection.getRng(!0).cloneRange(),i.startOffset<5){if(u=i.endContainer.previousSibling,!u){if(!i.endContainer.firstChild||!i.endContainer.firstChild.nextSibling)return;u=i.endContainer.firstChild.nextSibling}if(d=u.length,i.setStart(u,d),i.setEnd(u,d),i.endOffset<5)return;o=i.endOffset,a=u}else{if(a=i.endContainer,3!=a.nodeType&&a.firstChild){for(;3!=a.nodeType&&a.firstChild;)a=a.firstChild;3==a.nodeType&&(i.setStart(a,0),i.setEnd(a,a.nodeValue.length))}o=1==i.endOffset?2:i.endOffset-1-e}r=o;do i.setStart(a,o>=2?o-2:0),i.setEnd(a,o>=1?o-1:0),o-=1;while(" "!=i.toString()&&""!==i.toString()&&160!=i.toString().charCodeAt(0)&&o-2>=0&&i.toString()!=n);if(i.toString()==n||160==i.toString().charCodeAt(0)?(i.setStart(a,o),i.setEnd(a,r),o+=1):0===i.startOffset?(i.setStart(a,0),i.setEnd(a,r)):(i.setStart(a,o),i.setEnd(a,r)),l=i.toString(),"."==l.charAt(l.length-1)&&i.setEnd(a,r-1),l=i.toString(),c=l.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i),c&&("www."==c[1]?c[1]="http://www.":/@$/.test(c[1])&&!/^mailto:/.test(c[1])&&(c[1]="mailto:"+c[1]),s=t.selection.getBookmark(),t.selection.setRng(i),t.execCommand("createlink",!1,c[1]+c[2]),t.selection.moveToBookmark(s),t.nodeChanged(),tinymce.Env.webkit)){t.selection.collapse(!1);var m=Math.min(a.length,r+1);i.setStart(a,m),i.setEnd(a,m),t.selection.setRng(i)}}t.on("keydown",function(e){return 13==e.keyCode?i(t):void 0}),tinymce.Env.ie||(t.on("keypress",function(n){return 41==n.which?e(t):void 0}),t.on("keyup",function(e){return 32==e.keyCode?n(t):void 0}))}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/autoresize/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/autoresize/plugin.min.js
new file mode 100755
index 00000000..12355aa9
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/autoresize/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("autoresize",function(e){function t(a){var r,o,c=e.getDoc(),s=c.body,u=c.documentElement,l=tinymce.DOM,m=n.autoresize_min_height;"setcontent"==a.type&&a.initial||e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen()||(o=tinymce.Env.ie?s.scrollHeight:tinymce.Env.webkit&&0===s.clientHeight?0:s.offsetHeight,o>n.autoresize_min_height&&(m=o),n.autoresize_max_height&&o>n.autoresize_max_height?(m=n.autoresize_max_height,s.style.overflowY="auto",u.style.overflowY="auto"):(s.style.overflowY="hidden",u.style.overflowY="hidden",s.scrollTop=0),m!==i&&(r=m-i,l.setStyle(l.get(e.id+"_ifr"),"height",m+"px"),i=m,tinymce.isWebKit&&0>r&&t(a)))}var n=e.settings,i=0;e.settings.inline||(n.autoresize_min_height=parseInt(e.getParam("autoresize_min_height",e.getElement().offsetHeight),10),n.autoresize_max_height=parseInt(e.getParam("autoresize_max_height",0),10),e.on("init",function(){e.dom.setStyle(e.getBody(),"paddingBottom",e.getParam("autoresize_bottom_margin",50)+"px")}),e.on("change setcontent paste keyup",t),e.getParam("autoresize_on_init",!0)&&e.on("load",t),e.addCommand("mceAutoResize",t))}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/autosave/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/autosave/plugin.min.js
new file mode 100755
index 00000000..93ee1df5
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/autosave/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("autosave",function(e){function t(e,t){var n={s:1e3,m:6e4};return e=/^(\d+)([ms]?)$/.exec(""+(e||t)),(e[2]?n[e[2]]:1)*parseInt(e,10)}function n(){var e=parseInt(f.getItem(h+"autosave.time"),10)||0;return(new Date).getTime()-e>d.autosave_retention?(i(!1),!1):!0}function i(t){f.removeItem(h+"autosave.draft"),f.removeItem(h+"autosave.time"),t!==!1&&e.fire("RemoveDraft")}function a(){c()||(f.setItem(h+"autosave.draft",e.getContent({format:"raw",no_events:!0})),f.setItem(h+"autosave.time",(new Date).getTime()),e.fire("StoreDraft"))}function r(){n()&&(e.setContent(f.getItem(h+"autosave.draft"),{format:"raw"}),e.fire("RestoreDraft"))}function o(){m||(setInterval(function(){e.removed||a()},d.autosave_interval),m=!0)}function s(){var t=this;t.disabled(!n()),e.on("StoreDraft RestoreDraft RemoveDraft",function(){t.disabled(!n())}),o()}function l(){e.undoManager.beforeChange(),r(),i(),e.undoManager.add()}function u(){var e;return tinymce.each(tinymce.editors,function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&t.getParam("autosave_ask_before_unload",!0)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e}function c(t){var n=e.settings.forced_root_block;return t=tinymce.trim("undefined"==typeof t?e.getBody().innerHTML:t),""===t||new RegExp("^<"+n+">(( |&nbsp;|[ ]|<br[^>]*>)+?|)</"+n+">|<br>$","i").test(t)}var m,d=e.settings,f=tinymce.util.LocalStorage,h=e.id;d.autosave_interval=t(d.autosave_interval,"30s"),d.autosave_retention=t(d.autosave_retention,"20m"),e.addButton("restoredraft",{title:"Restore last draft",onclick:l,onPostRender:s}),e.addMenuItem("restoredraft",{text:"Restore last draft",onclick:l,onPostRender:s,context:"file"}),e.settings.autosave_restore_when_empty!==!1&&(e.on("init",function(){n()&&c()&&r()}),e.on("saveContent",function(){i()})),window.onbeforeunload=u,this.hasDraft=n,this.storeDraft=a,this.restoreDraft=r,this.removeDraft=i,this.isEmpty=c}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/bbcode/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/bbcode/plugin.min.js
new file mode 100755
index 00000000..70a88a7d
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/bbcode/plugin.min.js
@@ -0,0 +1 @@
+!function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(e){var t=this,n=e.getParam("bbcode_dialect","punbb").toLowerCase();e.on("beforeSetContent",function(e){e.content=t["_"+n+"_bbcode2html"](e.content)}),e.on("postProcess",function(e){e.set&&(e.content=t["_"+n+"_bbcode2html"](e.content)),e.get&&(e.content=t["_"+n+"_html2bbcode"](e.content))})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://www.tinymce.com",infourl:"http://www.tinymce.com/wiki.php/Plugin:bbcode"}},_punbb_html2bbcode:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"),t(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"),t(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"),t(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"),t(/<font>(.*?)<\/font>/gi,"$1"),t(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"),t(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"),t(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"),t(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),t(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),t(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),t(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),t(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),t(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),t(/<\/(strong|b)>/gi,"[/b]"),t(/<(strong|b)>/gi,"[b]"),t(/<\/(em|i)>/gi,"[/i]"),t(/<(em|i)>/gi,"[i]"),t(/<\/u>/gi,"[/u]"),t(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"),t(/<u>/gi,"[u]"),t(/<blockquote[^>]*>/gi,"[quote]"),t(/<\/blockquote>/gi,"[/quote]"),t(/<br \/>/gi,"\n"),t(/<br\/>/gi,"\n"),t(/<br>/gi,"\n"),t(/<p>/gi,""),t(/<\/p>/gi,"\n"),t(/&nbsp;|\u00a0/gi," "),t(/&quot;/gi,'"'),t(/&lt;/gi,"<"),t(/&gt;/gi,">"),t(/&amp;/gi,"&"),e},_punbb_bbcode2html:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/\n/gi,"<br />"),t(/\[b\]/gi,"<strong>"),t(/\[\/b\]/gi,"</strong>"),t(/\[i\]/gi,"<em>"),t(/\[\/i\]/gi,"</em>"),t(/\[u\]/gi,"<u>"),t(/\[\/u\]/gi,"</u>"),t(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>'),t(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>'),t(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />'),t(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>'),t(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span>&nbsp;'),t(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span>&nbsp;'),e}}),tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)}(); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/charmap/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/charmap/plugin.min.js
new file mode 100755
index 00000000..dff18e6e
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/charmap/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("charmap",function(e){function t(){function t(e){for(;e;){if("TD"==e.nodeName)return e;e=e.parentNode}}var i,a,r,o;i='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var s=25;for(r=0;10>r;r++){for(i+="<tr>",a=0;s>a;a++){var l=n[r*s+a],c="g"+(r*s+a);i+='<td title="'+l[1]+'"><div id="'+c+'" tabIndex="-1">'+(l?String.fromCharCode(parseInt(l[0],10)):"&nbsp;")+"</div></td>"}i+="</tr>"}i+="</tbody></table>";var u={type:"container",html:i,onclick:function(t){var n=t.target;"DIV"==n.nodeName&&e.execCommand("mceInsertContent",!1,n.firstChild.nodeValue)},onmouseover:function(e){var n=t(e.target);n&&o.find("#preview").text(n.firstChild.firstChild.data)}};o=e.windowManager.open({title:"Special character",spacing:10,padding:10,items:[u,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){o.close()}}]})}var n=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["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","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];e.addButton("charmap",{icon:"charmap",tooltip:"Special character",onclick:t}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:t,context:"insert"})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/code/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/code/plugin.min.js
new file mode 100755
index 00000000..ed9646f5
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/code/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("code",function(e){function t(){e.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:e.getParam("code_dialog_width",600),minHeight:e.getParam("code_dialog_height",500),value:e.getContent({source_view:!0}),spellcheck:!1},onSubmit:function(t){e.undoManager.transact(function(){e.setContent(t.data.code)}),e.nodeChanged()}})}e.addCommand("mceCodeEditor",t),e.addButton("code",{icon:"code",tooltip:"Source code",onclick:t}),e.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:t})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/editable_selects.js b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/editable_selects.js
new file mode 100755
index 00000000..8d30787d
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/editable_selects.js
@@ -0,0 +1,70 @@
+/**
+ * editable_selects.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+var TinyMCE_EditableSelects = {
+ editSelectElm : null,
+
+ init : function() {
+ var nl = document.getElementsByTagName("select"), i, d = document, o;
+
+ for (i=0; i<nl.length; i++) {
+ if (nl[i].className.indexOf('mceEditableSelect') != -1) {
+ o = new Option(tinyMCEPopup.editor.translate('value'), '__mce_add_custom__');
+
+ o.className = 'mceAddSelectValue';
+
+ nl[i].options[nl[i].options.length] = o;
+ nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect;
+ }
+ }
+ },
+
+ onChangeEditableSelect : function(e) {
+ var d = document, ne, se = window.event ? window.event.srcElement : e.target;
+
+ if (se.options[se.selectedIndex].value == '__mce_add_custom__') {
+ ne = d.createElement("input");
+ ne.id = se.id + "_custom";
+ ne.name = se.name + "_custom";
+ ne.type = "text";
+
+ ne.style.width = se.offsetWidth + 'px';
+ se.parentNode.insertBefore(ne, se);
+ se.style.display = 'none';
+ ne.focus();
+ ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;
+ ne.onkeydown = TinyMCE_EditableSelects.onKeyDown;
+ TinyMCE_EditableSelects.editSelectElm = se;
+ }
+ },
+
+ onBlurEditableSelectInput : function() {
+ var se = TinyMCE_EditableSelects.editSelectElm;
+
+ if (se) {
+ if (se.previousSibling.value != '') {
+ addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);
+ selectByValue(document.forms[0], se.id, se.previousSibling.value);
+ } else
+ selectByValue(document.forms[0], se.id, '');
+
+ se.style.display = 'inline';
+ se.parentNode.removeChild(se.previousSibling);
+ TinyMCE_EditableSelects.editSelectElm = null;
+ }
+ },
+
+ onKeyDown : function(e) {
+ e = e || window.event;
+
+ if (e.keyCode == 13)
+ TinyMCE_EditableSelects.onBlurEditableSelectInput();
+ }
+};
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/form_utils.js b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/form_utils.js
new file mode 100755
index 00000000..69d338fc
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/form_utils.js
@@ -0,0 +1,210 @@
+/**
+ * form_utils.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme"));
+
+function getColorPickerHTML(id, target_form_element) {
+ var h = "", dom = tinyMCEPopup.dom;
+
+ if (label = dom.select('label[for=' + target_form_element + ']')[0]) {
+ label.id = label.id || dom.uniqueId();
+ }
+
+ h += '<a role="button" aria-labelledby="' + id + '_label" id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">';
+ h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '">&nbsp;<span id="' + id + '_label" class="mceVoiceLabel mceIconOnly" style="display:none;">' + tinyMCEPopup.getLang('browse') + '</span></span></a>';
+
+ return h;
+}
+
+function updateColor(img_id, form_element_id) {
+ document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;
+}
+
+function setBrowserDisabled(id, state) {
+ var img = document.getElementById(id);
+ var lnk = document.getElementById(id + "_link");
+
+ if (lnk) {
+ if (state) {
+ lnk.setAttribute("realhref", lnk.getAttribute("href"));
+ lnk.removeAttribute("href");
+ tinyMCEPopup.dom.addClass(img, 'disabled');
+ } else {
+ if (lnk.getAttribute("realhref"))
+ lnk.setAttribute("href", lnk.getAttribute("realhref"));
+
+ tinyMCEPopup.dom.removeClass(img, 'disabled');
+ }
+ }
+}
+
+function getBrowserHTML(id, target_form_element, type, prefix) {
+ var option = prefix + "_" + type + "_browser_callback", cb, html;
+
+ cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback"));
+
+ if (!cb)
+ return "";
+
+ html = "";
+ html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">';
+ html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '">&nbsp;</span></a>';
+
+ return html;
+}
+
+function openBrowser(img_id, target_form_element, type, option) {
+ var img = document.getElementById(img_id);
+
+ if (img.className != "mceButtonDisabled")
+ tinyMCEPopup.openBrowser(target_form_element, type, option);
+}
+
+function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
+ if (!form_obj || !form_obj.elements[field_name])
+ return;
+
+ if (!value)
+ value = "";
+
+ var sel = form_obj.elements[field_name];
+
+ var found = false;
+ for (var i=0; i<sel.options.length; i++) {
+ var option = sel.options[i];
+
+ if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {
+ option.selected = true;
+ found = true;
+ } else
+ option.selected = false;
+ }
+
+ if (!found && add_custom && value != '') {
+ var option = new Option(value, value);
+ option.selected = true;
+ sel.options[sel.options.length] = option;
+ sel.selectedIndex = sel.options.length - 1;
+ }
+
+ return found;
+}
+
+function getSelectValue(form_obj, field_name) {
+ var elm = form_obj.elements[field_name];
+
+ if (elm == null || elm.options == null || elm.selectedIndex === -1)
+ return "";
+
+ return elm.options[elm.selectedIndex].value;
+}
+
+function addSelectValue(form_obj, field_name, name, value) {
+ var s = form_obj.elements[field_name];
+ var o = new Option(name, value);
+ s.options[s.options.length] = o;
+}
+
+function addClassesToList(list_id, specific_option) {
+ // Setup class droplist
+ var styleSelectElm = document.getElementById(list_id);
+ var styles = tinyMCEPopup.getParam('theme_advanced_styles', false);
+ styles = tinyMCEPopup.getParam(specific_option, styles);
+
+ if (styles) {
+ var stylesAr = styles.split(';');
+
+ for (var i=0; i<stylesAr.length; i++) {
+ if (stylesAr != "") {
+ var key, value;
+
+ key = stylesAr[i].split('=')[0];
+ value = stylesAr[i].split('=')[1];
+
+ styleSelectElm.options[styleSelectElm.length] = new Option(key, value);
+ }
+ }
+ } else {
+ tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) {
+ styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']);
+ });
+ }
+}
+
+function isVisible(element_id) {
+ var elm = document.getElementById(element_id);
+
+ return elm && elm.style.display != "none";
+}
+
+function convertRGBToHex(col) {
+ var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
+
+ var rgb = col.replace(re, "$1,$2,$3").split(',');
+ if (rgb.length == 3) {
+ r = parseInt(rgb[0]).toString(16);
+ g = parseInt(rgb[1]).toString(16);
+ b = parseInt(rgb[2]).toString(16);
+
+ r = r.length == 1 ? '0' + r : r;
+ g = g.length == 1 ? '0' + g : g;
+ b = b.length == 1 ? '0' + b : b;
+
+ return "#" + r + g + b;
+ }
+
+ return col;
+}
+
+function convertHexToRGB(col) {
+ if (col.indexOf('#') != -1) {
+ col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');
+
+ r = parseInt(col.substring(0, 2), 16);
+ g = parseInt(col.substring(2, 4), 16);
+ b = parseInt(col.substring(4, 6), 16);
+
+ return "rgb(" + r + "," + g + "," + b + ")";
+ }
+
+ return col;
+}
+
+function trimSize(size) {
+ return size.replace(/([0-9\.]+)(px|%|in|cm|mm|em|ex|pt|pc)/i, '$1$2');
+}
+
+function getCSSSize(size) {
+ size = trimSize(size);
+
+ if (size == "")
+ return "";
+
+ // Add px
+ if (/^[0-9]+$/.test(size))
+ size += 'px';
+ // Sanity check, IE doesn't like broken values
+ else if (!(/^[0-9\.]+(px|%|in|cm|mm|em|ex|pt|pc)$/i.test(size)))
+ return "";
+
+ return size;
+}
+
+function getStyle(elm, attrib, style) {
+ var val = tinyMCEPopup.dom.getAttrib(elm, attrib);
+
+ if (val != '')
+ return '' + val;
+
+ if (typeof(style) == 'undefined')
+ style = attrib;
+
+ return tinyMCEPopup.dom.getStyle(elm, style);
+}
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/mctabs.js b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/mctabs.js
new file mode 100755
index 00000000..acb5657e
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/mctabs.js
@@ -0,0 +1,162 @@
+/**
+ * mctabs.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+function MCTabs() {
+ this.settings = [];
+ this.onChange = tinyMCEPopup.editor.windowManager.createInstance('tinymce.util.Dispatcher');
+};
+
+MCTabs.prototype.init = function(settings) {
+ this.settings = settings;
+};
+
+MCTabs.prototype.getParam = function(name, default_value) {
+ var value = null;
+
+ value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
+
+ // Fix bool values
+ if (value == "true" || value == "false")
+ return (value == "true");
+
+ return value;
+};
+
+MCTabs.prototype.showTab =function(tab){
+ tab.className = 'current';
+ tab.setAttribute("aria-selected", true);
+ tab.setAttribute("aria-expanded", true);
+ tab.tabIndex = 0;
+};
+
+MCTabs.prototype.hideTab =function(tab){
+ var t=this;
+
+ tab.className = '';
+ tab.setAttribute("aria-selected", false);
+ tab.setAttribute("aria-expanded", false);
+ tab.tabIndex = -1;
+};
+
+MCTabs.prototype.showPanel = function(panel) {
+ panel.className = 'current';
+ panel.setAttribute("aria-hidden", false);
+};
+
+MCTabs.prototype.hidePanel = function(panel) {
+ panel.className = 'panel';
+ panel.setAttribute("aria-hidden", true);
+};
+
+MCTabs.prototype.getPanelForTab = function(tabElm) {
+ return tinyMCEPopup.dom.getAttrib(tabElm, "aria-controls");
+};
+
+MCTabs.prototype.displayTab = function(tab_id, panel_id, avoid_focus) {
+ var panelElm, panelContainerElm, tabElm, tabContainerElm, selectionClass, nodes, i, t = this;
+
+ tabElm = document.getElementById(tab_id);
+
+ if (panel_id === undefined) {
+ panel_id = t.getPanelForTab(tabElm);
+ }
+
+ panelElm= document.getElementById(panel_id);
+ panelContainerElm = panelElm ? panelElm.parentNode : null;
+ tabContainerElm = tabElm ? tabElm.parentNode : null;
+ selectionClass = t.getParam('selection_class', 'current');
+
+ if (tabElm && tabContainerElm) {
+ nodes = tabContainerElm.childNodes;
+
+ // Hide all other tabs
+ for (i = 0; i < nodes.length; i++) {
+ if (nodes[i].nodeName == "LI") {
+ t.hideTab(nodes[i]);
+ }
+ }
+
+ // Show selected tab
+ t.showTab(tabElm);
+ }
+
+ if (panelElm && panelContainerElm) {
+ nodes = panelContainerElm.childNodes;
+
+ // Hide all other panels
+ for (i = 0; i < nodes.length; i++) {
+ if (nodes[i].nodeName == "DIV")
+ t.hidePanel(nodes[i]);
+ }
+
+ if (!avoid_focus) {
+ tabElm.focus();
+ }
+
+ // Show selected panel
+ t.showPanel(panelElm);
+ }
+};
+
+MCTabs.prototype.getAnchor = function() {
+ var pos, url = document.location.href;
+
+ if ((pos = url.lastIndexOf('#')) != -1)
+ return url.substring(pos + 1);
+
+ return "";
+};
+
+
+//Global instance
+var mcTabs = new MCTabs();
+
+tinyMCEPopup.onInit.add(function() {
+ var tinymce = tinyMCEPopup.getWin().tinymce, dom = tinyMCEPopup.dom, each = tinymce.each;
+
+ each(dom.select('div.tabs'), function(tabContainerElm) {
+ var keyNav;
+
+ dom.setAttrib(tabContainerElm, "role", "tablist");
+
+ var items = tinyMCEPopup.dom.select('li', tabContainerElm);
+ var action = function(id) {
+ mcTabs.displayTab(id, mcTabs.getPanelForTab(id));
+ mcTabs.onChange.dispatch(id);
+ };
+
+ each(items, function(item) {
+ dom.setAttrib(item, 'role', 'tab');
+ dom.bind(item, 'click', function(evt) {
+ action(item.id);
+ });
+ });
+
+ dom.bind(dom.getRoot(), 'keydown', function(evt) {
+ if (evt.keyCode === 9 && evt.ctrlKey && !evt.altKey) { // Tab
+ keyNav.moveFocus(evt.shiftKey ? -1 : 1);
+ tinymce.dom.Event.cancel(evt);
+ }
+ });
+
+ each(dom.select('a', tabContainerElm), function(a) {
+ dom.setAttrib(a, 'tabindex', '-1');
+ });
+
+ keyNav = tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', {
+ root: tabContainerElm,
+ items: items,
+ onAction: action,
+ actOnFocus: true,
+ enableLeftRight: true,
+ enableUpDown: true
+ }, tinyMCEPopup.dom);
+ });
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/tiny_mce_popup.js b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/tiny_mce_popup.js
new file mode 100755
index 00000000..6ed0d5e9
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/tiny_mce_popup.js
@@ -0,0 +1,435 @@
+/**
+ * Popup.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+// Some global instances
+var tinymce = null, tinyMCEPopup, tinyMCE;
+
+/**
+ * TinyMCE popup/dialog helper class. This gives you easy access to the
+ * parent editor instance and a bunch of other things. It's higly recommended
+ * that you load this script into your dialogs.
+ *
+ * @static
+ * @class tinyMCEPopup
+ */
+tinyMCEPopup = {
+ /**
+ * Initializes the popup this will be called automatically.
+ *
+ * @method init
+ */
+ init : function() {
+ var t = this, w, ti, settings;
+
+ // Find window & API
+ w = t.getWin();
+ tinymce = w.tinymce;
+ tinyMCE = w.tinyMCE;
+ t.editor = tinymce.EditorManager.activeEditor;
+ t.params = t.editor.windowManager.params;
+ t.features = t.editor.windowManager.features;
+ settings = t.editor.settings;
+
+ // Setup popup CSS path(s)
+ if (settings.popup_css !== false) {
+ if (settings.popup_css) {
+ settings.popup_css = t.documentBaseURI.toAbsolute(settings.popup_css);
+ } else {
+ settings.popup_css = t.baseURI.toAbsolute("themes/" + settings.theme + "/skins/" + settings.skin + "/dialog.css");
+ }
+ }
+
+ if (settings.popup_css_add) {
+ settings.popup_css += ',' + t.documentBaseURI.toAbsolute(settings.popup_css_add);
+ }
+
+ // Setup local DOM
+ t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document, {ownEvents: true, proxy: tinyMCEPopup._eventProxy});
+ t.dom.bind(window, 'ready', t._onDOMLoaded, t);
+
+ // Enables you to skip loading the default css
+ if (t.features.popup_css !== false)
+ t.dom.loadCSS(t.features.popup_css || t.editor.settings.popup_css);
+
+ // Setup on init listeners
+ t.listeners = [];
+
+ /**
+ * Fires when the popup is initialized.
+ *
+ * @event onInit
+ * @param {tinymce.Editor} editor Editor instance.
+ * @example
+ * // Alerts the selected contents when the dialog is loaded
+ * tinyMCEPopup.onInit.add(function(ed) {
+ * alert(ed.selection.getContent());
+ * });
+ *
+ * // Executes the init method on page load in some object using the SomeObject scope
+ * tinyMCEPopup.onInit.add(SomeObject.init, SomeObject);
+ */
+ t.onInit = {
+ add : function(f, s) {
+ t.listeners.push({func : f, scope : s});
+ }
+ };
+
+ t.isWindow = !t.getWindowArg('mce_inline');
+ t.id = t.getWindowArg('mce_window_id');
+ },
+
+ /**
+ * Returns the reference to the parent window that opened the dialog.
+ *
+ * @method getWin
+ * @return {Window} Reference to the parent window that opened the dialog.
+ */
+ getWin : function() {
+ // Added frameElement check to fix bug: #2817583
+ return (!window.frameElement && window.dialogArguments) || opener || parent || top;
+ },
+
+ /**
+ * Returns a window argument/parameter by name.
+ *
+ * @method getWindowArg
+ * @param {String} n Name of the window argument to retrive.
+ * @param {String} dv Optional default value to return.
+ * @return {String} Argument value or default value if it wasn't found.
+ */
+ getWindowArg : function(n, dv) {
+ var v = this.params[n];
+
+ return tinymce.is(v) ? v : dv;
+ },
+
+ /**
+ * Returns a editor parameter/config option value.
+ *
+ * @method getParam
+ * @param {String} n Name of the editor config option to retrive.
+ * @param {String} dv Optional default value to return.
+ * @return {String} Parameter value or default value if it wasn't found.
+ */
+ getParam : function(n, dv) {
+ return this.editor.getParam(n, dv);
+ },
+
+ /**
+ * Returns a language item by key.
+ *
+ * @method getLang
+ * @param {String} n Language item like mydialog.something.
+ * @param {String} dv Optional default value to return.
+ * @return {String} Language value for the item like "my string" or the default value if it wasn't found.
+ */
+ getLang : function(n, dv) {
+ return this.editor.getLang(n, dv);
+ },
+
+ /**
+ * Executed a command on editor that opened the dialog/popup.
+ *
+ * @method execCommand
+ * @param {String} cmd Command to execute.
+ * @param {Boolean} ui Optional boolean value if the UI for the command should be presented or not.
+ * @param {Object} val Optional value to pass with the comman like an URL.
+ * @param {Object} a Optional arguments object.
+ */
+ execCommand : function(cmd, ui, val, a) {
+ a = a || {};
+ a.skip_focus = 1;
+
+ this.restoreSelection();
+ return this.editor.execCommand(cmd, ui, val, a);
+ },
+
+ /**
+ * Resizes the dialog to the inner size of the window. This is needed since various browsers
+ * have different border sizes on windows.
+ *
+ * @method resizeToInnerSize
+ */
+ resizeToInnerSize : function() {
+ var t = this;
+
+ // Detach it to workaround a Chrome specific bug
+ // https://sourceforge.net/tracker/?func=detail&atid=635682&aid=2926339&group_id=103281
+ setTimeout(function() {
+ var vp = t.dom.getViewPort(window);
+
+ t.editor.windowManager.resizeBy(
+ t.getWindowArg('mce_width') - vp.w,
+ t.getWindowArg('mce_height') - vp.h,
+ t.id || window
+ );
+ }, 10);
+ },
+
+ /**
+ * Will executed the specified string when the page has been loaded. This function
+ * was added for compatibility with the 2.x branch.
+ *
+ * @method executeOnLoad
+ * @param {String} s String to evalutate on init.
+ */
+ executeOnLoad : function(s) {
+ this.onInit.add(function() {
+ eval(s);
+ });
+ },
+
+ /**
+ * Stores the current editor selection for later restoration. This can be useful since some browsers
+ * looses it's selection if a control element is selected/focused inside the dialogs.
+ *
+ * @method storeSelection
+ */
+ storeSelection : function() {
+ this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1);
+ },
+
+ /**
+ * Restores any stored selection. This can be useful since some browsers
+ * looses it's selection if a control element is selected/focused inside the dialogs.
+ *
+ * @method restoreSelection
+ */
+ restoreSelection : function() {
+ var t = tinyMCEPopup;
+
+ if (!t.isWindow && tinymce.isIE)
+ t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);
+ },
+
+ /**
+ * Loads a specific dialog language pack. If you pass in plugin_url as a argument
+ * when you open the window it will load the <plugin url>/langs/<code>_dlg.js lang pack file.
+ *
+ * @method requireLangPack
+ */
+ requireLangPack : function() {
+ var t = this, u = t.getWindowArg('plugin_url') || t.getWindowArg('theme_url');
+
+ if (u && t.editor.settings.language && t.features.translate_i18n !== false && t.editor.settings.language_load !== false) {
+ u += '/langs/' + t.editor.settings.language + '_dlg.js';
+
+ if (!tinymce.ScriptLoader.isDone(u)) {
+ document.write('<script type="text/javascript" src="' + u + '"></script>');
+ tinymce.ScriptLoader.markDone(u);
+ }
+ }
+ },
+
+ /**
+ * Executes a color picker on the specified element id. When the user
+ * then selects a color it will be set as the value of the specified element.
+ *
+ * @method pickColor
+ * @param {DOMEvent} e DOM event object.
+ * @param {string} element_id Element id to be filled with the color value from the picker.
+ */
+ pickColor : function(e, element_id) {
+ this.execCommand('mceColorPicker', true, {
+ color : document.getElementById(element_id).value,
+ func : function(c) {
+ document.getElementById(element_id).value = c;
+
+ try {
+ document.getElementById(element_id).onchange();
+ } catch (ex) {
+ // Try fire event, ignore errors
+ }
+ }
+ });
+ },
+
+ /**
+ * Opens a filebrowser/imagebrowser this will set the output value from
+ * the browser as a value on the specified element.
+ *
+ * @method openBrowser
+ * @param {string} element_id Id of the element to set value in.
+ * @param {string} type Type of browser to open image/file/flash.
+ * @param {string} option Option name to get the file_broswer_callback function name from.
+ */
+ openBrowser : function(element_id, type, option) {
+ tinyMCEPopup.restoreSelection();
+ this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);
+ },
+
+ /**
+ * Creates a confirm dialog. Please don't use the blocking behavior of this
+ * native version use the callback method instead then it can be extended.
+ *
+ * @method confirm
+ * @param {String} t Title for the new confirm dialog.
+ * @param {function} cb Callback function to be executed after the user has selected ok or cancel.
+ * @param {Object} s Optional scope to execute the callback in.
+ */
+ confirm : function(t, cb, s) {
+ this.editor.windowManager.confirm(t, cb, s, window);
+ },
+
+ /**
+ * Creates a alert dialog. Please don't use the blocking behavior of this
+ * native version use the callback method instead then it can be extended.
+ *
+ * @method alert
+ * @param {String} t Title for the new alert dialog.
+ * @param {function} cb Callback function to be executed after the user has selected ok.
+ * @param {Object} s Optional scope to execute the callback in.
+ */
+ alert : function(tx, cb, s) {
+ this.editor.windowManager.alert(tx, cb, s, window);
+ },
+
+ /**
+ * Closes the current window.
+ *
+ * @method close
+ */
+ close : function() {
+ var t = this;
+
+ // To avoid domain relaxing issue in Opera
+ function close() {
+ t.editor.windowManager.close(window);
+ tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup
+ };
+
+ if (tinymce.isOpera)
+ t.getWin().setTimeout(close, 0);
+ else
+ close();
+ },
+
+ // Internal functions
+
+ _restoreSelection : function() {
+ var e = window.event.srcElement;
+
+ if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button'))
+ tinyMCEPopup.restoreSelection();
+ },
+
+/* _restoreSelection : function() {
+ var e = window.event.srcElement;
+
+ // If user focus a non text input or textarea
+ if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text')
+ tinyMCEPopup.restoreSelection();
+ },*/
+
+ _onDOMLoaded : function() {
+ var t = tinyMCEPopup, ti = document.title, bm, h, nv;
+
+ // Translate page
+ if (t.features.translate_i18n !== false) {
+ h = document.body.innerHTML;
+
+ // Replace a=x with a="x" in IE
+ if (tinymce.isIE)
+ h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"')
+
+ document.dir = t.editor.getParam('directionality','');
+
+ if ((nv = t.editor.translate(h)) && nv != h)
+ document.body.innerHTML = nv;
+
+ if ((nv = t.editor.translate(ti)) && nv != ti)
+ document.title = ti = nv;
+ }
+
+ if (!t.editor.getParam('browser_preferred_colors', false) || !t.isWindow)
+ t.dom.addClass(document.body, 'forceColors');
+
+ document.body.style.display = '';
+
+ // Restore selection in IE when focus is placed on a non textarea or input element of the type text
+ if (tinymce.isIE) {
+ document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);
+
+ // Add base target element for it since it would fail with modal dialogs
+ t.dom.add(t.dom.select('head')[0], 'base', {target : '_self'});
+ }
+
+ t.restoreSelection();
+ t.resizeToInnerSize();
+
+ // Set inline title
+ if (!t.isWindow)
+ t.editor.windowManager.setTitle(window, ti);
+ else
+ window.focus();
+
+ if (!tinymce.isIE && !t.isWindow) {
+ t.dom.bind(document, 'focus', function() {
+ t.editor.windowManager.focus(t.id);
+ });
+ }
+
+ // Patch for accessibility
+ tinymce.each(t.dom.select('select'), function(e) {
+ e.onkeydown = tinyMCEPopup._accessHandler;
+ });
+
+ // Call onInit
+ // Init must be called before focus so the selection won't get lost by the focus call
+ tinymce.each(t.listeners, function(o) {
+ o.func.call(o.scope, t.editor);
+ });
+
+ // Move focus to window
+ if (t.getWindowArg('mce_auto_focus', true)) {
+ window.focus();
+
+ // Focus element with mceFocus class
+ tinymce.each(document.forms, function(f) {
+ tinymce.each(f.elements, function(e) {
+ if (t.dom.hasClass(e, 'mceFocus') && !e.disabled) {
+ e.focus();
+ return false; // Break loop
+ }
+ });
+ });
+ }
+
+ document.onkeyup = tinyMCEPopup._closeWinKeyHandler;
+ },
+
+ _accessHandler : function(e) {
+ e = e || window.event;
+
+ if (e.keyCode == 13 || e.keyCode == 32) {
+ var elm = e.target || e.srcElement;
+
+ if (elm.onchange)
+ elm.onchange();
+
+ return tinymce.dom.Event.cancel(e);
+ }
+ },
+
+ _closeWinKeyHandler : function(e) {
+ e = e || window.event;
+
+ if (e.keyCode == 27)
+ tinyMCEPopup.close();
+ },
+
+ _eventProxy: function(id) {
+ return function(evt) {
+ tinyMCEPopup.dom.events.callNativeHandler(id, evt);
+ };
+ }
+};
+
+tinyMCEPopup.init(); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/validate.js b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/validate.js
new file mode 100755
index 00000000..d13aaa1b
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/compat3x/validate.js
@@ -0,0 +1,252 @@
+/**
+ * validate.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+/**
+ // String validation:
+
+ if (!Validator.isEmail('myemail'))
+ alert('Invalid email.');
+
+ // Form validation:
+
+ var f = document.forms['myform'];
+
+ if (!Validator.isEmail(f.myemail))
+ alert('Invalid email.');
+*/
+
+var Validator = {
+ isEmail : function(s) {
+ return this.test(s, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
+ },
+
+ isAbsUrl : function(s) {
+ return this.test(s, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+\\/?.*$');
+ },
+
+ isSize : function(s) {
+ return this.test(s, '^[0-9.]+(%|in|cm|mm|em|ex|pt|pc|px)?$');
+ },
+
+ isId : function(s) {
+ return this.test(s, '^[A-Za-z_]([A-Za-z0-9_])*$');
+ },
+
+ isEmpty : function(s) {
+ var nl, i;
+
+ if (s.nodeName == 'SELECT' && s.selectedIndex < 1)
+ return true;
+
+ if (s.type == 'checkbox' && !s.checked)
+ return true;
+
+ if (s.type == 'radio') {
+ for (i=0, nl = s.form.elements; i<nl.length; i++) {
+ if (nl[i].type == "radio" && nl[i].name == s.name && nl[i].checked)
+ return false;
+ }
+
+ return true;
+ }
+
+ return new RegExp('^\\s*$').test(s.nodeType == 1 ? s.value : s);
+ },
+
+ isNumber : function(s, d) {
+ return !isNaN(s.nodeType == 1 ? s.value : s) && (!d || !this.test(s, '^-?[0-9]*\\.[0-9]*$'));
+ },
+
+ test : function(s, p) {
+ s = s.nodeType == 1 ? s.value : s;
+
+ return s == '' || new RegExp(p).test(s);
+ }
+};
+
+var AutoValidator = {
+ settings : {
+ id_cls : 'id',
+ int_cls : 'int',
+ url_cls : 'url',
+ number_cls : 'number',
+ email_cls : 'email',
+ size_cls : 'size',
+ required_cls : 'required',
+ invalid_cls : 'invalid',
+ min_cls : 'min',
+ max_cls : 'max'
+ },
+
+ init : function(s) {
+ var n;
+
+ for (n in s)
+ this.settings[n] = s[n];
+ },
+
+ validate : function(f) {
+ var i, nl, s = this.settings, c = 0;
+
+ nl = this.tags(f, 'label');
+ for (i=0; i<nl.length; i++) {
+ this.removeClass(nl[i], s.invalid_cls);
+ nl[i].setAttribute('aria-invalid', false);
+ }
+
+ c += this.validateElms(f, 'input');
+ c += this.validateElms(f, 'select');
+ c += this.validateElms(f, 'textarea');
+
+ return c == 3;
+ },
+
+ invalidate : function(n) {
+ this.mark(n.form, n);
+ },
+
+ getErrorMessages : function(f) {
+ var nl, i, s = this.settings, field, msg, values, messages = [], ed = tinyMCEPopup.editor;
+ nl = this.tags(f, "label");
+ for (i=0; i<nl.length; i++) {
+ if (this.hasClass(nl[i], s.invalid_cls)) {
+ field = document.getElementById(nl[i].getAttribute("for"));
+ values = { field: nl[i].textContent };
+ if (this.hasClass(field, s.min_cls, true)) {
+ message = ed.getLang('invalid_data_min');
+ values.min = this.getNum(field, s.min_cls);
+ } else if (this.hasClass(field, s.number_cls)) {
+ message = ed.getLang('invalid_data_number');
+ } else if (this.hasClass(field, s.size_cls)) {
+ message = ed.getLang('invalid_data_size');
+ } else {
+ message = ed.getLang('invalid_data');
+ }
+
+ message = message.replace(/{\#([^}]+)\}/g, function(a, b) {
+ return values[b] || '{#' + b + '}';
+ });
+ messages.push(message);
+ }
+ }
+ return messages;
+ },
+
+ reset : function(e) {
+ var t = ['label', 'input', 'select', 'textarea'];
+ var i, j, nl, s = this.settings;
+
+ if (e == null)
+ return;
+
+ for (i=0; i<t.length; i++) {
+ nl = this.tags(e.form ? e.form : e, t[i]);
+ for (j=0; j<nl.length; j++) {
+ this.removeClass(nl[j], s.invalid_cls);
+ nl[j].setAttribute('aria-invalid', false);
+ }
+ }
+ },
+
+ validateElms : function(f, e) {
+ var nl, i, n, s = this.settings, st = true, va = Validator, v;
+
+ nl = this.tags(f, e);
+ for (i=0; i<nl.length; i++) {
+ n = nl[i];
+
+ this.removeClass(n, s.invalid_cls);
+
+ if (this.hasClass(n, s.required_cls) && va.isEmpty(n))
+ st = this.mark(f, n);
+
+ if (this.hasClass(n, s.number_cls) && !va.isNumber(n))
+ st = this.mark(f, n);
+
+ if (this.hasClass(n, s.int_cls) && !va.isNumber(n, true))
+ st = this.mark(f, n);
+
+ if (this.hasClass(n, s.url_cls) && !va.isAbsUrl(n))
+ st = this.mark(f, n);
+
+ if (this.hasClass(n, s.email_cls) && !va.isEmail(n))
+ st = this.mark(f, n);
+
+ if (this.hasClass(n, s.size_cls) && !va.isSize(n))
+ st = this.mark(f, n);
+
+ if (this.hasClass(n, s.id_cls) && !va.isId(n))
+ st = this.mark(f, n);
+
+ if (this.hasClass(n, s.min_cls, true)) {
+ v = this.getNum(n, s.min_cls);
+
+ if (isNaN(v) || parseInt(n.value) < parseInt(v))
+ st = this.mark(f, n);
+ }
+
+ if (this.hasClass(n, s.max_cls, true)) {
+ v = this.getNum(n, s.max_cls);
+
+ if (isNaN(v) || parseInt(n.value) > parseInt(v))
+ st = this.mark(f, n);
+ }
+ }
+
+ return st;
+ },
+
+ hasClass : function(n, c, d) {
+ return new RegExp('\\b' + c + (d ? '[0-9]+' : '') + '\\b', 'g').test(n.className);
+ },
+
+ getNum : function(n, c) {
+ c = n.className.match(new RegExp('\\b' + c + '([0-9]+)\\b', 'g'))[0];
+ c = c.replace(/[^0-9]/g, '');
+
+ return c;
+ },
+
+ addClass : function(n, c, b) {
+ var o = this.removeClass(n, c);
+ n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c;
+ },
+
+ removeClass : function(n, c) {
+ c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' ');
+ return n.className = c != ' ' ? c : '';
+ },
+
+ tags : function(f, s) {
+ return f.getElementsByTagName(s);
+ },
+
+ mark : function(f, n) {
+ var s = this.settings;
+
+ this.addClass(n, s.invalid_cls);
+ n.setAttribute('aria-invalid', 'true');
+ this.markLabels(f, n, s.invalid_cls);
+
+ return false;
+ },
+
+ markLabels : function(f, n, ic) {
+ var nl, i;
+
+ nl = this.tags(f, "label");
+ for (i=0; i<nl.length; i++) {
+ if (nl[i].getAttribute("for") == n.id || nl[i].htmlFor == n.id)
+ this.addClass(nl[i], ic);
+ }
+
+ return null;
+ }
+};
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/contextmenu/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/contextmenu/plugin.min.js
new file mode 100755
index 00000000..4aabc706
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/contextmenu/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("contextmenu",function(e){var t;e.on("contextmenu",function(n){var i;if(n.preventDefault(),i=e.settings.contextmenu||"link image inserttable | cell row column deletetable",t)t.show();else{var o=[];tinymce.each(i.split(/[ ,]/),function(t){var n=e.menuItems[t];"|"==t&&(n={text:t}),n&&(n.shortcut="",o.push(n))});for(var a=0;a<o.length;a++)"|"==o[a].text&&(0===a||a==o.length-1)&&o.splice(a,1);t=new tinymce.ui.Menu({items:o,context:"contextmenu"}),t.renderTo(document.body)}var r={x:n.pageX,y:n.pageY};e.inline||(r=tinymce.DOM.getPos(e.getContentAreaContainer()),r.x+=n.clientX,r.y+=n.clientY),t.moveTo(r.x,r.y),e.on("remove",function(){t.remove(),t=null})})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/directionality/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/directionality/plugin.min.js
new file mode 100755
index 00000000..60c7f9d5
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/directionality/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("directionality",function(e){function t(t){var n,i=e.dom,a=e.selection.getSelectedBlocks();a.length&&(n=i.getAttrib(a[0],"dir"),tinymce.each(a,function(e){i.getParent(e.parentNode,"*[dir='"+t+"']",i.getRoot())||(n!=t?i.setAttrib(e,"dir",t):i.setAttrib(e,"dir",null))}),e.nodeChanged())}function n(e){var t=[];return tinymce.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(n){t.push(n+"[dir="+e+"]")}),t.join(",")}e.addCommand("mceDirectionLTR",function(){t("ltr")}),e.addCommand("mceDirectionRTL",function(){t("rtl")}),e.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),e.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-cool.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-cool.gif
new file mode 100755
index 00000000..ba90cc36
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-cool.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-cry.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-cry.gif
new file mode 100755
index 00000000..74d897a4
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-cry.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-embarassed.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-embarassed.gif
new file mode 100755
index 00000000..963a96b8
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-embarassed.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-foot-in-mouth.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-foot-in-mouth.gif
new file mode 100755
index 00000000..c7cf1011
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-foot-in-mouth.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-frown.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-frown.gif
new file mode 100755
index 00000000..716f55e1
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-frown.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-innocent.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-innocent.gif
new file mode 100755
index 00000000..334d49e0
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-innocent.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-kiss.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-kiss.gif
new file mode 100755
index 00000000..4efd549e
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-kiss.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-laughing.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-laughing.gif
new file mode 100755
index 00000000..82c5b182
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-laughing.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-money-mouth.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-money-mouth.gif
new file mode 100755
index 00000000..ca2451e1
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-money-mouth.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-sealed.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-sealed.gif
new file mode 100755
index 00000000..fe66220c
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-sealed.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-smile.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-smile.gif
new file mode 100755
index 00000000..fd27edfa
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-smile.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-surprised.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-surprised.gif
new file mode 100755
index 00000000..0cc9bb71
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-surprised.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-tongue-out.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-tongue-out.gif
new file mode 100755
index 00000000..2075dc16
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-tongue-out.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-undecided.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-undecided.gif
new file mode 100755
index 00000000..bef7e257
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-undecided.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-wink.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-wink.gif
new file mode 100755
index 00000000..0631c761
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-wink.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-yell.gif b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-yell.gif
new file mode 100755
index 00000000..648e6e87
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/img/smiley-yell.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/plugin.min.js
new file mode 100755
index 00000000..f70e7941
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/emoticons/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("emoticons",function(e,t){function n(){var e;return e='<table role="presentation" class="mce-grid">',tinymce.each(i,function(n){e+="<tr>",tinymce.each(n,function(n){var i=t+"/img/smiley-"+n+".gif";e+='<td><a href="#" data-mce-url="'+i+'" tabindex="-1"><img src="'+i+'" style="width: 18px; height: 18px"></a></td>'}),e+="</tr>"}),e+="</table>"}var i=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]];e.addButton("emoticons",{type:"panelbutton",popoverAlign:"bc-tl",panel:{autohide:!0,html:n,onclick:function(t){var n=e.dom.getParent(t.target,"a");n&&(e.insertContent('<img src="'+n.getAttribute("data-mce-url")+'" />'),this.hide())}},tooltip:"Emoticons"})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/example/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/example/plugin.min.js
new file mode 100755
index 00000000..24a64c8e
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/example/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("example",function(e){e.addButton("example",{text:"My button",icon:!1,onclick:function(){e.windowManager.open({title:"Example plugin",body:[{type:"textbox",name:"title",label:"Title"}],onsubmit:function(t){e.insertContent("Title: "+t.data.title)}})}}),e.addMenuItem("example",{text:"Example plugin",context:"tools",onclick:function(){e.windowManager.open({title:"TinyMCE site",url:"http://www.tinymce.com",width:800,height:600,buttons:[{text:"Close",onclick:"close"}]})}})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/example_dependency/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/example_dependency/plugin.min.js
new file mode 100755
index 00000000..e61bf473
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/example_dependency/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("example_dependency",function(){},["example"]); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/fullpage/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/fullpage/plugin.min.js
new file mode 100755
index 00000000..0f15de46
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/fullpage/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("fullpage",function(e){function t(){var t=n();e.windowManager.open({title:"Document properties",data:t,defaults:{type:"textbox",size:40},body:[{name:"title",label:"Title"},{name:"keywords",label:"Keywords"},{name:"description",label:"Description"},{name:"robots",label:"Robots"},{name:"author",label:"Author"},{name:"docencoding",label:"Encoding"}],onSubmit:function(e){i(tinymce.extend(t,e.data))}})}function n(){function t(e,t){var n=e.attr(t);return n||""}var n,i,r=a(),o={};return o.fontface=e.getParam("fullpage_default_fontface",""),o.fontsize=e.getParam("fullpage_default_fontsize",""),n=r.firstChild,7==n.type&&(o.xml_pi=!0,i=/encoding="([^"]+)"/.exec(n.value),i&&(o.docencoding=i[1])),n=r.getAll("#doctype")[0],n&&(o.doctype="<!DOCTYPE"+n.value+">"),n=r.getAll("title")[0],n&&n.firstChild&&(o.title=n.firstChild.value),u(r.getAll("meta"),function(e){var t,n=e.attr("name"),i=e.attr("http-equiv");n?o[n.toLowerCase()]=e.attr("content"):"Content-Type"==i&&(t=/charset\s*=\s*(.*)\s*/gi.exec(e.attr("content")),t&&(o.docencoding=t[1]))}),n=r.getAll("html")[0],n&&(o.langcode=t(n,"lang")||t(n,"xml:lang")),n=r.getAll("link")[0],n&&"stylesheet"==n.attr("rel")&&(o.stylesheet=n.attr("href")),n=r.getAll("body")[0],n&&(o.langdir=t(n,"dir"),o.style=t(n,"style"),o.visited_color=t(n,"vlink"),o.link_color=t(n,"link"),o.active_color=t(n,"alink")),o}function i(t){function n(e,t,n){e.attr(t,n?n:void 0)}function i(e){o.firstChild?o.insert(e,o.firstChild):o.append(e)}var r,o,l,c,m,f=e.dom;r=a(),o=r.getAll("head")[0],o||(c=r.getAll("html")[0],o=new d("head",1),c.firstChild?c.insert(o,c.firstChild,!0):c.append(o)),c=r.firstChild,t.xml_pi?(m='version="1.0"',t.docencoding&&(m+=' encoding="'+t.docencoding+'"'),7!=c.type&&(c=new d("xml",7),r.insert(c,r.firstChild,!0)),c.value=m):c&&7==c.type&&c.remove(),c=r.getAll("#doctype")[0],t.doctype?(c||(c=new d("#doctype",10),t.xml_pi?r.insert(c,r.firstChild):i(c)),c.value=t.doctype.substring(9,t.doctype.length-1)):c&&c.remove(),t.docencoding&&(c=null,u(r.getAll("meta"),function(e){"Content-Type"==e.attr("http-equiv")&&(c=e)}),c||(c=new d("meta",1),c.attr("http-equiv","Content-Type"),c.shortEnded=!0,i(c)),c.attr("content","text/html; charset="+t.docencoding)),c=r.getAll("title")[0],t.title?c||(c=new d("title",1),c.append(new d("#text",3)).value=t.title,i(c)):c&&c.remove(),u("keywords,description,author,copyright,robots".split(","),function(e){var n,a,o=r.getAll("meta"),l=t[e];for(n=0;n<o.length;n++)if(a=o[n],a.attr("name")==e)return l?a.attr("content",l):a.remove(),void 0;l&&(c=new d("meta",1),c.attr("name",e),c.attr("content",l),c.shortEnded=!0,i(c))}),c=r.getAll("link")[0],c&&"stylesheet"==c.attr("rel")?t.stylesheet?c.attr("href",t.stylesheet):c.remove():t.stylesheet&&(c=new d("link",1),c.attr({rel:"stylesheet",text:"text/css",href:t.stylesheet}),c.shortEnded=!0,i(c)),c=r.getAll("body")[0],c&&(n(c,"dir",t.langdir),n(c,"style",t.style),n(c,"vlink",t.visited_color),n(c,"link",t.link_color),n(c,"alink",t.active_color),f.setAttribs(e.getBody(),{style:t.style,dir:t.dir,vLink:t.visited_color,link:t.link_color,aLink:t.active_color})),c=r.getAll("html")[0],c&&(n(c,"lang",t.langcode),n(c,"xml:lang",t.langcode)),o.firstChild||o.remove(),l=new tinymce.html.Serializer({validate:!1,indent:!0,apply_source_formatting:!0,indent_before:"head,html,body,meta,title,script,link,style",indent_after:"head,html,body,meta,title,script,link,style"}).serialize(r),s=l.substring(0,l.indexOf("</body>"))}function a(){return new tinymce.html.DomParser({validate:!1,root_name:"#document"}).parse(s)}function r(t){function n(e){return e.replace(/<\/?[A-Z]+/g,function(e){return e.toLowerCase()})}var i,r,l,d,m=t.content,f="",g=e.dom;t.selection||"raw"==t.format&&s||t.source_view&&e.getParam("fullpage_hide_in_source_view")||(m=m.replace(/<(\/?)BODY/gi,"<$1body"),i=m.indexOf("<body"),-1!=i?(i=m.indexOf(">",i),s=n(m.substring(0,i+1)),r=m.indexOf("</body",i),-1==r&&(r=m.length),t.content=m.substring(i+1,r),c=n(m.substring(r))):(s=o(),c="\n</body>\n</html>"),l=a(),u(l.getAll("style"),function(e){e.firstChild&&(f+=e.firstChild.value)}),d=l.getAll("body")[0],d&&g.setAttribs(e.getBody(),{style:d.attr("style")||"",dir:d.attr("dir")||"",vLink:d.attr("vlink")||"",link:d.attr("link")||"",aLink:d.attr("alink")||""}),g.remove("fullpage_styles"),f&&(g.add(e.getDoc().getElementsByTagName("head")[0],"style",{id:"fullpage_styles"},f),d=g.get("fullpage_styles"),d.styleSheet&&(d.styleSheet.cssText=f)))}function o(){var t,n="",i="";return e.getParam("fullpage_default_xml_pi")&&(n+='<?xml version="1.0" encoding="'+e.getParam("fullpage_default_encoding","ISO-8859-1")+'" ?>\n'),n+=e.getParam("fullpage_default_doctype","<!DOCTYPE html>"),n+="\n<html>\n<head>\n",(t=e.getParam("fullpage_default_title"))&&(n+="<title>"+t+"</title>\n"),(t=e.getParam("fullpage_default_encoding"))&&(n+='<meta http-equiv="Content-Type" content="text/html; charset='+t+'" />\n'),(t=e.getParam("fullpage_default_font_family"))&&(i+="font-family: "+t+";"),(t=e.getParam("fullpage_default_font_size"))&&(i+="font-size: "+t+";"),(t=e.getParam("fullpage_default_text_color"))&&(i+="color: "+t+";"),n+="</head>\n<body"+(i?' style="'+i+'"':"")+">\n"}function l(t){t.selection||t.source_view&&e.getParam("fullpage_hide_in_source_view")||(t.content=tinymce.trim(s)+"\n"+tinymce.trim(t.content)+"\n"+tinymce.trim(c))}var s,c,u=tinymce.each,d=tinymce.html.Node;e.addCommand("mceFullPageProperties",t),e.addButton("fullpage",{title:"Document properties",cmd:"mceFullPageProperties"}),e.addMenuItem("fullpage",{text:"Document properties",cmd:"mceFullPageProperties",context:"file"}),e.on("BeforeSetContent",r),e.on("GetContent",l)}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/fullscreen/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/fullscreen/plugin.min.js
new file mode 100755
index 00000000..92a3b703
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/fullscreen/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("fullscreen",function(e){function t(){var e,t,n=window,i=document,a=i.body;return a.offsetWidth&&(e=a.offsetWidth,t=a.offsetHeight),n.innerWidth&&n.innerHeight&&(e=n.innerWidth,t=n.innerHeight),{w:e,h:t}}function n(){function n(){l.setStyle(c,"height",t().h-(s.clientHeight-c.clientHeight))}var s,c,u,d=document.body,m=document.documentElement;o=!o,s=e.getContainer().firstChild,c=e.getContentAreaContainer().firstChild,u=c.style,o?(i=u.width,a=u.height,u.width=u.height="100%",l.addClass(d,"mce-fullscreen"),l.addClass(m,"mce-fullscreen"),l.addClass(s,"mce-fullscreen"),l.bind(window,"resize",n),n(),r=n):(u.width=i,u.height=a,l.removeClass(d,"mce-fullscreen"),l.removeClass(m,"mce-fullscreen"),l.removeClass(s,"mce-fullscreen"),l.unbind(window,"resize",r)),e.fire("FullscreenStateChanged",{state:o})}var i,a,r,o=!1,l=tinymce.DOM;if(!e.settings.inline)return e.on("init",function(){e.addShortcut("Ctrl+Alt+F","",n)}),e.on("remove",function(){r&&l.unbind(window,"resize",r)}),e.addCommand("mceFullScreen",n),e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Alt+F",selectable:!0,onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})},context:"view"}),e.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})}}),{isFullscreen:function(){return o}}}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/hr/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/hr/plugin.min.js
new file mode 100755
index 00000000..ca36c927
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/hr/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("hr",function(e){e.addCommand("InsertHorizontalRule",function(){e.execCommand("mceInsertContent",!1,"<hr />")}),e.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),e.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/image/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/image/plugin.min.js
new file mode 100755
index 00000000..417dc1bd
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/image/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("image",function(e){function t(e,t){function n(e,n){i.parentNode.removeChild(i),t({width:e,height:n})}var i=document.createElement("img");i.onload=function(){n(i.clientWidth,i.clientHeight)},i.onerror=function(){n()},i.src=e;var a=i.style;a.visibility="hidden",a.position="fixed",a.bottom=a.left=0,a.width=a.height="auto",document.body.appendChild(i)}function n(t){return function(){var n=e.settings.image_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(n)}}function i(n){function i(){var e=[{text:"None",value:""}];return tinymce.each(n,function(t){e.push({text:t.text||t.title,value:t.value||t.url,menu:t.menu})}),e}function a(e){var t,n,i,a;t=c.find("#width")[0],n=c.find("#height")[0],i=t.value(),a=n.value(),c.find("#constrain")[0].checked()&&d&&m&&i&&a&&(e.control==t?(a=Math.round(i/d*a),n.value(a)):(i=Math.round(a/m*i),t.value(i))),d=i,m=a}function o(){function t(t){function i(){t.onload=t.onerror=null,e.selection.select(t),e.nodeChanged()}t.onload=function(){n.width||n.height||h.setAttribs(t,{width:t.clientWidth,height:t.clientHeight}),i()},t.onerror=i}var n=c.toJSON();""===n.width&&(n.width=null),""===n.height&&(n.height=null),""===n.style&&(n.style=null),n={src:n.src,alt:n.alt,width:n.width,height:n.height,style:n.style},e.undoManager.transact(function(){return n.src?(g?h.setAttribs(g,n):(n.id="__mcenew",e.selection.setContent(h.createHTML("img",n)),g=h.get("__mcenew"),h.setAttrib(g,"id",null)),t(g),void 0):(g&&(h.remove(g),e.nodeChanged()),void 0)})}function r(e){return e&&(e=e.replace(/px$/,"")),e}function s(){t(this.value(),function(e){e.width&&e.height&&(d=e.width,m=e.height,c.find("#width").value(d),c.find("#height").value(m))})}function l(){function e(e){return e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e}var t=c.toJSON(),n=h.parseStyle(t.style);h.setAttrib(g,"style",""),delete n.margin,n["margin-top"]=n["margin-bottom"]=e(t.vspace),n["margin-left"]=n["margin-right"]=e(t.hspace),n["border-width"]=e(t.border),c.find("#style").value(h.serializeStyle(h.parseStyle(h.serializeStyle(n))))}var c,u,d,m,f,h=e.dom,g=e.selection.getNode();d=h.getAttrib(g,"width"),m=h.getAttrib(g,"height"),"IMG"!=g.nodeName||g.getAttribute("data-mce-object")?g=null:u={src:h.getAttrib(g,"src"),alt:h.getAttrib(g,"alt"),width:d,height:m},n&&(f={name:"target",type:"listbox",label:"Image list",values:i(),onselect:function(e){var t=c.find("#alt");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),c.find("#src").value(e.control.value())}});var p=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:s},f,{name:"alt",type:"textbox",label:"Image description"},{type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:a},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:a},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}];e.settings.image_advtab?(g&&(u.hspace=r(g.style.marginLeft||g.style.marginRight),u.vspace=r(g.style.marginTop||g.style.marginBottom),u.border=r(g.style.borderWidth),u.style=e.dom.serializeStyle(e.dom.parseStyle(e.dom.getAttrib(g,"style")))),c=e.windowManager.open({title:"Insert/edit image",data:u,bodyType:"tabpanel",body:[{title:"General",type:"form",items:p},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:l},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:o})):c=e.windowManager.open({title:"Edit image",data:u,body:p,onSubmit:o})}e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:n(i),stateSelector:"img:not([data-mce-object])"}),e.addMenuItem("image",{icon:"image",text:"Insert image",onclick:n(i),context:"insert",prependToContext:!0})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/importcss/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/importcss/plugin.min.js
new file mode 100755
index 00000000..0a2b235b
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/importcss/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("importcss",function(e){function t(t){function n(e,t){(t||o[e.href])&&(i(e.imports,function(e){n(e,!0)}),i(e.cssRules||e.rules,function(e){e.styleSheet?n(e.styleSheet,!0):e.selectorText&&i(e.selectorText.split(","),function(e){a.push(tinymce.trim(e))})}))}var a=[],o={};i(e.contentCSS,function(e){o[e]=!0});try{i(t.styleSheets,n)}catch(r){}return a}function n(t){var n,i=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(i){var a=i[1],o=i[2].substr(1).split(".").join(" ");return i[1]?(n={title:t},e.schema.getTextBlockElements()[a]?n.block=a:e.schema.getBlockElements()[a]?n.selector=a:n.inline=a):i[2]&&(n={inline:"span",title:t.substr(1),classes:o}),e.settings.importcss_merge_classes!==!1?n.classes=o:n.attributes={"class":o},n}}var i=tinymce.each;e.settings.style_formats||e.on("renderFormatsMenu",function(a){var o=e.settings.importcss_selector_converter||n,r={};e.settings.importcss_append||a.control.items().remove(),i(t(e.getDoc()),function(t){if(-1===t.indexOf(".mce-")&&!r[t]){var n=o(t);if(n){var i=n.name||tinymce.DOM.uniqueId();e.formatter.register(i,n),a.control.append(tinymce.extend({},a.control.settings.itemDefaults,{text:n.title,format:i}))}r[t]=!0}})})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/insertdatetime/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/insertdatetime/plugin.min.js
new file mode 100755
index 00000000..08e28337
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/insertdatetime/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("insertdatetime",function(e){function t(t,n){function i(e,t){if(e=""+e,e.length<t)for(var n=0;n<t-e.length;n++)e="0"+e;return e}return n=n||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+n.getFullYear()),t=t.replace("%y",""+n.getYear()),t=t.replace("%m",i(n.getMonth()+1,2)),t=t.replace("%d",i(n.getDate(),2)),t=t.replace("%H",""+i(n.getHours(),2)),t=t.replace("%M",""+i(n.getMinutes(),2)),t=t.replace("%S",""+i(n.getSeconds(),2)),t=t.replace("%I",""+((n.getHours()+11)%12+1)),t=t.replace("%p",""+(n.getHours()<12?"AM":"PM")),t=t.replace("%B",""+e.translate(s[n.getMonth()])),t=t.replace("%b",""+e.translate(o[n.getMonth()])),t=t.replace("%A",""+e.translate(r[n.getDay()])),t=t.replace("%a",""+e.translate(a[n.getDay()])),t=t.replace("%%","%")}function n(n){var i=t(n);if(e.settings.insertdatetime_element){var a;a=/%[HMSIp]/.test(n)?t("%Y-%m-%dT%H:%M"):t("%Y-%m-%d"),i='<time datetime="'+a+'">'+i+"</time>";var r=e.dom.getParent(e.selection.getStart(),"time");if(r)return e.dom.setOuterHTML(r,i),void 0}e.insertContent(i)}var i,a="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),r="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),o="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),s="January February March April May June July August September October November December".split(" "),l=[];e.addCommand("mceInsertDate",function(){n(e.getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d")))}),e.addCommand("mceInsertTime",function(){n(e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S")))}),e.addButton("inserttime",{type:"splitbutton",title:"Insert time",onclick:function(){n(i||"%H:%M:%S")},menu:l}),tinymce.each(e.settings.insertdatetime_formats||["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(e){l.push({text:t(e),onclick:function(){i=e,n(e)}})}),e.addMenuItem("insertdatetime",{icon:"date",text:"Insert date/time",menu:l,context:"insert"})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/layer/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/layer/plugin.min.js
new file mode 100755
index 00000000..eb1ad4b6
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/layer/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("layer",function(e){function t(e){do if(e.className&&-1!=e.className.indexOf("mceItemLayer"))return e;while(e=e.parentNode)}function n(t){var n=e.dom;tinymce.each(n.select("div,p",t),function(e){/^(absolute|relative|fixed)$/i.test(e.style.position)&&(e.hasVisual?n.addClass(e,"mceItemVisualAid"):n.removeClass(e,"mceItemVisualAid"),n.addClass(e,"mceItemLayer"))})}function i(n){var i,o,a=[],r=t(e.selection.getNode()),l=-1,s=-1;for(o=[],tinymce.walk(e.getBody(),function(e){1==e.nodeType&&/^(absolute|relative|static)$/i.test(e.style.position)&&o.push(e)},"childNodes"),i=0;i<o.length;i++)a[i]=o[i].style.zIndex?parseInt(o[i].style.zIndex,10):0,0>l&&o[i]==r&&(l=i);if(0>n){for(i=0;i<a.length;i++)if(a[i]<a[l]){s=i;break}s>-1?(o[l].style.zIndex=a[s],o[s].style.zIndex=a[l]):a[l]>0&&(o[l].style.zIndex=a[l]-1)}else{for(i=0;i<a.length;i++)if(a[i]>a[l]){s=i;break}s>-1?(o[l].style.zIndex=a[s],o[s].style.zIndex=a[l]):o[l].style.zIndex=a[l]+1}e.execCommand("mceRepaint")}function o(){var t=e.dom,n=t.getPos(t.getParent(e.selection.getNode(),"*")),i=e.getBody();e.dom.add(i,"div",{style:{position:"absolute",left:n.x,top:n.y>20?n.y:20,width:100,height:100},"class":"mceItemVisualAid mceItemLayer"},e.selection.getContent()||e.getLang("layer.content")),tinymce.Env.ie&&t.setHTML(i,i.innerHTML)}function a(){var n=t(e.selection.getNode());n||(n=e.dom.getParent(e.selection.getNode(),"DIV,P,IMG")),n&&("absolute"==n.style.position.toLowerCase()?(e.dom.setStyles(n,{position:"",left:"",top:"",width:"",height:""}),e.dom.removeClass(n,"mceItemVisualAid"),e.dom.removeClass(n,"mceItemLayer")):(n.style.left||(n.style.left="20px"),n.style.top||(n.style.top="20px"),n.style.width||(n.style.width=n.width?n.width+"px":"100px"),n.style.height||(n.style.height=n.height?n.height+"px":"100px"),n.style.position="absolute",e.dom.setAttrib(n,"data-mce-style",""),e.addVisual(e.getBody())),e.execCommand("mceRepaint"),e.nodeChanged())}e.addCommand("mceInsertLayer",o),e.addCommand("mceMoveForward",function(){i(1)}),e.addCommand("mceMoveBackward",function(){i(-1)}),e.addCommand("mceMakeAbsolute",function(){a()}),e.addButton("moveforward",{title:"layer.forward_desc",cmd:"mceMoveForward"}),e.addButton("movebackward",{title:"layer.backward_desc",cmd:"mceMoveBackward"}),e.addButton("absolute",{title:"layer.absolute_desc",cmd:"mceMakeAbsolute"}),e.addButton("insertlayer",{title:"layer.insertlayer_desc",cmd:"mceInsertLayer"}),e.on("init",function(){tinymce.Env.ie&&e.getDoc().execCommand("2D-Position",!1,!0)}),e.on("mouseup",function(n){var i=t(n.target);i&&e.dom.setAttrib(i,"data-mce-style","")}),e.on("mousedown",function(n){var i,o=n.target,a=e.getDoc();tinymce.Env.gecko&&(t(o)?"on"!==a.designMode&&(a.designMode="on",o=a.body,i=o.parentNode,i.removeChild(o),i.appendChild(o)):"on"==a.designMode&&(a.designMode="off"))}),e.on("NodeChange",n)}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/legacyoutput/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/legacyoutput/plugin.min.js
new file mode 100755
index 00000000..4f6f7c1a
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/legacyoutput/plugin.min.js
@@ -0,0 +1 @@
+!function(e){e.on("AddEditor",function(e){e.editor.settings.inline_styles=!1}),e.PluginManager.add("legacyoutput",function(t){t.on("init",function(){var n="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",i=e.explode(t.settings.font_size_style_values),o=t.schema;t.formatter.register({alignleft:{selector:n,attributes:{align:"left"}},aligncenter:{selector:n,attributes:{align:"center"}},alignright:{selector:n,attributes:{align:"right"}},alignjustify:{selector:n,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(t){return e.inArray(i,t.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}}),e.each("b,i,u,strike".split(","),function(e){o.addValidElements(e+"[*]")}),o.getElementRule("font")||o.addValidElements("font[face|size|color|style]"),e.each(n.split(","),function(e){var t=o.getElementRule(e);t&&(t.attributes.align||(t.attributes.align={},t.attributesOrder.push("align")))})})})}(tinymce); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/link/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/link/plugin.min.js
new file mode 100755
index 00000000..9cd7616d
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/link/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("link",function(e){function t(t){return function(){var n=e.settings.link_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(n)}}function n(t){function n(e){var t=d.find("#text");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),d.find("#href").value(e.control.value())}function i(){var e=[{text:"None",value:""}];return tinymce.each(t,function(t){e.push({text:t.text||t.title,value:t.value||t.url,menu:t.menu})}),e}function a(t){var n=[{text:"None",value:""}];return tinymce.each(e.settings.rel_list,function(e){n.push({text:e.text||e.title,value:e.value,selected:t===e.value})}),n}function o(t){var n=[{text:"None",value:""}];return e.settings.target_list||n.push({text:"New window",value:"_blank"}),tinymce.each(e.settings.target_list,function(e){n.push({text:e.text||e.title,value:e.value,selected:t===e.value})}),n}function r(t){var i=[];return tinymce.each(e.dom.select("a:not([href])"),function(e){var n=e.name||e.id;n&&i.push({text:n,value:"#"+n,selected:-1!=t.indexOf("#"+n)})}),i.length?(i.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:i,onselect:n}):void 0}function s(){c||0!==g.text.length||this.parent().parent().find("#text")[0].value(this.value())}var l,u,c,d,m,f,h,g={},p=e.selection,v=e.dom;l=p.getNode(),u=v.getParent(l,"a[href]"),g.text=c=u?u.innerText||u.textContent:p.getContent({format:"text"}),g.href=u?v.getAttrib(u,"href"):"",g.target=u?v.getAttrib(u,"target"):"",g.rel=u?v.getAttrib(u,"rel"):"","IMG"==l.nodeName&&(g.text=c=" "),t&&(m={type:"listbox",label:"Link list",values:i(),onselect:n}),e.settings.target_list!==!1&&(h={name:"target",type:"listbox",label:"Target",values:o(g.target)}),e.settings.rel_list&&(f={name:"rel",type:"listbox",label:"Rel",values:a(g.rel)}),d=e.windowManager.open({title:"Insert link",data:g,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:s,onkeyup:s},{name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){g.text=this.value()}},r(g.href),m,f,h],onSubmit:function(t){function n(t,n){window.setTimeout(function(){e.windowManager.confirm(t,n)},0)}function i(){a.text!=c?u?(e.focus(),u.innerHTML=a.text,v.setAttribs(u,{href:o,target:a.target?a.target:null,rel:a.rel?a.rel:null}),p.select(u)):e.insertContent(v.createHTML("a",{href:o,target:a.target?a.target:null,rel:a.rel?a.rel:null},a.text)):e.execCommand("mceInsertLink",!1,{href:o,target:a.target,rel:a.rel?a.rel:null})}var a=t.data,o=a.href;return o?o.indexOf("@")>0&&-1==o.indexOf("//")&&-1==o.indexOf("mailto:")?(n("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(e){e&&(o="mailto:"+o),i()}),void 0):/^\s*www\./i.test(o)?(n("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(e){e&&(o="http://"+o),i()}),void 0):(i(),void 0):(e.execCommand("unlink"),void 0)}})}e.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:t(n),stateSelector:"a[href]"}),e.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),e.addShortcut("Ctrl+K","",t(n)),this.showDialog=n,e.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:t(n),stateSelector:"a[href]",context:"insert",prependToContext:!0})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/lists/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/lists/plugin.min.js
new file mode 100755
index 00000000..811c46dd
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/lists/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("lists",function(e){var t=this;e.on("init",function(){function n(e){function t(t){var i,r,a;r=e[t?"startContainer":"endContainer"],a=e[t?"startOffset":"endOffset"],1==r.nodeType&&(i=b.create("span",{"data-mce-type":"bookmark"}),r.hasChildNodes()?(a=Math.min(a,r.childNodes.length-1),r.insertBefore(i,r.childNodes[a])):r.appendChild(i),r=i,a=0),n[t?"startContainer":"endContainer"]=r,n[t?"startOffset":"endOffset"]=a}var n={};return t(!0),e.collapsed||t(),n}function i(t){function n(n){function i(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t==e)return n;(1!=t.nodeType||"bookmark"!=t.getAttribute("data-mce-type"))&&n++,t=t.nextSibling}return-1}var r,a,o;if(r=o=t[n?"startContainer":"endContainer"],a=t[n?"startOffset":"endOffset"],r){if(1==r.nodeType){if(r.parentNode==e.getBody()){var s,l=e.settings.forced_root_block;l?(s=b.create(l),(!tinymce.Env.ie||tinymce.Env.ie>10)&&s.appendChild(b.create("br",{"data-mce-bogus":"true"})),r.parentNode.insertBefore(s,r),r=s,a=0):(s=b.create("br"),r.parentNode.insertBefore(s,r),r=r.parentNode,a=i(s))}else n?(a=i(r),r=r.parentNode):(a=i(r),r=r.parentNode);b.remove(o)}t[n?"startContainer":"endContainer"]=r,t[n?"startOffset":"endOffset"]=a}}n(!0),n();var i=b.createRng();i.setStart(t.startContainer,t.startOffset),t.endContainer&&i.setEnd(t.endContainer,t.endOffset),C.setRng(i)}function r(e){return e&&/^(OL|UL)$/.test(e.nodeName)}function a(e){return e.parentNode.firstChild==e}function o(e){return e.parentNode.lastChild==e}function s(t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]}function l(t,n){var i,r;if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),r=n?b.create(n):b.createFragment(),t)for(;i=t.firstChild;)r.appendChild(i);return e.settings.forced_root_block||r.appendChild(b.create("br")),r.hasChildNodes()||tinymce.Env.ie&&!(tinymce.Env.ie>10)||(r.innerHTML='<br data-mce-bogus="1">'),r}function c(){return tinymce.grep(C.getSelectedBlocks(),function(e){return"LI"==e.nodeName})}function d(){return tinymce.grep(C.getSelectedBlocks(),s)}function u(e,t,n){var i,r,a=b.select('span[data-mce-type="bookmark"]',e);n=n||l(t),i=b.createRng(),i.setStartAfter(t),i.setEndAfter(e),r=i.extractContents(),b.isEmpty(r)||b.insertAfter(r,e),b.isEmpty(n)||b.insertAfter(n,e),b.isEmpty(t.parentNode)&&(tinymce.each(a,function(e){t.parentNode.parentNode.insertBefore(e,t.parentNode)}),b.remove(t.parentNode)),b.remove(t)}function m(e){var t,n;if(t=e.nextSibling,t&&r(t)&&t.nodeName==e.nodeName){for(;n=t.firstChild;)e.appendChild(n);b.remove(t)}if(t=e.previousSibling,t&&r(t)&&t.nodeName==e.nodeName){for(;n=t.firstChild;)e.insertBefore(n,e.firstChild);b.remove(t)}}function f(e){tinymce.each(tinymce.grep(b.select("ol,ul",e)),function(e){var t,n=e.parentNode;"LI"==n.nodeName&&n.firstChild==e&&(t=n.previousSibling,t&&"LI"==t.nodeName&&(t.appendChild(e),b.isEmpty(n)&&b.remove(n))),r(n)&&(t=n.previousSibling,t&&"LI"==t.nodeName&&t.appendChild(e))})}function p(){var e,t=n(C.getRng(!0));return tinymce.each(c(),function(t){var n,i;return n=t.previousSibling,n&&"UL"==n.nodeName?(n.appendChild(t),void 0):n&&"LI"==n.nodeName&&r(n.lastChild)?(n.lastChild.appendChild(t),void 0):(n=t.nextSibling,n&&"UL"==n.nodeName?(n.insertBefore(t,n.firstChild),void 0):(n&&"LI"==n.nodeName&&r(t.lastChild)||(n=t.previousSibling,n&&"LI"==n.nodeName&&(i=b.create(t.parentNode.nodeName),n.appendChild(i),i.appendChild(t)),e=!0),void 0))}),i(t),e}function h(){function e(e){b.isEmpty(e)&&b.remove(e)}var t,s=n(C.getRng(!0));return tinymce.each(c(),function(n){var i,s=n.parentNode,c=s.parentNode;if(a(n)&&o(n))if("LI"==c.nodeName)b.insertAfter(n,c),e(c);else{if(!r(c))return;b.remove(s,!0)}else if(a(n))if("LI"==c.nodeName)b.insertAfter(n,c),i=b.create("LI"),i.appendChild(s),b.insertAfter(i,n),e(c);else{if(!r(c))return;c.insertBefore(n,s)}else if(o(n))if("LI"==c.nodeName)b.insertAfter(n,c);else{if(!r(c))return;b.insertAfter(n,s)}else{if("LI"==c.nodeName)s=c,i=l(n,"LI");else{if(!r(c))return;i=l(n,"LI")}u(s,n,i),f(s.parentNode)}t=!0}),i(s),t}function g(t){function a(){function t(t){var n,i,r=e.getBody();for(n=o[t?"startContainer":"endContainer"],i=o[t?"startOffset":"endOffset"],1==n.nodeType&&(n=n.childNodes[Math.min(i,n.childNodes.length-1)]||n);n.parentNode!=r;){if(s(n))return n;if(/^(TD|TH)$/.test(n.parentNode.nodeName))return n;n=n.parentNode}return n}function n(e,t){var n,i=[];if(!s(e)){for(;e&&(n=e[t?"previousSibling":"nextSibling"],!b.isBlock(n)&&n);)e=n;for(;e;)i.push(e),e=e[t?"nextSibling":"previousSibling"]}return i}var i,r,a=t(!0),l=t();r=n(a,!0),a!=l&&(r=r.concat(n(l).reverse())),tinymce.each(r,function(e){if(!b.isBlock(e)||"BR"==e.nodeName){if(!i||"BR"==e.nodeName){if("BR"==e.nodeName&&(!e.nextSibling||b.isBlock(e.nextSibling)&&"BR"!=e.nextSibling.nodeName))return b.remove(e),!1;i=b.create("p"),c.push(i),e.parentNode.insertBefore(i,e)}return"BR"!=e.nodeName?i.appendChild(e):b.remove(e),e==l?!1:void 0}})}var o=C.getRng(!0),l=n(o),c=d();a(),tinymce.each(c,function(e){var n,i;i=e.previousSibling,i&&r(i)&&i.nodeName==t?(n=i,e=b.rename(e,"LI"),i.appendChild(e)):(n=b.create(t),e.parentNode.insertBefore(n,e),n.appendChild(e),e=b.rename(e,"LI")),m(n)}),i(l)}function v(){var e=n(C.getRng(!0));tinymce.each(c(),function(e){var t,n;for(t=e;t;t=t.parentNode)r(t)&&(n=t);u(n,e)}),i(e)}function y(e){var t=b.getParent(C.getStart(),"OL,UL");if(t)if(t.nodeName==e)v(e);else{var r=n(C.getRng(!0));m(b.rename(t,e)),i(r)}else g(e)}var b=e.dom,C=e.selection;t.backspaceDelete=function(e){function t(e,t){var n=e.startContainer,i=e.startOffset;if(3==n.nodeType&&(t?i<n.data.length:i>0))return n;for(var r=new tinymce.dom.TreeWalker(e.startContainer);n=r[t?"next":"prev"]();)if(3==n.nodeType&&n.data.length>0)return n}function a(e,t){var n,i,a=e.parentNode;for(r(t.lastChild)&&(i=t.lastChild),n=t.lastChild,n&&"BR"==n.nodeName&&e.hasChildNodes()&&b.remove(n);n=e.firstChild;)t.appendChild(n);i&&t.appendChild(i),b.remove(e),b.isEmpty(a)&&b.remove(a)}if(C.isCollapsed()){var o=b.getParent(C.getStart(),"LI");if(o){var s=C.getRng(!0),l=b.getParent(t(s,e),"LI");if(l&&l!=o){var c=n(s);return e?a(l,o):a(o,l),i(c),!0}if(!l&&!e&&v(o.parentNode.nodeName))return!0}}},e.addCommand("Indent",function(){return p()?void 0:!0}),e.addCommand("Outdent",function(){return h()?void 0:!0}),e.addCommand("InsertUnorderedList",function(){y("UL")}),e.addCommand("InsertOrderedList",function(){y("OL")})}),e.on("keydown",function(e){e.keyCode==tinymce.util.VK.BACKSPACE?t.backspaceDelete()&&e.preventDefault():e.keyCode==tinymce.util.VK.DELETE&&t.backspaceDelete(!0)&&e.preventDefault()})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/media/moxieplayer.swf b/framework/Web/Javascripts/source/tinymce-405/plugins/media/moxieplayer.swf
new file mode 100755
index 00000000..19c771be
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/media/moxieplayer.swf
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/media/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/media/plugin.min.js
new file mode 100755
index 00000000..ce8cd0ee
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/media/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("media",function(e,t){function n(e){return-1!=e.indexOf(".mp3")?"audio/mpeg":-1!=e.indexOf(".wav")?"audio/wav":-1!=e.indexOf(".mp4")?"video/mp4":-1!=e.indexOf(".webm")?"video/webm":-1!=e.indexOf(".ogg")?"video/ogg":-1!=e.indexOf(".swf")?"application/x-shockwave-flash":""}function i(){function t(e){var t,r,a,o;t=n.find("#width")[0],r=n.find("#height")[0],a=t.value(),o=r.value(),n.find("#constrain")[0].checked()&&i&&c&&a&&o&&(e.control==t?(o=Math.round(a/i*o),r.value(o)):(a=Math.round(o/c*a),t.value(a))),i=a,c=o}var n,i,c,l;l=s(e.selection.getNode()),i=l.width,c=l.height,n=e.windowManager.open({title:"Insert/edit video",data:l,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){this.fromJSON(o(this.next().find("#embed").value()))},items:[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source"},{name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"},{name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"},{type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:t},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:t},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}]},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(a(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:"},{type:"textbox",flex:1,name:"embed",value:r(),multiline:!0,label:"Source"}]}],onSubmit:function(){e.insertContent(a(this.toJSON()))}})}function r(){var t=e.selection.getNode();return t.getAttribute("data-mce-object")?e.selection.getContent():void 0}function a(i){var r="";return i.source1||(tinymce.extend(i,o(i.embed)),i.source1)?(i.source1=e.convertURL(i.source1,"source"),i.source2=e.convertURL(i.source2,"source"),i.source1mime=n(i.source1),i.source2mime=n(i.source2),i.poster=e.convertURL(i.poster,"poster"),i.flashPlayerUrl=e.convertURL(t+"/moxieplayer.swf","movie"),i.embed?r=c(i.embed,i,!0):(tinymce.each(l,function(e){var t,n,r;if(t=e.regex.exec(i.source1)){for(r=e.url,n=0;t[n];n++)r=r.replace("$"+n,function(){return t[n]});i.source1=r,i.type=e.type,i.width=e.w,i.height=e.h}}),i.width=i.width||300,i.height=i.height||150,tinymce.each(i,function(t,n){i[n]=e.dom.encode(t)}),"iframe"==i.type?r+='<iframe src="'+i.source1+'" width="'+i.width+'" height="'+i.height+'"></iframe>':"application/x-shockwave-flash"==i.source1mime?(r+='<object data="'+i.source1+'" width="'+i.width+'" height="'+i.height+'" type="application/x-shockwave-flash">',i.poster&&(r+='<img src="'+i.poster+'" width="'+i.width+'" height="'+i.height+'" />'),r+="</object>"):-1!=i.source1mime.indexOf("audio")?e.settings.audio_template_callback?r=e.settings.audio_template_callback(i):r+='<audio controls="controls" src="'+i.source1+'">'+(i.source2?'\n<source src="'+i.source2+'"'+(i.source2mime?' type="'+i.source2mime+'"':"")+" />\n":"")+"</audio>":r=e.settings.video_template_callback?e.settings.video_template_callback(i):'<video width="'+i.width+'" height="'+i.height+'"'+(i.poster?' poster="'+i.poster+'"':"")+' controls="controls">\n'+'<source src="'+i.source1+'"'+(i.source1mime?' type="'+i.source1mime+'"':"")+" />\n"+(i.source2?'<source src="'+i.source2+'"'+(i.source2mime?' type="'+i.source2mime+'"':"")+" />\n":"")+"</video>"),r):""}function o(e){var t={};return new tinymce.html.SaxParser({validate:!1,special:"script,noscript",start:function(e,n){t.source1||"param"!=e||(t.source1=n.map.movie),("iframe"==e||"object"==e||"embed"==e||"video"==e||"audio"==e)&&(t=tinymce.extend(n.map,t)),"source"==e&&(t.source1?t.source2||(t.source2=n.map.src):t.source1=n.map.src),"img"!=e||t.poster||(t.poster=n.map.src)}}).parse(e),t.source1=t.source1||t.src||t.data,t.source2=t.source2||"",t.poster=t.poster||"",t}function s(t){return t.getAttribute("data-mce-object")?o(e.serializer.serialize(t,{selection:!0})):{}}function c(e,t,n){function i(e,t){var n,i,r,a;for(n in t)if(r=""+t[n],e.map[n])for(i=e.length;i--;)a=e[i],a.name==n&&(r?(e.map[n]=r,a.value=r):(delete e.map[n],e.splice(i,1)));else r&&(e.push({name:n,value:r}),e.map[n]=r)}var r,a=new tinymce.html.Writer,o=0;return new tinymce.html.SaxParser({validate:!1,special:"script,noscript",comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(e,s,c){switch(e){case"video":case"object":case"img":case"iframe":i(s,{width:t.width,height:t.height})}if(n)switch(e){case"video":i(s,{poster:t.poster,src:""}),t.source2&&i(s,{src:""});break;case"iframe":i(s,{src:t.source1});break;case"source":if(o++,2>=o&&(i(s,{src:t["source"+o],type:t["source"+o+"mime"]}),!t["source"+o]))return;break;case"img":if(!t.poster)return;r=!0}a.start(e,s,c)},end:function(e){if("video"==e&&n)for(var s=1;2>=s;s++)if(t["source"+s]){var c=[];c.map={},s>o&&(i(c,{src:t["source"+s],type:t["source"+s+"mime"]}),a.start("source",c,!0))}if(t.poster&&"object"==e&&n&&!r){var l=[];l.map={},i(l,{src:t.poster,width:t.width,height:t.height}),a.start("img",l,!0)}a.end(e)}},new tinymce.html.Schema({})).parse(e),a.getContent()}var l=[{regex:/youtu\.be\/([a-z1-9.-_]+)/,type:"iframe",w:425,h:350,url:"http://www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"http://www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"http://player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'http://maps.google.com/maps/ms?msid=$2&output=embed"'}];e.on("ResolveName",function(e){var t;1==e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.schema.addValidElements("object[id|style|width|height|classid|codebase|*],embed[id|style|width|height|type|src|*],video[*],audio[*]");var n=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){n[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed",function(t,n){for(var i,r,a,o,s,c,l,d=t.length;d--;){for(r=t[d],a=new tinymce.html.Node("img",1),a.shortEnded=!0,c=r.attributes,i=c.length;i--;)o=c[i].name,s=c[i].value,"width"!==o&&"height"!==o&&"style"!==o&&(("data"==o||"src"==o)&&(s=e.convertURL(s,o)),a.attr("data-mce-p-"+o,s));l=r.firstChild&&r.firstChild.value,l&&(a.attr("data-mce-html",escape(l)),a.firstChild=null),a.attr({width:r.attr("width")||"300",height:r.attr("height")||("audio"==n?"30":"150"),style:r.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":n,"class":"mce-object mce-object-"+n}),r.replace(a)}}),e.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var n,i,r,a,o,s,c=e.length;c--;){for(n=e[c],i=new tinymce.html.Node(n.attr(t),1),"audio"!=n.attr(t)&&i.attr({width:n.attr("width"),height:n.attr("height")}),i.attr({style:n.attr("style")}),a=n.attributes,r=a.length;r--;){var l=a[r].name;0===l.indexOf("data-mce-p-")&&i.attr(l.substr(11),a[r].value)}o=n.attr("data-mce-html"),o&&(s=new tinymce.html.Node("#text",3),s.raw=!0,s.value=unescape(o),i.append(s)),n.replace(i)}})}),e.on("ObjectSelected",function(e){"audio"==e.target.getAttribute("data-mce-object")&&e.preventDefault()}),e.on("objectResized",function(e){var t,n=e.target;n.getAttribute("data-mce-object")&&(t=n.getAttribute("data-mce-html"),t&&(t=unescape(t),n.setAttribute("data-mce-html",escape(c(t,{width:e.width,height:e.height})))))}),e.addButton("media",{tooltip:"Insert/edit video",onclick:i,stateSelector:"img[data-mce-object=video]"}),e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:i,context:"insert",prependToContext:!0})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/nonbreaking/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/nonbreaking/plugin.min.js
new file mode 100755
index 00000000..866339c7
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/nonbreaking/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("nonbreaking",function(e){var t=e.getParam("nonbreaking_force_tab");if(e.addCommand("mceNonBreaking",function(){e.insertContent(e.plugins.visualchars&&e.plugins.visualchars.state?'<span data-mce-bogus="1" class="mce-nbsp">&nbsp;</span>':"&nbsp;")}),e.addButton("nonbreaking",{title:"Insert nonbreaking space",cmd:"mceNonBreaking"}),e.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),t){var n=+t>1?+t:3;e.on("keydown",function(t){if(9==t.keyCode){if(t.shiftKey)return;t.preventDefault();for(var i=0;n>i;i++)e.execCommand("mceNonBreaking")}})}}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/noneditable/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/noneditable/plugin.min.js
new file mode 100755
index 00000000..dd15d59e
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/noneditable/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("noneditable",function(e){function t(){function t(e){var t;if(1===e.nodeType){if(t=e.getAttribute(s),t&&"inherit"!==t)return t;if(t=e.contentEditable,"inherit"!==t)return t}return null}function n(e){for(var n;e;){if(n=t(e))return"false"===n?e:null;e=e.parentNode}}function i(e){for(;e;){if(e.id===g)return e;e=e.parentNode}}function o(e){var t;if(e)for(t=new r(e,e),e=t.current();e;e=t.next())if(3===e.nodeType)return e}function a(n,i){var o,a;return"false"===t(n)&&m.isBlock(n)?(f.select(n),void 0):(a=m.createRng(),"true"===t(n)&&(n.firstChild||n.appendChild(e.getDoc().createTextNode(" ")),n=n.firstChild,i=!0),o=m.create("span",{id:g,"data-mce-bogus":!0},p),i?n.parentNode.insertBefore(o,n):m.insertAfter(o,n),a.setStart(o.firstChild,1),a.collapse(!0),f.setRng(a),o)}function l(e){var t,n,a,r;if(e)t=f.getRng(!0),t.setStartBefore(e),t.setEndBefore(e),n=o(e),n&&n.nodeValue.charAt(0)==p&&(n=n.deleteData(0,1)),m.remove(e,!0),f.setRng(t);else for(a=i(f.getStart());(e=m.get(g))&&e!==r;)a!==e&&(n=o(e),n&&n.nodeValue.charAt(0)==p&&(n=n.deleteData(0,1)),m.remove(e,!0)),r=e}function d(){function e(e,n){var i,o,a,l,s;if(i=c.startContainer,o=c.startOffset,3==i.nodeType){if(s=i.nodeValue.length,o>0&&s>o||(n?o==s:0===o))return}else{if(!(o<i.childNodes.length))return n?null:e;var d=!n&&o>0?o-1:o;i=i.childNodes[d],i.hasChildNodes()&&(i=i.firstChild)}for(a=new r(i,e);l=a[n?"prev":"next"]();){if(3===l.nodeType&&l.nodeValue.length>0)return;if("true"===t(l))return l}return e}var i,o,s,c,d;l(),s=f.isCollapsed(),i=n(f.getStart()),o=n(f.getEnd()),(i||o)&&(c=f.getRng(!0),s?(i=i||o,(d=e(i,!0))?a(d,!0):(d=e(i,!1))?a(d,!1):f.select(i)):(c=f.getRng(!0),i&&c.setStartBefore(i),o&&c.setEndAfter(o),f.setRng(c)))}function u(o){function a(e,t){for(;e=e[t?"previousSibling":"nextSibling"];)if(3!==e.nodeType||e.nodeValue.length>0)return e}function s(e,t){f.select(e),f.collapse(t)}function u(o){function a(e){for(var t=s;t;){if(t===e)return;t=t.parentNode}m.remove(e),d()}function r(){var i,r,l=e.schema.getNonEmptyElements();for(r=new tinymce.dom.TreeWalker(s,e.getBody());(i=o?r.prev():r.next())&&!l[i.nodeName.toLowerCase()]&&!(3===i.nodeType&&tinymce.trim(i.nodeValue).length>0);)if("false"===t(i))return a(i),!0;return n(i)?!0:!1}var l,s,c,u;if(f.isCollapsed()){if(l=f.getRng(!0),s=l.startContainer,c=l.startOffset,s=i(s)||s,u=n(s))return a(u),!1;if(3==s.nodeType&&(o?c>0:c<s.nodeValue.length))return!0;if(1==s.nodeType&&(s=s.childNodes[c]||s),r())return!1}return!0}var g,p,h,y,v=o.keyCode;if(h=f.getStart(),y=f.getEnd(),g=n(h)||n(y),g&&(112>v||v>124)&&v!=c.DELETE&&v!=c.BACKSPACE){if((tinymce.isMac?o.metaKey:o.ctrlKey)&&(67==v||88==v||86==v))return;if(o.preventDefault(),v==c.LEFT||v==c.RIGHT){var b=v==c.LEFT;if(e.dom.isBlock(g)){var x=b?g.previousSibling:g.nextSibling,w=new r(x,x),C=b?w.prev():w.next();s(C,!b)}else s(g,b)}}else if(v==c.LEFT||v==c.RIGHT||v==c.BACKSPACE||v==c.DELETE){if(p=i(h)){if(v==c.LEFT||v==c.BACKSPACE)if(g=a(p,!0),g&&"false"===t(g)){if(o.preventDefault(),v!=c.LEFT)return m.remove(g),void 0;s(g,!0)}else l(p);if(v==c.RIGHT||v==c.DELETE)if(g=a(p),g&&"false"===t(g)){if(o.preventDefault(),v!=c.RIGHT)return m.remove(g),void 0;s(g,!1)}else l(p)}if((v==c.BACKSPACE||v==c.DELETE)&&!u(v==c.BACKSPACE))return o.preventDefault(),!1}}var m=e.dom,f=e.selection,g="mce_noneditablecaret",p="";e.on("mousedown",function(n){var i=e.selection.getNode();"false"===t(i)&&i==n.target&&d()}),e.on("mouseup keyup",d),e.on("keydown",u)}function n(t){var n=a.length,i=t.content,r=tinymce.trim(o);if("raw"!=t.format){for(;n--;)i=i.replace(a[n],function(t){var n=arguments,o=n[n.length-2];return o>0&&'"'==i.charAt(o-1)?t:'<span class="'+r+'" data-mce-content="'+e.dom.encode(n[0])+'">'+e.dom.encode("string"==typeof n[1]?n[1]:n[0])+"</span>"});t.content=i}}var i,o,a,r=tinymce.dom.TreeWalker,l="contenteditable",s="data-mce-"+l,c=tinymce.util.VK;i=" "+tinymce.trim(e.getParam("noneditable_editable_class","mceEditable"))+" ",o=" "+tinymce.trim(e.getParam("noneditable_noneditable_class","mceNonEditable"))+" ",a=e.getParam("noneditable_regexp"),a&&!a.length&&(a=[a]),e.on("PreInit",function(){t(),a&&e.on("BeforeSetContent",n),e.parser.addAttributeFilter("class",function(e){for(var t,n,a=e.length;a--;)n=e[a],t=" "+n.attr("class")+" ",-1!==t.indexOf(i)?n.attr(s,"true"):-1!==t.indexOf(o)&&n.attr(s,"false")}),e.serializer.addAttributeFilter(s,function(e){for(var t,n=e.length;n--;)t=e[n],a&&t.attr("data-mce-content")?(t.name="#text",t.type=3,t.raw=!0,t.value=t.attr("data-mce-content")):(t.attr(l,null),t.attr(s,null))}),e.parser.addAttributeFilter(l,function(e){for(var t,n=e.length;n--;)t=e[n],t.attr(s,t.attr(l)),t.attr(l,null)})})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/pagebreak/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/pagebreak/plugin.min.js
new file mode 100755
index 00000000..8f535fa1
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/pagebreak/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("pagebreak",function(e){var t,n="mce-pagebreak",i=e.getParam("pagebreak_separator","<!-- pagebreak -->"),a='<img src="'+tinymce.Env.transparentSrc+'" class="'+n+'" data-mce-resize="false" />';t=new RegExp(i.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"gi"),e.addCommand("mcePageBreak",function(){e.execCommand("mceInsertContent",0,a)}),e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"}),e.on("ResolveName",function(t){"IMG"==t.target.nodeName&&e.dom.hasClass(t.target,n)&&(t.name="pagebreak")}),e.on("click",function(t){t=t.target,"IMG"===t.nodeName&&e.dom.hasClass(t,n)&&e.selection.select(t)}),e.on("BeforeSetContent",function(e){e.content=e.content.replace(t,a)}),e.on("PreInit",function(){e.serializer.addNodeFilter("img",function(e){for(var t,n,a=e.length;a--;)t=e[a],n=t.attr("class"),n&&-1!==n.indexOf("mce-pagebreak")&&(t.type=3,t.value=i,t.raw=!0)})})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/paste/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/paste/plugin.min.js
new file mode 100755
index 00000000..68851b2e
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/paste/plugin.min.js
@@ -0,0 +1 @@
+!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/pasteplugin/Clipboard",c="tinymce/Env",u="tinymce/util/Tools",d="tinymce/util/VK",f="tinymce/pasteplugin/WordFilter",p="tinymce/html/DomParser",m="tinymce/html/Schema",h="tinymce/html/Serializer",g="tinymce/html/Node",v="tinymce/pasteplugin/Quirks",y="tinymce/pasteplugin/Plugin",b="tinymce/PluginManager";r(l,[c,u,d],function(e,t,n){function r(){return!e.gecko&&("ClipboardEvent"in window||e.webkit&&"FocusEvent"in window)}return function(i){function o(){return(new Date).getTime()}function a(e){return n.metaKeyPressed(e)&&86==e.keyCode||e.shiftKey&&45==e.keyCode}function s(e){return e.innerText||e.textContent}function l(){return o()-h<100||"text"==m.pasteFormat}function c(e,n){return t.each(n,function(t){e=t.constructor==RegExp?e.replace(t,""):e.replace(t[0],t[1])}),e}function u(t){var n=i.fire("PastePreProcess",{content:t});t=n.content,i.settings.paste_data_images||(t=t.replace(/<img src=\"data:image[^>]+>/g,"")),(i.settings.paste_remove_styles||i.settings.paste_remove_styles_if_webkit!==!1&&e.webkit)&&(t=t.replace(/ style=\"[^\"]+\"/g,"")),n.isDefaultPrevented()||i.insertContent(t)}function d(e){e=i.dom.encode(e).replace(/\r\n/g,"\n");var t=i.dom.getParent(i.selection.getStart(),i.dom.isBlock);e=t&&/^(PRE|DIV)$/.test(t.nodeName)||!i.settings.forced_root_block?c(e,[[/\n/g,"<br>"]]):c(e,[[/\n\n/g,"</p><p>"],[/^(.*<\/p>)(<p>)$/,"<p>$1"],[/\n/g,"<br />"]]);var n=i.fire("PastePreProcess",{content:e});n.isDefaultPrevented()||i.insertContent(n.content)}function f(){var e=i.dom.getViewPort().y,t=i.dom.add(i.getBody(),"div",{contentEditable:!1,"data-mce-bogus":"1",style:"position: absolute; top: "+e+"px; left: 0; width: 1px; height: 1px; overflow: hidden"},'<div contentEditable="true" data-mce-bogus="1">X</div>');return i.dom.bind(t,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),t}function p(e){i.dom.unbind(e),i.dom.remove(e)}var m=this,h;if(i.on("keydown",function(e){n.metaKeyPressed(e)&&e.shiftKey&&86==e.keyCode&&(h=o())}),r())i.on("paste",function(e){function t(e,t){for(var r=0;r<n.types.length;r++)if(n.types[r]==e)return t(n.getData(e)),!0}var n=e.clipboardData;n&&(e.preventDefault(),l()?t("text/plain",d)||t("text/html",u):t("text/html",u)||t("text/plain",d))});else{if(e.ie){var g=0;i.on("keydown",function(e){if(a(e)&&!e.isDefaultPrevented()){e.stopImmediatePropagation();var t=f();g=o(),i.dom.bind(t,"paste",function(){setTimeout(function(){i.selection.setRng(n),p(t),l()?d(s(t.firstChild)):u(t.firstChild.innerHTML)},0)});var n=i.selection.getRng();t.firstChild.focus(),t.firstChild.innerText=""}}),i.on("init",function(){var e=i.dom;i.dom.bind(i.getBody(),"paste",function(t){if(o()-g>100){var n,r=f();t.preventDefault(),e.bind(r,"paste",function(e){e.stopPropagation(),n=!0});var a=i.selection.getRng(),c=e.doc.body.createTextRange();if(c.moveToElementText(r.firstChild),c.execCommand("Paste"),p(r),!n)return i.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."),void 0;i.selection.setRng(a),l()?d(s(r.firstChild)):u(r.firstChild.innerHTML)}})})}else i.on("init",function(){i.dom.bind(i.getBody(),"paste",function(e){e.preventDefault(),i.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")})}),i.on("keydown",function(e){if(a(e)&&!e.isDefaultPrevented()){e.stopImmediatePropagation();var t=f(),n=i.selection.getRng();i.selection.select(t,!0),i.dom.bind(t,"paste",function(e){e.stopPropagation(),setTimeout(function(){p(t),i.lastRng=n,i.selection.setRng(n);var e=t.firstChild;e.lastChild&&"BR"==e.lastChild.nodeName&&e.removeChild(e.lastChild),l()?d(s(e)):u(e.innerHTML)},0)})}});i.settings.paste_data_images||i.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()})}i.paste_block_drop&&i.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),this.paste=u,this.pasteText=d}}),r(f,[u,p,m,h,g],function(e,t,n,r,i){return function(o){var a=e.each;o.on("PastePreProcess",function(s){function l(e){a(e,function(e){d=e.constructor==RegExp?d.replace(e,""):d.replace(e[0],e[1])})}function c(e){function t(e,t,a,s){var l=e._listLevel||o;l!=o&&(o>l?n&&(n=n.parent.parent):(r=n,n=null)),n&&n.name==a?n.append(e):(r=r||n,n=new i(a,1),s>1&&n.attr("start",""+s),e.wrap(n)),e.name="li",t.value="";var c=t.next;c&&3==c.type&&(c.value=c.value.replace(/^\u00a0+/,"")),l>o&&r&&r.lastChild.append(n),o=l}for(var n,r,o=1,a=e.getAll("p"),s=0;s<a.length;s++)if(e=a[s],"p"==e.name&&e.firstChild){for(var l="",c=e.firstChild;c&&!(l=c.value);)c=c.firstChild;if(/^\s*[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*$/.test(l)){t(e,c,"ul");continue}if(/^\s*\w+\./.test(l)){var u=/([0-9])\./.exec(l),d=1;u&&(d=parseInt(u[1],10)),t(e,c,"ol",d);continue}n=null}}function u(t,n){if("p"===t.name){var r=/mso-list:\w+ \w+([0-9]+)/.exec(n);r&&(t._listLevel=parseInt(r[1],10))}if(o.getParam("paste_retain_style_properties","none")){var i="";if(e.each(o.dom.parseStyle(n),function(e,t){switch(t){case"horiz-align":return t="text-align",void 0;case"vert-align":return t="vertical-align",void 0;case"font-color":case"mso-foreground":return t="color",void 0;case"mso-background":case"mso-highlight":t="background"}("all"==f||p&&p[t])&&(i+=t+":"+e+";")}),i)return i}return null}var d=s.content,f,p;if(f=o.settings.paste_retain_style_properties,f&&(p=e.makeMap(f)),o.settings.paste_enable_default_filters!==!1&&/class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(s.content)){s.wordContent=!0,l([/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var m=new n({valid_elements:"@[style],-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-table,-tr,-td[colspan|rowspan],-th,-thead,-tfoot,-tbody,-a[!href],sub,sup,strike"}),h=new t({},m);h.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",u(n,n.attr("style"))),"span"!=n.name||n.attributes.length||n.unwrap()});var g=h.parse(d);c(g),s.content=new r({},m).serialize(g)}})}}),r(v,[c,u],function(e,t){return function(n){function r(e){n.on("PastePreProcess",function(t){t.content=e(t.content)})}function i(e,n){return t.each(n,function(t){e=t.constructor==RegExp?e.replace(t,""):e.replace(t[0],t[1])}),e}function o(e){return e=i(e,[/^[\s\S]*<!--StartFragment-->|<!--EndFragment-->[\s\S]*$/g,[/<span class="Apple-converted-space">\u00a0<\/span>/g,"\xa0"],/<br>$/])}function a(e){if(!s){var r=[];t.each(n.schema.getBlockElements(),function(e,t){r.push(t)}),s=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+r.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g")}return e=i(e,[[s,"$1"]]),e=i(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}var s;e.webkit&&r(o),e.ie&&r(a)}}),r(y,[b,l,f,v],function(e,t,n,r){var i;e.add("paste",function(e){function o(){"text"==s.pasteFormat?(this.active(!1),s.pasteFormat="html"):(s.pasteFormat="text",this.active(!0),i||(e.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),i=!0))}var a=this,s;a.clipboard=s=new t(e),a.quirks=new r(e),a.wordFilter=new n(e),e.settings.paste_as_text&&(a.clipboard.pasteFormat="text"),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&a.clipboard.paste(t.content),t.text&&a.clipboard.pasteText(t.text)}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:o,active:"text"==a.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:o})})}),a([l,f,v,y])}(this); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/preview/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/preview/plugin.min.js
new file mode 100755
index 00000000..b8430c64
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/preview/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("preview",function(e){var t=e.settings;e.addCommand("mcePreview",function(){e.windowManager.open({title:"Preview",width:parseInt(e.getParam("plugin_preview_width","650"),10),height:parseInt(e.getParam("plugin_preview_height","500"),10),html:'<iframe src="javascript:\'\'" frameborder="0"></iframe>',buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var n,i=this.getEl("body").firstChild.contentWindow.document,a="";tinymce.each(e.contentCSS,function(t){a+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'});var r=t.body_id||"tinymce";-1!=r.indexOf("=")&&(r=e.getParam("body_id","","hash"),r=r[e.id]||r);var o=t.body_class||"";-1!=o.indexOf("=")&&(o=e.getParam("body_class","","hash"),o=o[e.id]||""),n="<!DOCTYPE html><html><head>"+a+"</head>"+'<body id="'+r+'" class="mce-content-body '+o+'">'+e.getContent()+"</body>"+"</html>",i.open(),i.write(n),i.close()}})}),e.addButton("preview",{title:"Preview",cmd:"mcePreview"}),e.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/print/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/print/plugin.min.js
new file mode 100755
index 00000000..abc37b5f
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/print/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("print",function(t){t.addCommand("mcePrint",function(){t.getWin().print()}),t.addButton("print",{title:"Print",cmd:"mcePrint"}),t.addShortcut("Ctrl+P","","mcePrint"),t.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/save/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/save/plugin.min.js
new file mode 100755
index 00000000..bd50cec4
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/save/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("save",function(e){function t(){var t,n;return t=tinymce.DOM.getParent(e.id,"form"),!e.getParam("save_enablewhendirty",!0)||e.isDirty()?(tinymce.triggerSave(),(n=e.getParam("save_onsavecallback"))?(e.execCallback("save_onsavecallback",e)&&(e.startContent=tinymce.trim(e.getContent({format:"raw"})),e.nodeChanged()),void 0):(t?(e.isNotDirty=!0,(!t.onsubmit||t.onsubmit())&&("function"==typeof t.submit?t.submit():e.windowManager.alert("Error: Form submit field collision.")),e.nodeChanged()):e.windowManager.alert("Error: No form element found."),void 0)):void 0}function n(){var t,n=tinymce.trim(e.startContent);return(t=e.getParam("save_oncancelcallback"))?(e.execCallback("save_oncancelcallback",e),void 0):(e.setContent(n),e.undoManager.clear(),e.nodeChanged(),void 0)}function i(){var t=this;e.on("nodeChange",function(){t.disabled(e.getParam("save_enablewhendirty",!0)&&!e.isDirty())})}e.addCommand("mceSave",t),e.addCommand("mceCancel",n),e.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:i}),e.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:i}),e.addShortcut("ctrl+s","","mceSave")}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/searchreplace/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/searchreplace/plugin.min.js
new file mode 100755
index 00000000..b9c4fccf
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/searchreplace/plugin.min.js
@@ -0,0 +1 @@
+!function(){function e(e,t,n,i,a){function r(e,t){if(t=t||0,!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var n=e.index;if(t>0){var i=e[t];if(!i)throw"Invalid capture group";n+=e[0].indexOf(i),e[0]=i}return[n,n+e[0].length,[e[0]]]}function o(e){var t;if(3===e.nodeType)return e.data;if(f[e.nodeName])return"";if(t="",(m[e.nodeName]||h[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=o(e);while(e=e.nextSibling);return t}function c(e,t,n){var i,a,r,o,c=[],s=0,d=e,l=t.shift(),u=0;e:for(;;){if((m[d.nodeName]||h[d.nodeName])&&s++,3===d.nodeType&&(!a&&d.length+s>=l[1]?(a=d,o=l[1]-s):i&&c.push(d),!i&&d.length+s>l[0]&&(i=d,r=l[0]-s),s+=d.length),i&&a){if(d=n({startNode:i,startNodeIndex:r,endNode:a,endNodeIndex:o,innerNodes:c,match:l[2],matchIndex:u}),s-=a.length-o,i=null,a=null,c=[],l=t.shift(),u++,!l)break}else{if(!f[d.nodeName]&&d.firstChild){d=d.firstChild;continue}if(d.nextSibling){d=d.nextSibling;continue}}for(;;){if(d.nextSibling){d=d.nextSibling;break}if(d.parentNode===e)break e;d=d.parentNode}}}function s(e){var t;if("function"!=typeof e){var n=e.nodeType?e:u.createElement(e);t=function(e,t){var i=n.cloneNode(!1);return i.setAttribute("data-mce-index",t),e&&i.appendChild(u.createTextNode(e)),i}}else t=e;return function(e){var n,i,a,r=e.startNode,o=e.endNode,c=e.matchIndex;if(r===o){var s=r;a=s.parentNode,e.startNodeIndex>0&&(n=u.createTextNode(s.data.substring(0,e.startNodeIndex)),a.insertBefore(n,s));var d=t(e.match[0],c);return a.insertBefore(d,s),e.endNodeIndex<s.length&&(i=u.createTextNode(s.data.substring(e.endNodeIndex)),a.insertBefore(i,s)),s.parentNode.removeChild(s),d}n=u.createTextNode(r.data.substring(0,e.startNodeIndex)),i=u.createTextNode(o.data.substring(e.endNodeIndex));for(var l=t(r.data.substring(e.startNodeIndex),c),m=[],f=0,h=e.innerNodes.length;h>f;++f){var p=e.innerNodes[f],g=t(p.data,c);p.parentNode.replaceChild(g,p),m.push(g)}var v=t(o.data.substring(0,e.endNodeIndex),c);return a=r.parentNode,a.insertBefore(n,r),a.insertBefore(l,r),a.removeChild(r),a=o.parentNode,a.insertBefore(v,o),a.insertBefore(i,o),a.removeChild(o),v}}var d,l,u,m,f,h,p=[],g=0;if(u=t.ownerDocument,m=a.getBlockElements(),f=a.getWhiteSpaceElements(),h=a.getShortEndedElements(),l=o(t)){if(e.global)for(;d=e.exec(l);)p.push(r(d,i));else d=l.match(e),p.push(r(d,i));return p.length&&(g=p.length,c(t,p,s(n))),g}}function t(t){function n(){var e=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){t.focus(),o=!1,c.unmarkAllMatches()},buttons:[{text:"Find",onclick:function(){e.find("form")[0].submit()}},{text:"Replace",disabled:!0,onclick:function(){c.replace(e.find("#replace").value())||e.statusbar.items().slice(1).disabled(!0)}},{text:"Replace all",disabled:!0,onclick:function(){c.replaceAll(e.find("#replace").value()),e.statusbar.items().slice(1).disabled(!0)}},{type:"spacer",flex:1},{text:"Prev",disabled:!0,onclick:function(){c.prev()}},{text:"Next",disabled:!0,onclick:function(){c.next()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,onsubmit:function(t){var n,i,a,r,o;return t.preventDefault(),a=e.find("#case").checked(),o=e.find("#words").checked(),r=e.find("#find").value(),r.length?(r=r.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),r=o?"\\b"+r+"\\b":r,i=new RegExp(r,a?"g":"gi"),n=c.markAllMatches(i),n?c.first():tinymce.ui.MessageBox.alert("Could not find the specified string."),e.statusbar.items().slice(1).disabled(0===n),void 0):(c.unmarkAllMatches(),e.statusbar.items().slice(1).disabled(!0),void 0)},items:[{type:"textbox",name:"find",size:40,label:"Find",value:t.selection.getNode().src},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow();o=!0}function i(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function a(e,n){function i(){var i,o;for(i=n?t.getBody()[e?"firstChild":"lastChild"]:c[e?"endContainer":"startContainer"],o=new tinymce.dom.TreeWalker(i,t.getBody());i=o.current();){if(1==i.nodeType&&"SPAN"==i.nodeName&&null!==i.getAttribute("data-mce-index"))for(s=i.getAttribute("data-mce-index"),a=i.firstChild;i=o.current();){if(1==i.nodeType&&"SPAN"==i.nodeName&&null!==i.getAttribute("data-mce-index")){if(i.getAttribute("data-mce-index")!==s)return;r=i.firstChild}o[e?"next":"prev"]()}o[e?"next":"prev"]()}}var a,r,o=t.selection,c=o.getRng(!0),s=-1;return e=e!==!1,i(),a&&r&&(t.focus(),e?(c.setStart(a,0),c.setEnd(r,r.length)):(c.setStart(r,0),c.setEnd(a,a.length)),o.scrollIntoView(a.parentNode),o.setRng(c)),s}function r(e){e.parentNode.removeChild(e)}var o,c=this,s=-1;c.init=function(e){e.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Ctrl+F",onclick:n,separator:"before",context:"edit"}),e.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Ctrl+F",onclick:n}),e.addCommand("SearchReplace",n),e.shortcuts.add("Ctrl+F","",n)},c.markAllMatches=function(n){var i,a;return a=t.dom.create("span",{"class":"mce-match-marker","data-mce-bogus":1}),i=t.getBody(),c.unmarkAllMatches(i),e(n,i,a,!1,t.schema)},c.first=function(){return s=a(!0,!0),-1!==s},c.next=function(){return s=a(!0),-1!==s},c.prev=function(){return s=a(!1),-1!==s},c.replace=function(e,n,o){var c,d,l,u,m,f;if(-1===s&&(s=a(n)),f=a(n),l=t.getBody(),d=tinymce.toArray(l.getElementsByTagName("span")),d.length)for(c=0;c<d.length;c++){var h=d[c].getAttribute("data-mce-index");if(null!==h&&h.length&&(u=m=d[c].getAttribute("data-mce-index"),o||u===s))for(e.length?(d[c].firstChild.nodeValue=e,i(d[c])):r(d[c]);d[++c];)if(u=d[c].getAttribute("data-mce-index"),null!==h&&h.length){if(u!==m){c--;break}r(d[c])}}return-1==f&&(f=a(n,!0)),s=f,o&&t.selection.setCursorLocation(t.getBody(),0),t.undoManager.add(),-1!==s},c.replaceAll=function(e){c.replace(e,!0,!0)},c.unmarkAllMatches=function(){var e,n,a;for(a=t.getBody(),n=a.getElementsByTagName("span"),e=n.length;e--;)a=n[e],a.getAttribute("data-mce-index")&&i(a)},t.on("beforeaddundo keydown",function(e){return o?(e.preventDefault(),!1):void 0})}tinymce.PluginManager.add("searchreplace",t)}(); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/spellchecker/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/spellchecker/plugin.min.js
new file mode 100755
index 00000000..9cbf0315
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/spellchecker/plugin.min.js
@@ -0,0 +1 @@
+!function(e,t){"use strict";function n(e,t){for(var n,r=[],o=0;o<e.length;++o){if(n=s[e[o]]||i(e[o]),!n)throw"module definition dependecy not found: "+e[o];r.push(n)}t.apply(null,r)}function r(e,r,o){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(o===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=o.apply(null,arguments)})}function o(e){return!!s[e]}function i(t){for(var n=e,r=t.split(/[.\/]/),o=0;o<r.length;++o){if(!n[r[o]])return;n=n[r[o]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var o=e,i=n[r],a=i.split(/[.\/]/),l=0;l<a.length-1;++l)o[a[l]]===t&&(o[a[l]]={}),o=o[a[l]];o[a[a.length-1]]=s[i]}}var s={},l="tinymce/spellcheckerplugin/DomTextMatcher",c="tinymce/spellcheckerplugin/Plugin",d="tinymce/PluginManager",u="tinymce/util/Tools",f="tinymce/ui/Menu",p="tinymce/dom/DOMUtils",m="tinymce/util/JSONRequest",h="tinymce/util/URI";r(l,[],function(){return function(e,t,n){function r(e){if(!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var t=e.index;return[t,t+e[0].length,[e[0]]]}function o(e){var t;if(3===e.nodeType)return e.data;if(g[e.nodeName])return"";if(t="",(h[e.nodeName]||v[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=o(e);while(e=e.nextSibling);return t}function i(e,t,n){var r,o,i,a,s=[],l=0,c=e,d=t.shift(),u=0;e:for(;;){if((h[c.nodeName]||v[c.nodeName])&&l++,3===c.nodeType&&(!o&&c.length+l>=d[1]?(o=c,a=d[1]-l):r&&s.push(c),!r&&c.length+l>d[0]&&(r=c,i=d[0]-l),l+=c.length),r&&o){if(c=n({startNode:r,startNodeIndex:i,endNode:o,endNodeIndex:a,innerNodes:s,match:d[2],matchIndex:u}),l-=o.length-a,r=null,o=null,s=[],d=t.shift(),u++,!d)break}else{if(!g[c.nodeName]&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function a(e){var t;if("function"!=typeof e){var n=e.nodeType?e:m.createElement(e);t=function(e,t){var r=n.cloneNode(!1);return r.setAttribute("data-mce-index",t),e&&r.appendChild(m.createTextNode(e)),r}}else t=e;return function r(e){var n,r,o,i=e.startNode,a=e.endNode,s=e.matchIndex;if(i===a){var l=i;o=l.parentNode,e.startNodeIndex>0&&(n=m.createTextNode(l.data.substring(0,e.startNodeIndex)),o.insertBefore(n,l));var c=t(e.match[0],s);return o.insertBefore(c,l),e.endNodeIndex<l.length&&(r=m.createTextNode(l.data.substring(e.endNodeIndex)),o.insertBefore(r,l)),l.parentNode.removeChild(l),c}n=m.createTextNode(i.data.substring(0,e.startNodeIndex)),r=m.createTextNode(a.data.substring(e.endNodeIndex));for(var d=t(i.data.substring(e.startNodeIndex),s),u=[],f=0,p=e.innerNodes.length;p>f;++f){var h=e.innerNodes[f],g=t(h.data,s);h.parentNode.replaceChild(g,h),u.push(g)}var v=t(a.data.substring(0,e.endNodeIndex),s);return o=i.parentNode,o.insertBefore(n,i),o.insertBefore(d,i),o.removeChild(i),o=a.parentNode,o.insertBefore(v,a),o.insertBefore(r,a),o.removeChild(a),v}}function s(e){var t=[];return l(function(n,r){e(n,r)&&t.push(n)}),u=t,this}function l(e){for(var t=0,n=u.length;n>t&&e(u[t],t)!==!1;t++);return this}function c(e){return u.length&&(p=u.length,i(t,u,a(e))),this}var d,u=[],f,p=0,m,h,g,v;if(m=t.ownerDocument,h=n.getBlockElements(),g=n.getWhiteSpaceElements(),v=n.getShortEndedElements(),f=o(t),f&&e.global)for(;d=e.exec(f);)u.push(r(d));return{text:f,count:p,matches:u,each:l,filter:s,mark:c}}}),r(c,[l,d,u,f,p,m,h],function(e,t,n,r,o,i,a){t.add("spellchecker",function(t,s){function l(e){for(var t in e)return!1;return!0}function c(e,i){var a=[],s=g[i];n.each(s,function(e){a.push({text:e,onclick:function(){t.insertContent(e),u()}})}),a.push.apply(a,[{text:"-"},{text:"Ignore",onclick:function(){p(e,i)}},{text:"Ignore all",onclick:function(){p(e,i,!0)}},{text:"Finish",onclick:m}]),y=new r({items:a,context:"contextmenu",onautohide:function(e){-1!=e.target.className.indexOf("spellchecker")&&e.preventDefault()},onhide:function(){y.remove(),y=null}}),y.renderTo(document.body);var l=o.DOM.getPos(t.getContentAreaContainer()),c=t.dom.getPos(e);l.x+=c.x,l.y+=c.y,y.moveTo(l.x,l.y+e.offsetHeight)}function d(){function n(e){return t.setProgressState(!1),l(e)?(t.windowManager.alert("No misspellings found"),v=!1,void 0):(g=e,o.filter(function(t){return!!e[t[2][0]]}).mark(t.dom.create("span",{"class":"mce-spellchecker-word","data-mce-bogus":1})),o=null,t.fire("SpellcheckStart"),void 0)}function r(e,n,r){i.sendRPC({url:new a(s).toAbsolute(b.spellchecker_rpc_url),method:e,params:{lang:b.spellchecker_language||"en",words:n},success:function(e){r(e)},error:function(e,n){e="JSON Parse error."==e?"Non JSON response:"+n.responseText:"Error: "+e,t.windowManager.alert(e),t.setProgressState(!1),o=null,v=!1}})}var o,c=[],d={};if(v)return m(),void 0;v=!0;var u=t.getParam("spellchecker_wordchar_pattern")||new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e]+',"g");o=new e(u,t.getBody(),t.schema).each(function(e){var t=e[2][0];if(!d[t]){if(/^\d+$/.test(t)||1==t.length)return;c.push(t),d[t]=!0}}),t.setProgressState(!0);var f=b.spellchecker_callback||r;f("spellcheck",c,n)}function u(){t.dom.select("span.mce-spellchecker-word").length||m()}function f(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function p(e,r,o){o?n.each(t.dom.select("span.mce-spellchecker-word"),function(e){var t=e.innerText||e.textContent;t==r&&f(e)}):f(e),u()}function m(){var e,n,r;for(v=!1,r=t.getBody(),n=r.getElementsByTagName("span"),e=n.length;e--;)r=n[e],r.getAttribute("data-mce-index")&&f(r);t.fire("SpellcheckEnd")}function h(e){var n,r,o,i=-1,a,s;for(e=""+e,n=t.getBody().getElementsByTagName("span"),r=0;r<n.length&&(o=n[r],"mce-spellchecker-word"!=o.className||(i=o.getAttribute("data-mce-index"),i===e&&(i=e,a||(a=o.firstChild),s=o.firstChild),i===e||!s));r++);var l=t.dom.createRng();return l.setStart(a,0),l.setEnd(s,s.length),t.selection.setRng(l),l}var g,v,y,b=t.settings;t.on("click",function(e){if("mce-spellchecker-word"==e.target.className){e.preventDefault();var t=h(e.target.getAttribute("data-mce-index"));c(e.target,t.toString())}}),t.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:d,selectable:!0,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(v)})}}),t.addButton("spellchecker",{tooltip:"Spellcheck",onclick:d,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(v)})}}),t.on("remove",function(){y&&(y.remove(),y=null)})})}),a([l,c])}(this); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/tabfocus/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/tabfocus/plugin.min.js
new file mode 100755
index 00000000..bd71785a
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/tabfocus/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("tabfocus",function(e){function n(e){9===e.keyCode&&e.preventDefault()}function t(n){function t(n){function t(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&t(e.parentNode)}function r(e){return e.tabIndex||"INPUT"==e.nodeName||"TEXTAREA"==e.nodeName}function a(e){return!r(e)&&"-1"!=e.getAttribute("tabindex")&&t(e)}if(d=i.select(":input:enabled,*[tabindex]:not(iframe)"),o(d,function(n,t){return n.id==e.id?(u=t,!1):void 0}),n>0){for(c=u+1;c<d.length;c++)if(a(d[c]))return d[c]}else for(c=u-1;c>=0;c--)if(a(d[c]))return d[c];return null}var u,d,a,c;if(9===n.keyCode&&(a=r(e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))),1==a.length&&(a[1]=a[0],a[0]=":prev"),d=n.shiftKey?":prev"==a[0]?t(-1):i.get(a[0]):":next"==a[1]?t(1):i.get(a[1]))){var f=tinymce.get(d.id||d.name);d.id&&f?f.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),d.focus()},10),n.preventDefault()}}var i=tinymce.DOM,o=tinymce.each,r=tinymce.explode;e.on("init",function(){e.inline&&tinymce.DOM.setAttrib(e.getBody(),"tabIndex",null)}),e.on("keyup",n),tinymce.Env.gecko?e.on("keypress keydown",t):e.on("keydown",t)}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/table/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/table/plugin.min.js
new file mode 100755
index 00000000..c7c2e8ed
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/table/plugin.min.js
@@ -0,0 +1 @@
+!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/tableplugin/TableGrid",c="tinymce/util/Tools",d="tinymce/Env",u="tinymce/tableplugin/Quirks",f="tinymce/util/VK",p="tinymce/tableplugin/CellSelection",m="tinymce/dom/TreeWalker",h="tinymce/tableplugin/Plugin",g="tinymce/PluginManager";r(l,[c,d],function(e,t){function n(e,t){return parseInt(e.getAttribute(t)||1,10)}var r=e.each;return function(i,o){function a(){var e=0;R=[],r(["thead","tbody","tfoot"],function(t){var i=H.select("> "+t+" tr",o);r(i,function(i,o){o+=e,r(H.select("> td, > th",i),function(e,r){var i,a,s,l;if(R[o])for(;R[o][r];)r++;for(s=n(e,"rowspan"),l=n(e,"colspan"),a=o;o+s>a;a++)for(R[a]||(R[a]=[]),i=r;r+l>i;i++)R[a][i]={part:t,real:a==o&&i==r,elm:e,rowspan:s,colspan:l}})}),e+=i.length})}function s(e,t){return e=e.cloneNode(t),e.removeAttribute("id"),e}function l(e,t){var n;return n=R[t],n?n[e]:void 0}function c(e,t,n){e&&(n=parseInt(n,10),1===n?e.removeAttribute(t,1):e.setAttribute(t,n,1))}function d(e){return e&&(H.hasClass(e.elm,"mce-item-selected")||e==P)}function u(){var e=[];return r(o.rows,function(t){r(t.cells,function(n){return H.hasClass(n,"mce-item-selected")||n==P.elm?(e.push(t),!1):void 0})}),e}function f(){var e=H.createRng();e.setStartAfter(o),e.setEndAfter(o),M.setRng(e),H.remove(o)}function p(n){var o,a={};return i.settings.table_clone_elements!==!1&&(a=e.makeMap((i.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),e.walk(n,function(e){var i;return 3==e.nodeType?(r(H.getParents(e.parentNode,null,n).reverse(),function(e){a[e.nodeName]&&(e=s(e,!1),o?i&&i.appendChild(e):o=i=e,i=e)}),i&&(i.innerHTML=t.ie?"&nbsp;":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),n=s(n,!1),c(n,"rowSpan",1),c(n,"colSpan",1),o?n.appendChild(o):t.ie||(n.innerHTML='<br data-mce-bogus="1" />'),n}function m(){var e=H.createRng(),t;return r(H.select("tr",o),function(e){0===e.cells.length&&H.remove(e)}),0===H.select("tr",o).length?(e.setStartBefore(o),e.setEndBefore(o),M.setRng(e),H.remove(o),void 0):(r(H.select("thead,tbody,tfoot",o),function(e){0===e.rows.length&&H.remove(e)}),a(),t=R[Math.min(R.length-1,A.y)],t&&(M.select(t[Math.min(t.length-1,A.x)].elm,!0),M.collapse(!0)),void 0)}function h(e,t,n,r){var i,o,a,s,l;for(i=R[t][e].elm.parentNode,a=1;n>=a;a++)if(i=H.getNext(i,"tr")){for(o=e;o>=0;o--)if(l=R[t+a][o].elm,l.parentNode==i){for(s=1;r>=s;s++)H.insertAfter(p(l),l);break}if(-1==o)for(s=1;r>=s;s++)i.insertBefore(p(i.cells[0]),i.cells[0])}}function g(){r(R,function(e,t){r(e,function(e,r){var i,o,a;if(d(e)&&(e=e.elm,i=n(e,"colspan"),o=n(e,"rowspan"),i>1||o>1)){for(c(e,"rowSpan",1),c(e,"colSpan",1),a=0;i-1>a;a++)H.insertAfter(p(e),e);h(r,t,o-1,i)}})})}function v(t,n,i){var o,s,u,f,p,h,v,y,b,C,x;if(t?(o=S(t),s=o.x,u=o.y,f=s+(n-1),p=u+(i-1)):(A=B=null,r(R,function(e,t){r(e,function(e,n){d(e)&&(A||(A={x:n,y:t}),B={x:n,y:t})})}),s=A.x,u=A.y,f=B.x,p=B.y),y=l(s,u),b=l(f,p),y&&b&&y.part==b.part){for(g(),a(),y=l(s,u).elm,c(y,"colSpan",f-s+1),c(y,"rowSpan",p-u+1),v=u;p>=v;v++)for(h=s;f>=h;h++)R[v]&&R[v][h]&&(t=R[v][h].elm,t!=y&&(C=e.grep(t.childNodes),r(C,function(e){y.appendChild(e)}),C.length&&(C=e.grep(y.childNodes),x=0,r(C,function(e){"BR"==e.nodeName&&H.getAttrib(e,"data-mce-bogus")&&x++<C.length-1&&y.removeChild(e)})),H.remove(t)));m()}}function y(e){var t,i,o,a,l,u,f,m,h;for(r(R,function(n,i){return r(n,function(n){return d(n)&&(n=n.elm,l=n.parentNode,u=s(l,!1),t=i,e)?!1:void 0}),e?!t:void 0}),a=0;a<R[0].length;a++)if(R[t][a]&&(i=R[t][a].elm,i!=o)){if(e){if(t>0&&R[t-1][a]&&(m=R[t-1][a].elm,h=n(m,"rowSpan"),h>1)){c(m,"rowSpan",h+1);continue}}else if(h=n(i,"rowspan"),h>1){c(i,"rowSpan",h+1);continue}f=p(i),c(f,"colSpan",i.colSpan),u.appendChild(f),o=i}u.hasChildNodes()&&(e?l.parentNode.insertBefore(u,l):H.insertAfter(u,l))}function b(e){var t,i;r(R,function(n){return r(n,function(n,r){return d(n)&&(t=r,e)?!1:void 0}),e?!t:void 0}),r(R,function(r,o){var a,s,l;r[t]&&(a=r[t].elm,a!=i&&(l=n(a,"colspan"),s=n(a,"rowspan"),1==l?e?(a.parentNode.insertBefore(p(a),a),h(t,o,s-1,l)):(H.insertAfter(p(a),a),h(t,o,s-1,l)):c(a,"colSpan",a.colSpan+1),i=a))})}function C(){var t=[];r(R,function(i){r(i,function(i,o){d(i)&&-1===e.inArray(t,o)&&(r(R,function(e){var t=e[o].elm,r;r=n(t,"colSpan"),r>1?c(t,"colSpan",r-1):H.remove(t)}),t.push(o))})}),m()}function x(){function e(e){var t,i,o;t=H.getNext(e,"tr"),r(e.cells,function(e){var t=n(e,"rowSpan");t>1&&(c(e,"rowSpan",t-1),i=S(e),h(i.x,i.y,1,1))}),i=S(e.cells[0]),r(R[i.y],function(e){var t;e=e.elm,e!=o&&(t=n(e,"rowSpan"),1>=t?H.remove(e):c(e,"rowSpan",t-1),o=e)})}var t;t=u(),r(t.reverse(),function(t){e(t)}),m()}function w(){var e=u();return H.remove(e),m(),e}function _(){var e=u();return r(e,function(t,n){e[n]=s(t,!0)}),e}function N(e,t){var n=u(),i=n[t?0:n.length-1],o=i.cells.length;e&&(r(R,function(e){var t;return o=0,r(e,function(e){e.real&&(o+=e.colspan),e.elm.parentNode==i&&(t=1)}),t?!1:void 0}),t||e.reverse(),r(e,function(e){var n,r=e.cells.length,a;for(n=0;r>n;n++)a=e.cells[n],c(a,"colSpan",1),c(a,"rowSpan",1);for(n=r;o>n;n++)e.appendChild(p(e.cells[r-1]));for(n=o;r>n;n++)H.remove(e.cells[n]);t?i.parentNode.insertBefore(e,i):H.insertAfter(e,i)}),H.removeClass(H.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function S(e){var t;return r(R,function(n,i){return r(n,function(n,r){return n.elm==e?(t={x:r,y:i},!1):void 0}),!t}),t}function E(e){A=S(e)}function k(){var e,t;return e=t=0,r(R,function(n,i){r(n,function(n,r){var o,a;d(n)&&(n=R[i][r],r>e&&(e=r),i>t&&(t=i),n.real&&(o=n.colspan-1,a=n.rowspan-1,o&&r+o>e&&(e=r+o),a&&i+a>t&&(t=i+a)))})}),{x:e,y:t}}function T(e){var t,n,r,i,o,a,s,l,c,d;if(B=S(e),A&&B){for(t=Math.min(A.x,B.x),n=Math.min(A.y,B.y),r=Math.max(A.x,B.x),i=Math.max(A.y,B.y),o=r,a=i,d=n;a>=d;d++)e=R[d][t],e.real||t-(e.colspan-1)<t&&(t-=e.colspan-1);for(c=t;o>=c;c++)e=R[n][c],e.real||n-(e.rowspan-1)<n&&(n-=e.rowspan-1);for(d=n;i>=d;d++)for(c=t;r>=c;c++)e=R[d][c],e.real&&(s=e.colspan-1,l=e.rowspan-1,s&&c+s>o&&(o=c+s),l&&d+l>a&&(a=d+l));for(H.removeClass(H.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=n;a>=d;d++)for(c=t;o>=c;c++)R[d][c]&&H.addClass(R[d][c].elm,"mce-item-selected")}}var R,A,B,P,M=i.selection,H=M.dom;o=o||H.getParent(M.getStart(),"table"),a(),P=H.getParent(M.getStart(),"th,td"),P&&(A=S(P),B=k(),P=l(A.x,A.y)),e.extend(this,{deleteTable:f,split:g,merge:v,insertRow:y,insertCol:b,deleteCols:C,deleteRows:x,cutRows:w,copyRows:_,pasteRows:N,getPos:S,setStartCell:E,setEndCell:T})}}),r(u,[f,d,c],function(e,t,n){function r(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=n.each;return function(n){function o(){function t(t){function o(e,r){var i=e?"previousSibling":"nextSibling",o=n.dom.getParent(r,"tr"),s=o[i];if(s)return g(n,r,s,e),t.preventDefault(),!0;var d=n.dom.getParent(o,"table"),u=o.parentNode,f=u.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var p=a(e,d,u,"tbody");if(null!==p)return l(e,p,r)}return c(e,o,i,d)}function a(e,t,r,i){var o=n.dom.select(">"+i,t),a=o.indexOf(r);if(e&&0===a||!e&&a===o.length-1)return s(e,t);if(-1===a){var l="thead"===r.tagName.toLowerCase()?0:o.length-1;return o[l]}return o[a+(e?-1:1)]}function s(e,t){var r=e?"thead":"tfoot",i=n.dom.select(">"+r,t);return 0!==i.length?i[0]:null}function l(e,r,i){var o=d(r,e);return o&&g(n,i,o,e),t.preventDefault(),!0}function c(e,r,i,a){var s=a[i];if(s)return u(s),!0;var l=n.dom.getParent(a,"td,th");if(l)return o(e,l,t);var c=d(r,!e);return u(c),t.preventDefault(),!1}function d(e,t){var r=e&&e[t?"lastChild":"firstChild"];return r&&"BR"===r.nodeName?n.dom.getParent(r,"td,th"):r}function u(e){n.selection.setCursorLocation(e,0)}function f(){return b==e.UP||b==e.DOWN}function p(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"tr");return null!==n}function m(e){for(var t=0,n=e;n.previousSibling;)n=n.previousSibling,t+=r(n,"colspan");return t}function h(e,t){var n=0,o=0;return i(e.children,function(e,i){return n+=r(e,"colspan"),o=i,n>t?!1:void 0}),o}function g(e,t,r,i){var o=m(n.dom.getParent(t,"td,th")),a=h(r,o),s=r.childNodes[a],l=d(s,i);u(l||s)}function v(e){var t=n.selection.getNode(),r=n.dom.getParent(t,"td,th"),i=n.dom.getParent(e,"td,th");return r&&r!==i&&y(r,i)}function y(e,t){return n.dom.getParent(e,"TABLE")===n.dom.getParent(t,"TABLE")}var b=t.keyCode;if(f()&&p(n)){var C=n.selection.getNode();setTimeout(function(){v(C)&&o(!t.shiftKey&&b===e.UP,C,t)},0)}}n.on("KeyDown",function(e){t(e)})}function a(){function e(e,t){var n=t.ownerDocument,r=n.createRange(),i;return r.setStartBefore(t),r.setEnd(e.endContainer,e.endOffset),i=n.createElement("body"),i.appendChild(r.cloneContents()),0===i.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}n.on("KeyDown",function(t){var r,i,o=n.dom;(37==t.keyCode||38==t.keyCode)&&(r=n.selection.getRng(),i=o.getParent(r.startContainer,"table"),i&&n.getBody().firstChild==i&&e(r,i)&&(r=o.createRng(),r.setStartBefore(i),r.setEndBefore(i),n.selection.setRng(r),t.preventDefault()))})}function s(){n.on("KeyDown SetContent VisualAid",function(){var e;for(e=n.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&!e.getAttribute("data-mce-bogus"))break;e&&"TABLE"==e.nodeName&&(n.settings.forced_root_block?n.dom.add(n.getBody(),n.settings.forced_root_block,null,t.ie?"&nbsp;":'<br data-mce-bogus="1" />'):n.dom.add(n.getBody(),"br",{"data-mce-bogus":"1"}))}),n.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||"\xa0"==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&n.dom.remove(t)})}function l(){function e(e,t,n,r){var i=3,o=e.dom.getParent(t.startContainer,"TABLE"),a,s,l;return o&&(a=o.parentNode),s=t.startContainer.nodeType==i&&0===t.startOffset&&0===t.endOffset&&r&&("TR"==n.nodeName||n==a),l=("TD"==n.nodeName||"TH"==n.nodeName)&&!r,s||l}function t(){var t=n.selection.getRng(),r=n.selection.getNode(),i=n.dom.getParent(t.startContainer,"TD,TH");if(e(n,t,r,i)){i||(i=r);for(var o=i.lastChild;o.lastChild;)o=o.lastChild;t.setEnd(o,o.nodeValue.length),n.selection.setRng(t)}}n.on("KeyDown",function(){t()}),n.on("MouseDown",function(e){2!=e.button&&t()})}t.webkit&&(o(),l()),t.gecko&&(a(),s())}}),r(p,[l,m,c],function(e,t,n){return function(r){function i(){r.getBody().style.webkitUserSelect="",c&&(r.dom.removeClass(r.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),c=!1)}var o=r.dom,a,s,l,c=!0;return r.on("MouseDown",function(e){2!=e.button&&(i(),s=o.getParent(e.target,"td,th"),l=o.getParent(s,"table"))}),o.bind(r.getDoc(),"mouseover",function(t){var n,i,d=t.target;if(s&&(a||d!=s)&&("TD"==d.nodeName||"TH"==d.nodeName)){i=o.getParent(d,"table"),i==l&&(a||(a=new e(r,i),a.setStartCell(s),r.getBody().style.webkitUserSelect="none"),a.setEndCell(d),c=!0),n=r.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(u){}t.preventDefault()}}),r.on("MouseUp",function(){function e(e,r){var o=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return r?i.setStart(e,0):i.setEnd(e,e.nodeValue.length),void 0;if("BR"==e.nodeName)return r?i.setStartBefore(e):i.setEndBefore(e),void 0}while(e=r?o.next():o.prev())}var i,c=r.selection,d,u,f,p,m;if(s){if(a&&(r.getBody().style.webkitUserSelect=""),d=o.select("td.mce-item-selected,th.mce-item-selected"),d.length>0){i=o.createRng(),f=d[0],m=d[d.length-1],i.setStartBefore(f),i.setEndAfter(f),e(f,1),u=new t(f,o.getParent(d[0],"table"));do if("TD"==f.nodeName||"TH"==f.nodeName){if(!o.hasClass(f,"mce-item-selected"))break;p=f}while(f=u.next());e(p),c.setRng(i)}r.nodeChanged(),s=a=l=null}}),r.on("KeyUp",function(){i()}),{clear:i}}}),r(h,[l,u,p,c,m,d,g],function(e,t,n,r,i,o,a){function s(r){function i(e){return e?e.replace(/px$/,""):""}function a(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function s(e){l("left center right".split(" "),function(t){r.formatter.remove("align"+t,{},e)})}function c(){var e=r.dom,t,n,c;t=r.dom.getParent(r.selection.getStart(),"table"),c=!1,n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),cellspacing:e.getAttrib(t,"cellspacing"),cellpadding:e.getAttrib(t,"cellpadding"),border:e.getAttrib(t,"border"),caption:!!e.select("caption",t)[0]},l("left center right".split(" "),function(e){r.formatter.matchNode(t,"align"+e)&&(n.align=e)}),r.windowManager.open({title:"Table properties",items:{type:"form",layout:"grid",columns:2,data:n,defaults:{type:"textbox",maxWidth:50},items:[c?{label:"Cols",name:"cols",disabled:!0}:null,c?{label:"Rows",name:"rows",disabled:!0}:null,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"},{label:"Alignment",minWidth:90,name:"align",type:"listbox",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var n=this.toJSON(),i;r.undoManager.transact(function(){r.dom.setAttribs(t,{cellspacing:n.cellspacing,cellpadding:n.cellpadding,border:n.border}),r.dom.setStyles(t,{width:a(n.width),height:a(n.height)}),i=e.select("caption",t)[0],i&&!n.caption&&e.remove(i),!i&&n.caption&&(i=e.create("caption"),o.ie||(i.innerHTML='<br data-mce-bogus="1"/>'),t.insertBefore(i,t.firstChild)),s(t),n.align&&r.formatter.apply("align"+n.align,{},t),r.focus(),r.addVisual()})}})}function d(e,t){r.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",size:10},{label:"Rows",name:"rows",type:"textbox",size:10}],onsubmit:function(){var n=this.toJSON();r.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})}function u(){var e=r.dom,t,n,o=[];o=r.dom.select("td.mce-item-selected,th.mce-item-selected"),t=r.dom.getParent(r.selection.getStart(),"td,th"),!o.length&&t&&o.push(t),t=t||o[0],n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),scope:e.getAttrib(t,"scope")},n.type=t.nodeName.toLowerCase(),l("left center right".split(" "),function(e){r.formatter.matchNode(t,"align"+e)&&(n.align=e)}),r.windowManager.open({title:"Cell properties",items:{type:"form",data:n,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,menu:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,menu:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var t=this.toJSON();r.undoManager.transact(function(){l(o,function(n){r.dom.setAttrib(n,"scope",t.scope),r.dom.setStyles(n,{width:a(t.width),height:a(t.height)}),t.type&&n.nodeName.toLowerCase()!=t.type&&(n=e.rename(n,t.type)),s(n),t.align&&r.formatter.apply("align"+t.align,{},n)}),r.focus()})}})}function f(){var e=r.dom,t,n,o,c,d=[];t=r.dom.getParent(r.selection.getStart(),"table"),n=r.dom.getParent(r.selection.getStart(),"td,th"),l(t.rows,function(t){l(t.cells,function(r){return e.hasClass(r,"mce-item-selected")||r==n?(d.push(t),!1):void 0})}),o=d[0],c={height:i(e.getStyle(o,"height")||e.getAttrib(o,"height")),scope:e.getAttrib(o,"scope")},c.type=o.parentNode.nodeName.toLowerCase(),l("left center right".split(" "),function(e){r.formatter.matchNode(o,"align"+e)&&(c.align=e)}),r.windowManager.open({title:"Row properties",items:{type:"form",data:c,columns:2,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,menu:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,menu:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"}]},onsubmit:function(){var t=this.toJSON(),n,i,o;r.undoManager.transact(function(){var c=t.type;l(d,function(l){r.dom.setAttrib(l,"scope",t.scope),r.dom.setStyles(l,{height:a(t.height)}),c!=l.parentNode.nodeName.toLowerCase()&&(n=e.getParent(l,"table"),i=l.parentNode,o=e.select(c,n)[0],o||(o=e.create(c),n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o)),o.appendChild(l),i.hasChildNodes()||e.remove(i)),s(l),t.align&&r.formatter.apply("align"+t.align,{},l)}),r.focus()})}})}function p(e){return function(){r.execCommand(e)}}function m(e,t){var n,i,a;for(a="<table><tbody>",n=0;t>n;n++){for(a+="<tr>",i=0;e>i;i++)a+="<td>"+(o.ie?" ":"<br>")+"</td>";a+="</tr>"}a+="</tbody></table>",r.insertContent(a)}function h(e,t){function n(){e.disabled(!r.dom.getParent(r.selection.getStart(),t)),r.selection.selectorChanged(t,function(t){e.disabled(!t)})}r.initialized?n():r.on("init",n)}function g(){h(this,"table")}function v(){h(this,"td,th")}function y(){var e="";e='<table role="presentation" class="mce-grid mce-grid-border">';for(var t=0;10>t;t++){e+="<tr>";for(var n=0;10>n;n++)e+='<td><a href="#" data-mce-index="'+n+","+t+'"></a></td>';e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center">0 x 0</div>'}var b,C,x=this;r.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onhide:function(){r.dom.removeClass(this.menu.items()[0].getEl().getElementsByTagName("a"),"mce-active")},menu:[{type:"container",html:y(),onmousemove:function(e){var t=e.target;if("A"==t.nodeName){var n=r.dom.getParent(t,"table"),i=t.getAttribute("data-mce-index");if(i!=this.lastPos){i=i.split(","),i[0]=parseInt(i[0],10),i[1]=parseInt(i[1],10);for(var o=0;10>o;o++)for(var a=0;10>a;a++)r.dom.toggleClass(n.rows[o].childNodes[a].firstChild,"mce-active",a<=i[0]&&o<=i[1]);n.nextSibling.innerHTML=i[0]+1+" x "+(i[1]+1),this.lastPos=i}}},onclick:function(e){"A"==e.target.nodeName&&this.lastPos&&(e.preventDefault(),m(this.lastPos[0]+1,this.lastPos[1]+1),this.parent().cancel())}}]}),r.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:g,onclick:c}),r.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:g,cmd:"mceTableDelete"}),r.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:p("mceTableCellProps"),onPostRender:v},{text:"Merge cells",onclick:p("mceTableMergeCells"),onPostRender:v},{text:"Split cell",onclick:p("mceTableSplitCells"),onPostRender:v}]}),r.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:p("mceTableInsertRowBefore"),onPostRender:v},{text:"Insert row after",onclick:p("mceTableInsertRowAfter"),onPostRender:v},{text:"Delete row",onclick:p("mceTableDeleteRow"),onPostRender:v},{text:"Row properties",onclick:p("mceTableRowProps"),onPostRender:v},{text:"-"},{text:"Cut row",onclick:p("mceTableCutRow"),onPostRender:v},{text:"Copy row",onclick:p("mceTableCopyRow"),onPostRender:v},{text:"Paste row before",onclick:p("mceTablePasteRowBefore"),onPostRender:v},{text:"Paste row after",onclick:p("mceTablePasteRowAfter"),onPostRender:v}]}),r.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:p("mceTableInsertColBefore"),onPostRender:v},{text:"Insert column after",onclick:p("mceTableInsertColAfter"),onPostRender:v},{text:"Delete column",onclick:p("mceTableDeleteCol"),onPostRender:v}]});var w=[];l("inserttable tableprops deletetable | cell row column".split(" "),function(e){"|"==e?w.push({text:"-"}):w.push(r.menuItems[e])}),r.addButton("table",{type:"menubutton",title:"Table",menu:w}),o.isIE||r.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(r.selection.select(e),r.nodeChanged())}),x.quirks=new t(r),r.on("Init",function(){b=r.windowManager,x.cellSelection=new n(r)}),l({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t,n,i;i=r.dom.getParent(r.selection.getStart(),"th,td"),i&&(t=i.rowSpan,n=i.colSpan),r.dom.select("td.mce-item-selected,th.mce-item-selected").length?e.merge():d(e,i)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){C=e.cutRows()},mceTableCopyRow:function(e){C=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(C,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(C)},mceTableDelete:function(e){e.deleteTable()}},function(t,n){r.addCommand(n,function(){var n=new e(r);n&&(t(n),r.execCommand("mceRepaint"),x.cellSelection.clear())})}),l({mceInsertTable:function(){c()},mceTableRowProps:f,mceTableCellProps:u},function(e,t){r.addCommand(t,function(t,n){e(n)})})}var l=r.each;a.add("table",s)}),a([l,u,p,h])}(this); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/template/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/template/plugin.min.js
new file mode 100755
index 00000000..eacf712d
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/template/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("template",function(e){function t(){function t(e){var t=e.control.value();t.url?tinymce.util.XHR.send({url:t.url,success:function(e){i=e,n.find("iframe")[0].html(e)}}):(i=t.content,n.find("iframe")[0].html(t.content)),n.find("#description")[0].text(e.control.value().description)}var n,i,o=[];return e.settings.templates?(tinymce.each(e.settings.templates,function(e){o.push({selected:!o.length,text:e.title,value:{url:e.url,content:e.content,description:e.description}})}),n=e.windowManager.open({title:"Insert template",body:[{type:"container",label:"Templates",items:{type:"listbox",name:"template",values:o,onselect:t}},{type:"label",name:"description",label:"Description",text:" "},{type:"iframe",minWidth:600,minHeight:400,border:1}],onsubmit:function(){a(!1,i)}}),n.find("listbox")[0].fire("select"),void 0):(e.windowManager.alert("No templates defined"),void 0)}function n(t,n){function i(e,t){if(e=""+e,e.length<t)for(var n=0;n<t-e.length;n++)e="0"+e;return e}var a="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),o="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),r="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),l="January February March April May June July August September October November December".split(" ");return n=n||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+n.getFullYear()),t=t.replace("%y",""+n.getYear()),t=t.replace("%m",i(n.getMonth()+1,2)),t=t.replace("%d",i(n.getDate(),2)),t=t.replace("%H",""+i(n.getHours(),2)),t=t.replace("%M",""+i(n.getMinutes(),2)),t=t.replace("%S",""+i(n.getSeconds(),2)),t=t.replace("%I",""+((n.getHours()+11)%12+1)),t=t.replace("%p",""+(n.getHours()<12?"AM":"PM")),t=t.replace("%B",""+e.translate(l[n.getMonth()])),t=t.replace("%b",""+e.translate(r[n.getMonth()])),t=t.replace("%A",""+e.translate(o[n.getDay()])),t=t.replace("%a",""+e.translate(a[n.getDay()])),t=t.replace("%%","%")}function i(t){var n=e.dom,i=e.getParam("template_replace_values");o(n.select("*",t),function(e){o(i,function(t,a){n.hasClass(e,a)&&"function"==typeof i[a]&&i[a](e)})})}function a(t,a){function r(e,t){return new RegExp("\\b"+t+"\\b","g").test(e.className)}var l,c,s=e.dom,u=e.selection.getContent();o(e.getParam("template_replace_values"),function(e,t){"function"!=typeof e&&(a=a.replace(new RegExp("\\{\\$"+t+"\\}","g"),e))}),l=s.create("div",null,a),c=s.select(".mceTmpl",l),c&&c.length>0&&(l=s.create("div",null),l.appendChild(c[0].cloneNode(!0))),o(s.select("*",l),function(t){r(t,e.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_cdate_format",e.getLang("template.cdate_format")))),r(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format")))),r(t,e.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(t.innerHTML=u)}),i(l),e.execCommand("mceInsertContent",!1,l.innerHTML),e.addVisual()}var o=tinymce.each;e.addCommand("mceInsertTemplate",a),e.addButton("template",{title:"Insert template",onclick:t}),e.addMenuItem("template",{text:"Insert template",onclick:t,context:"insert"}),e.on("PreProcess",function(t){var a=e.dom;o(a.select("div",t.node),function(t){a.hasClass(t,"mceTmpl")&&(o(a.select("*",t),function(t){a.hasClass(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format"))))}),i(t))})})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/textcolor/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/textcolor/plugin.min.js
new file mode 100755
index 00000000..9f2524fd
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/textcolor/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("textcolor",function(e){function t(){var t,n,i=[];for(n=e.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Brown","C0C0C0","Silver","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum","FFFFFF","White"],t=0;t<n.length;t+=2)i.push({text:n[t+1],color:n[t]});return i}function n(){var n,i,a,o,r,l,c,s,u,d=this;for(n=t(),a='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="presentation" cellspacing="0"><tbody>',o=n.length-1,r=e.settings.textcolor_rows||5,l=e.settings.textcolor_cols||8,s=0;r>s;s++){for(a+="<tr>",c=0;l>c;c++)u=s*l+c,u>o?a+="<td></td>":(i=n[u],a+='<td><div id="'+d._id+"-"+u+'"'+' data-mce-color="'+i.color+'"'+' role="option"'+' tabIndex="-1"'+' style="'+(i?"background-color: #"+i.color:"")+'"'+' title="'+i.text+'">'+"</div>"+"</td>");a+="</tr>"}return a+="</tbody></table>"}function i(t){var n,i=this.parent();(n=t.target.getAttribute("data-mce-color"))&&(i.hidePanel(),n="#"+n,i.color(n),e.execCommand(i.settings.selectcmd,!1,n))}function a(){var t=this;t._color&&e.execCommand(t.settings.selectcmd,!1,t._color)}e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",popoverAlign:"bc-tl",selectcmd:"ForeColor",panel:{html:n,onclick:i},onclick:a}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",popoverAlign:"bc-tl",selectcmd:"HiliteColor",panel:{html:n,onclick:i},onclick:a})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/visualblocks/css/visualblocks.css b/framework/Web/Javascripts/source/tinymce-405/plugins/visualblocks/css/visualblocks.css
new file mode 100755
index 00000000..30fa34ef
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/visualblocks/css/visualblocks.css
@@ -0,0 +1,136 @@
+.mce-visualblocks p {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);
+}
+
+.mce-visualblocks h1 {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);
+}
+
+.mce-visualblocks h2 {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);
+}
+
+.mce-visualblocks h3 {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);
+}
+
+.mce-visualblocks h4 {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);
+}
+
+.mce-visualblocks h5 {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);
+}
+
+.mce-visualblocks h6 {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
+}
+
+.mce-visualblocks div {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);
+}
+
+.mce-visualblocks section {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin: 0 0 1em 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);
+}
+
+.mce-visualblocks article {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin: 0 0 1em 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);
+}
+
+.mce-visualblocks blockquote {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);
+}
+
+.mce-visualblocks address {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin: 0 0 1em 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);
+}
+
+.mce-visualblocks pre {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);
+}
+
+.mce-visualblocks figure {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin: 0 0 1em 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);
+}
+
+.mce-visualblocks hgroup {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin: 0 0 1em 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);
+}
+
+.mce-visualblocks aside {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin: 0 0 1em 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);
+}
+
+.mce-visualblocks figcaption {
+ border: 1px dashed #BBB;
+}
+
+.mce-visualblocks ul {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAPcAAAAAALu7uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAOAAoAAAgsAP8JHEhwYICCCAUe/LewIUGHDBUmhLiwIMWEDCsG2CgR40OPHxVyFLkxQEAAOw==);
+}
+
+.mce-visualblocks ol {
+ padding-top: 10px;
+ border: 1px dashed #BBB;
+ margin-left: 3px;
+ background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAPcAALu7u////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAADgAKAAAILQADCBxIcCCAgggFHlS4MEBDhwojQkS4sGJCixMpNgTAUWJCgg8/ZuS4kSSAgAA7);
+}
+
+.mce-visualblocks br {
+ content:"";
+ padding-left:6px;
+ background: transparent bottom right no-repeat url(data:image/gif;base64,R0lGODlhBgAIAPcAAAAAALu7uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAGAAgAAAgYAP8FGDjwn0GDAQ4iVCiQYUKFDw9GPBgQADs=);
+}
+
+.mce-visualblocks br:after { content:"\A"; white-space:pre; }
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/visualblocks/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/visualblocks/plugin.min.js
new file mode 100755
index 00000000..cafa4187
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/visualblocks/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("visualblocks",function(e,t){function n(){var t=this;t.active(r),e.on("VisualBlocks",function(){t.active(e.dom.hasClass(e.getBody(),"mce-visualblocks"))})}var i,a,r;window.NodeList&&(e.addCommand("mceVisualBlocks",function(){var n,o=e.dom;i||(i=o.uniqueId(),n=o.create("link",{id:i,rel:"stylesheet",href:t+"/css/visualblocks.css"}),e.getDoc().getElementsByTagName("head")[0].appendChild(n)),e.on("PreviewFormats AfterPreviewFormats",function(t){r&&o.toggleClass(e.getBody(),"mce-visualblocks","afterpreviewformats"==t.type)}),o.toggleClass(e.getBody(),"mce-visualblocks"),r=e.dom.hasClass(e.getBody(),"mce-visualblocks"),a&&a.active(o.hasClass(e.getBody(),"mce-visualblocks")),e.fire("VisualBlocks")}),e.addButton("visualblocks",{title:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n,selectable:!0,context:"view",prependToContext:!0}),e.on("init",function(){e.settings.visualblocks_default_state&&e.execCommand("mceVisualBlocks",!1,null,{skip_focus:!0})}),e.on("remove",function(){e.dom.removeClass(e.getBody(),"mce-visualblocks")}))}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/visualchars/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/visualchars/plugin.min.js
new file mode 100755
index 00000000..44742388
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/visualchars/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("visualchars",function(e){function t(t){var n,a,r,o,l,s,c=e.getBody(),d=e.selection;if(i=!i,e.fire("VisualChars",{state:i}),t&&(s=d.getBookmark()),i)for(a=[],tinymce.walk(c,function(e){3==e.nodeType&&e.nodeValue&&-1!=e.nodeValue.indexOf(" ")&&a.push(e)},"childNodes"),r=0;r<a.length;r++){for(o=a[r].nodeValue,o=o.replace(/(\u00a0)/g,'<span data-mce-bogus="1" class="mce-nbsp">$1</span>'),l=e.dom.create("div",null,o);n=l.lastChild;)e.dom.insertAfter(n,a[r]);e.dom.remove(a[r])}else for(a=e.dom.select("span.mce-nbsp",c),r=a.length-1;r>=0;r--)e.dom.remove(a[r],1);d.moveToBookmark(s)}function n(){var t=this;e.on("VisualChars",function(e){t.active(e.state)})}var i;e.addCommand("mceVisualChars",t),e.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:n}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:n,selectable:!0,context:"view",prependToContext:!0}),e.on("beforegetcontent",function(e){i&&"raw"!=e.format&&!e.draft&&(i=!0,t(!1))})}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/plugins/wordcount/plugin.min.js b/framework/Web/Javascripts/source/tinymce-405/plugins/wordcount/plugin.min.js
new file mode 100755
index 00000000..8c419801
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/plugins/wordcount/plugin.min.js
@@ -0,0 +1 @@
+tinymce.PluginManager.add("wordcount",function(e){function t(){e.theme.panel.find("#wordcount").text(["Words: {0}",a.getCount()])}var n,i,a=this;n=e.getParam("wordcount_countregex",/[\w\u2019\x27\-]+/g),i=e.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),e.on("init",function(){var n=e.theme.panel&&e.theme.panel.find("#statusbar")[0];n&&window.setTimeout(function(){n.insert({type:"label",name:"wordcount",text:["Words: {0}",a.getCount()],classes:"wordcount"},0),e.on("setcontent beforeaddundo",t),e.on("keyup",function(e){32==e.keyCode&&t()})},0)}),a.getCount=function(){var t=e.getContent({format:"raw"}),a=0;if(t){t=t.replace(/\.\.\./g," "),t=t.replace(/<.[^<>]*?>/g," ").replace(/&nbsp;|&#160;/gi," "),t=t.replace(/(\w+)(&.+?;)+(\w+)/,"$1$3").replace(/&.+?;/g," "),t=t.replace(i,"");var o=t.match(n);o&&(a=o.length)}return a}}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/content.inline.min.css b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/content.inline.min.css
new file mode 100755
index 00000000..771b83e5
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/content.inline.min.css
@@ -0,0 +1 @@
+.mce-object{border:1px dotted #3a3a3a;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3a3a3a;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:green;color:#fff}.mce-spellchecker-word{background:url(img/wline.gif) repeat-x bottom left;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333} \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/content.min.css b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/content.min.css
new file mode 100755
index 00000000..b9bbab14
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/content.min.css
@@ -0,0 +1 @@
+body{background-color:#fff;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;scrollbar-3dlight-color:#f0f0ee;scrollbar-arrow-color:#676662;scrollbar-base-color:#f0f0ee;scrollbar-darkshadow-color:#ddd;scrollbar-face-color:#e0e0dd;scrollbar-highlight-color:#f0f0ee;scrollbar-shadow-color:#f0f0ee;scrollbar-track-color:#f5f5f5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px}.mce-object{border:1px dotted #3a3a3a;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3a3a3a;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:green;color:#fff}.mce-spellchecker-word{background:url(img/wline.gif) repeat-x bottom left;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333} \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.eot b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.eot
new file mode 100755
index 00000000..43a30f99
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.eot
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.svg b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.svg
new file mode 100755
index 00000000..d338114f
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.svg
@@ -0,0 +1,175 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+This is a custom SVG font generated by IcoMoon.
+<iconset grid="16"></iconset>
+</metadata>
+<defs>
+<font id="icomoon-small" horiz-adv-x="512" >
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
+<glyph unicode="&#xe020;" d="M 352,64l0,18.502 c 75.674,30.814, 128,96.91, 128,173.498c0,106.039-100.288,192-224,192S 32,362.039, 32,256
+ c0-76.588, 52.327-142.684, 128-173.498L 160,64 L 64,64 l-32,48l0-112 l 160,0 L 192,111.406 c-50.45,25.681-85.333,80.77-85.333,144.594
+ c0,88.366, 66.859,160, 149.333,160c 82.474,0, 149.333-71.634, 149.333-160c0-63.824-34.883-118.913-85.333-144.594L 320,0 l 160,0 L 480,112 l-32-48
+ L 352,64 z" />
+<glyph unicode="&#xe013;" d="M 128,448l0-448 l 128,128l 128-128L 384,448 L 128,448 z M 352,85.255l-96,96l-96-96L 160,416 l 192,0 L 352,85.255 z" />
+<glyph unicode="&#xe012;" d="M 463.637,364.892l-66.745,66.744C 386.34,442.188, 372.276,448, 357.293,448s-29.047-5.812-39.598-16.363l-82.746-82.745
+ c-21.834-21.834-21.834-57.362,0-79.196l 1.373-1.373l 33.941,33.941l-1.373,1.373c-3.066,3.066-3.066,8.247,0,11.313l 82.746,82.746
+ C 353.641,399.7, 356.040,400, 357.292,400s 3.651-0.299, 5.656-2.305l 66.745-66.744c 3.066-3.067, 3.066-8.249, 0.001-11.314l-82.747-82.747
+ c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651,0.3-5.656,2.306l-1.373,1.373l-33.94-33.942l 1.371-1.371
+ c 10.553-10.554, 24.615-16.364, 39.6-16.364s 29.047,5.812, 39.598,16.363l 82.747,82.746C 485.47,307.53, 485.47,343.057, 463.637,364.892
+ zM 275.678,179.678l-33.941-33.941l 1.373-1.373c 2.004-2.004, 2.305-4.403, 2.305-5.655c0-1.253-0.299-3.651-2.303-5.657
+ l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652,0.3-5.657,2.305L 82.305,117.050C 80.3,119.055, 80,121.455, 80,122.707
+ s 0.299,3.65, 2.305,5.656l 82.745,82.744c 2.005,2.006, 4.405,2.306, 5.657,2.306s 3.652-0.3, 5.657-2.306l 1.373-1.371l 33.941,33.94
+ l-1.373,1.373c-10.552,10.552-24.615,16.363-39.598,16.363s-29.046-5.812-39.598-16.363l-82.744-82.743
+ C 37.812,151.754, 32,137.689, 32,122.707s 5.812-29.047, 16.363-39.599l 66.745-66.745C 125.661,5.812, 139.724,0, 154.707,0
+ s 29.046,5.812, 39.598,16.363l 82.747,82.746c 10.552,10.552, 16.361,24.615, 16.361,39.598s-5.812,29.047-16.363,39.598
+ L 275.678,179.678zM 400,61c-4.862,0-9.725,1.854-13.435,5.565l-64,63.999c-7.422,7.42-7.422,19.449,0,26.869
+ c 7.42,7.422, 19.448,7.422, 26.868,0l 64-64c 7.422-7.42, 7.422-19.448,0-26.868C 409.725,62.854, 404.862,61, 400,61zM 304,0c-8.837,0-16,7.163-16,16l0,64 c0,8.837, 7.163,16, 16,16s 16-7.163, 16-16l0-64 C 320,7.163, 312.837,0, 304,0zM 464,160l-64,0 c-8.837,0-16,7.163-16,16s 7.163,16, 16,16l 64,0 c 8.837,0, 16-7.163, 16-16S 472.837,160, 464,160zM 112,387c 4.862,0, 9.725-1.854, 13.435-5.565l 64-64c 7.421-7.42, 7.421-19.449,0-26.869c-7.42-7.422-19.449-7.422-26.869,0
+ l-64,64c-7.421,7.42-7.421,19.449,0,26.869C 102.275,385.146, 107.138,387, 112,387zM 208,448c 8.837,0, 16-7.163, 16-16l0-64 c0-8.837-7.163-16-16-16s-16,7.163-16,16L 192,432 C 192,440.837, 199.163,448, 208,448zM 48,288l 64,0 c 8.837,0, 16-7.163, 16-16s-7.163-16-16-16L 48,256 c-8.837,0-16,7.163-16,16S 39.163,288, 48,288z" />
+<glyph unicode="&#xe011;" d="M 463.637,364.892l-66.745,66.744C 386.34,442.188, 372.276,448, 357.293,448s-29.047-5.812-39.598-16.363l-82.746-82.745
+ c-21.834-21.834-21.834-57.362,0-79.196l 1.373-1.373l 33.941,33.941l-1.373,1.373c-3.066,3.066-3.066,8.247,0,11.313l 82.746,82.746
+ C 353.641,399.7, 356.040,400, 357.292,400s 3.651-0.299, 5.656-2.305l 66.745-66.744c 3.066-3.067, 3.066-8.249, 0.001-11.314l-82.747-82.747
+ c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651,0.3-5.656,2.306l-1.373,1.373l-33.94-33.942l 1.371-1.371
+ c 10.553-10.554, 24.615-16.364, 39.6-16.364s 29.047,5.812, 39.598,16.363l 82.747,82.746C 485.47,307.53, 485.47,343.057, 463.637,364.892
+ zM 275.678,179.678l-33.941-33.941l 1.373-1.373c 2.004-2.004, 2.305-4.403, 2.305-5.655c0-1.253-0.299-3.651-2.303-5.657
+ l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652,0.3-5.657,2.305L 82.305,117.050C 80.3,119.055, 80,121.455, 80,122.707
+ s 0.299,3.65, 2.305,5.656l 82.745,82.744c 2.005,2.006, 4.405,2.306, 5.657,2.306s 3.652-0.3, 5.657-2.306l 1.373-1.371l 33.941,33.94
+ l-1.373,1.373c-10.552,10.552-24.615,16.363-39.598,16.363s-29.046-5.812-39.598-16.363l-82.744-82.743
+ C 37.812,151.754, 32,137.689, 32,122.707s 5.812-29.047, 16.363-39.599l 66.745-66.745C 125.661,5.812, 139.724,0, 154.707,0
+ s 29.046,5.812, 39.598,16.363l 82.747,82.746c 10.552,10.552, 16.361,24.615, 16.361,39.598s-5.812,29.047-16.363,39.598
+ L 275.678,179.678zM 176,125c-4.862,0-9.725,1.855-13.435,5.564c-7.42,7.42-7.42,19.449,0,26.869l 160,160c 7.42,7.42, 19.448,7.42, 26.868,0
+ c 7.422-7.42, 7.422-19.45,0-26.87l-160-160C 185.725,126.855, 180.862,125, 176,125z" />
+<glyph unicode="&#xe010;" d="M 288,339.337L 288,448 l 168.001-168L 288,112L 288,223.048 C 92.547,227.633, 130.5,99.5, 160,0C 16,160, 53.954,345.437, 288,339.337z" />
+<glyph unicode="&#xe00f;" d="M 352,0c 29.5,99.5, 67.453,227.633-128,223.048L 224,112 L 55.999,280L 224,448l0-108.663 C 458.046,345.437, 496,160, 352,0z" />
+<glyph unicode="&#xe00e;" d="M 128.214,267.637c 52.9,0, 95.786-45.585, 95.786-101.819C 224,109.586, 181.114,64, 128.214,64
+ c-52.901,0-95.786,45.585-95.786,101.818L 32,180.364C 32,292.829, 117.77,384, 223.572,384l0-58.182 c-36.55,0-70.913-15.13-96.758-42.602
+ c-4.977-5.289-9.517-10.917-13.612-16.828C 118.094,267.208, 123.105,267.637, 128.214,267.637zM 384.214,267.637c 52.9,0, 95.786-45.585, 95.786-101.819C 480,109.586, 437.114,64, 384.214,64
+ c-52.901,0-95.786,45.585-95.786,101.818L 288,180.364C 288,292.829, 373.77,384, 479.572,384l0-58.182 c-36.55,0-70.913-15.13-96.758-42.602
+ c-4.978-5.289-9.518-10.917-13.612-16.828C 374.094,267.208, 379.105,267.637, 384.214,267.637z" />
+<glyph unicode="&#xe00c;" d="M 32,384L 480,384L 480,320L 32,320zM 192,192L 480,192L 480,128L 192,128zM 192,288L 480,288L 480,224L 192,224zM 32,96L 480,96L 480,32L 32,32zM 32,288L 144,208L 32,128 z" />
+<glyph unicode="&#xe00d;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 320,192L 320,128L 32,128zM 32,288L 320,288L 320,224L 32,224zM 32,96L 480,96L 480,32L 32,32zM 480,288L 368,208L 480,128 z" />
+<glyph unicode="&#xe00b;" d="M 192,416L 480,416L 480,352L 192,352zM 192,256L 480,256L 480,192L 192,192zM 192,96L 480,96L 480,32L 192,32zM 160,215L 160,288L 128,288L 128,448L 64,448L 64,416L 96,416L 96,288L 64,288L 64,256L 128,256L 128,231L 64,201L 64,128L 128,128L 128,96L 64,96L 64,64L 128,64L 128,32L 64,32L 64,0L 160,0L 160,160L 96,160L 96,185 z" />
+<glyph unicode="&#xe00a;" d="M 192,416L 480,416L 480,352L 192,352zM 192,256L 480,256L 480,192L 192,192zM 192,96L 480,96L 480,32L 192,32zM 64,384A32,32 1980 1 1 128,384A32,32 1980 1 1 64,384zM 64,224A32,32 1980 1 1 128,224A32,32 1980 1 1 64,224zM 64,64A32,32 1980 1 1 128,64A32,32 1980 1 1 64,64z" />
+<glyph unicode="&#xe009;" d="M 444,288l-28,0 L 416,416 l 32,0 L 448,448 L 288,448 l0-32 l 32,0 l0-128 L 192,288 L 192,416 l 32,0 L 224,448 L 64,448 l0-32 l 32,0 l0-128 L 68,288 c-19.8,0-36-16.2-36-36l0-216 c0-19.8, 16.2-36, 36-36l 120,0
+ c 19.8,0, 36,16.2, 36,36L 224,192 l 64,0 l0-156 c0-19.8, 16.2-36, 36-36l 120,0 c 19.8,0, 36,16.2, 36,36L 480,252 C 480,271.8, 463.8,288, 444,288z M 174,32L 82,32
+ c-9.9,0-18,7.2-18,16s 8.1,16, 18,16l 92,0 c 9.9,0, 18-7.2, 18-16S 183.9,32, 174,32z M 272,224l-32,0 c-8.8,0-16,7.2-16,16s 7.2,16, 16,16l 32,0
+ c 8.8,0, 16-7.2, 16-16S 280.8,224, 272,224z M 430,32l-92,0 c-9.9,0-18,7.2-18,16s 8.1,16, 18,16l 92,0 c 9.9,0, 18-7.2, 18-16S 439.9,32, 430,32z" />
+<glyph unicode="&#xe008;" d="M 352,288l0,80 c0,8.8-7.2,16-16,16l-80,0 L 256,416 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,384 c-8.801,0-16-7.2-16-16l0-256
+ c0-8.8, 7.199-16, 16-16l 112,0 l0-96 l 192,0 l 96,96L 448,288 L 352,288 z M 160,415.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0
+ c 0.021-0.018, 0.041-0.038, 0.059-0.057L 224,384 l-64,0 L 160,415.943 L 160,415.943z M 96,320l0,32 l 192,0 l0-32 L 96,320 z M 352,45.255L 352,96 l 50.745,0 L 352,45.255z
+ M 416,128l-96,0 l0-96 L 192,32 L 192,256 l 224,0 L 416,128 z" />
+<glyph unicode="&#xe031;" d="M 416,320l-96,0 l0,32 l-96,96L 32,448 l0-352 l 192,0 l0-96 l 288,0 L 512,224 L 416,320z M 416,274.745L 466.745,224L 416,224 L 416,274.745 z M 224,402.745L 274.745,352
+ L 224,352 L 224,402.745 z M 64,416l 128,0 l0-96 l 96,0 l0-192 L 64,128 L 64,416 z M 480,32L 256,32 l0,64 l 64,0 L 320,288 l 64,0 l0-96 l 96,0 L 480,32 z" />
+<glyph unicode="&#xe007;" d="M 432.204,144.934c-23.235,23.235-53.469,34.002-80.541,31.403L 320,208l 96,96c0,0, 64,64,0,128L 256,272L 96,432
+ c-64-64,0-128,0-128l 96-96l-31.663-31.663c-27.072,2.599-57.305-8.169-80.54-31.403c-37.49-37.49-42.556-93.209-11.313-124.45
+ c 31.241-31.241, 86.96-26.177, 124.45,11.313c 23.235,23.234, 34.001,53.469, 31.403,80.54L 256,144l 31.664-31.664
+ c-2.598-27.072, 8.168-57.305, 31.403-80.539c 37.489-37.49, 93.209-42.556, 124.449-11.313
+ C 474.76,51.725, 469.694,107.443, 432.204,144.934z M 176.562,100.711c-1.106-12.166-7.51-24.913-17.57-34.973
+ C 147.886,54.631, 133.452,48, 120.383,48c-5.262,0-12.649,1.114-17.958,6.424c-10.703,10.702-8.688,36.566, 11.313,56.568
+ c 11.106,11.107, 25.54,17.738, 38.609,17.738c 5.262,0, 12.649-1.114, 17.958-6.424C 176.861,115.751, 177.040,105.962, 176.562,100.711z
+ M 256,176c-17.673,0-32,14.327-32,32s 14.327,32, 32,32s 32-14.327, 32-32S 273.673,176, 256,176z M 409.576,54.424
+ c-5.31-5.31-12.696-6.424-17.958-6.424c-13.069,0-27.503,6.631-38.609,17.738c-10.061,10.060-16.464,22.807-17.569,34.973
+ c-0.479,5.251-0.3,15.040, 6.257,21.596c 5.309,5.311, 12.695,6.424, 17.958,6.424c 13.068,0, 27.503-6.631, 38.608-17.737
+ C 418.265,90.99, 420.279,65.126, 409.576,54.424z" />
+<glyph unicode="&#xe006;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 32,288L 480,288L 480,224L 32,224zM 32,96L 480,96L 480,32L 32,32z" />
+<glyph unicode="&#xe004;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 128,288L 384,288L 384,224L 128,224zM 128,96L 384,96L 384,32L 128,32z" />
+<glyph unicode="&#xe005;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 192,288L 480,288L 480,224L 192,224zM 192,96L 480,96L 480,32L 192,32z" />
+<glyph unicode="&#xe003;" d="M 32,384L 480,384L 480,320L 32,320zM 32,192L 480,192L 480,128L 32,128zM 32,288L 320,288L 320,224L 32,224zM 32,96L 320,96L 320,32L 32,32z" />
+<glyph unicode="&#xe02d;" d="M 480,224l-4.571,0 L 347.062,224 c-25.039,17.71-57.215,27.43-91.062,27.43c-44.603,0-82.286,25.121-82.286,54.856
+ c0,29.735, 37.683,54.857, 82.286,54.857c 37.529,0, 70.154-17.788, 79.56-41.143l 56.508,0 c-3.965,25.322-18.79,48.984-42.029,66.413
+ C 324.599,405.493, 291.201,416, 256,416c-35.202,0-68.598-10.507-94.037-29.587c-27.394-20.545-43.106-49.751-43.106-80.127
+ s 15.712-59.582, 43.106-80.127c 0.978-0.733, 1.971-1.449, 2.973-2.158L 36.571,224.001 L 32,224.001 l0-32 l 256.266,0 c 29.104-8.553, 50.021-28.135, 50.021-50.286
+ c0-29.734-37.684-54.855-82.286-54.855c-37.53,0-70.154,17.787-79.559,41.143l-56.508,0 c 3.965-25.32, 18.791-48.984, 42.030-66.413
+ C 187.402,42.508, 220.798,32, 256,32c 35.201,0, 68.599,10.508, 94.037,29.587c 27.395,20.545, 43.104,49.751, 43.104,80.127
+ c0,17.649-5.327,34.896-15.147,50.286L 480,192 L 480,224 z" />
+<glyph unicode="&#xe02c;" d="M 96,64l 288,0 l0-32 L 96,32 L 96,64 zM 320,416l0-192 c0-15.656-7.35-30.812-20.695-42.676C 283.834,167.573, 262.771,160, 240,160c-22.772,0-43.834,7.573-59.304,21.324
+ C 167.35,193.188, 160,208.344, 160,224L 160,416 L 96,416 l0-192 c0-70.691, 64.471-128, 144-128c 79.529,0, 144,57.309, 144,128L 384,416 L 320,416 z" />
+<glyph unicode="&#xe02b;" d="M 416,416l0-32 l-72,0 L 216,64l 72,0 l0-32 L 64,32 l0,32 l 72,0 L 264,384l-72,0 L 192,416 L 416,416 z" />
+<glyph unicode="&#xe02a;" d="M 312.721,232.909C 336.758,251.984, 352,280.337, 352,312c0,57.438-50.145,104-112,104L 128,416 l0-384 l 144,0
+ c 61.856,0, 112,46.562, 112,104C 384,180.098, 354.441,217.781, 312.721,232.909z M 192,328c0,13.255, 10.745,24, 24,24l 33.602,0
+ C 270.809,352, 288,330.51, 288,304s-17.191-48-38.398-48L 192,256 L 192,328 z M 273.6,96L 216,96 c-13.255,0-24,10.745-24,24l0,72 l 81.6,0
+ c 21.209,0, 38.4-21.49, 38.4-48S 294.809,96, 273.6,96z" />
+<glyph unicode="&#xe001;" d="M 425.373,358.627l-66.746,66.745C 346.183,437.818, 321.6,448, 304,448L 96,448 c-17.6,0-32-14.4-32-32l0-384 c0-17.6, 14.4-32, 32-32l 320,0
+ c 17.6,0, 32,14.4, 32,32L 448,304 C 448,321.6, 437.817,346.182, 425.373,358.627z M 402.745,336.001c 3.396-3.398, 6.896-9.581, 9.447-16.001L 320,320
+ L 320,412.193 c 6.42-2.55, 12.602-6.050, 16-9.448L 402.745,336.001z M 415.942,32L 96.057,32 c-0.020,0.017-0.041,0.038-0.057,0.058L 96,415.943
+ c 0.017,0.020, 0.038,0.041, 0.057,0.057L 288,416 l0-128 l 128,0 l0-255.942 C 415.983,32.038, 415.962,32.017, 415.942,32z" />
+<glyph unicode="&#xe000;" d="M 480,40L 480,335.969 L 368.031,448L 72,448 c-22.091,0-40-17.908-40-40l0-368 c0-22.092, 17.909-40, 40-40l 368,0
+ C 462.092,0, 480,17.908, 480,40z M 288,384l 32,0 l0-96 l-32,0 L 288,384 z M 352,64L 160,64 L 160,191.941 c 0.017,0.021, 0.038,0.041, 0.058,0.059l 191.885,0
+ c 0.020-0.018, 0.041-0.038, 0.058-0.059L 352,64L 352,64z M 416,64l-32,0 L 384,192 c0,17.6-14.4,32-32,32L 160,224 c-17.6,0-32-14.4-32-32l0-128 L 96,64 L 96,384
+ l 32,0 l0-96 c0-17.6, 14.4-32, 32-32l 160,0 c 17.6,0, 32,14.4, 32,32l0,85.505 l 64-64.036L 416,64 z" />
+<glyph unicode="&#xe01b;" d="M 32,384l0-352 l 448,0 L 480,384 L 32,384 z M 192,160l0,64 l 128,0 l0-64 L 192,160 z M 320,128l0-64 L 192,64 l0,64 L 320,128 z M 320,320l0-64 L 192,256 l0,64 L 320,320 z M 160,320l0-64 L 64,256 l0,64 L 160,320
+ z M 64,224l 96,0 l0-64 L 64,160 L 64,224 z M 352,224l 96,0 l0-64 l-96,0 L 352,224 z M 352,256l0,64 l 96,0 l0-64 L 352,256 z M 64,128l 96,0 l0-64 L 64,64 L 64,128 z M 352,64l0,64 l 96,0 l0-64 L 352,64 z" />
+<glyph unicode="&#xe021;" d="M 256,410c 49.683,0, 96.391-19.347, 131.521-54.478S 442,273.683, 442,224s-19.348-96.391-54.479-131.521S 305.683,38, 256,38
+ s-96.391,19.348-131.522,54.479S 70,174.317, 70,224s 19.347,96.391, 54.478,131.522S 206.317,410, 256,410 M 256,448
+ C 132.288,448, 32,347.712, 32,224s 100.288-224, 224-224s 224,100.288, 224,224S 379.712,448, 256,448L 256,448zM 160,288A32,32 1980 1 1 224,288A32,32 1980 1 1 160,288zM 288,288A32,32 1980 1 1 352,288A32,32 1980 1 1 288,288zM 256,152c-50.92,0-96.28,18.437-125.583,47.164C 141.98,140.36, 193.806,96, 256,96c 62.194,0, 114.020,44.36, 125.584,103.164
+ C 352.28,170.437, 306.92,152, 256,152z" />
+<glyph unicode="&#xe023;" d="M 240,288L 144,384L 208,448L 32,448L 32,272L 96,336L 192,240 zM 320,240L 416,336L 480,272L 480,448L 304,448L 368,384L 272,288 zM 272,160L 368,64L 304,0L 480,0L 480,176L 416,112L 320,208 zM 192,208L 96,112L 32,176L 32,0L 208,0L 144,64L 240,160 z" />
+<glyph unicode="&#xe01c;" d="M 32,256L 480,256L 480,192L 32,192z" />
+<glyph unicode="&#xe01d;" d="M 32,96l 256,0 l0-64 L 32,32 L 32,96 z M 384,384L 273.721,384 l-91.883-256l-66.144,0 l 91.881,256L 96,384 L 96,448 l 288,0 L 384,384 z M 464.887,32L 400,96.887
+ L 335.113,32L 304,63.113L 368.887,128L 304,192.887L 335.113,224L 400,159.113L 464.887,224L 496,192.887L 431.113,128L 496,63.113
+ L 464.887,32z" />
+<glyph unicode="&#xe022;" d="M 128,416l 256,0 l0-64 L 128,352 L 128,416 z M 448,320L 64,320 c-17.6,0-32-14.4-32-32l0-128 c0-17.6, 14.398-32, 32-32l 64,0 l0-96 l 256,0 l0,96 l 64,0
+ c 17.6,0, 32,14.4, 32,32L 480,288 C 480,305.6, 465.6,320, 448,320z M 352,64L 160,64 L 160,192 l 192,0 L 352,64 z M 455.2,272c0-12.813-10.387-23.2-23.199-23.2
+ S 408.8,259.187, 408.8,272s 10.389,23.2, 23.201,23.2C 444.814,295.2, 455.2,284.813, 455.2,272z" />
+<glyph unicode="&#xe02e;" d="M 192,416c-61.856,0-112-50.144-112-112s 50.144-112, 112-112l0-160 l 64,0 L 256,352 l 32,0 l0-320 l 64,0 L 352,352 l 64,0 L 416,416 L 192,416 z" />
+<glyph unicode="&#xe02f;" d="M 224,416c-61.856,0-112-50.144-112-112s 50.144-112, 112-112l0-160 l 64,0 L 288,352 l 32,0 l0-320 l 64,0 L 384,352 l 64,0 L 448,416 L 224,416 zM 32,32L 144,128L 32,224 z" />
+<glyph unicode="&#xe030;" d="M 160,416C 98.144,416, 48,365.856, 48,304s 50.144-112, 112-112l0-160 l 64,0 L 224,352 l 32,0 l0-320 l 64,0 L 320,352 l 64,0 L 384,416 L 160,416 zM 480,224L 368,128L 480,32 z" />
+<glyph unicode="&#xe026;" d="M 256,288L 320,288L 320,256L 256,256zM 256,96L 320,96L 320,64L 256,64zM 288,192L 352,192L 352,160L 288,160zM 384,192L 384,96L 352,96L 352,64L 416,64L 416,192 zM 192,192L 256,192L 256,160L 192,160zM 160,96L 224,96L 224,64L 160,64zM 160,288L 224,288L 224,256L 160,256zM 96,384L 96,256L 128,256L 128,352L 160,352L 160,384 zM 352,256L 416,256L 416,384L 384,384L 384,288L 352,288 zM 32,448l0-448 l 448,0 L 480,448 L 32,448 z M 448,32L 64,32 L 64,416 l 384,0 L 448,32 zM 96,192L 96,64L 128,64L 128,160L 160,160L 160,192 zM 288,384L 352,384L 352,352L 288,352zM 192,384L 256,384L 256,352L 192,352z" />
+<glyph unicode="&#xe027;" d="M 408,448l 8-192L 96,256 l 8,192l 16,0 l 8-160l 256,0 l 8,160L 408,448 z M 104,0l-8,160l 320,0 l-8-160l-16,0 l-8,128L 128,128 l-8-128L 104,0 zM 32,224L 96,224L 96,192L 32,192zM 128,224L 192,224L 192,192L 128,192zM 224,224L 288,224L 288,192L 224,192zM 320,224L 384,224L 384,192L 320,192zM 416,224L 480,224L 480,192L 416,192z" />
+<glyph unicode="&#xe024;" d="M 480,416L 480,448 l-96,0 c-17.601,0-32-14.4-32-32l0-160 c0-7.928, 2.929-15.201, 7.748-20.807L 208,105l-71,74l-41-35l 112-144l 208,224l 64,0
+ l0,32 l-96,0 L 384,416 L 480,416 zM 128,224l 32,0 L 160,416 c0,17.6-14.4,32-32,32L 64,448 c-17.6,0-32-14.4-32-32l0-192 l 32,0 l0,96 l 64,0 L 128,224 z M 64,352L 64,416 l 64,0 l0-64 L 64,352 zM 320,256l0,48 c0,17.6-4.4,32-22,32c 17.6,0, 22,14.4, 22,32L 320,416 c0,17.6-14.4,32-32,32l-96,0 l0-224 l 96,0 C 305.6,224, 320,238.4, 320,256z
+ M 224,416l 64,0 l0-64 l-64,0 L 224,416 z M 224,320l 64,0 l0-64 l-64,0 L 224,320 z" />
+<glyph unicode="&#xe025;" d="M 224,224l-64,0 l0,64 l 64,0 l0,64 l 64,0 l0-64 l 64,0 l0-64 l-64,0 l0-64 l-64,0 L 224,224 z M 480,192l0-160 L 32,32 L 32,192 l 64,0 l0-96 l 320,0 l0,96 L 480,192 z" />
+<glyph unicode="&#xe017;" d="M 208,128L 112,224L 208,320L 176,352L 48,224L 176,96 zM 336,352L 304,320L 400,224L 304,128L 336,96L 464,224 z" />
+<glyph unicode="&#xe016;" d="M 224,128l 64,0 l0-64 l-64,0 L 224,128 z M 352,352c 17.673,0, 32-14.327, 32-32l0-83 l-114-77l-46,0 l0,32 l 96,64l0,32 L 160,288 l0,64 L 352,352 z M 256,448
+ c-59.833,0-116.083-23.3-158.392-65.608C 55.301,340.083, 32,283.833, 32,224c0-59.832, 23.301-116.084, 65.608-158.392
+ C 139.917,23.3, 196.167,0, 256,0c 59.832,0, 116.084,23.3, 158.392,65.608C 456.7,107.916, 480,164.168, 480,224
+ c0,59.833-23.3,116.083-65.608,158.392C 372.084,424.7, 315.832,448, 256,448z" />
+<glyph unicode="&#xe014;" d="M 448,416L 64,416 c-17.6,0-32-14.4-32-32l0-320 c0-17.6, 14.4-32, 32-32l 384,0 c 17.6,0, 32,14.4, 32,32L 480,384 C 480,401.6, 465.6,416, 448,416z
+ M 448,64.058c-0.006-0.007-0.015-0.014-0.021-0.021L 352,224l-80-64L 160,304L 64.016,64.042c-0.005,0.005-0.011,0.011-0.016,0.016
+ L 64,383.943 c 0.017,0.020, 0.038,0.041, 0.057,0.057l 383.885,0 c 0.020-0.017, 0.041-0.038, 0.058-0.058L 448,64.058 zM 320,304A48,48 1980 1 1 416,304A48,48 1980 1 1 320,304z" />
+<glyph unicode="&#xe015;" d="M 448,416L 64,416 c-17.6,0-32-14.4-32-32l0-320 c0-17.6, 14.4-32, 32-32l 384,0 c 17.6,0, 32,14.4, 32,32L 480,384 C 480,401.6, 465.6,416, 448,416z
+ M 128,64L 64,64 l0,64 l 64,0 L 128,64 z M 128,192L 64,192 l0,64 l 64,0 L 128,192 z M 128,320L 64,320 L 64,384 l 64,0 L 128,320 z M 352,64L 160,64 L 160,384 l 192,0 L 352,64 z M 448,64l-64,0 l0,64 l 64,0 L 448,64 z
+ M 448,192l-64,0 l0,64 l 64,0 L 448,192 z M 448,320l-64,0 L 384,384 l 64,0 L 448,320 zM 192,320L 192,128L 336,224 z" />
+<glyph unicode="&#xe018;" d="M 38.899,327.688l 40.707-25.441C 105.007,342.804, 144,373.974, 190.21,389.37l-15.183,45.547
+ C 118.153,415.968, 70.163,377.604, 38.899,327.688zM 336.973,434.917L 321.79,389.37c 46.211-15.396, 85.202-46.566, 110.604-87.124l 40.706,25.441
+ C 441.837,377.604, 393.847,415.968, 336.973,434.917zM 303.987,127.996c-2.404,0-4.846,0.545-7.143,1.693L 224,166.111L 224,272 c0,8.836, 7.164,16, 16,16s 16-7.164, 16-16l0-86.111
+ l 55.155-27.578c 7.903-3.951, 11.107-13.562, 7.155-21.466C 315.508,131.238, 309.856,127.997, 303.987,127.996zM 256,384C 149.961,384, 64,298.039, 64,192c0-106.039, 85.961-192, 192-192c 106.039,0, 192,85.961, 192,192
+ C 448,298.039, 362.039,384, 256,384z M 256,48c-79.529,0-144,64.471-144,144c0,79.529, 64.471,144, 144,144c 79.529,0, 144-64.471, 144-144
+ C 400,112.471, 335.529,48, 256,48z" />
+<glyph unicode="&#xe019;" d="M 32,252.127c 22.659,24.96, 48.581,46.18, 76.636,62.562C 153.802,341.061, 204.759,355, 256,355
+ c 51.24,0, 102.198-13.939, 147.363-40.312c 28.056-16.382, 53.978-37.602, 76.637-62.562l0,58.716
+ c-16.505,14.059-34.062,26.57-52.434,37.297C 375.063,378.796, 315.737,395, 256,395s-119.064-16.204-171.567-46.86
+ C 66.062,337.413, 48.505,324.901, 32,310.842L 32,252.127 zM 256,320c-91.598,0-172.919-50.278-224-128c 51.081-77.724, 132.402-128, 224-128c 91.598,0, 172.919,50.276, 224,128
+ C 428.919,269.722, 347.598,320, 256,320z M 256,224c0-17.673-14.327-32-32-32s-32,14.327-32,32c0,17.674, 14.327,32, 32,32
+ S 256,241.674, 256,224z M 364.033,131.669C 330.316,111.982, 293.969,102, 256,102s-74.316,9.982-108.033,29.669
+ C 122.19,146.721, 98.659,167.324, 78.91,192c 19.749,24.675, 43.28,45.279, 69.058,60.33c 6.638,3.876, 13.379,7.37, 20.213,10.491
+ C 162.925,250.95, 160,237.817, 160,224c0-53.020, 42.981-96, 96-96c 53.020,0, 96,42.98, 96,96c0,13.817-2.925,26.95-8.18,38.821
+ c 6.834-3.122, 13.575-6.615, 20.213-10.491c 25.777-15.051, 49.308-35.655, 69.058-60.33
+ C 413.342,167.324, 389.811,146.721, 364.033,131.669z" />
+<glyph unicode="&#xe01a;" d="M 325.584,338.083C 313.278,379.064, 311.146,384, 272,384l-32,0 c-39.809,0-41.332-5.076-54.209-48c0-0.001,0-0.001-0.001-0.002
+ L 113.791,96l 56.818,0 l 28.8,96l 113.183,0 l 28.8-96l 56.815,0 L 325.584,338.083z M 218.609,256l 19.2,68c 5.043,16.809, 18.19,15, 18.19,15
+ s 13.147,1.809, 18.19-15l 0.002,0 l 19.2-68L 218.609,256 z" />
+<glyph unicode="&#xe028;" d="M 288,448 C 411.712,448 512,347.712 512,224 C 512,100.288 411.712,0 288,0 L 288,48 C 335.012,48 379.209,66.307 412.451,99.549 C 445.693,132.791 464,176.988 464,224 C 464,271.011 445.693,315.209 412.451,348.451 C 379.209,381.693 335.012,400 288,400 C 240.989,400 196.791,381.693 163.549,348.451 C 137.979,322.882 121.258,290.828 114.896,256 L 208,256 L 96,128 L -16,256 L 66.285,256 C 81.815,364.551 175.154,448 288,448 ZM 384,256 L 384,192 L 256,192 L 256,352 L 320,352 L 320,256 Z" />
+<glyph unicode="&#xe002;" d="M 512,183.771l0,80.458 l-79.572,7.957c-4.093,15.021-10.044,29.274-17.605,42.49l 52.298,63.919L 410.595,435.12l-63.918-52.298
+ c-13.217,7.562-27.471,13.513-42.491,17.604L 296.229,480l-80.458,0 l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604
+ L 101.405,435.12L 44.88,378.595l 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49L0,264.229l0-80.458 l 79.573-7.957
+ c 4.093-15.021, 10.043-29.274, 17.605-42.491L 44.88,69.405l 56.524-56.524l 63.919,52.298c 13.216-7.562, 27.47-13.514, 42.49-17.605
+ L 215.771-32l 80.458,0 l 7.957,79.572c 15.021,4.093, 29.274,10.044, 42.491,17.605l 63.918-52.298l 56.524,56.524l-52.298,63.918
+ c 7.562,13.217, 13.514,27.471, 17.605,42.49L 512,183.771z M 352,192l-64-64l-64,0 l-64,64l0,64 l 64,64l 64,0 l 64-64L 352,192 z" />
+<glyph unicode="&#xe01f;" d="M 384,377 L 384,352 L 448,352 L 448,320 L 352,320 L 352,393 L 416,423 L 416,448 L 352,448 L 352,480 L 448,480 L 448,407 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" />
+<glyph unicode="&#xe01e;" d="M 384,25 L 384,0 L 448,0 L 448-32 L 352-32 L 352,41 L 416,71 L 416,96 L 352,96 L 352,128 L 448,128 L 448,55 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" />
+<glyph unicode="&#xe035;" d="M 352,288l0,80 c0,8.8-7.2,16-16,16l-80,0 L 256,416 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,384 c-8.801,0-16-7.2-16-16
+ l0-256 c0-8.8, 7.199-16, 16-16l 112,0 l0-96 l 288,0 L 448,288 L 352,288 z M 160,415.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0
+ c 0.021-0.018, 0.041-0.038, 0.059-0.057L 224,384 l-64,0 L 160,415.943 z M 96,320l0,32 l 192,0 l0-32 L 96,320 z M 416,32L 192,32 L 192,256 l 224,0 L 416,32 zM 224,224L 224,160L 240,160L 256,192L 288,192L 288,96L 264,96L 264,64L 344,64L 344,96L 320,96L 320,192L 352,192L 368,160L 384,160L 384,224 z" />
+<glyph unicode="&#xe032;" d="M 384,352L 416,352L 416,320L 384,320zM 320,288L 352,288L 352,256L 320,256zM 320,224L 352,224L 352,192L 320,192zM 320,160L 352,160L 352,128L 320,128zM 256,224L 288,224L 288,192L 256,192zM 256,160L 288,160L 288,128L 256,128zM 192,160L 224,160L 224,128L 192,128zM 384,288L 416,288L 416,256L 384,256zM 384,224L 416,224L 416,192L 384,192zM 384,160L 416,160L 416,128L 384,128zM 384,96L 416,96L 416,64L 384,64zM 320,96L 352,96L 352,64L 320,64zM 256,96L 288,96L 288,64L 256,64zM 192,96L 224,96L 224,64L 192,64zM 128,96L 160,96L 160,64L 128,64z" />
+<glyph unicode="&#xe034;" d="M 464,416L 256,416L 240,448L 64,448L 32,384L 480,384 zM 420.17,128L 464,128 l 16,224L 32,352 l 32-320l 178.040,0 C 189.599,50.888, 152,101.133, 152,160c0,74.991, 61.009,136, 136,136
+ c 74.99,0, 136-61.009, 136-136C 424,149.161, 422.689,138.425, 420.17,128zM 437.498,55.125l-67.248,55.346C 378.977,124.932, 384,141.878, 384,160c0,53.020-42.98,96-96,96s-96-42.98-96-96
+ s 42.98-96, 96-96c 18.122,0, 35.069,5.023, 49.529,13.75l 55.346-67.248c 11.481-13.339, 31.059-14.070, 43.503-1.626l 2.746,2.746
+ C 451.568,24.066, 450.837,43.644, 437.498,55.125z M 288,98c-34.242,0-62,27.758-62,62s 27.758,62, 62,62s 62-27.758, 62-62
+ S 322.242,98, 288,98z" />
+<glyph unicode="&#x20;" horiz-adv-x="256" />
+</font></defs></svg> \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.ttf b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.ttf
new file mode 100755
index 00000000..841c79c1
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.ttf
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.woff b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.woff
new file mode 100755
index 00000000..ad14a240
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon-small.woff
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.eot b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.eot
new file mode 100755
index 00000000..eed4f814
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.eot
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.svg b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.svg
new file mode 100755
index 00000000..727f61af
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.svg
@@ -0,0 +1,153 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+This is a custom SVG font generated by IcoMoon.
+<iconset grid="16"></iconset>
+</metadata>
+<defs>
+<font id="icomoon" horiz-adv-x="512" >
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
+<glyph unicode="&#xe034;" d="M 464,416L 256,416L 240,448L 64,448L 32,384L 480,384 zM 452.17,128l 37.43,0 L 512,352L0,352 l 32-320l 242.040,0 C 221.599,50.888, 184,101.133, 184,160c0,74.991, 61.009,136, 136,136
+ c 74.99,0, 136-61.009, 136-136C 456,149.161, 454.689,138.425, 452.17,128zM 501.498,23.125l-99.248,87.346C 410.977,124.931, 416,141.878, 416,160c0,53.020-42.98,96-96,96s-96-42.98-96-96
+ s 42.98-96, 96-96c 18.122,0, 35.069,5.023, 49.529,13.75l 87.346-99.248c 11.481-13.339, 31.059-14.070, 43.503-1.626l 2.746,2.746
+ C 515.568-7.934, 514.837,11.644, 501.498,23.125z M 320,98c-34.242,0-62,27.758-62,62s 27.758,62, 62,62s 62-27.758, 62-62
+ S 354.242,98, 320,98z" />
+<glyph unicode="&#xe032;" d="M 384,352L 416,352L 416,320L 384,320zM 320,288L 352,288L 352,256L 320,256zM 320,224L 352,224L 352,192L 320,192zM 320,160L 352,160L 352,128L 320,128zM 256,224L 288,224L 288,192L 256,192zM 256,160L 288,160L 288,128L 256,128zM 192,160L 224,160L 224,128L 192,128zM 384,288L 416,288L 416,256L 384,256zM 384,224L 416,224L 416,192L 384,192zM 384,160L 416,160L 416,128L 384,128zM 384,96L 416,96L 416,64L 384,64zM 320,96L 352,96L 352,64L 320,64zM 256,96L 288,96L 288,64L 256,64zM 192,96L 224,96L 224,64L 192,64zM 128,96L 160,96L 160,64L 128,64z" />
+<glyph unicode="&#xe031;" d="M 416,352l-96,0 L 320,384 L 224,480L0,480 l0-384 l 192,0 l0-128 l 320,0 L 512,256 L 416,352z M 416,306.745L 466.745,256L 416,256 L 416,306.745 z M 224,434.745L 274.745,384L 224,384
+ L 224,434.745 z M 32,448l 160,0 l0-96 l 96,0 l0-224 L 32,128 L 32,448 z M 480,0L 224,0 l0,96 l 96,0 L 320,320 l 64,0 l0-96 l 96,0 L 480,0 z" />
+<glyph unicode="&#xe030;" d="M 128,448 L 384,448 L 384,384 L 320,384 L 320,0 L 256,0 L 256,384 L 192,384 L 192,0 L 128,0 L 128,224 C 66.144,224 16,274.144 16,336 C 16,397.856 66.144,448 128,448 ZM 480,32L 352,144L 480,256 z" />
+<glyph unicode="&#xe02f;" d="M 224,448 L 480,448 L 480,384 L 416,384 L 416,0 L 352,0 L 352,384 L 288,384 L 288,0 L 224,0 L 224,224 C 162.144,224 112,274.144 112,336 C 112,397.856 162.144,448 224,448 ZM 32,256L 160,144L 32,32 z" />
+<glyph unicode="&#xe02e;" d="M 192,448 L 448,448 L 448,384 L 384,384 L 384,0 L 320,0 L 320,384 L 256,384 L 256,0 L 192,0 L 192,224 C 130.144,224 80,274.144 80,336 C 80,397.856 130.144,448 192,448 Z" />
+<glyph unicode="&#xe02d;" d="M 365.71,221.482 C 397.67,197.513 416,163.439 416,128 C 416,92.561 397.67,58.487 365.71,34.518 C 336.031,12.259 297.068,0 256,0 C 214.931,0 175.969,12.259 146.29,34.518 C 114.33,58.487 96,92.561 96,128 L 160,128 C 160,93.309 203.963,64 256,64 C 308.037,64 352,93.309 352,128 C 352,162.691 308.037,192 256,192 C 214.931,192 175.969,204.259 146.29,226.518 C 114.33,250.488 96,284.561 96,320 C 96,355.439 114.33,389.512 146.29,413.482 C 175.969,435.741 214.931,448 256,448 C 297.068,448 336.031,435.741 365.71,413.482 C 397.67,389.512 416,355.439 416,320 L 352,320 C 352,354.691 308.037,384 256,384 C 203.963,384 160,354.691 160,320 C 160,285.309 203.963,256 256,256 C 297.068,256 336.031,243.741 365.71,221.482 ZM0,224L 512,224L 512,192L0,192z" />
+<glyph unicode="&#xe02c;" d="M 352,448 L 416,448 L 416,240 C 416,160.471 344.366,96 256,96 C 167.635,96 96,160.471 96,240 L 96,448 L 160,448 L 160,240 C 160,219.917 169.119,200.648 185.677,185.747 C 204.125,169.145 229.1,160 256,160 C 282.9,160 307.875,169.145 326.323,185.747 C 342.881,200.648 352,219.917 352,240 L 352,448 ZM 96,64L 416,64L 416,0L 96,0z" />
+<glyph unicode="&#xe02b;" d="M 448,448 L 448,416 L 384,416 L 224,32 L 288,32 L 288,0 L 64,0 L 64,32 L 128,32 L 288,416 L 224,416 L 224,448 Z" />
+<glyph unicode="&#xe02a;" d="M 353.94,237.674C 372.689,259.945, 384,288.678, 384,320c0,70.58-57.421,128-128,128l-64,0 l-64,0 L 96,448 l0-448 l 32,0 l 64,0 l 96,0
+ c 70.579,0, 128,57.421, 128,128C 416,174.478, 391.101,215.248, 353.94,237.674z M 192,384l 50.75,0 c 27.984,0, 50.75-28.71, 50.75-64
+ s-22.766-64-50.75-64L 192,256 L 192,384 z M 271.5,64L 192,64 L 192,192 l 79.5,0 c 29.225,0, 53-28.71, 53-64S 300.725,64, 271.5,64z" />
+<glyph unicode="&#xe029;" d="M 192,64L 288,64L 288-32L 192-32zM 400,448 C 426.51,448 448,426.51 448,400 L 448,256 L 288,160 L 288,96 L 192,96 L 192,192 L 352,288 L 352,352 L 96,352 L 96,448 L 400,448 Z" />
+<glyph unicode="&#xe028;" d="M 288,448 C 411.712,448 512,347.712 512,224 C 512,100.288 411.712,0 288,0 L 288,48 C 335.012,48 379.209,66.307 412.451,99.549 C 445.693,132.791 464,176.988 464,224 C 464,271.011 445.693,315.209 412.451,348.451 C 379.209,381.693 335.012,400 288,400 C 240.989,400 196.791,381.693 163.549,348.451 C 137.979,322.882 121.258,290.828 114.896,256 L 208,256 L 96,128 L -16,256 L 66.285,256 C 81.815,364.551 175.154,448 288,448 ZM 384,256 L 384,192 L 256,192 L 256,352 L 320,352 L 320,256 Z" />
+<glyph unicode="&#xe027;" d="M0,224L 64,224L 64,192L0,192zM 96,224L 192,224L 192,192L 96,192zM 224,224L 288,224L 288,192L 224,192zM 320,224L 416,224L 416,192L 320,192zM 448,224L 512,224L 512,192L 448,192zM 440,480 L 448,256 L 64,256 L 72,480 L 88,480 L 96,288 L 416,288 L 424,480 ZM 72-32 L 64,160 L 448,160 L 440-32 L 424-32 L 416,128 L 96,128 L 88-32 Z" />
+<glyph unicode="&#xe026;" d="M 192,384L 256,384L 256,352L 192,352zM 288,384L 352,384L 352,352L 288,352zM 448,384 L 448,256 L 352,256 L 352,288 L 416,288 L 416,352 L 384,352 L 384,384 ZM 160,288L 224,288L 224,256L 160,256zM 256,288L 320,288L 320,256L 256,256zM 96,352 L 96,288 L 128,288 L 128,256 L 64,256 L 64,384 L 160,384 L 160,352 ZM 192,192L 256,192L 256,160L 192,160zM 288,192L 352,192L 352,160L 288,160zM 448,192 L 448,64 L 352,64 L 352,96 L 416,96 L 416,160 L 384,160 L 384,192 ZM 160,96L 224,96L 224,64L 160,64zM 256,96L 320,96L 320,64L 256,64zM 96,160 L 96,96 L 128,96 L 128,64 L 64,64 L 64,192 L 160,192 L 160,160 ZM 480,448 L 32,448 L 32,0 L 480,0 L 480,448 Z M 512,480 L 512,480 L 512-32 L 0-32 L 0,480 L 512,480 Z" />
+<glyph unicode="&#xe025;" d="M 224,192 L 128,192 L 128,256 L 224,256 L 224,352 L 288,352 L 288,256 L 384,256 L 384,192 L 288,192 L 288,96 L 224,96 ZM 512,160 L 512-32 L 0-32 L 0,160 L 64,160 L 64,32 L 448,32 L 448,160 Z" />
+<glyph unicode="&#xe024;" d="M 64,352l 64,0 l0-96 l 32,0 L 160,448 c0,17.6-14.4,32-32,32L 64,480 C 46.4,480, 32,465.6, 32,448l0-192 l 32,0 L 64,352 z M 64,448l 64,0 l0-64 L 64,384 L 64,448 z M 480,448L 480,480 l-96,0
+ c-17.601,0-32-14.4-32-32l0-160 c0-17.6, 14.399-32, 32-32l 96,0 l0,32 l-96,0 L 384,448 L 480,448 z M 320,400L 320,448 c0,17.6-14.4,32-32,32l-96,0 l0-224 l 96,0
+ c 17.6,0, 32,14.4, 32,32l0,48 c0,17.6-4.4,32-22,32C 315.6,368, 320,382.4, 320,400z M 288,288l-64,0 l0,64 l 64,0 L 288,288 z M 288,384l-64,0 L 224,448 l 64,0 L 288,384 zM 416,192 L 208-32 L 96,112 L 137,147 L 208,73 L 384,224 Z" />
+<glyph unicode="&#xe023;" d="M 512,480 L 512,288 L 442.87,357.13 L 336.87,251.13 L 283.13,304.87 L 389.13,410.87 L 320,480 ZM 122.87,410.87 L 228.87,304.87 L 175.13,251.13 L 69.13,357.13 L 0,288 L 0,480 L 192,480 ZM 442.87,90.87 L 512,160 L 512-32 L 320-32 L 389.13,37.13 L 283.13,143.13 L 336.87,196.87 ZM 228.87,143.13 L 122.87,37.13 L 192-32 L 0-32 L 0,160 L 69.13,90.87 L 175.13,196.87 Z" />
+<glyph unicode="&#xe022;" d="M 128,448L 384,448L 384,384L 128,384zM 480,352L 32,352 C 14.4,352,0,337.6,0,320l0-160 c0-17.6, 14.398-32, 32-32l 96,0 l0-128 l 256,0 L 384,128 l 96,0 c 17.6,0, 32,14.4, 32,32L 512,320
+ C 512,337.6, 497.6,352, 480,352z M 352,32L 160,32 L 160,192 l 192,0 L 352,32 z M 487.2,304c0-12.813-10.387-23.2-23.199-23.2
+ c-12.813,0-23.201,10.387-23.201,23.2s 10.388,23.2, 23.201,23.2C 476.814,327.2, 487.2,316.813, 487.2,304z" />
+<glyph unicode="&#xe021;" d="M 256,480C 114.615,480,0,365.386,0,224c0-141.385, 114.614-256, 256-256c 141.385,0, 256,114.615, 256,256
+ C 512,365.386, 397.385,480, 256,480z M 256,8c-119.293,0-216,96.706-216,216c0,119.293, 96.707,216, 216,216c 119.295,0, 216-96.707, 216-216
+ C 472,104.706, 375.295,8, 256,8z M 192,320c0-17.673-14.327-32-32-32s-32,14.327-32,32s 14.327,32, 32,32S 192,337.673, 192,320z
+ M 384,320c0-17.673-14.326-32-32-32s-32,14.327-32,32s 14.326,32, 32,32S 384,337.673, 384,320zM 256,154 C 326.537,154 387.344,182.766 415.231,215.596 C 404.795,129.986 337.087,64 256,64 C 174.941,64 107.251,130.013 96.778,215.584 C 124.671,182.761 185.471,154 256,154 Z" />
+<glyph unicode="&#xe020;" d="M 352,32 L 480,32 L 512,96 L 512-32 L 320-32 L 320,75.107 C 385.556,103.349 432,173.688 432,256 C 432,363.216 353.201,447.133 256,447.133 C 158.797,447.133 80,363.217 80,256 C 80,173.688 126.443,103.349 192,75.107 L 192-32 L 0-32 L 0,96 L 32,32 L 160,32 L 160,48.295 C 66.185,81.525 0,161.996 0,256 C 0,379.712 114.615,480 256,480 C 397.385,480 512,379.712 512,256 C 512,161.996 445.815,81.525 352,48.295 L 352,32 Z" />
+<glyph unicode="&#xe01f;" d="M 384,377 L 384,352 L 448,352 L 448,320 L 352,320 L 352,393 L 416,423 L 416,448 L 352,448 L 352,480 L 448,480 L 448,407 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" />
+<glyph unicode="&#xe01e;" d="M 384,25 L 384,0 L 448,0 L 448-32 L 352-32 L 352,41 L 416,71 L 416,96 L 352,96 L 352,128 L 448,128 L 448,55 ZM 338,352L 270,352L 176,258L 82,352L 14,352L 142,224L 14,96L 82,96L 176,190L 270,96L 338,96L 210,224 z" />
+<glyph unicode="&#xe01d;" d="M0,32L 288,32L 288-32L0-32zM 96,480L 448,480L 448,416L 96,416zM 138.694,64 L 241.038,456.082 L 302.963,439.918 L 204.838,64 ZM 464.887-32 L 400,32.887 L 335.113-32 L 304-0.887 L 368.887,64 L 304,128.887 L 335.113,160 L 400,95.113 L 464.887,160 L 496,128.887 L 431.113,64 L 496-0.887 Z" />
+<glyph unicode="&#xe01c;" d="M0,256L 512,256L 512,192L0,192z" />
+<glyph unicode="&#xe01b;" d="M0,448l0-448 l 512,0 L 512,448 L0,448 z M 192,160l0,96 l 128,0 l0-96 L 192,160 z M 320,128l0-96 L 192,32 l0,96 L 320,128 z M 320,384l0-96 L 192,288 L 192,384 L 320,384 z M 160,384l0-96 L 32,288 L 32,384 L 160,384 z
+ M 32,256l 128,0 l0-96 L 32,160 L 32,256 z M 352,256l 128,0 l0-96 L 352,160 L 352,256 z M 352,288L 352,384 l 128,0 l0-96 L 352,288 z M 32,128l 128,0 l0-96 L 32,32 L 32,128 z M 352,32l0,96 l 128,0 l0-96 L 352,32 z" />
+<glyph unicode="&#xe01a;" d="M 161.009,64l 28.8,96l 132.382,0 l 28.8-96l 56.816,0 L 311.809,384L 200.191,384 l-96-320L 161.009,64 z M 237.809,320l 36.382,0 l 28.8-96l-93.982,0
+ L 237.809,320z" />
+<glyph unicode="&#xe019;" d="M 256,320C 151.316,320, 58.378,269.722,0,192c 58.378-77.723, 151.316-128, 256-128c 104.684,0, 197.622,50.277, 256,128
+ C 453.622,269.722, 360.684,320, 256,320z M 224,256c 17.673,0, 32-14.327, 32-32s-14.327-32-32-32s-32,14.327-32,32S 206.327,256, 224,256z
+ M 386.808,127.352c-19.824-10.129-40.826-17.931-62.423-23.188C 302.141,98.746, 279.134,96, 256,96
+ c-23.133,0-46.141,2.746-68.384,8.162c-21.597,5.259-42.599,13.061-62.423,23.188c-31.51,16.101-60.111,38.205-83.82,64.649
+ c 23.709,26.444, 52.31,48.55, 83.82,64.649c 16.168,8.261, 33.121,14.973, 50.541,20.020C 165.79,261.547, 160,243.451, 160,224
+ c0-53.020, 42.981-96, 96-96c 53.019,0, 96,42.98, 96,96c0,19.451-5.791,37.547-15.733,52.67c 17.419-5.048, 34.372-11.76, 50.541-20.021
+ c 31.511-16.099, 60.109-38.204, 83.819-64.649C 446.917,165.557, 418.318,143.45, 386.808,127.352z M 430.459,358.139
+ C 376.099,385.916, 317.403,400, 256,400c-61.403,0-120.099-14.084-174.459-41.861C 52.155,343.123, 24.675,324.187,0,302.101l0-54.603
+ c 27.669,29.283, 60.347,53.877, 96.097,72.145C 145.907,345.095, 199.706,358, 256,358s 110.093-12.905, 159.902-38.358
+ c 35.751-18.268, 68.429-42.862, 96.098-72.145L 512,302.1 C 487.325,324.187, 459.846,343.123, 430.459,358.139z" />
+<glyph unicode="&#xe018;" d="M 256,384C 149.962,384, 64,298.039, 64,192s 85.961-192, 192-192c 106.037,0, 192,85.961, 192,192S 362.037,384, 256,384z
+ M 357.822,90.177C 330.626,62.979, 294.464,48, 256,48s-74.625,14.979-101.823,42.177C 126.979,117.374, 112,153.536, 112,192
+ s 14.979,74.625, 42.177,101.823C 181.375,321.021, 217.536,336, 256,336s 74.626-14.979, 101.821-42.177
+ C 385.022,266.625, 400,230.464, 400,192S 385.021,117.374, 357.822,90.177zM 162.965,378.069l-21.47,42.939C 92.058,396.24, 51.76,355.942, 26.992,306.504l 42.938-21.47
+ C 90.054,325.202, 122.796,357.945, 162.965,378.069zM 442.067,285.035l 42.939,21.469C 460.24,355.942, 419.943,396.24, 370.504,421.008l-21.472-42.939
+ C 389.201,357.945, 421.944,325.203, 442.067,285.035zM 256,288l-32,0 l0-96 c0-5.055, 2.35-9.555, 6.011-12.486l-0.006-0.008l 80-64l 19.988,24.988L 256,199.689L 256,288 z" />
+<glyph unicode="&#xe017;" d="M 160,352L 32,224L 160,96L 224,96L 96,224L 224,352 zM 352,352L 288,352L 416,224L 288,96L 352,96L 480,224 z" />
+<glyph unicode="&#xe016;" d="M 224,128L 288,128L 288,64L 224,64zM 352,352 C 369.673,352 384,337.673 384,320 L 384,224 L 288,160 L 224,160 L 224,192 L 320,256 L 320,288 L 160,288 L 160,352 L 352,352 ZM 256,432 C 200.441,432 148.208,410.364 108.922,371.078 C 69.636,331.792 48,279.559 48,224 C 48,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16 256,16 C 311.559,16 363.792,37.636 403.078,76.922 C 442.364,116.208 464,168.441 464,224 C 464,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432 256,432 Z M 256,480 L 256,480 C 397.385,480 512,365.385 512,224 C 512,82.615 397.385-32 256-32 C 114.615-32 0,82.615 0,224 C 0,365.385 114.615,480 256,480 Z" />
+<glyph unicode="&#xe015;" d="M0,416l0-384 l 512,0 L 512,416 L0,416 z M 96,64L 32,64 l0,64 l 64,0 L 96,64 z M 96,192L 32,192 l0,64 l 64,0 L 96,192 z M 96,320L 32,320 L 32,384 l 64,0 L 96,320 z M 384,64L 128,64 L 128,384 l 256,0 L 384,64 z
+ M 480,64l-64,0 l0,64 l 64,0 L 480,64 z M 480,192l-64,0 l0,64 l 64,0 L 480,192 z M 480,320l-64,0 L 416,384 l 64,0 L 480,320 zM 192,320L 192,128L 320,224 z" />
+<glyph unicode="&#xe014;" d="M0,416l0-416 l 512,0 L 512,416 L0,416 z M 480,32L 32,32 L 32,384 l 448,0 L 480,32 zM 352,304A48,48 1980 1 0 448,304A48,48 1980 1 0 352,304zM 448,64 L 64,64 L 160,320 L 288,160 L 352,208 Z" />
+<glyph unicode="&#xe013;" d="M 96,480l0-512 l 160,160l 160-160L 416,480 L 96,480 z M 384,45.255l-128,128l-128-128L 128,448 l 256,0 L 384,45.255 z" />
+<glyph unicode="&#xe012;" d="M 238.444,142.443c 2.28-4.524, 3.495-9.579, 3.495-14.848c0-8.808-3.372-17.029-9.496-23.154l-81.69-81.69
+ c-6.124-6.124-14.348-9.496-23.154-9.496s-17.030,3.372-23.154,9.496l-49.69,49.69c-6.124,6.125-9.496,14.348-9.496,23.154
+ s 3.372,17.030, 9.496,23.154l 81.69,81.691c 6.124,6.123, 14.348,9.496, 23.154,9.496c 5.269,0, 10.322-1.215, 14.848-3.494l 32.669,32.668
+ c-13.935,10.705-30.72,16.080-47.517,16.080c-19.993,0-39.986-7.583-55.154-22.751l-81.69-81.691
+ c-30.335-30.335-30.335-79.975,0-110.309l 49.69-49.691c 15.167-15.166, 35.16-22.75, 55.153-22.75
+ c 19.994,0, 39.987,7.584, 55.154,22.751l 81.69,81.69c 27.91,27.91, 30.119,72.149, 6.672,102.673L 238.444,142.443zM 489.248,407.558l-49.69,49.691C 424.391,472.417, 404.398,480, 384.404,480c-19.993,0-39.985-7.583-55.153-22.751l-81.691-81.691
+ c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0,8.808, 3.372,17.030, 9.496,23.154
+ l 81.691,81.691c 6.123,6.124, 14.347,9.497, 23.153,9.497c 8.808,0, 17.030-3.373, 23.154-9.497l 49.69-49.691
+ c 6.124-6.124, 9.496-14.347, 9.496-23.154c0-8.807-3.372-17.030-9.496-23.154l-81.69-81.691c-6.124-6.124-14.347-9.496-23.154-9.496
+ c-5.268,0-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.080, 47.517-16.080c 19.994,0, 39.987,7.584, 55.154,22.752
+ l 81.69,81.69C 519.584,327.584, 519.584,377.223, 489.248,407.558zM 116.684,340.688L 20.687,436.685L 43.315,459.313L 139.312,363.316zM 192,480L 224,480L 224,384L 192,384zM0,288L 96,288L 96,256L0,256zM 395.316,107.312L 491.314,11.314L 468.686-11.314L 372.688,84.684zM 288,64L 320,64L 320-32L 288-32zM 416,192L 512,192L 512,160L 416,160z" />
+<glyph unicode="&#xe011;" d="M 160,128c 8.8-8.8, 23.637-8.363, 32.971,0.971L 351.030,287.029C 360.364,296.363, 360.8,311.2, 352,320
+ s-23.637,8.363-32.971-0.971L 160.971,160.971C 151.637,151.637, 151.2,136.8, 160,128zM 238.444,142.444c 2.28-4.525, 3.495-9.58, 3.495-14.848c0-8.808-3.372-17.030-9.496-23.154l-81.691-81.691
+ c-6.124-6.124-14.347-9.496-23.154-9.496s-17.030,3.372-23.154,9.496l-49.691,49.691c-6.124,6.124-9.496,14.347-9.496,23.154
+ s 3.372,17.030, 9.496,23.154l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497c 5.268,0, 10.322-1.215, 14.848-3.495l 32.669,32.669
+ c-13.935,10.705-30.72,16.080-47.517,16.080c-19.993,0-39.986-7.583-55.154-22.751l-81.691-81.691
+ c-30.335-30.335-30.335-79.974,0-110.309l 49.691-49.691C 87.611-24.416, 107.604-32, 127.597-32
+ c 19.994,0, 39.987,7.584, 55.154,22.751l 81.691,81.691c 27.91,27.91, 30.119,72.149, 6.672,102.672L 238.444,142.444zM 489.249,407.558l-49.691,49.691C 424.391,472.417, 404.398,480, 384.404,480c-19.993,0-39.986-7.583-55.154-22.751l-81.691-81.691
+ c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0,8.808, 3.372,17.030, 9.496,23.154
+ l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497s 17.030-3.373, 23.154-9.497l 49.691-49.691
+ c 6.124-6.124, 9.496-14.347, 9.496-23.154s-3.372-17.030-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496
+ c-5.268,0-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.080, 47.517-16.080c 19.994,0, 39.987,7.584, 55.154,22.751
+ l 81.691,81.691C 519.584,327.584, 519.584,377.223, 489.249,407.558z" />
+<glyph unicode="&#xe010;" d="M 288,355.814L 288,480 l 192-192L 288,96L 288,222.912 C 64.625,228.153, 74.206,71.016, 131.070-32
+ C-9.286,119.707, 20.52,362.785, 288,355.814z" />
+<glyph unicode="&#xe00f;" d="M 380.931-32C 437.794,71.016, 447.375,228.153, 224,222.912L 224,96 L 32,288L 224,480l0-124.186
+ C 491.481,362.785, 521.285,119.707, 380.931-32z" />
+<glyph unicode="&#xe00e;" d="M 112.5,256 C 174.356,256 224.5,205.855 224.5,144 C 224.5,82.144 174.356,32 112.5,32 C 50.644,32 0.5,82.144 0.5,144 L 0,160 C 0,283.712 100.288,384 224,384 L 224,320 C 181.263,320 141.083,303.357 110.863,273.137 C 105.046,267.319 99.737,261.129 94.948,254.627 C 100.667,255.527 106.528,256 112.5,256 ZM 400.5,256 C 462.355,256 512.5,205.855 512.5,144 C 512.5,82.144 462.355,32 400.5,32 C 338.645,32 288.5,82.144 288.5,144 L 288,160 C 288,283.712 388.288,384 512,384 L 512,320 C 469.263,320 429.083,303.357 398.863,273.137 C 393.045,267.319 387.736,261.129 382.947,254.627 C 388.667,255.527 394.527,256 400.5,256 Z" />
+<glyph unicode="&#xe00d;" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,256L 512,256L 512,192L 192,192zM 192,160L 512,160L 512,96L 192,96zM0,64L 512,64L 512,0L0,0zM 128,320 L 128,128 L 0,224 Z" />
+<glyph unicode="&#xe00c;" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,256L 512,256L 512,192L 192,192zM 192,160L 512,160L 512,96L 192,96zM0,64L 512,64L 512,0L0,0zM 0,128 L 0,320 L 128,224 Z" />
+<glyph unicode="&#xe00b;" d="M 192,64L 512,64L 512,0L 192,0zM 192,256L 512,256L 512,192L 192,192zM 192,448L 512,448L 512,384L 192,384zM 96,480 L 96,352 L 64,352 L 64,448 L 32,448 L 32,480 ZM 64,217 L 64,192 L 128,192 L 128,160 L 32,160 L 32,233 L 96,263 L 96,288 L 32,288 L 32,320 L 128,320 L 128,247 ZM 128,128 L 128-32 L 32-32 L 32,0 L 96,0 L 96,32 L 32,32 L 32,64 L 96,64 L 96,96 L 32,96 L 32,128 Z" />
+<glyph unicode="&#xe00a;" d="M 192,448l 320,0 l0-64 L 192,384 L 192,448 z M 192,256l 320,0 l0-64 L 192,192 L 192,256 z M 192,64l 320,0 l0-64 L 192,0 L 192,64 zM0,416A64,64 1980 1 0 128,416A64,64 1980 1 0 0,416zM0,224A64,64 1980 1 0 128,224A64,64 1980 1 0 0,224zM0,32A64,64 1980 1 0 128,32A64,64 1980 1 0 0,32z" />
+<glyph unicode="&#xe009;" d="M 32,480L 224,480L 224,448L 32,448zM 288,480L 480,480L 480,448L 288,448zM 476,320l-28,0 L 448,448 L 320,448 l0-128 L 192,320 L 192,448 L 64,448 l0-128 L 36,320 c-19.8,0-36-16.2-36-36l0-280 c0-19.8, 16.2-36, 36-36l 152,0 c 19.8,0, 36,16.2, 36,36L 224,192 l 64,0
+ l0-188 c0-19.8, 16.2-36, 36-36l 152,0 c 19.8,0, 36,16.2, 36,36L 512,284 C 512,303.8, 495.8,320, 476,320z M 174,0L 50,0 c-9.9,0-18,7.2-18,16
+ s 8.1,16, 18,16l 124,0 c 9.9,0, 18-7.2, 18-16S 183.9,0, 174,0z M 272,224l-32,0 c-8.8,0-16,7.2-16,16s 7.2,16, 16,16l 32,0 c 8.8,0, 16-7.2, 16-16
+ S 280.8,224, 272,224z M 462,0L 338,0 c-9.9,0-18,7.2-18,16s 8.1,16, 18,16l 124,0 c 9.9,0, 18-7.2, 18-16S 471.9,0, 462,0z" />
+<glyph unicode="&#xe008;" d="M 416,320L 416,400 c0,8.8-7.2,16-16,16L 288,416 L 288,448 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,416 c-8.801,0-16-7.2-16-16l0-320
+ c0-8.8, 7.199-16, 16-16l 144,0 l0-96 l 224,0 l 96,96L 512,320 L 416,320 z M 192,447.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0
+ c 0.021-0.018, 0.041-0.038, 0.059-0.057L 256,416 l-64,0 L 192,447.943 z M 96,352L 96,384 l 256,0 l0-32 L 96,352 z M 416,13.255L 416,64 l 50.745,0 L 416,13.255z M 480,96l-96,0 l0-96
+ L 224,0 L 224,288 l 256,0 L 480,96 z" />
+<glyph unicode="&#xe007;" d="M 445.387,125.423c-22.827,22.778-51.864,34.536-78.973,34.536l-14.556,0 l-31.952,32.004l 127.81,128.019
+ c 31.952,32.005, 31.952,96.014,0,128.019L 256.001,255.973L 64.285,448c-31.952-32.004-31.952-96.014,0-128.019l 127.811-128.017
+ l-31.953-32.004l-14.557,0 c-27.11,0-56.146-11.759-78.974-34.538c-40.811-40.721-46.325-101.242-12.315-135.175
+ C 69.282-24.704, 89.441-32, 110.795-32c 27.108,0, 56.145,11.757, 78.973,34.536c 26.792,26.732, 38.371,62, 33.542,92.674l 32.692,32.744
+ l 32.688-32.744c-4.828-30.674, 6.753-65.941, 33.542-92.674C 345.063-20.243, 374.098-32, 401.206-32
+ c 21.354,0, 41.512,7.296, 56.497,22.248C 491.713,24.181, 486.197,84.702, 445.387,125.423z M 176.512,57.231
+ c-3.849-8.941-9.505-17.173-16.813-24.463c-7.318-7.302-15.586-12.959-24.574-16.812c-8.066-3.458-16.48-5.284-24.331-5.284
+ c-7.573,0-18.306,1.701-26.431,9.806c-8.068,8.052-9.76,18.659-9.76,26.144c0,7.771, 1.821,16.105, 5.263,24.106
+ c 3.85,8.942, 9.507,17.173, 16.813,24.463c 7.317,7.303, 15.586,12.957, 24.575,16.812c 8.067,3.457, 16.48,5.284, 24.332,5.284
+ c 7.573,0, 18.306-1.7, 26.429-9.807c 8.067-8.049, 9.761-18.658, 9.761-26.142C 181.777,73.567, 179.957,65.23, 176.512,57.231z
+ M 256.002,146.702c-24.957,0-45.188,20.266-45.188,45.263c0,24.996, 20.231,45.26, 45.188,45.26s 45.186-20.264, 45.186-45.26
+ C 301.188,166.966, 280.958,146.702, 256.002,146.702z M 427.636,20.479c-8.124-8.104-18.856-9.806-26.43-9.806
+ c-7.852,0-16.265,1.826-24.333,5.284c-8.986,3.853-17.254,9.51-24.571,16.812c-7.307,7.29-12.963,15.521-16.813,24.463
+ c-3.443,7.999-5.263,16.336-5.263,24.106c0,7.483, 1.692,18.094, 9.76,26.143c 8.123,8.104, 18.856,9.807, 26.43,9.807
+ c 7.85,0, 16.265-1.827, 24.33-5.284c 8.989-3.854, 17.258-9.509, 24.575-16.812c 7.305-7.29, 12.962-15.521, 16.813-24.463
+ c 3.442-7.999, 5.263-16.335, 5.263-24.106C 437.396,39.138, 435.702,28.53, 427.636,20.479z" />
+<glyph unicode="&#xe006;" d="M0,448L 512,448L 512,384L0,384zM0,352L 512,352L 512,288L0,288zM0,256L 512,256L 512,192L0,192zM0,160L 512,160L 512,96L0,96zM0,64L 512,64L 512,0L0,0z" />
+<glyph unicode="&#xe005;" d="M0,448L 512,448L 512,384L0,384zM 192,352L 512,352L 512,288L 192,288zM 192,160L 512,160L 512,96L 192,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" />
+<glyph unicode="&#xe004;" d="M0,448L 512,448L 512,384L0,384zM 96,352L 416,352L 416,288L 96,288zM 96,160L 416,160L 416,96L 96,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" />
+<glyph unicode="&#xe003;" d="M0,448L 512,448L 512,384L0,384zM0,352L 320,352L 320,288L0,288zM0,160L 320,160L 320,96L0,96zM0,256L 512,256L 512,192L0,192zM0,64L 512,64L 512,0L0,0z" />
+<glyph unicode="&#xe002;" d="M 512,183.771l0,80.458 l-79.572,7.957c-4.093,15.021-10.044,29.274-17.605,42.49l 52.298,63.919L 410.595,435.12l-63.918-52.298
+ c-13.217,7.562-27.471,13.513-42.491,17.604L 296.229,480l-80.458,0 l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604
+ L 101.405,435.12L 44.88,378.595l 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49L0,264.229l0-80.458 l 79.573-7.957
+ c 4.093-15.021, 10.043-29.274, 17.605-42.491L 44.88,69.405l 56.524-56.524l 63.919,52.298c 13.216-7.562, 27.47-13.514, 42.49-17.605
+ L 215.771-32l 80.458,0 l 7.957,79.572c 15.021,4.093, 29.274,10.044, 42.491,17.605l 63.918-52.298l 56.524,56.524l-52.298,63.918
+ c 7.562,13.217, 13.514,27.471, 17.605,42.49L 512,183.771z M 352,192l-64-64l-64,0 l-64,64l0,64 l 64,64l 64,0 l 64-64L 352,192 z" />
+<glyph unicode="&#xe001;" d="M 451.716,380.285l-71.432,71.431C 364.728,467.272, 334,480, 312,480L 72,480 C 50,480, 32,462, 32,440l0-432 c0-22, 18-40, 40-40l 368,0 c 22,0, 40,18, 40,40
+ L 480,312 C 480,334, 467.272,364.729, 451.716,380.285z M 429.089,357.657c 1.565-1.565, 3.125-3.487, 4.64-5.657L 352,352 L 352,433.728
+ c 2.17-1.515, 4.092-3.075, 5.657-4.64L 429.089,357.657z M 448,8c0-4.336-3.664-8-8-8L 72,0 c-4.336,0-8,3.664-8,8L 64,440 c0,4.336, 3.664,8, 8,8
+ l 240,0 c 2.416,0, 5.127-0.305, 8-0.852L 320,320 l 127.148,0 c 0.547-2.873, 0.852-5.583, 0.852-8L 448,8 z" />
+<glyph unicode="&#xe000;" d="M 448,480L0,480 l0-512 l 512,0 L 512,416 L 448,480z M 256,416l 64,0 l0-128 l-64,0 L 256,416 z M 448,32L 64,32 L 64,416 l 32,0 l0-160 l 288,0 L 384,416 l 37.489,0 L 448,389.491L 448,32 z" />
+<glyph unicode="&#xe033;" d="M 64,208L 208,64L 448,304L 384,368L 208,192L 128,272 z" />
+<glyph unicode="&#xe035;" d="M 256,224L 256,160L 272,160L 288,192L 320,192L 320,64L 296,64L 296,32L 408,32L 408,64L 384,64L 384,192L 416,192L 432,160L 448,160L 448,224 zM 416,320L 416,400 c0,8.8-7.2,16-16,16L 288,416 L 288,448 c0,17.6-14.4,32-32,32l-64,0 c-17.602,0-32-14.4-32-32l0-32 L 48,416 c-8.801,0-16-7.2-16-16l0-320
+ c0-8.8, 7.199-16, 16-16l 144,0 l0-96 l 320,0 L 512,320 L 416,320 z M 192,447.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0
+ c 0.021-0.018, 0.041-0.038, 0.059-0.057L 256,416 l-64,0 L 192,447.943 z M 96,352L 96,384 l 256,0 l0-32 L 96,352 z M 480,0L 224,0 L 224,288 l 256,0 L 480,0 z" />
+<glyph unicode="&#x20;" horiz-adv-x="256" />
+</font></defs></svg> \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.ttf b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.ttf
new file mode 100755
index 00000000..dea6e458
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.ttf
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.woff b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.woff
new file mode 100755
index 00000000..f1765798
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/icomoon.woff
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/readme.md b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/readme.md
new file mode 100755
index 00000000..fa5d6394
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/fonts/readme.md
@@ -0,0 +1 @@
+Icons are generated and provided by the http://icomoon.io service.
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/anchor.gif b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/anchor.gif
new file mode 100755
index 00000000..606348c7
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/anchor.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/loader.gif b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/loader.gif
new file mode 100755
index 00000000..c69e9372
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/loader.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/object.gif b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/object.gif
new file mode 100755
index 00000000..cccd7f02
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/object.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/trans.gif b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/trans.gif
new file mode 100755
index 00000000..38848651
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/trans.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/wline.gif b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/wline.gif
new file mode 100755
index 00000000..7d0a4dbc
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/img/wline.gif
Binary files differ
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/skin.ie7.min.css b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/skin.ie7.min.css
new file mode 100755
index 00000000..0d29f3a8
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/skin.ie7.min.css
@@ -0,0 +1 @@
+.mce-container,.mce-container *,.mce-widget,.mce-widget *{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#000;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-container ::-webkit-scrollbar{width:8px;height:8px;-webkit-border-radius:4px}.mce-container ::-webkit-scrollbar-track,.mce-container ::-webkit-scrollbar-track-piece{background-color:transparent}.mce-container ::-webkit-scrollbar-thumb{background-color:rgba(53,57,71,0.3);width:6px;height:6px;-webkit-border-radius:4px}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible!important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #808080;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:hover{border-color:black}.mce-grid td div:focus{border-color:#59a5e1;outline:1px solid rgba(82,168,236,0.8);border-color:rgba(82,168,236,0.8)}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover{border-color:#c5c5c5}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#e8e8e8;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#c4daff;background:#deeafa}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:#ccc 5px 5px 5px;-moz-box-shadow:#ccc 5px 5px 5px;box-shadow:#ccc 5px 5px 5px}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{top:0;left:0;background:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #EEE;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#CCC;text-shadow:0 1px 0 white;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#AAA}.mce-window-head .mce-title{display:inline-block;*display:inline;*zoom:1;line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:whiteSmoke;border-top:1px solid #DDD;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000;-moz-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:0;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #c5c5c5;position:relative;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-btn:hover,.mce-btn:focus{text-decoration:none;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn.mce-disabled,.mce-btn.mce-disabled:hover{cursor:default;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);zoom:1;border-color:#04c #04c #002b80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary:hover,.mce-primary:focus{color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#005fb3;background-image:-moz-linear-gradient(top,#0077b3,#003cb3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0077b3),to(#003cb3));background-image:-webkit-linear-gradient(top,#0077b3,#003cb3);background-image:-o-linear-gradient(top,#0077b3,#003cb3);background-image:linear-gradient(to bottom,#0077b3,#003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3',endColorstr='#ff003cb3',GradientType=0);zoom:1;border-color:#003cb3 #003cb3 #026;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary button{color:#fff}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:3px 5px;font-size:12px;line-height:15px}.mce-btn-small i{margin-top:0}.mce-btn .mce-caret{margin-top:8px;*margin-top:6px;margin-left:0}.mce-btn-small .mce-caret{margin-top:6px;*margin-top:4px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #444;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#999}.mce-caret.mce-up{border-bottom:4px solid #444;border-top:0}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-btn:hover,.mce-btn-group .mce-btn:focus{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-disabled,.mce-btn-group .mce-btn.mce-disabled:hover{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-active,.mce-btn-group .mce-btn.mce-active:hover,.mce-btn-group .mce-btn:active{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn-group .mce-btn.mce-disabled button{opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn-group .mce-first{border-left:1px solid #c5c5c5;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #c5c5c5;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0}.mce-checked i.mce-i-checkbox{color:#000;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox{border:1px solid #59a5e1;border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-colorbutton .mce-ico{position:relative}.mce-colorpicker{background:#FFF}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-17px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#c5c5c5;border-right-color:#c5c5c5}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;width:100px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:rgba(0,0,0,0.15);height:28px}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox *:focus{border-color:#59a5e1;border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#000}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:gray;color:white}.mce-path .mce-divider{display:inline}.mce-fieldset{border:0 solid #9e9e9e;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);border:0 solid #c5c5c5;overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label-disabled .mce-text{color:#999}.mce-label.mce-multiline{white-space:pre-wrap}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #ddd}.mce-menubar .mce-menubtn button{color:#000}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#ddd;filter:none}.mce-menubtn.mce-disabled span{color:#999}.mce-menubtn span{margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px;line-height:15px;*line-height:16px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item.mce-disabled .mce-text{color:#999}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0);zoom:1}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-item.mce-disabled:hover{background:#CCC}.mce-menu-shortcut{display:inline-block;color:#999}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #666}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret{border-left-color:#FFF}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item-sep,.mce-menu-item-sep:hover{padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#e5e5e5;border-bottom:1px solid white;cursor:default;filter:none}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item.mce-active{background-color:#c8def4;outline:1px solid #c5c5c5}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa;background-color:transparent;outline:0}.mce-menu-item-checkbox.mce-active{background-color:#FFF;outline:0}.mce-menu{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#FFF;border:1px solid #CCC;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline;*zoom:1}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}i.mce-radio{padding:1px;margin:0 3px 0 0;background-color:#fafafa;border:1px solid #cacece;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}i.mce-radio:after{font-family:Arial;font-size:12px;color:#000;content:'\25cf'}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#000}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#c5c5c5;border-right-color:#c5c5c5}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #ccc}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #ccc;border-width:1px 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-textbox{background:#FFF;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#000}.mce-textbox:focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}@font-face{font-family:'icomoon';src:url('fonts/icomoon.eot');src:url('fonts/icomoon.eot?#iefix') format('embedded-opentype'),url('fonts/icomoon.svg#icomoon') format('svg'),url('fonts/icomoon.woff') format('woff'),url('fonts/icomoon.ttf') format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'icomoon-small';src:url('fonts/icomoon-small.eot');src:url('fonts/icomoon-small.eot?#iefix') format('embedded-opentype'),url('fonts/icomoon-small.svg#icomoon') format('svg'),url('fonts/icomoon-small.woff') format('woff'),url('fonts/icomoon-small.ttf') format('truetype');font-weight:normal;font-style:normal}.mce-ico{font-family:'icomoon';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'icomoon-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = this.currentStyle['-ie7-icon'].substr(1,1)+'&nbsp;')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-inserttime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB} \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/skin.min.css b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/skin.min.css
new file mode 100755
index 00000000..23a89fdf
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/skins/lightgray/skin.min.css
@@ -0,0 +1 @@
+.mce-container,.mce-container *,.mce-widget,.mce-widget *{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#000;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-container ::-webkit-scrollbar{width:8px;height:8px;-webkit-border-radius:4px}.mce-container ::-webkit-scrollbar-track,.mce-container ::-webkit-scrollbar-track-piece{background-color:transparent}.mce-container ::-webkit-scrollbar-thumb{background-color:rgba(53,57,71,0.3);width:6px;height:6px;-webkit-border-radius:4px}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible!important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #808080;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:hover{border-color:black}.mce-grid td div:focus{border-color:#59a5e1;outline:1px solid rgba(82,168,236,0.8);border-color:rgba(82,168,236,0.8)}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover{border-color:#c5c5c5}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#e8e8e8;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#c4daff;background:#deeafa}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:#ccc 5px 5px 5px;-moz-box-shadow:#ccc 5px 5px 5px;box-shadow:#ccc 5px 5px 5px}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{top:0;left:0;background:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #EEE;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#CCC;text-shadow:0 1px 0 white;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#AAA}.mce-window-head .mce-title{display:inline-block;*display:inline;*zoom:1;line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:whiteSmoke;border-top:1px solid #DDD;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000;-moz-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:0;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #c5c5c5;position:relative;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-btn:hover,.mce-btn:focus{text-decoration:none;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn.mce-disabled,.mce-btn.mce-disabled:hover{cursor:default;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);zoom:1;border-color:#04c #04c #002b80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary:hover,.mce-primary:focus{color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#005fb3;background-image:-moz-linear-gradient(top,#0077b3,#003cb3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0077b3),to(#003cb3));background-image:-webkit-linear-gradient(top,#0077b3,#003cb3);background-image:-o-linear-gradient(top,#0077b3,#003cb3);background-image:linear-gradient(to bottom,#0077b3,#003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3',endColorstr='#ff003cb3',GradientType=0);zoom:1;border-color:#003cb3 #003cb3 #026;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary button{color:#fff}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:3px 5px;font-size:12px;line-height:15px}.mce-btn-small i{margin-top:0}.mce-btn .mce-caret{margin-top:8px;*margin-top:6px;margin-left:0}.mce-btn-small .mce-caret{margin-top:6px;*margin-top:4px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #444;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#999}.mce-caret.mce-up{border-bottom:4px solid #444;border-top:0}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-btn:hover,.mce-btn-group .mce-btn:focus{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-disabled,.mce-btn-group .mce-btn.mce-disabled:hover{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-active,.mce-btn-group .mce-btn.mce-active:hover,.mce-btn-group .mce-btn:active{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn-group .mce-btn.mce-disabled button{opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn-group .mce-first{border-left:1px solid #c5c5c5;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #c5c5c5;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0}.mce-checked i.mce-i-checkbox{color:#000;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox{border:1px solid #59a5e1;border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-colorbutton .mce-ico{position:relative}.mce-colorpicker{background:#FFF}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-17px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#c5c5c5;border-right-color:#c5c5c5}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;width:100px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:rgba(0,0,0,0.15);height:28px}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox *:focus{border-color:#59a5e1;border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#000}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:gray;color:white}.mce-path .mce-divider{display:inline}.mce-fieldset{border:0 solid #9e9e9e;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);border:0 solid #c5c5c5;overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label-disabled .mce-text{color:#999}.mce-label.mce-multiline{white-space:pre-wrap}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #ddd}.mce-menubar .mce-menubtn button{color:#000}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#ddd;filter:none}.mce-menubtn.mce-disabled span{color:#999}.mce-menubtn span{margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px;line-height:15px;*line-height:16px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item.mce-disabled .mce-text{color:#999}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0);zoom:1}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-item.mce-disabled:hover{background:#CCC}.mce-menu-shortcut{display:inline-block;color:#999}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #666}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret{border-left-color:#FFF}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item-sep,.mce-menu-item-sep:hover{padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#e5e5e5;border-bottom:1px solid white;cursor:default;filter:none}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item.mce-active{background-color:#c8def4;outline:1px solid #c5c5c5}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa;background-color:transparent;outline:0}.mce-menu-item-checkbox.mce-active{background-color:#FFF;outline:0}.mce-menu{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#FFF;border:1px solid #CCC;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline;*zoom:1}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}i.mce-radio{padding:1px;margin:0 3px 0 0;background-color:#fafafa;border:1px solid #cacece;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}i.mce-radio:after{font-family:Arial;font-size:12px;color:#000;content:'\25cf'}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#000}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#c5c5c5;border-right-color:#c5c5c5}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #ccc}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #ccc;border-width:1px 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-textbox{background:#FFF;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#000}.mce-textbox:focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}@font-face{font-family:'tinymce';src:url('fonts/icomoon.eot');src:url('fonts/icomoon.eot?#iefix') format('embedded-opentype'),url('fonts/icomoon.svg#icomoon') format('svg'),url('fonts/icomoon.woff') format('woff'),url('fonts/icomoon.ttf') format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/icomoon-small.eot');src:url('fonts/icomoon-small.eot?#iefix') format('embedded-opentype'),url('fonts/icomoon-small.svg#icomoon') format('svg'),url('fonts/icomoon-small.woff') format('woff'),url('fonts/icomoon-small.ttf') format('truetype');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-inserttime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB} \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/themes/modern/theme.min.js b/framework/Web/Javascripts/source/tinymce-405/themes/modern/theme.min.js
new file mode 100755
index 00000000..4a636871
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/themes/modern/theme.min.js
@@ -0,0 +1 @@
+tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var i,r=[];if(t)return m(t.split(/[ ,]/),function(t){function n(){var n=e.selection;"bullist"==a&&n.selectorChanged("ul > li",function(e,n){for(var i,r=n.parents.length;r--&&(i=n.parents[r].nodeName,"OL"!=i&&"UL"!=i););t.active("UL"==i)}),"numlist"==a&&n.selectorChanged("ol > li",function(e,n){for(var i,r=n.parents.length;r--&&(i=n.parents[r].nodeName,"OL"!=i&&"UL"!=i););t.active("OL"==i)}),t.settings.stateSelector&&n.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&n.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var a;"|"==t?i=null:u.has(t)?(t={type:t},c.toolbar_items_size&&(t.size=c.toolbar_items_size),r.push(t),i=null):(i||(i={type:"buttongroup",items:[]},r.push(i)),e.buttons[t]&&(a=t,t=e.buttons[a],"function"==typeof t&&(t=t()),t.type=t.type||"button",c.toolbar_items_size&&(t.size=c.toolbar_items_size),t=u.create(t),i.items.push(t),e.initialized?n():e.on("init",n)))}),n.push({type:"toolbar",layout:"flow",items:r}),!0}for(var n=[],i=1;10>i&&t(c["toolbar"+i]);i++);return n.length||t(c.toolbar||h),n}function n(){function t(t){var n;return"|"==t?{text:"|"}:n=e.menuItems[t]}function n(n){var i,r,a,o,s;if(s=tinymce.makeMap((c.removed_menuitems||"").split(/[ ,]/)),c.menu?(r=c.menu[n],o=!0):r=f[n],r){i={text:r.title},a=[],m((r.items||"").split(/[ ,]/),function(e){var n=t(e);n&&!s[e]&&a.push(t(e))}),o||m(e.menuItems,function(e){e.context==n&&("before"==e.separator&&a.push({text:"|"}),e.prependToContext?a.unshift(e):a.push(e),"after"==e.separator&&a.push({text:"|"}))});for(var l=0;l<a.length;l++)"|"==a[l].text&&(0===l||l==a.length-1)&&a.splice(l,1);if(i.menu=a,!i.menu.length)return null}return i}var i,r=[],a=[];if(c.menu)for(i in c.menu)a.push(i);else for(i in f)a.push(i);for(var o=c.menubar?c.menubar.split(/[ ,]/):a,s=0;s<o.length;s++){var l=o[s];l=n(l),l&&r.push(l)}return r}function i(t){function n(e){var n=t.find(e)[0];n&&n.focus()}e.shortcuts.add("Alt+F9","",function(){n("menubar")}),e.shortcuts.add("Alt+F10","",function(){n("toolbar")}),e.shortcuts.add("Alt+F11","",function(){n("elementpath")}),t.on("cancel",function(){e.focus()})}function r(t,n){function i(e){return{width:e.clientWidth,height:e.clientHeight}}var r,a,o,s;r=e.getContainer(),a=e.getContentAreaContainer().firstChild,o=i(r),s=i(a),null!==t&&(t=Math.max(c.min_width||100,t),t=Math.min(c.max_width||65535,t),d.css(r,"width",t+(o.width-s.width)),d.css(a,"width",t)),n=Math.max(c.min_height||100,n),n=Math.min(c.max_height||65535,n),d.css(a,"height",n),e.fire("ResizeEditor")}function a(t,n){var i=e.getContentAreaContainer();l.resizeTo(i.clientWidth+t,i.clientHeight+n)}function o(){function r(){m&&m.moveRel&&m.visible()&&!m._fixed&&m.moveRel(e.getBody(),["tl-bl","bl-tl"])}function a(){m&&(m.show(),r(),d.addClass(e.getBody(),"mce-edit-focus"))}function o(){m&&(m.hide(),d.removeClass(e.getBody(),"mce-edit-focus"))}function s(){return m?(m.visible()||a(),void 0):(m=l.panel=u.create({type:f?"panel":"floatpanel",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[c.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:n()},c.toolbar===!1?null:{type:"panel",name:"toolbar",layout:"stack",items:t()}]}),m.renderTo(f||document.body).reflow(),i(m),a(),e.on("nodeChange",r),e.on("activate",a),e.on("deactivate",o),void 0)}var m,f;return c.fixed_toolbar_container&&(f=d.select(c.fixed_toolbar_container)[0]),c.content_editable=!0,e.on("focus",s),e.on("blur",o),e.on("remove",function(){m&&(m.remove(),m=null)}),{}}function s(a){var o,s,m;return o=l.panel=u.create({type:"panel",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[c.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:n()},c.toolbar===!1?null:{type:"panel",layout:"stack",items:t()},{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),c.resize!==!1&&(s={type:"resizehandle",direction:c.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;m={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==c.resize?r(m.width+e.deltaX,m.height+e.deltaY):r(null,m.height+e.deltaY)}}),c.statusbar!==!1&&o.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",items:[{type:"elementpath"},s]}),o.renderBefore(a.targetNode).reflow(),c.width&&tinymce.DOM.setStyle(o.getEl(),"width",c.width),e.on("remove",function(){o.remove(),o=null}),i(o),{iframeContainer:o.find("#iframe")[0].getEl(),editorContainer:o.getEl()}}var l=this,c=e.settings,u=tinymce.ui.Factory,m=tinymce.each,d=tinymce.DOM,f={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},h="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var n=c.skin!==!1?c.skin||"lightgray":!1;return n&&(tinymce.Env.documentMode<=7?tinymce.DOM.loadCSS(tinymce.baseURL+"/skins/"+n+"/skin.ie7.min.css"):tinymce.DOM.loadCSS(tinymce.baseURL+"/skins/"+n+"/skin.min.css"),e.contentCSS.push(tinymce.baseURL+"/skins/"+n+"/content"+(e.inline?".inline":"")+".min.css")),e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),c.inline?o(t):s(t)},l.resizeTo=r,l.resizeBy=a}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/tinymce-405/tinymce.min.js b/framework/Web/Javascripts/source/tinymce-405/tinymce.min.js
new file mode 100755
index 00000000..13f18233
--- /dev/null
+++ b/framework/Web/Javascripts/source/tinymce-405/tinymce.min.js
@@ -0,0 +1,10 @@
+// 4.0.5 (2013-08-27)
+!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/EventUtils",c="tinymce/dom/Sizzle",u="tinymce/dom/DomQuery",d="tinymce/html/Styles",f="tinymce/dom/TreeWalker",p="tinymce/util/Tools",h="tinymce/dom/Range",m="tinymce/html/Entities",g="tinymce/Env",v="tinymce/dom/DOMUtils",y="tinymce/dom/ScriptLoader",b="tinymce/AddOnManager",C="tinymce/html/Node",x="tinymce/html/Schema",w="tinymce/html/SaxParser",_="tinymce/html/DomParser",N="tinymce/html/Writer",E="tinymce/html/Serializer",k="tinymce/dom/Serializer",S="tinymce/dom/TridentSelection",T="tinymce/util/VK",R="tinymce/dom/ControlSelection",A="tinymce/dom/Selection",B="tinymce/dom/RangeUtils",D="tinymce/Formatter",L="tinymce/UndoManager",M="tinymce/EnterKey",H="tinymce/ForceBlocks",P="tinymce/EditorCommands",O="tinymce/util/URI",I="tinymce/util/Class",F="tinymce/ui/Selector",W="tinymce/ui/Collection",z="tinymce/ui/DomUtils",V="tinymce/ui/Control",U="tinymce/ui/Factory",q="tinymce/ui/Container",j="tinymce/ui/DragHelper",$="tinymce/ui/Scrollable",K="tinymce/ui/Panel",G="tinymce/ui/Movable",Y="tinymce/ui/Resizable",X="tinymce/ui/FloatPanel",J="tinymce/ui/KeyboardNavigation",Q="tinymce/ui/Window",Z="tinymce/ui/MessageBox",et="tinymce/WindowManager",tt="tinymce/util/Quirks",nt="tinymce/util/Observable",rt="tinymce/Shortcuts",it="tinymce/Editor",ot="tinymce/util/I18n",at="tinymce/FocusManager",st="tinymce/EditorManager",lt="tinymce/LegacyInput",ct="tinymce/util/XHR",ut="tinymce/util/JSON",dt="tinymce/util/JSONRequest",ft="tinymce/util/JSONP",pt="tinymce/util/LocalStorage",ht="tinymce/Compat",mt="tinymce/ui/Layout",gt="tinymce/ui/AbsoluteLayout",vt="tinymce/ui/Tooltip",yt="tinymce/ui/Widget",bt="tinymce/ui/Button",Ct="tinymce/ui/ButtonGroup",xt="tinymce/ui/Checkbox",wt="tinymce/ui/PanelButton",_t="tinymce/ui/ColorButton",Nt="tinymce/ui/ComboBox",Et="tinymce/ui/Path",kt="tinymce/ui/ElementPath",St="tinymce/ui/FormItem",Tt="tinymce/ui/Form",Rt="tinymce/ui/FieldSet",At="tinymce/ui/FilePicker",Bt="tinymce/ui/FitLayout",Dt="tinymce/ui/FlexLayout",Lt="tinymce/ui/FlowLayout",Mt="tinymce/ui/FormatControls",Ht="tinymce/ui/GridLayout",Pt="tinymce/ui/Iframe",Ot="tinymce/ui/Label",It="tinymce/ui/Toolbar",Ft="tinymce/ui/MenuBar",Wt="tinymce/ui/MenuButton",zt="tinymce/ui/ListBox",Vt="tinymce/ui/MenuItem",Ut="tinymce/ui/Menu",qt="tinymce/ui/Radio",jt="tinymce/ui/ResizeHandle",$t="tinymce/ui/Spacer",Kt="tinymce/ui/SplitButton",Gt="tinymce/ui/StackLayout",Yt="tinymce/ui/TabPanel",Xt="tinymce/ui/TextBox",Jt="tinymce/ui/Throbber";r(l,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function t(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function n(e,t){function n(){return!1}function r(){return!0}var i,o=t||{},l;for(i in e)s[i]||(o[i]=e[i]);if(o.target||(o.target=o.srcElement||document),e&&a.test(e.type)&&e.pageX===l&&e.clientX!==l){var c=o.target.ownerDocument||document,u=c.documentElement,d=c.body;o.pageX=e.clientX+(u&&u.scrollLeft||d&&d.scrollLeft||0)-(u&&u.clientLeft||d&&d.clientLeft||0),o.pageY=e.clientY+(u&&u.scrollTop||d&&d.scrollTop||0)-(u&&u.clientTop||d&&d.clientTop||0)}return o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function r(n,r,i){function o(){i.domLoaded||(i.domLoaded=!0,r(c))}function a(){"complete"===l.readyState&&(t(l,"readystatechange",a),o())}function s(){try{l.documentElement.doScroll("left")}catch(e){return setTimeout(s,0),void 0}o()}var l=n.document,c={type:"ready"};return i.domLoaded?(r(c),void 0):(l.addEventListener?e(n,"DOMContentLoaded",o):(e(l,"readystatechange",a),l.documentElement.doScroll&&n===n.top&&s()),e(n,"load",o),void 0)}function i(){function i(e,t){var n,r,i,o;if(n=s[t][e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,u,d,f;c=o+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,h){function m(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),h=h||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=m,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(h,n({type:b})):(d||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:h}):(s[g][b]=v=[{func:p,scope:h}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],o=f[d]){if(r)for(u=o.length;u--;)o[u].func===r&&o.splice(u,1);r&&0!==o.length||(delete f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture))}}else{for(d in f)o=f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture);f={}}for(d in f)return a;delete s[i];try{delete e[c]}catch(p){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(c,[],function(){function e(e){return gt.test(e+"")}function n(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>N.cacheLength&&delete e[t.shift()],e[n]=r,r}}function i(e){return e[F]=!0,e}function o(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t=null}}function a(e,t,n,r){var i,o,a,s,l,c,u,p,h,m;if((t?t.ownerDocument||t:W)!==D&&B(t),t=t||D,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(M&&!r){if(i=vt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&I(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return et.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&z.getElementsByClassName&&t.getElementsByClassName)return et.apply(n,t.getElementsByClassName(a)),n}if(z.qsa&&!H.test(e)){if(u=!0,p=F,h=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=d(e),(u=t.getAttribute("id"))?p=u.replace(Ct,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+f(c[l]);h=mt.test(e)&&t.parentNode||t,m=c.join(",")}if(m)try{return et.apply(n,h.querySelectorAll(m)),n}catch(g){}finally{u||t.removeAttribute("id")}}}return C(e.replace(ct,"$1"),t,n,r)}function s(e,t){var n=t&&e,r=n&&(~t.sourceIndex||X)-(~e.sourceIndex||X);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function l(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function c(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return i(function(t){return t=+t,i(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function d(e,t){var n,r,i,o,s,l,c,u=j[e+" "];if(u)return t?0:u.slice(0);for(s=e,l=[],c=N.preFilter;s;){(!n||(r=ut.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=dt.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ct," ")}),s=s.slice(n.length));for(o in N.filter)!(r=ht[o].exec(s))||c[o]&&!(r=c[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?a.error(e):j(e,l).slice(0)}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=U++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c,u=V+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(c=t[F]||(t[F]={}),(l=c[r])&&l[0]===u){if((s=l[1])===!0||s===_)return s===!0}else if(l=c[r]=[u],l[1]=e(t,n,a)||_,l[1]===!0)return!0}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function g(e,t,n,r,o,a){return r&&!r[F]&&(r=g(r)),o&&!o[F]&&(o=g(o,a)),i(function(i,a,s,l){var c,u,d,f=[],p=[],h=a.length,g=i||b(t||"*",s.nodeType?[s]:s,[]),v=!e||!i&&t?g:m(g,f,e,s,l),y=n?o||(i?e:h||r)?[]:a:v;if(n&&n(v,y,s,l),r)for(c=m(y,p),r(c,[],s,l),u=c.length;u--;)(d=c[u])&&(y[p[u]]=!(v[p[u]]=d));if(i){if(o||e){if(o){for(c=[],u=y.length;u--;)(d=y[u])&&c.push(v[u]=d);o(null,y=[],c,l)}for(u=y.length;u--;)(d=y[u])&&(c=o?nt.call(i,d):f[u])>-1&&(i[c]=!(a[c]=d))}}else y=m(y===a?y.splice(h,y.length):y),o?o(null,a,y,l):et.apply(a,y)})}function v(e){for(var t,n,r,i=e.length,o=N.relative[e[0].type],a=o||N.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),c=p(function(e){return nt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=N.relative[e[s].type])u=[p(h(u),n)];else{if(n=N.filter[e[s].type].apply(null,e[s].matches),n[F]){for(r=++s;i>r&&!N.relative[e[r].type];r++);return g(s>1&&h(u),s>1&&f(e.slice(0,s-1)).replace(ct,"$1"),n,r>s&&v(e.slice(s,r)),i>r&&v(e=e.slice(r)),i>r&&f(e))}u.push(n)}return h(u)}function y(e,t){var n=0,r=t.length>0,o=e.length>0,s=function(i,s,l,c,u){var d,f,p,h=[],g=0,v="0",y=i&&[],b=null!=u,C=T,x=i||o&&N.find.TAG("*",u&&s.parentNode||s),w=V+=null==C?1:Math.random()||.1;for(b&&(T=s!==D&&s,_=n);null!=(d=x[v]);v++){if(o&&d){for(f=0;p=e[f++];)if(p(d,s,l)){c.push(d);break}b&&(V=w,_=++n)}r&&((d=!p&&d)&&g--,i&&y.push(d))}if(g+=v,r&&v!==g){for(f=0;p=t[f++];)p(y,h,s,l);if(i){if(g>0)for(;v--;)y[v]||h[v]||(h[v]=Q.call(c));h=m(h)}et.apply(c,h),b&&!i&&h.length>0&&g+t.length>1&&a.uniqueSort(c)}return b&&(V=w,T=C),y};return r?i(s):s}function b(e,t,n){for(var r=0,i=t.length;i>r;r++)a(e,t[r],n);return n}function C(e,t,n,r){var i,o,a,s,l,c=d(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&M&&N.relative[o[1].type]){if(t=(N.find.ID(a.matches[0].replace(wt,_t),t)||[])[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=ht.needsContext.test(e)?0:o.length;i--&&(a=o[i],!N.relative[s=a.type]);)if((l=N.find[s])&&(r=l(a.matches[0].replace(wt,_t),mt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return et.apply(n,r),n;break}}return S(e,c)(r,t,!M,n,mt.test(e)),n}function x(){}var w,_,N,E,k,S,T,R,A,B,D,L,M,H,P,O,I,F="sizzle"+-new Date,W=window.document,z={},V=0,U=0,q=n(),j=n(),$=n(),K=!1,G=function(){return 0},Y=typeof t,X=1<<31,J=[],Q=J.pop,Z=J.push,et=J.push,tt=J.slice,nt=J.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},rt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ot=it.replace("w","w#"),at="([*^$|!~]?=)",st="\\["+rt+"*("+it+")"+rt+"*(?:"+at+rt+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+ot+")|)|)"+rt+"*\\]",lt=":("+it+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+st.replace(3,8)+")*)|.*)\\)|)",ct=new RegExp("^"+rt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+rt+"+$","g"),ut=new RegExp("^"+rt+"*,"+rt+"*"),dt=new RegExp("^"+rt+"*([\\x20\\t\\r\\n\\f>+~])"+rt+"*"),ft=new RegExp(lt),pt=new RegExp("^"+ot+"$"),ht={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),NAME:new RegExp("^\\[name=['\"]?("+it+")['\"]?\\]"),TAG:new RegExp("^("+it.replace("w","w*")+")"),ATTR:new RegExp("^"+st),PSEUDO:new RegExp("^"+lt),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+rt+"*(even|odd|(([+-]|)(\\d*)n|)"+rt+"*(?:([+-]|)"+rt+"*(\\d+)|))"+rt+"*\\)|)","i"),needsContext:new RegExp("^"+rt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+rt+"*((?:-\\d)?\\d*)"+rt+"*\\)|)(?=[^-]|$)","i")},mt=/[\x20\t\r\n\f]*[+~]/,gt=/^[^{]+\{\s*\[native code/,vt=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,yt=/^(?:input|select|textarea|button)$/i,bt=/^h\d$/i,Ct=/'|\\/g,xt=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,wt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,_t=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{et.apply(J=tt.call(W.childNodes),W.childNodes),J[W.childNodes.length].nodeType}catch(Nt){et={apply:J.length?function(e,t){Z.apply(e,tt.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}k=a.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},B=a.setDocument=function(n){var r=n?n.ownerDocument||n:W;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,L=r.documentElement,M=!k(r),z.getElementsByTagName=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),z.attributes=o(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),z.getElementsByClassName=o(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),z.getByName=o(function(e){e.id=F+0,e.appendChild(D.createElement("a")).setAttribute("name",F),e.appendChild(D.createElement("i")).setAttribute("name",F),L.appendChild(e);var t=r.getElementsByName&&r.getElementsByName(F).length===2+r.getElementsByName(F+0).length;return L.removeChild(e),t}),z.sortDetached=o(function(e){return e.compareDocumentPosition&&1&e.compareDocumentPosition(D.createElement("div"))}),N.attrHandle=o(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==Y&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},z.getByName?(N.find.ID=function(e,t){if(typeof t.getElementById!==Y&&M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},N.filter.ID=function(e){var t=e.replace(wt,_t);return function(e){return e.getAttribute("id")===t}}):(N.find.ID=function(e,n){if(typeof n.getElementById!==Y&&M){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==Y&&r.getAttributeNode("id").value===e?[r]:t:[]}},N.filter.ID=function(e){var t=e.replace(wt,_t);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),N.find.TAG=z.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},N.find.NAME=z.getByName&&function(e,t){return typeof t.getElementsByName!==Y?t.getElementsByName(name):void 0},N.find.CLASS=z.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==Y&&M?t.getElementsByClassName(e):void 0},P=[],H=[":focus"],(z.qsa=e(r.querySelectorAll))&&(o(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||H.push("\\["+rt+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||H.push(":checked")}),o(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&H.push("[*^$]="+rt+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||H.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),H.push(",.*:")})),(z.matchesSelector=e(O=L.matchesSelector||L.mozMatchesSelector||L.webkitMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&o(function(e){z.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),P.push("!=",lt)}),H=new RegExp(H.join("|")),P=P.length&&new RegExp(P.join("|")),I=e(L.contains)||L.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},G=L.compareDocumentPosition?function(e,t){if(e===t)return K=!0,0;var n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return n?1&n||R&&t.compareDocumentPosition(e)===n?e===r||I(W,e)?-1:t===r||I(W,t)?1:A?nt.call(A,e)-nt.call(A,t):0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,a=t.parentNode,l=[e],c=[t];if(e===t)return K=!0,0;if(!o||!a)return e===r?-1:t===r?1:o?-1:a?1:0;if(o===a)return s(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?s(l[i],c[i]):l[i]===W?-1:c[i]===W?1:0},D):D},a.matches=function(e,t){return a(e,null,null,t)},a.matchesSelector=function(e,t){if((e.ownerDocument||e)!==D&&B(e),t=t.replace(xt,"='$1']"),z.matchesSelector&&M&&(!P||!P.test(t))&&!H.test(t))try{var n=O.call(e,t);if(n||z.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return a(t,D,null,[e]).length>0},a.contains=function(e,t){return(e.ownerDocument||e)!==D&&B(e),I(e,t)},a.attr=function(e,t){var n;return(e.ownerDocument||e)!==D&&B(e),M&&(t=t.toLowerCase()),(n=N.attrHandle[t])?n(e):!M||z.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},a.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a.uniqueSort=function(e){var t,n=[],r=0,i=0;if(K=!z.detectDuplicates,R=!z.sortDetached,A=!z.sortStable&&e.slice(0),e.sort(G),K){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return e},E=a.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=E(t);return n},N=a.selectors={cacheLength:50,createPseudo:i,match:ht,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(wt,_t),e[3]=(e[4]||e[5]||"").replace(wt,_t),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||a.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&a.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return ht.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&ft.test(n)&&(t=d(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(wt,_t).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=q[e+" "];return t||(t=new RegExp("(^|"+rt+")"+e+"("+rt+"|$)"))&&q(e,function(e){return t.test(e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=a.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(u=g[F]||(g[F]={}),c=u[e]||[],p=c[0]===V&&c[1],f=c[0]===V&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[V,p,f];break}}else if(y&&(c=(t[F]||(t[F]={}))[e])&&c[0]===V)f=c[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[V,f]),d!==t)););return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=N.pseudos[e]||N.setFilters[e.toLowerCase()]||a.error("unsupported pseudo: "+e);return r[F]?r(t):r.length>1?(n=[e,e,"",t],N.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,n){for(var i,o=r(e,t),a=o.length;a--;)i=nt.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:i(function(e){var t=[],n=[],r=S(e.replace(ct,"$1"));return r[F]?i(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:i(function(e){return function(t){return a(e,t).length>0}}),contains:i(function(e){return function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:i(function(e){return pt.test(e||"")||a.error("unsupported lang: "+e),e=e.replace(wt,_t).toLowerCase(),function(t){var n;do if(n=M?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!N.pseudos.empty(e)},header:function(e){return bt.test(e.nodeName)},input:function(e){return yt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[0>n?n+t:n]}),even:u(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}};for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})N.pseudos[w]=l(w);for(w in{submit:!0,reset:!0})N.pseudos[w]=c(w);return S=a.compile=function(e,t){var n,r=[],i=[],o=$[e+" "];if(!o){for(t||(t=d(e)),n=t.length;n--;)o=v(t[n]),o[F]?r.push(o):i.push(o);o=$(e,y(i,r))}return o},N.pseudos.nth=N.pseudos.eq,x.prototype=N.filters=N.pseudos,N.setFilters=new x,z.sortStable=F.split("").sort(G).join("")===F,B(),[0,0].sort(G),z.detectDuplicates=K,"function"==typeof r&&r.amd?r(function(){return a}):window.Sizzle=a,a}),r(u,[l,c],function(e,n){function r(e){return"undefined"!=typeof e}function i(e){return"string"==typeof e}function o(e){var t,n,r;for(r=g.createElement("div"),t=g.createDocumentFragment(),r.innerHTML=e;n=r.firstChild;)t.appendChild(n);return t}function a(e,t,n){var r;if("string"==typeof t)t=o(t);else if(t.length){for(r=0;r<t.length;r++)a(e,t[r],n);return e}for(r=e.length;r--;)n.call(e[r],t.parentNode?t:t);return e}function s(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function l(e,t){var n;for(e=e||[],"string"==typeof e&&(e=e.split(" ")),t=t||{},n=e.length;n--;)t[e[n]]={};return t}function c(e,t){return new c.fn.init(e,t)}function u(e){var t=arguments,n,r,i;for(r=1;r<t.length;r++){n=t[r];for(i in n)e[i]=n[i]}return e}function d(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function f(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,a,r)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,a,r)!==!1);i++);return e}function h(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!c(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i}function m(e,t,n,r){for(var i=[];e;e=e[n])r&&e.nodeType!==r||e===t||i.push(e);return i}var g=document,v=Array.prototype.push,y=Array.prototype.slice,b=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,C=e.Event,x=l("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"),w=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},_=/^\s*|\s*$/g,N=function(e){return null===e||e===t?"":(""+e).replace(_,"")};return c.fn=c.prototype={constructor:c,selector:"",length:0,init:function(e,t){var n=this,r,a;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(i(e)){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:b.exec(e),!r)return c(t||document).find(e);if(r[1])for(a=o(e).firstChild;a;)this.add(a),a=a.nextSibling;else{if(a=g.getElementById(r[2]),a.id!==r[2])return n.find(e);n.length=1,n[0]=a}}else this.add(e);return n},toArray:function(){return d(this)},add:function(e){var t=this;return w(e)?v.apply(t,e):e instanceof c?t.add(e.toArray()):v.call(t,e),t},attr:function(e,n){var i=this;if("object"==typeof e)p(e,function(e,t){i.attr(t,e)});else{if(!r(n))return i[0]&&1===i[0].nodeType?i[0].getAttribute(e):t;this.each(function(){1===this.nodeType&&this.setAttribute(e,n)})}return i},css:function(e,n){var i=this;if("object"==typeof e)p(e,function(e,t){i.css(t,e)});else{if(e=e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),!r(n))return i[0]?i[0].style[e]:t;"number"!=typeof n||x[e]||(n+="px"),i.each(function(){var t=this.style;"opacity"===e&&this.runtimeStyle&&"undefined"==typeof this.runtimeStyle.opacity&&(t.filter=""===n?"":"alpha(opacity="+100*n+")");try{t[e]=n}catch(r){}})}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],C.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerHTML=e;return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerText=t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return a(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return a(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)})},before:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},appendTo:function(e){return c(e).append(this),this},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return-1!==e.indexOf(" ")?p(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(){var n=this,r;s(n,e)!==t&&(r=n.className,t?n.className+=r?" "+e:e:n.className=N((" "+r+" ").replace(" "+e+" "," ")))}),n},hasClass:function(e){return s(this[0],e)},each:function(e){return p(this,e)},on:function(e,t){return this.each(function(){C.bind(this,e,t)})},off:function(e,t){return this.each(function(){C.unbind(this,e,t)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new c(y.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},replaceWith:function(e){var t=this;return t[0]&&t[0].parentNode.replaceChild(c(e)[0],t[0]),t},wrap:function(e){return e=c(e)[0],this.each(function(){var t=this,n=e.cloneNode(!1);t.parentNode.insertBefore(n,t),n.appendChild(t)})},unwrap:function(){return this.each(function(){for(var e=this,t=e.firstChild,n;t;)n=t,t=t.nextSibling,e.parentNode.insertBefore(n,e)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),c(e)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)c.find(e,this[t],r);return c(r)},push:v,sort:[].sort,splice:[].splice},u(c,{extend:u,toArray:d,inArray:f,isArray:w,each:p,trim:N,makeMap:l,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,isXMLDoc:n.isXML,contains:n.contains,filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?c.find.matchesSelector(t[0],e)?[t[0]]:[]:c.find.matches(e,t)}}),p({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t){return h(e,"parentNode",t)},next:function(e){return m(e,"nextSibling",1)},prev:function(e){return m(e,"previousSibling",1)},nextNodes:function(e){return m(e,"nextSibling")},prevNodes:function(e){return m(e,"previousSibling")},children:function(e){return m(e.firstChild,"nextSibling",1)},contents:function(e){return d(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){c.fn[e]=function(n){var r=this,i;if(r.length>1)throw new Error("DomQuery only supports traverse functions on a single node.");return r[0]&&(i=t(r[0],n)),i=c(i),n&&"parentsUntil"!==e?i.filter(n):i}}),c.fn.filter=function(e){return c.filter(e)},c.fn.is=function(e){return!!e&&this.filter(e).length>0},c.fn.init.prototype=c.fn,c}),r(d,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d="\ufeff";
+for(e=e||{},u=("\\\" \\' \\; \\: ; : "+d).split(" "),l=0;l<u.length;l++)c[u[l]]=d+l,c[d+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t){var n,r,i,o;n=h[e+"-top"+t],n&&(r=h[e+"-right"+t],n==r&&(i=h[e+"-bottom"+t],r==i&&(o=h[e+"-left"+t],i==o&&(h[e+t]=o,delete h[e+"-top"+t],delete h[e+"-right"+t],delete h[e+"-bottom"+t],delete h[e+"-left"+t]))))}function l(e){var t=h[e],n;if(t&&!(t.indexOf(" ")<0)){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return h[e]=t[0],!0}}function u(e,t,n,r){l(t)&&l(n)&&l(r)&&(h[e]=h[t]+" "+h[n]+" "+h[r],delete h[t],delete h[n],delete h[r])}function d(e){return y=!0,c[e]}function f(e,t){return y&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function p(e,t,n,r,i,o){return(i=i||o)?(i=f(i),"'"+i.replace(/\'/g,"\\'")+"'"):(t=f(t||n||r),b&&(t=b.call(C,t,"style")),"url('"+t.replace(/\'/g,"\\'")+"')")}var h={},m,g,v,y,b=e.url_converter,C=e.url_converter_scope||this;if(t){for(t=t.replace(/\\[\"\';:\uFEFF]/g,d).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,d)});m=o.exec(t);)g=m[1].replace(a,"").toLowerCase(),v=m[2].replace(a,""),g&&v.length>0&&("font-weight"===g&&"700"===v?v="bold":("color"===g||"background-color"===g)&&(v=v.toLowerCase()),v=v.replace(r,n),v=v.replace(i,p),h[g]=y?f(v,!0):v),o.lastIndex=m.index+m[0].length;s("border",""),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),u("border","border-width","border-style","border-color"),"medium none"===h.border&&delete h.border}return h},serialize:function(e,n){function r(n){var r,o,a,l;if(r=t.styles[n])for(o=0,a=r.length;a>o;o++)n=r[o],l=e[n],l!==s&&l.length>0&&(i+=(i.length>0?" ":"")+n+": "+l+";")}var i="",o,a;if(n&&t&&t.styles)r("*"),r(n);else for(o in e)a=e[o],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(f,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(p,[],function(){function e(e,n){return n?"array"==n&&g(e)?!0:typeof e==n:e!==t}function n(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function r(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function i(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function o(e,t){var n=[];return i(e,function(e){n.push(t(e))}),n}function a(e,t){var n=[];return i(e,function(e){(!t||t(e))&&n.push(e)}),n}function s(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,this.onCreate&&this.onCreate(e[2],e[3],o[a]),void 0;t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function l(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function c(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function u(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),i(e,function(e,i){return t.call(r,e,i,n)===!1?!1:(u(e,t,n,r),void 0)}))}function d(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function f(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function p(t,n){return!t||e(t,"array")?t:o(t.split(n||","),m)}var h=/^\s*|\s*$/g,m=function(e){return null===e||e===t?"":(""+e).replace(h,"")},g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:m,isArray:g,is:e,toArray:n,makeMap:r,each:i,map:o,grep:a,inArray:l,extend:c,create:s,walk:u,createNS:d,resolve:f,explode:p}}),r(h,[p],function(e){function t(n){function r(){return H.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(W,e,t)}function a(e){i(e.parentNode,$(e))}function s(e){i(e.parentNode,$(e)+1)}function l(e){o(e.parentNode,$(e))}function c(e){o(e.parentNode,$(e)+1)}function u(e){e?(M[U]=M[V],M[q]=M[z]):(M[V]=M[U],M[z]=M[q]),M.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=M[V],r=M[z],i=M[U],o=M[q],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function h(){N(I)}function m(){return N(P)}function g(){return N(O)}function v(e){var t=this[V],r=this[z],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return j(new t(n),{startContainer:M[V],startOffset:M[z],endContainer:M[U],endOffset:M[q],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[V]==M[U]&&M[z]==M[q]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(M[V]=t,M[z]=r):(M[U]=t,M[q]=r),i=M[U];i.parentNode;)i=i.parentNode;for(o=M[V];o.parentNode;)o=o.parentNode;o==i?w(M[V],M[z],M[U],M[q])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[V],M[U])}function N(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[V]==M[U])return E(e);for(t=M[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return k(t,e);++n}for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[U])return S(t,e);++r}for(o=r-n,a=M[V];o>0;)a=a.parentNode,o--;for(s=M[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function E(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),M[z]==M[q])return t;if(3==M[V].nodeType){if(n=M[V].nodeValue,i=n.substring(M[z],M[q]),e!=O&&(o=M[V],c=M[z],u=M[q]-M[z],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(H.createTextNode(i)),t}for(o=C(M[V],M[z]),a=M[q]-M[z];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&M.collapse(F),t}function k(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=$(e),a=o-M[z],0>=a)return t!=O&&(M.setEndBefore(e),M.collapse(W)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(M.setEndBefore(e),M.collapse(W)),n}function S(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=$(e),++i,a=M[q]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u,d;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=e.parentNode,s=$(e),l=$(t),++s,c=l-s,u=e.nextSibling;c>0;)d=u.nextSibling,i=D(u,n),o&&o.appendChild(i),u=d,--c;return i=R(t,n),o&&o.appendChild(i),n!=O&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[U],M[q]-1),r,i,o,a,s,l=n!=M[U];if(n==e)return B(n,l,W,t);for(r=n.parentNode,i=B(r,W,W,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,W,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,W,W,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[V],M[z]),r=n!=M[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,W,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,W,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[z],a=o.substring(l),s=o.substring(0,l)):(l=M[q],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,W),c.nodeValue=a,c}if(i!=I)return n.clone(e,W)}function D(e,t){return t!=I?t==O?n.clone(e,F):e:(e.parentNode.removeChild(e),void 0)}function L(){return n.create("body",null,g()).outerText}var M=this,H=n.doc,P=0,O=1,I=2,F=!0,W=!1,z="startOffset",V="startContainer",U="endContainer",q="endOffset",j=e.extend,$=n.nodeIndex;return j(M,{startContainer:H,startOffset:0,endContainer:H,endOffset:0,collapsed:F,commonAncestorContainer:H,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:h,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(m,[p],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;"},a={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(g,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1!=t.indexOf("Trident")?11:!1,i=i||o,a=!r&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(v,[c,d,l,f,h,m,g,p],function(e,n,r,i,o,a,s,l){function c(e,t){var i=this,o;i.doc=e,i.win=window,i.files={},i.counter=0,i.stdMode=!g||e.documentMode>=8,i.boxModel=!g||"CSS1Compat"==e.compatMode||i.stdMode,i.hasOuterHTML="outerHTML"in e.createElement("a"),i.settings=t=h({keep_values:!1,hex_colors:1},t),i.schema=t.schema,i.styles=new n({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),i.fixDoc(e),i.events=t.ownEvents?new r(t.proxy):r.Event,o=t.schema?t.schema.getBlockElements():{},i.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!o[e.nodeName]):!!o[e]}}var u=l.each,d=l.is,f=l.grep,p=l.trim,h=l.extend,m=s.webkit,g=s.ie,v=/^([a-z0-9],?)+$/i,y=/^[ \t\r\n]*$/,b=l.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," ");return c.prototype={root:null,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},fixDoc:function(e){var t=this.settings,n;if(g&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!g||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),u(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.get(e.settings.root_element)||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),d(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.get(r.settings.root_element)||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(v.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}return n.nodeType&&1!=n.nodeType?!1:e.matches(r,n.nodeType?[n]:n).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=d(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return this.run(e,function(e){var n,r=e.parentNode;if(!r)return null;if(t)for(;n=e.firstChild;)!g||3!==n.nodeType||n.nodeValue?r.insertBefore(n,e):e.removeChild(n);return r.removeChild(e)})},setStyle:function(e,t,n){return this.run(e,function(e){var r=this,i,o;if(t)if("string"==typeof t){i=e.style,t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"number"!=typeof n||b[t]||(n+="px"),"opacity"===t&&e.runtimeStyle&&"undefined"==typeof e.runtimeStyle.opacity&&(i.filter=""===n?"":"alpha(opacity="+100*n+")"),"float"==t&&(t="cssFloat"in e.style?"cssFloat":"styleFloat");try{i[t]=n}catch(a){}r.settings.update_styles&&e.removeAttribute("data-mce-style")}else for(o in t)r.setStyle(e,o,t[o])})},getStyle:function(e,n,r){if(e=this.get(e)){if(this.doc.defaultView&&r){n=n.replace(/[A-Z]/g,function(e){return"-"+e});try{return this.doc.defaultView.getComputedStyle(e,null).getPropertyValue(n)}catch(i){return null}}return n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=g?"styleFloat":"cssFloat"),e.currentStyle&&r?e.currentStyle[n]:e.style?e.style[n]:t}},setStyles:function(e,t){this.setStyle(e,t)},css:function(e,t,n){this.setStyle(e,t,n)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this;if(e&&t)return this.run(e,function(e){var i=r.settings,o=e.getAttribute(t);if(null!==n)switch(t){case"style":if(!d(n,"string"))return u(n,function(t,n){r.setStyle(e,n,t)}),void 0;i.keep_values&&(n?e.setAttribute("data-mce-style",n,2):e.removeAttribute("data-mce-style",2)),e.style.cssText=n;break;case"class":e.className=n||"";break;case"src":case"href":i.keep_values&&(i.url_converter&&(n=i.url_converter.call(i.url_converter_scope||r,n,t,e)),r.setAttrib(e,"data-mce-"+t,n,2));break;case"shape":e.setAttribute("data-mce-style",n)}d(n)&&null!==n&&0!==n.length?e.setAttribute(t,""+n,2):e.removeAttribute(t,2),o!=n&&i.onSetAttrib&&i.onSetAttrib({attrElm:e,attrName:t,attrValue:n})})},setAttribs:function(e,t){var n=this;return this.run(e,function(e){u(t,function(t,r){n.setAttrib(e,r,t)})})},getAttrib:function(e,t,n){var r,i=this,o;if(e=i.get(e),!e||1!==e.nodeType)return n===o?!1:n;if(d(n)||(n=""),/^(src|href|style|coords|shape)$/.test(t)&&(r=e.getAttribute("data-mce-"+t)))return r;if(g&&i.props[t]&&(r=e[i.props[t]],r=r&&r.nodeValue?r.nodeValue:r),r||(r=e.getAttribute(t,2)),/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(t))return e[i.props[t]]===!0&&""===r?t:r?t:"";if("FORM"===e.nodeName&&e.getAttributeNode(t))return e.getAttributeNode(t).nodeValue;if("style"===t&&(r=r||e.style.cssText,r&&(r=i.serializeStyle(i.parseStyle(r),e.nodeName),i.settings.keep_values&&e.setAttribute("data-mce-style",r))),m&&"class"===t&&r&&(r=r.replace(/(apple|webkit)\-[a-z\-]+/gi,"")),g)switch(t){case"rowspan":case"colspan":1===r&&(r="");break;case"size":("+0"===r||20===r||0===r)&&(r="");break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":0===r&&(r="");break;case"hspace":-1===r&&(r="");break;case"maxlength":case"tabindex":(32768===r||2147483647===r||"32768"===r)&&(r="");break;case"multiple":case"compact":case"noshade":case"nowrap":return 65535===r?t:n;case"shape":r=r.toLowerCase();break;default:0===t.indexOf("on")&&r&&(r=(""+r).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1"))}return r!==o&&null!==r&&""!==r?""+r:n},getPos:function(e,t){var n=this,r=0,i=0,o,a=n.doc,s;if(e=n.get(e),t=t||a.body,e){if(t===a.body&&e.getBoundingClientRect)return s=e.getBoundingClientRect(),t=n.boxModel?a.documentElement:a.body,r=s.left+(a.documentElement.scrollLeft||a.body.scrollLeft)-t.clientTop,i=s.top+(a.documentElement.scrollTop||a.body.scrollTop)-t.clientLeft,{x:r,y:i};for(o=e;o&&o!=t&&o.nodeType;)r+=o.offsetLeft||0,i+=o.offsetTop||0,o=o.offsetParent;for(o=e.parentNode;o&&o!=t&&o.nodeType;)r-=o.scrollLeft||0,i-=o.scrollTop||0,o=o.parentNode}return{x:r,y:i}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==c.DOM&&n===document){var o=c.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,c.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==c.DOM&&n===document?(c.DOM.loadCSS(e),void 0):(e||(e=""),r=n.getElementsByTagName("head")[0],u(e.split(","),function(e){var i;t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),g&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}),void 0)},addClass:function(e,t){return this.run(e,function(e){var n;return t?this.hasClass(e,t)?e.className:(n=this.removeClass(e,t),e.className=n=(""!==n?n+" ":"")+t,n):0})},removeClass:function(e,t){var n=this,r;return n.run(e,function(e){var i;return n.hasClass(e,t)?(r||(r=new RegExp("(^|\\s+)"+t+"(\\s+|$)","g")),i=e.className.replace(r," "),i=p(" "!=i?i:""),e.className=i,i||(e.removeAttribute("class"),e.removeAttribute("className")),i):e.className})},hasClass:function(e,t){return e=this.get(e),e&&t?-1!==(" "+e.className+" ").indexOf(" "+t+" "):!1},toggleClass:function(e,n,r){r=r===t?!this.hasClass(e,n):r,this.hasClass(e,n)!==r&&(r?this.addClass(e,n):this.removeClass(e,n))},show:function(e){return this.setStyle(e,"display","block")},hide:function(e){return this.setStyle(e,"display","none")},isHidden:function(e){return e=this.get(e),!e||"none"==e.style.display||"none"==this.getStyle(e,"display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){var n=this;return n.run(e,function(e){if(g){for(;e.firstChild;)e.removeChild(e.firstChild);try{e.innerHTML="<br />"+t,e.removeChild(e.firstChild)}catch(r){var i=n.create("div");i.innerHTML="<br />"+t,u(f(i.childNodes),function(t,n){n&&e.canHaveHTML&&e.appendChild(t)})}}else e.innerHTML=t;return t})},getOuterHTML:function(e){var t,n=this;return(e=n.get(e))?1===e.nodeType&&n.hasOuterHTML?e.outerHTML:(t=(e.ownerDocument||n.doc).createElement("body"),t.appendChild(e.cloneNode(!0)),t.innerHTML):null},setOuterHTML:function(e,t,n){var r=this;return r.run(e,function(e){function i(){var i,o;for(o=n.createElement("body"),o.innerHTML=t,i=o.lastChild;i;)r.insertAfter(i.cloneNode(!0),e),i=i.previousSibling;r.remove(e)}if(1==e.nodeType)if(n=n||e.ownerDocument||r.doc,g)try{1==e.nodeType&&r.hasOuterHTML?e.outerHTML=t:i()}catch(o){i()}else i()})},decode:a.decode,encode:a.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return d(t,"array")&&(e=e.cloneNode(!0)),n&&u(f(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),u(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(l.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],u(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(g){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,o,a,s,l,c=0;if(e=e.firstChild){s=new i(e,e.parentNode),t=t||n.schema?n.schema.getNonEmptyElements():null;do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(o=n.getAttribs(e),r=e.attributes.length;r--;)if(l=e.attributes[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!y.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new o(this)},nodeIndex:function(e,t){var n=0,r,i,o;if(e)for(r=e.nodeType,e=e.previousSibling,i=e;e;e=e.previousSibling)o=e.nodeType,(!t||3!=o||o!=r&&e.nodeValue.length)&&(n++,r=o);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=p(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){return this.events.bind(e,t,n,r||this)},unbind:function(e,t,n){return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return 1!=e.nodeType?null:(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null)},destroy:function(){var e=this;e.win=e.doc=e.root=e.events=e.frag=null},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},c.DOM=new c(document),c}),r(y,[v,p],function(e,t){function n(){function e(e,t){function n(){o.remove(s),a&&(a.onreadystatechange=a.onload=a=null),t()}function i(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var o=r,a,s;s=o.uniqueId(),a=document.createElement("script"),a.id=s,a.type="text/javascript",a.src=e,"onreadystatechange"in a?a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&n()}:a.onload=n,a.onerror=i,(document.getElementsByTagName("head")[0]||document.body).appendChild(a)}var t=0,n=1,a=2,s={},l=[],c={},u=[],d=0,f;this.isDone=function(e){return s[e]==a},this.markDone=function(e){s[e]=a},this.add=this.load=function(e,n,r){var i=s[e];i==f&&(l.push(e),s[e]=t),n&&(c[e]||(c[e]=[]),c[e].push({func:n,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(l,e,t)},this.loadScripts=function(t,r,l){function p(e){i(c[e],function(e){e.func.call(e.scope)}),c[e]=f}var h;u.push({func:r,scope:l||this}),h=function(){var r=o(t);t.length=0,i(r,function(t){return s[t]==a?(p(t),void 0):(s[t]!=n&&(s[t]=n,d++,e(t,function(){s[t]=a,d--,p(t),h()})),void 0)}),d||(i(u,function(e){e.func.call(e.scope)}),u.length=0)},h()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(b,[y,p],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t){var n=r.settings;n&&n.language&&n.language_load!==!1&&e.ScriptLoader.add(this.urls[t]+"/langs/"+n.language+".js")},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&(s?a.call(s):a.call(e))}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(C,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";
+if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(x,[p],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e){var t={},n,r;for(n=0,r=e.length;r>n;n++)t[e[n]]={};return t}var o,l,c,u=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),l=3;l<u.length;l++)"string"==typeof u[l]&&(u[l]=t(u[l])),r.push.apply(r,u[l]);for(e=t(e),o=e.length;o--;)c=[].concat(s,t(n)),a[e[o]]={attributes:i(c),attributesOrder:c,children:i(r)}}function i(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},s,l,c,u,d,f,p;return r[e]?r[e]:(s=t("id accesskey class dir lang style tabindex title"),l=t("onabort onblur oncancel oncanplay oncanplaythrough onchange onclick onclose oncontextmenu oncuechange ondblclick ondrag ondragend ondragenter ondragleave ondragover ondragstart ondrop ondurationchange onemptied onended onerror onfocus oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata onloadedmetadata onloadstart onmousedown onmousemove onmouseout onmouseover onmouseup onmousewheel onpause onplay onplaying onprogress onratechange onreset onscroll onseeked onseeking onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate onvolumechange onwaiting"),c=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),u=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(s.push.apply(s,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),c.push.apply(c,t("article aside details dialog figure header footer hgroup section nav")),u.push.apply(u,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(s.push("xml:lang"),p=t("acronym applet basefont big font strike tt"),u.push.apply(u,p),o(p,function(e){n(e,"",u)}),f=t("center dir isindex noframes"),c.push.apply(c,f),d=[].concat(c,u),o(f,function(e){n(e,"",d)})),d=d||[].concat(c,u),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",d),n("address dt dd div caption","",d),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",u),n("blockquote","cite",d),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",d),n("dl","","dt dd"),n("a","href target rel media hreflang type",u),n("q","cite",u),n("ins del","cite datetime",d),n("img","src alt usemap ismap width height"),n("iframe","src name width height",d),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",d,"param"),n("param","name value"),n("map","name",d,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",d),n("th","colspan rowspan headers scope abbr",d),n("form","accept-charset action autocomplete enctype method name novalidate target",d),n("fieldset","disabled form name",d,"legend"),n("label","form for",u),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?d:u),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",d,"li"),n("noscript","",d),"html4"!=e&&(n("wbr"),n("ruby","",u,"rt rp"),n("figcaption","",d),n("mark rt rp summary bdi","",u),n("canvas","width height",d),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height",d,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls",d,"track source"),n("source","src type media"),n("track","kind src srclang label default"),n("datalist","",u,"option"),n("article section nav aside header footer","",d),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",d,"figcaption"),n("time","datetime",u),n("dialog","open",d),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",u),n("progress","value max",u),n("meter","value min max low high optimum",u),n("details","open",d,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(i("script","language xml:space"),i("style","xml:space"),i("object","declare classid codebase codetype archive standby align border hspace vspace"),i("param","valuetype type"),i("a","charset name rev shape coords"),i("br","clear"),i("applet","codebase archive code object alt name width height align hspace vspace"),i("img","name longdesc align border hspace vspace"),i("iframe","longdesc frameborder marginwidth marginheight scrolling align"),i("font basefont","size color face"),i("input","usemap align"),i("select","onchange"),i("textarea"),i("h1 h2 h3 h4 h5 h6 div p legend caption","align"),i("ul","type compact"),i("li","type"),i("ol dl menu dir","compact"),i("pre","width xml:space"),i("hr","align noshade size width"),i("isindex","prompt"),i("table","summary width frame rules cellspacing cellpadding align bgcolor"),i("col","width align char charoff valign"),i("colgroup","width align char charoff valign"),i("thead","align char charoff valign"),i("tr","align char charoff valign bgcolor"),i("th","axis align char charoff valign nowrap bgcolor width height"),i("form","accept"),i("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),i("tfoot","align char charoff valign"),i("tbody","align char charoff valign"),i("area","nohref"),i("body","background bgcolor text link vlink alink")),"html4"!=e&&(i("input button select textarea","autofocus"),i("input textarea","placeholder"),i("a","download"),i("link script img","crossorigin"),i("iframe","srcdoc sandbox seamless allowfullscreen")),o(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,r[e]=a,a)}var r={},i=e.makeMap,o=e.each,a=e.extend,s=e.explode,l=e.inArray;return function(e){function c(t,n,o){var s=e[t];return s?s=i(s,",",i(s.toUpperCase()," ")):(s=r[t],s||(s=i(n," ",i(n.toUpperCase()," ")),s=a(s,o),r[t]=s)),s}function u(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function d(e){var n,r,o,a,s,c,d,f,p,h,m,g,y,C,x,w,_,N,E,k=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,S=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),v["@"]&&(w=v["@"].attributes,_=v["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=k.exec(e[n])){if(C=s[1],p=s[2],x=s[3],f=s[5],g={},y=[],c={attributes:g,attributesOrder:y},"#"===C&&(c.paddEmpty=!0),"-"===C&&(c.removeEmpty=!0),"!"===s[4]&&(c.removeEmptyAttrs=!0),w){for(N in w)g[N]=w[N];y.push.apply(y,_)}if(f)for(f=t(f,"|"),o=0,a=f.length;a>o;o++)if(s=S.exec(f[o])){if(d={},m=s[1],h=s[2].replace(/::/g,":"),C=s[3],E=s[4],"!"===m&&(c.attributesRequired=c.attributesRequired||[],c.attributesRequired.push(h),d.required=!0),"-"===m){delete g[h],y.splice(l(y,h),1);continue}C&&("="===C&&(c.attributesDefault=c.attributesDefault||[],c.attributesDefault.push({name:h,value:E}),d.defaultValue=E),":"===C&&(c.attributesForced=c.attributesForced||[],c.attributesForced.push({name:h,value:E}),d.forcedValue=E),"<"===C&&(d.validValues=i(E,"?"))),T.test(h)?(c.attributePatterns=c.attributePatterns||[],d.pattern=u(h),c.attributePatterns.push(d)):(g[h]||y.push(h),g[h]=d)}w||"@"!=p||(w=g,_=y),x&&(c.outputName=p,v[x]=c),T.test(p)?(c.pattern=u(p),b.push(c)):v[p]=c}}function f(e){v={},b=[],d(e),o(x,function(e,t){y[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&o(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",s=t[2];if(y[s]=y[i],R[s]=i,r||(k[s.toUpperCase()]={},k[s]={}),!v[s]){var l=v[i];l=a({},l),delete l.removeEmptyAttrs,delete l.removeEmpty,v[s]=l}o(y,function(e){e[i]&&(e[s]=e[i])})})}function h(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&o(t(e,","),function(e){var r=n.exec(e),i,a;r&&(a=r[1],i=a?y[r[2]]:y[r[2]]={"#comment":{}},i=y[r[2]],o(t(r[3],"|"),function(e){"-"===a?delete i[e]:i[e]={}}))})}function m(e){var t=v[e],n;if(t)return t;for(n=b.length;n--;)if(t=b[n],t.pattern.test(e))return t}var g=this,v={},y={},b=[],C,x,w,_,N,E,k,S,T,R={},A={};e=e||{},x=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),e.valid_styles&&(C={},o(e.valid_styles,function(e,t){C[t]=s(e)})),w=c("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=c("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),N=c("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),E=c("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),S=c("non_empty_elements","td th iframe video audio object",N),T=c("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),k=c("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex samp option datalist select optgroup",T),o((e.special||"script noscript style textarea").split(" "),function(e){A[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?f(e.valid_elements):(o(x,function(e,t){v[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},y[t]=e.children}),"html5"!=e.schema&&o(t("strong/b em/i"),function(e){e=t(e,"/"),v[e[1]].outputName=e[0]}),v.img.attributesDefault=[{name:"alt",value:""}],o(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){v[e]&&(v[e].removeEmpty=!0)}),o(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){v[e].paddEmpty=!0}),o(t("span"),function(e){v[e].removeEmptyAttrs=!0})),p(e.custom_elements),h(e.valid_children),d(e.extended_valid_elements),h("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&o(s(e.invalid_elements),function(e){v[e]&&delete v[e]}),m("span")||d("span[!data-mce-type|*]"),g.children=y,g.styles=C,g.getBoolAttrs=function(){return E},g.getBlockElements=function(){return k},g.getTextBlockElements=function(){return T},g.getShortEndedElements=function(){return N},g.getSelfClosingElements=function(){return _},g.getNonEmptyElements=function(){return S},g.getWhiteSpaceElements=function(){return w},g.getSpecialElements=function(){return A},g.isValidChild=function(e,t){var n=y[e];return!(!n||!n[t])},g.isValid=function(e,t){var n,r,i=m(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},g.getElementRule=m,g.getCustomElements=function(){return R},g.addValidElements=d,g.setValidElements=f,g.addCustomElements=p,g.addValidChildren=h,g.elements=v}}),r(w,[x,m,p],function(e,t,n){var r=n.each;return function(n,i){var o=this,a=function(){};n=n||{},o.schema=i=i||new e,n.fix_self_closing!==!1&&(n.fix_self_closing=!0),r("comment cdata text start end pi doctype".split(" "),function(e){e&&(o[e]=n[e]||a)}),o.parse=function(e){function r(e){var t,n;for(t=d.length;t--&&d[t].name!==e;);if(t>=0){for(n=d.length-1;n>=t;n--)e=d[n],e.valid&&a.end(e.name);d.length=t}}function o(e,t,n,r,i){var o,a;if(t=t.toLowerCase(),n=t in b?t:I(n||r||i||""),x&&!g&&0!==t.indexOf("data-")){if(o=k[t],!o&&S){for(a=S.length;a--&&(o=S[a],!o.pattern.test(t)););-1===a&&(o=null)}if(!o)return;if(o.validValues&&!(n in o.validValues))return}f.map[t]=n,f.push({name:t,value:n})}var a=this,s,l=0,c,u,d=[],f,p,h,m,g,v,y,b,C,x,w,_,N,E,k,S,T,R,A,B,D,L,M,H,P,O=0,I=t.decode,F;for(L=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),M=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,y=i.getShortEndedElements(),D=n.self_closing_elements||i.getSelfClosingElements(),b=i.getBoolAttrs(),x=n.validate,v=n.remove_internals,F=n.fix_self_closing,H=i.getSpecialElements();s=L.exec(e);){if(l<s.index&&a.text(I(e.substr(l,s.index-l))),c=s[6])c=c.toLowerCase(),":"===c.charAt(0)&&(c=c.substr(1)),r(c);else if(c=s[7]){if(c=c.toLowerCase(),":"===c.charAt(0)&&(c=c.substr(1)),C=c in y,F&&D[c]&&d.length>0&&d[d.length-1].name===c&&r(c),!x||(w=i.getElementRule(c))){if(_=!0,x&&(k=w.attributes,S=w.attributePatterns),(E=s[8])?(g=-1!==E.indexOf("data-mce-type"),g&&v&&(_=!1),f=[],f.map={},E.replace(M,o)):(f=[],f.map={}),x&&!g){if(T=w.attributesRequired,R=w.attributesDefault,A=w.attributesForced,B=w.removeEmptyAttrs,B&&!f.length&&(_=!1),A)for(p=A.length;p--;)N=A[p],m=N.name,P=N.value,"{$uid}"===P&&(P="mce_"+O++),f.map[m]=P,f.push({name:m,value:P});if(R)for(p=R.length;p--;)N=R[p],m=N.name,m in f.map||(P=N.value,"{$uid}"===P&&(P="mce_"+O++),f.map[m]=P,f.push({name:m,value:P}));if(T){for(p=T.length;p--&&!(T[p]in f.map););-1===p&&(_=!1)}f.map["data-mce-bogus"]&&(_=!1)}_&&a.start(c,f,C)}else _=!1;if(u=H[c]){u.lastIndex=l=s.index+s[0].length,(s=u.exec(e))?(_&&(h=e.substr(l,s.index-l)),l=s.index+s[0].length):(h=e.substr(l),l=e.length),_&&(h.length>0&&a.text(h,!0),a.end(c)),L.lastIndex=l;continue}C||(E&&E.indexOf("/")==E.length-1?_&&a.end(c):d.push({name:c,valid:_}))}else(c=s[1])?a.comment(c):(c=s[2])?a.cdata(c):(c=s[3])?a.doctype(c):(c=s[4])&&a.pi(c,s[5]);l=s.index+s[0].length}for(l<e.length&&a.text(I(e.substr(l))),p=d.length-1;p>=0;p--)c=d[p],c.valid&&a.end(c.name)}}}),r(_,[C,x,w,p],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,p,h,m,g,v,y;for(m=i("tr,td,th,tbody,thead,tfoot,table"),h=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!m[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),p=0;p<a.length-1;p++){for(l.isValidChild(c.name,a[p].name)?(d=u.filterNode(a[p].clone()),c.append(d)):d=c,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,d.append(f),f=y;c=d}s.isEmpty(h)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(h)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],p={},h={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=p[n],r?r.push(e):p[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=h[n],r?r.push(e):h[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return f[n].callbacks.push(t),void 0;f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(D,"")))}var t=y.firstChild,n,r;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?r?r.append(t):(r=u(I,1),y.insert(r,t),r.append(t)):(e(r),r=null),t=n;e(r)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=p[t],i?i.push(r):p[t]=[r]),r}function m(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(D,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,N,E,k,S,T,R,A=[],B,D,L,M,H,P,O,I;if(o=o||{},p={},h={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,S=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,H=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,D=/[ \t\r\n]+$/,L=/[ \t\r\n]+/g,M=/^[ \t\r\n]+$/,v=new n({validate:S,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(L," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,m(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,m(b)},start:function(e,t,n){var r,i,o,a,s;if(o=S?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(E=h[a],E?E.push(r):h[a]=[r]);T[e]&&m(r),n||(b=r),!B&&H[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=S?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(D,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o}if(B&&H[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,b.empty().remove(),b=a,void 0;b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),S&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(k in p){for(E=d[k],C=p[k],_=C.length;_--;)C[_].parent||C.splice(_,1);for(x=0,w=E.length;w>x;x++)E[x](C,k,o)}for(x=0,w=f.length;w>x;x++)if(E=f[x],E.name in h){for(C=h[E.name],_=C.length;_--;)C[_].parent||C.splice(_,1);for(_=0,N=E.callbacks.length;N>_;_++)E.callbacks[_](C,E.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,p,h;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(h=new e("#text",3),h.value="\xa0",i.replace(h))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}})}}),r(N,[m,p],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(E,[N,x],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,h,m;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},m=r.getElementRule(e.name),p=0,h=m.attributesOrder.length;h>p;p++)u=m.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,h=c.length;h>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(k,[v,_,m,E,C,x,g,p],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null)}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addAttributeFilter("data-mce-expando",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o;r--;)if(i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t){var a=(i.attr("type")||"text/javascript").replace(/^mce\-/,"");i.attr("type","text/javascript"===a?null:a),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")}else o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,h,m;return a.ie&&s.select("script,style,select,map").length>0?(m=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,m)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),h=new r(e,d),n.content=h.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(S,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return a[e?"setStart":"setEnd"](r,0),void 0;if(i===c)return a[e?"setStartBefore":"setEndAfter"](r),void 0;if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return a[e?"setStartAfter":"setEndAfter"](r),void 0;if(!i)return 3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l),void 0;for(;l;){if(u=l.nodeValue,s+=u.length,s>=i){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return 3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l),void 0;for(;l;){if(s+=l.nodeValue.length,s>=i){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,h;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(h=t.childNodes,h.length?(n>=h.length?i.insertAfter(a,h[h.length-1]):t.insertBefore(a,h[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span>&#xFEFF;</span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))
+}var r,a,s,l,c,u,d,f=e.dom.doc,p=f.body,h,m;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="&#xFEFF;":d=null,s.innerHTML="<span>&#xFEFF;</span><span>&#xFEFF;</span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",d&&(d.innerHTML=""),void 0;l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(m=s.childNodes[l],a=p.createControlRange(),a.addElement(m),a.select(),h=e.getRng(),h.item&&m===h.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(T,[g],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey},metaKeyPressed:function(t){return(e.mac?t.ctrlKey||t.metaKey:t.ctrlKey)&&!t.altKey}}}),r(R,[T,p,g],function(e,t,n){return function(r,i){function o(e){return i.settings.object_resizing===!1?!1:/TABLE|IMG|DIV/.test(e.nodeName)?"false"===e.getAttribute("data-mce-resize")?!1:!0:!1}function a(t){var n,r;n=t.screenX-k,r=t.screenY-S,M=n*N[2]+A,H=r*N[3]+B,M=5>M?5:M,H=5>H?5:H,(e.modifierPressed(t)||"IMG"==x.nodeName&&0!==N[2]*N[3])&&(M=Math.round(H/D),H=Math.round(M*D)),b.setStyles(w,{width:M,height:H}),N[2]<0&&w.clientWidth<=M&&b.setStyle(w,"left",T+(A-M)),N[3]<0&&w.clientHeight<=H&&b.setStyle(w,"top",R+(B-H)),L||(i.fire("ObjectResizeStart",{target:x,width:A,height:B}),L=!0)}function s(){function e(e,t){t&&(x.style[e]||!i.schema.isValid(x.nodeName.toLowerCase(),e)?b.setStyle(x,e,t):b.setAttrib(x,e,t))}L=!1,e("width",M),e("height",H),b.unbind(P,"mousemove",a),b.unbind(P,"mouseup",s),O!=P&&(b.unbind(O,"mousemove",a),b.unbind(O,"mouseup",s)),b.remove(w),I&&"TABLE"!=x.nodeName||l(x),i.fire("ObjectResized",{target:x,width:M,height:H}),i.nodeChanged()}function l(e,t,n){var r,l,u,d,f,p=i.getBody().offsetParent||i.getBody();r=b.getPos(e,p),T=r.x,R=r.y,f=e.getBoundingClientRect(),l=f.width||f.right-f.left,u=f.height||f.bottom-f.top,x!=e&&(m(),x=e,M=H=0),d=i.fire("ObjectSelected",{target:e}),o(e)&&!d.isDefaultPrevented()?C(_,function(e,r){function o(t){L=!0,k=t.screenX,S=t.screenY,A=x.clientWidth,B=x.clientHeight,D=B/A,N=e,w=x.cloneNode(!0),b.addClass(w,"mce-clonedresizable"),w.contentEditable=!1,w.unSelectabe=!0,b.setStyles(w,{left:T,top:R,margin:0}),w.removeAttribute("data-mce-selected"),i.getBody().appendChild(w),b.bind(P,"mousemove",a),b.bind(P,"mouseup",s),O!=P&&(b.bind(O,"mousemove",a),b.bind(O,"mouseup",s))}var c,d;return t?(r==t&&o(n),void 0):(c=b.get("mceResizeHandle"+r),c?b.show(c):(d=i.getBody(),c=b.add(d,"div",{id:"mceResizeHandle"+r,"data-mce-bogus":!0,"class":"mce-resizehandle",contentEditable:!1,unSelectabe:!0,style:"cursor:"+r+"-resize; margin:0; padding:0"}),b.bind(c,"mousedown",function(e){e.preventDefault(),o(e)})),b.setStyles(c,{left:l*e[0]+T-c.offsetWidth/2,top:u*e[1]+R-c.offsetHeight/2}),void 0)}):c(),x.setAttribute("data-mce-selected","1")}function c(){var e,t;x&&x.removeAttribute("data-mce-selected");for(e in _)t=b.get("mceResizeHandle"+e),t&&(b.unbind(t),b.remove(t))}function u(e){function t(e,t){do if(e===t)return!0;while(e=e.parentNode)}var n;return C(b.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),n="mousedown"==e.type?e.target:r.getNode(),n=b.getParent(n,I?"table":"table,img,hr"),n&&(g(),t(r.getStart(),n)&&t(r.getEnd(),n)&&(!I||n!=r.getStart()&&"IMG"!==r.getStart().nodeName))?(l(n),void 0):(c(),void 0)}function d(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,u;n=t.getBoundingClientRect(),c=E.clientX-n.left,u=E.clientY-n.top;for(r in _)if(o=_[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],Math.abs(a-c)<8&&Math.abs(s-u)<8){N=o;break}L=!0,i.getDoc().selection.empty(),l(t,r,E)}function h(e){var t=e.srcElement;if(t!=x){if(m(),0===t.id.indexOf("mceResizeHandle"))return e.returnValue=!1,void 0;("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),x=t,d(t,"resizestart",p))}}function m(){f(x,"resizestart",p)}function g(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function v(e){var t;if(I){t=P.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function y(){x=w=null,I&&(m(),f(i.getBody(),"controlselect",h))}var b=i.dom,C=t.each,x,w,_,N,E,k,S,T,R,A,B,D,L,M,H,P=i.getDoc(),O=document,I=n.ie&&n.ie<11;_={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var F=".mce-content-body";return i.contentStyles.push(F+" div.mce-resizehandle {"+"position: absolute;"+"border: 1px solid black;"+"background: #FFF;"+"width: 5px;"+"height: 5px;"+"z-index: 10000"+"}"+F+" .mce-resizehandle:hover {"+"background: #000"+"}"+F+" img[data-mce-selected], hr[data-mce-selected] {"+"outline: 1px solid black;"+"resize: none"+"}"+F+" .mce-clonedresizable {"+"position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;"+"filter: alpha(opacity=50);"+"z-index: 10000"+"}"),i.on("init",function(){I?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),v(e.target))}),d(i.getBody(),"controlselect",h),i.on("mousedown",function(e){E=e})):(g(),n.ie>=11&&i.on("mouseup mousedown",function(e){("IMG"==e.target.nodeName||"IMG"==i.selection.getNode().nodeName)&&(e.preventDefault(),i.selection.select(e.target))})),i.on("nodechange mousedown ResizeEditor",u),i.on("keydown keyup",function(e){x&&"TABLE"==x.nodeName&&u(e)})}),{controlSelect:v,destroy:y}}}),r(A,[f,S,R,g,p],function(e,n,r,i,o){function a(e,t,i,o){var a=this;a.dom=e,a.win=t,a.serializer=i,a.editor=o,a.controlSelection=new r(a,o),a.win.getSelection||(a.tridentSel=new n(a))}var s=o.each,l=o.grep,c=o.trim,u=i.ie,d=i.opera;return a.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(){var e=this,t=e.getRng(),n,r,i,o;if(t.duplicate||t.item){if(t.item)return t.item(0);for(i=t.duplicate(),i.collapse(1),n=i.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),r=o=t.parentElement();o=o.parentNode;)if(o==n){n=r;break}return n}return n=t.startContainer,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[Math.min(n.childNodes.length-1,t.startOffset)]),n&&3==n.nodeType?n.parentNode:n},getEnd:function(){var e=this,t=e.getRng(),n,r;return t.duplicate||t.item?t.item?t.item(0):(t=t.duplicate(),t.collapse(0),n=t.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),n&&"BODY"==n.nodeName?n.lastChild||n:n):(n=t.endContainer,r=t.endOffset,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[r>0?r-1:r]),n&&3==n.nodeType?n.parentNode:n)},getBookmark:function(e,t){function n(e,t){var n=0;return s(a.select(e),function(e,r){e==t&&(n=r)}),n}function r(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function i(){function e(e,n){var i=e[n?"startContainer":"endContainer"],a=e[n?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==i.nodeType){if(t)for(l=i.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=i.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(o.dom.nodeIndex(c[a],t)+u);for(;i&&i!=r;i=i.parentNode)s.push(o.dom.nodeIndex(i,t));return s}var n=o.getRng(!0),r=a.getRoot(),i={};return i.start=e(n,!0),o.isCollapsed()||(i.end=e(n)),i}var o=this,a=o.dom,l,c,u,d,f,p,h="&#xFEFF;",m;if(2==e)return p=o.getNode(),f=p.nodeName,"IMG"==f?{name:f,index:n(f,p)}:o.tridentSel?o.tridentSel.getBookmark(e):i();if(e)return{rng:o.getRng()};if(l=o.getRng(),u=a.uniqueId(),d=o.isCollapsed(),m="overflow:hidden;line-height:0px",l.duplicate||l.item){if(l.item)return p=l.item(0),f=p.nodeName,{name:f,index:n(f,p)};c=l.duplicate();try{l.collapse(),l.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_start" style="'+m+'">'+h+"</span>"),d||(c.collapse(!1),l.moveToElementText(c.parentElement()),0===l.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_end" style="'+m+'">'+h+"</span>"))}catch(g){return null}}else{if(p=o.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:n(f,p)};c=r(l.cloneRange()),d||(c.collapse(!1),c.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:m},h))),l=r(l),l.collapse(!0),l.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:m},h))}return o.moveToBookmark({id:u,keep:1}),{id:u}},moveToBookmark:function(e){function t(t){var n=e[t?"start":"end"],r,i,o,s;if(n){for(o=n[0],i=c,r=n.length-1;r>=1;r--){if(s=i.childNodes,n[r]>s.length-1)return;i=s[n[r]]}3===i.nodeType&&(o=Math.min(n[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(n[0],i.childNodes.length)),t?a.setStart(i,o):a.setEnd(i,o)}return!0}function n(t){var n=o.get(e.id+"_"+t),r,i,a,c,u=e.keep;if(n&&(r=n.parentNode,"start"==t?(u?(r=n.firstChild,i=1):i=o.nodeIndex(n),f=p=r,h=m=i):(u?(r=n.firstChild,i=1):i=o.nodeIndex(n),p=r,m=i),!u)){for(c=n.previousSibling,a=n.nextSibling,s(l(n.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});n=o.get(e.id+"_"+t);)o.remove(n,1);c&&a&&c.nodeType==a.nodeType&&3==c.nodeType&&!d&&(i=c.nodeValue.length,c.appendData(a.nodeValue),o.remove(a),"start"==t?(f=p=c,h=m=i):(p=c,m=i))}}function r(e){return!o.isBlock(e)||e.innerHTML||u||(e.innerHTML='<br data-mce-bogus="1" />'),e}var i=this,o=i.dom,a,c,f,p,h,m;if(e)if(e.start){if(a=o.createRng(),c=o.getRoot(),i.tridentSel)return i.tridentSel.moveToBookmark(e);t(!0)&&t()&&i.setRng(a)}else e.id?(n("start"),n("end"),f&&(a=o.createRng(),a.setStart(r(f),h),a.setEnd(r(p),m),i.setRng(a))):e.name?i.select(o.select(e.name)[e.index]):e.rng&&i.setRng(e.rng)},select:function(t,n){function r(t,n){var r=new e(t,t);do{if(3==t.nodeType&&0!==c(t.nodeValue).length)return n?a.setStart(t,0):a.setEnd(t,t.nodeValue.length),void 0;if("BR"==t.nodeName)return n?a.setStartBefore(t):a.setEndBefore(t),void 0}while(t=n?r.next():r.prev())}var i=this,o=i.dom,a=o.createRng(),s;if(i.lastFocusBookmark=null,t){if(!n&&i.controlSelection.controlSelect(t))return;s=o.nodeIndex(t),a.setStart(t.parentNode,s),a.setEnd(t.parentNode,s+1),n&&(r(t,1),r(t)),i.setRng(a)}return t},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){var t=this,n,r,i,o=t.win.document,a;if(!e&&t.lastFocusBookmark){var s=t.lastFocusBookmark;return s.startContainer?(r=o.createRange(),r.setStart(s.startContainer,s.startOffset),r.setEnd(s.endContainer,s.endOffset)):r=s,r}if(e&&t.tridentSel)return t.tridentSel.getRangeAt(0);try{(n=t.getSel())&&(r=n.rangeCount>0?n.getRangeAt(0):n.createRange?n.createRange():o.createRange())}catch(l){}if(u&&r&&r.setStart){try{a=o.selection.createRange()}catch(l){}a&&a.item&&(i=a.item(0),r=o.createRange(),r.setStartBefore(i),r.setEndAfter(i))}return r||(r=o.createRange?o.createRange():o.body.createTextRange()),r.setStart&&9===r.startContainer.nodeType&&r.collapsed&&(i=t.dom.getRoot(),r.setStart(i,0),r.setEnd(i,0)),t.selectedRange&&t.explicitRange&&(0===r.compareBoundaryPoints(r.START_TO_START,t.selectedRange)&&0===r.compareBoundaryPoints(r.END_TO_END,t.selectedRange)?r=t.explicitRange:(t.selectedRange=null,t.explicitRange=null)),r},setRng:function(e,t){var n=this,r;if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return n.tridentSel.addRange(e),void 0}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset;return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):n.item?n.item(0):n.parentElement():t.dom.getRoot()},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){function t(t){function a(t,n){for(var r=new e(t,f.getParent(t.parentNode,f.isBlock)||p);t=r[n?"prev":"next"]();)if("BR"===t.nodeName)return!0}function s(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function l(t,n){var r,a;for(n=n||c,r=new e(n,f.getParent(n.parentNode,f.isBlock)||p);h=r[t?"prev":"next"]();){if(3===h.nodeType&&h.nodeValue.length>0)return c=h,u=t?h.nodeValue.length:0,i=!0,void 0;if(f.isBlock(h)||m[h.nodeName.toLowerCase()])return;a=h}o&&a&&(c=a,i=!0,u=0)}var c,u,d,f=n.dom,p=f.getRoot(),h,m,g;if(c=r[(t?"start":"end")+"Container"],u=r[(t?"start":"end")+"Offset"],m=f.schema.getNonEmptyElements(),9===c.nodeType&&(c=f.getRoot(),u=0),c===p){if(t&&(h=c.childNodes[u>0?u-1:0],h&&(g=h.nodeName.toLowerCase(),m[h.nodeName]||"TABLE"==h.nodeName)))return;if(c.hasChildNodes()&&(u=Math.min(!t&&u>0?u-1:u,c.childNodes.length-1),c=c.childNodes[u],u=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){h=c,d=new e(c,p);do{if(3===h.nodeType&&h.nodeValue.length>0){u=t?0:h.nodeValue.length,c=h,i=!0;break}if(m[h.nodeName.toLowerCase()]){u=f.nodeIndex(h),c=h.parentNode,"IMG"!=h.nodeName||t||u++,i=!0;break}}while(h=t?d.next():d.prev())}}o&&(3===c.nodeType&&0===u&&l(!0),1===c.nodeType&&(h=c.childNodes[u],!h||"BR"!==h.nodeName||s(h,"A")||a(h)||a(h,!0)||l(!0,c.childNodes[u]))),t&&!o&&3===c.nodeType&&u===c.nodeValue.length&&l(!1),i&&r["set"+(t?"Start":"End")](c,u)}var n=this,r,i,o;u||(r=n.getRng(),o=r.collapsed,t(!0),o||t(),i&&(o&&r.collapse(!0),n.setRng(r,n.isForward())))},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};s(n.selectorChangedData,function(e,t){s(o,function(n){return i.is(n,t)?(r[t]||(s(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),s(r,function(e,n){a[n]||(delete r[n],s(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},scrollIntoView:function(e){var t,n,r=this,i=r.dom;n=i.getViewPort(r.editor.getWin()),t=i.getPos(e).y,(t<n.y||t+25>n.y+n.h)&&r.editor.getWin().scrollTo(0,t<n.y?t:t-n.h+25)},destroy:function(){this.win=null,this.controlSelection.destroy()}},a}),r(B,[p],function(e){function t(e){this.walk=function(t,r){function i(e){var t;return t=e[0],3===t.nodeType&&t===l&&c>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===d&&e.length>0&&t===u&&3===t.nodeType&&e.splice(e.length-1,1),e}function o(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function a(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,n){var a=n?"nextSibling":"previousSibling";for(m=e,g=m.parentNode;m&&m!=t;m=g)g=m.parentNode,v=o(m==e?m:m[a],a),v.length&&(n||v.reverse(),r(i(v)))}var l=t.startContainer,c=t.startOffset,u=t.endContainer,d=t.endOffset,f,p,h,m,g,v,y;if(y=e.select("td.mce-item-selected,th.mce-item-selected"),y.length>0)return n(y,function(e){r([e])}),void 0;if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[c]),1==u.nodeType&&u.hasChildNodes()&&(u=u.childNodes[Math.min(d-1,u.childNodes.length-1)]),l==u)return r(i([l]));for(f=e.findCommonAncestor(l,u),m=l;m;m=m.parentNode){if(m===u)return s(l,f,!0);if(m===f)break}for(m=u;m;m=m.parentNode){if(m===l)return s(u,f);if(m===f)break}p=a(l,f)||l,h=a(u,f)||u,s(l,p,!0),v=o(p==l?p:p.nextSibling,"nextSibling",h==u?h.nextSibling:h),v.length&&r(i(v)),s(u,h)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}}}var n=e.each;return t.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},t}),r(D,[f,B,p],function(e,t,n){return function(r){function i(e){return e.nodeType&&(e=e.nodeName),!!r.schema.getTextBlockElements()[e.toLowerCase()]}function o(e,t){return I.getParents(e,t,I.getRoot())}function a(e){return 1===e.nodeType&&"_mce_caret"===e.id}function s(){u({alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:!1},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:!1},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){et(n,function(t,n){I.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),et("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){u(e,{block:e,remove:"all"})}),u(r.settings.formats)}function l(){r.addShortcut("ctrl+b","bold_desc","Bold"),r.addShortcut("ctrl+i","italic_desc","Italic"),r.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)r.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);r.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),r.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),r.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function c(e){return e?O[e]:O}function u(e,t){e&&("string"!=typeof e?et(e,function(e,t){u(t,e)}):(t=t.length?t:[t],et(t,function(e){e.deep===X&&(e.deep=!e.selector),e.split===X&&(e.split=!e.selector||e.inline),e.remove===X&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),O[e]=t))}function d(e){var t;return r.dom.getParent(e,function(e){return t=r.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function f(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=d(e.parentNode),r.dom.getStyle(e,"color")&&t?r.dom.setStyle(e,"text-decoration",t):r.dom.getStyle(e,"textdecoration")===t&&r.dom.setStyle(e,"text-decoration",null))}function p(t,n,o){function s(e,t){t=t||m,e&&(t.onformat&&t.onformat(e,t,n,o),et(t.styles,function(t,r){I.setStyle(e,r,E(t,n))}),et(t.attributes,function(t,r){I.setAttrib(e,r,E(t,n))}),et(t.classes,function(t){t=E(t,n),I.hasClass(e,t)||I.addClass(e,t)}))}function l(){function t(t,n){var r=new e(n);for(o=r.current();o;o=r.prev())if(o.childNodes.length>1||o==t||"BR"==o.tagName)return o}var n=r.selection.getRng(),i=n.startContainer,a=n.endContainer;if(i!=a&&0===n.endOffset){var s=t(i,a),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function u(e,t,n,r,i){var o=[],a=-1,s,l=-1,c=-1,u;return et(e.childNodes,function(e,t){return"UL"===e.nodeName||"OL"===e.nodeName?(a=t,s=e,!1):void 0}),et(e.childNodes,function(e,n){"SPAN"===e.nodeName&&"bookmark"==I.getAttrib(e,"data-mce-type")&&(e.id==t.id+"_start"?l=n:e.id==t.id+"_end"&&(c=n))}),0>=a||a>l&&c>a?(et(tt(e.childNodes),i),0):(u=I.clone(n,K),et(tt(e.childNodes),function(e,t){(a>l&&a>t||l>a&&t>a)&&(o.push(e),e.parentNode.removeChild(e))}),a>l?e.insertBefore(u,s):l>a&&e.insertBefore(u,s.nextSibling),r.push(u),et(o,function(e){u.appendChild(e)}),u)}function d(e,r,o){var l=[],c,d,f=!0;c=m.inline||m.block,d=I.create(c),s(d),W.walk(e,function(e){function p(e){var y,C,x,_,N;return N=f,y=e.nodeName.toLowerCase(),C=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&J(e)&&(N=f,f="true"===J(e),_=!0),w(y,"br")?(v=0,m.block&&I.remove(e),void 0):m.wrapper&&g(e,t,n)?(v=0,void 0):f&&!_&&m.block&&!m.wrapper&&i(y)&&z(C,c)?(e=I.rename(e,c),s(e),l.push(e),v=0,void 0):m.selector&&(et(h,function(t){"collapsed"in t&&t.collapsed!==b||I.is(e,t.selector)&&!a(e)&&(s(e,t),x=!0)}),!m.inline||x)?(v=0,void 0):(!f||_||!z(c,y)||!z(C,c)||!o&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||a(e)||m.inline&&V(e)?"li"==y&&r?v=u(e,r,d,l,p):(v=0,et(tt(e.childNodes),p),_&&(f=N),v=0):(v||(v=I.clone(d,K),e.parentNode.insertBefore(v,e),l.push(v)),v.appendChild(e)),void 0)}var v;et(e,p)}),m.wrap_links===!1&&et(l,function(e){function t(e){var n,r,i;if("A"===e.nodeName){for(r=I.clone(d,K),l.push(r),i=tt(e.childNodes),n=0;n<i.length;n++)r.appendChild(i[n]);e.appendChild(r)}et(tt(e.childNodes),t)}t(e)}),et(l,function(e){function r(e){var t=0;return et(e.childNodes,function(e){k(e)||D(e)||t++}),t}function i(e){var t,n;return et(e.childNodes,function(e){return 1!=e.nodeType||D(e)||a(e)?void 0:(t=e,K)}),t&&x(t,m)&&(n=I.clone(t,K),s(n),I.replace(n,e,G),I.remove(t,1)),n||e}var o;if(o=r(e),(l.length>1||!V(e))&&0===o)return I.remove(e,1),void 0;if(m.inline||m.wrapper){if(m.exact||1!==o||(e=i(e)),et(h,function(t){et(I.select(t.inline,e),function(e){var r;if(t.wrap_links===!1){r=e.parentNode;do if("A"===r.nodeName)return;while(r=r.parentNode)}R(t,n,e,t.exact?e:null)})}),g(e.parentNode,t,n))return I.remove(e,1),e=0,G;m.merge_with_parents&&I.getParent(e.parentNode,function(r){return g(r,t,n)?(I.remove(e,1),e=0,G):void 0}),e&&m.merge_siblings!==!1&&(e=L(B(e),e),e=L(e,B(e,G)))}})}var h=c(t),m=h[0],v,y,b=!o&&F.isCollapsed();if(m)if(o)o.nodeType?(y=I.createRng(),y.setStartBefore(o),y.setEndAfter(o),d(T(y,h),null,!0)):d(o,null,!0);else if(b&&m.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length)H("apply",t,n);else{var C=r.selection.getNode();U||!h[0].defaultBlock||I.getParent(C,I.isBlock)||p(h[0].defaultBlock),r.selection.setRng(l()),v=F.getBookmark(),d(T(F.getRng(G),h),v),m.styles&&(m.styles.color||m.styles.textDecoration)&&(nt(C,f,"childNodes"),f(C)),F.moveToBookmark(v),P(F.getRng(G)),r.nodeChanged()}}function h(e,t,n){function i(e){var n,r,o,a,s;if(1===e.nodeType&&J(e)&&(a=b,b="true"===J(e),s=!0),n=tt(e.childNodes),b&&!s)for(r=0,o=p.length;o>r&&!R(p[r],t,e,e);r++);if(h.deep&&n.length){for(r=0,o=n.length;o>r;r++)i(n[r]);s&&(b=a)}}function a(n){var r;return et(o(n.parentNode).reverse(),function(n){var i;r||"_start"==n.id||"_end"==n.id||(i=g(n,e,t),i&&i.split!==!1&&(r=n))}),r}function s(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=I.clone(o,K),c=0;c<p.length;c++)if(R(p[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||h.mixed&&V(e)||(n=I.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function l(e){return s(a(e),e,e,!0)}function u(e){var t=I.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return D(n)&&(n=n[e?"firstChild":"lastChild"]),I.remove(t,!0),n}function f(e){var t,n;e=T(e,p,G),h.split&&(t=M(e,G),n=M(e),t!=n?(/^(TR|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TD"==t.nodeName?t.firstChild||t:t.firstChild.firstChild||t),t=S(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=S(n,"span",{id:"_end","data-mce-type":"bookmark"}),l(t),l(n),t=u(G),n=u()):t=n=l(t),e.startContainer=t.parentNode,e.startOffset=q(t),e.endContainer=n.parentNode,e.endOffset=q(n)+1),W.walk(e,function(e){et(e,function(e){i(e),1===e.nodeType&&"underline"===r.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===d(e.parentNode)&&R({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var p=c(e),h=p[0],m,y,b=!0;return n?(n.nodeType?(y=I.createRng(),y.setStartBefore(n),y.setEndAfter(n),f(y)):f(n),void 0):(F.isCollapsed()&&h.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length?H("remove",e,t):(m=F.getBookmark(),f(F.getRng(G)),F.moveToBookmark(m),h.inline&&v(e,t,F.getStart())&&P(F.getRng(!0)),r.nodeChanged()),void 0)}function m(e,t,n){var r=c(e);!v(e,t,n)||"toggle"in r[0]&&!r[0].toggle?p(e,t,n):h(e,t,n)}function g(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===X){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?I.getAttrib(e,o):_(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!w(a,N(E(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?I.getAttrib(e,s[l]):_(e,s[l]))return t;return t}var o=c(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],x(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!I.hasClass(e,l[s]))return;return a}}function v(e,t,n){function r(n){var r=I.getRoot();return n=I.getParent(n,function(n){return n.parentNode===r||!!g(n,e,t,!0)}),g(n,e,t)}var i;return n?r(n):(n=F.getNode(),r(n)?G:(i=F.getStart(),i!=n&&r(i)?G:K))}function y(e,t){var n,r=[],i={};return n=F.getStart(),I.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&g(n,a,t)&&(i[a]=!0,r.push(a))},I.getRoot()),r}function b(e){var t=c(e),n,r,i,a,s;if(t)for(n=F.getStart(),r=o(n),a=t.length-1;a>=0;a--){if(s=t[a].selector,!s||t[a].defaultBlock)return G;for(i=r.length-1;i>=0;i--)if(I.is(r[i],s))return G}return K}function C(e,t,n){var i;return Y||(Y={},i={},r.on("NodeChange",function(e){var t=o(e.element),n={};et(Y,function(e,r){et(t,function(o){return g(o,r,{},e.similar)?(i[r]||(et(e,function(e){e(!0,{node:o,format:r,parents:t})}),i[r]=e),n[r]=e,!1):void 0})}),et(i,function(r,o){n[o]||(delete i[o],et(r,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),et(e.split(","),function(e){Y[e]||(Y[e]=[],Y[e].similar=n),Y[e].push(t)}),this}function x(e,t){return w(e,t.inline)?G:w(e,t.block)?G:t.selector?1==e.nodeType&&I.is(e,t.selector):void 0}function w(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function _(e,t){return N(I.getStyle(e,t),t)}function N(e,t){return("color"==t||"backgroundColor"==t)&&(e=I.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function E(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function k(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function S(e,t,n){var r=I.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function T(t,n,a){function s(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=I.getRoot(),3==r.nodeType&&!k(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&V(i))return i;for(o=i[a];o;o=o[a])if(!D(o)&&!k(o)&&!t(o))return i;if(i.parentNode==s){r=i;break}i=i.parentNode}return r}function l(e,t){for(t===X&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function c(e){for(var t=e;t;){if(1===t.nodeType&&J(t))return"false"===J(t)?t:e;t=t.parentNode}return e}function u(t,n,i){function o(e,t){var n,r,o=e.nodeValue;return"undefined"==typeof t&&(t=i?o.length:0),i?(n=o.lastIndexOf(" ",t),r=o.lastIndexOf("\xa0",t),n=n>r?n:r,-1===n||a||n++):(n=o.indexOf(" ",t),r=o.indexOf("\xa0",t),n=-1!==n&&(-1===r||r>n)?n:r),n}var s,l,c,u;if(3===t.nodeType){if(c=o(t,n),-1!==c)return{container:t,offset:c};u=t}for(s=new e(t,I.getParent(t,V)||r.getBody());l=s[i?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=o(l),-1!==c)return{container:l,offset:c}}else if(V(l))break;return u?(n=i?0:u.length,{container:u,offset:n}):void 0}function d(e,r){var i,a,s,l;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=o(e),a=0;a<i.length;a++)for(s=0;s<n.length;s++)if(l=n[s],!("collapsed"in l&&l.collapsed!==t.collapsed)&&I.is(i[a],l.selector))return i[a];
+return e}function f(e,t){var r,a=I.getRoot();if(n[0].wrapper||(r=I.getParent(e,n[0].block)),r||(r=I.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=a&&i(e)})),r&&n[0].wrapper&&(r=o(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!V(r[t])&&(r=r[t],!w(r,"br")););return r||e}var p,h,m,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(D(g.parentNode)||D(g))&&(g=D(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(D(y.parentNode)||D(y))&&(y=D(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(m=u(g,v,!0),m&&(g=m.container,v=m.offset),m=u(y,b),m&&(y=m.container,b=m.offset)),h=l(y,b),h.node)){for(;h.node&&0===h.offset&&h.node.previousSibling;)h=l(h.node.previousSibling);h.node&&h.offset>0&&3===h.node.nodeType&&" "===h.node.nodeValue.charAt(h.offset-1)&&h.offset>1&&(y=h.node,y.splitText(h.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=s(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=s())),n[0].selector&&n[0].expand!==K&&!n[0].inline&&(g=d(g,"previousSibling"),y=d(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(V(g)||(g=s(!0)),V(y)||(y=s()))),1==g.nodeType&&(v=q(g),g=g.parentNode),1==y.nodeType&&(b=q(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function R(e,t,n,r){var i,o,a;if(!x(n,e))return K;if("all"!=e.remove)for(et(e.styles,function(e,i){e=N(E(e,t),i),"number"==typeof i&&(i=e,r=0),(!r||w(_(r,i),e))&&I.setStyle(n,i,""),a=1}),a&&""===I.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),et(e.attributes,function(e,i){var o;if(e=E(e,t),"number"==typeof i&&(i=e,r=0),!r||w(I.getAttrib(r,i),e)){if("class"==i&&(e=I.getAttrib(n,i),e&&(o="",et(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return I.setAttrib(n,i,o),void 0;"class"==i&&n.removeAttribute("className"),$.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),et(e.classes,function(e){e=E(e,t),(!r||I.hasClass(r,e))&&I.removeClass(n,e)}),o=I.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return K;return"none"!=e.remove?(A(n,e),G):void 0}function A(e,t){function n(e,t,n){return e=B(e,t,n),!e||"BR"==e.nodeName||V(e)}var r=e.parentNode,i;t.block&&(U?r==I.getRoot()&&(t.list_block&&w(e,t.list_block)||et(tt(e.childNodes),function(e){z(U,e.nodeName.toLowerCase())?i?i.appendChild(e):i=S(e,U):i=0})):V(e)&&!V(r)&&(n(e,K)||n(e.firstChild,G,1)||e.insertBefore(I.create("br"),e.firstChild),n(e,G)||n(e.lastChild,K,1)||e.appendChild(I.create("br")))),t.selector&&t.inline&&!w(t.inline,e)||I.remove(e,1)}function B(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!k(e))return e}function D(e){return e&&1==e.nodeType&&"bookmark"==e.getAttribute("data-mce-type")}function L(e,t){function n(e,t){function n(e){var t={};return et(I.getAttribs(e),function(n){var r=n.nodeName.toLowerCase();0!==r.indexOf("_")&&"style"!==r&&(t[r]=I.getAttrib(e,r))}),t}function r(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],n===X)return K;if(e[r]!=n)return K;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return K;return G}return e.nodeName!=t.nodeName?K:r(n(e),n(t))?r(I.parseStyle(I.getAttrib(e,"style")),I.parseStyle(I.getAttrib(t,"style")))?G:K:K}function r(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!D(i))return i}return e}var i,o;if(e&&t&&(e=r(e,"previousSibling"),t=r(t,"nextSibling"),n(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return I.remove(t),et(tt(t.childNodes),function(t){e.appendChild(t)}),e}return t}function M(t,n){var i,o,a;return i=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],1==i.nodeType&&(a=i.childNodes.length-1,!n&&o&&o--,i=i.childNodes[o>a?a:o]),3===i.nodeType&&n&&o>=i.nodeValue.length&&(i=new e(i,r.getBody()).next()||i),3!==i.nodeType||n||0!==o||(i=new e(i,r.getBody()).prev()||i),i}function H(t,n,o){function a(e){var t=I.create("span",{id:y,"data-mce-bogus":!0,style:b?"color:red":""});return e&&t.appendChild(r.getDoc().createTextNode(j)),t}function s(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==j||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function l(e){for(;e;){if(e.id===y)return e;e=e.parentNode}}function u(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=F.getRng(!0),s(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),I.remove(e)):(n=u(e),n.nodeValue.charAt(0)===j&&(n=n.deleteData(0,1)),I.remove(e,1)),F.setRng(r);else if(e=l(F.getStart()),!e)for(;e=I.get(y);)d(e,!1)}function f(){var e,t,r,i,s,d,f;e=F.getRng(!0),i=e.startOffset,d=e.startContainer,f=d.nodeValue,t=l(F.getStart()),t&&(r=u(t)),f&&i>0&&i<f.length&&/\w/.test(f.charAt(i))&&/\w/.test(f.charAt(i-1))?(s=F.getBookmark(),e.collapse(!0),e=T(e,c(n)),e=W.split(e),p(n,o,e),F.moveToBookmark(s)):(t&&r.nodeValue===j?p(n,o,t):(t=a(!0),r=t.firstChild,e.insertNode(t),i=1,p(n,o,t)),F.setCursorLocation(r,i))}function m(){var e=F.getRng(!0),t,r,s,l,u,d,f=[],p,m;for(t=e.startContainer,r=e.startOffset,u=t,3==t.nodeType&&((r!=t.nodeValue.length||t.nodeValue===j)&&(l=!0),u=u.parentNode);u;){if(g(u,n,o)){d=u;break}u.nextSibling&&(l=!0),f.push(u),u=u.parentNode}if(d)if(l)s=F.getBookmark(),e.collapse(!0),e=T(e,c(n),!0),e=W.split(e),h(n,o,e),F.moveToBookmark(s);else{for(m=a(),u=m,p=f.length-1;p>=0;p--)u.appendChild(I.clone(f[p],!1)),u=u.firstChild;u.appendChild(I.doc.createTextNode(j)),u=u.firstChild;var v=I.getParent(d,i);v&&I.isEmpty(v)?d.parentNode.replaceChild(m,d):I.insertAfter(m,d),F.setCursorLocation(u,1),I.isEmpty(d)&&I.remove(d)}}function v(){var e;e=l(F.getStart()),e&&!I.isEmpty(e)&&nt(e,function(e){1!=e.nodeType||e.id===y||I.isEmpty(e)||I.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var y="_mce_caret",b=r.settings.caret_debug;r._hasCaretEvents||(Z=function(){var e=[],t;if(s(l(F.getStart()),e))for(t=e.length;t--;)I.setAttrib(e[t],"data-mce-bogus","1")},Q=function(e){var t=e.keyCode;d(),(8==t||37==t||39==t)&&d(l(F.getStart())),v()},r.on("SetContent",function(e){e.selection&&v()}),r._hasCaretEvents=!0),"apply"==t?f():m()}function P(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=q(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,I.getParent(n,I.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!k(a))return l=I.create("a",null,j),a.parentNode.insertBefore(l,a),t.setStart(a,0),F.setRng(t),I.remove(l),void 0}var O={},I=r.dom,F=r.selection,W=new t(I),z=r.schema.isValidChild,V=I.isBlock,U=r.settings.forced_root_block,q=I.nodeIndex,j="\ufeff",$=/^(src|href|style)$/,K=!1,G=!0,Y,X,J=I.getContentEditable,Q,Z,et=n.each,tt=n.grep,nt=n.walk,rt=n.extend;rt(this,{get:c,register:u,apply:p,remove:h,toggle:m,match:v,matchAll:y,matchNode:g,canApply:b,formatChanged:C}),s(),l(),r.on("BeforeGetContent",function(){Z&&Z()}),r.on("mouseup keydown",function(e){Q&&Q(e)})}}),r(L,[g,p],function(e,t){var n=t.trim,r;return r=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","<div[^>]+data-mce-bogus[^>]+><\\/div>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(t){function i(){return n(t.getContent({format:"raw",no_events:1}).replace(r,""))}function o(){a.typing=!1,a.add()}var a,s=0,l=[],c,u,d;return t.on("init",function(){a.add()}),t.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&a.beforeChange()}),t.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&a.add()}),t.on("ObjectResizeStart",function(){a.beforeChange()}),t.on("SaveContent ObjectResized",o),t.dom.bind(t.dom.getRoot(),"dragend",o),t.dom.bind(t.getBody(),"focusout",function(){!t.removed&&a.typing&&o()}),t.on("KeyUp",function(n){var r=n.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||n.ctrlKey)&&(o(),t.nodeChanged()),(46==r||8==r||e.mac&&(91==r||93==r))&&t.nodeChanged(),u&&a.typing&&(t.isDirty()||(t.isNotDirty=!l[0]||i()==l[0].content,t.isNotDirty||t.fire("change",{level:l[0],lastLevel:null})),t.fire("TypingUndo"),u=!1,t.nodeChanged())}),t.on("KeyDown",function(e){var t=e.keyCode;return t>=33&&36>=t||t>=37&&40>=t||45==t?(a.typing&&o(),void 0):((16>t||t>20)&&224!=t&&91!=t&&!a.typing&&(a.beforeChange(),a.typing=!0,a.add(),u=!0),void 0)}),t.on("MouseDown",function(){a.typing&&o()}),t.addShortcut("ctrl+z","","Undo"),t.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),t.on("AddUndo Undo Redo ClearUndos MouseUp",function(e){e.isDefaultPrevented()||t.nodeChanged()}),a={data:l,typing:!1,beforeChange:function(){d||(c=t.selection.getBookmark(2,!0))},add:function(e){var n,r=t.settings,o;if(e=e||{},e.content=i(),d||t.fire("BeforeAddUndo",{level:e}).isDefaultPrevented())return null;if(o=l[s],o&&o.content==e.content)return null;if(l[s]&&(l[s].beforeBookmark=c),r.custom_undo_redo_levels&&l.length>r.custom_undo_redo_levels){for(n=0;n<l.length-1;n++)l[n]=l[n+1];l.length--,s=l.length}e.bookmark=t.selection.getBookmark(2,!0),s<l.length-1&&(l.length=s+1),l.push(e),s=l.length-1;var a={level:e,lastLevel:o};return t.fire("AddUndo",a),s>0&&(t.fire("change",a),t.isNotDirty=!1),e},undo:function(){var e;return a.typing&&(a.add(),a.typing=!1),s>0&&(e=l[--s],t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.beforeBookmark),t.fire("undo",{level:e})),e},redo:function(){var e;return s<l.length-1&&(e=l[++s],t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.bookmark),t.fire("redo",{level:e})),e},clear:function(){l=[],s=0,a.typing=!1,t.fire("ClearUndos")},hasUndo:function(){return s>0||a.typing&&l[0]&&i()!=l[0].content},hasRedo:function(){return s<l.length-1&&!this.typing},transact:function(e){a.beforeChange(),d=!0,e(),d=!1,a.add()}}}}),r(M,[f,g],function(e,t){var n=t.ie&&t.ie<11;return function(t){function r(r){function u(e){return e&&i.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==i.getContentEditable(e)}function d(e){var t;i.isBlock(e)&&(t=o.getRng(),e.appendChild(i.create("span",null,"\xa0")),o.select(e),e.lastChild.outerHTML="",o.setRng(t))}function f(e){for(var t=e,n=[],r;t=t.firstChild;){if(i.isBlock(t))return;1!=t.nodeType||c[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?i.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&i.remove(t)}function p(t){var n,r,a,s=t,l;if(a=i.createRng(),t.hasChildNodes()){for(n=new e(t,t);r=n.current();){if(3==r.nodeType){a.setStart(r,0),a.setEnd(r,0);break}if(c[r.nodeName.toLowerCase()]){a.setStartBefore(r),a.setEndBefore(r);break}s=r,r=n.next()}r||(a.setStart(s,0),a.setEnd(s,0))}else"BR"==t.nodeName?t.nextSibling&&i.isBlock(t.nextSibling)?((!R||9>R)&&(l=i.create("br"),t.parentNode.insertBefore(l,t)),a.setStartBefore(t),a.setEndBefore(t)):(a.setStartAfter(t),a.setEndAfter(t)):(a.setStart(t,0),a.setEnd(t,0));o.setRng(a),i.remove(l),o.scrollIntoView(t)}function h(e){var t=k,r,o,s;if(r=e||"TABLE"==M?i.create(e||P):T.cloneNode(!1),s=r,a.keep_styles!==!1)do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(t.nodeName)){if("_mce_caret"==t.id)continue;o=t.cloneNode(!1),i.setAttrib(o,"id",""),r.hasChildNodes()?(o.appendChild(r.firstChild),r.appendChild(o)):(s=o,r.appendChild(o))}while(t=t.parentNode);return n||(s.innerHTML='<br data-mce-bogus="1">'),r}function m(t){var n,r,i;if(3==k.nodeType&&(t?S>0:S<k.nodeValue.length))return!1;if(k.parentNode==T&&O&&!t)return!0;if(t&&1==k.nodeType&&k==T.firstChild)return!0;if("TABLE"===k.nodeName||k.previousSibling&&"TABLE"==k.previousSibling.nodeName)return O&&!t||!O&&t;for(n=new e(k,T),3==k.nodeType&&(t&&0===S?n.prev():t||S!=k.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),c[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function g(e,n){var r,o,a,s,c,d,f=P||"P";if(o=i.getParent(e,i.isBlock),d=t.getBody().nodeName.toLowerCase(),!o||!u(o)){if(o=o||E,!o.hasChildNodes())return r=i.create(f),o.appendChild(r),_.setStart(r,0),_.setEnd(r,0),r;for(s=e;s.parentNode!=o;)s=s.parentNode;for(;s&&!i.isBlock(s);)a=s,s=s.previousSibling;if(a&&l.isValidChild(d,f.toLowerCase())){for(r=i.create(f),a.parentNode.insertBefore(r,a),s=a;s&&!i.isBlock(s);)c=s.nextSibling,r.appendChild(s),s=c;_.setStart(e,n),_.setEnd(e,n)}}return e}function v(){function e(e){for(var t=L[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===T}function t(){var e=L.parentNode;return"LI"==e.nodeName?e:L}var n=L.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(P="LI"),B=P?h(P):i.create("BR"),e(!0)&&e()?"LI"==n?i.insertAfter(B,t()):i.replace(B,L):e(!0)?"LI"==n?(i.insertAfter(B,t()),B.appendChild(i.doc.createTextNode(" ")),B.appendChild(L)):L.parentNode.insertBefore(B,L):e()?(i.insertAfter(B,t()),d(B)):(L=t(),N=_.cloneRange(),N.setStartAfter(T),N.setEndAfter(L),D=N.extractContents(),i.insertAfter(D,L),i.insertAfter(B,L)),i.remove(T),p(B),s.add()}function y(){for(var t=new e(k,T),n;n=t.next();)if(c[n.nodeName.toLowerCase()]||n.length>0)return!0}function b(){var e,t,r;k&&3==k.nodeType&&S>=k.nodeValue.length&&(n||y()||(e=i.create("br"),_.insertNode(e),_.setStartAfter(e),_.setEndAfter(e),t=!0)),e=i.create("br"),_.insertNode(e),n&&"PRE"==M&&(!R||8>R)&&e.parentNode.insertBefore(i.doc.createTextNode("\r"),e),r=i.create("span",{},"&nbsp;"),e.parentNode.insertBefore(r,e),o.scrollIntoView(r),i.remove(r),t?(_.setStartBefore(e),_.setEndBefore(e)):(_.setStartAfter(e),_.setEndAfter(e)),o.setRng(_),s.add()}function C(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function x(e){var t=i.getRoot(),n,r;for(n=e;n!==t&&"false"!==i.getContentEditable(n);)"true"===i.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function w(e){var t;n||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(i.getStyle(t,"float",!0)))&&i.add(e,"br"))}var _=o.getRng(!0),N,E,k,S,T,R,A,B,D,L,M,H,P,O;if(!_.collapsed)return t.execCommand("Delete"),void 0;if(!r.isDefaultPrevented()&&(k=_.startContainer,S=_.startOffset,P=(a.force_p_newlines?"p":"")||a.forced_root_block,P=P?P.toUpperCase():"",R=i.doc.documentMode,A=r.shiftKey,1==k.nodeType&&k.hasChildNodes()&&(O=S>k.childNodes.length-1,k=k.childNodes[Math.min(S,k.childNodes.length-1)]||k,S=O&&3==k.nodeType?k.nodeValue.length:0),E=x(k))){if(s.beforeChange(),!i.isBlock(E)&&E!=i.getRoot())return(!P||A)&&b(),void 0;if((P&&!A||!P&&A)&&(k=g(k,S)),T=i.getParent(k,i.isBlock),L=T?i.getParent(T.parentNode,i.isBlock):null,M=T?T.nodeName.toUpperCase():"",H=L?L.nodeName.toUpperCase():"","LI"!=H||r.ctrlKey||(T=L,M=H),"LI"==M){if(!P&&A)return b(),void 0;if(i.isEmpty(T))return v(),void 0}if("PRE"==M&&a.br_in_pre!==!1){if(!A)return b(),void 0}else if(!P&&!A&&"LI"!=M||P&&A)return b(),void 0;P&&T===t.getBody()||(P=P||"P",m()?(B=/^(H[1-6]|PRE|FIGURE)$/.test(M)&&"HGROUP"!=H?h(P):h(),a.end_container_on_empty_block&&u(L)&&i.isEmpty(T)?B=i.split(L,T):i.insertAfter(B,T),p(B)):m(!0)?(B=T.parentNode.insertBefore(h(),T),d(B)):(N=_.cloneRange(),N.setEndAfter(T),D=N.extractContents(),C(D),B=D.firstChild,i.insertAfter(D,T),f(B),w(T),p(B)),i.setAttrib(B,"id",""),s.add())}}var i=t.dom,o=t.selection,a=t.settings,s=t.undoManager,l=t.schema,c=l.getNonEmptyElements();t.on("keydown",function(e){13==e.keyCode&&r(e)!==!1&&e.preventDefault()})}}),r(H,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,h,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",m),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",m)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){h=t,t=t.nextSibling,r.remove(h);continue}p||(p=r.create(C),t.parentNode.insertBefore(p,t),g=!0),h=t,t=t.nextSibling,p.appendChild(h)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(P,[E,g,p],function(e,n,r){var i=r.each,o=r.extend,a=r.map,s=r.inArray,l=r.explode,c=n.gecko,u=n.ie,d=!0,f=!1;return function(n){function r(e,t,n){var r;return e=e.toLowerCase(),(r=_.exec[e])?(r(e,t,n),d):f}function p(e){var t;return e=e.toLowerCase(),(t=_.state[e])?t(e):-1}function h(e){var t;return e=e.toLowerCase(),(t=_.value[e])?t(e):f}function m(e,t){t=t||"exec",i(e,function(e,n){i(n.toLowerCase().split(","),function(n){_[t][n]=e})})}function g(e,r,i){return r===t&&(r=f),i===t&&(i=null),n.getDoc().execCommand(e,r,i)}function v(e){return E.match(e)}function y(e,r){E.toggle(e,r?{value:r}:t),n.nodeChanged()}function b(e){k=w.getBookmark(e)}function C(){w.moveToBookmark(k)}var x=n.dom,w=n.selection,_={state:{},exec:{},value:{}},N=n.settings,E=n.formatter,k;o(this,{execCommand:r,queryCommandState:p,queryCommandValue:h,addCommands:m}),m({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(e){var t=n.getDoc(),r;try{g(e)}catch(i){r=d}(r||!t.queryCommandSupported(e))&&n.windowManager.alert("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.")},unlink:function(e){w.isCollapsed()&&w.select(w.getNode()),g(e),w.collapse(f)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),i("left,center,right,justify".split(","),function(e){t!=e&&E.remove("align"+e)}),y("align"+t),r("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;g(e),t=x.getParent(w.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(b(),x.split(n,t),C()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){y(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){y(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=l(N.font_size_style_values),r=l(N.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),y(e,n)},RemoveFormat:function(e){E.remove(e)},mceBlockQuote:function(){y("blockquote")},FormatBlock:function(e,t,n){return y(n||"p")},mceCleanup:function(){var e=w.getBookmark();n.setContent(n.getContent({cleanup:d}),{cleanup:d}),w.moveToBookmark(e)},mceRemoveNode:function(e,t,r){var i=r||w.getNode();i!=n.getBody()&&(b(),n.dom.remove(i,d),C())},mceSelectNodeDepth:function(e,t,r){var i=0;x.getParent(w.getNode(),function(e){return 1==e.nodeType&&i++==r?(w.select(e),f):void 0},n.getBody())},mceSelectNode:function(e,t,n){w.select(n)},mceInsertContent:function(t,r,i){function o(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=w.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^&nbsp;/," "):t("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),i<r.length?e=e.replace(/&nbsp;(<br>|)$/," "):t("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}var a,s,l,c,d,f,p,h,m,g,v,y,b,C;if(/^ | $/.test(i)&&(i=o(i)),a=n.parser,s=new e({},n.schema),b='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;</span>',f={content:i,format:"html",selection:!0},n.fire("BeforeSetContent",f),i=f.content,-1==i.indexOf("{$caret}")&&(i+="{$caret}"),i=i.replace(/\{\$caret\}/,b),w.isCollapsed()||n.getDoc().execCommand("Delete",!1,null),l=w.getNode(),f={context:l.nodeName.toLowerCase()},d=a.parse(i,f),v=d.lastChild,"mce_marker"==v.attr("id"))for(p=v,v=v.prev;v;v=v.walk(!0))if(3==v.type||!x.isBlock(v.name)){v.parent.insert(p,v,"br"===v.name);break}if(f.invalid){for(w.setContent(b),l=w.getNode(),c=n.getBody(),9==l.nodeType?l=v=c:v=l;v!==c;)l=v,v=v.parentNode;i=l==c?c.innerHTML:x.getOuterHTML(l),i=s.serialize(a.parse(i.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return s.serialize(d)}))),l==c?x.setHTML(c,i):x.setOuterHTML(l,i)}else i=s.serialize(d),v=l.firstChild,y=l.lastChild,!v||v===y&&"BR"===v.nodeName?x.setHTML(l,i):w.setContent(i);p=x.get("mce_marker"),h=x.getRect(p),m=x.getViewPort(n.getWin()),(h.y+h.h>m.y+m.h||h.y<m.y||h.x>m.x+m.w||h.x<m.x)&&(C=u?n.getDoc().documentElement:n.getBody(),C.scrollLeft=h.x,C.scrollTop=h.y-m.h+25),g=x.createRng(),v=p.previousSibling,v&&3==v.nodeType?(g.setStart(v,v.nodeValue.length),u||(y=p.nextSibling,y&&3==y.nodeType&&(v.appendData(y.data),y.parentNode.removeChild(y)))):(g.setStartBefore(p),g.setEndBefore(p)),x.remove(p),w.setRng(g),n.fire("SetContent",f),n.addVisual()},mceInsertRawHTML:function(e,t,r){w.setContent("tiny_mce_marker"),n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){return r}))},mceToggleFormat:function(e,t,n){y(n)},mceSetContent:function(e,t,r){n.setContent(r)},"Indent,Outdent":function(e){var t,n,r;t=N.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),p("InsertUnorderedList")||p("InsertOrderedList")?g(e):(N.forced_root_block||x.getParent(w.getNode(),x.isBlock)||E.apply("div"),i(w.getSelectedBlocks(),function(i){var o;"LI"!=i.nodeName&&(o="rtl"==x.getStyle(i,"direction",!0)?"paddingRight":"paddingLeft","outdent"==e?(r=Math.max(0,parseInt(i.style[o]||0,10)-t),x.setStyle(i,o,r?r+n:"")):(r=parseInt(i.style[o]||0,10)+t+n,x.setStyle(i,o,r)))}))},mceRepaint:function(){if(c)try{b(d),w.getSel()&&w.getSel().selectAllChildren(n.getBody()),w.collapse(d),C()}catch(e){}},InsertHorizontalRule:function(){n.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual,n.addVisual()},mceReplaceContent:function(e,t,r){n.execCommand("mceInsertContent",!1,r.replace(/\{\$selection\}/g,w.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=x.getParent(w.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||E.remove("link"),n.href&&E.apply("link",n,r)},selectAll:function(){var e=x.getRoot(),t=x.createRng();w.getRng().setStart?(t.setStart(e,0),t.setEnd(e,e.childNodes.length),w.setRng(t)):g("SelectAll")},mceNewDocument:function(){n.setContent("")}}),m({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=w.isCollapsed()?[x.getParent(w.getNode(),x.isBlock)]:w.getSelectedBlocks(),r=a(n,function(e){return!!E.matchNode(e,t)});return-1!==s(r,d)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return v(e)},mceBlockQuote:function(){return v("blockquote")},Outdent:function(){var e;if(N.inline_styles){if((e=x.getParent(w.getStart(),x.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d;if((e=x.getParent(w.getEnd(),x.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d}return p("InsertUnorderedList")||p("InsertOrderedList")||!N.inline_styles&&!!x.getParent(w.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=x.getParent(w.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),m({"FontSize,FontName":function(e){var t=0,n;return(n=x.getParent(w.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),m({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}}),r(O,[p],function(e){function t(e,i){var o=this,a,s;return e=r(e),i=o.settings=i||{},/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e)?(o.source=e,void 0):(0===e.indexOf("/")&&0!==e.indexOf("//")&&(e=(i.base_uri?i.base_uri.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(s=i.base_uri?i.base_uri.path:new t(location.href).directory,e=(i.base_uri&&i.base_uri.protocol||"http")+"://mce_host"+o.toAbsPath(s,e)),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),o[t]=r}),a=i.base_uri,a&&(o.protocol||(o.protocol=a.protocol),o.userInfo||(o.userInfo=a.userInfo),o.port||"mce_host"!==o.host||(o.port=a.port),o.host&&"mce_host"!==o.host||(o.host=a.host),o.source=""),void 0)}var n=e.each,r=e.trim;return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(this.host==e.host&&this.protocol==e.protocol?n:0)},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(n.protocol&&(t+=n.protocol+"://"),n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(I,[p],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r;if(!o&&(r=this,r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r(F,[I,p],function(e,t){function n(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var r=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,i=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,o=/^\s*|\s*$/g,a,s=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function n(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?0===n%2:"odd"===e?1===n%2:t[e]?t[e]():!1})):void 0}function c(e,i,c){function u(e){e&&i.push(e)}var d;return d=r.exec(e.replace(o,"")),u(t(d[1])),u(n(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),i.psuedo=!!d[7],i.direct=c,i}function u(e,t){var n=[],r,o,a;do if(i.exec(""),o=i.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){r=o[3];break}while(o);for(r&&u(r,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,n){var r,i,o,a,s,l,c,u,d,f,p,h,m;for(n=n||this._selectors,r=0,i=n.length;i>r;r++){for(s=n[r],a=s.length,m=e,h=0,o=a-1;o>=0;o--)for(u=s[o];m;){for(u.psuedo&&(p=m.parent().items(),d=t.inArray(m,p),f=p.length),l=0,c=u.length;c>l;l++)if(!u[l](m,d,f)){l=c+1;break}if(l===c){h++;break}if(o===a-1)break;m=m.parent()}if(h===a)return!0}return!1},find:function(e){function t(e,n,i){var o,a,s,l,c,u=n[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==n.length-1?r.push(c):c.items&&t(c.items(),n,i+1);else if(u.direct)return;c.items&&t(c.items(),n,i)}}var r=[],i,o,l=this._selectors;if(e.items){for(i=0,o=l.length;o>i;i++)t(e.items(),l[i],0);o>1&&(r=n(r))}return a||(a=s.Collection),new a(r)}});return s}),r(W,[p,F,I],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)
+}}),r=n.extend(i),t.Collection=r,r}),r(z,[p,v],function(e,t){return{id:function(){return t.DOM.uniqueId()},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){return t.DOM.getSize(e)},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(V,[I,p,W,z],function(e,t,n,r){var i=t.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu"," "),o={},a="onmousewheel"in document,s=!1,l=e.extend({Statics:{controlIdLookup:{}},classPrefix:"mce-",init:function(e){var n=this,i,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=r.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},i=e.classes)for(i=i.split(" "),i.map={},o=i.length;o--;)i.map[i[o]]=!0;n._classes=i||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t;e&&!(t=l.controlIdLookup[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseInt(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,r,i=e.getEl(),o,a,s,l,c,u,d;n=e._borderBox=e._borderBox||e.measureBox(i,"border"),e._paddingBox=e._paddingBox||e.measureBox(i,"padding"),e._marginBox=e._marginBox||e.measureBox(i,"margin"),u=t.minWidth,d=t.minHeight,s=u||i.offsetWidth,l=d||i.offsetHeight,o=t.width,a=t.height,c=t.autoResize,c="undefined"!=typeof c?c:!o&&!a,o=o||s,a=a||l;var f=n.left+n.right,p=n.top+n.bottom,h=t.maxWidth||65535,m=t.maxHeight||65535;return e._layoutRect=r={x:t.x||0,y:t.y||0,w:o,h:a,deltaW:f,deltaH:p,contentW:o-f,contentH:a-p,innerW:o-f,innerH:a-p,startMinWidth:u||0,startMinHeight:d||0,minW:Math.min(s,h),minH:Math.min(l,m),maxW:h,maxH:m,autoResize:c,scrollW:0},e._lastLayoutRect={},r},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,c;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(c=l.repaintControls,c&&c.map&&!c.map[t._id]&&(c.push(t),c.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s;t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=r.x+"px",s.x=r.x),r.y!==s.y&&(t.top=r.y+"px",s.y=r.y),r.w!==s.w&&(t.width=r.w-o+"px",s.w=r.w),r.h!==s.h&&(t.height=r.h-a+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=r.innerW+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=r.innerH+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return function(i){return t||r.parents().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this,o,a,s,l;if(t)for("string"==typeof t&&(t=n(t)),s=e.toLowerCase().split(" "),l=s.length;l--;)e=s[l],o=r._bindings,o||(o=r._bindings={}),a=o[e],a||(a=o[e]=[]),a.push(t),i[e]&&(r._nativeEvents?r._nativeEvents[e]=!0:r._nativeEvents={name:!0},r._rendered&&r.bindPendingEvents());return r},off:function(e,t){var n=this,r,i=n._bindings,o,a,s,l;if(i)if(e)for(s=e.toLowerCase().split(" "),r=s.length;r--;){if(e=s[r],o=i[e],!e){for(a in i)i[a].length=0;return n}if(o)if(t)for(l=o.length;l--;)o[l]===t&&o.splice(l,1);else o.length=0}else n._bindings=[];return n},fire:function(e,t,n){function r(){return!1}function i(){return!0}var o=this,a,s,l,c;if(e=e.toLowerCase(),t=t||{},t.type||(t.type=e),t.control||(t.control=o),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=i},t.stopPropagation=function(){t.isPropagationStopped=i},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=i},t.isDefaultPrevented=r,t.isPropagationStopped=r,t.isImmediatePropagationStopped=r),o._bindings&&(l=o._bindings[e]))for(a=0,s=l.length;s>a&&(t.isImmediatePropagationStopped()||l[a].call(o,t)!==!1);a++);if(n!==!1)for(c=o.parent();c&&!t.isPropagationStopped();)c.fire(e,t,!1),c=c.parent();return t},parents:function(e){var t=this,r=new n;for(t=t.parent();t;t=t.parent())r.add(t);return e&&(r=r.filter(e)),r},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return r.innerHtml(this.getEl(),e),this},getEl:function(e,t){var n,i=e?this._id+"-"+e:this._id;return n=o[i]=(t===!0?null:o[i])||r.get(i)},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl();return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&("label"==e&&r.setAttribute("aria-labeledby",n._id),r.setAttribute("role"==e?e:"aria-"+e,t)),n)},encode:function(e,t){return t!==!1&&l.translate&&(e=l.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),i;if(e.items)for(var o=e.items().toArray(),a=o.length;a--;)o[a].remove();return n&&n.items&&(i=[],n.items().each(function(t){t!==e&&i.push(t)}),n.items().set(i),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&r.off(t),delete l.controlIdLookup[e._id],t.parentNode&&t.parentNode.removeChild(t),e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(r.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(r.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,i,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||r.css(e.getEl(),"display","none"),e.settings.border&&(i=e.borderBox(),r.css(e.getEl(),{"border-top-width":i.top,"border-right-width":i.right,"border-bottom-width":i.bottom,"border-left-width":i.left})),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r<s.length&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;i<a.length;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function i(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,l,c,u,d,f,p;if(o._rendered=!0,f=o._nativeEvents){for(u=o.parents().toArray(),u.unshift(o),l=0,c=u.length;!d&&c>l;l++)d=u[l]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=l,l=0;c>l;l++)u[l]._eventsRoot=d;for(p in f){if(!f)return!1;"wheel"!==p||s?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(r.on(d.getEl(),"mouseleave",t),r.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):d[p]||(r.on(d.getEl(),p,e),d[p]=!0),f[p]=!1):a?r.on(o.getEl(),"mousewheel",i):r.on(o.getEl(),"DOMMouseScroll",i)}}},reflow:function(){return this.repaint(),this}});return l}),r(U,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(q,[V,W,F,U,p,z],function(e,t,n,r,i,o){var a={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var n=this;n._super(e),e=n.settings,n._fixed=e.fixed,n._items=new t,n.addClass("container"),n.addClass("container-body","body"),e.containerCls&&n.addClass(e.containerCls),n._layout=r.create((e.layout||n.layout)+"layout"),n.settings.items&&n.add(n.settings.items),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=a[e]=a[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(){var e=this;return e.keyNav?e.keyNav.focusFirst():e._super(),e},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,o,a=[];return i.isArray(t)||(t=[t]),i.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),o=i.extend({},n.settings.defaults,t),t.type=o.type=o.type||t.type||n.settings.defaultType||(o.defaults?o.defaults.type:null),t=r.create(o)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=o.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},preRender:function(){},renderHtml:function(){var e=this,t=e._layout;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" role="'+this.settings.role+'">'+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div>"+"</div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&o.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),o.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t,n;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},n=this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(j,[z],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,u,d,f;r=r||{},l=function(n){var l=t(),p,h;n.preventDefault(),s=n.button,p=i(),d=n.screenX,f=n.screenY,h=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,background:"red",cursor:h}),a.body.appendChild(o),e.on(a,"mousemove",u),e.on(a,"mouseup",c),r.start(n)},u=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-d,e.deltaY=e.screenY-f,e.preventDefault(),r.drag(e),void 0)},c=function(t){e.off(a,"mousemove",u),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r($,[z,j],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,p,h,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return e.css(f,"display","none"),void 0;e.css(f,"display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),h=d["client"+s]-2*o,h-=n&&r?f["client"+u]:0,m=d["scroll"+s],g=h/m,v={},v[y]=d["offset"+a]+o,v[b]=h,e.css(f,v),v={},v[y]=d["scroll"+a]*g,v[b]=h*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;i.getEl().appendChild(e.createFragment('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'">'+'<div id="'+u+'t" class="'+d+'scrollbar-thumb"></div>'+"</div>")),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var t,u,d,f,p=i.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(u),d+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(K,[q,$],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(G,[z],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&(a-=f.x,s-=f.y),i=t.getEl(),l=i.offsetWidth,c=i.offsetHeight,u=n.offsetWidth,d=n.offsetHeight,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this._fixed){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(Y,[z],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(X,[K,G,Y,z],function(e,t,n,r){function i(e){var t;for(t=s.length;t--;)s[t]===e&&s.splice(t,1)}var o,a,s=[],l=[],c,u=e.extend({Mixins:[t,n],init:function(e){function t(){var e,t=u.zIndex||65535,n;if(l.length)for(e=0;e<l.length;e++)l[e].modal&&(t++,n=l[e]),l[e].getEl().style.zIndex=t,l[e].zIndex=t,t++;var i=document.getElementById(d.classPrefix+"modal-block");n?r.css(i,"z-index",n.zIndex-1):i&&(i.parentNode.removeChild(i),c=!1),u.currentZIndex=t}function n(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function i(e){function t(t,n){for(var r,i=0;i<s.length;i++)if(s[i]!=e)for(r=s[i].parent();r&&(r=r.parent());)r==e&&s[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e._fixed?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}var d=this;d._super(e),d._eventsRoot=d,d.addClass("floatpanel"),e.autohide&&(o||(o=function(e){var t,r=d.getParentCtrl(e.target);for(t=s.length;t--;){var i=s[t];if(i.settings.autohide){if(r&&(n(r,i)||i.parent()===r))continue;e=i.fire("autohide",{target:e.target}),e.isDefaultPrevented()||i.hide()}}},r.on(document,"click",o)),s.push(d)),e.autofix&&(a||(a=function(){var e;for(e=s.length;e--;)i(s[e])},r.on(window,"scroll",a)),d.on("move",function(){i(this)})),d.on("postrender show",function(e){if(e.control==d){var n,i=d.classPrefix;d.modal&&!c&&(n=r.createFragment('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>'),n=n.firstChild,d.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(d.getEl(),i+"in")},0),c=!0),l.push(d),t()}}),d.on("close hide",function(e){if(e.control==d){for(var n=l.length;n--;)l[n]===d&&l.splice(n,1);t()}}),d.on("show",function(){d.parents().each(function(e){return e._fixed?(d.fixed(!0),!1):void 0})}),e.popover&&(d._preBodyHtml='<div class="'+d.classPrefix+'arrow"></div>',d.addClass("popover").addClass("bottom").addClass("start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=s.length;t--&&s[t]!==e;);return-1===t&&s.push(e),n},hide:function(){return i(this),this._super()},hideAll:function(){u.hideAll()},close:function(){var e=this;return e.fire("close"),e.remove()},remove:function(){i(this),this._super()}});return u.hideAll=function(){for(var e=s.length;e--;){var t=s[e];t.settings.autohide&&(t.fire("cancel",{},!1),t.hide(),s.splice(e,1))}},u}),r(J,[z],function(e){return function(t){function n(){if(!h)if(h=[],d.find)d.find("*").each(function(e){e.canFocus&&h.push(e.getEl())});else for(var e=d.getEl().getElementsByTagName("*"),t=0;t<e.length;t++)e[t].id&&e[t]&&h.push(e[t])}function r(){return document.getElementById(m)}function i(e){return e=e||r(),e&&e.getAttribute("role")}function o(e){for(var t,n=e||r();n=n.parentNode;)if(t=i(n))return t}function a(e){var t=document.getElementById(m);return t?t.getAttribute("aria-"+e):void 0}function s(){var n=r();if(!n||"TEXTAREA"!=n.nodeName&&"text"!=n.type)return t.onAction?t.onAction(m):e.fire(r(),"click",{keyboard:!0}),!0}function l(){var e;t.onCancel?((e=r())&&e.blur(),t.onCancel()):t.root.fire("cancel")}function c(e){function r(e){for(var t=d?d.getEl():document.body;e&&e!=t;){if("none"==e.style.display)return!1;e=e.parentNode}return!0}var i=-1,o,a,l=[];for(n(),a=l.length,a=0;a<h.length;a++)r(h[a])&&l.push(h[a]);for(a=l.length;a--;)if(l[a].id===m){i=a;break}i+=e,0>i?i=l.length-1:i>=l.length&&(i=0),o=l[i],o.focus(),m=o.id,t.actOnFocus&&s()}function u(){var e,r;for(r=i(t.root.getEl()),n(),e=h.length;e--;)if("toolbar"==r&&h[e].id===m)return h[e].focus(),void 0;h[0].focus()}var d=t.root,f=t.enableUpDown!==!1,p=t.enableLeftRight!==!1,h=t.items,m;return d.on("keydown",function(e){var n=37,r=39,u=38,d=40,h=27,m=14,g=13,v=32,y=9,b;switch(e.keyCode){case n:p&&(t.leftAction?t.leftAction():c(-1),b=!0);break;case r:p&&("menuitem"==i()&&"menu"==o()?a("haspopup")&&s():c(1),b=!0);break;case u:f&&(c(-1),b=!0);break;case d:f&&("menuitem"==i()&&"menubar"==o()?s():"button"==i()&&a("haspopup")?s():c(1),b=!0);break;case y:b=!0,e.shiftKey?c(-1):c(1);break;case h:b=!0,l();break;case m:case g:case v:b=s()}b&&(e.stopPropagation(),e.preventDefault())}),d.on("focusin",function(e){n(),m=e.target.id}),{moveFocus:c,focusFirst:u,cancel:l}}}),r(Q,[X,K,z,J,j],function(e,t,n,r,i){var o=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close()}),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(e.layoutRect({w:i}),o=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(e.layoutRect({w:i}),o=!0)),o&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;e.settings.title&&!e._fullscreen&&(i=e.getEl("head"),t.headerW=i.offsetWidth,t.headerH=i.offsetHeight,r+=t.headerH),e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var o=n.getWindowSize();return t.x=Math.max(0,o.w/2-t.w/2),t.y=Math.max(0,o.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head">'+'<div class="'+r+'title">'+e.encode(i.title)+"</div>"+'<button type="button" class="'+r+'close" aria-hidden="true">&times;</button>'+'<div id="'+n+'-dragh" class="'+r+'dragh"></div>'+"</div>"),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+o+'<div id="'+n+'-body" class="'+e.classes("body")+'">'+s+"</div>"+a+"</div>"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t=[],n,o,a;setTimeout(function(){e.addClass("in")},0),e.keyboardNavigation=new r({root:e,enableLeftRight:!1,enableUpDown:!1,items:t,onCancel:function(){e.close()}}),e.find("*").each(function(e){e.canFocus&&(o=o||e.settings.autofocus,n=n||e,"filepicker"==e.type?(t.push(e.getEl("inp")),e.getEl("open")&&t.push(e.getEl("open").firstChild)):t.push(e.getEl()))}),e.statusbar&&e.statusbar.find("*").each(function(e){e.canFocus&&(o=o||e.settings.autofocus,n=n||e,t.push(e.getEl()))}),e._super(),e.statusbar&&e.statusbar.postRender(),!o&&n&&n.focus(),this.dragHelper=new i(e._id+"-dragh",{start:function(){a={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(t){e.moveTo(a.x+t.deltaX,a.y+t.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){var e=this.getParentCtrl(document.activeElement);return e&&e.blur(),this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this;e._super(),e.dragHelper.destroy(),e.statusbar&&this.statusbar.remove()}});return o}),r(Z,[Q],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){var r,i=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}},{type:"button",text:"Cancel",onClick:function(e){e.control.parents()[1].close(),i(!1)}}];break;case t.YES_NO:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}];break;case t.YES_NO_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}];break;default:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:r,title:n.title,items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onClose:n.onClose}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(et,[Q,Z],function(e,t){return function(n){var r=this,i=[];r.windows=i,r.open=function(t,r){var o;return t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){o.find("form")[0].submit(),o.close()}},{text:"Cancel",onclick:function(){o.close()}}]),o=new e(t),i.push(o),o.on("close",function(){for(var e=i.length;e--;)i[e]===o&&i.splice(e,1);n.focus()}),t.data&&o.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),o.params=r||{},n.nodeChanged(),o.renderTo(document.body).reflow()},r.alert=function(e,n,r){t.alert(e,function(){n.call(r||this)})},r.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},r.close=function(){i.length&&i[i.length-1].close()},r.getParams=function(){return i.length?i[i.length-1].params:null},r.setParams=function(e){i.length&&(i[i.length-1].params=e)}}}),r(tt,[T,B,C,m,g,p],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function u(){function t(e){function t(){if(3==l.nodeType){if(e&&c==l.length)return!0;if(!e&&0===c)return!0}}var n,r,i,s,l,c,u;n=W.getRng();var d=[n.startContainer,n.startOffset,n.endContainer,n.endOffset];if(n.collapsed||(e=!0),l=n[(e?"start":"end")+"Container"],c=n[(e?"start":"end")+"Offset"],3==l.nodeType&&(r=F.getParent(n.startContainer,F.isBlock),e&&(r=F.getNext(r,F.isBlock)),!r||!t()&&n.collapsed||(i=F.create("em",{id:"__mceDel"}),P(o.grep(r.childNodes),function(e){i.appendChild(e)}),r.appendChild(i))),n=F.createRng(),n.setStart(d[0],d[1]),n.setEnd(d[2],d[3]),W.setRng(n),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null),i){for(s=W.getBookmark();u=F.get("__mceDel");)F.remove(u,!0);
+W.moveToBookmark(s)}}a.on("keydown",function(n){var r;r=n.keyCode==I,c(n)||!r&&n.keyCode!=O||e.modifierPressed(n)||(n.preventDefault(),t(r))}),a.addCommand("Delete",function(){t()})}function d(){function e(e){var t=F.create("body"),n=e.cloneContents();return t.appendChild(n),W.serializer.serialize(t,{format:"html"})}function t(t){var n=e(t),r=F.createRng();r.selectNode(a.getBody());var i=e(r);return n===i}a.on("keydown",function(e){var n=e.keyCode,r;if(!c(e)&&(n==I||n==O)){if(r=a.selection.isCollapsed(),r&&!F.isEmpty(a.getBody()))return;if(j&&!r)return;if(!r&&!t(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),a.selection.setCursorLocation(a.getBody(),0),a.nodeChanged()}})}function f(){a.on("keydown",function(t){!c(t)&&65==t.keyCode&&e.metaKeyPressed(t)&&(t.preventDefault(),a.execCommand("SelectAll"))})}function p(){a.settings.content_editable||(F.bind(a.getDoc(),"focusin",function(){W.setRng(W.getRng())}),F.bind(a.getDoc(),"mousedown",function(e){e.target==a.getDoc().documentElement&&(a.getWin().focus(),W.setRng(W.getRng()))}))}function h(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===O&&W.isCollapsed()&&0===W.getRng(!0).startOffset){var t=W.getNode(),n=t.previousSibling;n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(F.remove(n),e.preventDefault())}})}function m(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){e=e.target,/^(IMG|HR)$/.test(e.nodeName)&&W.getSel().setBaseAndExtent(e,0,e,1),"A"==e.nodeName&&F.hasClass(e,"mce-item-anchor")&&W.select(e),a.nodeChanged()})}function v(){function e(){var e=F.getAttribs(W.getStart().cloneNode(!1));return function(){var t=W.getStart();t!==a.getBody()&&(F.setAttrib(t,"style",null),P(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!W.isCollapsed()&&F.getParent(W.getStart(),F.isBlock)!=F.getParent(W.getEnd(),F.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),F.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){var e,n;a.on("selectionchange",function(){n&&(clearTimeout(n),n=0),n=window.setTimeout(function(){var n=W.getRng();e&&t.compareRanges(n,e)||(a.nodeChanged(),e=n)},50)})}function b(){document.body.setAttribute("role","application")}function C(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===O&&W.isCollapsed()&&0===W.getRng(!0).startOffset){var t=W.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function x(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),F.addClass(a.getBody(),"mceHideBrInPre"),V.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),U.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function w(){F.bind(a.getBody(),"mouseup",function(){var e,t=W.getNode();"IMG"==t.nodeName&&((e=F.getStyle(t,"width"))&&(F.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),F.setStyle(t,"width","")),(e=F.getStyle(t,"height"))&&(F.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),F.setStyle(t,"height","")))})}function _(){a.on("keydown",function(t){var n,r,i,o,s,l,u,d;if(n=t.keyCode==I,!c(t)&&(n||t.keyCode==O)&&!e.modifierPressed(t)&&(r=W.getRng(),i=r.startContainer,o=r.startOffset,u=r.collapsed,3==i.nodeType&&i.nodeValue.length>0&&(0===o&&!u||u&&o===(n?0:1)))){if(l=i.previousSibling,l&&"IMG"==l.nodeName)return;d=a.schema.getNonEmptyElements(),t.preventDefault(),s=F.create("br",{id:"__tmp"}),i.parentNode.insertBefore(s,i),a.getDoc().execCommand(n?"ForwardDelete":"Delete",!1,null),i=W.getRng().startContainer,l=i.previousSibling,l&&1==l.nodeType&&!F.isBlock(l)&&F.isEmpty(l)&&!d[l.nodeName.toLowerCase()]&&F.remove(l),F.remove("__tmp")}})}function N(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=W.getRng(),r=n.startContainer,i=n.startOffset,o=F.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=F.createRng(),n.setStart(r,0),n.setEnd(r,0),W.setRng(n))}})}function E(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),z.object_resizing||s("enableObjectResizing",!1)}z.readonly||a.on("BeforeExecCommand MouseDown",e)}function k(){function e(){P(F.select("a"),function(e){var t=e.parentNode,n=F.getRoot();if(t.lastChild===e){for(;t&&!F.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}F.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function S(){z.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",z.forced_root_block)})}function T(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function R(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=O||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),F.remove(t.item(0)),a.undoManager.add()))})}function A(){var e;l()>=10&&(e="",P("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function B(){l()<9&&(V.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),U.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function D(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),F.unbind(r,"mouseup",n),F.unbind(r,"mousemove",t),a=o=0}var r=F.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,F.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(F.bind(r,"mouseup",n),F.bind(r,"mousemove",t),F.win.focus(),a.select())}})}function L(){a.on("keyup focusin",function(t){65==t.keyCode&&e.metaKeyPressed(t)||W.normalize()})}function M(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function H(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}var P=o.each,O=e.BACKSPACE,I=e.DELETE,F=a.dom,W=a.selection,z=a.settings,V=a.parser,U=a.serializer,q=i.gecko,j=i.ie,$=i.webkit;C(),N(),d(),L(),$&&(_(),u(),p(),g(),S(),i.iOS?(y(),H()):f()),j&&i.ie<11&&(h(),b(),x(),w(),R(),A(),B(),D()),q&&(h(),m(),v(),E(),k(),T(),M())}}),r(nt,[p],function(e){function t(){return!1}function n(){return!0}var r="__bindings",i=e.makeMap("focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragend dragover draggesture dragdrop drop drag"," ");return{fire:function(e,i,o){var a=this,s,l,c,u,d;if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=a),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=n},i.stopPropagation=function(){i.isPropagationStopped=n},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=n},i.isDefaultPrevented=t,i.isPropagationStopped=t,i.isImmediatePropagationStopped=t),a[r]&&(s=a[r][e]))for(l=0,c=s.length;c>l&&(s[l]=u=s[l],!i.isImmediatePropagationStopped());l++)if(u.call(a,i)===!1)return i.preventDefault(),i;if(o!==!1&&a.parent)for(d=a.parent();d&&!i.isPropagationStopped();)d.fire(e,i,!1),d=d.parent();return i},on:function(e,t){var n=this,o,a,s,l;if(t===!1&&(t=function(){return!1}),t)for(s=e.toLowerCase().split(" "),l=s.length;l--;)e=s[l],o=n[r],o||(o=n[r]={}),a=o[e],a||(a=o[e]=[],n.bindNative&&i[e]&&n.bindNative(e)),a.push(t);return n},off:function(e,t){var n=this,o,a=n[r],s,l,c,u;if(a)if(e)for(c=e.toLowerCase().split(" "),o=c.length;o--;){if(e=c[o],s=a[e],!e){for(l in a)a[e].length=0;return n}if(s){if(t)for(u=s.length;u--;)s[u]===t&&s.splice(u,1);else s.length=0;!s.length&&n.unbindNative&&i[e]&&(n.unbindNative(e),delete a[e])}}else{if(n.unbindNative)for(e in a)n.unbindNative(e);n[r]=[]}return n}}}),r(rt,[p,g],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&n(s,function(n){var r=t.mac?e.ctrlKey||e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0})}),a.add=function(t,a,l,c){var u;return u=l,"string"==typeof l?l=function(){o.execCommand(u,!1,null)}:e.isArray(u)&&(l=function(){o.execCommand(u[0],u[1],u[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0)}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(it,[v,b,C,k,E,A,D,L,M,H,P,O,y,l,et,x,_,tt,g,p,nt,rt],function(e,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w){function _(e,t){return"selectionchange"==t||"drop"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu/.test(t)?e.getDoc():e.getBody()}function N(e,t,r){var i=this,o,a;o=i.documentBaseUrl=r.documentBaseURL,a=r.baseURI,i.settings=t=T({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:o,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:i.convertURL,url_converter_scope:i,ie7_compat:!0},t),n.settings=t,n.baseURL=r.baseURL,i.id=t.id=e,i.isNotDirty=!0,i.plugins={},i.documentBaseURI=new f(t.document_base_url||o,{base_uri:a}),i.baseURI=a,i.contentCSS=[],i.contentStyles=[],i.shortcuts=new w(i),i.execCommands={},i.queryStateCommands={},i.queryValueCommands={},i.loadedCSS={},i.suffix=r.suffix,i.editorManager=r,i.inline=t.inline,i.execCallback("setup",i)}var E=e.DOM,k=n.ThemeManager,S=n.PluginManager,T=C.extend,R=C.each,A=C.explode,B=C.inArray,D=C.trim,L=C.resolve,M=h.Event,H=b.gecko,P=b.ie,O=b.opera;return N.prototype={render:function(){function e(){var e=p.ScriptLoader;n.language&&"en"!=n.language&&(n.language_url=t.editorManager.baseURL+"/langs/"+n.language+".js"),n.language_url&&e.add(n.language_url),n.theme&&"function"!=typeof n.theme&&"-"!=n.theme.charAt(0)&&!k.urls[n.theme]&&k.load(n.theme,"themes/"+n.theme+"/theme"+i+".js"),C.isArray(n.plugins)&&(n.plugins=n.plugins.join(" ")),R(n.external_plugins,function(e,t){S.load(t,e),n.plugins+=" "+t}),R(n.plugins.split(/[ ,]/),function(e){if(e=D(e),e&&!S.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=S.dependencies(e);R(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+i+".js"};e=S.createUrl(t,e),S.load(e.resource,e)})}else S.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+i+".js"})}),e.loadQueue(function(){t.removed||t.init()})}var t=this,n=t.settings,r=t.id,i=t.suffix;if(!M.domLoaded)return E.bind(window,"ready",function(){t.render()}),void 0;if(t.editorManager.settings=n,t.getElement()&&b.contentEditable){n.inline?t.inline=!0:(t.orgVisibility=t.getElement().style.visibility,t.getElement().style.visibility="hidden");var o=t.getElement().form||E.getParent(r,"form");o&&(t.formElement=o,n.hidden_input&&!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&E.insertAfter(E.create("input",{type:"hidden",name:r}),r),t.formEventDelegate=function(e){t.fire(e.type,e)},E.bind(o,"submit reset",t.formEventDelegate),t.on("reset",function(){t.setContent(t.startContent,{format:"raw"})}),!n.submit_patch||o.submit.nodeType||o.submit.length||o._mceOldSubmit||(o._mceOldSubmit=o.submit,o.submit=function(){return t.editorManager.triggerSave(),t.isNotDirty=!0,o._mceOldSubmit(o)})),t.windowManager=new m(t),"xml"==n.encoding&&t.on("GetContent",function(e){e.save&&(e.content=E.encode(e.content))}),n.add_form_submit_trigger&&t.on("submit",function(){t.initialized&&t.save()}),n.add_unload_trigger&&(t._beforeUnload=function(){!t.initialized||t.destroyed||t.isHidden()||t.save({format:"raw",no_events:!0,set_dirty:!1})},t.editorManager.on("BeforeUnload",t._beforeUnload)),e()}},init:function(){function e(n){var r=S.get(n),i,o;i=S.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=D(n),r&&-1===B(h,n)&&(R(S.dependencies(n),function(t){e(t)}),o=new r(t,i),t.plugins[n]=o,o.init&&(o.init(t,i),h.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,h=[];if(t.editorManager.add(t),n.aria_label=n.aria_label||E.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),l=k.get(n.theme),t.theme=new l(t,k.urls[n.theme]),t.theme.init&&t.theme.init(t,k.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""))):t.theme=n.theme),R(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),t.fire("BeforeRenderUI"),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,f=/^[0-9\.]+(|px)$/i,f.test(""+i)&&(i=Math.max(parseInt(i,10)+(l.deltaWidth||0),100)),f.test(""+o)&&(o=Math.max(parseInt(o,10)+(l.deltaHeight||0),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(E.setStyles(l.sizeContainer||l.editorContainer,{wi2dth:i,h2eight:o}),o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&R(A(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(document.domain&&location.hostname!=document.domain&&(t.editorManager.relaxedDomain=document.domain),t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!b.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',p=0;p<t.contentCSS.length;p++){var m=t.contentCSS[p];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+m+'" />',t.loadedCSS[m]=!0}u=n.body_id||"tinymce",-1!=u.indexOf("=")&&(u=t.getParam("body_id","","hash"),u=u[t.id]||u),d=n.body_class||"",-1!=d.indexOf("=")&&(d=t.getParam("body_class","","hash"),d=d[t.id]||""),t.iframeHTML+='</head><body id="'+u+'" class="mce-content-body '+d+'" '+"onload=\"window.parent.tinymce.get('"+t.id+"').fire('load');\"><br></body></html>",t.editorManager.relaxedDomain&&(P||O&&parseFloat(window.opera.version())<11)&&(c='javascript:(function(){document.open();document.domain="'+document.domain+'";'+'var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);'+"document.close();ed.initContentBody();})()"),s=E.add(l.iframeContainer,"iframe",{id:t.id+"_ifr",src:c||'javascript:""',frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}}),t.contentAreaContainer=l.iframeContainer,l.editorContainer&&(E.get(l.editorContainer).style.display=t.orgDisplay),E.get(t.id).style.display="none",E.setAttrib(t.id,"aria-hidden",!0),t.editorManager.relaxedDomain&&c||t.initContentBody(),r=s=l=null},initContentBody:function(){var t=this,n=t.settings,o=E.get(t.id),f=t.getDoc(),p,h;n.inline||(t.getElement().style.visibility=t.orgVisibility),P&&t.editorManager.relaxedDomain||n.content_editable||(f.open(),f.write(t.iframeHTML),f.close(),t.editorManager.relaxedDomain&&(f.domain=t.editorManager.relaxedDomain)),n.content_editable&&(t.on("remove",function(){var e=this.getBody();E.removeClass(e,"mce-content-body"),E.removeClass(e,"mce-edit-focus"),E.setAttrib(e,"tabIndex",null),E.setAttrib(e,"contentEditable",null)}),E.addClass(o,"mce-content-body"),o.tabIndex=-1,t.contentDocument=f=n.content_document||document,t.contentWindow=n.content_window||window,t.bodyElement=o,n.content_document=n.content_window=null,n.root_name=o.nodeName.toLowerCase()),p=t.getBody(),p.disabled=!0,n.readonly||(p.contentEditable=t.getParam("content_editable_state",!0)),p.disabled=!1,t.schema=new g(n),t.dom=new e(f,{keep_values:!0,url_converter:t.convertURL,url_converter_scope:t,hex_colors:n.force_hex_style_colors,class_filter:n.class_filter,update_styles:!0,root_element:n.content_editable?t.id:null,schema:t.schema,onSetAttrib:function(e){t.fire("SetAttrib",e)}}),t.parser=new v(n,t.schema),t.parser.addAttributeFilter("src,href,style",function(e,n){for(var r=e.length,i,o=t.dom,a,s;r--;)i=e[r],a=i.attr(n),s="data-mce-"+n,i.attributes.map[s]||("style"===n?i.attr(s,o.serializeStyle(o.parseStyle(a),i.name)):i.attr(s,t.convertURL(a,n,i.name)))}),t.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"text/javascript"))}),t.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),t.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var n=e.length,i,o=t.schema.getNonEmptyElements();n--;)i=e[n],i.isEmpty(o)&&(i.empty().append(new r("br",1)).shortEnded=!0)}),t.serializer=new i(n,t),t.selection=new a(t.dom,t.getWin(),t.serializer,t),t.formatter=new s(t),t.undoManager=new l(t),t.forceBlocks=new u(t),t.enterKey=new c(t),t.editorCommands=new d(t),t.fire("PreInit"),n.browser_spellcheck||n.gecko_spellcheck||(f.body.spellcheck=!1,E.setAttrib(p,"spellcheck","false")),t.fire("PostRender"),t.quirks=y(t),n.directionality&&(p.dir=n.directionality),n.nowrap&&(p.style.whiteSpace="nowrap"),n.protect&&t.on("BeforeSetContent",function(e){R(n.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),t.on("SetContent",function(){t.addVisual(t.getBody())}),n.padd_empty_editor&&t.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),t.load({initial:!0,format:"html"}),t.startContent=t.getContent({format:"raw"}),t.initialized=!0,R(t._pendingNativeEvents,function(e){t.dom.bind(_(t,e),e,function(e){t.fire(e.type,e)})}),t.fire("init"),t.focus(!0),t.nodeChanged({initial:!0}),t.execCallback("init_instance_callback",t),t.contentStyles.length>0&&(h="",R(t.contentStyles,function(e){h+=e+"\r\n"}),t.dom.addStyle(h)),R(t.contentCSS,function(e){t.loadedCSS[e]||(t.dom.loadCSS(e),t.loadedCSS[e]=!0)}),n.auto_focus&&setTimeout(function(){var e=t.editorManager.get(n.auto_focus);e.selection.select(e.getBody(),1),e.selection.collapse(1),e.getBody().focus(),e.getWin().focus()},100),o=f=p=null},focus:function(e){var t,n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l;e||(o=r.getRng(),o.item&&(a=o.item(0)),n._refreshContentEditable(),i||(b.opera||n.getBody().focus(),n.getWin().focus()),(H||i)&&(l=n.getBody(),l.setActive?l.setActive():l.focus(),i&&r.normalize()),a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())),n.editorManager.activeEditor!=n&&((t=n.editorManager.activeEditor)&&t.fire("deactivate",{relatedTarget:n}),n.fire("activate",{relatedTarget:t})),n.editorManager.activeEditor=n},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?L(r):0,n=L(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?R(r.indexOf("=")>0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(","),function(e){e=e.split("="),i[D(e[0])]=e.length>1?D(e[1]):D(e)}):i=r,i):r},nodeChanged:function(){var e=this,t=e.selection,n,r,i;e.initialized&&!e.settings.disable_nodechange&&(i=e.getBody(),n=t.getStart()||i,n=P&&n.ownerDocument!=e.getDoc()?e.getBody():n,"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),r=[],e.dom.getParent(n,function(e){return e===i?!0:(r.push(e),void 0)}),e.fire("NodeChange",{element:n,parents:r}))},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;return/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=T({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented()?!1:(a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(R(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o?o:i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):i.editorCommands.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(i.getDoc().execCommand(e,t,n),i.fire("ExecCommand",{command:e,ui:t,value:n}),void 0))},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r!==!0))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;E.show(e.getContainer()),E.hide(e.id),e.load(),e.fire("show")},hide:function(){var e=this,t=e.getDoc();P&&t&&t.execCommand("SelectAll"),e.save(),E.hide(e.getContainer()),E.setStyle(e.id,"display",e.orgDisplay),e.fire("hide")},isHidden:function(){return!E.isHidden(this.id)},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(n.innerHTML=r,(i=E.getParent(t.id,"form"))&&R(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?e=P&&11>P?"<"+i+"></"+i+">":"<"+i+'><br data-mce-bogus="1"></'+i+">":P||(e='<br data-mce-bogus="1">'),r.innerHTML=e,n.fire("SetContent",t)):("raw"!==t.format&&(e=new o({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=D(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.initial||(n.selection.select(r,!0),n.selection.collapse(!0)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?D(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e){this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=E.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return E.get(this.settings.content_element||this.id)},getWin:function(){var e=this,t;return e.contentWindow||(t=E.get(e.id+"_ifr"),t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),R(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),t&&"0"!=t||(n.hasVisual?i.addClass(e,o):i.removeClass(e,o)),void 0;case"A":return i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o="mce-item-anchor",t&&(n.hasVisual?i.addClass(e,o):i.removeClass(e,o))),void 0}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this,t=e.getContainer(),n=e.getDoc();e.removed||(e.removed=1,P&&n&&n.execCommand("SelectAll"),e.save(),E.setStyle(e.id,"display",e.orgDisplay),e.settings.content_editable||(M.unbind(e.getWin()),M.unbind(e.getDoc())),M.unbind(e.getBody()),M.unbind(t),e.fire("remove"),e.editorManager.remove(e),E.remove(t))},bindNative:function(e){var t=this;t.initialized?t.dom.bind(_(t,e),e,function(n){t.fire(e,n)}):t._pendingNativeEvents?t._pendingNativeEvents.push(e):t._pendingNativeEvents=[e]},unbindNative:function(e){var t=this;t.initialized&&t.dom.unbind(e)},destroy:function(e){var t=this,n;t.destroyed||(H&&(M.unbind(t.getDoc()),M.unbind(t.getWin()),M.unbind(t.getBody())),e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null,E.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=null,t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1)},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return H?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},T(N.prototype,x),N}),r(ot,[],function(){var e={};return{add:function(t,n){for(var r in n)e[r]=n[r]},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(at,[v,g],function(e,t){function n(r){function i(){try{return document.activeElement}catch(e){return document.body}}function o(e){return e&&e.startContainer?{startContainer:e.startContainer,startOffset:e.startOffset,endContainer:e.endContainer,endOffset:e.endOffset}:e}function a(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function s(s){function l(t){return!!e.DOM.getParent(t,n.isEditorUIElement)}var c=s.editor,u,d;c.on("init",function(){"onbeforedeactivate"in document&&t.ie<11?c.dom.bind(c.getBody(),"beforedeactivate",function(){var e=c.getDoc().selection;try{u=e&&e.createRange?e.createRange():c.selection.getRng()}catch(t){}}):(c.inline||t.ie>10)&&(c.on("nodechange keyup",function(){var e,t=document.activeElement;for(t&&t.id==c.id+"_ifr"&&(t=c.getBody());t;){if(t==c.getBody()){e=!0;break}t=t.parentNode}e&&(u=c.selection.getRng())}),t.webkit&&(d=function(){var e=c.selection.getRng();e.collapsed||(u=e)},e.DOM.bind(document,"selectionchange",d),c.on("remove",function(){e.DOM.unbind(document,"selectionchange",d)})))}),c.on("focusin",function(){var e=r.focusedEditor;c.selection.lastFocusBookmark&&(c.selection.setRng(a(c,c.selection.lastFocusBookmark)),c.selection.lastFocusBookmark=null),e!=c&&(e&&e.fire("blur",{focusedEditor:c}),r.activeEditor=c,c.fire("focus",{blurredEditor:e}),c.focus(!1),r.focusedEditor=c)}),c.on("focusout",function(){c.selection.lastFocusBookmark=o(u),window.setTimeout(function(){var e=r.focusedEditor;e!=c&&(c.selection.lastFocusBookmark=null),l(i())||e!=c||(c.fire("blur",{focusedEditor:null}),r.focusedEditor=null,c.selection.lastFocusBookmark=null)},0)})}r.on("AddEditor",s)}return n.isEditorUIElement=function(e){return-1!==e.className.indexOf("mce-")},n}),r(st,[it,v,O,g,p,nt,ot,at],function(e,n,r,i,o,a,s,l){var c=n.DOM,u=o.explode,d=o.each,f=o.extend,p=0,h,m={majorVersion:"4",minorVersion:"0.5",releaseDate:"2013-08-27",editors:[],i18n:s,activeEditor:null,setup:function(){var e=this,t,n,i="",o;if(n=document.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/"),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;
+else for(var a=document.getElementsByTagName("script"),s=0;s<a.length;s++){var c=a[s].src;if(/tinymce(\.jquery|)(\.min|\.dev|)\.js/.test(c)){-1!=c.indexOf(".min")&&(i=".min"),t=c.substring(0,c.lastIndexOf("/"));break}}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new l(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!c.get(t)?e.name:c.uniqueId(),e.setAttribute("id",t)),t}function r(e,t,n){var r=e[t];if(r)return r.apply(n||this,Array.prototype.slice.call(arguments,2))}function i(e,t){return t.constructor===RegExp?t.test(e.className):c.hasClass(e,t)}var o=this,a=[],s;o.settings=t,c.bind(window,"ready",function(){var l,h;if(r(t,"onpageload"),t.types)return d(t.types,function(r){d(c.select(r.selector),function(i){var s=new e(n(i),f({},t,r),o);a.push(s),s.render(1)})}),void 0;if(t.selector)return d(c.select(t.selector),function(r){var i=new e(n(r),t,o);a.push(i),i.render(1)}),void 0;switch(t.mode){case"exact":l=t.elements||"",l.length>0&&d(u(l),function(n){c.get(n)?(s=new e(n,t,o),a.push(s),s.render(!0)):d(document.forms,function(r){d(r.elements,function(r){r.name===n&&(n="mce_editor_"+p++,c.setAttrib(r,"id",n),s=new e(n,t,o),a.push(s),s.render(1))})})});break;case"textareas":case"specific_textareas":d(c.select("textarea"),function(r){t.editor_deselector&&i(r,t.editor_deselector)||(!t.editor_selector||i(r,t.editor_selector))&&(s=new e(n(r),t,o),a.push(s),s.render(!0))})}t.oninit&&(l=h=0,d(a,function(e){h++,e.initialized?l++:e.on("init",function(){l++,l==h&&r(t,"oninit")}),l==h&&r(t,"oninit")}))})},get:function(e){return e===t?this.editors:this.editors[e]},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),h||(h=function(){t.fire("BeforeUnload")},c.bind(window,"beforeunload",h)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;if(e){if("string"==typeof e)return e=e.selector||e,d(c.select(e),function(e){t.remove(r[e.id])}),void 0;if(i=e,!r[i.id])return null;for(delete r[i.id],n=0;n<r.length;n++)if(r[n]==i){r.splice(n,1);break}if(t.activeEditor==i&&(t.activeEditor=r[0]),i&&!i.removed)return i.remove(),i.destroy(),t.fire("RemoveEditor",{editor:i}),r.length||c.unbind(window,"beforeunload",h),i}else for(n=r.length-1;n>=0;n--)t.remove(r[n])},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){d(this.editors,function(e){e.save()})},addI18n:function(e,t){s.add(e,t)},translate:function(e){return s.translate(e)}};return f(m,a),m.setup(),window.tinymce=window.tinyMCE=m,m}),r(lt,[st,p],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(ct,[],function(){return{send:function(e){function t(){!e.async||4==n.readyState||r++>1e4?(e.success&&1e4>r&&200==n.status?e.success.call(e.success_scope,""+n.responseText,n,e):e.error&&e.error.call(e.error_scope,r>1e4?"TIMED_OUT":"GENERAL",n,e),n=null):setTimeout(t,10)}var n,r=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",n=new XMLHttpRequest){if(n.overrideMimeType&&n.overrideMimeType(e.content_type),n.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.content_type&&n.setRequestHeader("Content-Type",e.content_type),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(e.data),!e.async)return t();setTimeout(t,10)}}}}),r(ut,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(dt,[ut,ct,p],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(ft,[v],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(pt,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do r=n(parseInt(n(),32)||0),null!==r&&(s=n(parseInt(n(),32)||0),a[r]=s);while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n),o.save(l),e()}}var i,o,a,s,l,c;return window.localStorage?localStorage:(l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i)}),r(ht,[v,l,y,b,p,g],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(mt,[I,p],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(gt,[mt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(vt,[V,G],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation">'+'<div class="'+t+'tooltip-arrow"></div>'+'<div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div>"+"</div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(yt,[V,vt],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&t.on("mouseenter mouseleave",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t&&"mouseenter"==n.type){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.aria("label",e.tooltip)},tooltip:function(){var e=this;return n||(n=new t({type:"tooltip"}),n.renderTo(e.getContainerElm())),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&setTimeout(function(){e.focus()},0)},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(bt,[yt],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i="";return e.settings.image&&(r="none",i=" style=\"background-image: url('"+e.settings.image+"')\""),r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+'<button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?" ":"")+e.encode(e._text):"")+"</button>"+"</div>"}})}),r(Ct,[q],function(e){return e.extend({Defaults:{defaultType:"button",role:"toolbar"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'">'+'<div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div>"+"</div>"}})}),r(xt,[yt],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labeledby="'+t+'-al" tabindex="-1">'+'<i class="'+n+"ico "+n+'i-checkbox"></i>'+'<span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span>"+"</div>"}})}),r(wt,[bt,X],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;n.panel.popover=!0,n.panel.autohide=!0,e.active(!0),e.panel?e.panel.show():(e.panel=new t(n.panel).on("hide",function(){e.active(!1)}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()),e.panel.moveRel(e.getEl(),n.popoverAlign||"bc-tc")},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():e.showPanel())}),e._super()}})}),r(_t,[wt,v],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'">'+'<button role="presentation" hidefocus type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e._text:"")+"</button>"+'<button type="button" class="'+n+'open" hidefocus tabindex="-1">'+' <i class="'+n+'caret"></i>'+"</button>"+"</div>"},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(Nt,[yt,z],function(e,t){return e.extend({init:function(e){var n=this;n._super(e),n.addClass("combobox"),n.on("click",function(e){for(var t=e.target;t;)t.id&&-1!=t.id.indexOf("-open")&&n.fire("action"),t=t.parentNode}),n.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&n.parents().reverse().each(function(t){return e.preventDefault(),n.fire("change"),t.submit?(t.submit(),!1):void 0})}),e.placeholder&&(n.addClass("placeholder"),n.on("focusin",function(){n._hasOnChange||(t.on(n.getEl("inp"),"change",function(){n.fire("change")}),n._hasOnChange=!0),n.hasClass("placeholder")&&(n.getEl("inp").value="",n.removeClass("placeholder"))}),n.on("focusout",function(){0===n.value().length&&(n.getEl("inp").value=e.placeholder,n.addClass("placeholder"))}))},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;t._super(e),t._rendered&&(t.getEl("inp").disabled=e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,n=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-r.offsetWidth-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),t.css(n.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return t.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="";return o=n.icon?r+"ico "+r+"i-"+n.icon:"",a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1">'+'<button id="'+t+'-action" type="button" hidefocus tabindex="-1">'+(o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button>"+"</div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'">'+'<input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="true">'+s+"</div>"}})}),r(Et,[V,J],function(e,t){return e.extend({Defaults:{delimiter:"\xbb"},init:function(e){var t=this;t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.keyNav=new t({root:e,enableLeftRight:!0}),e.keyNav.focusFirst(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classPrefix+'path">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item">&nbsp;</div>'),i}})}),r(kt,[Et,st],function(e,t){return e.extend({postRender:function(){function e(e){return 1===e.nodeType&&("BR"==e.nodeName||!!e.getAttribute("data-mce-bogus"))}var n=this,r=t.activeEditor;return n.on("select",function(t){var n=[],i,o=r.getBody();for(r.focus(),i=r.selection.getStart();i&&i!=o;)e(i)||n.push(i),i=i.parentNode;r.selection.select(n[n.length-1-t.index]),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});i.push({name:s.name})}n.data(i)}),n._super()}})}),r(St,[q],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div>"+"</div>"}})}),r(Tt,[q,St],function(e,t){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10},preRender:function(){var e=this,n=e.items();n.each(function(n){var r,i=n.settings.label;i&&(r=new t({layout:"flex",autoResize:"overflow",defaults:{flex:1},items:[{type:"label",text:i,flex:0,forId:n._id}]}),r.type="formitem","undefined"==typeof n.settings.flex&&(n.settings.flex=1),e.replace(n,r),r.add(n))})},recalcLabels:function(){var e=this,t=0,n=[],r,i;if(e.settings.labelGapCalc!==!1)for(e.items().filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){var e=this.getParentCtrl(document.activeElement);return e&&e.blur(),this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(Rt,[Tt],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div>"+"</fieldset>"}})}),r(At,[Nt],function(e){return e.extend({init:function(e){var t=this,n=tinymce.activeEditor,r;e.spellcheck=!1,r=n.settings.file_browser_callback,r&&(e.icon="browse",e.onaction=function(){r(t.getEl("inp").id,t.getEl("inp").value,e.filetype,window)}),t._super(e)}})}),r(Bt,[gt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Dt,[gt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v=[],y,b,C,x,w,_,N,E,k,S,T,R,A,B,D,L,M,H,P,O,I,F,W,z,V=Math.max,U=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=a.direction,s=a.align,l=a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(k="y",N="h",E="minH",S="maxH",R="innerH",T="top",A="bottom",B="deltaH",D="contentH",I="left",H="w",L="x",M="innerW",P="minW",O="maxW",F="right",W="deltaW",z="contentW"):(k="x",N="w",E="minW",S="maxW",R="innerW",T="left",A="right",B="deltaW",D="contentW",I="top",H="h",L="y",M="innerH",P="minH",O="maxH",F="bottom",W="deltaH",z="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),m=p.settings,g=m.flex,d-=n-1>t?c:0,g>0&&(u+=g,h[S]&&v.push(p),h.flex=g),d-=h[E],y=o[I]+h[P]+o[F],y>_&&(_=y);if(x={},x[E]=0>d?i[E]-d+i[B]:i[R]-d+i[B],x[P]=_+i[W],x[D]=i[R]-d,x[z]=_,x.minW=U(x.minW,i.maxW),x.minH=U(x.minH,i.maxH),x.minW=V(x.minW,i.startMinWidth),x.minH=V(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],h=p.layoutRect(),b=h[S],y=h[E]+Math.ceil(h.flex*C),y>b?(d-=h[S]-h[E],u-=h.flex,h.flex=0,h.maxFlexSize=b):h.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[L]=o[I],t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),y=h.maxFlexSize||h[E],"center"===s?x[L]=Math.round(i[M]/2-h[H]/2):"stretch"===s?(x[H]=V(h[P]||0,i[M]-o[I]-o[F]),x[L]=o[I]):"end"===s&&(x[L]=i[M]-h[H]-o.top),h.flex>0&&(y+=Math.ceil(h.flex*C)),x[N]=y,x[k]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var q=e.parent();q&&(q._lastRect=null,q.recalc())}}})}),r(Lt,[mt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r(Mt,[V,yt,X,p,st,g],function(e,t,n,r,i,o){function a(e){function t(t){function n(e){return e.replace(/%(\w+)/g,"")}var r,i,o=e.dom,a="",l,c;return c=e.settings.preview_styles,c===!1?"":(c||(c="font-family font-size font-weight text-decoration text-transform color background-color border border-radius"),(t=e.formatter.get(t))?(t=t[0],r=t.block||t.inline||"span",i=o.create(r),s(t.styles,function(e,t){e=n(e),e&&o.setStyle(i,t,e)}),s(t.attributes,function(e,t){e=n(e),e&&o.setAttrib(i,t,e)}),s(t.classes,function(e){e=n(e),o.hasClass(i,e)||o.addClass(i,e)}),e.fire("PreviewFormats"),o.setStyles(i,{position:"absolute",left:-65535}),e.getBody().appendChild(i),l=o.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,s(c.split(" "),function(t){var n=o.getStyle(i,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=o.getStyle(e.getBody(),t,!0),"#ffffff"==o.toHex(n).toLowerCase())||"color"==t&&"#000000"==o.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(a+="padding:0 2px;"),a+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),o.remove(i),a):void 0)}function r(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function i(e){e=e.split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function o(){function n(e){var t=[];if(e)return s(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=n(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a}t.push(o)}),t}var r=0,i=[],o=[{title:"Headers",items:[{title:"Header 1",format:"h1"},{title:"Header 2",format:"h2"},{title:"Header 3",format:"h3"},{title:"Header 4",format:"h4"},{title:"Header 5",format:"h5"},{title:"Header 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];e.on("init",function(){s(i,function(t){e.formatter.register(t.name,t)})});var a=n(e.settings.style_formats||o);return a={type:"menu",items:a,onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?t(this.settings.format):void 0},onPostRender:function(){var t=this,n=this.settings.format;n&&t.parent().on("show",function(){t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))})},onclick:function(){this.settings.format&&f(this.settings.format)}}}}function a(){return e.undoManager?e.undoManager.hasUndo():!1}function l(){return e.undoManager?e.undoManager.hasRedo():!1}function c(){var t=this;t.disabled(!a()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!a())})}function u(){var t=this;t.disabled(!l()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!l())})}function d(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function f(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var p;p=o(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){f(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],hr:["Insert horizontal rule","InsertHorizontalRule"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Toggle blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:c,cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:u,cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:c,cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:u,cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:d,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:p}),e.addButton("formatselect",function(){var n=[],o=i(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Header 1=h1;Header 2=h2;Header 3=h3;Header 4=h4;Header 5=h5;Header 6=h6");return s(o,function(e){n.push({text:e[0],value:e[1],textStyle:function(){return t(e[1])}})}),{type:"listbox",text:{raw:o[0][0]},values:n,fixedWidth:!0,onselect:f,onPostRender:r(n)}}),e.addButton("fontselect",function(){var t="Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",n=[],o=i(e.settings.font_formats||t);return s(o,function(e){n.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:n,fixedWidth:!0,onPostRender:r(n,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var t=[],n="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||n;return s(i.split(" "),function(e){t.push({text:e,value:e})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:r(t,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:p})}var s=r.each;i.on("AddEditor",function(e){a(e.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(Ht,[gt],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,N=[],E=[],k,S,T,R,A,B;for(t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]),d=0;r>d;d++)N.push(0);for(f=0;n>f;f++)E.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),k=c.minW,S=c.minH,N[d]=k>N[d]?k:N[d],E[f]=S>E[f]?S:E[f];for(A=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=N[d]+(d>0?y:0),A-=(d>0?y:0)+N[d];for(B=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=E[f]+(f>0?b:0),B-=(f>0?b:0)+E[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var D;D="start"==t.packV?0:B>0?Math.floor(B/n):0;var L=0,M=t.flexWidths;if(M)for(d=0;d<M.length;d++)L+=M[d];else L=r;var H=A/L;for(d=0;r>d;d++)N[d]+=M?Math.ceil(M[d]*H):H;for(h=g.top,f=0;n>f;f++){for(p=g.left,s=E[f]+D,d=0;r>d&&(u=i[f*r+d],u);d++)m=u.settings,c=u.layoutRect(),a=N[d],T=R=0,c.x=p,c.y=h,v=m.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=m.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=h+s/2-c.h/2:"bottom"==v?c.y=h+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();
+h+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var P=e.parent();P&&(P._lastRect=null,P.recalc())}}})}),r(Pt,[yt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(Ot,[yt],function(e){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,t=e._super();return e.settings.multiline&&(e.getEl().offsetWidth>t.maxW&&(t.minW=t.maxW,e.addClass("multiline")),e.getEl().style.width=t.minW+"px",t.startMinH=t.h=t.minH=Math.min(t.maxH,e.getEl().offsetHeight)),t},disabled:function(e){var t=this,n;return e!==n&&(t.toggleClass("label-disabled",e),t._rendered&&(t.getEl()[0].className=t.classes())),t._super(e)},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t:"")+'">'+e.encode(e._text)+"</label>"}})}),r(It,[q,J],function(e,t){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e.keyNav=new t({root:e,enableLeftRight:!0}),e._super()}})}),r(Ft,[It],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",defaults:{type:"menubutton"}}})}),r(Wt,[bt,U,Ft],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type)}).fire("show"),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),["bl-tl","tl-bl"]),void 0)},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1))},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon?r+"ico "+r+"i-"+e.settings.icon:"";return e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+'<button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"></i>':"")+"<span>"+(e._text?(i?" ":"")+e.encode(e._text):"")+"</span>"+' <i class="'+r+'caret"></i>'+"</button>"+"</div>"},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.keyboard&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n<r.length;n++)r[n].innerHTML=t.encode(e);return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(zt,[Wt],function(e){return e.extend({init:function(e){var t=this,n,r,i,o,a;if(t._values=n=e.values,n){for(r=0;r<n.length;r++)i=n[r].selected||e.value===n[r].value,i&&(o=o||n[r].text,t._value=n[r].value);e.menu=n}e.text=e.text||o||n[0].text,t._super(e),t.addClass("listbox"),t.on("select",function(n){var r=n.control;a&&(n.lastControl=a),e.multiple?r.active(!r.active()):t.value(n.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){r=e.value()===n,r&&(i=i||e.text()),e.active(r),e.menu&&t(e.menu,n)})}var n=this,r,i,o,a;if("undefined"!=typeof e){if(n.menu)t(n.menu,e);else for(o=n.settings.menu,a=0;a<o.length;a++)r=o[a].value==e,r&&(i=i||o[a].text),o[a].active=r;n.text(i||this.settings.text)}return n._super(e)}})}),r(Vt,[yt,U],function(e,t){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),e.preview&&t.addClass("menu-item-preview"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t.canFocus=!1,t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.aria("checked",!0),t.addClass("menu-item-checkbox"),e.icon="selected"),t.on("mousedown",function(e){e.preventDefault()}),t.on("mouseenter click",function(n){n.control===t&&(e.menu||"click"!==n.type?(t.showMenu(),n.keyboard&&setTimeout(function(){t.menu.items()[0].focus()},0)):(t.parent().hideAll(),t.fire("cancel"),t.fire("select")))}),e.menu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),r.reflow(),r.fire("show"),r.on("cancel",function(){e.focus()}),r.on("hide",function(t){t.control===r&&e.removeClass("selected")})),r._parentMenu=i,r.addClass("menu-sub");var o=r.testMoveRel(e.getEl(),["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),o="menu-sub-"+o,r.removeClass(r._lastRel),r.addClass(o),r._lastRel=o,e.addClass("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=e.encode(e._text),o=e.settings.icon;return o&&e.parent().addClass("menu-has-icons"),o=r+"ico "+r+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==i?'<i class="'+o+'"></i>&nbsp;':"")+("-"!==i?'<span id="'+t+'-text" class="'+r+'text">'+i+"</span>":"")+(n.shortcut?'<div id="'+t+'-shortcut" class="'+r+'menu-shortcut">'+n.shortcut+"</div>":"")+(n.menu?'<div class="'+r+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(Ut,[X,J,Vt,p],function(e,t,n,r){var i=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"menu"},init:function(e){var i=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var o=e.items,a=o.length;a--;)o[a]=r.extend({},e.itemDefaults,o[a]);i._super(e),i.addClass("menu"),i.keyNav=new t({root:i,enableUpDown:!0,enableLeftRight:!0,leftAction:function(){i.parent()instanceof n&&i.keyNav.cancel()},onCancel:function(){i.fire("cancel",{},!1),i.hide()}})},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("cancel"),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return i}),r(qt,[xt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(jt,[yt,j],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'">'+'<i class="'+t+"ico "+t+'i-resize"></i>'+"</div>"},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},end:function(){e.fire("ResizeEnd")}})}})}),r($t,[yt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(Kt,[Wt,v],function(e,t){var n=t.DOM;return e.extend({Defaults:{classes:"widget btn splitbtn",role:"splitbutton"},repaint:function(){var e=this,t=e.getEl(),r=e.layoutRect(),i,o,a;return e._super(),i=t.firstChild,o=t.lastChild,n.css(i,{width:r.w-o.offsetWidth,height:r.h-2}),n.css(o,{height:r.h-2}),a=i.firstChild.style,a.width=a.height="100%",a=o.firstChild.style,a.width=a.height="100%",e},activeMenu:function(e){var t=this;n.toggleClass(t.getEl().lastChild,t.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"";return'<div id="'+t+'" class="'+e.classes()+'">'+'<button type="button" hidefocus tabindex="-1">'+(r?'<i class="'+r+'"></i>':"")+(e._text?(r?" ":"")+e._text:"")+"</button>"+'<button type="button" class="'+n+'open" hidefocus tabindex="-1">'+(e._menuBtnText?(r?" ":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i>'+"</button>"+"</div>"},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){e.control!=this||n.getParent(e.target,"."+this.classPrefix+"open")||(e.stopImmediatePropagation(),t.call(this,e))}),delete e.settings.onclick,e._super()}})}),r(Gt,[Lt],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(Yt,[K,z],function(e,t){"use stict";return e.extend({lastIdx:0,Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){this.activeTabId&&t.removeClass(this.getEl(this.activeTabId),this.classPrefix+"active"),this.activeTabId="t"+e,t.addClass(this.getEl("t"+e),this.classPrefix+"active"),e!=this.lastIdx&&(this.items()[this.lastIdx].hide(),this.lastIdx=e),this.items()[e].show().fire("showtab"),this.reflow()},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){n+='<div id="'+e._id+"-t"+i+'" class="'+r+'tab" unselectable="on">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+'<div id="'+e._id+'-head" class="'+r+'tabs">'+n+"</div>"+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>"+"</div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,t,n,r;n=r=0,e.items().each(function(t,i){n=Math.max(n,t.layoutRect().minW),r=Math.max(r,t.layoutRect().minH),e.settings.activeTab!=i&&t.hide()}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=n,e.settings.h=r,e.layoutRect({x:0,y:0,w:n,h:r})});var i=e.getEl("head").offsetHeight;return e.settings.minWidth=n,e.settings.minHeight=r+i,t=e._super(),t.deltaH+=e.getEl("head").offsetHeight,t.innerH=t.h-t.deltaH,t}})}),r(Xt,[yt,z],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.submit?(t.submit(),!1):void 0})})},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="true"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="true"'+i+">"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()}})}),r(Jt,[z],function(e){return function(t){var n=this,r;n.show=function(i){return n.hide(),r=!0,window.setTimeout(function(){r&&t.appendChild(e.createFragment('<div class="mce-throbber"></div>'))},i||0),n},n.hide=function(){var e=t.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),r=!1,n}}}),a([l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,N,E,k,S,T,R,A,B,D,L,M,H,P,O,I,F,W,z,V,U,q,j,$,K,G,Y,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,ht,mt,gt,vt,yt,bt,Ct,xt,wt,_t,Nt,Et,kt,St,Tt,Rt,At,Bt,Dt,Lt,Mt,Ht,Pt,Ot,It,Ft,Wt,zt,Vt,Ut,qt,jt,$t,Kt,Gt,Yt,Xt,Jt])}(this); \ No newline at end of file
diff --git a/framework/Web/UI/WebControls/TAccordion.php b/framework/Web/UI/WebControls/TAccordion.php
index 7d5b20fa..dbf761a2 100644
--- a/framework/Web/UI/WebControls/TAccordion.php
+++ b/framework/Web/UI/WebControls/TAccordion.php
@@ -106,6 +106,7 @@ class TAccordion extends TWebControl implements IPostBackDataHandler
public function setActiveViewIndex($value)
{
$this->setViewState('ActiveViewIndex',TPropertyValue::ensureInteger($value),0);
+ $this->setActiveViewID('');
}
/**
diff --git a/framework/Web/UI/WebControls/TBaseValidator.php b/framework/Web/UI/WebControls/TBaseValidator.php
index 194ddf50..074939c1 100644
--- a/framework/Web/UI/WebControls/TBaseValidator.php
+++ b/framework/Web/UI/WebControls/TBaseValidator.php
@@ -6,7 +6,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @version $Id: TBaseValidator.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TBaseValidator.php 3319 2013-09-08 20:59:44Z ctrlaltca $
* @package System.Web.UI.WebControls
*/
@@ -70,7 +70,7 @@ Prado::using('System.Web.UI.WebControls.TLabel');
* override the method {@link evaluateIsValid}.
*
* @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id: TBaseValidator.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TBaseValidator.php 3319 2013-09-08 20:59:44Z ctrlaltca $
* @package System.Web.UI.WebControls
* @since 3.0
*/
@@ -93,7 +93,7 @@ abstract class TBaseValidator extends TLabel implements IValidator
* them specially.
* @var array list of control class names
*/
- private static $_clientClass = array('THtmlArea', 'TDatePicker', 'TListBox', 'TCheckBoxList');
+ private static $_clientClass = array('THtmlArea', 'THtmlArea4', 'TDatePicker', 'TListBox', 'TCheckBoxList');
/**
* Constructor.
@@ -625,7 +625,7 @@ abstract class TBaseValidator extends TLabel implements IValidator
* See the quickstart documentation for further details.
*
* @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: TBaseValidator.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TBaseValidator.php 3319 2013-09-08 20:59:44Z ctrlaltca $
* @package System.Web.UI.WebControls
* @since 3.0
*/
@@ -715,7 +715,7 @@ class TValidatorClientSide extends TClientSideOptions
* - Fixed: Similar to Dynamic except that the error message physically occupies the page layout (even though it may not be visible)
*
* @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id: TBaseValidator.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TBaseValidator.php 3319 2013-09-08 20:59:44Z ctrlaltca $
* @package System.Web.UI.WebControls
* @since 3.0.4
*/
@@ -738,7 +738,7 @@ class TValidatorDisplayStyle extends TEnumerable
* - String
*
* @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id: TBaseValidator.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TBaseValidator.php 3319 2013-09-08 20:59:44Z ctrlaltca $
* @package System.Web.UI.WebControls
* @since 3.0.4
*/
diff --git a/framework/Web/UI/WebControls/TDatePicker.php b/framework/Web/UI/WebControls/TDatePicker.php
index f2448fcc..a67997b8 100644
--- a/framework/Web/UI/WebControls/TDatePicker.php
+++ b/framework/Web/UI/WebControls/TDatePicker.php
@@ -6,7 +6,7 @@
* @link http://www.pradosoft.com/
* @copyright Copyright &copy; 2005-2013 PradoSoft
* @license http://www.pradosoft.com/license/
- * @version $Id: TDatePicker.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TDatePicker.php 3318 2013-09-04 14:04:51Z ctrlaltca $
* @package System.Web.UI.WebControls
*/
@@ -73,7 +73,7 @@ Prado::using('System.Web.UI.WebControls.TTextBox');
*
* @author Wei Zhuo <weizhuo[at]gmail[dot]com>
* @author Carl G. Mathisen <carlgmathisen@gmail.com>
- * @version $Id: TDatePicker.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TDatePicker.php 3318 2013-09-04 14:04:51Z ctrlaltca $
* @package System.Web.UI.WebControls
* @since 3.0
*/
@@ -774,10 +774,10 @@ class TDatePicker extends TTextBox
$years[$i] = $i;
$writer->addAttribute('id', $this->getClientID().TControl::CLIENT_ID_SEPARATOR.'year');
$writer->addAttribute('name', $this->getUniqueID().TControl::ID_SEPARATOR.'year');
+ $writer->addAttribute('class', 'datepicker_year_options');
if($this->getReadOnly() || !$this->getEnabled(true))
$writer->addAttribute('disabled', 'disabled');
$writer->renderBeginTag('select');
- $writer->addAttribute('class', 'datepicker_year_options');
$this->renderDropDownListOptions($writer, $years, $selected);
$writer->renderEndTag();
}
@@ -906,7 +906,7 @@ class TDatePicker extends TTextBox
* as parameter to this event
*
* @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: TDatePicker.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TDatePicker.php 3318 2013-09-04 14:04:51Z ctrlaltca $
* @package System.Web.UI.WebControls
* @since 3.0.4
*/
@@ -940,7 +940,7 @@ class TDatePickerClientScript extends TClientSideOptions
* - DropDownList: dropdown lists are used to pick up date values
*
* @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id: TDatePicker.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TDatePicker.php 3318 2013-09-04 14:04:51Z ctrlaltca $
* @package System.Web.UI.WebControls
* @since 3.0.4
*/
@@ -962,7 +962,7 @@ class TDatePickerInputMode extends TEnumerable
* - ImageButton: Shows an image next to the text input, clicking on the image shows the date picker,
*
* @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id: TDatePicker.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @version $Id: TDatePicker.php 3318 2013-09-04 14:04:51Z ctrlaltca $
* @package System.Web.UI.WebControls
* @since 3.0.4
*/
diff --git a/framework/Web/UI/WebControls/THtmlArea4.php b/framework/Web/UI/WebControls/THtmlArea4.php
new file mode 100644
index 00000000..f98c2ddf
--- /dev/null
+++ b/framework/Web/UI/WebControls/THtmlArea4.php
@@ -0,0 +1,474 @@
+<?php
+/**
+ * THtmlArea4 class file.
+ *
+ * @author Fabio Bas <ctrlaltca[at]gmail[dot]com>
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005-2013 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @version $Id: THtmlArea4.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @package System.Web.UI.WebControls
+ */
+
+/**
+ * Includes TTextBox class
+ */
+Prado::using('System.Web.UI.WebControls.TTextBox');
+
+/**
+ * THtmlArea4 class
+ *
+ * THtmlArea4 wraps the visual editing functionalities provided by the
+ * version 4 of TinyMCE project {@link http://tinymce.com/}. It has been
+ * developed as a plug'n'play substitute for {@link THtmlArea}, that is
+ * based on the previous iteration (version 3) of the same project.
+ * Please note that both components can't be used together in the same page.
+ *
+ * THtmlArea displays a WYSIWYG text area on the Web page for user input
+ * in the HTML format. The text displayed in the THtmlArea component is
+ * specified or determined by using the <b>Text</b> property.
+ *
+ * To enable the visual editting on the client side, set the property
+ * <b>EnableVisualEdit</b> to true (which is default value).
+ * To set the size of the editor when the visual editting is enabled,
+ * set the <b>Width</b> and <b>Height</b> properties instead of
+ * <b>Columns</b> and <b>Rows</b> because the latter has no meaning
+ * under the situation.
+ *
+ * The default editor gives only the basic tool bar. To change or add
+ * additional tool bars, use the {@link setOptions Options} property to add additional
+ * editor options with each options on a new line.
+ * See http://www.tinymce.com/wiki.php/Configuration
+ * for a list of options. The options can be change/added as shown in the
+ * following example.
+ * <code>
+ * <com:THtmlArea>
+ * <prop:Options>
+ * language : "de"
+ * plugins: [ advlist anchor autolink autoresize autosave bbcode charmap code contextmenu directionality emoticons fullpage fullscreen hr image importcss insertdatetime layer legacyoutput link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor visualblocks visualchars wordcount ]
+ * toolbar: "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | print preview media",
+ * statusbar: false
+ * </prop:Options>
+ * </com:THtmlArea>
+ * </code>
+ *
+ * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
+ * @version $Id: THtmlArea.php 3245 2013-01-07 20:23:32Z ctrlaltca $
+ * @package System.Web.UI.WebControls
+ * @since 3.0
+ */
+class THtmlArea4 extends TTextBox
+{
+ /**
+ * @var array list of locale => language file pairs.
+ */
+ private static $_langs = array(
+ 'ar' => 'ar',
+ 'bg_BG' => 'bg_BG',
+ 'bs' => 'bs',
+ 'ca' => 'ca',
+ 'cs' => 'cs',
+ 'cy' => 'cy',
+ 'da' => 'da',
+ 'de' => 'de',
+ 'de_AT' => 'de_AT',
+ 'el' => 'el',
+ 'es' => 'es',
+ 'et' => 'et',
+ 'eu' => 'eu',
+ 'fa' => 'fa',
+ 'fi' => 'fi',
+ 'fo' => 'fo',
+ 'fr_FR' => 'fr_FR',
+ 'gl' => 'gl',
+ 'he_IL' => 'he_IL',
+ 'hr' => 'hr',
+ 'hu_HU' => 'hu_HU',
+ 'id' => 'id',
+ 'it' => 'it',
+ 'ja' => 'ja',
+ 'ka_GE' => 'ka_GE',
+ 'ko_KR' => 'ko_KR',
+ 'lb' => 'lb',
+ 'lt' => 'lt',
+ 'lv' => 'lv',
+ 'nb_NO' => 'nb_NO',
+ 'nl' => 'nl',
+ 'pl' => 'pl',
+ 'pt_BR' => 'pt_BR',
+ 'pt_PT' => 'pt_PT',
+ 'ro' => 'ro',
+ 'ru' => 'ru',
+ 'si_LK' => 'si_LK',
+ 'sk' => 'sk',
+ 'sl_SI' => 'sl_SI',
+ 'sr' => 'sr',
+ 'sv_SE' => 'sv_SE',
+ 'ta' => 'ta',
+ 'ta_IN' => 'ta_IN',
+ 'th_TH' => 'th_TH',
+ 'tr_TR' => 'tr_TR',
+ 'ug' => 'ug',
+ 'uk' => 'uk',
+ 'uk_UA' => 'uk_UA',
+ 'vi' => 'vi',
+ 'vi_VN' => 'vi_VN',
+ 'zh_CN' => 'zh_CN',
+ 'zh_TW' => 'zh_TW',
+ );
+
+ /**
+ * @var array list of default plugins to load, override using getAvailablePlugins();
+ */
+ private static $_plugins = array(
+ 'advlist',
+ 'anchor',
+ 'autolink',
+ 'autoresize',
+ 'autosave',
+ 'bbcode',
+ 'charmap',
+ 'code',
+ 'contextmenu',
+ 'directionality',
+ 'emoticons',
+ 'fullpage',
+ 'fullscreen',
+ 'hr',
+ 'image',
+ 'importcss',
+ 'insertdatetime',
+ 'layer',
+ 'legacyoutput',
+ 'link',
+ 'lists',
+ 'media',
+ 'nonbreaking',
+ 'noneditable',
+ 'pagebreak',
+ 'paste',
+ 'preview',
+ 'print',
+ 'save',
+ 'searchreplace',
+ 'spellchecker',
+ 'tabfocus',
+ 'table',
+ 'template',
+ 'textcolor',
+ 'visualblocks',
+ 'visualchars',
+ 'wordcount',
+ );
+
+ /**
+ * @var array default themes to load
+ */
+ private static $_themes = array(
+ 'modern',
+ );
+
+ /**
+ * Constructor.
+ * Sets default width and height.
+ */
+ public function __construct()
+ {
+ $this->setWidth('600px');
+ $this->setHeight('250px');
+ }
+
+ /**
+ * Overrides the parent implementation.
+ * TextMode for THtmlArea control is always 'MultiLine'
+ * @return string the behavior mode of the THtmlArea component.
+ */
+ public function getTextMode()
+ {
+ return 'MultiLine';
+ }
+
+ /**
+ * Overrides the parent implementation.
+ * TextMode for THtmlArea is always 'MultiLine' and cannot be changed to others.
+ * @param string the text mode
+ */
+ public function setTextMode($value)
+ {
+ throw new TInvalidOperationException("htmlarea_textmode_readonly");
+ }
+
+ /**
+ * @return boolean whether change of the content should cause postback. Return false if EnableVisualEdit is true.
+ */
+ public function getAutoPostBack()
+ {
+ return $this->getEnableVisualEdit() ? false : parent::getAutoPostBack();
+ }
+
+ /**
+ * @return boolean whether to show WYSIWYG text editor. Defaults to true.
+ */
+ public function getEnableVisualEdit()
+ {
+ return $this->getViewState('EnableVisualEdit',true);
+ }
+
+ /**
+ * Sets whether to show WYSIWYG text editor.
+ * @param boolean whether to show WYSIWYG text editor
+ */
+ public function setEnableVisualEdit($value)
+ {
+ $this->setViewState('EnableVisualEdit',TPropertyValue::ensureBoolean($value),true);
+ }
+
+ /**
+ * Gets the current culture.
+ * @return string current culture, e.g. de_AT.
+ */
+ public function getCulture()
+ {
+ return $this->getViewState('Culture', '');
+ }
+
+ /**
+ * Sets the culture/language for the html area
+ * @param string a culture string, e.g. de_AT.
+ */
+ public function setCulture($value)
+ {
+ $this->setViewState('Culture', $value, '');
+ }
+
+ /**
+ * Gets the list of options for the WYSIWYG (TinyMCE) editor
+ * @see http://www.tinymce.com/wiki.php/Configuration
+ * @return string options
+ */
+ public function getOptions()
+ {
+ return $this->getViewState('Options', '');
+ }
+
+ /**
+ * Sets the list of options for the WYSIWYG (TinyMCE) editor
+ * @see http://www.tinymce.com/wiki.php/Configuration
+ * @param string options
+ */
+ public function setOptions($value)
+ {
+ $this->setViewState('Options', $value, '');
+ }
+
+ /**
+ * @param string path to custom plugins to be copied.
+ */
+ public function setCustomPluginPath($value)
+ {
+ $this->setViewState('CustomPluginPath', $value);
+ }
+
+ /**
+ * @return string path to custom plugins to be copied.
+ */
+ public function getCustomPluginPath()
+ {
+ return $this->getViewState('CustomPluginPath');
+ }
+
+ /**
+ * @return boolean enable compression of the javascript files, default is true.
+ * @deprecated since 3.2.3: tinyMCE 4 doesn't support this anymore
+ */
+ public function getEnableCompression()
+ {
+ return $this->getViewState('EnableCompression', true);
+ }
+
+ /**
+ * @param boolean enable compression of the javascript files, default is true.
+ * @deprecated since 3.2.3: tinyMCE 4 doesn't support this anymore
+ */
+ public function setEnableCompression($value)
+ {
+ $this->setViewState('EnableCompression', TPropertyValue::ensureBoolean($value));
+ }
+
+ /**
+ * Adds attribute name-value pairs to renderer.
+ * This method overrides the parent implementation by registering
+ * additional javacript code.
+ * @param THtmlWriter the writer used for the rendering purpose
+ */
+ protected function addAttributesToRender($writer)
+ {
+ if($this->getEnableVisualEdit() && $this->getEnabled(true))
+ {
+ $writer->addAttribute('id',$this->getClientID());
+ $this->registerEditorClientScript($writer);
+ }
+
+ parent::addAttributesToRender($writer);
+ }
+
+ /**
+ * Returns a list of plugins to be loaded.
+ * Override this method to customize.
+ * @return array list of plugins to be loaded
+ */
+ public function getAvailablePlugins()
+ {
+ return self::$_plugins;
+ }
+
+ /**
+ * @return array list of available themese
+ */
+ public function getAvailableThemes()
+ {
+ return self::$_themes;
+ }
+
+ /**
+ * @deprecated since 3.2.3. tinyMCE4 doesn's use this anymore
+ */
+ protected function getCompressionOptions()
+ {
+ return array();
+ }
+
+ protected function loadJavascriptLibrary()
+ {
+ $scripts = $this->getPage()->getClientScript();
+ $scripts->registerPradoScript('htmlarea4');
+ $scripts->registerScriptFile('prado:THtmlArea4', $this->getScriptUrl());
+ }
+
+ /**
+ * Registers the editor javascript file and code to initialize the editor.
+ */
+ protected function registerEditorClientScript($writer)
+ {
+ $this->loadJavascriptLibrary();
+ $scripts = $this->getPage()->getClientScript();
+ $options = array(
+ 'EditorOptions' => $this->getEditorOptions()
+ );
+
+ $options = TJavaScript::encode($options,true,true);
+ $script = "new Prado.WebUI.THtmlArea4($options)";
+ $scripts->registerEndScript('prado:THtmlArea4'.$this->ClientID,$script);
+ }
+
+ /**
+ * @return string editor script URL.
+ */
+ protected function getScriptUrl()
+ {
+ return $this->getScriptDeploymentPath().'/tinymce.min.js';
+ }
+
+ /**
+ * Gets the editor script base URL by publishing the tarred source via TTarAssetManager.
+ * @return string URL base path to the published editor script
+ */
+ protected function getScriptDeploymentPath()
+ {
+ $basedir = Prado::getPathOfNamespace('System.Web.Javascripts.source.tinymce-405');
+ $url = $this->getApplication()->getAssetManager()->publishFilePath($basedir);
+ $this->copyCustomPlugins($url);
+ return $url;
+ }
+
+ protected function copyCustomPlugins($url)
+ {
+ if($plugins = $this->getCustomPluginPath())
+ {
+ $assets = $this->getApplication()->getAssetManager();
+ $path = is_dir($plugins) ? $plugins : Prado::getPathOfNameSpace($plugins);
+ $dest = $assets->getBasePath().'/'.basename($url).'/plugins/';
+ if(!is_dir($dest) || $this->getApplication()->getMode()!==TApplicationMode::Performance)
+ $assets->copyDirectory($path, $dest);
+ }
+ }
+
+ /**
+ * Default editor options gives basic tool bar only.
+ * @return array editor initialization options.
+ */
+ protected function getEditorOptions()
+ {
+ $options['mode'] = 'exact';
+ $options['elements'] = $this->getClientID();
+ $options['language'] = $this->getLanguageSuffix($this->getCulture());
+ //$options['theme'] = 'modern'; //default
+ // mimic previous (tinyMCE3) sizing behaviour
+ $options['width'] = $this->getWidth();
+ $options['height'] = $this->getHeight();
+ $options['resize'] = 'both';
+ $options['menubar'] = false;
+
+ $options['extended_valid_elements'] = 'a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]';
+
+ $options = array_merge($options, $this->parseEditorOptions($this->getOptions()));
+ return $options;
+ }
+
+ /**
+ * Parse additional options set in the Options property.
+ * @return array additional custom options
+ */
+ protected function parseEditorOptions($string)
+ {
+ $options = array();
+ $substrings = preg_split('/,\s*\n|\n/', trim($string));
+ foreach($substrings as $bits)
+ {
+ $option = explode(":",$bits,2);
+
+ if(count($option) == 2)
+ {
+ $value=trim(trim($option[1]),"'\"");
+ if (($s=strtolower($value))==='false')
+ $value=false;
+ elseif ($s==='true')
+ $value=true;
+ $options[trim($option[0])] = $value;
+ }
+ }
+ return $options;
+ }
+
+ /**
+ * @return string localized editor interface language extension.
+ */
+ protected function getLanguageSuffix($culture)
+ {
+ $app = $this->getApplication()->getGlobalization();
+ if(empty($culture) && ($app!==null))
+ $culture = $app->getCulture();
+ $variants = array();
+ if($app!==null)
+ $variants = $app->getCultureVariants($culture);
+
+ foreach($variants as $variant)
+ {
+ if(isset(self::$_langs[$variant]))
+ return self::$_langs[$variant];
+ }
+
+ return 'en';
+ }
+
+ /**
+ * Gets the name of the javascript class responsible for performing postback for this control.
+ * This method overrides the parent implementation.
+ * @return string the javascript class name
+ */
+ protected function getClientClassName()
+ {
+ return 'Prado.WebUI.THtmlArea4';
+ }
+}
+
diff --git a/framework/prado-cli b/framework/prado-cli
deleted file mode 100755
index 0d504299..00000000
--- a/framework/prado-cli
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env php
-<?php
-//execute the command line tool
-include(dirname(__FILE__).'/prado-cli.php');
diff --git a/framework/prado-cli.bat b/framework/prado-cli.bat
deleted file mode 100644
index 38d02850..00000000
--- a/framework/prado-cli.bat
+++ /dev/null
@@ -1,39 +0,0 @@
-@echo off
-
-rem *************************************************************
-rem ** CLI for Windows based systems (based on phing.bat)
-rem *************************************************************
-
-rem This script will do the following:
-rem - check for PHP_COMMAND env, if found, use it.
-rem - if not found detect php, if found use it, otherwise err and terminate
-
-if "%OS%"=="Windows_NT" @setlocal
-
-rem %~dp0 is expanded pathname of the current script under NT
-set PRADO_DIR=%~dp0
-
-goto init
-
-:init
-
-if "%PHP_COMMAND%" == "" goto no_phpcommand
-
-IF EXIST ".\prado-cli.php" (
- %PHP_COMMAND% -d html_errors=off -d open_basedir= -q ".\prado-cli.php" %1 %2 %3 %4 %5 %6 %7 %8 %9
-) ELSE (
- %PHP_COMMAND% -d html_errors=off -d open_basedir= -q "%PRADO_DIR%\prado-cli.php" %1 %2 %3 %4 %5 %6 %7 %8 %9
-)
-goto cleanup
-
-:no_phpcommand
-rem echo ------------------------------------------------------------------------
-rem echo WARNING: Set environment var PHP_COMMAND to the location of your php.exe
-rem echo executable (e.g. C:\PHP\php.exe). (assuming php.exe on PATH)
-rem echo ------------------------------------------------------------------------
-set PHP_COMMAND=php.exe
-goto init
-
-:cleanup
-if "%OS%"=="Windows_NT" @endlocal
-rem pause
diff --git a/framework/prado-cli.php b/framework/prado-cli.php
deleted file mode 100755
index 3222f6f2..00000000
--- a/framework/prado-cli.php
+++ /dev/null
@@ -1,881 +0,0 @@
-<?php
-
-/**
- * Prado command line developer tools.
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @link http://www.pradosoft.com/
- * @copyright Copyright &copy; 2005-2013 PradoSoft
- * @license http://www.pradosoft.com/license/
- * @version $Id: prado-cli.php 3245 2013-01-07 20:23:32Z ctrlaltca $
- */
-
-if(!isset($_SERVER['argv']) || php_sapi_name()!=='cli')
- die('Must be run from the command line');
-
-require_once(dirname(__FILE__).'/prado.php');
-
-//stub application class
-class PradoShellApplication extends TApplication
-{
- public function run()
- {
- $this->initApplication();
- }
-}
-
-restore_exception_handler();
-
-//config PHP shell
-if(count($_SERVER['argv']) > 1 && strtolower($_SERVER['argv'][1])==='shell')
-{
- function __shell_print_var($shell,$var)
- {
- if(!$shell->has_semicolon) echo Prado::varDump($var);
- }
- include_once(dirname(__FILE__).'/3rdParty/PhpShell/php-shell-init.php');
-}
-
-
-//register action classes
-PradoCommandLineInterpreter::getInstance()->addActionClass('PradoCommandLineCreateProject');
-PradoCommandLineInterpreter::getInstance()->addActionClass('PradoCommandLineCreateTests');
-PradoCommandLineInterpreter::getInstance()->addActionClass('PradoCommandLinePhpShell');
-PradoCommandLineInterpreter::getInstance()->addActionClass('PradoCommandLineUnitTest');
-PradoCommandLineInterpreter::getInstance()->addActionClass('PradoCommandLineActiveRecordGen');
-PradoCommandLineInterpreter::getInstance()->addActionClass('PradoCommandLineActiveRecordGenAll');
-
-//run it;
-PradoCommandLineInterpreter::getInstance()->run($_SERVER['argv']);
-
-/**************** END CONFIGURATION **********************/
-
-/**
- * PradoCommandLineInterpreter Class
- *
- * Command line interface, configures the action classes and dispatches the command actions.
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: prado-cli.php 3245 2013-01-07 20:23:32Z ctrlaltca $
- * @since 3.0.5
- */
-class PradoCommandLineInterpreter
-{
- /**
- * @var array command action classes
- */
- protected $_actions=array();
-
- /**
- * @param string action class name
- */
- public function addActionClass($class)
- {
- $this->_actions[$class] = new $class;
- }
-
- /**
- * @return PradoCommandLineInterpreter static instance
- */
- public static function getInstance()
- {
- static $instance;
- if($instance === null)
- $instance = new self;
- return $instance;
- }
-
- public static function printGreeting()
- {
- echo "Command line tools for Prado ".Prado::getVersion().".\n";
- }
-
- /**
- * Dispatch the command line actions.
- * @param array command line arguments
- */
- public function run($args)
- {
- if(count($args) > 1)
- array_shift($args);
- $valid = false;
- foreach($this->_actions as $class => $action)
- {
- if($action->isValidAction($args))
- {
- $valid |= $action->performAction($args);
- break;
- }
- else
- {
- $valid = false;
- }
- }
- if(!$valid)
- $this->printHelp();
- }
-
- /**
- * Print command line help, default action.
- */
- public function printHelp()
- {
- PradoCommandLineInterpreter::printGreeting();
-
- echo "usage: php prado-cli.php action <parameter> [optional]\n";
- echo "example: php prado-cli.php -c mysite\n\n";
- echo "actions:\n";
- foreach($this->_actions as $action)
- echo $action->renderHelp();
- }
-}
-
-/**
- * Base class for command line actions.
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: prado-cli.php 3245 2013-01-07 20:23:32Z ctrlaltca $
- * @since 3.0.5
- */
-abstract class PradoCommandLineAction
-{
- /**
- * Execute the action.
- * @param array command line parameters
- * @return boolean true if action was handled
- */
- public abstract function performAction($args);
-
- protected function createDirectory($dir, $mask)
- {
- if(!is_dir($dir))
- {
- mkdir($dir);
- echo "creating $dir\n";
- }
- if(is_dir($dir))
- chmod($dir, $mask);
- }
-
- protected function createFile($filename, $content)
- {
- if(!is_file($filename))
- {
- file_put_contents($filename, $content);
- echo "creating $filename\n";
- }
- }
-
- public function isValidAction($args)
- {
- return strtolower($args[0]) === $this->action &&
- count($args)-1 >= count($this->parameters);
- }
-
- public function renderHelp()
- {
- $params = array();
- foreach($this->parameters as $v)
- $params[] = '<'.$v.'>';
- $parameters = join($params, ' ');
- $options = array();
- foreach($this->optional as $v)
- $options[] = '['.$v.']';
- $optional = (strlen($parameters) ? ' ' : ''). join($options, ' ');
- $description='';
- foreach(explode("\n", wordwrap($this->description,65)) as $line)
- $description .= ' '.$line."\n";
- return <<<EOD
- {$this->action} {$parameters}{$optional}
-{$description}
-
-EOD;
- }
-
- protected function initializePradoApplication($directory)
- {
- $app_dir = realpath($directory.'/protected/');
- if($app_dir !== false && is_dir($app_dir))
- {
- if(Prado::getApplication()===null)
- {
- $app = new PradoShellApplication($app_dir);
- $app->run();
- $dir = substr(str_replace(realpath('./'),'',$app_dir),1);
- $initialized=true;
- PradoCommandLineInterpreter::printGreeting();
- echo '** Loaded PRADO appplication in directory "'.$dir."\".\n";
- }
-
- return Prado::getApplication();
- }
- else
- {
- PradoCommandLineInterpreter::printGreeting();
- echo '+'.str_repeat('-',77)."+\n";
- echo '** Unable to load PRADO application in directory "'.$directory."\".\n";
- echo '+'.str_repeat('-',77)."+\n";
- }
- return false;
- }
-
-}
-
-/**
- * Create a Prado project skeleton, including directories and files.
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: prado-cli.php 3245 2013-01-07 20:23:32Z ctrlaltca $
- * @since 3.0.5
- */
-class PradoCommandLineCreateProject extends PradoCommandLineAction
-{
- protected $action = '-c';
- protected $parameters = array('directory');
- protected $optional = array();
- protected $description = 'Creates a Prado project skeleton for the given <directory>.';
-
- public function performAction($args)
- {
- PradoCommandLineInterpreter::printGreeting();
- $this->createNewPradoProject($args[1]);
- return true;
- }
-
- /**
- * Functions to create new prado project.
- */
- protected function createNewPradoProject($dir)
- {
- if(strlen(trim($dir)) == 0)
- return;
-
- $rootPath = realpath(dirname(trim($dir)));
-
- if(basename($dir)!=='.')
- $basePath = $rootPath.DIRECTORY_SEPARATOR.basename($dir);
- else
- $basePath = $rootPath;
- $appName = basename($basePath);
- $assetPath = $basePath.DIRECTORY_SEPARATOR.'assets';
- $protectedPath = $basePath.DIRECTORY_SEPARATOR.'protected';
- $runtimePath = $basePath.DIRECTORY_SEPARATOR.'protected'.DIRECTORY_SEPARATOR.'runtime';
- $pagesPath = $protectedPath.DIRECTORY_SEPARATOR.'pages';
-
- $indexFile = $basePath.DIRECTORY_SEPARATOR.'index.php';
- $htaccessFile = $protectedPath.DIRECTORY_SEPARATOR.'.htaccess';
- $configFile = $protectedPath.DIRECTORY_SEPARATOR.'application.xml';
- $defaultPageFile = $pagesPath.DIRECTORY_SEPARATOR.'Home.page';
-
- $this->createDirectory($basePath, 0755);
- $this->createDirectory($assetPath,0777);
- $this->createDirectory($protectedPath,0755);
- $this->createDirectory($runtimePath,0777);
- $this->createDirectory($pagesPath,0755);
-
- $this->createFile($indexFile, $this->renderIndexFile());
- $this->createFile($configFile, $this->renderConfigFile($appName));
- $this->createFile($htaccessFile, $this->renderHtaccessFile());
- $this->createFile($defaultPageFile, $this->renderDefaultPage());
- }
-
- protected function renderIndexFile()
- {
- $framework = realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR.'prado.php';
-return '<?php
-
-$frameworkPath=\''.$framework.'\';
-
-// The following directory checks may be removed if performance is required
-$basePath=dirname(__FILE__);
-$assetsPath=$basePath.\'/assets\';
-$runtimePath=$basePath.\'/protected/runtime\';
-
-if(!is_file($frameworkPath))
- die("Unable to find prado framework path $frameworkPath.");
-if(!is_writable($assetsPath))
- die("Please make sure that the directory $assetsPath is writable by Web server process.");
-if(!is_writable($runtimePath))
- die("Please make sure that the directory $runtimePath is writable by Web server process.");
-
-
-require_once($frameworkPath);
-
-$application=new TApplication;
-$application->run();
-
-?>';
- }
-
- protected function renderConfigFile($appName)
- {
- return <<<EOD
-<?xml version="1.0" encoding="utf-8"?>
-
-<application id="$appName" mode="Debug">
- <!-- alias definitions and namespace usings
- <paths>
- <alias id="myalias" path="./lib" />
- <using namespace="Application.common.*" />
- </paths>
- -->
-
- <!-- configurations for modules -->
- <modules>
- <!-- Remove this comment mark to enable caching
- <module id="cache" class="System.Caching.TDbCache" />
- -->
-
- <!-- Remove this comment mark to enable PATH url format
- <module id="request" class="THttpRequest" UrlFormat="Path" />
- -->
-
- <!-- Remove this comment mark to enable logging
- <module id="log" class="System.Util.TLogRouter">
- <route class="TBrowserLogRoute" Categories="System" />
- </module>
- -->
- </modules>
-
- <!-- configuration for available services -->
- <services>
- <service id="page" class="TPageService" DefaultPage="Home" />
- </services>
-
- <!-- application parameters
- <parameters>
- <parameter id="param1" value="value1" />
- <parameter id="param2" value="value2" />
- </parameters>
- -->
-</application>
-EOD;
- }
-
- protected function renderHtaccessFile()
- {
- return 'deny from all';
- }
-
-
- protected function renderDefaultPage()
- {
-return <<<EOD
-<html>
-<head>
- <title>Welcome to PRADO</title>
-</head>
-<body>
-<h1>Welcome to PRADO!</h1>
-</body>
-</html>
-EOD;
- }
-}
-
-/**
- * Creates test fixtures for a Prado application.
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: prado-cli.php 3245 2013-01-07 20:23:32Z ctrlaltca $
- * @since 3.0.5
- */
-class PradoCommandLineCreateTests extends PradoCommandLineAction
-{
- protected $action = '-t';
- protected $parameters = array('directory');
- protected $optional = array();
- protected $description = 'Create test fixtures in the given <directory>.';
-
- public function performAction($args)
- {
- PradoCommandLineInterpreter::printGreeting();
- $this->createTestFixtures($args[1]);
- return true;
- }
-
- protected function createTestFixtures($dir)
- {
- if(strlen(trim($dir)) == 0)
- return;
-
- $rootPath = realpath(dirname(trim($dir)));
- $basePath = $rootPath.'/'.basename($dir);
-
- $tests = $basePath.'/tests';
- $unit_tests = $tests.'/unit';
- $functional_tests = $tests.'/functional';
-
- $this->createDirectory($tests,0755);
- $this->createDirectory($unit_tests,0755);
- $this->createDirectory($functional_tests,0755);
-
- $unit_test_index = $tests.'/unit.php';
- $functional_test_index = $tests.'/functional.php';
-
- $this->createFile($unit_test_index, $this->renderUnitTestFixture());
- $this->createFile($functional_test_index, $this->renderFunctionalTestFixture());
- }
-
- protected function renderUnitTestFixture()
- {
- $tester = realpath(dirname(__FILE__).'/../tests/test_tools/unit_tests.php');
-return '<?php
-
-include_once \''.$tester.'\';
-
-$app_directory = "../protected";
-$test_cases = dirname(__FILE__)."/unit";
-
-$tester = new PradoUnitTester($test_cases, $app_directory);
-$tester->run(new HtmlReporter());
-
-?>';
- }
-
- protected function renderFunctionalTestFixture()
- {
- $tester = realpath(dirname(__FILE__).'/../tests/test_tools/functional_tests.php');
-return '<?php
-
-include_once \''.$tester.'\';
-
-$test_cases = dirname(__FILE__)."/functional";
-
-$tester=new PradoFunctionalTester($test_cases);
-$tester->run(new SimpleReporter());
-
-?>';
- }
-
-}
-
-/**
- * Creates and run a Prado application in a PHP Shell.
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: prado-cli.php 3245 2013-01-07 20:23:32Z ctrlaltca $
- * @since 3.0.5
- */
-class PradoCommandLinePhpShell extends PradoCommandLineAction
-{
- protected $action = 'shell';
- protected $parameters = array();
- protected $optional = array('directory');
- protected $description = 'Runs a PHP interactive interpreter. Initializes the Prado application in the given [directory].';
-
- public function performAction($args)
- {
- if(count($args) > 1)
- $app = $this->initializePradoApplication($args[1]);
- return true;
- }
-}
-
-/**
- * Runs unit test cases.
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: prado-cli.php 3245 2013-01-07 20:23:32Z ctrlaltca $
- * @since 3.0.5
- */
-class PradoCommandLineUnitTest extends PradoCommandLineAction
-{
- protected $action = 'test';
- protected $parameters = array('directory');
- protected $optional = array('testcase ...');
- protected $description = 'Runs all unit test cases in the given <directory>. Use [testcase] option to run specific test cases.';
-
- protected $matches = array();
-
- public function performAction($args)
- {
- $dir = realpath($args[1]);
- if($dir !== false && is_dir($dir))
- $this->runUnitTests($dir,$args);
- else
- echo '** Unable to find directory "'.$args[1]."\".\n";
- return true;
- }
-
- protected function initializeTestRunner()
- {
- $TEST_TOOLS = realpath(dirname(__FILE__).'/../tests/test_tools/');
-
- require_once($TEST_TOOLS.'/simpletest/unit_tester.php');
- require_once($TEST_TOOLS.'/simpletest/web_tester.php');
- require_once($TEST_TOOLS.'/simpletest/mock_objects.php');
- require_once($TEST_TOOLS.'/simpletest/reporter.php');
- }
-
- protected function runUnitTests($dir, $args)
- {
- $app_dir = $this->getAppDir($dir);
- if($app_dir !== false)
- $this->initializePradoApplication($app_dir.'/../');
-
- $this->initializeTestRunner();
- $test_dir = $this->getTestDir($dir);
- if($test_dir !== false)
- {
- $test =$this->getUnitTestCases($test_dir,$args);
- $running_dir = substr(str_replace(realpath('./'),'',$test_dir),1);
- echo 'Running unit tests in directory "'.$running_dir."\":\n";
- $test->run(new TextReporter());
- }
- else
- {
- $running_dir = substr(str_replace(realpath('./'),'',$dir),1);
- echo '** Unable to find test directory "'.$running_dir.'/unit" or "'.$running_dir.'/tests/unit".'."\n";
- }
- }
-
- protected function getAppDir($dir)
- {
- $app_dir = realpath($dir.'/protected');
- if($app_dir !== false && is_dir($app_dir))
- return $app_dir;
- return realpath($dir.'/../protected');
- }
-
- protected function getTestDir($dir)
- {
- $test_dir = realpath($dir.'/unit');
- if($test_dir !== false && is_dir($test_dir))
- return $test_dir;
- return realpath($dir.'/tests/unit/');
- }
-
- protected function getUnitTestCases($dir,$args)
- {
- $matches = null;
- if(count($args) > 2)
- $matches = array_slice($args,2);
- $test=new GroupTest(' ');
- $this->addTests($test,$dir,true,$matches);
- $test->setLabel(implode(' ',$this->matches));
- return $test;
- }
-
- protected function addTests($test,$path,$recursive=true,$match=null)
- {
- $dir=opendir($path);
- while(($entry=readdir($dir))!==false)
- {
- if(is_file($path.'/'.$entry) && (preg_match('/[^\s]*test[^\s]*\.php/', strtolower($entry))))
- {
- if($match==null||($match!=null && $this->hasMatch($match,$entry)))
- $test->addTestFile($path.'/'.$entry);
- }
- if($entry!=='.' && $entry!=='..' && $entry!=='.svn' && is_dir($path.'/'.$entry) && $recursive)
- $this->addTests($test,$path.'/'.$entry,$recursive,$match);
- }
- closedir($dir);
- }
-
- protected function hasMatch($match,$entry)
- {
- $file = strtolower(substr($entry,0,strrpos($entry,'.')));
- foreach($match as $m)
- {
- if(strtolower($m) === $file)
- {
- $this->matches[] = $m;
- return true;
- }
- }
- return false;
- }
-}
-
-/**
- * Create active record skeleton
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: prado-cli.php 3245 2013-01-07 20:23:32Z ctrlaltca $
- * @since 3.1
- */
-class PradoCommandLineActiveRecordGen extends PradoCommandLineAction
-{
- protected $action = 'generate';
- protected $parameters = array('table', 'output');
- protected $optional = array('directory', 'soap');
- protected $description = 'Generate Active Record skeleton for <table> to <output> file using application.xml in [directory]. May also generate [soap] properties.';
- private $_soap=false;
-
- public function performAction($args)
- {
- $app_dir = count($args) > 3 ? $this->getAppDir($args[3]) : $this->getAppDir();
- $this->_soap = count($args) > 4;
- if($app_dir !== false)
- {
- $config = $this->getActiveRecordConfig($app_dir);
- $output = $this->getOutputFile($app_dir, $args[2]);
- if(is_file($output))
- echo "** File $output already exists, skiping. \n";
- else if($config !== false && $output !== false)
- $this->generateActiveRecord($config, $args[1], $output);
- }
- return true;
- }
-
- protected function getAppDir($dir=".")
- {
- if(is_dir($dir))
- return realpath($dir);
- if(false !== ($app_dir = realpath($dir.'/protected/')) && is_dir($app_dir))
- return $app_dir;
- echo '** Unable to find directory "'.$dir."\".\n";
- return false;
- }
-
- protected function getXmlFile($app_dir)
- {
- if(false !== ($xml = realpath($app_dir.'/application.xml')) && is_file($xml))
- return $xml;
- if(false !== ($xml = realpath($app_dir.'/protected/application.xml')) && is_file($xml))
- return $xml;
- echo '** Unable to find application.xml in '.$app_dir."\n";
- return false;
- }
-
- protected function getActiveRecordConfig($app_dir)
- {
- if(false === ($xml=$this->getXmlFile($app_dir)))
- return false;
- if(false !== ($app=$this->initializePradoApplication($app_dir)))
- {
- Prado::using('System.Data.ActiveRecord.TActiveRecordConfig');
- foreach($app->getModules() as $module)
- if($module instanceof TActiveRecordConfig)
- return $module;
- echo '** Unable to find TActiveRecordConfig module in '.$xml."\n";
- }
- return false;
- }
-
- protected function getOutputFile($app_dir, $namespace)
- {
- if(is_file($namespace) && strpos($namespace, $app_dir)===0)
- return $namespace;
- $file = Prado::getPathOfNamespace($namespace, ".php");
- if($file !== null && false !== ($path = realpath(dirname($file))) && is_dir($path))
- {
- if(strpos($path, $app_dir)===0)
- return $file;
- }
- echo '** Output file '.$file.' must be within directory '.$app_dir."\n";
- return false;
- }
-
- protected function generateActiveRecord($config, $tablename, $output)
- {
- $manager = TActiveRecordManager::getInstance();
- if($connection = $manager->getDbConnection()) {
- $gateway = $manager->getRecordGateway();
- $tableInfo = $gateway->getTableInfo($manager->getDbConnection(), $tablename);
- if(count($tableInfo->getColumns()) === 0)
- {
- echo '** Unable to find table or view "'.$tablename.'" in "'.$manager->getDbConnection()->getConnectionString()."\".\n";
- return false;
- }
- else
- {
- $properties = array();
- foreach($tableInfo->getColumns() as $field=>$column)
- $properties[] = $this->generateProperty($field,$column);
- }
-
- $classname = basename($output, '.php');
- $class = $this->generateClass($properties, $tablename, $classname);
- echo " Writing class $classname to file $output\n";
- file_put_contents($output, $class);
- } else {
- echo '** Unable to connect to database with ConnectionID=\''.$config->getConnectionID()."'. Please check your settings in application.xml and ensure your database connection is set up first.\n";
- }
- }
-
- protected function generateProperty($field,$column)
- {
- $prop = '';
- $name = '$'.$field;
- $type = $column->getPHPType();
- if($this->_soap)
- {
- $prop .= <<<EOD
-
- /**
- * @var $type $name
- * @soapproperty
- */
-
-EOD;
- }
- $prop .= "\tpublic $name;";
- return $prop;
- }
-
- protected function generateClass($properties, $tablename, $class)
- {
- $props = implode("\n", $properties);
- $date = date('Y-m-d h:i:s');
-return <<<EOD
-<?php
-/**
- * Auto generated by prado-cli.php on $date.
- */
-class $class extends TActiveRecord
-{
- const TABLE='$tablename';
-
-$props
-
- public static function finder(\$className=__CLASS__)
- {
- return parent::finder(\$className);
- }
-}
-?>
-EOD;
- }
-}
-
-/**
- * Create active record skeleton for all tables in DB and its relations
- *
- * @author Matthias Endres <me[at]me23[dot]de>
- * @author Daniel Sampedro Bello <darthdaniel85[at]gmail[dot]com>
- * @version $Id: prado-cli.php 3245 2013-01-07 20:23:32Z ctrlaltca $
- * @since 3.2
- */
-class PradoCommandLineActiveRecordGenAll extends PradoCommandLineAction {
-
- protected $action = 'generateAll';
- protected $parameters = array('output');
- protected $optional = array('directory', 'soap', 'overwrite', 'prefix', 'postfix');
- protected $description = "Generate Active Record skeleton for all Tables to <output> file using application.xml in [directory]. May also generate [soap] properties.\nGenerated Classes are named like the Table with optional [Prefix] and/or [Postfix]. [Overwrite] is used to overwrite existing Files.";
- private $_soap = false;
- private $_prefix = '';
- private $_postfix = '';
- private $_overwrite = false;
-
- public function performAction($args) {
- $app_dir = count($args) > 2 ? $this->getAppDir($args[2]) : $this->getAppDir();
- $this->_soap = count($args) > 3 ? ($args[3] == "soap" || $args[3] == "true" ? true : false) : false;
- $this->_overwrite = count($args) > 4 ? ($args[4] == "overwrite" || $args[4] == "true" ? true : false) : false;
- $this->_prefix = count($args) > 5 ? $args[5] : '';
- $this->_postfix = count($args) > 6 ? $args[6] : '';
-
- if ($app_dir !== false) {
- $config = $this->getActiveRecordConfig($app_dir);
-
- $manager = TActiveRecordManager::getInstance();
- $con = $manager->getDbConnection();
- $con->Active = true;
- $command = $con->createCommand("Show Tables");
- $dataReader = $command->query();
- $dataReader->bindColumn(1, $table);
- $generator = new PHP_Shell_Extensions_ActiveRecord();
- $tables = array();
- while ($dataReader->read() !== false) {
- $tables[] = $table;
- }
- $con->Active = False;
- foreach ($tables as $key => $table) {
- $output = $args[1] . "." . $this->_prefix . ucfirst($table) . $this->_postfix;
- if ($config !== false && $output !== false) {
- $generator->generate("generate " . $table . " " . $output . " " . $this->_soap . " " . $this->_overwrite);
- }
- }
- }
- return true;
- }
-
- protected function getAppDir($dir=".") {
- if (is_dir($dir))
- return realpath($dir);
- if (false !== ($app_dir = realpath($dir . '/protected/')) && is_dir($app_dir))
- return $app_dir;
- echo '** Unable to find directory "' . $dir . "\".\n";
- return false;
- }
-
- protected function getXmlFile($app_dir) {
- if (false !== ($xml = realpath($app_dir . '/application.xml')) && is_file($xml))
- return $xml;
- if (false !== ($xml = realpath($app_dir . '/protected/application.xml')) && is_file($xml))
- return $xml;
- echo '** Unable to find application.xml in ' . $app_dir . "\n";
- return false;
- }
-
- protected function getActiveRecordConfig($app_dir) {
- if (false === ($xml = $this->getXmlFile($app_dir)))
- return false;
- if (false !== ($app = $this->initializePradoApplication($app_dir))) {
- Prado::using('System.Data.ActiveRecord.TActiveRecordConfig');
- foreach ($app->getModules() as $module)
- if ($module instanceof TActiveRecordConfig)
- return $module;
- echo '** Unable to find TActiveRecordConfig module in ' . $xml . "\n";
- }
- return false;
- }
-
- protected function getOutputFile($app_dir, $namespace) {
- if (is_file($namespace) && strpos($namespace, $app_dir) === 0)
- return $namespace;
- $file = Prado::getPathOfNamespace($namespace, "");
- if ($file !== null && false !== ($path = realpath(dirname($file))) && is_dir($path)) {
- if (strpos($path, $app_dir) === 0)
- return $file;
- }
- echo '** Output file ' . $file . ' must be within directory ' . $app_dir . "\n";
- return false;
- }
-
-}
-
-//run PHP shell
-if(class_exists('PHP_Shell_Commands', false))
-{
- class PHP_Shell_Extensions_ActiveRecord implements PHP_Shell_Extension {
- public function register()
- {
-
- $cmd = PHP_Shell_Commands::getInstance();
- if(Prado::getApplication() !== null)
- {
- $cmd->registerCommand('#^generate#', $this, 'generate', 'generate <table> <output> [soap]',
- 'Generate Active Record skeleton for <table> to <output> file using'.PHP_EOL.
- ' application.xml in [directory]. May also generate [soap] properties.');
- }
- }
-
- public function generate($l)
- {
- $input = explode(" ", trim($l));
- if(count($input) > 2)
- {
- $app_dir = '.';
- if(Prado::getApplication()!==null)
- $app_dir = dirname(Prado::getApplication()->getBasePath());
- $args = array($input[0],$input[1], $input[2],$app_dir);
- if(count($input)>3)
- $args = array($input[0],$input[1], $input[2],$app_dir,'soap');
- $cmd = new PradoCommandLineActiveRecordGen;
- $cmd->performAction($args);
- }
- else
- {
- echo "\n Usage: generate table_name Application.pages.RecordClassName\n";
- }
- }
- }
-
- $__shell_exts = PHP_Shell_Extensions::getInstance();
- $__shell_exts->registerExtensions(array(
- "active-record" => new PHP_Shell_Extensions_ActiveRecord)); /* the :set command */
-
- include_once(dirname(__FILE__).'/3rdParty/PhpShell/php-shell-cmd.php');
-}
diff --git a/framework/pradolite.php b/framework/pradolite.php
index 6fb4c9d6..1e117149 100644
--- a/framework/pradolite.php
+++ b/framework/pradolite.php
@@ -1,7 +1,7 @@
<?php
/**
* File Name: pradolite.php
- * Last Update: 2013/07/24 12:18:57
+ * Last Update: 2012/11/26 11:38:32
* Generated By: buildscripts/phpbuilder/build.php
*
* This file is used in lieu of prado.php to boost PRADO application performance.
@@ -25,7 +25,7 @@ class PradoBase
protected static $classExists = array();
public static function getVersion()
{
- return '3.2.1';
+ return '3.2.0';
}
public static function initErrorHandlers()
{
@@ -34,10 +34,9 @@ class PradoBase
}
public static function autoload($className)
{
- if ((@include($className.self::CLASS_FILE_EXT)) !== false) {
- return true;
- }
- return false;
+ include_once($className.self::CLASS_FILE_EXT);
+ if(!class_exists($className,false) && !interface_exists($className,false))
+ self::fatalError("Class file for '$className' cannot be found.");
}
public static function poweredByPrado($logoType=0)
{
@@ -1249,6 +1248,377 @@ class TTextWriter extends TComponent implements ITextWriter
$this->write($str."\n");
}
}
+class TPriorityList extends TList
+{
+ private $_d=array();
+ private $_o=false;
+ private $_fd=null;
+ private $_c=0;
+ private $_dp=10;
+ private $_p=8;
+ public function __construct($data=null,$readOnly=false,$defaultPriority=10,$precision=8)
+ {
+ parent::__construct();
+ if($data!==null)
+ $this->copyFrom($data);
+ $this->setReadOnly($readOnly);
+ $this->setPrecision($precision);
+ $this->setDefaultPriority($defaultPriority);
+ }
+ public function count()
+ {
+ return $this->getCount();
+ }
+ public function getCount()
+ {
+ return $this->_c;
+ }
+ public function getPriorityCount($priority=null)
+ {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ if(!isset($this->_d[$priority]) || !is_array($this->_d[$priority]))
+ return false;
+ return count($this->_d[$priority]);
+ }
+ public function getDefaultPriority()
+ {
+ return $this->_dp;
+ }
+ protected function setDefaultPriority($value)
+ {
+ $this->_dp=(string)round(TPropertyValue::ensureFloat($value),$this->_p);
+ }
+ public function getPrecision()
+ {
+ return $this->_p;
+ }
+ protected function setPrecision($value)
+ {
+ $this->_p=TPropertyValue::ensureInteger($value);
+ }
+ public function getIterator()
+ {
+ return new ArrayIterator($this->flattenPriorities());
+ }
+ public function getPriorities()
+ {
+ $this->sortPriorities();
+ return array_keys($this->_d);
+ }
+ protected function sortPriorities() {
+ if(!$this->_o) {
+ ksort($this->_d,SORT_NUMERIC);
+ $this->_o=true;
+ }
+ }
+ protected function flattenPriorities() {
+ if(is_array($this->_fd))
+ return $this->_fd;
+ $this->sortPriorities();
+ $this->_fd=array();
+ foreach($this->_d as $priority => $itemsatpriority)
+ $this->_fd=array_merge($this->_fd,$itemsatpriority);
+ return $this->_fd;
+ }
+ public function itemAt($index)
+ {
+ if($index>=0&&$index<$this->getCount()) {
+ $arr=$this->flattenPriorities();
+ return $arr[$index];
+ } else
+ throw new TInvalidDataValueException('list_index_invalid',$index);
+ }
+ public function itemsAtPriority($priority=null)
+ {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ return isset($this->_d[$priority])?$this->_d[$priority]:null;
+ }
+ public function itemAtIndexInPriority($index,$priority=null)
+ {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority), $this->_p);
+ return !isset($this->_d[$priority])?false:(
+ isset($this->_d[$priority][$index])?$this->_d[$priority][$index]:false
+ );
+ }
+ public function add($item,$priority=null)
+ {
+ if($this->getReadOnly())
+ throw new TInvalidOperationException('list_readonly',get_class($this));
+ return $this->insertAtIndexInPriority($item,false,$priority,true);
+ }
+ public function insertAt($index,$item)
+ {
+ if($this->getReadOnly())
+ throw new TInvalidOperationException('list_readonly',get_class($this));
+ if(($priority=$this->priorityAt($index,true))!==false)
+ $this->insertAtIndexInPriority($item,$priority[1],$priority[0]);
+ else
+ throw new TInvalidDataValueException('list_index_invalid',$index);
+ }
+ public function insertAtIndexInPriority($item,$index=false,$priority=null,$preserveCache=false)
+ {
+ if($this->getReadOnly())
+ throw new TInvalidOperationException('list_readonly',get_class($this));
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority), $this->_p);
+ if($preserveCache) {
+ $this->sortPriorities();
+ $cc=0;
+ foreach($this->_d as $prioritykey=>$items)
+ if($prioritykey>=$priority)
+ break;
+ else
+ $cc+=count($items);
+ if($index===false&&isset($this->_d[$priority])) {
+ $c=count($this->_d[$priority]);
+ $c+=$cc;
+ $this->_d[$priority][]=$item;
+ } else if(isset($this->_d[$priority])) {
+ $c=$index+$cc;
+ array_splice($this->_d[$priority],$index,0,array($item));
+ } else {
+ $c = $cc;
+ $this->_o = false;
+ $this->_d[$priority]=array($item);
+ }
+ if($this->_fd&&is_array($this->_fd)) array_splice($this->_fd,$c,0,array($item));
+ } else {
+ $c=null;
+ if($index===false&&isset($this->_d[$priority])) {
+ $cc=count($this->_d[$priority]);
+ $this->_d[$priority][]=$item;
+ } else if(isset($this->_d[$priority])) {
+ $cc=$index;
+ array_splice($this->_d[$priority],$index,0,array($item));
+ } else {
+ $cc=0;
+ $this->_o=false;
+ $this->_d[$priority]=array($item);
+ }
+ if($this->_fd&&is_array($this->_fd)&&count($this->_d)==1)
+ array_splice($this->_fd,$cc,0,array($item));
+ else
+ $this->_fd=null;
+ }
+ $this->_c++;
+ return $c;
+ }
+ public function remove($item,$priority=false)
+ {
+ if($this->getReadOnly())
+ throw new TInvalidOperationException('list_readonly',get_class($this));
+ if(($p=$this->priorityOf($item,true))!==false)
+ {
+ if($priority!==false) {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ if($p[0]!=$priority)
+ throw new TInvalidDataValueException('list_item_inexistent');
+ }
+ $this->removeAtIndexInPriority($p[1],$p[0]);
+ return $p[2];
+ }
+ else
+ throw new TInvalidDataValueException('list_item_inexistent');
+ }
+ public function removeAt($index)
+ {
+ if($this->getReadOnly())
+ throw new TInvalidOperationException('list_readonly',get_class($this));
+ if(($priority=$this->priorityAt($index, true))!==false)
+ return $this->removeAtIndexInPriority($priority[1],$priority[0]);
+ throw new TInvalidDataValueException('list_index_invalid',$index);
+ }
+ public function removeAtIndexInPriority($index, $priority=null)
+ {
+ if($this->getReadOnly())
+ throw new TInvalidOperationException('list_readonly',get_class($this));
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ if(!isset($this->_d[$priority])||$index<0||$index>=count($this->_d[$priority]))
+ throw new TInvalidDataValueException('list_item_inexistent');
+ $value=array_splice($this->_d[$priority],$index,1);
+ $value=$value[0];
+ if(!count($this->_d[$priority]))
+ unset($this->_d[$priority]);
+ $this->_c--;
+ $this->_fd=null;
+ return $value;
+ }
+ public function clear()
+ {
+ if($this->getReadOnly())
+ throw new TInvalidOperationException('list_readonly',get_class($this));
+ $d=array_reverse($this->_d,true);
+ foreach($this->_d as $priority=>$items) {
+ for($index=count($items)-1;$index>=0;$index--)
+ $this->removeAtIndexInPriority($index,$priority);
+ unset($this->_d[$priority]);
+ }
+ }
+ public function contains($item)
+ {
+ return $this->indexOf($item)>=0;
+ }
+ public function indexOf($item)
+ {
+ if(($index=array_search($item,$this->flattenPriorities(),true))===false)
+ return -1;
+ else
+ return $index;
+ }
+ public function priorityOf($item,$withindex = false)
+ {
+ $this->sortPriorities();
+ $absindex = 0;
+ foreach($this->_d as $priority=>$items) {
+ if(($index=array_search($item,$items,true))!==false) {
+ $absindex+=$index;
+ return $withindex?array($priority,$index,$absindex,
+ 'priority'=>$priority,'index'=>$index,'absindex'=>$absindex):$priority;
+ } else
+ $absindex+=count($items);
+ }
+ return false;
+ }
+ public function priorityAt($index,$withindex = false)
+ {
+ if($index<0||$index>=$this->getCount())
+ throw new TInvalidDataValueException('list_index_invalid',$index);
+ $absindex=$index;
+ $this->sortPriorities();
+ foreach($this->_d as $priority=>$items) {
+ if($index>=($c=count($items)))
+ $index-=$c;
+ else
+ return $withindex?array($priority,$index,$absindex,
+ 'priority'=>$priority,'index'=>$index,'absindex'=>$absindex):$priority;
+ }
+ return false;
+ }
+ public function insertBefore($indexitem, $item)
+ {
+ if($this->getReadOnly())
+ throw new TInvalidOperationException('list_readonly',get_class($this));
+ if(($priority=$this->priorityOf($indexitem,true))===false)
+ throw new TInvalidDataValueException('list_item_inexistent');
+ $this->insertAtIndexInPriority($item,$priority[1],$priority[0]);
+ return $priority[2];
+ }
+ public function insertAfter($indexitem, $item)
+ {
+ if($this->getReadOnly())
+ throw new TInvalidOperationException('list_readonly',get_class($this));
+ if(($priority=$this->priorityOf($indexitem,true))===false)
+ throw new TInvalidDataValueException('list_item_inexistent');
+ $this->insertAtIndexInPriority($item,$priority[1]+1,$priority[0]);
+ return $priority[2]+1;
+ }
+ public function toArray()
+ {
+ return $this->flattenPriorities();
+ }
+ public function toPriorityArray()
+ {
+ $this->sortPriorities();
+ return $this->_d;
+ }
+ public function toArrayBelowPriority($priority,$inclusive=false)
+ {
+ $this->sortPriorities();
+ $items=array();
+ foreach($this->_d as $itemspriority=>$itemsatpriority)
+ {
+ if((!$inclusive&&$itemspriority>=$priority)||$itemspriority>$priority)
+ break;
+ $items=array_merge($items,$itemsatpriority);
+ }
+ return $items;
+ }
+ public function toArrayAbovePriority($priority,$inclusive=true)
+ {
+ $this->sortPriorities();
+ $items=array();
+ foreach($this->_d as $itemspriority=>$itemsatpriority)
+ {
+ if((!$inclusive&&$itemspriority<=$priority)||$itemspriority<$priority)
+ continue;
+ $items=array_merge($items,$itemsatpriority);
+ }
+ return $items;
+ }
+ public function copyFrom($data)
+ {
+ if($data instanceof TPriorityList)
+ {
+ if($this->getCount()>0)
+ $this->clear();
+ foreach($data->getPriorities() as $priority)
+ {
+ foreach($data->itemsAtPriority($priority) as $index=>$item)
+ $this->insertAtIndexInPriority($item,$index,$priority);
+ }
+ } else if(is_array($data)||$data instanceof Traversable) {
+ if($this->getCount()>0)
+ $this->clear();
+ foreach($data as $key=>$item)
+ $this->add($item);
+ } else if($data!==null)
+ throw new TInvalidDataTypeException('map_data_not_iterable');
+ }
+ public function mergeWith($data)
+ {
+ if($data instanceof TPriorityList)
+ {
+ foreach($data->getPriorities() as $priority)
+ {
+ foreach($data->itemsAtPriority($priority) as $index=>$item)
+ $this->insertAtIndexInPriority($item,false,$priority);
+ }
+ }
+ else if(is_array($data)||$data instanceof Traversable)
+ {
+ foreach($data as $priority=>$item)
+ $this->add($item);
+ }
+ else if($data!==null)
+ throw new TInvalidDataTypeException('map_data_not_iterable');
+ }
+ public function offsetExists($offset)
+ {
+ return ($offset>=0&&$offset<$this->getCount());
+ }
+ public function offsetGet($offset)
+ {
+ return $this->itemAt($offset);
+ }
+ public function offsetSet($offset,$item)
+ {
+ if($offset===null)
+ return $this->add($item);
+ if($offset===$this->getCount()) {
+ $priority=$this->priorityAt($offset-1,true);
+ $priority[1]++;
+ } else {
+ $priority=$this->priorityAt($offset,true);
+ $this->removeAtIndexInPriority($priority[1],$priority[0]);
+ }
+ $this->insertAtIndexInPriority($item,$priority[1],$priority[0]);
+ }
+ public function offsetUnset($offset)
+ {
+ $this->removeAt($offset);
+ }
+}
class TMap extends TComponent implements IteratorAggregate,ArrayAccess,Countable
{
private $_d=array();
@@ -1393,6 +1763,310 @@ class TMapIterator implements Iterator
return $this->_key!==false;
}
}
+class TPriorityMap extends TMap
+{
+ private $_d=array();
+ private $_r=false;
+ private $_o=false;
+ private $_fd=null;
+ private $_c=0;
+ private $_dp=10;
+ private $_p=8;
+ public function __construct($data=null,$readOnly=false,$defaultPriority=10,$precision=8)
+ {
+ if($data!==null)
+ $this->copyFrom($data);
+ $this->setReadOnly($readOnly);
+ $this->setPrecision($precision);
+ $this->setDefaultPriority($defaultPriority);
+ }
+ public function getReadOnly()
+ {
+ return $this->_r;
+ }
+ protected function setReadOnly($value)
+ {
+ $this->_r=TPropertyValue::ensureBoolean($value);
+ }
+ public function getDefaultPriority()
+ {
+ return $this->_dp;
+ }
+ protected function setDefaultPriority($value)
+ {
+ $this->_dp = (string)round(TPropertyValue::ensureFloat($value), $this->_p);
+ }
+ public function getPrecision()
+ {
+ return $this->_p;
+ }
+ protected function setPrecision($value)
+ {
+ $this->_p=TPropertyValue::ensureInteger($value);
+ }
+ public function getIterator()
+ {
+ return new ArrayIterator($this->flattenPriorities());
+ }
+ protected function sortPriorities() {
+ if(!$this->_o) {
+ ksort($this->_d, SORT_NUMERIC);
+ $this->_o=true;
+ }
+ }
+ protected function flattenPriorities() {
+ if(is_array($this->_fd))
+ return $this->_fd;
+ $this->sortPriorities();
+ $this->_fd = array();
+ foreach($this->_d as $priority => $itemsatpriority)
+ $this->_fd = array_merge($this->_fd, $itemsatpriority);
+ return $this->_fd;
+ }
+ public function count()
+ {
+ return $this->getCount();
+ }
+ public function getCount()
+ {
+ return $this->_c;
+ }
+ public function getPriorityCount($priority=null)
+ {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ if(!isset($this->_d[$priority])||!is_array($this->_d[$priority]))
+ return false;
+ return count($this->_d[$priority]);
+ }
+ public function getPriorities()
+ {
+ $this->sortPriorities();
+ return array_keys($this->_d);
+ }
+ public function getKeys()
+ {
+ return array_keys($this->flattenPriorities());
+ }
+ public function itemAt($key,$priority=false)
+ {
+ if($priority===false){
+ $map=$this->flattenPriorities();
+ return isset($map[$key])?$map[$key]:null;
+ } else {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ return (isset($this->_d[$priority])&&isset($this->_d[$priority][$key]))?$this->_d[$priority][$key]:null;
+ }
+ }
+ public function setPriorityAt($key,$priority=null)
+ {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ $oldpriority=$this->priorityAt($key);
+ if($oldpriority!==false&&$oldpriority!=$priority) {
+ $value=$this->remove($key,$oldpriority);
+ $this->add($key,$value,$priority);
+ }
+ return $oldpriority;
+ }
+ public function itemsAtPriority($priority=null)
+ {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ return isset($this->_d[$priority])?$this->_d[$priority]:null;
+ }
+ public function priorityOf($item)
+ {
+ $this->sortPriorities();
+ foreach($this->_d as $priority=>$items)
+ if(($index=array_search($item,$items,true))!==false)
+ return $priority;
+ return false;
+ }
+ public function priorityAt($key)
+ {
+ $this->sortPriorities();
+ foreach($this->_d as $priority=>$items)
+ if(array_key_exists($key,$items))
+ return $priority;
+ return false;
+ }
+ public function add($key,$value,$priority=null)
+ {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ if(!$this->_r)
+ {
+ foreach($this->_d as $innerpriority=>$items)
+ if(array_key_exists($key,$items))
+ {
+ unset($this->_d[$innerpriority][$key]);
+ $this->_c--;
+ if(count($this->_d[$innerpriority])===0)
+ unset($this->_d[$innerpriority]);
+ }
+ if(!isset($this->_d[$priority])) {
+ $this->_d[$priority]=array($key=>$value);
+ $this->_o=false;
+ }
+ else
+ $this->_d[$priority][$key]=$value;
+ $this->_c++;
+ $this->_fd=null;
+ }
+ else
+ throw new TInvalidOperationException('map_readonly',get_class($this));
+ return $priority;
+ }
+ public function remove($key,$priority=false)
+ {
+ if(!$this->_r)
+ {
+ if($priority===null)
+ $priority=$this->getDefaultPriority();
+ if($priority===false)
+ {
+ $this->sortPriorities();
+ foreach($this->_d as $priority=>$items)
+ if(array_key_exists($key,$items))
+ {
+ $value=$this->_d[$priority][$key];
+ unset($this->_d[$priority][$key]);
+ $this->_c--;
+ if(count($this->_d[$priority])===0)
+ {
+ unset($this->_d[$priority]);
+ $this->_o=false;
+ }
+ $this->_fd=null;
+ return $value;
+ }
+ return null;
+ }
+ else
+ {
+ $priority=(string)round(TPropertyValue::ensureFloat($priority),$this->_p);
+ if(isset($this->_d[$priority])&&(isset($this->_d[$priority][$key])||array_key_exists($key,$this->_d[$priority])))
+ {
+ $value=$this->_d[$priority][$key];
+ unset($this->_d[$priority][$key]);
+ $this->_c--;
+ if(count($this->_d[$priority])===0) {
+ unset($this->_d[$priority]);
+ $this->_o=false;
+ }
+ $this->_fd=null;
+ return $value;
+ }
+ else
+ return null;
+ }
+ }
+ else
+ throw new TInvalidOperationException('map_readonly',get_class($this));
+ }
+ public function clear()
+ {
+ foreach($this->_d as $priority=>$items)
+ foreach(array_keys($items) as $key)
+ $this->remove($key);
+ }
+ public function contains($key)
+ {
+ $map=$this->flattenPriorities();
+ return isset($map[$key])||array_key_exists($key,$map);
+ }
+ public function toArray()
+ {
+ return $this->flattenPriorities();
+ }
+ public function toArrayBelowPriority($priority,$inclusive=false)
+ {
+ $this->sortPriorities();
+ $items=array();
+ foreach($this->_d as $itemspriority=>$itemsatpriority)
+ {
+ if((!$inclusive&&$itemspriority>=$priority)||$itemspriority>$priority)
+ break;
+ $items=array_merge($items,$itemsatpriority);
+ }
+ return $items;
+ }
+ public function toArrayAbovePriority($priority,$inclusive=true)
+ {
+ $this->sortPriorities();
+ $items=array();
+ foreach($this->_d as $itemspriority=>$itemsatpriority)
+ {
+ if((!$inclusive&&$itemspriority<=$priority)||$itemspriority<$priority)
+ continue;
+ $items=array_merge($items,$itemsatpriority);
+ }
+ return $items;
+ }
+ public function copyFrom($data)
+ {
+ if($data instanceof TPriorityMap)
+ {
+ if($this->getCount()>0)
+ $this->clear();
+ foreach($data->getPriorities() as $priority) {
+ foreach($data->itemsAtPriority($priority) as $key => $value) {
+ $this->add($key,$value,$priority);
+ }
+ }
+ }
+ else if(is_array($data)||$data instanceof Traversable)
+ {
+ if($this->getCount()>0)
+ $this->clear();
+ foreach($data as $key=>$value)
+ $this->add($key,$value);
+ }
+ else if($data!==null)
+ throw new TInvalidDataTypeException('map_data_not_iterable');
+ }
+ public function mergeWith($data)
+ {
+ if($data instanceof TPriorityMap)
+ {
+ foreach($data->getPriorities() as $priority)
+ {
+ foreach($data->itemsAtPriority($priority) as $key => $value)
+ $this->add($key,$value,$priority);
+ }
+ }
+ else if(is_array($data)||$data instanceof Traversable)
+ {
+ foreach($data as $key=>$value)
+ $this->add($key,$value);
+ }
+ else if($data!==null)
+ throw new TInvalidDataTypeException('map_data_not_iterable');
+ }
+ public function offsetExists($offset)
+ {
+ return $this->contains($offset);
+ }
+ public function offsetGet($offset)
+ {
+ return $this->itemAt($offset);
+ }
+ public function offsetSet($offset,$item)
+ {
+ $this->add($offset,$item);
+ }
+ public function offsetUnset($offset)
+ {
+ $this->remove($offset);
+ }
+}
class TStack extends TComponent implements IteratorAggregate,Countable
{
private $_d=array();
@@ -2225,13 +2899,13 @@ class TJavaScript
($g=Prado::getApplication()->getGlobalization(false))!==null &&
strtoupper($enc=$g->getCharset())!='UTF-8')
$value=iconv($enc, 'UTF-8', $value);
- $s = @json_encode($value,$options);
+ $s = json_encode($value,$options);
self::checkJsonError();
return $s;
}
public static function jsonDecode($value, $assoc = false, $depth = 512)
{
- $s= @json_decode($value, $assoc, $depth);
+ $s= json_decode($value, $assoc, $depth);
self::checkJsonError();
return $s;
}
@@ -2306,23 +2980,16 @@ class TUrlManager extends TModule
}
}
}
- switch($request->getUrlFormat())
- {
- case THttpRequestUrlFormat::Path:
- return $request->getApplicationUrl().'/'.strtr($url,array($amp=>'/','?'=>'/','='=>$request->getUrlParamSeparator()));
- case THttpRequestUrlFormat::HiddenPath:
- return rtrim(dirname($request->getApplicationUrl()), '/').'/'.strtr($url,array($amp=>'/','?'=>'/','='=>$request->getUrlParamSeparator()));
- default:
- return $request->getApplicationUrl().'?'.$url;
- }
+ if($request->getUrlFormat()===THttpRequestUrlFormat::Path)
+ return $request->getApplicationUrl().'/'.strtr($url,array($amp=>'/','?'=>'/','='=>$request->getUrlParamSeparator()));
+ else
+ return $request->getApplicationUrl().'?'.$url;
}
public function parseUrl()
{
$request=$this->getRequest();
$pathInfo=trim($request->getPathInfo(),'/');
- if(($request->getUrlFormat()===THttpRequestUrlFormat::Path ||
- $request->getUrlFormat()===THttpRequestUrlFormat::HiddenPath) &&
- $pathInfo!=='')
+ if($request->getUrlFormat()===THttpRequestUrlFormat::Path && $pathInfo!=='')
{
$separator=$request->getUrlParamSeparator();
$paths=explode('/',$pathInfo);
@@ -2368,7 +3035,6 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar
private $_requestResolved=false;
private $_enableCookieValidation=false;
private $_cgiFix=0;
- private $_enableCache=false;
private $_url=null;
private $_id;
private $_items=array();
@@ -2382,6 +3048,19 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar
}
public function init($config)
{
+ if(empty($this->_urlManagerID))
+ {
+ $this->_urlManager=new TUrlManager;
+ $this->_urlManager->init(null);
+ }
+ else
+ {
+ $this->_urlManager=$this->getApplication()->getModule($this->_urlManagerID);
+ if($this->_urlManager===null)
+ throw new TConfigurationException('httprequest_urlmanager_inexist',$this->_urlManagerID);
+ if(!($this->_urlManager instanceof TUrlManager))
+ throw new TConfigurationException('httprequest_urlmanager_invalid',$this->_urlManagerID);
+ }
if(php_sapi_name()==='cli')
{
$_SERVER['REMOTE_ADDR']='127.0.0.1';
@@ -2438,51 +3117,6 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar
}
return $this->_url;
}
- public function setEnableCache($value)
- {
- $this->_enableCache = TPropertyValue::ensureBoolean($value);
- }
- public function getEnableCache()
- {
- return $this->_enableCache;
- }
- protected function getCacheKey()
- {
- return $this->getID();
- }
- protected function cacheUrlManager($manager)
- {
- if($this->getEnableCache())
- {
- $cache = $this->getApplication()->getCache();
- if($cache !== null)
- {
- $dependencies = null;
- if($this->getApplication()->getMode() !== TApplicationMode::Performance)
- if ($manager instanceof TUrlMapping && $fn = $manager->getConfigFile())
- {
- $fn = Prado::getPathOfNamespace($fn,$this->getApplication()->getConfigurationFileExt());
- $dependencies = new TFileCacheDependency($fn);
- }
- return $cache->set($this->getCacheKey(), $manager, 0, $dependencies);
- }
- }
- return false;
- }
- protected function loadCachedUrlManager()
- {
- if($this->getEnableCache())
- {
- $cache = $this->getApplication()->getCache();
- if($cache !== null)
- {
- $manager = $cache->get($this->getCacheKey());
- if($manager instanceof TUrlManager)
- return $manager;
- }
- }
- return null;
- }
public function getUrlManager()
{
return $this->_urlManagerID;
@@ -2493,26 +3127,6 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar
}
public function getUrlManagerModule()
{
- if($this->_urlManager===null)
- {
- if(($this->_urlManager = $this->loadCachedUrlManager())===null)
- {
- if(empty($this->_urlManagerID))
- {
- $this->_urlManager=new TUrlManager;
- $this->_urlManager->init(null);
- }
- else
- {
- $this->_urlManager=$this->getApplication()->getModule($this->_urlManagerID);
- if($this->_urlManager===null)
- throw new TConfigurationException('httprequest_urlmanager_inexist',$this->_urlManagerID);
- if(!($this->_urlManager instanceof TUrlManager))
- throw new TConfigurationException('httprequest_urlmanager_invalid',$this->_urlManagerID);
- }
- $this->cacheUrlManager($this->_urlManager);
- }
- }
return $this->_urlManager;
}
public function getUrlFormat()
@@ -2703,7 +3317,7 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar
{
if ($this->_cookieOnly===null)
$this->_cookieOnly=(int)ini_get('session.use_cookies') && (int)ini_get('session.use_only_cookies');
- $url=$this->getUrlManagerModule()->constructUrl($serviceID,$serviceParam,$getItems,$encodeAmpersand,$encodeGetItems);
+ $url=$this->_urlManager->constructUrl($serviceID,$serviceParam,$getItems,$encodeAmpersand,$encodeGetItems);
if(defined('SID') && SID != '' && !$this->_cookieOnly)
return $url . (strpos($url,'?')===false? '?' : ($encodeAmpersand?'&amp;':'&')) . SID;
else
@@ -2711,7 +3325,7 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar
}
protected function parseUrl()
{
- return $this->getUrlManagerModule()->parseUrl();
+ return $this->_urlManager->parseUrl();
}
public function resolveRequest($serviceIDs)
{
@@ -3008,7 +3622,6 @@ class THttpRequestUrlFormat extends TEnumerable
{
const Get='Get';
const Path='Path';
- const HiddenPath='HiddenPath';
}
class THttpResponseAdapter extends TApplicationComponent
{
@@ -6436,14 +7049,7 @@ class TClientScriptManager extends TApplicationComponent
}
public function getStyleSheetUrls()
{
- $stylesheets = array_values(
- array_merge(
- array_map(
- create_function('$e', 'return is_array($e) ? $e[0] : $e;'),
- $this->_styleSheetFiles),
- $this->_styleSheets
- )
- );
+ $stylesheets = array_values(array_merge($this->_styleSheetFiles, $this->_styleSheets));
foreach(Prado::getApplication()->getAssetManager()->getPublished() as $path=>$url)
if (substr($url,strlen($url)-4)=='.css')
$stylesheets[] = $url;
@@ -6644,6 +7250,10 @@ class TClientScriptManager extends TApplicationComponent
abstract class TClientSideOptions extends TComponent
{
private $_options;
+ public function __construct()
+ {
+ $this->_options = Prado::createComponent('System.Collections.TMap');
+ }
protected function setFunction($name, $code)
{
if(!TJavaScript::isJsLiteral($code))
@@ -6652,19 +7262,14 @@ abstract class TClientSideOptions extends TComponent
}
protected function getOption($name)
{
- if ($this->_options)
- return $this->_options->itemAt($name);
- else
- return null;
+ return $this->_options->itemAt($name);
}
protected function setOption($name, $value)
{
- $this->getOptions()->add($name, $value);
+ $this->_options->add($name, $value);
}
public function getOptions()
{
- if (!$this->_options)
- $this->_options = Prado::createComponent('System.Collections.TMap');
return $this->_options;
}
protected function ensureFunction($javascript)
@@ -8027,7 +8632,7 @@ class TTemplate extends TApplicationComponent implements ITemplate
else if($str[2]==='~')
$tpl[$c++]=array($container,array(TCompositeLiteral::TYPE_EXPRESSION,"\$this->publishFilePath('$this->_contextPath/$literal')"));
else if($str[2]==='/')
- $tpl[$c++]=array($container,array(TCompositeLiteral::TYPE_EXPRESSION,"rtrim(dirname(\$this->getApplication()->getRequest()->getApplicationUrl()), '/').'/$literal'"));
+ $tpl[$c++]=array($container,array(TCompositeLiteral::TYPE_EXPRESSION,"dirname(\$this->getApplication()->getRequest()->getApplicationUrl()).'/$literal'"));
else if($str[2]==='[')
{
$literal=strtr(trim(substr($literal,0,strlen($literal)-1)),array("'"=>"\'","\\"=>"\\\\"));
@@ -8244,7 +8849,7 @@ class TTemplate extends TApplicationComponent implements ITemplate
return array(self::CONFIG_PARAMETER,trim(substr($value,3,strlen($value)-5)));
elseif($value[2]==='/') {
$literal = trim(substr($value,3,strlen($value)-5));
- return array(self::CONFIG_EXPRESSION,"rtrim(dirname(\$this->getApplication()->getRequest()->getApplicationUrl()), '/').'/$literal'");
+ return array(self::CONFIG_EXPRESSION,"dirname(\$this->getApplication()->getRequest()->getApplicationUrl()).'/$literal'");
}
}
else
@@ -9528,7 +10133,6 @@ class TApplication extends TComponent
private $_services;
private $_service;
private $_modules=array();
- private $_lazyModules=array();
private $_parameters;
private $_configFile;
private $_configFileExt;
@@ -9761,7 +10365,7 @@ class TApplication extends TComponent
{
$this->_service=$value;
}
- public function setModule($id,IModule $module=null)
+ public function setModule($id,IModule $module)
{
if(isset($this->_modules[$id]))
throw new TConfigurationException('application_moduleid_duplicated',$id);
@@ -9770,14 +10374,7 @@ class TApplication extends TComponent
}
public function getModule($id)
{
- if(!array_key_exists($id, $this->_modules))
- return null;
- if($this->_modules[$id]===null)
- {
- $module = $this->internalLoadModule($id, true);
- $module[0]->init($module[1]);
- }
- return $this->_modules[$id];
+ return isset($this->_modules[$id])?$this->_modules[$id]:null;
}
public function getModules()
{
@@ -9917,24 +10514,6 @@ class TApplication extends TComponent
{
return 'TApplicationConfiguration';
}
- protected function internalLoadModule($id, $force=false)
- {
- list($moduleClass, $initProperties, $configElement)=$this->_lazyModules[$id];
- if(isset($initProperties['lazy']) && $initProperties['lazy'] && !$force)
- {
- $this->setModule($id, null);
- return null;
- }
- $module=Prado::createComponent($moduleClass);
- foreach($initProperties as $name=>$value)
- {
- if($name==='lazy') continue;
- $module->setSubProperty($name,$value);
- }
- $this->setModule($id,$module);
- unset($this->_lazyModules[$id]);
- return array($module,$configElement);
- }
public function applyConfiguration($config,$withinService=false)
{
if($config->getIsEmpty())
@@ -9965,11 +10544,17 @@ class TApplication extends TComponent
$modules=array();
foreach($config->getModules() as $id=>$moduleConfig)
{
+ list($moduleClass, $initProperties, $configElement)=$moduleConfig;
+ $module=Prado::createComponent($moduleClass);
if(!is_string($id))
- $id='_module'.count($this->_lazyModules);
- $this->_lazyModules[$id]=$moduleConfig;
- if($module = $this->internalLoadModule($id))
- $modules[]=$module;
+ {
+ $id='_module'.count($this->_modules);
+ $initProperties['id']=$id;
+ }
+ $this->setModule($id,$module);
+ foreach($initProperties as $name=>$value)
+ $module->setSubProperty($name,$value);
+ $modules[]=array($module,$configElement);
}
foreach($modules as $module)
$module[0]->init($module[1]);