diff --git a/MozillaFirefoxCopy&PasteFix/readme.txt b/MozillaFirefoxCopy&PasteFix/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..da6690abce6bc82005c3dabb67f0c988b8300a24
--- /dev/null
+++ b/MozillaFirefoxCopy&PasteFix/readme.txt
@@ -0,0 +1,18 @@
+For Mozilla and Firefox the functionality of
+"copy and Paste" are disabled by default. If you
+wish your Typo3-User are able to use this, the User
+must have the "user.js" with it contents in his
+Mozilla Userdir. On Windows XP is this the following:
+
+C:\Documents and Settings\[User Name]\Application Data\Mozilla\Firefox\Profiles\
+
+See also here:
+
+http://www.mozilla.org/editor/midasdemo/securityprefs.html
+
+
+Regards
+
+Thomas
+
+
diff --git a/MozillaFirefoxCopy&PasteFix/user.js b/MozillaFirefoxCopy&PasteFix/user.js
new file mode 100644
index 0000000000000000000000000000000000000000..6eedaeb13786782906798ccd77adec75e540d532
--- /dev/null
+++ b/MozillaFirefoxCopy&PasteFix/user.js
@@ -0,0 +1,4 @@
+user_pref("capability.policy.policynames", "allowclipboard");
+user_pref("capability.policy.allowclipboard.sites", "http://localhost");
+user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess");
+user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess");
\ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000000000000000000000000000000000000..9327893776001fa51687009834db73c405918e32
--- /dev/null
+++ b/README
@@ -0,0 +1,10 @@
+--- Used Versions ---
+
+* tinyMCE - 2.1.1.1
+* PHP compressor - 1.1.0
+* PHP spellchecker - 1.0.5
+* Languages - 08.07.2007 (dd.mm.yyyy)
+
+--- TODO ---
+
+* FileBrowser enhancements like in tinyRTE (?)
diff --git a/class.tinymce.php b/class.tinymce.php
new file mode 100644
index 0000000000000000000000000000000000000000..eda79b58ea6e5ebfc3c8e9fcbefe30c97fd9c7f4
--- /dev/null
+++ b/class.tinymce.php
@@ -0,0 +1,274 @@
+<?php
+/***************************************************************
+*  Copyright notice
+*
+*  (c) 2005-2007 Stefan Galinski (stefan.galinski@gmail.com)
+*  All rights reserved
+*
+*  This script is part of the TYPO3 project. The TYPO3 project is
+*  free software; you can redistribute it and/or modify
+*  it under the terms of the GNU General Public License as published by
+*  the Free Software Foundation; either version 2 of the License, or
+*  (at your option) any later version.
+*
+*  The GNU General Public License can be found at
+*  http://www.gnu.org/copyleft/gpl.html.
+*
+*  This script 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 General Public License for more details.
+*
+*  This copyright notice MUST APPEAR in all copies of the script!
+***************************************************************/
+
+/**
+ * tinyMCE initialisation class 
+ *
+ * $Id$
+ *
+ * @author Stefan Galinski <stefan.galinski@gmail.com>
+ */
+
+/**
+ * [CLASS/FUNCTION INDEX of SCRIPT]
+ *
+ */
+
+/** @var boolean initialisation flag to prevent multiple init code */
+$tinyMCEInitFlag = false;
+
+/**
+ * tinyMCE initialisation class
+ *
+ * @author Stefan Galinski <stefan.galinski@gmail.com>
+ * @package Typo3
+ * @subpackage tx_tinymce
+ */
+class tinyMCE
+{
+	/**
+	 * @var array configuration
+	 * @see prepareConfig()
+	 */
+	var $extConfig = array();
+
+	/**@+
+	/** @var array configuration */
+	var $config = array();
+	var $GZconfig = array();
+	/**#@-*/
+
+	/**
+	 * Constructor
+	 * loads the tinyMCE configuration
+	 *
+	 * @param string configuration file or string (optional ... default is basic configuration)
+	 * @param string gzip configuration file or string (optional ... default is basic configuration)
+	 * @param boolean set to false if you dont want the automatic language replacement (default true)
+	 * @return void
+	 */
+	function tinyMCE($config='', $GZconfig='', $autoLang=true)
+	{
+		// prepare extension and given tinyMCE configurations
+		$this->prepareConfig();
+		$this->prepareTinyMCEConfig($config, false);
+		$this->prepareTinyMCEConfig($GZconfig, true);
+		
+		// language replacement
+		if($autoLang)
+		{
+			// get main object
+			if(TYPO3_MODE == 'FE')
+				$lang =& $GLOBALS['TSFE'];
+			else
+				$lang =& $GLOBALS['LANG'];
+				
+			// language conversion from TLD to iso631
+			if(array_key_exists($this->extConfig['lang'], $lang->csConvObj->isoArray))
+				$this->extConfig['lang'] = $lang->csConvObj->isoArray[$this->extConfig['lang']];
+			if(!is_file(PATH_site . t3lib_extMgm::siteRelPath('tinymce') .
+				'tinyMCE/langs/' . $this->extConfig['lang'] . '.js'))
+	   	        $this->extConfig['lang'] = 'en';
+
+			// language replacement
+			$this->replaceInConfig(array('language' => $this->extConfig['lang']));
+			if($this->extConfig['compressed'])
+				$this->replaceInConfig(array('languages' => $this->extConfig['lang']), true);
+		}
+
+		// activate disk cache
+		if($this->extConfig['compressed'] && $this->extConfig['diskCache'])
+			$this->replaceInConfig(array('disk_cache' => 'true'), true);
+		elseif($this->extConfig['compressed'] && !$this->extConfig['diskCache'])
+			$this->replaceInConfig(array('disk_cache', 'false'), true);
+	}
+
+	/**
+	 * Generates a configuration string from the array informations
+	 *
+	 * @param boolean set to true if the options should be set into the gzip config
+	 * @return string generated configuration
+	 */
+	function buildConfigString($gzip)
+	{
+		$curConfig = ($gzip) ? $this->GZconfig : $this->config;
+
+		// generate configuration strings from array
+		$config = $curConfig['preJS'];
+		$config .= (($gzip) ? 'tinyMCE_GZ' : 'tinyMCE') . '.init({' . "\n";
+		$configOptions = array();
+		if (count($curConfig)) {
+			foreach($curConfig as $option => $value) {
+				if ($option == 'preJS' || $option == 'postJS')
+					continue;
+				if ($value != 'false' && $value != 'true')
+					$value = '\'' . $value . '\'';
+				$configOptions[] = "\t" . $option . ' : ' . $value;
+			}
+		}
+		$config .= implode(",\n", $configOptions);
+		$config .= "\n" . '});';
+		$config .= $curConfig['postJS'];
+
+		return $config;
+	}
+
+	/**
+	 * generates and returns the needed javascript inclusion code
+	 *
+	 * Note: this function can only be called one time
+	 *
+	 * @return string generated javascript inclusion code
+	 */
+	function getJS()
+	{
+		// check init flag
+		if($GLOBALS['tinyMCEInitFlag'])
+			return '';
+		$GLOBALS['tinyMCEInitFlag'] = true;
+
+		// build configuration strings
+		$config = $this->buildConfigString(false);
+		$GZconfig = $this->buildConfigString(true);
+
+		// return javascript
+		return '<script type="text/javascript" src="' . $GLOBALS['BACK_PATH'] .
+			t3lib_extMgm::extRelPath('tinymce') . 'tinyMCE/' .
+			($this->extConfig['compressed'] ? 'tiny_mce_gzip.js' : 'tiny_mce.js') . '"></script>
+			<script type="text/javascript">' . "\n" . $GZconfig . "\n" . '</script>
+			<script type="text/javascript">' . "\n" . $config . "\n" . '</script>';
+	}
+
+	/**
+	 * Prepares a tinyMCE configuration
+	 * All options, post and pre javascript is saved into the config or GZconfig array
+	 *
+	 * @param string file reference or configuration string
+	 * @param boolean set to true if the options should be set into the gzip config
+	 * @return void
+	 */
+	function prepareTinyMCEConfig($config, $gzip)
+	{
+		// get file contents if necessary
+		if(is_file($config))
+			$config = t3lib_div::getURL($config);
+
+		// get config variable
+		if ($gzip)
+			$curConfig =& $this->GZconfig;
+		else
+			$curConfig =& $this->config;
+
+		// split config into first and last javascript parts (applied later again into the config variables)
+		// additionaly the config part is matched to get the options
+		$start = '(.*)((tinyMCE|tinyMCE_GZ)\.init.*?\(.*?\{.*?';
+        $end = '.*?\}.*?\).*?;)(.*)';
+        $pattern = '/' . $start . $end . '/is';
+		preg_match($pattern, $config, $matches);
+
+		// add preJS and postJS
+		$curConfig['preJS'] = $matches[1];
+		$curConfig['postJS'] = $matches[4];
+
+		// split options into an array (first time strings and the second call splits bool values)
+		$pattern = '([[:print:]]+?)[\s]*?:[\s]*["|\']{1}(.*?)["|\']{1}[,|\n|}]{1}.*?';
+		preg_match_all('/' . $pattern . '/i', $matches[2], $options);
+		for ($i = 0; $i < count($options[1]); ++$i)
+			$configOptions[$options[1][$i]] = $options[2][$i];
+
+		$options = array();
+		$boolPattern = '([[:print:]]+?)[\s]*?:[\s]*(false|true)[,|\n|}]{1}.*?';
+		preg_match_all('/' . $boolPattern . '/i', $matches[2], $options);
+		for ($i = 0; $i < count($options[1]); ++$i)
+			$configOptions[$options[1][$i]] = $options[2][$i];
+
+		// add config options
+		if (is_array($configOptions))
+			$curConfig = array_merge($curConfig, $configOptions);
+	}
+
+	/**
+	 * replaces/adds an option in the configuration
+	 *
+	 * @param array option => value
+	 * @param boolean set to true if the options should be set into the gzip config
+	 * @return void
+	 */
+	function replaceInConfig($options, $gzip=false)
+	{
+		foreach ($options as $option => $value) {
+			if($gzip)
+				$this->GZconfig[$option] = $value;
+			else
+				$this->config[$option] = $value;
+		}
+	}
+	
+	/**
+	 * return false if the browser isnt supported
+	 *
+	 * Note: Currently only Opera until version 9 and Konqueror are in the unsupported list.
+	 * Browsers like lynx or IE4 are not in the list, because they are outdated and have only a very
+	 * low market share or arent supported by TYPO3.
+	 *
+	 * Feel free to send other Browsers which should be added here.
+	 *
+	 * @return boolean return true if the browser is supported
+	 */
+	function checkBrowser()
+	{
+		$browser = t3lib_div::getIndpEnv('HTTP_USER_AGENT');
+		if(preg_match('/Opera\\/[0-8]./', $browser) ||
+			preg_match('/Mozilla.+Konqueror./', $browser))
+			return false;
+
+		return true;
+	}
+
+	/**
+	 * preparation and check of the configuration
+	 *
+	 * Note that the default value will be set, if a option check fails.
+	 *
+	 * @return void
+	 */
+	function prepareConfig()
+	{
+		$this->extConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['tinymce']);
+		
+		// get current/forced language
+		$groupOrUserProps = t3lib_BEfunc::getModTSconfig('', 'tx_tinyMCE');
+		if(!empty($groupOrUserProps['properties']['prefLang']))
+			$this->extConfig['lang'] = $groupOrUserProps['properties']['prefLang'];
+		else
+			$this->extConfig['lang'] = (TYPO3_MODE == 'FE' ? $GLOBALS['TSFE']->lang : $GLOBALS['LANG']->lang);
+	}
+}
+
+// Default-Code for using XCLASS (dont touch)
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/tinymce/mod1/class.tinymce.php'])	{
+	include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/tinymce/mod1/class.tinymce.php']);
+}
+
+?>
diff --git a/doc/manual.sxw b/doc/manual.sxw
new file mode 100644
index 0000000000000000000000000000000000000000..642604b33f638ce110d0ef1077b79ac6ee279ac0
Binary files /dev/null and b/doc/manual.sxw differ
diff --git a/ext_conf_template.txt b/ext_conf_template.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5b2e85650d38b0cc90fd81a8c7f06bfface31d3b
--- /dev/null
+++ b/ext_conf_template.txt
@@ -0,0 +1,5 @@
+# cat=basic/enable; type=boolean; label= Use Compressed Script: Serverside GZip compresses TinyMCE to reduce overall download size. Makes TinyMCE 75% smaller and a lot faster to load.
+compressed = 1
+
+# cat=basic/enable; type=boolean; label= Use Disk Cache: Enables Disk Cache if serverside GZip compression activated to increase the performance.
+diskCache = 1
diff --git a/ext_emconf.php b/ext_emconf.php
new file mode 100644
index 0000000000000000000000000000000000000000..0bb1ec8a42c1fd505c9e3d41a1344fe9259bc569
--- /dev/null
+++ b/ext_emconf.php
@@ -0,0 +1,46 @@
+<?php
+
+########################################################################
+# Extension Manager/Repository config file for ext: "tinymce"
+#
+# Auto generated 07-09-2007 19:38
+#
+# Manual updates:
+# Only the data in the array - anything else is removed by next write.
+# "version" and "dependencies" must not be touched!
+########################################################################
+
+$EM_CONF[$_EXTKEY] = array(
+	'title' => 'tinyMCE',
+	'description' => 'Just a base for extensions which want to integrate a WYSIWIG editor.',
+	'category' => 'misc',
+	'shy' => 0,
+	'version' => '2.0.0',
+	'dependencies' => '',
+	'conflicts' => '',
+	'priority' => '',
+	'loadOrder' => '',
+	'module' => '',
+	'state' => 'stable',
+	'uploadfolder' => 0,
+	'createDirs' => '',
+	'modify_tables' => '',
+	'clearcacheonload' => 0,
+	'lockType' => '',
+	'author' => 'Stefan Galinski',
+	'author_email' => 'stefan.galinski@gmail.com',
+	'author_company' => '',
+	'CGLcompliance' => '',
+	'CGLcompliance_note' => '',
+	'constraints' => array(
+		'depends' => array(
+		),
+		'conflicts' => array(
+		),
+		'suggests' => array(
+		),
+	),
+	'_md5_values_when_last_written' => 'a:1503:{s:6:"README";s:4:"700d";s:17:"class.tinymce.php";s:4:"a4a3";s:21:"ext_conf_template.txt";s:4:"7cd7";s:12:"ext_icon.gif";s:4:"b163";s:12:"langMerge.sh";s:4:"b8eb";s:14:"doc/manual.sxw";s:4:"910d";s:38:"MozillaFirefoxCopy&PasteFix/readme.txt";s:4:"0df8";s:35:"MozillaFirefoxCopy&PasteFix/user.js";s:4:"098c";s:17:"tinyMCE/blank.htm";s:4:"3478";s:19:"tinyMCE/license.txt";s:4:"0571";s:19:"tinyMCE/tiny_mce.js";s:4:"07d0";s:52:"tinyMCE/tiny_mce_4490a91eecf6b6b85d1dc70190ee1a2e.gz";s:4:"fd40";s:52:"tinyMCE/tiny_mce_8b5f842bc54533e3a961d91ccbdf5fd3.gz";s:4:"b644";s:24:"tinyMCE/tiny_mce_gzip.js";s:4:"d413";s:25:"tinyMCE/tiny_mce_gzip.php";s:4:"745c";s:25:"tinyMCE/tiny_mce_popup.js";s:4:"eba0";s:23:"tinyMCE/tiny_mce_src.js";s:4:"6c8b";s:19:"tinyMCE/langs/ca.js";s:4:"41ed";s:19:"tinyMCE/langs/cs.js";s:4:"f67c";s:19:"tinyMCE/langs/cy.js";s:4:"5b8b";s:19:"tinyMCE/langs/da.js";s:4:"0c82";s:19:"tinyMCE/langs/de.js";s:4:"0cc0";s:19:"tinyMCE/langs/el.js";s:4:"bdb7";s:19:"tinyMCE/langs/en.js";s:4:"e212";s:19:"tinyMCE/langs/es.js";s:4:"87a5";s:19:"tinyMCE/langs/fa.js";s:4:"cae0";s:19:"tinyMCE/langs/fi.js";s:4:"c473";s:19:"tinyMCE/langs/fr.js";s:4:"fb81";s:22:"tinyMCE/langs/fr_ca.js";s:4:"6863";s:19:"tinyMCE/langs/he.js";s:4:"95d6";s:19:"tinyMCE/langs/hu.js";s:4:"9aa3";s:19:"tinyMCE/langs/is.js";s:4:"0f15";s:19:"tinyMCE/langs/it.js";s:4:"f584";s:19:"tinyMCE/langs/ja.js";s:4:"e36d";s:26:"tinyMCE/langs/ja_euc-jp.js";s:4:"05ea";s:29:"tinyMCE/langs/ja_shift_jis.js";s:4:"7ae8";s:25:"tinyMCE/langs/ja_utf-8.js";s:4:"cd84";s:19:"tinyMCE/langs/ko.js";s:4:"da78";s:19:"tinyMCE/langs/nb.js";s:4:"ca6b";s:19:"tinyMCE/langs/nl.js";s:4:"0424";s:19:"tinyMCE/langs/nn.js";s:4:"303c";s:19:"tinyMCE/langs/pl.js";s:4:"f4fa";s:22:"tinyMCE/langs/pt_br.js";s:4:"9c3c";s:24:"tinyMCE/langs/readme.txt";s:4:"6591";s:19:"tinyMCE/langs/ro.js";s:4:"378b";s:19:"tinyMCE/langs/ru.js";s:4:"08bc";s:26:"tinyMCE/langs/ru_CP1251.js";s:4:"99ea";s:26:"tinyMCE/langs/ru_KOI8-R.js";s:4:"097b";s:19:"tinyMCE/langs/si.js";s:4:"df39";s:19:"tinyMCE/langs/sk.js";s:4:"dc81";s:19:"tinyMCE/langs/sq.js";s:4:"aadb";s:19:"tinyMCE/langs/sr.js";s:4:"522a";s:19:"tinyMCE/langs/sv.js";s:4:"18dd";s:24:"tinyMCE/langs/sv_utf8.js";s:4:"2d73";s:19:"tinyMCE/langs/tr.js";s:4:"328a";s:19:"tinyMCE/langs/uk.js";s:4:"a524";s:26:"tinyMCE/langs/uk_CP1251.js";s:4:"ab3d";s:26:"tinyMCE/langs/uk_KOI8-U.js";s:4:"f9c6";s:19:"tinyMCE/langs/vi.js";s:4:"353a";s:22:"tinyMCE/langs/zh_cn.js";s:4:"50be";s:27:"tinyMCE/langs/zh_cn_utf8.js";s:4:"0e0a";s:22:"tinyMCE/langs/zh_tw.js";s:4:"23d3";s:27:"tinyMCE/langs/zh_tw_utf8.js";s:4:"7297";s:26:"tinyMCE/plugins/readme.txt";s:4:"b7eb";s:38:"tinyMCE/plugins/advhr/editor_plugin.js";s:4:"1d25";s:42:"tinyMCE/plugins/advhr/editor_plugin_src.js";s:4:"68e6";s:32:"tinyMCE/plugins/advhr/readme.txt";s:4:"fe81";s:30:"tinyMCE/plugins/advhr/rule.htm";s:4:"9f0f";s:35:"tinyMCE/plugins/advhr/css/advhr.css";s:4:"8b57";s:38:"tinyMCE/plugins/advhr/images/advhr.gif";s:4:"ca96";s:38:"tinyMCE/plugins/advhr/jscripts/rule.js";s:4:"a438";s:33:"tinyMCE/plugins/advhr/langs/ca.js";s:4:"cae3";s:33:"tinyMCE/plugins/advhr/langs/cs.js";s:4:"b358";s:33:"tinyMCE/plugins/advhr/langs/cy.js";s:4:"7403";s:33:"tinyMCE/plugins/advhr/langs/da.js";s:4:"145d";s:33:"tinyMCE/plugins/advhr/langs/de.js";s:4:"6112";s:33:"tinyMCE/plugins/advhr/langs/el.js";s:4:"94f2";s:33:"tinyMCE/plugins/advhr/langs/en.js";s:4:"cae3";s:33:"tinyMCE/plugins/advhr/langs/es.js";s:4:"4708";s:33:"tinyMCE/plugins/advhr/langs/fa.js";s:4:"72cf";s:33:"tinyMCE/plugins/advhr/langs/fi.js";s:4:"e1e3";s:33:"tinyMCE/plugins/advhr/langs/fr.js";s:4:"3978";s:36:"tinyMCE/plugins/advhr/langs/fr_ca.js";s:4:"2557";s:33:"tinyMCE/plugins/advhr/langs/he.js";s:4:"ff19";s:33:"tinyMCE/plugins/advhr/langs/hu.js";s:4:"f348";s:33:"tinyMCE/plugins/advhr/langs/is.js";s:4:"a677";s:33:"tinyMCE/plugins/advhr/langs/it.js";s:4:"828a";s:33:"tinyMCE/plugins/advhr/langs/ja.js";s:4:"1b5a";s:40:"tinyMCE/plugins/advhr/langs/ja_euc-jp.js";s:4:"ca8c";s:43:"tinyMCE/plugins/advhr/langs/ja_shift_jis.js";s:4:"ec42";s:39:"tinyMCE/plugins/advhr/langs/ja_utf-8.js";s:4:"405d";s:33:"tinyMCE/plugins/advhr/langs/ko.js";s:4:"cae3";s:33:"tinyMCE/plugins/advhr/langs/nb.js";s:4:"ae66";s:33:"tinyMCE/plugins/advhr/langs/nl.js";s:4:"cf61";s:33:"tinyMCE/plugins/advhr/langs/nn.js";s:4:"a24c";s:33:"tinyMCE/plugins/advhr/langs/pl.js";s:4:"9770";s:36:"tinyMCE/plugins/advhr/langs/pt_br.js";s:4:"19ab";s:33:"tinyMCE/plugins/advhr/langs/ro.js";s:4:"7b14";s:33:"tinyMCE/plugins/advhr/langs/ru.js";s:4:"3192";s:40:"tinyMCE/plugins/advhr/langs/ru_CP1251.js";s:4:"70d5";s:40:"tinyMCE/plugins/advhr/langs/ru_KOI8-R.js";s:4:"100e";s:33:"tinyMCE/plugins/advhr/langs/si.js";s:4:"586c";s:33:"tinyMCE/plugins/advhr/langs/sk.js";s:4:"b163";s:33:"tinyMCE/plugins/advhr/langs/sq.js";s:4:"81bf";s:33:"tinyMCE/plugins/advhr/langs/sr.js";s:4:"837d";s:33:"tinyMCE/plugins/advhr/langs/sv.js";s:4:"d467";s:38:"tinyMCE/plugins/advhr/langs/sv_utf8.js";s:4:"47c8";s:33:"tinyMCE/plugins/advhr/langs/tr.js";s:4:"6c35";s:33:"tinyMCE/plugins/advhr/langs/uk.js";s:4:"9487";s:40:"tinyMCE/plugins/advhr/langs/uk_CP1251.js";s:4:"fc68";s:40:"tinyMCE/plugins/advhr/langs/uk_KOI8-U.js";s:4:"566a";s:33:"tinyMCE/plugins/advhr/langs/vi.js";s:4:"a791";s:36:"tinyMCE/plugins/advhr/langs/zh_cn.js";s:4:"68a7";s:41:"tinyMCE/plugins/advhr/langs/zh_cn_utf8.js";s:4:"83d5";s:36:"tinyMCE/plugins/advhr/langs/zh_tw.js";s:4:"7923";s:41:"tinyMCE/plugins/advhr/langs/zh_tw_utf8.js";s:4:"c2a6";s:41:"tinyMCE/plugins/advimage/editor_plugin.js";s:4:"78ef";s:45:"tinyMCE/plugins/advimage/editor_plugin_src.js";s:4:"b30d";s:34:"tinyMCE/plugins/advimage/image.htm";s:4:"5696";s:35:"tinyMCE/plugins/advimage/readme.txt";s:4:"fe81";s:41:"tinyMCE/plugins/advimage/css/advimage.css";s:4:"0a68";s:42:"tinyMCE/plugins/advimage/images/sample.gif";s:4:"b9c7";s:46:"tinyMCE/plugins/advimage/jscripts/functions.js";s:4:"1640";s:36:"tinyMCE/plugins/advimage/langs/ca.js";s:4:"b4e4";s:36:"tinyMCE/plugins/advimage/langs/cs.js";s:4:"99b1";s:36:"tinyMCE/plugins/advimage/langs/cy.js";s:4:"e644";s:36:"tinyMCE/plugins/advimage/langs/da.js";s:4:"bbf3";s:36:"tinyMCE/plugins/advimage/langs/de.js";s:4:"0030";s:36:"tinyMCE/plugins/advimage/langs/el.js";s:4:"cd2d";s:36:"tinyMCE/plugins/advimage/langs/en.js";s:4:"a13c";s:36:"tinyMCE/plugins/advimage/langs/es.js";s:4:"f2c1";s:36:"tinyMCE/plugins/advimage/langs/fa.js";s:4:"9a99";s:36:"tinyMCE/plugins/advimage/langs/fi.js";s:4:"c293";s:36:"tinyMCE/plugins/advimage/langs/fr.js";s:4:"0e9c";s:39:"tinyMCE/plugins/advimage/langs/fr_ca.js";s:4:"5251";s:36:"tinyMCE/plugins/advimage/langs/he.js";s:4:"9162";s:36:"tinyMCE/plugins/advimage/langs/hu.js";s:4:"da64";s:36:"tinyMCE/plugins/advimage/langs/is.js";s:4:"276b";s:36:"tinyMCE/plugins/advimage/langs/it.js";s:4:"17e0";s:36:"tinyMCE/plugins/advimage/langs/ja.js";s:4:"4c50";s:43:"tinyMCE/plugins/advimage/langs/ja_euc-jp.js";s:4:"458d";s:46:"tinyMCE/plugins/advimage/langs/ja_shift_jis.js";s:4:"82cb";s:42:"tinyMCE/plugins/advimage/langs/ja_utf-8.js";s:4:"bc34";s:36:"tinyMCE/plugins/advimage/langs/ko.js";s:4:"fc78";s:36:"tinyMCE/plugins/advimage/langs/nb.js";s:4:"8e92";s:36:"tinyMCE/plugins/advimage/langs/nl.js";s:4:"347a";s:36:"tinyMCE/plugins/advimage/langs/nn.js";s:4:"50ab";s:36:"tinyMCE/plugins/advimage/langs/pl.js";s:4:"087e";s:39:"tinyMCE/plugins/advimage/langs/pt_br.js";s:4:"fee2";s:36:"tinyMCE/plugins/advimage/langs/ro.js";s:4:"53c7";s:36:"tinyMCE/plugins/advimage/langs/ru.js";s:4:"6510";s:43:"tinyMCE/plugins/advimage/langs/ru_CP1251.js";s:4:"1daa";s:43:"tinyMCE/plugins/advimage/langs/ru_KOI8-R.js";s:4:"1cc6";s:36:"tinyMCE/plugins/advimage/langs/si.js";s:4:"e068";s:36:"tinyMCE/plugins/advimage/langs/sk.js";s:4:"a6a6";s:36:"tinyMCE/plugins/advimage/langs/sq.js";s:4:"8a2b";s:36:"tinyMCE/plugins/advimage/langs/sr.js";s:4:"b222";s:36:"tinyMCE/plugins/advimage/langs/sv.js";s:4:"3a93";s:41:"tinyMCE/plugins/advimage/langs/sv_utf8.js";s:4:"aa04";s:36:"tinyMCE/plugins/advimage/langs/tr.js";s:4:"5c34";s:36:"tinyMCE/plugins/advimage/langs/uk.js";s:4:"9c0c";s:43:"tinyMCE/plugins/advimage/langs/uk_CP1251.js";s:4:"8b5e";s:43:"tinyMCE/plugins/advimage/langs/uk_KOI8-U.js";s:4:"a14e";s:36:"tinyMCE/plugins/advimage/langs/vi.js";s:4:"8c3a";s:39:"tinyMCE/plugins/advimage/langs/zh_cn.js";s:4:"8872";s:44:"tinyMCE/plugins/advimage/langs/zh_cn_utf8.js";s:4:"993e";s:39:"tinyMCE/plugins/advimage/langs/zh_tw.js";s:4:"6e6d";s:44:"tinyMCE/plugins/advimage/langs/zh_tw_utf8.js";s:4:"8603";s:40:"tinyMCE/plugins/advlink/editor_plugin.js";s:4:"db89";s:44:"tinyMCE/plugins/advlink/editor_plugin_src.js";s:4:"c1b0";s:32:"tinyMCE/plugins/advlink/link.htm";s:4:"b0e2";s:34:"tinyMCE/plugins/advlink/readme.txt";s:4:"fe81";s:39:"tinyMCE/plugins/advlink/css/advlink.css";s:4:"d200";s:45:"tinyMCE/plugins/advlink/jscripts/functions.js";s:4:"91df";s:35:"tinyMCE/plugins/advlink/langs/ca.js";s:4:"c67f";s:35:"tinyMCE/plugins/advlink/langs/cs.js";s:4:"e4e0";s:35:"tinyMCE/plugins/advlink/langs/cy.js";s:4:"070a";s:35:"tinyMCE/plugins/advlink/langs/da.js";s:4:"c415";s:35:"tinyMCE/plugins/advlink/langs/de.js";s:4:"d9f8";s:35:"tinyMCE/plugins/advlink/langs/el.js";s:4:"a8b4";s:35:"tinyMCE/plugins/advlink/langs/en.js";s:4:"262e";s:35:"tinyMCE/plugins/advlink/langs/es.js";s:4:"4bf9";s:35:"tinyMCE/plugins/advlink/langs/fa.js";s:4:"2bd5";s:35:"tinyMCE/plugins/advlink/langs/fi.js";s:4:"d982";s:35:"tinyMCE/plugins/advlink/langs/fr.js";s:4:"ae1e";s:38:"tinyMCE/plugins/advlink/langs/fr_ca.js";s:4:"87b8";s:35:"tinyMCE/plugins/advlink/langs/he.js";s:4:"dc76";s:35:"tinyMCE/plugins/advlink/langs/hu.js";s:4:"cd99";s:35:"tinyMCE/plugins/advlink/langs/is.js";s:4:"1017";s:35:"tinyMCE/plugins/advlink/langs/it.js";s:4:"1b5a";s:35:"tinyMCE/plugins/advlink/langs/ja.js";s:4:"6078";s:42:"tinyMCE/plugins/advlink/langs/ja_euc-jp.js";s:4:"cd0e";s:45:"tinyMCE/plugins/advlink/langs/ja_shift_jis.js";s:4:"fc32";s:41:"tinyMCE/plugins/advlink/langs/ja_utf-8.js";s:4:"093b";s:35:"tinyMCE/plugins/advlink/langs/ko.js";s:4:"fdc1";s:35:"tinyMCE/plugins/advlink/langs/nb.js";s:4:"6955";s:35:"tinyMCE/plugins/advlink/langs/nl.js";s:4:"3352";s:35:"tinyMCE/plugins/advlink/langs/nn.js";s:4:"7bce";s:35:"tinyMCE/plugins/advlink/langs/pl.js";s:4:"86e0";s:38:"tinyMCE/plugins/advlink/langs/pt_br.js";s:4:"aaf0";s:35:"tinyMCE/plugins/advlink/langs/ro.js";s:4:"c7ca";s:35:"tinyMCE/plugins/advlink/langs/ru.js";s:4:"855b";s:42:"tinyMCE/plugins/advlink/langs/ru_CP1251.js";s:4:"70e4";s:42:"tinyMCE/plugins/advlink/langs/ru_KOI8-R.js";s:4:"6b69";s:35:"tinyMCE/plugins/advlink/langs/si.js";s:4:"01dd";s:35:"tinyMCE/plugins/advlink/langs/sk.js";s:4:"81f4";s:35:"tinyMCE/plugins/advlink/langs/sq.js";s:4:"f157";s:35:"tinyMCE/plugins/advlink/langs/sr.js";s:4:"18e1";s:35:"tinyMCE/plugins/advlink/langs/sv.js";s:4:"37f6";s:40:"tinyMCE/plugins/advlink/langs/sv_utf8.js";s:4:"5d90";s:35:"tinyMCE/plugins/advlink/langs/tr.js";s:4:"36cd";s:35:"tinyMCE/plugins/advlink/langs/uk.js";s:4:"19e9";s:42:"tinyMCE/plugins/advlink/langs/uk_CP1251.js";s:4:"ce09";s:42:"tinyMCE/plugins/advlink/langs/uk_KOI8-U.js";s:4:"c548";s:35:"tinyMCE/plugins/advlink/langs/vi.js";s:4:"272f";s:38:"tinyMCE/plugins/advlink/langs/zh_cn.js";s:4:"dd12";s:43:"tinyMCE/plugins/advlink/langs/zh_cn_utf8.js";s:4:"d52e";s:38:"tinyMCE/plugins/advlink/langs/zh_tw.js";s:4:"7ce5";s:43:"tinyMCE/plugins/advlink/langs/zh_tw_utf8.js";s:4:"071c";s:41:"tinyMCE/plugins/autosave/editor_plugin.js";s:4:"fd0e";s:45:"tinyMCE/plugins/autosave/editor_plugin_src.js";s:4:"c781";s:35:"tinyMCE/plugins/autosave/readme.txt";s:4:"fe81";s:36:"tinyMCE/plugins/autosave/langs/ca.js";s:4:"b1e0";s:36:"tinyMCE/plugins/autosave/langs/cs.js";s:4:"4216";s:36:"tinyMCE/plugins/autosave/langs/cy.js";s:4:"0436";s:36:"tinyMCE/plugins/autosave/langs/da.js";s:4:"0c70";s:36:"tinyMCE/plugins/autosave/langs/de.js";s:4:"56d6";s:36:"tinyMCE/plugins/autosave/langs/el.js";s:4:"2706";s:36:"tinyMCE/plugins/autosave/langs/en.js";s:4:"b1e0";s:36:"tinyMCE/plugins/autosave/langs/es.js";s:4:"6897";s:36:"tinyMCE/plugins/autosave/langs/fa.js";s:4:"b1e0";s:36:"tinyMCE/plugins/autosave/langs/fi.js";s:4:"c2be";s:36:"tinyMCE/plugins/autosave/langs/fr.js";s:4:"ce82";s:39:"tinyMCE/plugins/autosave/langs/fr_ca.js";s:4:"b1e0";s:36:"tinyMCE/plugins/autosave/langs/he.js";s:4:"7c7a";s:36:"tinyMCE/plugins/autosave/langs/hu.js";s:4:"3b19";s:36:"tinyMCE/plugins/autosave/langs/is.js";s:4:"41cb";s:36:"tinyMCE/plugins/autosave/langs/it.js";s:4:"a3ce";s:36:"tinyMCE/plugins/autosave/langs/ja.js";s:4:"e873";s:43:"tinyMCE/plugins/autosave/langs/ja_euc-jp.js";s:4:"3236";s:46:"tinyMCE/plugins/autosave/langs/ja_shift_jis.js";s:4:"30e5";s:42:"tinyMCE/plugins/autosave/langs/ja_utf-8.js";s:4:"dcb9";s:36:"tinyMCE/plugins/autosave/langs/ko.js";s:4:"b1e0";s:36:"tinyMCE/plugins/autosave/langs/nb.js";s:4:"4041";s:36:"tinyMCE/plugins/autosave/langs/nl.js";s:4:"fb2e";s:36:"tinyMCE/plugins/autosave/langs/nn.js";s:4:"7e2a";s:36:"tinyMCE/plugins/autosave/langs/pl.js";s:4:"9d0b";s:39:"tinyMCE/plugins/autosave/langs/pt_br.js";s:4:"a7f1";s:36:"tinyMCE/plugins/autosave/langs/ro.js";s:4:"7b41";s:36:"tinyMCE/plugins/autosave/langs/ru.js";s:4:"c3cf";s:43:"tinyMCE/plugins/autosave/langs/ru_CP1251.js";s:4:"df26";s:43:"tinyMCE/plugins/autosave/langs/ru_KOI8-R.js";s:4:"9b70";s:36:"tinyMCE/plugins/autosave/langs/si.js";s:4:"257c";s:36:"tinyMCE/plugins/autosave/langs/sk.js";s:4:"a577";s:36:"tinyMCE/plugins/autosave/langs/sq.js";s:4:"d3d3";s:36:"tinyMCE/plugins/autosave/langs/sr.js";s:4:"a0fd";s:36:"tinyMCE/plugins/autosave/langs/sv.js";s:4:"5dd5";s:41:"tinyMCE/plugins/autosave/langs/sv_utf8.js";s:4:"5dd5";s:36:"tinyMCE/plugins/autosave/langs/tr.js";s:4:"e917";s:36:"tinyMCE/plugins/autosave/langs/uk.js";s:4:"91e6";s:43:"tinyMCE/plugins/autosave/langs/uk_CP1251.js";s:4:"e21e";s:43:"tinyMCE/plugins/autosave/langs/uk_KOI8-U.js";s:4:"d083";s:36:"tinyMCE/plugins/autosave/langs/vi.js";s:4:"0bb1";s:39:"tinyMCE/plugins/autosave/langs/zh_cn.js";s:4:"5ccf";s:44:"tinyMCE/plugins/autosave/langs/zh_cn_utf8.js";s:4:"6f67";s:39:"tinyMCE/plugins/autosave/langs/zh_tw.js";s:4:"f741";s:44:"tinyMCE/plugins/autosave/langs/zh_tw_utf8.js";s:4:"a7ff";s:39:"tinyMCE/plugins/bbcode/editor_plugin.js";s:4:"b62d";s:43:"tinyMCE/plugins/bbcode/editor_plugin_src.js";s:4:"7107";s:40:"tinyMCE/plugins/cleanup/editor_plugin.js";s:4:"d41d";s:44:"tinyMCE/plugins/cleanup/editor_plugin_src.js";s:4:"b817";s:34:"tinyMCE/plugins/cleanup/readme.txt";s:4:"d8b2";s:44:"tinyMCE/plugins/contextmenu/editor_plugin.js";s:4:"4c9a";s:48:"tinyMCE/plugins/contextmenu/editor_plugin_src.js";s:4:"7325";s:38:"tinyMCE/plugins/contextmenu/readme.txt";s:4:"fe81";s:47:"tinyMCE/plugins/contextmenu/css/contextmenu.css";s:4:"c665";s:45:"tinyMCE/plugins/contextmenu/images/spacer.gif";s:4:"12bf";s:33:"tinyMCE/plugins/devkit/devkit.htm";s:4:"56f1";s:39:"tinyMCE/plugins/devkit/editor_plugin.js";s:4:"af15";s:43:"tinyMCE/plugins/devkit/editor_plugin_src.js";s:4:"ae9e";s:37:"tinyMCE/plugins/devkit/css/devkit.css";s:4:"1fde";s:40:"tinyMCE/plugins/devkit/css/devkit_ui.css";s:4:"ca3e";s:43:"tinyMCE/plugins/devkit/images/flip_down.gif";s:4:"9dd8";s:41:"tinyMCE/plugins/devkit/images/flip_up.gif";s:4:"a1f6";s:41:"tinyMCE/plugins/devkit/jscripts/devkit.js";s:4:"45d7";s:39:"tinyMCE/plugins/devkit/jscripts/diff.js";s:4:"114f";s:34:"tinyMCE/plugins/devkit/langs/en.js";s:4:"4658";s:47:"tinyMCE/plugins/directionality/editor_plugin.js";s:4:"fec5";s:51:"tinyMCE/plugins/directionality/editor_plugin_src.js";s:4:"4fbe";s:41:"tinyMCE/plugins/directionality/readme.txt";s:4:"fe81";s:45:"tinyMCE/plugins/directionality/images/ltr.gif";s:4:"8586";s:45:"tinyMCE/plugins/directionality/images/rtl.gif";s:4:"6998";s:42:"tinyMCE/plugins/directionality/langs/ca.js";s:4:"3c6f";s:42:"tinyMCE/plugins/directionality/langs/cs.js";s:4:"758e";s:42:"tinyMCE/plugins/directionality/langs/cy.js";s:4:"5c91";s:42:"tinyMCE/plugins/directionality/langs/da.js";s:4:"d556";s:42:"tinyMCE/plugins/directionality/langs/de.js";s:4:"421d";s:42:"tinyMCE/plugins/directionality/langs/el.js";s:4:"f694";s:42:"tinyMCE/plugins/directionality/langs/en.js";s:4:"3c6f";s:42:"tinyMCE/plugins/directionality/langs/es.js";s:4:"ac74";s:42:"tinyMCE/plugins/directionality/langs/fa.js";s:4:"3c6f";s:42:"tinyMCE/plugins/directionality/langs/fi.js";s:4:"bb38";s:42:"tinyMCE/plugins/directionality/langs/fr.js";s:4:"4b8b";s:45:"tinyMCE/plugins/directionality/langs/fr_ca.js";s:4:"c7f3";s:42:"tinyMCE/plugins/directionality/langs/he.js";s:4:"7bd4";s:42:"tinyMCE/plugins/directionality/langs/hu.js";s:4:"ad76";s:42:"tinyMCE/plugins/directionality/langs/is.js";s:4:"b5c5";s:42:"tinyMCE/plugins/directionality/langs/it.js";s:4:"12ba";s:42:"tinyMCE/plugins/directionality/langs/ja.js";s:4:"a467";s:49:"tinyMCE/plugins/directionality/langs/ja_euc-jp.js";s:4:"8eeb";s:52:"tinyMCE/plugins/directionality/langs/ja_shift_jis.js";s:4:"ce2c";s:48:"tinyMCE/plugins/directionality/langs/ja_utf-8.js";s:4:"fb1a";s:42:"tinyMCE/plugins/directionality/langs/ko.js";s:4:"3c6f";s:42:"tinyMCE/plugins/directionality/langs/nb.js";s:4:"981d";s:42:"tinyMCE/plugins/directionality/langs/nl.js";s:4:"36b2";s:42:"tinyMCE/plugins/directionality/langs/nn.js";s:4:"f113";s:42:"tinyMCE/plugins/directionality/langs/pl.js";s:4:"9943";s:45:"tinyMCE/plugins/directionality/langs/pt_br.js";s:4:"6301";s:42:"tinyMCE/plugins/directionality/langs/ro.js";s:4:"ead9";s:42:"tinyMCE/plugins/directionality/langs/ru.js";s:4:"b162";s:49:"tinyMCE/plugins/directionality/langs/ru_CP1251.js";s:4:"85d4";s:49:"tinyMCE/plugins/directionality/langs/ru_KOI8-R.js";s:4:"38f0";s:42:"tinyMCE/plugins/directionality/langs/si.js";s:4:"77d3";s:42:"tinyMCE/plugins/directionality/langs/sk.js";s:4:"21d9";s:42:"tinyMCE/plugins/directionality/langs/sq.js";s:4:"e1ca";s:42:"tinyMCE/plugins/directionality/langs/sr.js";s:4:"e70d";s:42:"tinyMCE/plugins/directionality/langs/sv.js";s:4:"fb18";s:47:"tinyMCE/plugins/directionality/langs/sv_utf8.js";s:4:"ffb9";s:42:"tinyMCE/plugins/directionality/langs/tr.js";s:4:"8560";s:42:"tinyMCE/plugins/directionality/langs/uk.js";s:4:"8253";s:49:"tinyMCE/plugins/directionality/langs/uk_CP1251.js";s:4:"a152";s:49:"tinyMCE/plugins/directionality/langs/uk_KOI8-U.js";s:4:"8adc";s:42:"tinyMCE/plugins/directionality/langs/vi.js";s:4:"bf11";s:45:"tinyMCE/plugins/directionality/langs/zh_cn.js";s:4:"c9b2";s:50:"tinyMCE/plugins/directionality/langs/zh_cn_utf8.js";s:4:"de23";s:45:"tinyMCE/plugins/directionality/langs/zh_tw.js";s:4:"3fbd";s:50:"tinyMCE/plugins/directionality/langs/zh_tw_utf8.js";s:4:"d53b";s:41:"tinyMCE/plugins/emotions/editor_plugin.js";s:4:"a83a";s:45:"tinyMCE/plugins/emotions/editor_plugin_src.js";s:4:"04fd";s:37:"tinyMCE/plugins/emotions/emotions.htm";s:4:"9f1a";s:35:"tinyMCE/plugins/emotions/readme.txt";s:4:"fe81";s:44:"tinyMCE/plugins/emotions/images/emotions.gif";s:4:"a8be";s:42:"tinyMCE/plugins/emotions/images/readme.txt";s:4:"1132";s:47:"tinyMCE/plugins/emotions/images/smiley-cool.gif";s:4:"e26e";s:46:"tinyMCE/plugins/emotions/images/smiley-cry.gif";s:4:"e72b";s:53:"tinyMCE/plugins/emotions/images/smiley-embarassed.gif";s:4:"d591";s:56:"tinyMCE/plugins/emotions/images/smiley-foot-in-mouth.gif";s:4:"9052";s:48:"tinyMCE/plugins/emotions/images/smiley-frown.gif";s:4:"5993";s:51:"tinyMCE/plugins/emotions/images/smiley-innocent.gif";s:4:"ec04";s:47:"tinyMCE/plugins/emotions/images/smiley-kiss.gif";s:4:"4ae8";s:51:"tinyMCE/plugins/emotions/images/smiley-laughing.gif";s:4:"b691";s:54:"tinyMCE/plugins/emotions/images/smiley-money-mouth.gif";s:4:"11c1";s:49:"tinyMCE/plugins/emotions/images/smiley-sealed.gif";s:4:"28b9";s:48:"tinyMCE/plugins/emotions/images/smiley-smile.gif";s:4:"c676";s:52:"tinyMCE/plugins/emotions/images/smiley-surprised.gif";s:4:"eff5";s:53:"tinyMCE/plugins/emotions/images/smiley-tongue-out.gif";s:4:"5ec3";s:52:"tinyMCE/plugins/emotions/images/smiley-undecided.gif";s:4:"3c0c";s:47:"tinyMCE/plugins/emotions/images/smiley-wink.gif";s:4:"4ae6";s:47:"tinyMCE/plugins/emotions/images/smiley-yell.gif";s:4:"19bb";s:46:"tinyMCE/plugins/emotions/jscripts/functions.js";s:4:"3d90";s:36:"tinyMCE/plugins/emotions/langs/ca.js";s:4:"282a";s:36:"tinyMCE/plugins/emotions/langs/cs.js";s:4:"e02b";s:36:"tinyMCE/plugins/emotions/langs/cy.js";s:4:"77e0";s:36:"tinyMCE/plugins/emotions/langs/da.js";s:4:"5908";s:36:"tinyMCE/plugins/emotions/langs/de.js";s:4:"0778";s:36:"tinyMCE/plugins/emotions/langs/el.js";s:4:"0bc1";s:36:"tinyMCE/plugins/emotions/langs/en.js";s:4:"282a";s:36:"tinyMCE/plugins/emotions/langs/es.js";s:4:"eba1";s:36:"tinyMCE/plugins/emotions/langs/fa.js";s:4:"5800";s:36:"tinyMCE/plugins/emotions/langs/fi.js";s:4:"1338";s:36:"tinyMCE/plugins/emotions/langs/fr.js";s:4:"f7b2";s:39:"tinyMCE/plugins/emotions/langs/fr_ca.js";s:4:"807f";s:36:"tinyMCE/plugins/emotions/langs/he.js";s:4:"c6d7";s:36:"tinyMCE/plugins/emotions/langs/hu.js";s:4:"12bc";s:36:"tinyMCE/plugins/emotions/langs/is.js";s:4:"4b03";s:36:"tinyMCE/plugins/emotions/langs/it.js";s:4:"a08c";s:36:"tinyMCE/plugins/emotions/langs/ja.js";s:4:"244b";s:43:"tinyMCE/plugins/emotions/langs/ja_euc-jp.js";s:4:"a4a7";s:46:"tinyMCE/plugins/emotions/langs/ja_shift_jis.js";s:4:"32fb";s:42:"tinyMCE/plugins/emotions/langs/ja_utf-8.js";s:4:"90e5";s:36:"tinyMCE/plugins/emotions/langs/ko.js";s:4:"6183";s:36:"tinyMCE/plugins/emotions/langs/nb.js";s:4:"4834";s:36:"tinyMCE/plugins/emotions/langs/nl.js";s:4:"d318";s:36:"tinyMCE/plugins/emotions/langs/nn.js";s:4:"beaa";s:36:"tinyMCE/plugins/emotions/langs/pl.js";s:4:"0a78";s:39:"tinyMCE/plugins/emotions/langs/pt_br.js";s:4:"ffb3";s:36:"tinyMCE/plugins/emotions/langs/ro.js";s:4:"9675";s:36:"tinyMCE/plugins/emotions/langs/ru.js";s:4:"8550";s:43:"tinyMCE/plugins/emotions/langs/ru_CP1251.js";s:4:"1342";s:43:"tinyMCE/plugins/emotions/langs/ru_KOI8-R.js";s:4:"e630";s:36:"tinyMCE/plugins/emotions/langs/si.js";s:4:"4512";s:36:"tinyMCE/plugins/emotions/langs/sk.js";s:4:"c608";s:36:"tinyMCE/plugins/emotions/langs/sq.js";s:4:"f812";s:36:"tinyMCE/plugins/emotions/langs/sr.js";s:4:"e904";s:36:"tinyMCE/plugins/emotions/langs/sv.js";s:4:"b9f9";s:41:"tinyMCE/plugins/emotions/langs/sv_utf8.js";s:4:"b9f9";s:36:"tinyMCE/plugins/emotions/langs/tr.js";s:4:"f120";s:36:"tinyMCE/plugins/emotions/langs/uk.js";s:4:"7d74";s:43:"tinyMCE/plugins/emotions/langs/uk_CP1251.js";s:4:"1c2f";s:43:"tinyMCE/plugins/emotions/langs/uk_KOI8-U.js";s:4:"0ad9";s:36:"tinyMCE/plugins/emotions/langs/vi.js";s:4:"3bc2";s:39:"tinyMCE/plugins/emotions/langs/zh_cn.js";s:4:"5441";s:44:"tinyMCE/plugins/emotions/langs/zh_cn_utf8.js";s:4:"78ff";s:39:"tinyMCE/plugins/emotions/langs/zh_tw.js";s:4:"3f4d";s:44:"tinyMCE/plugins/emotions/langs/zh_tw_utf8.js";s:4:"d5d8";s:38:"tinyMCE/plugins/flash/editor_plugin.js";s:4:"7386";s:42:"tinyMCE/plugins/flash/editor_plugin_src.js";s:4:"ab3e";s:31:"tinyMCE/plugins/flash/flash.htm";s:4:"7721";s:32:"tinyMCE/plugins/flash/readme.txt";s:4:"fe81";s:37:"tinyMCE/plugins/flash/css/content.css";s:4:"1d47";s:35:"tinyMCE/plugins/flash/css/flash.css";s:4:"c1b2";s:38:"tinyMCE/plugins/flash/images/flash.gif";s:4:"6c69";s:39:"tinyMCE/plugins/flash/jscripts/flash.js";s:4:"19a7";s:33:"tinyMCE/plugins/flash/langs/ca.js";s:4:"0a89";s:33:"tinyMCE/plugins/flash/langs/cs.js";s:4:"2515";s:33:"tinyMCE/plugins/flash/langs/cy.js";s:4:"f301";s:33:"tinyMCE/plugins/flash/langs/da.js";s:4:"d69b";s:33:"tinyMCE/plugins/flash/langs/de.js";s:4:"2162";s:33:"tinyMCE/plugins/flash/langs/el.js";s:4:"140c";s:33:"tinyMCE/plugins/flash/langs/en.js";s:4:"0a89";s:33:"tinyMCE/plugins/flash/langs/es.js";s:4:"9b70";s:33:"tinyMCE/plugins/flash/langs/fa.js";s:4:"0bad";s:33:"tinyMCE/plugins/flash/langs/fi.js";s:4:"3e9f";s:33:"tinyMCE/plugins/flash/langs/fr.js";s:4:"08a1";s:36:"tinyMCE/plugins/flash/langs/fr_ca.js";s:4:"9309";s:33:"tinyMCE/plugins/flash/langs/he.js";s:4:"8e56";s:33:"tinyMCE/plugins/flash/langs/hu.js";s:4:"afd9";s:33:"tinyMCE/plugins/flash/langs/is.js";s:4:"bf49";s:33:"tinyMCE/plugins/flash/langs/it.js";s:4:"66e0";s:33:"tinyMCE/plugins/flash/langs/ja.js";s:4:"9550";s:40:"tinyMCE/plugins/flash/langs/ja_euc-jp.js";s:4:"1c13";s:43:"tinyMCE/plugins/flash/langs/ja_shift_jis.js";s:4:"9c0b";s:39:"tinyMCE/plugins/flash/langs/ja_utf-8.js";s:4:"f553";s:33:"tinyMCE/plugins/flash/langs/ko.js";s:4:"0a89";s:33:"tinyMCE/plugins/flash/langs/nb.js";s:4:"cffc";s:33:"tinyMCE/plugins/flash/langs/nl.js";s:4:"d205";s:33:"tinyMCE/plugins/flash/langs/nn.js";s:4:"a1b1";s:33:"tinyMCE/plugins/flash/langs/pl.js";s:4:"6d94";s:36:"tinyMCE/plugins/flash/langs/pt_br.js";s:4:"45ee";s:33:"tinyMCE/plugins/flash/langs/ro.js";s:4:"3a27";s:33:"tinyMCE/plugins/flash/langs/ru.js";s:4:"a37d";s:40:"tinyMCE/plugins/flash/langs/ru_CP1251.js";s:4:"3195";s:40:"tinyMCE/plugins/flash/langs/ru_KOI8-R.js";s:4:"756b";s:33:"tinyMCE/plugins/flash/langs/si.js";s:4:"1b11";s:33:"tinyMCE/plugins/flash/langs/sk.js";s:4:"3fa3";s:33:"tinyMCE/plugins/flash/langs/sq.js";s:4:"857d";s:33:"tinyMCE/plugins/flash/langs/sr.js";s:4:"8d7b";s:33:"tinyMCE/plugins/flash/langs/sv.js";s:4:"7575";s:38:"tinyMCE/plugins/flash/langs/sv_utf8.js";s:4:"7575";s:33:"tinyMCE/plugins/flash/langs/tr.js";s:4:"7b1a";s:33:"tinyMCE/plugins/flash/langs/uk.js";s:4:"3a84";s:40:"tinyMCE/plugins/flash/langs/uk_CP1251.js";s:4:"12e3";s:40:"tinyMCE/plugins/flash/langs/uk_KOI8-U.js";s:4:"eb02";s:33:"tinyMCE/plugins/flash/langs/vi.js";s:4:"1f52";s:36:"tinyMCE/plugins/flash/langs/zh_cn.js";s:4:"cb9e";s:41:"tinyMCE/plugins/flash/langs/zh_cn_utf8.js";s:4:"0ab2";s:36:"tinyMCE/plugins/flash/langs/zh_tw.js";s:4:"c705";s:41:"tinyMCE/plugins/flash/langs/zh_tw_utf8.js";s:4:"fb10";s:34:"tinyMCE/plugins/fullpage/blank.htm";s:4:"d3a4";s:41:"tinyMCE/plugins/fullpage/editor_plugin.js";s:4:"7a59";s:45:"tinyMCE/plugins/fullpage/editor_plugin_src.js";s:4:"83ba";s:37:"tinyMCE/plugins/fullpage/fullpage.htm";s:4:"5584";s:41:"tinyMCE/plugins/fullpage/css/fullpage.css";s:4:"ab5c";s:39:"tinyMCE/plugins/fullpage/images/add.gif";s:4:"1443";s:44:"tinyMCE/plugins/fullpage/images/fullpage.gif";s:4:"09ba";s:45:"tinyMCE/plugins/fullpage/images/move_down.gif";s:4:"bb50";s:43:"tinyMCE/plugins/fullpage/images/move_up.gif";s:4:"0391";s:42:"tinyMCE/plugins/fullpage/images/remove.gif";s:4:"b25c";s:45:"tinyMCE/plugins/fullpage/jscripts/fullpage.js";s:4:"40b0";s:36:"tinyMCE/plugins/fullpage/langs/ca.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/cs.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/cy.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/da.js";s:4:"d944";s:36:"tinyMCE/plugins/fullpage/langs/de.js";s:4:"f070";s:36:"tinyMCE/plugins/fullpage/langs/el.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/en.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/es.js";s:4:"736d";s:36:"tinyMCE/plugins/fullpage/langs/fa.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/fi.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/fr.js";s:4:"fa14";s:39:"tinyMCE/plugins/fullpage/langs/fr_ca.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/he.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/hu.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/is.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/it.js";s:4:"4925";s:36:"tinyMCE/plugins/fullpage/langs/ja.js";s:4:"ba6d";s:43:"tinyMCE/plugins/fullpage/langs/ja_euc-jp.js";s:4:"74a3";s:46:"tinyMCE/plugins/fullpage/langs/ja_shift_jis.js";s:4:"74a3";s:42:"tinyMCE/plugins/fullpage/langs/ja_utf-8.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/ko.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/nb.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/nl.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/nn.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/pl.js";s:4:"74a3";s:39:"tinyMCE/plugins/fullpage/langs/pt_br.js";s:4:"550f";s:36:"tinyMCE/plugins/fullpage/langs/ro.js";s:4:"c2fe";s:36:"tinyMCE/plugins/fullpage/langs/ru.js";s:4:"e73c";s:43:"tinyMCE/plugins/fullpage/langs/ru_CP1251.js";s:4:"6cc1";s:43:"tinyMCE/plugins/fullpage/langs/ru_KOI8-R.js";s:4:"441c";s:36:"tinyMCE/plugins/fullpage/langs/si.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/sk.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/sq.js";s:4:"9b15";s:36:"tinyMCE/plugins/fullpage/langs/sr.js";s:4:"562b";s:36:"tinyMCE/plugins/fullpage/langs/sv.js";s:4:"74a3";s:41:"tinyMCE/plugins/fullpage/langs/sv_utf8.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/tr.js";s:4:"74a3";s:36:"tinyMCE/plugins/fullpage/langs/uk.js";s:4:"d97d";s:43:"tinyMCE/plugins/fullpage/langs/uk_CP1251.js";s:4:"d754";s:43:"tinyMCE/plugins/fullpage/langs/uk_KOI8-U.js";s:4:"44ec";s:36:"tinyMCE/plugins/fullpage/langs/vi.js";s:4:"0da3";s:39:"tinyMCE/plugins/fullpage/langs/zh_cn.js";s:4:"b5f9";s:44:"tinyMCE/plugins/fullpage/langs/zh_cn_utf8.js";s:4:"06ea";s:39:"tinyMCE/plugins/fullpage/langs/zh_tw.js";s:4:"74a3";s:44:"tinyMCE/plugins/fullpage/langs/zh_tw_utf8.js";s:4:"74a3";s:43:"tinyMCE/plugins/fullscreen/editor_plugin.js";s:4:"2399";s:47:"tinyMCE/plugins/fullscreen/editor_plugin_src.js";s:4:"1ccf";s:41:"tinyMCE/plugins/fullscreen/fullscreen.htm";s:4:"47af";s:37:"tinyMCE/plugins/fullscreen/readme.txt";s:4:"fe81";s:39:"tinyMCE/plugins/fullscreen/css/page.css";s:4:"38e5";s:48:"tinyMCE/plugins/fullscreen/images/fullscreen.gif";s:4:"88d0";s:38:"tinyMCE/plugins/fullscreen/langs/ca.js";s:4:"ea15";s:38:"tinyMCE/plugins/fullscreen/langs/cs.js";s:4:"072d";s:38:"tinyMCE/plugins/fullscreen/langs/cy.js";s:4:"4b73";s:38:"tinyMCE/plugins/fullscreen/langs/da.js";s:4:"f237";s:38:"tinyMCE/plugins/fullscreen/langs/de.js";s:4:"33fd";s:38:"tinyMCE/plugins/fullscreen/langs/el.js";s:4:"6009";s:38:"tinyMCE/plugins/fullscreen/langs/en.js";s:4:"f631";s:38:"tinyMCE/plugins/fullscreen/langs/es.js";s:4:"1e5b";s:38:"tinyMCE/plugins/fullscreen/langs/fa.js";s:4:"ea15";s:38:"tinyMCE/plugins/fullscreen/langs/fi.js";s:4:"4519";s:38:"tinyMCE/plugins/fullscreen/langs/fr.js";s:4:"b117";s:41:"tinyMCE/plugins/fullscreen/langs/fr_ca.js";s:4:"c143";s:38:"tinyMCE/plugins/fullscreen/langs/he.js";s:4:"3a23";s:38:"tinyMCE/plugins/fullscreen/langs/hu.js";s:4:"c756";s:38:"tinyMCE/plugins/fullscreen/langs/is.js";s:4:"e57e";s:38:"tinyMCE/plugins/fullscreen/langs/it.js";s:4:"8fdc";s:38:"tinyMCE/plugins/fullscreen/langs/ja.js";s:4:"dbd8";s:45:"tinyMCE/plugins/fullscreen/langs/ja_euc-jp.js";s:4:"561b";s:48:"tinyMCE/plugins/fullscreen/langs/ja_shift_jis.js";s:4:"18b5";s:44:"tinyMCE/plugins/fullscreen/langs/ja_utf-8.js";s:4:"e56f";s:38:"tinyMCE/plugins/fullscreen/langs/ko.js";s:4:"ea15";s:38:"tinyMCE/plugins/fullscreen/langs/nb.js";s:4:"3c4d";s:38:"tinyMCE/plugins/fullscreen/langs/nl.js";s:4:"799b";s:38:"tinyMCE/plugins/fullscreen/langs/nn.js";s:4:"b84d";s:38:"tinyMCE/plugins/fullscreen/langs/pl.js";s:4:"e518";s:41:"tinyMCE/plugins/fullscreen/langs/pt_br.js";s:4:"60a2";s:38:"tinyMCE/plugins/fullscreen/langs/ro.js";s:4:"3682";s:38:"tinyMCE/plugins/fullscreen/langs/ru.js";s:4:"c772";s:45:"tinyMCE/plugins/fullscreen/langs/ru_CP1251.js";s:4:"d9e4";s:45:"tinyMCE/plugins/fullscreen/langs/ru_KOI8-R.js";s:4:"a1ea";s:38:"tinyMCE/plugins/fullscreen/langs/si.js";s:4:"dc17";s:38:"tinyMCE/plugins/fullscreen/langs/sk.js";s:4:"b341";s:38:"tinyMCE/plugins/fullscreen/langs/sq.js";s:4:"2b3c";s:38:"tinyMCE/plugins/fullscreen/langs/sr.js";s:4:"5540";s:38:"tinyMCE/plugins/fullscreen/langs/sv.js";s:4:"f2b8";s:43:"tinyMCE/plugins/fullscreen/langs/sv_utf8.js";s:4:"18b0";s:38:"tinyMCE/plugins/fullscreen/langs/tr.js";s:4:"2bb2";s:38:"tinyMCE/plugins/fullscreen/langs/uk.js";s:4:"14f4";s:45:"tinyMCE/plugins/fullscreen/langs/uk_CP1251.js";s:4:"fee0";s:45:"tinyMCE/plugins/fullscreen/langs/uk_KOI8-U.js";s:4:"775a";s:38:"tinyMCE/plugins/fullscreen/langs/vi.js";s:4:"5c8c";s:41:"tinyMCE/plugins/fullscreen/langs/zh_cn.js";s:4:"0ca4";s:46:"tinyMCE/plugins/fullscreen/langs/zh_cn_utf8.js";s:4:"1568";s:41:"tinyMCE/plugins/fullscreen/langs/zh_tw.js";s:4:"5ee4";s:46:"tinyMCE/plugins/fullscreen/langs/zh_tw_utf8.js";s:4:"4d78";s:40:"tinyMCE/plugins/iespell/editor_plugin.js";s:4:"f46e";s:44:"tinyMCE/plugins/iespell/editor_plugin_src.js";s:4:"9a01";s:34:"tinyMCE/plugins/iespell/readme.txt";s:4:"fe81";s:42:"tinyMCE/plugins/iespell/images/iespell.gif";s:4:"eb12";s:35:"tinyMCE/plugins/iespell/langs/ca.js";s:4:"6b44";s:35:"tinyMCE/plugins/iespell/langs/cs.js";s:4:"474e";s:35:"tinyMCE/plugins/iespell/langs/cy.js";s:4:"89c5";s:35:"tinyMCE/plugins/iespell/langs/da.js";s:4:"628c";s:35:"tinyMCE/plugins/iespell/langs/de.js";s:4:"a352";s:35:"tinyMCE/plugins/iespell/langs/el.js";s:4:"3dec";s:35:"tinyMCE/plugins/iespell/langs/en.js";s:4:"6b44";s:35:"tinyMCE/plugins/iespell/langs/es.js";s:4:"2cb8";s:35:"tinyMCE/plugins/iespell/langs/fa.js";s:4:"6b44";s:35:"tinyMCE/plugins/iespell/langs/fi.js";s:4:"6b44";s:35:"tinyMCE/plugins/iespell/langs/fr.js";s:4:"4659";s:38:"tinyMCE/plugins/iespell/langs/fr_ca.js";s:4:"83d6";s:35:"tinyMCE/plugins/iespell/langs/he.js";s:4:"5f6b";s:35:"tinyMCE/plugins/iespell/langs/hu.js";s:4:"f866";s:35:"tinyMCE/plugins/iespell/langs/is.js";s:4:"fae3";s:35:"tinyMCE/plugins/iespell/langs/it.js";s:4:"983f";s:35:"tinyMCE/plugins/iespell/langs/ja.js";s:4:"c27f";s:42:"tinyMCE/plugins/iespell/langs/ja_euc-jp.js";s:4:"0a32";s:45:"tinyMCE/plugins/iespell/langs/ja_shift_jis.js";s:4:"e9d9";s:41:"tinyMCE/plugins/iespell/langs/ja_utf-8.js";s:4:"636a";s:35:"tinyMCE/plugins/iespell/langs/ko.js";s:4:"9cea";s:35:"tinyMCE/plugins/iespell/langs/nb.js";s:4:"6096";s:35:"tinyMCE/plugins/iespell/langs/nl.js";s:4:"ad7b";s:35:"tinyMCE/plugins/iespell/langs/nn.js";s:4:"a6b8";s:35:"tinyMCE/plugins/iespell/langs/pl.js";s:4:"de25";s:38:"tinyMCE/plugins/iespell/langs/pt_br.js";s:4:"0b3b";s:35:"tinyMCE/plugins/iespell/langs/ro.js";s:4:"da21";s:35:"tinyMCE/plugins/iespell/langs/ru.js";s:4:"f14d";s:42:"tinyMCE/plugins/iespell/langs/ru_CP1251.js";s:4:"0e22";s:42:"tinyMCE/plugins/iespell/langs/ru_KOI8-R.js";s:4:"4aa6";s:35:"tinyMCE/plugins/iespell/langs/si.js";s:4:"2332";s:35:"tinyMCE/plugins/iespell/langs/sk.js";s:4:"8886";s:35:"tinyMCE/plugins/iespell/langs/sq.js";s:4:"6c01";s:35:"tinyMCE/plugins/iespell/langs/sr.js";s:4:"950a";s:35:"tinyMCE/plugins/iespell/langs/sv.js";s:4:"a38a";s:40:"tinyMCE/plugins/iespell/langs/sv_utf8.js";s:4:"a38a";s:35:"tinyMCE/plugins/iespell/langs/tr.js";s:4:"2a70";s:35:"tinyMCE/plugins/iespell/langs/uk.js";s:4:"0649";s:42:"tinyMCE/plugins/iespell/langs/uk_CP1251.js";s:4:"28e3";s:42:"tinyMCE/plugins/iespell/langs/uk_KOI8-U.js";s:4:"b250";s:35:"tinyMCE/plugins/iespell/langs/vi.js";s:4:"cdc6";s:38:"tinyMCE/plugins/iespell/langs/zh_cn.js";s:4:"5b0f";s:43:"tinyMCE/plugins/iespell/langs/zh_cn_utf8.js";s:4:"78d3";s:38:"tinyMCE/plugins/iespell/langs/zh_tw.js";s:4:"24ed";s:43:"tinyMCE/plugins/iespell/langs/zh_tw_utf8.js";s:4:"875f";s:45:"tinyMCE/plugins/inlinepopups/editor_plugin.js";s:4:"d4da";s:49:"tinyMCE/plugins/inlinepopups/editor_plugin_src.js";s:4:"2c20";s:39:"tinyMCE/plugins/inlinepopups/readme.txt";s:4:"d41d";s:48:"tinyMCE/plugins/inlinepopups/css/inlinepopup.css";s:4:"3234";s:46:"tinyMCE/plugins/inlinepopups/images/spacer.gif";s:4:"221d";s:52:"tinyMCE/plugins/inlinepopups/images/window_close.gif";s:4:"dbd0";s:55:"tinyMCE/plugins/inlinepopups/images/window_maximize.gif";s:4:"b346";s:55:"tinyMCE/plugins/inlinepopups/images/window_minimize.gif";s:4:"db7c";s:53:"tinyMCE/plugins/inlinepopups/images/window_resize.gif";s:4:"7bec";s:50:"tinyMCE/plugins/inlinepopups/jscripts/mcwindows.js";s:4:"c8bd";s:47:"tinyMCE/plugins/insertdatetime/editor_plugin.js";s:4:"070f";s:51:"tinyMCE/plugins/insertdatetime/editor_plugin_src.js";s:4:"6e34";s:41:"tinyMCE/plugins/insertdatetime/readme.txt";s:4:"fe81";s:52:"tinyMCE/plugins/insertdatetime/images/insertdate.gif";s:4:"867e";s:52:"tinyMCE/plugins/insertdatetime/images/inserttime.gif";s:4:"25d0";s:42:"tinyMCE/plugins/insertdatetime/langs/ca.js";s:4:"8be4";s:42:"tinyMCE/plugins/insertdatetime/langs/cs.js";s:4:"acdb";s:42:"tinyMCE/plugins/insertdatetime/langs/cy.js";s:4:"8fc7";s:42:"tinyMCE/plugins/insertdatetime/langs/da.js";s:4:"c276";s:42:"tinyMCE/plugins/insertdatetime/langs/de.js";s:4:"ec14";s:42:"tinyMCE/plugins/insertdatetime/langs/el.js";s:4:"d8ab";s:42:"tinyMCE/plugins/insertdatetime/langs/en.js";s:4:"8be4";s:42:"tinyMCE/plugins/insertdatetime/langs/es.js";s:4:"cfbd";s:42:"tinyMCE/plugins/insertdatetime/langs/fa.js";s:4:"b3b5";s:42:"tinyMCE/plugins/insertdatetime/langs/fi.js";s:4:"582e";s:42:"tinyMCE/plugins/insertdatetime/langs/fr.js";s:4:"cfd1";s:45:"tinyMCE/plugins/insertdatetime/langs/fr_ca.js";s:4:"0028";s:42:"tinyMCE/plugins/insertdatetime/langs/he.js";s:4:"04e3";s:42:"tinyMCE/plugins/insertdatetime/langs/hu.js";s:4:"652b";s:42:"tinyMCE/plugins/insertdatetime/langs/is.js";s:4:"30c4";s:42:"tinyMCE/plugins/insertdatetime/langs/it.js";s:4:"ffee";s:42:"tinyMCE/plugins/insertdatetime/langs/ja.js";s:4:"223b";s:49:"tinyMCE/plugins/insertdatetime/langs/ja_euc-jp.js";s:4:"e2db";s:52:"tinyMCE/plugins/insertdatetime/langs/ja_shift_jis.js";s:4:"cbc5";s:48:"tinyMCE/plugins/insertdatetime/langs/ja_utf-8.js";s:4:"bb14";s:42:"tinyMCE/plugins/insertdatetime/langs/ko.js";s:4:"d26e";s:42:"tinyMCE/plugins/insertdatetime/langs/nb.js";s:4:"961f";s:42:"tinyMCE/plugins/insertdatetime/langs/nl.js";s:4:"fdfb";s:42:"tinyMCE/plugins/insertdatetime/langs/nn.js";s:4:"d32f";s:42:"tinyMCE/plugins/insertdatetime/langs/pl.js";s:4:"a8a4";s:45:"tinyMCE/plugins/insertdatetime/langs/pt_br.js";s:4:"e9a0";s:42:"tinyMCE/plugins/insertdatetime/langs/ro.js";s:4:"7cad";s:42:"tinyMCE/plugins/insertdatetime/langs/ru.js";s:4:"15b4";s:49:"tinyMCE/plugins/insertdatetime/langs/ru_CP1251.js";s:4:"abc9";s:49:"tinyMCE/plugins/insertdatetime/langs/ru_KOI8-R.js";s:4:"1e05";s:42:"tinyMCE/plugins/insertdatetime/langs/si.js";s:4:"305a";s:42:"tinyMCE/plugins/insertdatetime/langs/sk.js";s:4:"07c6";s:42:"tinyMCE/plugins/insertdatetime/langs/sq.js";s:4:"59b5";s:42:"tinyMCE/plugins/insertdatetime/langs/sr.js";s:4:"5da2";s:42:"tinyMCE/plugins/insertdatetime/langs/sv.js";s:4:"78c3";s:47:"tinyMCE/plugins/insertdatetime/langs/sv_utf8.js";s:4:"78c3";s:42:"tinyMCE/plugins/insertdatetime/langs/tr.js";s:4:"6706";s:42:"tinyMCE/plugins/insertdatetime/langs/uk.js";s:4:"f9ac";s:49:"tinyMCE/plugins/insertdatetime/langs/uk_CP1251.js";s:4:"f001";s:49:"tinyMCE/plugins/insertdatetime/langs/uk_KOI8-U.js";s:4:"bbf7";s:42:"tinyMCE/plugins/insertdatetime/langs/vi.js";s:4:"8a24";s:45:"tinyMCE/plugins/insertdatetime/langs/zh_cn.js";s:4:"6e13";s:50:"tinyMCE/plugins/insertdatetime/langs/zh_cn_utf8.js";s:4:"9f68";s:45:"tinyMCE/plugins/insertdatetime/langs/zh_tw.js";s:4:"3910";s:50:"tinyMCE/plugins/insertdatetime/langs/zh_tw_utf8.js";s:4:"f114";s:38:"tinyMCE/plugins/layer/editor_plugin.js";s:4:"1493";s:42:"tinyMCE/plugins/layer/editor_plugin_src.js";s:4:"95f5";s:32:"tinyMCE/plugins/layer/readme.txt";s:4:"fe81";s:41:"tinyMCE/plugins/layer/images/absolute.gif";s:4:"a6df";s:41:"tinyMCE/plugins/layer/images/backward.gif";s:4:"1437";s:40:"tinyMCE/plugins/layer/images/forward.gif";s:4:"8f70";s:45:"tinyMCE/plugins/layer/images/insert_layer.gif";s:4:"07dd";s:44:"tinyMCE/plugins/layer/images/insertlayer.gif";s:4:"07dd";s:45:"tinyMCE/plugins/layer/images/movebackward.gif";s:4:"1437";s:44:"tinyMCE/plugins/layer/images/moveforward.gif";s:4:"8f70";s:33:"tinyMCE/plugins/layer/langs/ca.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/cs.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/cy.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/da.js";s:4:"1126";s:33:"tinyMCE/plugins/layer/langs/de.js";s:4:"bdde";s:33:"tinyMCE/plugins/layer/langs/el.js";s:4:"df0e";s:33:"tinyMCE/plugins/layer/langs/en.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/es.js";s:4:"a25a";s:33:"tinyMCE/plugins/layer/langs/fa.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/fi.js";s:4:"662f";s:33:"tinyMCE/plugins/layer/langs/fr.js";s:4:"6a04";s:36:"tinyMCE/plugins/layer/langs/fr_ca.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/he.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/hu.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/is.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/it.js";s:4:"a3d5";s:33:"tinyMCE/plugins/layer/langs/ja.js";s:4:"31dc";s:40:"tinyMCE/plugins/layer/langs/ja_euc-jp.js";s:4:"b6f7";s:43:"tinyMCE/plugins/layer/langs/ja_shift_jis.js";s:4:"b6f7";s:39:"tinyMCE/plugins/layer/langs/ja_utf-8.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/ko.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/nb.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/nl.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/nn.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/pl.js";s:4:"b6f7";s:36:"tinyMCE/plugins/layer/langs/pt_br.js";s:4:"dcb2";s:33:"tinyMCE/plugins/layer/langs/ro.js";s:4:"7bb1";s:33:"tinyMCE/plugins/layer/langs/ru.js";s:4:"be5a";s:40:"tinyMCE/plugins/layer/langs/ru_CP1251.js";s:4:"5227";s:40:"tinyMCE/plugins/layer/langs/ru_KOI8-R.js";s:4:"6b89";s:33:"tinyMCE/plugins/layer/langs/si.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/sk.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/sq.js";s:4:"f3cf";s:33:"tinyMCE/plugins/layer/langs/sr.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/sv.js";s:4:"b6f7";s:38:"tinyMCE/plugins/layer/langs/sv_utf8.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/tr.js";s:4:"b6f7";s:33:"tinyMCE/plugins/layer/langs/uk.js";s:4:"a7b8";s:40:"tinyMCE/plugins/layer/langs/uk_CP1251.js";s:4:"7ac1";s:40:"tinyMCE/plugins/layer/langs/uk_KOI8-U.js";s:4:"3f56";s:33:"tinyMCE/plugins/layer/langs/vi.js";s:4:"e368";s:36:"tinyMCE/plugins/layer/langs/zh_cn.js";s:4:"b6f7";s:41:"tinyMCE/plugins/layer/langs/zh_cn_utf8.js";s:4:"b6f7";s:36:"tinyMCE/plugins/layer/langs/zh_tw.js";s:4:"b6f7";s:41:"tinyMCE/plugins/layer/langs/zh_tw_utf8.js";s:4:"b6f7";s:38:"tinyMCE/plugins/media/editor_plugin.js";s:4:"4b9b";s:42:"tinyMCE/plugins/media/editor_plugin_src.js";s:4:"753d";s:31:"tinyMCE/plugins/media/media.htm";s:4:"561d";s:37:"tinyMCE/plugins/media/css/content.css";s:4:"7805";s:35:"tinyMCE/plugins/media/css/media.css";s:4:"ed8e";s:38:"tinyMCE/plugins/media/images/flash.gif";s:4:"6c69";s:38:"tinyMCE/plugins/media/images/media.gif";s:4:"da5e";s:42:"tinyMCE/plugins/media/images/quicktime.gif";s:4:"9a6a";s:42:"tinyMCE/plugins/media/images/realmedia.gif";s:4:"b973";s:42:"tinyMCE/plugins/media/images/shockwave.gif";s:4:"baa6";s:45:"tinyMCE/plugins/media/images/windowsmedia.gif";s:4:"c327";s:39:"tinyMCE/plugins/media/jscripts/embed.js";s:4:"39eb";s:39:"tinyMCE/plugins/media/jscripts/media.js";s:4:"afe1";s:33:"tinyMCE/plugins/media/langs/ca.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/cs.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/cy.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/da.js";s:4:"0a0f";s:33:"tinyMCE/plugins/media/langs/de.js";s:4:"0a9d";s:33:"tinyMCE/plugins/media/langs/el.js";s:4:"7fe2";s:33:"tinyMCE/plugins/media/langs/en.js";s:4:"0730";s:33:"tinyMCE/plugins/media/langs/es.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/fa.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/fi.js";s:4:"c46b";s:33:"tinyMCE/plugins/media/langs/fr.js";s:4:"0452";s:36:"tinyMCE/plugins/media/langs/fr_ca.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/he.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/hu.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/is.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/it.js";s:4:"70c7";s:33:"tinyMCE/plugins/media/langs/ja.js";s:4:"0ab4";s:40:"tinyMCE/plugins/media/langs/ja_euc-jp.js";s:4:"6ca8";s:43:"tinyMCE/plugins/media/langs/ja_shift_jis.js";s:4:"6ca8";s:39:"tinyMCE/plugins/media/langs/ja_utf-8.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/ko.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/nb.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/nl.js";s:4:"0e97";s:33:"tinyMCE/plugins/media/langs/nn.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/pl.js";s:4:"6ca8";s:36:"tinyMCE/plugins/media/langs/pt_br.js";s:4:"d138";s:33:"tinyMCE/plugins/media/langs/ro.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/ru.js";s:4:"9232";s:40:"tinyMCE/plugins/media/langs/ru_CP1251.js";s:4:"b934";s:40:"tinyMCE/plugins/media/langs/ru_KOI8-R.js";s:4:"e6e8";s:33:"tinyMCE/plugins/media/langs/si.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/sk.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/sq.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/sr.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/sv.js";s:4:"6ca8";s:38:"tinyMCE/plugins/media/langs/sv_utf8.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/tr.js";s:4:"6ca8";s:33:"tinyMCE/plugins/media/langs/uk.js";s:4:"61f4";s:40:"tinyMCE/plugins/media/langs/uk_CP1251.js";s:4:"4999";s:40:"tinyMCE/plugins/media/langs/uk_KOI8-U.js";s:4:"21f8";s:33:"tinyMCE/plugins/media/langs/vi.js";s:4:"6ca8";s:36:"tinyMCE/plugins/media/langs/zh_cn.js";s:4:"6ca8";s:41:"tinyMCE/plugins/media/langs/zh_cn_utf8.js";s:4:"6ca8";s:36:"tinyMCE/plugins/media/langs/zh_tw.js";s:4:"6ca8";s:41:"tinyMCE/plugins/media/langs/zh_tw_utf8.js";s:4:"6ca8";s:44:"tinyMCE/plugins/nonbreaking/editor_plugin.js";s:4:"89f1";s:48:"tinyMCE/plugins/nonbreaking/editor_plugin_src.js";s:4:"c0fd";s:50:"tinyMCE/plugins/nonbreaking/images/nonbreaking.gif";s:4:"a197";s:39:"tinyMCE/plugins/nonbreaking/langs/en.js";s:4:"6951";s:44:"tinyMCE/plugins/noneditable/editor_plugin.js";s:4:"6f2a";s:48:"tinyMCE/plugins/noneditable/editor_plugin_src.js";s:4:"c137";s:38:"tinyMCE/plugins/noneditable/readme.txt";s:4:"fe81";s:47:"tinyMCE/plugins/noneditable/css/noneditable.css";s:4:"2346";s:31:"tinyMCE/plugins/paste/blank.htm";s:4:"c071";s:38:"tinyMCE/plugins/paste/editor_plugin.js";s:4:"bf30";s:42:"tinyMCE/plugins/paste/editor_plugin_src.js";s:4:"0dae";s:35:"tinyMCE/plugins/paste/pastetext.htm";s:4:"4895";s:35:"tinyMCE/plugins/paste/pasteword.htm";s:4:"c5e2";s:32:"tinyMCE/plugins/paste/readme.txt";s:4:"fe81";s:35:"tinyMCE/plugins/paste/css/blank.css";s:4:"e873";s:39:"tinyMCE/plugins/paste/css/pasteword.css";s:4:"e1df";s:42:"tinyMCE/plugins/paste/images/pastetext.gif";s:4:"84bf";s:42:"tinyMCE/plugins/paste/images/pasteword.gif";s:4:"4126";s:42:"tinyMCE/plugins/paste/images/selectall.gif";s:4:"4dbd";s:43:"tinyMCE/plugins/paste/jscripts/pastetext.js";s:4:"267d";s:43:"tinyMCE/plugins/paste/jscripts/pasteword.js";s:4:"ebf5";s:33:"tinyMCE/plugins/paste/langs/ca.js";s:4:"748e";s:33:"tinyMCE/plugins/paste/langs/cs.js";s:4:"cb1a";s:33:"tinyMCE/plugins/paste/langs/cy.js";s:4:"f5aa";s:33:"tinyMCE/plugins/paste/langs/da.js";s:4:"6796";s:33:"tinyMCE/plugins/paste/langs/de.js";s:4:"0138";s:33:"tinyMCE/plugins/paste/langs/el.js";s:4:"044e";s:33:"tinyMCE/plugins/paste/langs/en.js";s:4:"0a68";s:33:"tinyMCE/plugins/paste/langs/es.js";s:4:"c84e";s:33:"tinyMCE/plugins/paste/langs/fa.js";s:4:"0a68";s:33:"tinyMCE/plugins/paste/langs/fi.js";s:4:"4c2b";s:33:"tinyMCE/plugins/paste/langs/fr.js";s:4:"9b45";s:36:"tinyMCE/plugins/paste/langs/fr_ca.js";s:4:"9746";s:33:"tinyMCE/plugins/paste/langs/he.js";s:4:"db33";s:33:"tinyMCE/plugins/paste/langs/hu.js";s:4:"1fd2";s:33:"tinyMCE/plugins/paste/langs/is.js";s:4:"1955";s:33:"tinyMCE/plugins/paste/langs/it.js";s:4:"8c4b";s:33:"tinyMCE/plugins/paste/langs/ja.js";s:4:"1909";s:40:"tinyMCE/plugins/paste/langs/ja_euc-jp.js";s:4:"676d";s:43:"tinyMCE/plugins/paste/langs/ja_shift_jis.js";s:4:"f04b";s:39:"tinyMCE/plugins/paste/langs/ja_utf-8.js";s:4:"2320";s:33:"tinyMCE/plugins/paste/langs/ko.js";s:4:"0a68";s:33:"tinyMCE/plugins/paste/langs/nb.js";s:4:"3ef9";s:33:"tinyMCE/plugins/paste/langs/nl.js";s:4:"2460";s:33:"tinyMCE/plugins/paste/langs/nn.js";s:4:"9987";s:33:"tinyMCE/plugins/paste/langs/pl.js";s:4:"6c70";s:36:"tinyMCE/plugins/paste/langs/pt_br.js";s:4:"59a1";s:33:"tinyMCE/plugins/paste/langs/ro.js";s:4:"c753";s:33:"tinyMCE/plugins/paste/langs/ru.js";s:4:"eb4d";s:40:"tinyMCE/plugins/paste/langs/ru_CP1251.js";s:4:"2a13";s:40:"tinyMCE/plugins/paste/langs/ru_KOI8-R.js";s:4:"7870";s:33:"tinyMCE/plugins/paste/langs/si.js";s:4:"96e2";s:33:"tinyMCE/plugins/paste/langs/sk.js";s:4:"8ab5";s:33:"tinyMCE/plugins/paste/langs/sq.js";s:4:"f911";s:33:"tinyMCE/plugins/paste/langs/sr.js";s:4:"f65e";s:33:"tinyMCE/plugins/paste/langs/sv.js";s:4:"9444";s:38:"tinyMCE/plugins/paste/langs/sv_utf8.js";s:4:"a973";s:33:"tinyMCE/plugins/paste/langs/tr.js";s:4:"317e";s:33:"tinyMCE/plugins/paste/langs/uk.js";s:4:"f160";s:40:"tinyMCE/plugins/paste/langs/uk_CP1251.js";s:4:"328a";s:40:"tinyMCE/plugins/paste/langs/uk_KOI8-U.js";s:4:"e60c";s:33:"tinyMCE/plugins/paste/langs/vi.js";s:4:"8a4c";s:36:"tinyMCE/plugins/paste/langs/zh_cn.js";s:4:"04ad";s:41:"tinyMCE/plugins/paste/langs/zh_cn_utf8.js";s:4:"68ed";s:36:"tinyMCE/plugins/paste/langs/zh_tw.js";s:4:"48bc";s:41:"tinyMCE/plugins/paste/langs/zh_tw_utf8.js";s:4:"4b6e";s:40:"tinyMCE/plugins/preview/editor_plugin.js";s:4:"4f86";s:44:"tinyMCE/plugins/preview/editor_plugin_src.js";s:4:"f96b";s:36:"tinyMCE/plugins/preview/example.html";s:4:"a685";s:34:"tinyMCE/plugins/preview/readme.txt";s:4:"fe81";s:42:"tinyMCE/plugins/preview/images/preview.gif";s:4:"8abe";s:41:"tinyMCE/plugins/preview/jscripts/embed.js";s:4:"39eb";s:35:"tinyMCE/plugins/preview/langs/ca.js";s:4:"7544";s:35:"tinyMCE/plugins/preview/langs/cs.js";s:4:"0a58";s:35:"tinyMCE/plugins/preview/langs/cy.js";s:4:"4571";s:35:"tinyMCE/plugins/preview/langs/da.js";s:4:"47cb";s:35:"tinyMCE/plugins/preview/langs/de.js";s:4:"6136";s:35:"tinyMCE/plugins/preview/langs/el.js";s:4:"5fa9";s:35:"tinyMCE/plugins/preview/langs/en.js";s:4:"7544";s:35:"tinyMCE/plugins/preview/langs/es.js";s:4:"68fc";s:35:"tinyMCE/plugins/preview/langs/fa.js";s:4:"0aee";s:35:"tinyMCE/plugins/preview/langs/fi.js";s:4:"ff9b";s:35:"tinyMCE/plugins/preview/langs/fr.js";s:4:"f9fc";s:38:"tinyMCE/plugins/preview/langs/fr_ca.js";s:4:"22f8";s:35:"tinyMCE/plugins/preview/langs/he.js";s:4:"b909";s:35:"tinyMCE/plugins/preview/langs/hu.js";s:4:"1247";s:35:"tinyMCE/plugins/preview/langs/is.js";s:4:"5c43";s:35:"tinyMCE/plugins/preview/langs/it.js";s:4:"571f";s:35:"tinyMCE/plugins/preview/langs/ja.js";s:4:"b3d2";s:42:"tinyMCE/plugins/preview/langs/ja_euc-jp.js";s:4:"e3e8";s:45:"tinyMCE/plugins/preview/langs/ja_shift_jis.js";s:4:"0db1";s:41:"tinyMCE/plugins/preview/langs/ja_utf-8.js";s:4:"d63b";s:35:"tinyMCE/plugins/preview/langs/ko.js";s:4:"fe29";s:35:"tinyMCE/plugins/preview/langs/nb.js";s:4:"ee32";s:35:"tinyMCE/plugins/preview/langs/nl.js";s:4:"72f5";s:35:"tinyMCE/plugins/preview/langs/nn.js";s:4:"d8fa";s:35:"tinyMCE/plugins/preview/langs/pl.js";s:4:"b810";s:38:"tinyMCE/plugins/preview/langs/pt_br.js";s:4:"955c";s:35:"tinyMCE/plugins/preview/langs/ro.js";s:4:"5c6f";s:35:"tinyMCE/plugins/preview/langs/ru.js";s:4:"ddca";s:42:"tinyMCE/plugins/preview/langs/ru_CP1251.js";s:4:"e8dd";s:42:"tinyMCE/plugins/preview/langs/ru_KOI8-R.js";s:4:"7326";s:35:"tinyMCE/plugins/preview/langs/si.js";s:4:"3393";s:35:"tinyMCE/plugins/preview/langs/sk.js";s:4:"e87a";s:35:"tinyMCE/plugins/preview/langs/sq.js";s:4:"95d1";s:35:"tinyMCE/plugins/preview/langs/sr.js";s:4:"0448";s:35:"tinyMCE/plugins/preview/langs/sv.js";s:4:"e21a";s:40:"tinyMCE/plugins/preview/langs/sv_utf8.js";s:4:"e21a";s:35:"tinyMCE/plugins/preview/langs/tr.js";s:4:"9f1a";s:35:"tinyMCE/plugins/preview/langs/uk.js";s:4:"0442";s:42:"tinyMCE/plugins/preview/langs/uk_CP1251.js";s:4:"6bfd";s:42:"tinyMCE/plugins/preview/langs/uk_KOI8-U.js";s:4:"ed08";s:35:"tinyMCE/plugins/preview/langs/vi.js";s:4:"e77c";s:38:"tinyMCE/plugins/preview/langs/zh_cn.js";s:4:"be9d";s:43:"tinyMCE/plugins/preview/langs/zh_cn_utf8.js";s:4:"9af2";s:38:"tinyMCE/plugins/preview/langs/zh_tw.js";s:4:"a5c2";s:43:"tinyMCE/plugins/preview/langs/zh_tw_utf8.js";s:4:"1850";s:38:"tinyMCE/plugins/print/editor_plugin.js";s:4:"7ee9";s:42:"tinyMCE/plugins/print/editor_plugin_src.js";s:4:"1b74";s:32:"tinyMCE/plugins/print/readme.txt";s:4:"fe81";s:38:"tinyMCE/plugins/print/images/print.gif";s:4:"229d";s:33:"tinyMCE/plugins/print/langs/ca.js";s:4:"9171";s:33:"tinyMCE/plugins/print/langs/cs.js";s:4:"a550";s:33:"tinyMCE/plugins/print/langs/cy.js";s:4:"1975";s:33:"tinyMCE/plugins/print/langs/da.js";s:4:"9fe3";s:33:"tinyMCE/plugins/print/langs/de.js";s:4:"0c3b";s:33:"tinyMCE/plugins/print/langs/el.js";s:4:"4259";s:33:"tinyMCE/plugins/print/langs/en.js";s:4:"9171";s:33:"tinyMCE/plugins/print/langs/es.js";s:4:"aebb";s:33:"tinyMCE/plugins/print/langs/fa.js";s:4:"9667";s:33:"tinyMCE/plugins/print/langs/fi.js";s:4:"6046";s:33:"tinyMCE/plugins/print/langs/fr.js";s:4:"0c4d";s:36:"tinyMCE/plugins/print/langs/fr_ca.js";s:4:"de07";s:33:"tinyMCE/plugins/print/langs/he.js";s:4:"3e0e";s:33:"tinyMCE/plugins/print/langs/hu.js";s:4:"2505";s:33:"tinyMCE/plugins/print/langs/is.js";s:4:"6ab7";s:33:"tinyMCE/plugins/print/langs/it.js";s:4:"e5f6";s:33:"tinyMCE/plugins/print/langs/ja.js";s:4:"4ad8";s:40:"tinyMCE/plugins/print/langs/ja_euc-jp.js";s:4:"1cc8";s:43:"tinyMCE/plugins/print/langs/ja_shift_jis.js";s:4:"0ff9";s:39:"tinyMCE/plugins/print/langs/ja_utf-8.js";s:4:"61c1";s:33:"tinyMCE/plugins/print/langs/ko.js";s:4:"9171";s:33:"tinyMCE/plugins/print/langs/nb.js";s:4:"4f00";s:33:"tinyMCE/plugins/print/langs/nl.js";s:4:"6339";s:33:"tinyMCE/plugins/print/langs/nn.js";s:4:"eb67";s:33:"tinyMCE/plugins/print/langs/pl.js";s:4:"5d89";s:36:"tinyMCE/plugins/print/langs/pt_br.js";s:4:"274a";s:33:"tinyMCE/plugins/print/langs/ro.js";s:4:"be31";s:33:"tinyMCE/plugins/print/langs/ru.js";s:4:"827a";s:40:"tinyMCE/plugins/print/langs/ru_CP1251.js";s:4:"20b0";s:40:"tinyMCE/plugins/print/langs/ru_KOI8-R.js";s:4:"16ff";s:33:"tinyMCE/plugins/print/langs/si.js";s:4:"3d48";s:33:"tinyMCE/plugins/print/langs/sk.js";s:4:"6ac3";s:33:"tinyMCE/plugins/print/langs/sq.js";s:4:"ce84";s:33:"tinyMCE/plugins/print/langs/sr.js";s:4:"814c";s:33:"tinyMCE/plugins/print/langs/sv.js";s:4:"b0d4";s:38:"tinyMCE/plugins/print/langs/sv_utf8.js";s:4:"b0d4";s:33:"tinyMCE/plugins/print/langs/tr.js";s:4:"7eb7";s:33:"tinyMCE/plugins/print/langs/uk.js";s:4:"6774";s:40:"tinyMCE/plugins/print/langs/uk_CP1251.js";s:4:"92d7";s:40:"tinyMCE/plugins/print/langs/uk_KOI8-U.js";s:4:"37ba";s:33:"tinyMCE/plugins/print/langs/vi.js";s:4:"2592";s:36:"tinyMCE/plugins/print/langs/zh_cn.js";s:4:"83b5";s:41:"tinyMCE/plugins/print/langs/zh_cn_utf8.js";s:4:"bc28";s:36:"tinyMCE/plugins/print/langs/zh_tw.js";s:4:"96d5";s:41:"tinyMCE/plugins/print/langs/zh_tw_utf8.js";s:4:"06c1";s:37:"tinyMCE/plugins/save/editor_plugin.js";s:4:"3244";s:41:"tinyMCE/plugins/save/editor_plugin_src.js";s:4:"99b9";s:31:"tinyMCE/plugins/save/readme.txt";s:4:"fe81";s:38:"tinyMCE/plugins/save/images/cancel.gif";s:4:"a567";s:36:"tinyMCE/plugins/save/images/save.gif";s:4:"2392";s:32:"tinyMCE/plugins/save/langs/ca.js";s:4:"be25";s:32:"tinyMCE/plugins/save/langs/cs.js";s:4:"3ed6";s:32:"tinyMCE/plugins/save/langs/cy.js";s:4:"69b8";s:32:"tinyMCE/plugins/save/langs/da.js";s:4:"9afd";s:32:"tinyMCE/plugins/save/langs/de.js";s:4:"9281";s:32:"tinyMCE/plugins/save/langs/el.js";s:4:"39ca";s:32:"tinyMCE/plugins/save/langs/en.js";s:4:"e914";s:32:"tinyMCE/plugins/save/langs/es.js";s:4:"e672";s:32:"tinyMCE/plugins/save/langs/fa.js";s:4:"7d59";s:32:"tinyMCE/plugins/save/langs/fi.js";s:4:"6190";s:32:"tinyMCE/plugins/save/langs/fr.js";s:4:"51ef";s:35:"tinyMCE/plugins/save/langs/fr_ca.js";s:4:"eeb5";s:32:"tinyMCE/plugins/save/langs/he.js";s:4:"0ea7";s:32:"tinyMCE/plugins/save/langs/hu.js";s:4:"52c4";s:32:"tinyMCE/plugins/save/langs/is.js";s:4:"598a";s:32:"tinyMCE/plugins/save/langs/it.js";s:4:"863c";s:32:"tinyMCE/plugins/save/langs/ja.js";s:4:"65c5";s:39:"tinyMCE/plugins/save/langs/ja_euc-jp.js";s:4:"afa6";s:42:"tinyMCE/plugins/save/langs/ja_shift_jis.js";s:4:"3b76";s:38:"tinyMCE/plugins/save/langs/ja_utf-8.js";s:4:"5c65";s:32:"tinyMCE/plugins/save/langs/ko.js";s:4:"be25";s:32:"tinyMCE/plugins/save/langs/nb.js";s:4:"2728";s:32:"tinyMCE/plugins/save/langs/nl.js";s:4:"4503";s:32:"tinyMCE/plugins/save/langs/nn.js";s:4:"6506";s:32:"tinyMCE/plugins/save/langs/pl.js";s:4:"7ce7";s:35:"tinyMCE/plugins/save/langs/pt_br.js";s:4:"3fc5";s:32:"tinyMCE/plugins/save/langs/ro.js";s:4:"af39";s:32:"tinyMCE/plugins/save/langs/ru.js";s:4:"fd2f";s:39:"tinyMCE/plugins/save/langs/ru_CP1251.js";s:4:"bdba";s:39:"tinyMCE/plugins/save/langs/ru_KOI8-R.js";s:4:"e9b5";s:32:"tinyMCE/plugins/save/langs/si.js";s:4:"3110";s:32:"tinyMCE/plugins/save/langs/sk.js";s:4:"d48f";s:32:"tinyMCE/plugins/save/langs/sq.js";s:4:"0413";s:32:"tinyMCE/plugins/save/langs/sr.js";s:4:"8e38";s:32:"tinyMCE/plugins/save/langs/sv.js";s:4:"e3dc";s:37:"tinyMCE/plugins/save/langs/sv_utf8.js";s:4:"e3dc";s:32:"tinyMCE/plugins/save/langs/tr.js";s:4:"4714";s:32:"tinyMCE/plugins/save/langs/uk.js";s:4:"1e13";s:39:"tinyMCE/plugins/save/langs/uk_CP1251.js";s:4:"8aac";s:39:"tinyMCE/plugins/save/langs/uk_KOI8-U.js";s:4:"1743";s:32:"tinyMCE/plugins/save/langs/vi.js";s:4:"5044";s:35:"tinyMCE/plugins/save/langs/zh_cn.js";s:4:"a4d5";s:40:"tinyMCE/plugins/save/langs/zh_cn_utf8.js";s:4:"c1b0";s:35:"tinyMCE/plugins/save/langs/zh_tw.js";s:4:"c4af";s:40:"tinyMCE/plugins/save/langs/zh_tw_utf8.js";s:4:"d766";s:46:"tinyMCE/plugins/searchreplace/editor_plugin.js";s:4:"090a";s:50:"tinyMCE/plugins/searchreplace/editor_plugin_src.js";s:4:"f564";s:40:"tinyMCE/plugins/searchreplace/readme.txt";s:4:"fe81";s:47:"tinyMCE/plugins/searchreplace/searchreplace.htm";s:4:"cd84";s:51:"tinyMCE/plugins/searchreplace/css/searchreplace.css";s:4:"4732";s:48:"tinyMCE/plugins/searchreplace/images/replace.gif";s:4:"7b0b";s:62:"tinyMCE/plugins/searchreplace/images/replace_all_button_bg.gif";s:4:"4575";s:58:"tinyMCE/plugins/searchreplace/images/replace_button_bg.gif";s:4:"b9e8";s:47:"tinyMCE/plugins/searchreplace/images/search.gif";s:4:"791e";s:55:"tinyMCE/plugins/searchreplace/jscripts/searchreplace.js";s:4:"3595";s:41:"tinyMCE/plugins/searchreplace/langs/ca.js";s:4:"7c73";s:41:"tinyMCE/plugins/searchreplace/langs/cs.js";s:4:"3de1";s:41:"tinyMCE/plugins/searchreplace/langs/cy.js";s:4:"ceda";s:41:"tinyMCE/plugins/searchreplace/langs/da.js";s:4:"995a";s:41:"tinyMCE/plugins/searchreplace/langs/de.js";s:4:"6d6c";s:41:"tinyMCE/plugins/searchreplace/langs/el.js";s:4:"8f2c";s:41:"tinyMCE/plugins/searchreplace/langs/en.js";s:4:"1b30";s:41:"tinyMCE/plugins/searchreplace/langs/es.js";s:4:"25f5";s:41:"tinyMCE/plugins/searchreplace/langs/fa.js";s:4:"fae1";s:41:"tinyMCE/plugins/searchreplace/langs/fi.js";s:4:"097c";s:41:"tinyMCE/plugins/searchreplace/langs/fr.js";s:4:"39ac";s:44:"tinyMCE/plugins/searchreplace/langs/fr_ca.js";s:4:"6e25";s:41:"tinyMCE/plugins/searchreplace/langs/he.js";s:4:"a5d9";s:41:"tinyMCE/plugins/searchreplace/langs/hu.js";s:4:"0cf3";s:41:"tinyMCE/plugins/searchreplace/langs/is.js";s:4:"0861";s:41:"tinyMCE/plugins/searchreplace/langs/it.js";s:4:"f8a1";s:41:"tinyMCE/plugins/searchreplace/langs/ja.js";s:4:"88dd";s:48:"tinyMCE/plugins/searchreplace/langs/ja_euc-jp.js";s:4:"6c98";s:51:"tinyMCE/plugins/searchreplace/langs/ja_shift_jis.js";s:4:"7dd0";s:47:"tinyMCE/plugins/searchreplace/langs/ja_utf-8.js";s:4:"ba4e";s:41:"tinyMCE/plugins/searchreplace/langs/ko.js";s:4:"1b30";s:41:"tinyMCE/plugins/searchreplace/langs/nb.js";s:4:"c9e0";s:41:"tinyMCE/plugins/searchreplace/langs/nl.js";s:4:"1bfa";s:41:"tinyMCE/plugins/searchreplace/langs/nn.js";s:4:"e71e";s:41:"tinyMCE/plugins/searchreplace/langs/pl.js";s:4:"8f9f";s:44:"tinyMCE/plugins/searchreplace/langs/pt_br.js";s:4:"037a";s:41:"tinyMCE/plugins/searchreplace/langs/ro.js";s:4:"9559";s:41:"tinyMCE/plugins/searchreplace/langs/ru.js";s:4:"acd1";s:48:"tinyMCE/plugins/searchreplace/langs/ru_CP1251.js";s:4:"ea91";s:48:"tinyMCE/plugins/searchreplace/langs/ru_KOI8-R.js";s:4:"853e";s:41:"tinyMCE/plugins/searchreplace/langs/si.js";s:4:"b673";s:41:"tinyMCE/plugins/searchreplace/langs/sk.js";s:4:"9581";s:41:"tinyMCE/plugins/searchreplace/langs/sq.js";s:4:"e26b";s:41:"tinyMCE/plugins/searchreplace/langs/sr.js";s:4:"000c";s:41:"tinyMCE/plugins/searchreplace/langs/sv.js";s:4:"cda5";s:46:"tinyMCE/plugins/searchreplace/langs/sv_utf8.js";s:4:"114e";s:41:"tinyMCE/plugins/searchreplace/langs/tr.js";s:4:"b758";s:41:"tinyMCE/plugins/searchreplace/langs/uk.js";s:4:"3148";s:48:"tinyMCE/plugins/searchreplace/langs/uk_CP1251.js";s:4:"f75d";s:48:"tinyMCE/plugins/searchreplace/langs/uk_KOI8-U.js";s:4:"bd24";s:41:"tinyMCE/plugins/searchreplace/langs/vi.js";s:4:"c08a";s:44:"tinyMCE/plugins/searchreplace/langs/zh_cn.js";s:4:"2864";s:49:"tinyMCE/plugins/searchreplace/langs/zh_cn_utf8.js";s:4:"f290";s:44:"tinyMCE/plugins/searchreplace/langs/zh_tw.js";s:4:"0761";s:49:"tinyMCE/plugins/searchreplace/langs/zh_tw_utf8.js";s:4:"72df";s:38:"tinyMCE/plugins/style/editor_plugin.js";s:4:"2213";s:42:"tinyMCE/plugins/style/editor_plugin_src.js";s:4:"358f";s:31:"tinyMCE/plugins/style/props.htm";s:4:"5d9c";s:32:"tinyMCE/plugins/style/readme.txt";s:4:"fe81";s:35:"tinyMCE/plugins/style/css/props.css";s:4:"cc82";s:48:"tinyMCE/plugins/style/images/apply_button_bg.gif";s:4:"4e1d";s:43:"tinyMCE/plugins/style/images/style_info.gif";s:4:"5e54";s:43:"tinyMCE/plugins/style/images/styleprops.gif";s:4:"5e54";s:39:"tinyMCE/plugins/style/jscripts/props.js";s:4:"61fb";s:33:"tinyMCE/plugins/style/langs/ca.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/cs.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/cy.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/da.js";s:4:"7352";s:33:"tinyMCE/plugins/style/langs/de.js";s:4:"1629";s:33:"tinyMCE/plugins/style/langs/el.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/en.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/es.js";s:4:"9084";s:33:"tinyMCE/plugins/style/langs/fa.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/fi.js";s:4:"8803";s:33:"tinyMCE/plugins/style/langs/fr.js";s:4:"89ab";s:36:"tinyMCE/plugins/style/langs/fr_ca.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/he.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/hu.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/is.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/it.js";s:4:"5803";s:33:"tinyMCE/plugins/style/langs/ja.js";s:4:"b5a6";s:40:"tinyMCE/plugins/style/langs/ja_euc-jp.js";s:4:"4e3a";s:43:"tinyMCE/plugins/style/langs/ja_shift_jis.js";s:4:"4e3a";s:39:"tinyMCE/plugins/style/langs/ja_utf-8.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/ko.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/nb.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/nl.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/nn.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/pl.js";s:4:"4e3a";s:36:"tinyMCE/plugins/style/langs/pt_br.js";s:4:"9484";s:33:"tinyMCE/plugins/style/langs/ro.js";s:4:"a58a";s:33:"tinyMCE/plugins/style/langs/ru.js";s:4:"85cc";s:40:"tinyMCE/plugins/style/langs/ru_CP1251.js";s:4:"cc13";s:40:"tinyMCE/plugins/style/langs/ru_KOI8-R.js";s:4:"bb7d";s:33:"tinyMCE/plugins/style/langs/si.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/sk.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/sq.js";s:4:"6de3";s:33:"tinyMCE/plugins/style/langs/sr.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/sv.js";s:4:"4e3a";s:38:"tinyMCE/plugins/style/langs/sv_utf8.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/tr.js";s:4:"4e3a";s:33:"tinyMCE/plugins/style/langs/uk.js";s:4:"e243";s:40:"tinyMCE/plugins/style/langs/uk_CP1251.js";s:4:"5ab3";s:40:"tinyMCE/plugins/style/langs/uk_KOI8-U.js";s:4:"84d6";s:33:"tinyMCE/plugins/style/langs/vi.js";s:4:"4ac3";s:36:"tinyMCE/plugins/style/langs/zh_cn.js";s:4:"4e3a";s:41:"tinyMCE/plugins/style/langs/zh_cn_utf8.js";s:4:"4e3a";s:36:"tinyMCE/plugins/style/langs/zh_tw.js";s:4:"4e3a";s:41:"tinyMCE/plugins/style/langs/zh_tw_utf8.js";s:4:"4e3a";s:30:"tinyMCE/plugins/table/cell.htm";s:4:"69c1";s:38:"tinyMCE/plugins/table/editor_plugin.js";s:4:"4b9d";s:42:"tinyMCE/plugins/table/editor_plugin_src.js";s:4:"af9a";s:37:"tinyMCE/plugins/table/merge_cells.htm";s:4:"7535";s:32:"tinyMCE/plugins/table/readme.txt";s:4:"fe81";s:29:"tinyMCE/plugins/table/row.htm";s:4:"6dc3";s:31:"tinyMCE/plugins/table/table.htm";s:4:"da82";s:34:"tinyMCE/plugins/table/css/cell.css";s:4:"5639";s:33:"tinyMCE/plugins/table/css/row.css";s:4:"81a7";s:35:"tinyMCE/plugins/table/css/table.css";s:4:"e68c";s:40:"tinyMCE/plugins/table/images/buttons.gif";s:4:"c059";s:38:"tinyMCE/plugins/table/images/table.gif";s:4:"3ca9";s:49:"tinyMCE/plugins/table/images/table_cell_props.gif";s:4:"80b0";s:45:"tinyMCE/plugins/table/images/table_delete.gif";s:4:"9ffe";s:49:"tinyMCE/plugins/table/images/table_delete_col.gif";s:4:"af49";s:49:"tinyMCE/plugins/table/images/table_delete_row.gif";s:4:"042d";s:55:"tinyMCE/plugins/table/images/table_insert_col_after.gif";s:4:"48b3";s:56:"tinyMCE/plugins/table/images/table_insert_col_before.gif";s:4:"d591";s:55:"tinyMCE/plugins/table/images/table_insert_row_after.gif";s:4:"f244";s:56:"tinyMCE/plugins/table/images/table_insert_row_before.gif";s:4:"0e37";s:50:"tinyMCE/plugins/table/images/table_merge_cells.gif";s:4:"9d97";s:48:"tinyMCE/plugins/table/images/table_row_props.gif";s:4:"e0b5";s:50:"tinyMCE/plugins/table/images/table_split_cells.gif";s:4:"bd42";s:38:"tinyMCE/plugins/table/jscripts/cell.js";s:4:"fc3f";s:45:"tinyMCE/plugins/table/jscripts/merge_cells.js";s:4:"05db";s:37:"tinyMCE/plugins/table/jscripts/row.js";s:4:"a90f";s:39:"tinyMCE/plugins/table/jscripts/table.js";s:4:"3477";s:33:"tinyMCE/plugins/table/langs/ca.js";s:4:"d4d5";s:33:"tinyMCE/plugins/table/langs/cs.js";s:4:"ed08";s:33:"tinyMCE/plugins/table/langs/cy.js";s:4:"8078";s:33:"tinyMCE/plugins/table/langs/da.js";s:4:"1df1";s:33:"tinyMCE/plugins/table/langs/de.js";s:4:"1369";s:33:"tinyMCE/plugins/table/langs/el.js";s:4:"0844";s:33:"tinyMCE/plugins/table/langs/en.js";s:4:"95e5";s:33:"tinyMCE/plugins/table/langs/es.js";s:4:"0fba";s:33:"tinyMCE/plugins/table/langs/fa.js";s:4:"d342";s:33:"tinyMCE/plugins/table/langs/fi.js";s:4:"eca0";s:33:"tinyMCE/plugins/table/langs/fr.js";s:4:"71a2";s:36:"tinyMCE/plugins/table/langs/fr_ca.js";s:4:"013c";s:33:"tinyMCE/plugins/table/langs/he.js";s:4:"fcdc";s:33:"tinyMCE/plugins/table/langs/hu.js";s:4:"ddd7";s:33:"tinyMCE/plugins/table/langs/is.js";s:4:"f22b";s:33:"tinyMCE/plugins/table/langs/it.js";s:4:"c566";s:33:"tinyMCE/plugins/table/langs/ja.js";s:4:"c27d";s:40:"tinyMCE/plugins/table/langs/ja_euc-jp.js";s:4:"e544";s:43:"tinyMCE/plugins/table/langs/ja_shift_jis.js";s:4:"603f";s:39:"tinyMCE/plugins/table/langs/ja_utf-8.js";s:4:"429d";s:33:"tinyMCE/plugins/table/langs/ko.js";s:4:"b295";s:33:"tinyMCE/plugins/table/langs/nb.js";s:4:"52d6";s:33:"tinyMCE/plugins/table/langs/nl.js";s:4:"e0ef";s:33:"tinyMCE/plugins/table/langs/nn.js";s:4:"a543";s:33:"tinyMCE/plugins/table/langs/pl.js";s:4:"a8f0";s:36:"tinyMCE/plugins/table/langs/pt_br.js";s:4:"8507";s:33:"tinyMCE/plugins/table/langs/ro.js";s:4:"d2c6";s:33:"tinyMCE/plugins/table/langs/ru.js";s:4:"784a";s:40:"tinyMCE/plugins/table/langs/ru_CP1251.js";s:4:"87cc";s:40:"tinyMCE/plugins/table/langs/ru_KOI8-R.js";s:4:"bbc2";s:33:"tinyMCE/plugins/table/langs/si.js";s:4:"75a2";s:33:"tinyMCE/plugins/table/langs/sk.js";s:4:"7db9";s:33:"tinyMCE/plugins/table/langs/sq.js";s:4:"0cbe";s:33:"tinyMCE/plugins/table/langs/sr.js";s:4:"f6c3";s:33:"tinyMCE/plugins/table/langs/sv.js";s:4:"9a4f";s:38:"tinyMCE/plugins/table/langs/sv_utf8.js";s:4:"215f";s:33:"tinyMCE/plugins/table/langs/tr.js";s:4:"581d";s:33:"tinyMCE/plugins/table/langs/uk.js";s:4:"d58e";s:40:"tinyMCE/plugins/table/langs/uk_CP1251.js";s:4:"e8d2";s:40:"tinyMCE/plugins/table/langs/uk_KOI8-U.js";s:4:"2170";s:33:"tinyMCE/plugins/table/langs/vi.js";s:4:"6c12";s:36:"tinyMCE/plugins/table/langs/zh_cn.js";s:4:"aa41";s:41:"tinyMCE/plugins/table/langs/zh_cn_utf8.js";s:4:"caa3";s:36:"tinyMCE/plugins/table/langs/zh_tw.js";s:4:"8aff";s:41:"tinyMCE/plugins/table/langs/zh_tw_utf8.js";s:4:"8211";s:34:"tinyMCE/plugins/template/blank.htm";s:4:"4bd0";s:41:"tinyMCE/plugins/template/editor_plugin.js";s:4:"8920";s:45:"tinyMCE/plugins/template/editor_plugin_src.js";s:4:"ba65";s:37:"tinyMCE/plugins/template/template.htm";s:4:"f194";s:41:"tinyMCE/plugins/template/css/template.css";s:4:"5b2c";s:44:"tinyMCE/plugins/template/images/template.gif";s:4:"021d";s:45:"tinyMCE/plugins/template/jscripts/template.js";s:4:"4b69";s:36:"tinyMCE/plugins/template/langs/en.js";s:4:"5e64";s:44:"tinyMCE/plugins/visualchars/editor_plugin.js";s:4:"95fe";s:48:"tinyMCE/plugins/visualchars/editor_plugin_src.js";s:4:"b95f";s:50:"tinyMCE/plugins/visualchars/images/visualchars.gif";s:4:"4a47";s:39:"tinyMCE/plugins/visualchars/langs/en.js";s:4:"cbcb";s:35:"tinyMCE/plugins/xhtmlxtras/abbr.htm";s:4:"4f47";s:38:"tinyMCE/plugins/xhtmlxtras/acronym.htm";s:4:"a8d0";s:41:"tinyMCE/plugins/xhtmlxtras/attributes.htm";s:4:"46a3";s:35:"tinyMCE/plugins/xhtmlxtras/cite.htm";s:4:"a89d";s:34:"tinyMCE/plugins/xhtmlxtras/del.htm";s:4:"5d72";s:43:"tinyMCE/plugins/xhtmlxtras/editor_plugin.js";s:4:"daaa";s:47:"tinyMCE/plugins/xhtmlxtras/editor_plugin_src.js";s:4:"1577";s:34:"tinyMCE/plugins/xhtmlxtras/ins.htm";s:4:"e54e";s:45:"tinyMCE/plugins/xhtmlxtras/css/attributes.css";s:4:"abc1";s:40:"tinyMCE/plugins/xhtmlxtras/css/popup.css";s:4:"f21a";s:45:"tinyMCE/plugins/xhtmlxtras/css/xhtmlxtras.css";s:4:"514c";s:42:"tinyMCE/plugins/xhtmlxtras/images/abbr.gif";s:4:"37d9";s:45:"tinyMCE/plugins/xhtmlxtras/images/acronym.gif";s:4:"ce12";s:45:"tinyMCE/plugins/xhtmlxtras/images/attribs.gif";s:4:"8131";s:42:"tinyMCE/plugins/xhtmlxtras/images/cite.gif";s:4:"62d9";s:47:"tinyMCE/plugins/xhtmlxtras/images/date_time.gif";s:4:"867e";s:41:"tinyMCE/plugins/xhtmlxtras/images/del.gif";s:4:"bb3d";s:41:"tinyMCE/plugins/xhtmlxtras/images/ins.gif";s:4:"d108";s:54:"tinyMCE/plugins/xhtmlxtras/images/remove_button_bg.gif";s:4:"73e1";s:43:"tinyMCE/plugins/xhtmlxtras/jscripts/abbr.js";s:4:"7d41";s:46:"tinyMCE/plugins/xhtmlxtras/jscripts/acronym.js";s:4:"3b76";s:49:"tinyMCE/plugins/xhtmlxtras/jscripts/attributes.js";s:4:"4296";s:43:"tinyMCE/plugins/xhtmlxtras/jscripts/cite.js";s:4:"ad67";s:42:"tinyMCE/plugins/xhtmlxtras/jscripts/del.js";s:4:"a2c0";s:53:"tinyMCE/plugins/xhtmlxtras/jscripts/element_common.js";s:4:"d35b";s:42:"tinyMCE/plugins/xhtmlxtras/jscripts/ins.js";s:4:"9f60";s:38:"tinyMCE/plugins/xhtmlxtras/langs/ca.js";s:4:"f980";s:38:"tinyMCE/plugins/xhtmlxtras/langs/cs.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/cy.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/da.js";s:4:"be09";s:38:"tinyMCE/plugins/xhtmlxtras/langs/de.js";s:4:"36cf";s:38:"tinyMCE/plugins/xhtmlxtras/langs/el.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/en.js";s:4:"a3e0";s:38:"tinyMCE/plugins/xhtmlxtras/langs/es.js";s:4:"29ee";s:38:"tinyMCE/plugins/xhtmlxtras/langs/fa.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/fi.js";s:4:"9c08";s:38:"tinyMCE/plugins/xhtmlxtras/langs/fr.js";s:4:"8f4c";s:41:"tinyMCE/plugins/xhtmlxtras/langs/fr_ca.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/he.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/hu.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/is.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/it.js";s:4:"de18";s:38:"tinyMCE/plugins/xhtmlxtras/langs/ja.js";s:4:"8ad6";s:45:"tinyMCE/plugins/xhtmlxtras/langs/ja_euc-jp.js";s:4:"8ad6";s:48:"tinyMCE/plugins/xhtmlxtras/langs/ja_shift_jis.js";s:4:"8ad6";s:44:"tinyMCE/plugins/xhtmlxtras/langs/ja_utf-8.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/ko.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/nb.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/nl.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/nn.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/pl.js";s:4:"8ad6";s:41:"tinyMCE/plugins/xhtmlxtras/langs/pt_br.js";s:4:"74f3";s:38:"tinyMCE/plugins/xhtmlxtras/langs/ro.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/ru.js";s:4:"a57f";s:45:"tinyMCE/plugins/xhtmlxtras/langs/ru_CP1251.js";s:4:"40d1";s:45:"tinyMCE/plugins/xhtmlxtras/langs/ru_KOI8-R.js";s:4:"c6d9";s:38:"tinyMCE/plugins/xhtmlxtras/langs/si.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/sk.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/sq.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/sr.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/sv.js";s:4:"8ad6";s:43:"tinyMCE/plugins/xhtmlxtras/langs/sv_utf8.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/tr.js";s:4:"8ad6";s:38:"tinyMCE/plugins/xhtmlxtras/langs/uk.js";s:4:"4948";s:45:"tinyMCE/plugins/xhtmlxtras/langs/uk_CP1251.js";s:4:"08d8";s:45:"tinyMCE/plugins/xhtmlxtras/langs/uk_KOI8-U.js";s:4:"aae9";s:38:"tinyMCE/plugins/xhtmlxtras/langs/vi.js";s:4:"8ad6";s:41:"tinyMCE/plugins/xhtmlxtras/langs/zh_cn.js";s:4:"8ad6";s:46:"tinyMCE/plugins/xhtmlxtras/langs/zh_cn_utf8.js";s:4:"8ad6";s:41:"tinyMCE/plugins/xhtmlxtras/langs/zh_tw.js";s:4:"8ad6";s:46:"tinyMCE/plugins/xhtmlxtras/langs/zh_tw_utf8.js";s:4:"8ad6";s:37:"tinyMCE/plugins/zoom/editor_plugin.js";s:4:"47b9";s:41:"tinyMCE/plugins/zoom/editor_plugin_src.js";s:4:"23b2";s:31:"tinyMCE/plugins/zoom/readme.txt";s:4:"fe81";s:38:"tinyMCE/plugins/spellchecker/changelog";s:4:"3349";s:39:"tinyMCE/plugins/spellchecker/config.php";s:4:"3eb5";s:45:"tinyMCE/plugins/spellchecker/editor_plugin.js";s:4:"4fa0";s:49:"tinyMCE/plugins/spellchecker/editor_plugin_src.js";s:4:"f058";s:42:"tinyMCE/plugins/spellchecker/tinyspell.php";s:4:"c795";s:62:"tinyMCE/plugins/spellchecker/classes/TinyGoogleSpell.class.php";s:4:"819c";s:57:"tinyMCE/plugins/spellchecker/classes/TinyPspell.class.php";s:4:"0582";s:62:"tinyMCE/plugins/spellchecker/classes/TinyPspellShell.class.php";s:4:"166c";s:44:"tinyMCE/plugins/spellchecker/css/content.css";s:4:"8d6e";s:49:"tinyMCE/plugins/spellchecker/css/spellchecker.css";s:4:"6a38";s:52:"tinyMCE/plugins/spellchecker/images/spellchecker.gif";s:4:"a190";s:45:"tinyMCE/plugins/spellchecker/images/wline.gif";s:4:"c136";s:40:"tinyMCE/plugins/spellchecker/langs/ca.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/cs.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/cy.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/da.js";s:4:"d0dc";s:40:"tinyMCE/plugins/spellchecker/langs/de.js";s:4:"d709";s:40:"tinyMCE/plugins/spellchecker/langs/el.js";s:4:"542e";s:40:"tinyMCE/plugins/spellchecker/langs/en.js";s:4:"25af";s:40:"tinyMCE/plugins/spellchecker/langs/es.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/fa.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/fi.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/fr.js";s:4:"415a";s:43:"tinyMCE/plugins/spellchecker/langs/fr_ca.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/he.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/hu.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/is.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/it.js";s:4:"e857";s:40:"tinyMCE/plugins/spellchecker/langs/ja.js";s:4:"2dce";s:47:"tinyMCE/plugins/spellchecker/langs/ja_euc-jp.js";s:4:"2dce";s:50:"tinyMCE/plugins/spellchecker/langs/ja_shift_jis.js";s:4:"2dce";s:46:"tinyMCE/plugins/spellchecker/langs/ja_utf-8.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/ko.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/nb.js";s:4:"c97a";s:40:"tinyMCE/plugins/spellchecker/langs/nl.js";s:4:"0965";s:40:"tinyMCE/plugins/spellchecker/langs/nn.js";s:4:"2bcb";s:40:"tinyMCE/plugins/spellchecker/langs/pl.js";s:4:"2dce";s:43:"tinyMCE/plugins/spellchecker/langs/pt_br.js";s:4:"13bc";s:40:"tinyMCE/plugins/spellchecker/langs/ro.js";s:4:"afd7";s:40:"tinyMCE/plugins/spellchecker/langs/ru.js";s:4:"3ed5";s:47:"tinyMCE/plugins/spellchecker/langs/ru_CP1251.js";s:4:"cb92";s:47:"tinyMCE/plugins/spellchecker/langs/ru_KOI8-R.js";s:4:"6f7e";s:40:"tinyMCE/plugins/spellchecker/langs/si.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/sk.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/sq.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/sr.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/sv.js";s:4:"2aec";s:45:"tinyMCE/plugins/spellchecker/langs/sv_utf8.js";s:4:"2aec";s:40:"tinyMCE/plugins/spellchecker/langs/tr.js";s:4:"2dce";s:40:"tinyMCE/plugins/spellchecker/langs/uk.js";s:4:"b340";s:47:"tinyMCE/plugins/spellchecker/langs/uk_CP1251.js";s:4:"5435";s:47:"tinyMCE/plugins/spellchecker/langs/uk_KOI8-U.js";s:4:"ced7";s:40:"tinyMCE/plugins/spellchecker/langs/vi.js";s:4:"2dce";s:43:"tinyMCE/plugins/spellchecker/langs/zh_cn.js";s:4:"2dce";s:48:"tinyMCE/plugins/spellchecker/langs/zh_cn_utf8.js";s:4:"2dce";s:43:"tinyMCE/plugins/spellchecker/langs/zh_tw.js";s:4:"2dce";s:48:"tinyMCE/plugins/spellchecker/langs/zh_tw_utf8.js";s:4:"2dce";s:33:"tinyMCE/themes/advanced/about.htm";s:4:"beae";s:34:"tinyMCE/themes/advanced/anchor.htm";s:4:"9930";s:35:"tinyMCE/themes/advanced/charmap.htm";s:4:"0391";s:40:"tinyMCE/themes/advanced/color_picker.htm";s:4:"6f5c";s:42:"tinyMCE/themes/advanced/editor_template.js";s:4:"d914";s:46:"tinyMCE/themes/advanced/editor_template_src.js";s:4:"3430";s:33:"tinyMCE/themes/advanced/image.htm";s:4:"e909";s:32:"tinyMCE/themes/advanced/link.htm";s:4:"2258";s:41:"tinyMCE/themes/advanced/source_editor.htm";s:4:"7e71";s:43:"tinyMCE/themes/advanced/css/colorpicker.css";s:4:"6114";s:46:"tinyMCE/themes/advanced/css/editor_content.css";s:4:"5777";s:44:"tinyMCE/themes/advanced/css/editor_popup.css";s:4:"bc08";s:41:"tinyMCE/themes/advanced/css/editor_ui.css";s:4:"1681";s:41:"tinyMCE/themes/advanced/docs/en/about.htm";s:4:"1dbc";s:50:"tinyMCE/themes/advanced/docs/en/common_buttons.htm";s:4:"c4b5";s:61:"tinyMCE/themes/advanced/docs/en/create_accessible_content.htm";s:4:"487b";s:41:"tinyMCE/themes/advanced/docs/en/index.htm";s:4:"accc";s:56:"tinyMCE/themes/advanced/docs/en/insert_anchor_button.htm";s:4:"a166";s:55:"tinyMCE/themes/advanced/docs/en/insert_image_button.htm";s:4:"0684";s:54:"tinyMCE/themes/advanced/docs/en/insert_link_button.htm";s:4:"f8ba";s:55:"tinyMCE/themes/advanced/docs/en/insert_table_button.htm";s:4:"2663";s:41:"tinyMCE/themes/advanced/docs/en/style.css";s:4:"1a71";s:63:"tinyMCE/themes/advanced/docs/en/images/insert_anchor_window.gif";s:4:"6e90";s:62:"tinyMCE/themes/advanced/docs/en/images/insert_image_window.gif";s:4:"6a4f";s:61:"tinyMCE/themes/advanced/docs/en/images/insert_link_window.gif";s:4:"dd32";s:62:"tinyMCE/themes/advanced/docs/en/images/insert_table_window.gif";s:4:"9658";s:41:"tinyMCE/themes/advanced/images/anchor.gif";s:4:"7bcf";s:48:"tinyMCE/themes/advanced/images/anchor_symbol.gif";s:4:"5cb4";s:44:"tinyMCE/themes/advanced/images/backcolor.gif";s:4:"1597";s:39:"tinyMCE/themes/advanced/images/bold.gif";s:4:"d4ea";s:45:"tinyMCE/themes/advanced/images/bold_de_se.gif";s:4:"fa8d";s:42:"tinyMCE/themes/advanced/images/bold_es.gif";s:4:"8b99";s:42:"tinyMCE/themes/advanced/images/bold_fr.gif";s:4:"8fbd";s:42:"tinyMCE/themes/advanced/images/bold_ru.gif";s:4:"d70c";s:42:"tinyMCE/themes/advanced/images/bold_tw.gif";s:4:"6384";s:41:"tinyMCE/themes/advanced/images/browse.gif";s:4:"bc73";s:42:"tinyMCE/themes/advanced/images/bullist.gif";s:4:"f360";s:46:"tinyMCE/themes/advanced/images/button_menu.gif";s:4:"ed29";s:42:"tinyMCE/themes/advanced/images/buttons.gif";s:4:"bc34";s:51:"tinyMCE/themes/advanced/images/cancel_button_bg.gif";s:4:"23ba";s:42:"tinyMCE/themes/advanced/images/charmap.gif";s:4:"948c";s:42:"tinyMCE/themes/advanced/images/cleanup.gif";s:4:"9638";s:40:"tinyMCE/themes/advanced/images/close.gif";s:4:"6cc9";s:39:"tinyMCE/themes/advanced/images/code.gif";s:4:"158e";s:40:"tinyMCE/themes/advanced/images/color.gif";s:4:"c8e1";s:41:"tinyMCE/themes/advanced/images/colors.jpg";s:4:"02ae";s:39:"tinyMCE/themes/advanced/images/copy.gif";s:4:"51e4";s:43:"tinyMCE/themes/advanced/images/custom_1.gif";s:4:"bd1f";s:38:"tinyMCE/themes/advanced/images/cut.gif";s:4:"c8f1";s:44:"tinyMCE/themes/advanced/images/forecolor.gif";s:4:"6b4b";s:39:"tinyMCE/themes/advanced/images/help.gif";s:4:"4cd4";s:37:"tinyMCE/themes/advanced/images/hr.gif";s:4:"8d92";s:40:"tinyMCE/themes/advanced/images/image.gif";s:4:"a74e";s:41:"tinyMCE/themes/advanced/images/indent.gif";s:4:"89c0";s:51:"tinyMCE/themes/advanced/images/insert_button_bg.gif";s:4:"9369";s:41:"tinyMCE/themes/advanced/images/italic.gif";s:4:"c865";s:47:"tinyMCE/themes/advanced/images/italic_de_se.gif";s:4:"2eaf";s:44:"tinyMCE/themes/advanced/images/italic_es.gif";s:4:"6155";s:44:"tinyMCE/themes/advanced/images/italic_ru.gif";s:4:"bbc7";s:44:"tinyMCE/themes/advanced/images/italic_tw.gif";s:4:"c87e";s:48:"tinyMCE/themes/advanced/images/justifycenter.gif";s:4:"9cc7";s:46:"tinyMCE/themes/advanced/images/justifyfull.gif";s:4:"0097";s:46:"tinyMCE/themes/advanced/images/justifyleft.gif";s:4:"7e11";s:47:"tinyMCE/themes/advanced/images/justifyright.gif";s:4:"94fa";s:39:"tinyMCE/themes/advanced/images/link.gif";s:4:"0103";s:45:"tinyMCE/themes/advanced/images/menu_check.gif";s:4:"fce7";s:46:"tinyMCE/themes/advanced/images/newdocument.gif";s:4:"24b0";s:42:"tinyMCE/themes/advanced/images/numlist.gif";s:4:"d4c7";s:42:"tinyMCE/themes/advanced/images/opacity.png";s:4:"7f1c";s:42:"tinyMCE/themes/advanced/images/outdent.gif";s:4:"b724";s:40:"tinyMCE/themes/advanced/images/paste.gif";s:4:"7bde";s:39:"tinyMCE/themes/advanced/images/redo.gif";s:4:"c2b3";s:47:"tinyMCE/themes/advanced/images/removeformat.gif";s:4:"e9c3";s:44:"tinyMCE/themes/advanced/images/separator.gif";s:4:"9636";s:41:"tinyMCE/themes/advanced/images/spacer.gif";s:4:"12bf";s:51:"tinyMCE/themes/advanced/images/statusbar_resize.gif";s:4:"1b95";s:48:"tinyMCE/themes/advanced/images/strikethrough.gif";s:4:"0dcc";s:38:"tinyMCE/themes/advanced/images/sub.gif";s:4:"dfbc";s:38:"tinyMCE/themes/advanced/images/sup.gif";s:4:"cec5";s:44:"tinyMCE/themes/advanced/images/underline.gif";s:4:"203e";s:47:"tinyMCE/themes/advanced/images/underline_es.gif";s:4:"0276";s:47:"tinyMCE/themes/advanced/images/underline_fr.gif";s:4:"0276";s:47:"tinyMCE/themes/advanced/images/underline_ru.gif";s:4:"843c";s:47:"tinyMCE/themes/advanced/images/underline_tw.gif";s:4:"3236";s:39:"tinyMCE/themes/advanced/images/undo.gif";s:4:"7883";s:41:"tinyMCE/themes/advanced/images/unlink.gif";s:4:"dcd9";s:44:"tinyMCE/themes/advanced/images/visualaid.gif";s:4:"50cf";s:44:"tinyMCE/themes/advanced/images/xp/tab_bg.gif";s:4:"276f";s:45:"tinyMCE/themes/advanced/images/xp/tab_end.gif";s:4:"de9e";s:48:"tinyMCE/themes/advanced/images/xp/tab_sel_bg.gif";s:4:"9787";s:49:"tinyMCE/themes/advanced/images/xp/tab_sel_end.gif";s:4:"6a4f";s:45:"tinyMCE/themes/advanced/images/xp/tabs_bg.gif";s:4:"b3a2";s:41:"tinyMCE/themes/advanced/jscripts/about.js";s:4:"9dba";s:42:"tinyMCE/themes/advanced/jscripts/anchor.js";s:4:"c5f2";s:43:"tinyMCE/themes/advanced/jscripts/charmap.js";s:4:"bba1";s:48:"tinyMCE/themes/advanced/jscripts/color_picker.js";s:4:"d3fc";s:41:"tinyMCE/themes/advanced/jscripts/image.js";s:4:"7132";s:40:"tinyMCE/themes/advanced/jscripts/link.js";s:4:"9085";s:49:"tinyMCE/themes/advanced/jscripts/source_editor.js";s:4:"5452";s:35:"tinyMCE/themes/advanced/langs/ca.js";s:4:"3be7";s:35:"tinyMCE/themes/advanced/langs/cs.js";s:4:"c291";s:35:"tinyMCE/themes/advanced/langs/cy.js";s:4:"3f34";s:35:"tinyMCE/themes/advanced/langs/da.js";s:4:"17d1";s:35:"tinyMCE/themes/advanced/langs/de.js";s:4:"49b6";s:35:"tinyMCE/themes/advanced/langs/el.js";s:4:"a25c";s:35:"tinyMCE/themes/advanced/langs/en.js";s:4:"68bf";s:35:"tinyMCE/themes/advanced/langs/es.js";s:4:"8ad1";s:35:"tinyMCE/themes/advanced/langs/fa.js";s:4:"5cb4";s:35:"tinyMCE/themes/advanced/langs/fi.js";s:4:"98d4";s:35:"tinyMCE/themes/advanced/langs/fr.js";s:4:"a6dd";s:38:"tinyMCE/themes/advanced/langs/fr_ca.js";s:4:"ccc2";s:35:"tinyMCE/themes/advanced/langs/he.js";s:4:"00e1";s:35:"tinyMCE/themes/advanced/langs/hu.js";s:4:"5eae";s:35:"tinyMCE/themes/advanced/langs/is.js";s:4:"77eb";s:35:"tinyMCE/themes/advanced/langs/it.js";s:4:"f7ed";s:35:"tinyMCE/themes/advanced/langs/ja.js";s:4:"8e6a";s:42:"tinyMCE/themes/advanced/langs/ja_euc-jp.js";s:4:"3dce";s:45:"tinyMCE/themes/advanced/langs/ja_shift_jis.js";s:4:"d524";s:41:"tinyMCE/themes/advanced/langs/ja_utf-8.js";s:4:"cfd2";s:35:"tinyMCE/themes/advanced/langs/ko.js";s:4:"bed3";s:35:"tinyMCE/themes/advanced/langs/nb.js";s:4:"864a";s:35:"tinyMCE/themes/advanced/langs/nl.js";s:4:"9a36";s:35:"tinyMCE/themes/advanced/langs/nn.js";s:4:"fe4b";s:35:"tinyMCE/themes/advanced/langs/pl.js";s:4:"d290";s:38:"tinyMCE/themes/advanced/langs/pt_br.js";s:4:"6138";s:35:"tinyMCE/themes/advanced/langs/ro.js";s:4:"2f5d";s:35:"tinyMCE/themes/advanced/langs/ru.js";s:4:"66da";s:42:"tinyMCE/themes/advanced/langs/ru_CP1251.js";s:4:"a0e7";s:42:"tinyMCE/themes/advanced/langs/ru_KOI8-R.js";s:4:"9781";s:35:"tinyMCE/themes/advanced/langs/si.js";s:4:"0171";s:35:"tinyMCE/themes/advanced/langs/sk.js";s:4:"531e";s:35:"tinyMCE/themes/advanced/langs/sq.js";s:4:"b732";s:35:"tinyMCE/themes/advanced/langs/sr.js";s:4:"4bda";s:35:"tinyMCE/themes/advanced/langs/sv.js";s:4:"82f1";s:40:"tinyMCE/themes/advanced/langs/sv_utf8.js";s:4:"3626";s:35:"tinyMCE/themes/advanced/langs/tr.js";s:4:"6e7c";s:35:"tinyMCE/themes/advanced/langs/uk.js";s:4:"82a8";s:42:"tinyMCE/themes/advanced/langs/uk_CP1251.js";s:4:"e9b4";s:42:"tinyMCE/themes/advanced/langs/uk_KOI8-U.js";s:4:"e359";s:35:"tinyMCE/themes/advanced/langs/vi.js";s:4:"2fe5";s:38:"tinyMCE/themes/advanced/langs/zh_cn.js";s:4:"9ae7";s:43:"tinyMCE/themes/advanced/langs/zh_cn_utf8.js";s:4:"6104";s:38:"tinyMCE/themes/advanced/langs/zh_tw.js";s:4:"dada";s:43:"tinyMCE/themes/advanced/langs/zh_tw_utf8.js";s:4:"c9a7";s:40:"tinyMCE/themes/simple/editor_template.js";s:4:"0f08";s:44:"tinyMCE/themes/simple/editor_template_src.js";s:4:"16b2";s:44:"tinyMCE/themes/simple/css/editor_content.css";s:4:"0f70";s:42:"tinyMCE/themes/simple/css/editor_popup.css";s:4:"dac0";s:39:"tinyMCE/themes/simple/css/editor_ui.css";s:4:"91d2";s:37:"tinyMCE/themes/simple/images/bold.gif";s:4:"d4ea";s:43:"tinyMCE/themes/simple/images/bold_de_se.gif";s:4:"fa8d";s:40:"tinyMCE/themes/simple/images/bold_fr.gif";s:4:"8fbd";s:40:"tinyMCE/themes/simple/images/bold_ru.gif";s:4:"d70c";s:40:"tinyMCE/themes/simple/images/bold_tw.gif";s:4:"6384";s:40:"tinyMCE/themes/simple/images/bullist.gif";s:4:"f360";s:40:"tinyMCE/themes/simple/images/buttons.gif";s:4:"937b";s:40:"tinyMCE/themes/simple/images/cleanup.gif";s:4:"9638";s:39:"tinyMCE/themes/simple/images/italic.gif";s:4:"c865";s:45:"tinyMCE/themes/simple/images/italic_de_se.gif";s:4:"2eaf";s:42:"tinyMCE/themes/simple/images/italic_ru.gif";s:4:"bbc7";s:42:"tinyMCE/themes/simple/images/italic_tw.gif";s:4:"c87e";s:40:"tinyMCE/themes/simple/images/numlist.gif";s:4:"d4c7";s:37:"tinyMCE/themes/simple/images/redo.gif";s:4:"c2b3";s:42:"tinyMCE/themes/simple/images/separator.gif";s:4:"9636";s:39:"tinyMCE/themes/simple/images/spacer.gif";s:4:"12bf";s:46:"tinyMCE/themes/simple/images/strikethrough.gif";s:4:"0dcc";s:42:"tinyMCE/themes/simple/images/underline.gif";s:4:"203e";s:45:"tinyMCE/themes/simple/images/underline_fr.gif";s:4:"0276";s:45:"tinyMCE/themes/simple/images/underline_ru.gif";s:4:"843c";s:45:"tinyMCE/themes/simple/images/underline_tw.gif";s:4:"3236";s:37:"tinyMCE/themes/simple/images/undo.gif";s:4:"7883";s:33:"tinyMCE/utils/editable_selects.js";s:4:"80ae";s:27:"tinyMCE/utils/form_utils.js";s:4:"e383";s:24:"tinyMCE/utils/mclayer.js";s:4:"0ab7";s:23:"tinyMCE/utils/mctabs.js";s:4:"3d87";s:25:"tinyMCE/utils/validate.js";s:4:"5c80";}',
+);
+
+?>
\ No newline at end of file
diff --git a/ext_icon.gif b/ext_icon.gif
new file mode 100644
index 0000000000000000000000000000000000000000..28678a1b62a9ac4facbb0aa2fc5b848f7af5c00a
Binary files /dev/null and b/ext_icon.gif differ
diff --git a/langMerge.sh b/langMerge.sh
new file mode 100755
index 0000000000000000000000000000000000000000..1168f4834aa34cb40e593f318fcf9ed6540faad2
--- /dev/null
+++ b/langMerge.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+for i in `find ./tinymce/jscripts/tiny_mce -name langs`;
+do
+	merge=`echo $i | cut -f5- -d/ | sed -e 's/langs//'`;
+
+	cp -r $i tinyMCE/$merge;
+	if [ $? -eq 0 ]
+	then
+		echo "$i merged";
+	fi
+done;
diff --git a/tinyMCE/blank.htm b/tinyMCE/blank.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5a4a5a57c7ac2e10130e8752e4ea804454786fd6
--- /dev/null
+++ b/tinyMCE/blank.htm
@@ -0,0 +1,9 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>blank_page</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+</head>
+<body class="mceContentBody">
+
+</body>
+</html>
diff --git a/tinyMCE/langs/ca.js b/tinyMCE/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..43ecb07cf8f0b73eb960430201b13caea095ae30
--- /dev/null
+++ b/tinyMCE/langs/ca.js
@@ -0,0 +1,42 @@
+// CA lang variables by Marc Bria and Marc Folch
+
+tinyMCE.addToLang('',{
+bold_desc : 'Negreta (Ctrl+B)',
+italic_desc : 'Cursiva (Ctrl+I)',
+underline_desc : 'Subratllat (Ctrl+U)',
+striketrough_desc : 'Barrat',
+justifyleft_desc : 'Alinea a l\'esquerra',
+justifycenter_desc : 'Centrat',
+justifyright_desc : 'Alinea a la dreta',
+justifyfull_desc : 'Justificat',
+bullist_desc : 'Llista sense ordenar',
+numlist_desc : 'Llista ordenada',
+outdent_desc : 'Disminueix el sagnat',
+indent_desc : 'Augmenta el sagnat',
+undo_desc : 'Desf&eacute;s (Ctrl+Z)',
+redo_desc : 'Ref&eacute;s (Ctrl+Y)',
+link_desc : 'Insereix enlla&ccedil;',
+unlink_desc : 'Treu enlla&ccedil;',
+image_desc : 'Insereix imatge',
+cleanup_desc : 'Neteja el codi',
+focus_alert : 'L´&agrave;rea de l\'editor ha de ser enfocada abans d´executar aquesta comanda.',
+edit_confirm : 'Vols utilitzar el mode WYSIWYG per a aquesta &agrave;rea de text?',
+insert_link_title : 'Insereix/edita enlla&agrave;',
+insert : 'Insereix',
+update : 'Insereix',
+cancel : 'Cancel&middot;la',
+insert_link_url : 'Adre&ccedil;a de l\'enlla&ccedil;',
+insert_link_target : 'Dest&iacute',
+insert_link_target_same : 'Open link in the same window',
+insert_link_target_same : 'Obre l\'enlla&ccedil; a la mateixa finestra',
+insert_link_target_blank : 'Obre l\'enlla&ccedil; en una finestra nova',
+insert_image_title : 'Insereix/edita imatge',
+insert_image_src : 'URL de la imatge',
+insert_image_alt : 'Descripci&oacute; de la imatge',
+help_desc : 'Ajuda',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copiar, retallar i enganxar no &eacute;s possible amb Mozilla i Firefox.\nVols m&eacute;s informaci&oacute; sobre aquesta q&euml;esti&oacute;?',
+popup_blocked : 'Ho sentim, per&ograve; hem detectat que el bloqueig de finestres del vostre navegador ha bloquejat una finestra amb funcions del programa. Haur&iacute;eu de deshabilitar el bloqueig de finestres en aquesta web per poder utilitzar completament aquesta eina.'
+});
diff --git a/tinyMCE/langs/cs.js b/tinyMCE/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..55578f3bd6861cadfc4a0835bfb881027393266e
--- /dev/null
+++ b/tinyMCE/langs/cs.js
@@ -0,0 +1,52 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ * 
+ * @author Michi   
+ * @author Pavel Novák
+ * @author Josef Klimosz
+ *    
+ * $Id: cs.js,v 1.6 2005/10/18 13:59:21 spocke Exp $ 
+ */  
+
+
+tinyMCE.addToLang('',{
+bold_desc : 'Tučně',
+italic_desc : 'Kurzíva',
+underline_desc : 'Podtržení',
+striketrough_desc : 'Přeškrtnutí',
+justifyleft_desc : 'Zarovnání vlevo',
+justifycenter_desc : 'Zarovnání na střed',
+justifyright_desc : 'Zarovnání vpravo',
+justifyfull_desc : 'Zarovnání do bloku',
+bullist_desc : 'Seznam s odrážkami',
+numlist_desc : 'Číslovaný seznam',
+outdent_desc : 'Snížit odsazení',
+indent_desc : 'Zvýšit odsazení',
+undo_desc : 'Zpět',
+redo_desc : 'Znovu',
+link_desc : 'Vložit odkaz',
+unlink_desc : 'Zrušit odkaz',
+image_desc : 'Vložit obrázek',
+cleanup_desc : 'Vyčistit kód',
+focus_alert : 'Před použitím tohoto příkazu musí být kurzor v okně editoru.',
+edit_confirm : 'Chcete použít WYSIWYG editaci pro tento text?',
+insert_link_title : 'Vložit/upravit odkaz',
+insert : 'Vložit',
+update : 'Změnit',
+cancel : 'Zrušit',
+insert_link_url : 'URL odkazu',
+insert_link_target : 'Cíl',
+insert_link_target_same : 'Otevřít odkaz ve stejném okně',
+insert_link_target_blank : 'Otevřít odkaz v novém okně',
+insert_image_title : 'Vložit/upravit obrázek',
+insert_image_src : 'URL obrázku',
+insert_image_alt : 'Popis obrázku',
+help_desc : 'Nápověda',
+bold_img : 'bold.gif',
+italic_img : 'italic.gif',
+underline_img : "underline.gif",
+clipboard_msg : 'Funkce Kopírovat/vyjmout/vložit nejsou použitelné v Mozille a Firefoxu.\nChcete více informací o tomto problému?',
+popup_blocked : 'Omlouváme se, ale blokovač vyskakovacích oken neumožnil otevřít okno, které zprostředkovává funkčnost aplikace. Musíte vypnout blokování vyskakovacích oken na tomto webu, abyste využili plné funkčnosti.'
+});
+
diff --git a/tinyMCE/langs/cy.js b/tinyMCE/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ef0f6c0f6f21123d1b5c02048b92f5326821aa8
--- /dev/null
+++ b/tinyMCE/langs/cy.js
@@ -0,0 +1,41 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Bold (Ctrl+B)',
+italic_desc : 'Italig (Ctrl+I)',
+underline_desc : 'Tanlinellu (Ctrl+U)',
+striketrough_desc : 'Llinell drwodd',
+justifyleft_desc : 'Unioni i\'r chwith',
+justifycenter_desc : 'Unioni i\'r canol',
+justifyright_desc : 'Unioni i\'r dde',
+justifyfull_desc : 'Unioni llawn',
+bullist_desc : 'Rhestr heb drefn',
+numlist_desc : 'Rhestr mewn trefn',
+outdent_desc : 'Lleihau mewnoliad',
+indent_desc : 'Cynyddu mewnoliad',
+undo_desc : 'Dadwneud (Ctrl+Z)',
+redo_desc : 'Ailwneud (Ctrl+Y)',
+link_desc : 'Mewnosod/golygu dolen',
+unlink_desc : 'Dadgysylltu',
+image_desc : 'Mewnosod/golygu delwedd',
+cleanup_desc : 'Tacluso c&ocirc;d',
+focus_alert : 'Rhaid rhoi ffocws i\'r golygydd cyn defnyddio\'r gorchymyn hwn.',
+edit_confirm : 'Wyt ti eisiau defnyddio\'r dull WYSIWYG ar gyfer yr ardal destun hon?',
+insert_link_title : 'Mewnosod/golygu dolen',
+insert : 'Mewnosod',
+update : 'Diweddaru',
+cancel : 'Diddymu',
+insert_link_url : 'URL dolen',
+insert_link_target : 'Targed',
+insert_link_target_same : 'Agor dolen yn yr un ffenest',
+insert_link_target_blank : 'Agor dolen mewn ffenest newydd',
+insert_image_title : 'Mewnosod/golygu delwedd',
+insert_image_src : 'URL delwedd',
+insert_image_alt : 'Disgrifiad delwedd',
+help_desc : 'Cymorth',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Dyw Cop&iuml;o/Torri/Gludo ddim ar gael ym Mozilla na Firefox.\nHoffet ti ragor o wybodaeth ynghylch hyn?',
+popup_blocked : 'Mae\'n ddrwg gennym, ond mae dy declyn atal ffenestri naid wedi analluogi ffenest sy\'n cynnig nodweddion i\'r rhaglen. Bydd rhaid i ti analluogi atal ffenestri naid ar gyfer y safle hon er mwyn cael y defnydd gorau o\'r rhaglen hwn.'
+});
diff --git a/tinyMCE/langs/da.js b/tinyMCE/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..596f0c04b80169084f1fdef692c3369e16a93ef6
--- /dev/null
+++ b/tinyMCE/langs/da.js
@@ -0,0 +1,41 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.: Ronny Buelund
+
+tinyMCE.addToLang('',{
+bold_desc : 'Fed',
+italic_desc : 'Kursiv',
+underline_desc : 'Understreg',
+striketrough_desc : 'Gennemstreg',
+justifyleft_desc : 'Venstrejusteret',
+justifycenter_desc : 'Centrer',
+justifyright_desc : 'H&oslash;jrejusteret',
+justifyfull_desc : 'Lige margin',
+bullist_desc : 'Liste med punkttegn',
+numlist_desc : 'Liste med tal',
+outdent_desc : 'Ryk til venstre',
+indent_desc : 'Ryk til h&oslash;jre',
+undo_desc : 'Fortryd',
+redo_desc : 'Gentag',
+link_desc : 'Inds&aelig;t link',
+unlink_desc : 'Fjern link',
+image_desc : 'Inds&aelig;t billede',
+cleanup_desc : 'Ryd op i koden',
+focus_alert : 'Der skal s&aelig;ttes fokus p&aring; sessionen, f&oslash;r man kan bruge denne kommando',
+edit_confirm : 'Vil du bruge WYSIWYG mode til dette tekstomr&aring;de?',
+insert_link_title : 'Inds&aelig;t eller rediger link',
+insert : 'Inds&aelig;t',
+update : 'Opdater',
+cancel : 'Fortryd',
+insert_link_url : 'Linkadresse',
+insert_link_target : 'Destination',
+insert_link_target_same : 'Luk linket op i samme vindue',
+insert_link_target_blank : 'Luk linket op i et nyt vindue',
+insert_image_title : 'Inds&aelig;t / rediger billede',
+insert_image_src : 'Billedets adresse',
+insert_image_alt : 'Alternativ tekst',
+help_desc : 'Hj&aelig;lp',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Kopier/Klip/Inds&aelig;t virker ikke i Mozilla og Firefox.\nVil du vide mere om dette?',
+popup_blocked : 'Beklager, men din browser blokerer for pop-up-vinduer. Skal du bruge denne editor fuldt ud, skal pop-up-vinduer v&aelig;re tilladt.'
+});
diff --git a/tinyMCE/langs/de.js b/tinyMCE/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..405f00f8b9658189ee38079480827c56c86960a1
--- /dev/null
+++ b/tinyMCE/langs/de.js
@@ -0,0 +1,41 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Fett (Strg+B)',
+italic_desc : 'Kursiv (Strg+I)',
+underline_desc : 'Unterstrichen (Strg+U)',
+striketrough_desc : 'Durchgestrichen',
+justifyleft_desc : 'Linksb&uuml;ndig',
+justifycenter_desc : 'Zentriert',
+justifyright_desc : 'Rechtsb&uuml;ndig',
+justifyfull_desc : 'Blocksatz',
+bullist_desc : 'Aufz&auml;hlungszeichen',
+numlist_desc : 'Nummerierung',
+outdent_desc : 'Einzug verkleinern',
+indent_desc : 'Einzug vergr&ouml;&szlig;ern',
+undo_desc : 'R&uuml;ckg&auml;ngig (Strg+Z)',
+redo_desc : 'Wiederholen (Strg+Y)',
+link_desc : 'Link einf&uuml;gen/bearbeiten',
+unlink_desc : 'Link entfernen',
+image_desc : 'Bild einf&uuml;gen/bearbeiten',
+cleanup_desc : 'Unsauberen Code aufr&auml;umen',
+focus_alert : 'Klicken Sie bitte vor Benutzung dieses Befehls auf das Editorfenster.',
+edit_confirm : 'Wollen Sie den WYSIWYG-Modus f&uuml;r dieses Textfeld benutzen?',
+insert_link_title : 'Link einf&uuml;gen/bearbeiten',
+insert : 'Einf&uuml;gen',
+update : 'Aktualisieren',
+cancel : 'Abbrechen',
+insert_link_url : 'Link-URL',
+insert_link_target : 'Ziel',
+insert_link_target_same : 'Link im gleichen Fenster &ouml;ffnen',
+insert_link_target_blank : 'Link in neuem Fenster &ouml;ffnen',
+insert_image_title : 'Bild einf&uuml;gen/bearbeiten',
+insert_image_src : 'Bild-URL',
+insert_image_alt : 'Bild-Beschreibung',
+help_desc : 'Hilfe',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Kopieren/Ausschneiden/Einf&uuml;gen ist in Mozilla und Firefox nicht verf&uuml;gbar.\nWollen Sie mehr Informationen dar&uuml;ber erhalten?',
+popup_blocked : 'Ihr Popup-Blocker hat verhindert, dass das Bearbeitungsfenster des Editors ge&ouml;ffnet werden konnte. Bitte deaktivieren Sie den Popup-Schutz f&uuml;r diese Seite.'
+});
diff --git a/tinyMCE/langs/el.js b/tinyMCE/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..c06f1807eaa9efa5e7257461d652d9ff31348a40
--- /dev/null
+++ b/tinyMCE/langs/el.js
@@ -0,0 +1,42 @@
+// Greek lang variables by Jacaranda Bill
+// Revised by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+bold_desc : '¸íôïíç ãñáöÞ',
+italic_desc : 'ÐëÜãéá ãñáöÞ',
+underline_desc : 'ÕðïãñÜììéóç',
+striketrough_desc : 'äéáêñéôÞ äéáãñáöÞ',
+justifyleft_desc : 'Óôïß÷éóç áñéóôåñÜ',
+justifycenter_desc : 'Óôïß÷éóç óôï êÝíôñï',
+justifyright_desc : 'Óôïß÷éóç äåîéÜ',
+justifyfull_desc : 'ÐëÞñçò óôïß÷éóç',
+bullist_desc : 'Êïõêêßäåò',
+numlist_desc : 'Áñßèìçóç',
+outdent_desc : 'Ìåßùóç åóï÷Þò',
+indent_desc : 'Áýîçóç åóï÷Þò',
+undo_desc : 'Áíáßñåóç',
+redo_desc : 'Áêýñùóç áíáßñåóçò',
+link_desc : 'äçìéïõñãßá/äéüñèùóç õðåñ-óýíäåóçò',
+unlink_desc : 'äéáãñáöÞ õðåñ-óýíäåóçò',
+image_desc : 'åéóáãùãÞ/äéüñèùóç åéêüíáò',
+cleanup_desc : 'ÊáèÜñéóìá êþäéêá',
+focus_alert : 'ÐñÝðåé íá õðÜñ÷åé åíåñãüò êÜðïéïò åðåîåñãáóôÞò êåéìÝíïõ ðñéí íá ÷ñçóéìïðïéÞóåôå áõôÞ ôçí åíôïëÞ.',
+edit_confirm : 'ÈÝëåôå íá ÷ñçóéìïðïéÞóåôå ôçí êáôÜóôáóç WYSIWYG ãéá ôï óõãêåêñéìÝíï ðëáßóéï êåéìÝíïõ;',
+insert_link_title : 'äçìéïõñãßá/äéüñèùóç õðåñ-óýíäåóçò',
+insert : 'åéóáãùãÞ',
+update : 'åéóáãùãÞ',
+cancel : 'Áêýñùóç',
+insert_link_url : 'äéåýèõíóç',
+insert_link_target : 'Óôü÷ïò',
+insert_link_target_same : '¢íïéãìá ôçò äéåýèõíóçò óôï ßäéï ðáñÜèõñï',
+insert_link_target_blank : '¢íïéãìá ôçò äéåýèõíóçò óå íÝï ðáñÜèõñï',
+insert_image_title : 'åéóáãùãÞ/äéüñèùóç åéêüíáò',
+insert_image_src : 'äéåýèõíóç',
+insert_image_alt : 'ÐåñéãñáöÞ',
+help_desc : 'ÂïÞèåéá',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Ç ÁíôéãñáöÞ/ÁðïêïðÞ/Åðéêüëëçóç äåí åßíáé äéáèÝóéìåò óôï Mozilla êáé óôï Firefox.\nÈÝëåôå ðëçñïöïñßåò ãéá áõôü ôï èÝìá;',
+popup_blocked : 'Ï popup-blocker óáò áðåíåñãïðïßçóå Ýíá ðáñÜèõñï ôï ïðïßï ÷ñåéÜæåôáé. Èá ðñÝðåé íá áðåíåñãïðïéÞóåôå ôïí popup-blocker óáò óôï óõãêåêñéìÝíï site, þóôå íá ÷ñçóéìïðïéÞóåôå ðëÞñùò áõôü ôï åñãáëåßï.'
+});
diff --git a/tinyMCE/langs/en.js b/tinyMCE/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..c093eafa04513a8031ce7aa54bb3b7e869907101
--- /dev/null
+++ b/tinyMCE/langs/en.js
@@ -0,0 +1,41 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Bold (Ctrl+B)',
+italic_desc : 'Italic (Ctrl+I)',
+underline_desc : 'Underline (Ctrl+U)',
+striketrough_desc : 'Strikethrough',
+justifyleft_desc : 'Align left',
+justifycenter_desc : 'Align center',
+justifyright_desc : 'Align right',
+justifyfull_desc : 'Align full',
+bullist_desc : 'Unordered list',
+numlist_desc : 'Ordered list',
+outdent_desc : 'Outdent',
+indent_desc : 'Indent',
+undo_desc : 'Undo (Ctrl+Z)',
+redo_desc : 'Redo (Ctrl+Y)',
+link_desc : 'Insert/edit link',
+unlink_desc : 'Unlink',
+image_desc : 'Insert/edit image',
+cleanup_desc : 'Cleanup messy code',
+focus_alert : 'A editor instance must be focused before using this command.',
+edit_confirm : 'Do you want to use the WYSIWYG mode for this textarea?',
+insert_link_title : 'Insert/edit link',
+insert : 'Insert',
+update : 'Update',
+cancel : 'Cancel',
+insert_link_url : 'Link URL',
+insert_link_target : 'Target',
+insert_link_target_same : 'Open link in the same window',
+insert_link_target_blank : 'Open link in a new window',
+insert_image_title : 'Insert/edit image',
+insert_image_src : 'Image URL',
+insert_image_alt : 'Image description',
+help_desc : 'Help',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
diff --git a/tinyMCE/langs/es.js b/tinyMCE/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e9abf4cbbc00f400ab2a195c92d9c3f6088304d
--- /dev/null
+++ b/tinyMCE/langs/es.js
@@ -0,0 +1,51 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+
+tinyMCE.addToLang('',{
+bold_desc : 'Negrita (Ctrl+B)',
+italic_desc : 'Cursiva (Ctrl+I)',
+underline_desc : 'Subrayado (Ctrl+U)',
+striketrough_desc : 'Tachado',
+justifyleft_desc : 'Alinear a la izquierda',
+justifycenter_desc : 'Alinear al centro',
+justifyright_desc : 'Alinear a la derecha',
+justifyfull_desc : 'Alinear justificado',
+bullist_desc : 'Lista sin ordenar',
+numlist_desc : 'Lista ordenada',
+outdent_desc : 'Disminuir sangr&iacute;a',
+indent_desc : 'Aumentar sangr&iacute;a',
+undo_desc : 'Deshacer',
+redo_desc : 'Rehacer',
+link_desc : 'Insertar enlace',
+unlink_desc : 'Quitar enlace',
+image_desc : 'Insertar imagen',
+cleanup_desc : 'Limpiar codigo',
+focus_alert : 'Una instanacia del editor debe ser enfocada antes de usar este comando.',
+edit_confirm : '&#191;Quieres usar el modo WYSIWYG (What You See Is What You Get - "lo que ves es lo que obtienes") para esta area de texto?',
+insert_link_title : 'Insertar/editar enlace',
+insert : 'Insertar',
+update : 'Actualizar',
+cancel : 'Cancelar',
+insert_link_url : 'Direcci&oacute;n del enlace',
+insert_link_target : 'Destino',
+insert_link_target_same : 'Abrir enlace en la misma ventana',
+insert_link_target_blank : 'Abrir enlace en una ventana nueva',
+insert_image_title : 'Insertar/editar imagen',
+insert_image_src : 'Direcci&oacute;n de la imagen',
+insert_image_alt : 'Descripci&oacute;n de la imagen',
+help_desc : 'Ayuda',
+bold_img : "bold_es.gif",
+italic_img : "italic_es.gif",
+underline_img : "underline_es.gif",
+clipboard_msg : 'No se pueden utilizar los comandos Copiar / Cortar / Pegar en Mozilla y en Firefox.\r\nUse el teclado Copiar (Ctrl+C) / Cortar (Ctrl+X) / Pegar (Ctrl+V)\r\n&#191;Quieres obtener m&aacute;s informaci&oacute;n?',
+popup_blocked : 'Lo siento, pero tu bloqueador de popups ha desactivado una ventana que ha lanzado la aplicaci&oacute;n. Debes desactivar tu bloqueador de popups para tener toda la funcionalad de la aplicaci&oacute;n.'
+});
diff --git a/tinyMCE/langs/fa.js b/tinyMCE/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..46623ad735238b8a41fe7a1a67bbde5643de6042
--- /dev/null
+++ b/tinyMCE/langs/fa.js
@@ -0,0 +1,46 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+bold_desc : '????',
+italic_desc : '????',
+underline_desc : '??? ?? ???',
+striketrough_desc : '?? ?????',
+justifyleft_desc : '?? ???',
+justifycenter_desc : '??? ???',
+justifyright_desc : '???? ???',
+justifyfull_desc : '????? ???',
+bullist_desc : '????',
+numlist_desc : '???? ????',
+outdent_desc : '???? ?????',
+indent_desc : '?????? ?????',
+undo_desc : '????????',
+redo_desc : '????????',
+link_desc : '??? ? ?????? ????',
+unlink_desc : '??? ????',
+image_desc : '??? ? ?????? ???',
+cleanup_desc : '??????? ??',
+focus_alert : 'A editor instance must be focused before using this command.',
+edit_confirm : 'Do you want to use the WYSIWYG mode for this textarea?',
+insert_link_title : '??? ? ?????? ????',
+insert : '  ?????  ',
+update : '  ?????  ',
+cancel : ' ?????? ',
+insert_link_url : 'URL ????',
+insert_link_target : '????',
+insert_link_target_same : '???? ?? ?? ???? ???? ??? ??',
+insert_link_target_blank : '???? ?? ?? ???? ???? ??? ??',
+insert_image_title : '??? ? ?????? ???',
+insert_image_src : 'URL ???',
+insert_image_alt : '?????',
+help_desc : '??????',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
diff --git a/tinyMCE/langs/fi.js b/tinyMCE/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c1589e3d34b80d94c8df596ec03352947283238
--- /dev/null
+++ b/tinyMCE/langs/fi.js
@@ -0,0 +1,42 @@
+// FI lang variables by Urho Konttori from Absolutions
+// Updated by Tuomo Aura, Ateco.fi
+
+tinyMCE.addToLang('',{
+bold_desc : 'Lihavoi (Ctrl+B)',
+italic_desc : 'Kursivoi (Ctrl+I)',
+underline_desc : 'Alleviivaa (Ctrl+U)',
+striketrough_desc : 'Yliviivaa',
+justifyleft_desc : 'Vasen tasaus',
+justifycenter_desc : 'Keskitys',
+justifyright_desc : 'Oikea tasaus',
+justifyfull_desc : 'Pakotettu tasaus',
+bullist_desc : 'Luettelo',
+numlist_desc : 'Numeroitu lista',
+outdent_desc : 'Poista sisennys',
+indent_desc : 'Sisennys',
+undo_desc : 'Peruuta (Ctrl+Z)',
+redo_desc : 'Tee uudelleen (Ctrl+Y)',
+link_desc : 'Lis&auml;&auml; linkki',
+unlink_desc : 'Poista linkki',
+image_desc : 'Lis&auml;&auml; kuva',
+cleanup_desc : 'Siisti koodi',
+focus_alert : 'Teksink&auml;sittelyalue t&auml;ytyy olla valittuna ennen t&auml;m&auml;n komennon suorittamista.',
+edit_confirm : 'Haluatko k&auml;ytt&auml;&auml; WYSIWYG-tilaa t&auml;h&auml;n tekstialueeseen?',
+insert_link_title : 'Lis&auml;&auml;/muokkaa linkki&auml;',
+insert : 'Lisää',
+update : 'Päivitä',
+cancel : 'Peruuta',
+insert_link_url : 'Linkin URL',
+insert_link_target : 'Kohde',
+insert_link_target_same : 'Avaa linkki samassa ikkunassa',
+insert_link_target_blank : 'Avaa linkki uudessa ikkunassa',
+insert_image_title : 'Lis&auml;&auml;/muokkaa kuvaa',
+insert_image_src : 'Kuvan URL',
+insert_image_alt : 'Kuvan selite',
+help_desc : 'Apua',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Leikkaus/Kopiointi/Liit&auml;minen ei onnistu Mozilla eik&auml; Firefox -selaimilla tietoturvasta johtuen. \n Haluatko lis&auml;tietoa aiheesta?',
+popup_blocked : 'Koneellasi oleva popup-ikkunoiden esto-ohjelma est&auml;&auml; tarvittavan ikkunan avaamisen. Sinun pit&auml;&auml; sallia popup-ikkunoiden n&auml;ytt&auml;minen t&auml;ll&auml; sivustolla ohjelman asetuksista.'
+});
diff --git a/tinyMCE/langs/fr.js b/tinyMCE/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed5b30e0d44a894d86ef0c1ab0dbdec879ce060a
--- /dev/null
+++ b/tinyMCE/langs/fr.js
@@ -0,0 +1,42 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+bold_desc : 'Gras',
+italic_desc : 'Italique',
+underline_desc : 'Soulign&eacute;',
+striketrough_desc : 'Barr&eacute;',
+justifyleft_desc : 'Aligner &agrave; gauche',
+justifycenter_desc : 'Centrer',
+justifyright_desc : 'Aligner &agrave; droite',
+justifyfull_desc : 'Justifier',
+bullist_desc : 'Liste &agrave; puces',
+numlist_desc : 'Liste num&eacute;rot&eacute;e',
+outdent_desc : 'Diminuer le retrait',
+indent_desc : 'Augmenter le retrait',
+undo_desc : 'Annuler',
+redo_desc : 'Restaurer',
+link_desc : 'Ins&eacute;rer/Modifier un lien',
+unlink_desc : 'Supprimer le lien',
+image_desc : 'Ins&eacute;rer/Modifier une image',
+cleanup_desc : 'Nettoyer le code',
+focus_alert : 'Une instance de l\&eacute;diteur doit avoir le focus avant d\'utiliser cette commande.',
+edit_confirm : 'Voulez-vous utiliser le mode WYSIWYG pour cette zone d\'&eacute;dition de texte ?',
+insert_link_title : 'Gestionnaire d\'hyperlien',
+insert : 'Ins&eacute;rer',
+update : 'Appliquer',
+cancel : 'Annuler',
+insert_link_url : 'Lien URL',
+insert_link_target : 'Cible',
+insert_link_target_same : 'Ouvrir dans la m&ecirc;me fen&ecirc;tre',
+insert_link_target_blank : 'Ouvrir dans une nouvelle fen&ecirc;tre',
+insert_image_title : 'Gestionnaire d\'image',
+insert_image_src : 'URL de l\'image',
+insert_image_alt : 'Equivalent textuel',
+help_desc : 'Aide',
+bold_img : "bold_fr.gif",
+italic_img : "italic.gif",
+underline_img : "underline_fr.gif",
+clipboard_msg : 'Pour des raisons de s&eacute;curit&eacute;, les fonctions « Copier », « Couper » et « Coller »\nne sont pas disponibles dans Mozilla et Firefox.\n\n\nVoulez-vous plus d\'information &agrave; ce sujet?\n',
+popup_blocked : 'D&eacute;sol&eacute;, mais votre bloqueur de pop-up emp&ecirc;che le fonctionnement normal de l\'application.\n\n\nPour utiliser cet outil, veuillez r&eacute;gler votre navigateur pour qu\'il accepte les pop-up de ce site.'
+});
diff --git a/tinyMCE/langs/fr_ca.js b/tinyMCE/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..4fd6e908f7203460ddff1ae8e88ed7ca9408ba92
--- /dev/null
+++ b/tinyMCE/langs/fr_ca.js
@@ -0,0 +1,40 @@
+// Canadian French lang variables by Virtuelcom
+
+tinyMCE.addToLang('',{
+bold_desc : 'Gras',
+italic_desc : 'Italique',
+underline_desc : 'Souligner',
+striketrough_desc : 'Barrer',
+justifyleft_desc : 'Aligner à gauche',
+justifycenter_desc : 'Aligner au centre',
+justifyright_desc : 'Aligner à droite',
+justifyfull_desc : 'Justifier',
+bullist_desc : 'Puces',
+numlist_desc : 'Numérotation',
+outdent_desc : 'Réduire le retrait',
+indent_desc : 'Augmenter le retrait',
+undo_desc : 'Annuler la dernière action',
+redo_desc : 'Refaire la dernière action annulée',
+link_desc : 'Insérer un hyperlien',
+unlink_desc : 'Supprimer un hyperlien',
+image_desc : 'Insérer une image',
+cleanup_desc : 'Nettoyer le code',
+focus_alert : 'Un éditeur doit être sélectionné pour utiliser cette fonction.',
+edit_confirm : 'Désirez-vous utiliser l\'éditeur pour modifier cette zone?',
+insert_link_title : 'Insérer / Modifier un hyperlien',
+insert : 'Insérer',
+update : 'Insérer',
+cancel : 'Annuler',
+insert_link_url : 'Adresse URL',
+insert_link_target : 'Destination',
+insert_link_target_same : 'Ouvrir dans la même fenêtre',
+insert_link_target_blank : 'Ouvrir dans une nouvelle fenêtre',
+insert_image_title : 'Insérer / Modifier une image',
+insert_image_src : 'Adresse de l\'image',
+insert_image_alt : 'Description de l\'image',
+help_desc : 'Aide',
+bold_img : "bold_fr.gif",
+italic_img : "italic.gif",
+underline_img : "underline_fr.gif",
+clipboard_msg : 'Copier/Couper/Coller ne sont pas disponibles dans Mozilla et FireFox.\nDésirez-vous consulter de plus amples informations à ce sujet?'
+});
diff --git a/tinyMCE/langs/he.js b/tinyMCE/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..44719a82d06ef1776ae38bd7bb4ef1602e8c8a60
--- /dev/null
+++ b/tinyMCE/langs/he.js
@@ -0,0 +1,41 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+bold_desc : 'îåãâù (Ctrl+B)',
+italic_desc : 'ðèåé (Ctrl+I)',
+underline_desc : '÷å úçúé (Ctrl+U)',
+striketrough_desc : '÷å çåöä',
+justifyleft_desc : 'éùø ìùîàì',
+justifycenter_desc : 'éùø ìîøëæ',
+justifyright_desc : 'éùø ìéîéï',
+justifyfull_desc : 'éùø ìùðé äöããéí',
+bullist_desc : 'øùéîä çñøú ñãø',
+numlist_desc : 'øùéîä îñåãøú',
+outdent_desc : 'ä÷èï ëðéñä',
+indent_desc : 'äâãì ëðéñä',
+undo_desc : 'áèì (Ctrl+Z)',
+redo_desc : 'áöò ùåá (Ctrl+Y)',
+link_desc : 'äëðñ/òøåê ÷éùåø',
+unlink_desc : 'áèì ÷éùåø',
+image_desc : 'äëðñ/òøåê úîåðä',
+cleanup_desc : 'ð÷ä ÷åã îáåìâï',
+focus_alert : 'éù ìáçåø áùãä òøéëä ìôðé ùðéúï ìäùúîù áô÷åãä æå.',
+edit_confirm : 'äàí áøöåðê ìäùúîù áîöá òøéëä òùéøä (WYSIWYG) òáåø ùãä è÷ñè æä?',
+insert_link_title : 'äëðñ/òøåê ÷éùåø',
+insert : 'äëðñ',
+update : 'òãëï',
+cancel : 'áèì',
+insert_link_url : 'ëúåáú (URL) ä÷éùåø',
+insert_link_target : 'éòã',
+insert_link_target_same : 'ôúç àú ä÷éùåø áàåúå çìåï',
+insert_link_target_blank : 'ôúç àú ä÷éùåø áçìåï çãù',
+insert_image_title : 'äëðñ/òøåê úîåðä',
+insert_image_src : 'ëúåáú (URL) äúîåðä',
+insert_image_alt : 'úéàåø äúîåðä',
+help_desc : 'òæøä',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'ôòåìåú äòú÷ä/âæéøä/äãá÷ä àéðï ðúîëåú úçú Mozilla å-Firefox.\näàí áøöåðê ì÷áì îéãò ðåñó àåãåú ðåùà æä?',
+popup_blocked : 'ñìéçä, àê ùîðå ìá ëé çåñí äçìåðåú ä÷åôöéí ùìê çñí çìåï ùîäååä çì÷ îäééùåí. úöèøê ìáèì àú çñéîú äçìåðåú ä÷åôöéí áàúø æä ëãé ìðöì ëìé æä áîìåàå.'
+});
diff --git a/tinyMCE/langs/hu.js b/tinyMCE/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..aebcc3695e3200237a9f49fa5f9992a0725ea567
--- /dev/null
+++ b/tinyMCE/langs/hu.js
@@ -0,0 +1,41 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Félkövér',
+italic_desc : 'Dölt',
+underline_desc : 'Aláhúzott',
+striketrough_desc : 'Áthúzott',
+justifyleft_desc : 'Balra igazított',
+justifycenter_desc : 'Középre igazított',
+justifyright_desc : 'Jobbra igazított',
+justifyfull_desc : 'Telejesen igazított',
+bullist_desc : 'Rendezetlen lista',
+numlist_desc : 'Rendezett lista',
+outdent_desc : 'Kihúzás',
+indent_desc : 'Behúzás',
+undo_desc : 'visszavonás',
+redo_desc : 'Ismét',
+link_desc : 'Link hozzáadása/szerkesztése',
+unlink_desc : 'Link megszüntetése',
+image_desc : 'Kép beillesztése/szerkesztése',
+cleanup_desc : 'Rendetlen kód tisztítása',
+focus_alert : 'Egy szerkesztõablakra muszáj fókuszálni ennek a parancsnak a használata elõtt.',
+edit_confirm : 'Szeretnéd használni ezt a WYSIWYG módot ehhez a szövegmezõhöz?',
+insert_link_title : 'Link beillesztése/szerkesztése',
+insert : 'Beillesztés',
+update : 'Frissítés',
+cancel : 'Mégse',
+insert_link_url : 'Link URL',
+insert_link_target : 'Cél',
+insert_link_target_same : 'Link megnyitása ugyanabban az ablakban',
+insert_link_target_blank : 'Link megnyitása új ablakban',
+insert_image_title : 'Kép beillesztése/szerkesztése',
+insert_image_src : 'Kép URL',
+insert_image_alt : 'Kép leírása',
+help_desc : 'Súgó',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'A Másolás/Kivágás/Beillesztés nem elérhetõ Mozillában and Firefox-ban.\nSzeretnél több információt errõl a problémáról?',
+popup_blocked : 'Sajnálom, de észrevettem, hogy a popup-blokkolód letiltotta az ablakot, ami biztosítja ennek az alkalmazásnak a mûködését. Meg kell szüntetned a popup-blokkolást ennek a segédeszköznek a teljes használatához.'
+});
diff --git a/tinyMCE/langs/is.js b/tinyMCE/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..9bb4f9f2f3f51f176398457519036606c0e276b3
--- /dev/null
+++ b/tinyMCE/langs/is.js
@@ -0,0 +1,41 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+bold_desc : 'Feitletrun (Ctrl+B)',
+italic_desc : 'Sk&aacute;letrun (Ctrl+I)',
+underline_desc : 'Undirstrikun (Ctrl+U)',
+striketrough_desc : 'Strik &iacute; gegn',
+justifyleft_desc : 'Vinstri j&ouml;fnun',
+justifycenter_desc : 'Mi&eth;ju j&ouml;fnun',
+justifyright_desc : 'H&aelig;gri j&ouml;fnun',
+justifyfull_desc : 'Samfelld j&ouml;fnun',
+bullist_desc : 'Óra&eth;a&eth;ur listi',
+numlist_desc : 'Ra&eth;a&eth;ur listi',
+outdent_desc : 'Útdr&aacute;ttur',
+indent_desc : 'Inndr&aacute;ttur',
+undo_desc : 'Afturkalla (Ctrl+Z)',
+redo_desc : 'Endurkalla (Ctrl+Y)',
+link_desc : 'Setja inn/breyta hlekk',
+unlink_desc : 'Fjarl&aelig;gja hlekk',
+image_desc : 'Setja inn/breyta mynd',
+cleanup_desc : 'Hreinsa ruslk&oacute;&eth;a',
+focus_alert : 'Setja &thorn;arf bendil &iacute; ritsv&aelig;&eth;i &aacute;&eth;ur en &thorn;essi skipun er notu&eth;.',
+edit_confirm : 'Viltu nota WYSIWYG &aacute; &thorn;essum reit?',
+insert_link_title : 'N&yacute;r/breyttur hlekkur',
+insert : 'Setja inn',
+update : 'Uppf&aelig;ra',
+cancel : 'H&aelig;tta vi&eth;',
+insert_link_url : 'Sl&oacute;&eth; hlekks',
+insert_link_target : 'Gluggi',
+insert_link_target_same : 'Opna tengil &iacute; sama glugga',
+insert_link_target_blank : 'Opna tengil &iacute; n&yacute;jum glugga',
+insert_image_title : 'N&yacute;/breytt mynd',
+insert_image_src : 'Sl&oacute;&eth; myndar',
+insert_image_alt : 'L&yacute;sing myndar',
+help_desc : 'Hj&aacute;lp',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Afrita/skeyta/líma er ekki leyft í vafranum.\nViltu fá frekari upplýsingar um hvernig á að stilla það?',
+popup_blocked : 'Afsakið, gluggavörn vafrans hefur meinað glugga, sem umsjónarkerfið notar, leyfi til þess að opnast. Þú verður að leyfa þessum vef að opna sprettiglugga (popup) til að geta nýtt þennan möguleika.'
+});
diff --git a/tinyMCE/langs/it.js b/tinyMCE/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..06b1e16a677135fc4b1a020eed30572136aabe48
--- /dev/null
+++ b/tinyMCE/langs/it.js
@@ -0,0 +1,49 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+bold_desc : 'Grassetto (Ctrl+B)',
+italic_desc : 'Corsivo (Ctrl+I)',
+underline_desc : 'Sottolineato (Ctrl+U)',
+striketrough_desc : 'Barrato',
+justifyleft_desc : 'Allinea a sinistra',
+justifycenter_desc : 'Allinea al centro',
+justifyright_desc : 'Allinea a destra',
+justifyfull_desc : 'Giustifica',
+bullist_desc : 'Elenco puntato',
+numlist_desc : 'Elenco numerato',
+outdent_desc : 'Riduci rientro',
+indent_desc : 'Aumenta rientro',
+undo_desc : 'Annulla (Ctrl+Z)',
+redo_desc : 'Ripeti (Ctrl+Y)',
+link_desc : 'Inserisci o modifica link',
+unlink_desc : 'Elimina link',
+image_desc : 'Inserisci o modifica immagine',
+cleanup_desc : 'Pulisci il codice HTML',
+focus_alert : 'Fare clic su un\' istanza dell\'editor prima di eseguire questo comando',
+edit_confirm : 'Vuoi usare l\'editor visuale in quest\'area di testo?',
+insert_link_title : 'Inserisci o modifica link',
+insert : 'Inserisci',
+update : 'Modifica',
+cancel : 'Annulla',
+insert_link_url : 'URL del collegamento',
+insert_link_target : 'Destinazione',
+insert_link_target_same : 'Apri il link nella stessa finestra',
+insert_link_target_blank : 'Apri il link in una nuova finestra',
+insert_image_title : 'Inserisci o modifica immagine',
+insert_image_src : 'URL dell\'immagine',
+insert_image_alt : 'Descrizione',
+help_desc : 'Aiuto',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Le operazioni di taglia, copia e incolla non sono disponibili in Firefox. Vuoi ricevere ulteriori informazioni al riguardo?',
+popup_blocked : 'Un blocco popup sta impedendo l\'utilizzo di alcune funzionalit&agrave;. Dovresti disabilitare il blocco per questo sito.',
+insert_image_delta_width : 50,
+insert_link_delta_width : 75
+});
diff --git a/tinyMCE/langs/ja.js b/tinyMCE/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..d72d4c44cb7dbcb12a9def9bc920b5c7fe7ea622
--- /dev/null
+++ b/tinyMCE/langs/ja.js
@@ -0,0 +1,41 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : '太字 (Ctrl+B)',
+italic_desc : '斜体 (Ctrl+I)',
+underline_desc : '下線 (Ctrl+U)',
+striketrough_desc : '打ち消し線',
+justifyleft_desc : '左揃え',
+justifycenter_desc : '中央揃え',
+justifyright_desc : '右揃え',
+justifyfull_desc : '均等割り付け',
+bullist_desc : '箇条書き',
+numlist_desc : '段落番号',
+outdent_desc : 'インデント解除',
+indent_desc : 'インデント',
+undo_desc : '元に戻す (Ctrl+Z)',
+redo_desc : 'やり直し (Ctrl+Y)',
+link_desc : 'ハイパーリンク',
+unlink_desc : 'ハイパーリンクの削除',
+image_desc : '画像',
+cleanup_desc : 'コード整理',
+focus_alert : 'このコマンドを使う前にエディタ上のどこかを選択する必要があります。',
+edit_confirm : 'WYSIWYGモードでこのテキストエリアを編集しますか?',
+insert_link_title : 'ハイパーリンク',
+insert : '挿入',
+update : 'æ›´æ–°',
+cancel : 'キャンセル',
+insert_link_url : 'URL',
+insert_link_target : 'ターゲット',
+insert_link_target_same : '同じウィンドウで開く',
+insert_link_target_blank : '新しいウィンドウで開く',
+insert_image_title : '画像の登録',
+insert_image_src : 'URL',
+insert_image_alt : '画像の説明',
+help_desc : 'ヘルプ',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'コピー/切り取り/貼り付けはMozillaまたはFirefoxでは使用できません\nこの警告に関する詳細情報を表示しますか?',
+popup_blocked : 'ポップアップブロックが有効になっているためエディタの機能が一部制約されています\nこのツールを使用する場合はこのサイトに対するポップアップブロックを無効にしてください。'
+});
diff --git a/tinyMCE/langs/ja_euc-jp.js b/tinyMCE/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc318db2a188e4793741de91b5b3a6666360e33d
--- /dev/null
+++ b/tinyMCE/langs/ja_euc-jp.js
@@ -0,0 +1,41 @@
+// Japanese ÆüËܸì EUC-JP language pack 
+
+tinyMCE.addToLang('',{
+bold_desc : 'ÂÀ»ú (Ctrl+B)',
+italic_desc : '¼ÐÂÎ (Ctrl+I)',
+underline_desc : '²¼Àþ (Ctrl+U)',
+striketrough_desc : '¼è¤ê¾Ã¤·Àþ',
+justifyleft_desc : 'º¸Â·¤¨',
+justifycenter_desc : 'Ãæ±û·¤¨',
+justifyright_desc : '±¦Â·¤¨',
+justifyfull_desc : 'ξü·¤¨',
+bullist_desc : '²Õ¾ò½ñ¤­',
+numlist_desc : 'ÃÊÍîÈÖ¹æ',
+outdent_desc : '¥¢¥¦¥È¥Ç¥ó¥È',
+indent_desc : '¥¤¥ó¥Ç¥ó¥È',
+undo_desc : '¸µ¤ËÌ᤹ (Ctrl+Z)',
+redo_desc : '·«¤êÊÖ¤· (Ctrl+Y)',
+link_desc : '¥ê¥ó¥¯¤òÁÞÆþ¡¦ÊÔ½¸',
+unlink_desc : '¥ê¥ó¥¯¤ò³°¤¹',
+image_desc : '¥¤¥á¡¼¥¸¤òÁÞÆþ',
+cleanup_desc : '¥³¡¼¥É¤òÀ°È÷¤¹¤ë',
+focus_alert : 'A editor instance must be focused before using this command.',
+edit_confirm : 'Do you want to use the WYSIWYG mode for this textarea?',
+insert_link_title : '¥ê¥ó¥¯¤òÁÞÆþ¡¦ÊÔ½¸',
+insert : 'ÁÞÆþ',
+update : '¹¹¿·',
+cancel : '¥­¥ã¥ó¥»¥ë',
+insert_link_url : '¥ê¥ó¥¯¤ÎURL',
+insert_link_target : '¥¿¡¼¥²¥Ã¥È',
+insert_link_target_same : 'Ʊ¤¸¥¦¥£¥ó¥É¥¦¤Ç¥ê¥ó¥¯¤ò³«¤¯',
+insert_link_target_blank : '¿·¤·¤¤¥¦¥£¥ó¥É¥¦¤Ç¥ê¥ó¥¯¤ò³«¤¯',
+insert_image_title : '¥¤¥á¡¼¥¸¤òÁÞÆþ¡¦ÊÔ½¸',
+insert_image_src : '¥¤¥á¡¼¥¸¤ÎURL',
+insert_image_alt : 'ÂåÂØ¥Æ¥­¥¹¥È',
+help_desc : '¥Ø¥ë¥×',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : '¥³¥Ô¡¼/ÀÚ¤ê¼è¤ë/ޤêÉÕ¤±¤Ï Mozilla¤È Firefox¤Ë̵¸ú¤Ç¤¹¡£\n¾Ü¤·¤¯É½¼¨¤·¤Þ¤¹¤«?',
+popup_blocked : '¥Ý¥Ã¥×¥¢¥Ã¥×¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥Ý¥Ã¥×¥¢¥Ã¥×¤òÍ­¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£'
+});
diff --git a/tinyMCE/langs/ja_shift_jis.js b/tinyMCE/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..dbb81361785b9008891b2c6b2c5c00f3c87a6537
--- /dev/null
+++ b/tinyMCE/langs/ja_shift_jis.js
@@ -0,0 +1,41 @@
+// Japanese “ú–{Œê ƒVƒtƒgJIS language pack 
+
+tinyMCE.addToLang('',{
+bold_desc : '‘¾Žš (Ctrl+B)',
+italic_desc : 'ŽÎ‘Ì (Ctrl+I)',
+underline_desc : '‰ºü (Ctrl+U)',
+striketrough_desc : 'Žæ‚èÁ‚µü',
+justifyleft_desc : '¶‘µ‚¦',
+justifycenter_desc : '’†‰›‘µ‚¦',
+justifyright_desc : '‰E‘µ‚¦',
+justifyfull_desc : '—¼’[‘µ‚¦',
+bullist_desc : '‰Óð‘‚«',
+numlist_desc : '’i—Ž”Ô†',
+outdent_desc : 'ƒAƒEƒgƒfƒ“ƒg',
+indent_desc : 'ƒCƒ“ƒfƒ“ƒg',
+undo_desc : 'Œ³‚É–ß‚· (Ctrl+Z)',
+redo_desc : 'ŒJ‚è•Ô‚µ (Ctrl+Y)',
+link_desc : 'ƒŠƒ“ƒN‚ð‘}“üE•ҏW',
+unlink_desc : 'ƒŠƒ“ƒN‚ðŠO‚·',
+image_desc : 'ƒCƒ[ƒW‚ð‘}“ü',
+cleanup_desc : 'ƒR[ƒh‚𐮔õ‚·‚é',
+focus_alert : 'A editor instance must be focused before using this command.',
+edit_confirm : 'Do you want to use the WYSIWYG mode for this textarea?',
+insert_link_title : 'ƒŠƒ“ƒN‚ð‘}“üE•ҏW',
+insert : '‘}“ü',
+update : 'XV',
+cancel : 'ƒLƒƒƒ“ƒZƒ‹',
+insert_link_url : 'ƒŠƒ“ƒN‚ÌURL',
+insert_link_target : 'ƒ^[ƒQƒbƒg',
+insert_link_target_same : '“¯‚¶ƒEƒBƒ“ƒhƒE‚ÅƒŠƒ“ƒN‚ðŠJ‚­',
+insert_link_target_blank : 'V‚µ‚¢ƒEƒBƒ“ƒhƒE‚ÅƒŠƒ“ƒN‚ðŠJ‚­',
+insert_image_title : 'ƒCƒ[ƒW‚ð‘}“üE•ҏW',
+insert_image_src : 'ƒCƒ[ƒW‚ÌURL',
+insert_image_alt : '‘ã‘ÖƒeƒLƒXƒg',
+help_desc : 'ƒwƒ‹ƒv',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'ƒRƒs[/Ø‚èŽæ‚é/“\‚è•t‚¯‚Í Mozilla‚Æ Firefox‚É–³Œø‚Å‚·B\nÚ‚µ‚­•\ަ‚µ‚Ü‚·‚©?',
+popup_blocked : 'ƒ|ƒbƒvƒAƒbƒv‹ÖŽ~‚³‚ê‚Ä‚¢‚é‚̂ŁAƒ|ƒbƒvƒAƒbƒv‚ð—LŒø‚É‚µ‚Ä‚­‚¾‚³‚¢B'
+});
diff --git a/tinyMCE/langs/ja_utf-8.js b/tinyMCE/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..c0ec613662e235c213795c5aecde147fc79fd3ca
--- /dev/null
+++ b/tinyMCE/langs/ja_utf-8.js
@@ -0,0 +1,41 @@
+// Japanese 日本語 utf-8 language pack 
+
+tinyMCE.addToLang('',{
+bold_desc : '太字 (Ctrl+B)',
+italic_desc : '斜体 (Ctrl+I)',
+underline_desc : '下線 (Ctrl+U)',
+striketrough_desc : '取り消し線',
+justifyleft_desc : '左揃え',
+justifycenter_desc : '中央揃え',
+justifyright_desc : '右揃え',
+justifyfull_desc : '両端揃え',
+bullist_desc : '箇条書き',
+numlist_desc : '段落番号',
+outdent_desc : 'アウトデント',
+indent_desc : 'インデント',
+undo_desc : '元に戻す (Ctrl+Z)',
+redo_desc : '繰り返し (Ctrl+Y)',
+link_desc : 'リンクを挿入・編集',
+unlink_desc : 'リンクを外す',
+image_desc : 'イメージを挿入',
+cleanup_desc : 'コードを整備する',
+focus_alert : 'A editor instance must be focused before using this command.',
+edit_confirm : 'Do you want to use the WYSIWYG mode for this textarea?',
+insert_link_title : 'リンクを挿入・編集',
+insert : '挿入',
+update : 'æ›´æ–°',
+cancel : 'キャンセル',
+insert_link_url : 'リンクのURL',
+insert_link_target : 'ターゲット',
+insert_link_target_same : '同じウィンドウでリンクを開く',
+insert_link_target_blank : '新しいウィンドウでリンクを開く',
+insert_image_title : 'イメージを挿入・編集',
+insert_image_src : 'イメージのURL',
+insert_image_alt : '代替テキスト',
+help_desc : 'ヘルプ',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'コピー/切り取る/貼り付けは Mozillaと Firefoxに無効です。\n詳しく表示しますか?',
+popup_blocked : 'ポップアップ禁止されているので、ポップアップを有効にしてください。'
+});
diff --git a/tinyMCE/langs/ko.js b/tinyMCE/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..3ac5b4d4be5a9019a045a22a24e279839f67e9b7
--- /dev/null
+++ b/tinyMCE/langs/ko.js
@@ -0,0 +1,40 @@
+// KO lang variables by Setzer Gabbiani
+
+tinyMCE.addToLang('',{
+bold_desc : 'ÁøÇϰÔ',
+italic_desc : '±â¿ïÀÓ',
+underline_desc : '¹ØÁÙ',
+striketrough_desc : '°¡·ÎÁÙ',
+justifyleft_desc : '¿ÞÂÊ Á¤·&Auml;',
+justifycenter_desc : '°¡¿îµ¥ Á¤·&Auml;',
+justifyright_desc : '¿À¸¥ÂÊ Á¤·&Auml;',
+justifyfull_desc : '¾çÂÊ Á¤·&Auml;',
+bullist_desc : '¸ñÂ÷ ¸&Aring;±â±â',
+numlist_desc : '¹øÈ£ ¸&Aring;±â±â',
+outdent_desc : '³»¾î¾²±â',
+indent_desc : 'µé¿©¾²±â',
+undo_desc : '½ÇÇàÃë¼Ò',
+redo_desc : 'Àç½ÇÇà',
+link_desc : '¸µ&Aring;© ³&Ouml;±â/°í&Auml;¡±â',
+unlink_desc : '¸µ&Aring;© ÇØÁ¦',
+image_desc : '±×¸² ³&Ouml;±â/°í&Auml;¡±â',
+cleanup_desc : '&Auml;Úµ&aring;¸¦ ±ò²ûÇϰÔ',
+focus_alert : 'ÀÌ ¸í·ÉÀ» ½ÇÇàÇϱâ Àü¿¡ ¹Ýµ&aring;½Ã ¿¡µð&Aring;Í ³»ÀÇ ¾îµò°¡¿¡ &Auml;¿¼­°¡ À&Ouml;¾î¾ß ÇÕ´Ï´Ù.',
+edit_confirm : 'ÀÌ &Aring;ؽºÆ® ¹Ú½º¿¡¼­ HTML ¿¡µð&Aring;͸¦ »ç¿ëÇÏ±æ ¿øÇϽʴϱî?',
+insert_link_title : '¸µ&Aring;© ³&Ouml;±â/°í&Auml;¡±â',
+insert : '»ðÀÔ',
+update : '»ðÀÔ',
+cancel : 'Ãë¼Ò',
+insert_link_url : 'URL ¸µ&Aring;©',
+insert_link_target : '&Aring;¸°Ù',
+insert_link_target_same : '°°Àº â¿¡¼­ ¸µ&Aring;© ¿­±â',
+insert_link_target_blank : '»õ â¿¡¼­ ¸µ&Aring;© ¿­±â',
+insert_image_title : '±×¸² ³&Ouml;±â/°í&Auml;¡±â',
+insert_image_src : '±×¸² URL',
+insert_image_alt : '±×¸² ¼³¸í',
+help_desc : 'µµ¿ò¸»',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
diff --git a/tinyMCE/langs/nb.js b/tinyMCE/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e6968dc0c06328fd969f49ffb342035f5910b47
--- /dev/null
+++ b/tinyMCE/langs/nb.js
@@ -0,0 +1,41 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+bold_desc : 'Fet',
+italic_desc : 'Kursiv',
+underline_desc : 'Understreking',
+striketrough_desc : 'Gjennomstreking',
+justifyleft_desc : 'Venstrestill',
+justifycenter_desc : 'Sentrer',
+justifyright_desc : 'H&oslash;yrestill',
+justifyfull_desc : 'Blokkjustering',
+bullist_desc : 'Punktliste',
+numlist_desc : 'Nummerliste',
+outdent_desc : 'Reduser innrykk',
+indent_desc : '&Oslash;k innrykk',
+undo_desc : 'Angre',
+redo_desc : 'Gj&oslash;r om',
+link_desc : 'Opprett/endre lenke',
+unlink_desc : 'Fjern lenke',
+image_desc : 'Sett inn/endre bilde',
+cleanup_desc : 'Rens grisete kode',
+focus_alert : 'Editoren m&aring; v&aelig;re i fokus f&oslash;r du benytter denne kommando.',
+edit_confirm : 'Vil du benytte WYSIWYG editoren for dette tekstfelt?',
+insert_link_title : 'Opprett/endre lenke',
+insert : 'Sett inn',
+update : 'Oppdater',
+cancel : 'Avbryt',
+insert_link_url : 'Lenkens URL',
+insert_link_target : 'Vindu',
+insert_link_target_same : '&Aring;pne i samme vindu',
+insert_link_target_blank : '&Aring;pne i nytt vindu',
+insert_image_title : 'Opprett/endre bilde',
+insert_image_src : 'Bildets URL',
+insert_image_alt : 'Bildets beskrivelse',
+help_desc : 'Hjelp',
+bold_img : 'bold_de_se.gif',
+italic_img : 'italic_de_se.gif',
+underline_img : 'underline.gif',
+clipboard_msg : 'Klipp ut/Kopier/Lim inn fungerer ikke i Mozilla og Firefox. Vil du vite mer om dette?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
diff --git a/tinyMCE/langs/nl.js b/tinyMCE/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..7e292525af2cddc05c5c41b54b4aa46d60fed2d2
--- /dev/null
+++ b/tinyMCE/langs/nl.js
@@ -0,0 +1,42 @@
+// NL lang variables thanks to "Meint Post"
+// Updates by (2.0) Mark van der Sanden
+
+tinyMCE.addToLang('',{
+bold_desc : 'Vet (Ctrl+B)',
+italic_desc : 'Cursief (Ctrl+I)',
+underline_desc : 'Onderstrepen (Ctrl+U)',
+striketrough_desc : 'Doorhalen',
+justifyleft_desc : 'Links uitlijnen',
+justifycenter_desc : 'Centreren',
+justifyright_desc : 'Rechts uitlijnen',
+justifyfull_desc : 'Volledig uitlijnen',
+bullist_desc : 'Opsommingstekens',
+numlist_desc : 'Genummerde lijst',
+outdent_desc : 'Inspringen verkleinen',
+indent_desc : 'Inspringen vergroten',
+undo_desc : 'Ongedaan maken (Ctrl+Z)',
+redo_desc : 'Opnieuw (Ctrl+Y)',
+link_desc : 'Hyperlink invoegen/bewerken',
+unlink_desc : 'Hyperlink verwijderen',
+image_desc : 'Afbeelding invoegen',
+cleanup_desc : 'Code opschonen',
+focus_alert : 'Klik op de tekst in de editor voor het uitvoeren van dit commando.',
+edit_confirm : 'Wilt u de WYSIWYG modus voor deze textarea gebruiken?',
+insert_link_title : 'Hyperlink invoegen/bewerken',
+insert : 'OK',
+update : 'Toepassen',
+cancel : 'Annuleren',
+insert_link_url : 'URL link',
+insert_link_target : 'Bestemming',
+insert_link_target_same : 'Open link in hetzelfde venster',
+insert_link_target_blank : 'Open link in een nieuw venster',
+insert_image_title : 'Afbeelding invoegen/bewerken',
+insert_image_src : 'Afbeelding',
+insert_image_alt : 'Beschrijving',
+help_desc : 'Help',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Kopiëren/knippen/plakken is niet beschikbaar in Mozilla en Firefox.\nWilt u meer informatie over deze kwestie?',
+popup_blocked : 'Uw browser heeft zojuist geweigerd een popup-venster te tonen. Waarschijnlijk gebruikt u een poup-blocker die voor deze editor te streng omgaat met popups. Om het venster toch te tonen, zult u uw popup-blocker zo in moeten stellen dat het popups van deze website toestaat.'
+});
diff --git a/tinyMCE/langs/nn.js b/tinyMCE/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..72a2d68ec359a3d3ce7f8fa879cd4384cbaa99b3
--- /dev/null
+++ b/tinyMCE/langs/nn.js
@@ -0,0 +1,41 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+bold_desc : 'Feit',
+italic_desc : 'Kursiv',
+underline_desc : 'Understreking',
+striketrough_desc : 'Gjennomstreking',
+justifyleft_desc : 'Venstrestill',
+justifycenter_desc : 'Sentrer',
+justifyright_desc : 'H&oslash;grestill',
+justifyfull_desc : 'Blokkjustering',
+bullist_desc : 'Punktliste',
+numlist_desc : 'Nummerliste',
+outdent_desc : 'Reduser innrykk',
+indent_desc : 'Auk innrykk',
+undo_desc : 'Angre',
+redo_desc : 'Gjer om',
+link_desc : 'Opprett/endre lenke',
+unlink_desc : 'Fjern lenke',
+image_desc : 'Sett inn/endre bilde',
+cleanup_desc : 'Rens grisete kode',
+focus_alert : 'Editoren m&aring; v&aelig;re i fokus f&oslash;r du benytter denne kommando.',
+edit_confirm : 'Vil du benytte WYSIWYG editoren for dette tekstfelt?',
+insert_link_title : 'Opprett/endre lenke',
+insert : 'Sett inn',
+update : 'Oppdater',
+cancel : 'Avbryt',
+insert_link_url : 'Lenkens URL',
+insert_link_target : 'Vindu',
+insert_link_target_same : '&Aring;pne i samme vindauge',
+insert_link_target_blank : '&Aring;pne i nytt vindauge',
+insert_image_title : 'Opprett/endre bilde',
+insert_image_src : 'Bildets URL',
+insert_image_alt : 'Bildets beskrivelse',
+help_desc : 'Hjelp',
+bold_img : 'bold_de_se.gif',
+italic_img : 'italic_de_se.gif',
+underline_img : 'underline.gif',
+clipboard_msg : 'Klipp ut/Kopier/Lim inn fungerer ikkje i Mozilla og Firefox. Vil du vite meir om dette?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
diff --git a/tinyMCE/langs/pl.js b/tinyMCE/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2d09443b48e8dc62f9d20e7b0c47e0de8012cad
--- /dev/null
+++ b/tinyMCE/langs/pl.js
@@ -0,0 +1,45 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+// fixed by lemiel 26.10.2005
+// Converted to UTF-8 by nicoone 11.10.2006
+
+tinyMCE.addToLang('',{
+bold_desc : 'Pogrubienie (Ctrl+B)',
+italic_desc : 'Pochylenie (Ctrl+I)',
+underline_desc : 'Podkreślenie (Ctrl+U)',
+striketrough_desc : 'Przekreślenie',
+justifyleft_desc : 'Wyrównaj do lewej',
+justifycenter_desc : 'Wyrównaj do środka',
+justifyright_desc : 'Wyrównaj do prawej',
+justifyfull_desc : 'Wyrównaj na całości',
+bullist_desc : 'Lista nienumerowana',
+numlist_desc : 'Lista numerowana',
+outdent_desc : 'Zmniejsz wcięcie',
+indent_desc : 'Zwiększ wcięcie',
+undo_desc : 'Cofnij (Ctrl+Z)',
+redo_desc : 'Ponów (Ctrl+Y)',
+link_desc : 'Wstaw/edytuj link',
+unlink_desc : 'Usuń link',
+image_desc : 'Wstaw/edytuj obrazek',
+cleanup_desc : 'Usuń zbędny kod',
+focus_alert : 'Instancja edytora musi być aktywna przed użyciem tego polecenia.',
+edit_confirm : 'Czy chcesz użyć edytora WYSIWYG dla tego pola tekstowego?',
+insert_link_title : 'Wstaw/edytuj link',
+insert : 'Wstaw',
+update : 'Aktualizuj',
+cancel : 'Anuluj',
+insert_link_url : 'URL linku',
+insert_link_target : 'Cel',
+insert_link_target_same : 'Otwórz link w tym samym oknie',
+insert_link_target_blank : 'Otwórz link w nowym oknie',
+insert_image_title : 'Wstaw/edytuj obrazek',
+insert_image_src : 'URL obrazka',
+insert_image_alt : 'Opis obrazka',
+help_desc : 'Pomoc',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Kopiuj/Wytnij/Wklej nie jest dostępne dla przeglądarek Mozilla i Firefox.\nCzy chcesz uzyskać o tym więcej informacji?',
+popup_blocked : 'Niestety, ale odnotowano, że Twoja przeglądarka ma włączoną blokadę okienek popup. Musisz wyłączyć opcję blokowania okienek dla tej strony, aby TinyMCE mógł pracować z pełną funkcjonalnością.'
+});
diff --git a/tinyMCE/langs/pt_br.js b/tinyMCE/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2cff883cbe8e18661a57894bf69cd0540e5c715
--- /dev/null
+++ b/tinyMCE/langs/pt_br.js
@@ -0,0 +1,50 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+bold_desc : 'Negrito (Ctrl+B)',
+italic_desc : 'Itálico (Ctrl+I)',
+underline_desc : 'Sublinhado (Ctrl+U)',
+striketrough_desc : 'Riscado',
+justifyleft_desc : 'Alinhar à esquerda',
+justifycenter_desc : 'Centralizar',
+justifyright_desc : 'Alinhar à direita',
+justifyfull_desc : 'Justificar',
+bullist_desc : 'Lista não ordenada',
+numlist_desc : 'Lista ordenada',
+outdent_desc : 'Retirar indentação',
+indent_desc : 'Indentar',
+undo_desc : 'Desfazer (Ctrl+Z)',
+redo_desc : 'Refazer (Ctrl+Y)',
+link_desc : 'Inserir link',
+unlink_desc : 'Remover link',
+image_desc : 'Inserir referência a imagem externa',
+object_desc : 'Inserir objeto multimídia da Galeria',
+cleanup_desc : 'Limpeza de código',
+focus_alert : 'Uma instância do editor deverá estar selecionada antes de utilizar este comando.',
+edit_confirm : 'Deseja utilizar o Modo Visual (WYSIWYG) de edição para esta área de texto?',
+insert_link_title : 'Inserir/editar link',
+insert : 'Inserir',
+update : 'Atualizar',
+cancel : 'Cancelar',
+insert_link_url : 'URL do link',
+insert_link_target : 'Destino',
+insert_link_target_same : 'Abrir link na mesma janela',
+insert_link_target_blank : 'Abrir link em uma nova janela',
+insert_image_title : 'Inserir/editar imagem',
+insert_image_src : 'Endereço (URL) da imagem',
+insert_image_alt : 'Descrição da imagem',
+help_desc : 'Ajuda',
+bold_img : 'bold_pt_br.gif',
+italic_img : 'italic.gif',
+underline_img : 'underline_pt_br.gif',
+clipboard_msg : 'Copiar/recortar/colar não está disponível no Mozilla e Firefox.\nPretende obter mais informação sobre esta questão?',
+popup_blocked : 'Seu navegador bloqueou um popup necessário para o correto funcionamento desta ferramenta. Você precisa desativar seu bloqueador de popup neste site para que todos os recursos possam ser utilizados.'
+});
\ No newline at end of file
diff --git a/tinyMCE/langs/readme.txt b/tinyMCE/langs/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0210e7ebb6d294991bbc57f53ba3d6e9a3ffc0d9
--- /dev/null
+++ b/tinyMCE/langs/readme.txt
@@ -0,0 +1,9 @@
+Beginning with version 2.0.5 the language packs are no
+longer included with the core distribution.
+Language packs can be downloaded from the TinyMCE website:
+http://tinymce.moxiecode.com/download.php
+
+The language pack codes are based on ISO-639-1:
+http://www.loc.gov/standards/iso639-2/englangn.html
+
+Plrease try using entities if possible. Like &aring; etc for non a-z characters.
diff --git a/tinyMCE/langs/ro.js b/tinyMCE/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6b1ca28460ff2721e02e2e978e491a93f11aa3c
--- /dev/null
+++ b/tinyMCE/langs/ro.js
@@ -0,0 +1,41 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Bold (Ctrl+B)',
+italic_desc : 'Italic (Ctrl+I)',
+underline_desc : 'Subliniat (Ctrl+U)',
+striketrough_desc : 'T&#259;iat',
+justifyleft_desc : 'Aliniere la st&#226;nga',
+justifycenter_desc : 'Centrat',
+justifyright_desc : 'Alinere la dreapta',
+justifyfull_desc : 'Aliniere integral&#259;',
+bullist_desc : 'List&#259; neordonat&#259;',
+numlist_desc : 'List&#259; ordonat&#259;',
+outdent_desc : 'De-indentare',
+indent_desc : 'Indentare',
+undo_desc : 'Revenire cu un pas &#238;napoi (Ctrl+Z)',
+redo_desc : 'Revenire cu un pas &#238;nainte (Ctrl+Y)',
+link_desc : 'Insereaz&#259;/editeaz&#259; leg&#259;tur&#259;',
+unlink_desc : '&#350;terge leg&#259;tura',
+image_desc : 'Insereaz&#259;/editeaz&#259; imagine',
+cleanup_desc : 'Cur&#259;&#355;&#259; cod ne&#238;ngrijit',
+focus_alert : 'O instan&#355;&#259; de editare trebuie s&#259; fie activ&#259; &#238;nainte de folosirea acestei comenzi.',
+edit_confirm : 'Vrei s&#259; folose&#351;ti modul WYSIWYG pentru aceast&#259; zon&#259; de text?',
+insert_link_title : 'Insereaz&#259;/editeaz&#259; leg&#259;tur&#259;',
+insert : 'Insereaz&#259;',
+update : 'Actualizeaz&#259;',
+cancel : 'Anulare',
+insert_link_url : 'URL leg&#259;tur&#259;',
+insert_link_target : '&#354;int&#259; leg&#259;tur&#259;',
+insert_link_target_same : 'Deschide leg&#259;tura &#238;n aceea&#351;i fereastr&#259;',
+insert_link_target_blank : 'Deschide leg&#259;tura &#238;ntr-o fereastr&#259; nou&#259;',
+insert_image_title : 'Insereaz&#259;/editeaz&#259; imagine',
+insert_image_src : 'URL imagine',
+insert_image_alt : 'Descriere imagine',
+help_desc : 'Ajutor',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copierea/T&#259;ierea/Lipirea nu sunt disponibile &#238;n Mozilla &#351;i Firefox.\nVrei mai multe informa&#355;ii despre acest lucru?',
+popup_blocked : 'Ne pare r&#259;u, dar am observat c&#259; componenta de blocare a popup-urilor a dezactivat o fereastr&#259; care asigur&#259; func&#355;ionalitatea aplica&#355;iei. Va trebui s&#259; dezactivezi blocarea de popup-uri pe acest portal, pentru a putea folosi acest instrument la &#238;ntreaga lui capacitate.'
+});
diff --git a/tinyMCE/langs/ru.js b/tinyMCE/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..c4418b42a18a69ed43d88886c9a0fb5997b00920
--- /dev/null
+++ b/tinyMCE/langs/ru.js
@@ -0,0 +1,43 @@
+// Russian translation by Vladimir Vitkovsky - admin@transport.su
+// Updated to 2.0.6.1 with some old errors fixed by yarodin@gmail.com for e107.org
+// Updated to 2.1.0 by Oleg Nitz
+
+tinyMCE.addToLang('',{
+bold_desc : 'Жирный (Ctrl+B)',
+italic_desc : 'Курсив (Ctrl+I)',
+underline_desc : 'Подчеркнутый (Ctrl+U)',
+striketrough_desc : 'Перечеркнутый',
+justifyleft_desc : 'Выравнивание влево',
+justifycenter_desc : 'Выравнивание по центру',
+justifyright_desc : 'Выравнивание вправо',
+justifyfull_desc : 'Равномерное заполнение',
+bullist_desc : 'Маркированный список',
+numlist_desc : 'Нумерованный список',
+outdent_desc : 'Уменьшить отступ',
+indent_desc : 'Увеличить отступ',
+undo_desc : 'Отменить (Ctrl+Z)',
+redo_desc : 'Вернуть (Ctrl+Y)',
+link_desc : 'Вставить/изменить ссылку',
+unlink_desc : 'Убрать ссылку',
+image_desc : 'Вставить/изменить изображение',
+cleanup_desc : 'Подчистить избыточный код',
+focus_alert : 'Для использования данной команды Вы должны находится в поле редактора.',
+edit_confirm : 'Хотите ли Вы редактировать в визуальном (WYSIWYG) режиме?',
+insert_link_title : 'Вставить/изменить ссылку',
+insert : 'Вставить',
+update : 'Применить',
+cancel : 'Отменить',
+insert_link_url : 'Адрес ссылки',
+insert_link_target : 'Открыть в...:',
+insert_link_target_same : 'том же окне',
+insert_link_target_blank : 'новом окне',
+insert_image_title : 'Вставить/изменить изображение',
+insert_image_src : 'Адрес картинки',
+insert_image_alt : 'Описание картинки',
+help_desc : 'Помощь',
+bold_img : "bold_ru.gif",
+italic_img : "italic_ru.gif",
+underline_img : "underline_ru.gif",
+clipboard_msg : 'Копировать/Вырезать/Вставить недоступны для Mozilla и Firefox.\nХотите узнать об этом подробнее?',
+popup_blocked : 'Извините, но в Вашем браузере заблокированы всплывающие окна. Для того, чтобы иметь возможность воспользоваться всеми возможностями редактора, необходимо отключить блокировку всплывающих окон для этого сайта.'
+});
diff --git a/tinyMCE/langs/ru_CP1251.js b/tinyMCE/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..c20b924bca6b97d50e494c2c4dd1971e5893ffa9
--- /dev/null
+++ b/tinyMCE/langs/ru_CP1251.js
@@ -0,0 +1,43 @@
+// Russian translation by Vladimir Vitkovsky - admin@transport.su
+// Updated to 2.0.6.1 with some old errors fixed by yarodin@gmail.com for e107.org
+// Updated to 2.1.0 by Oleg Nitz
+
+tinyMCE.addToLang('',{
+bold_desc : 'Æèðíûé (Ctrl+B)',
+italic_desc : 'Êóðñèâ (Ctrl+I)',
+underline_desc : 'Ïîä÷åðêíóòûé (Ctrl+U)',
+striketrough_desc : 'Ïåðå÷åðêíóòûé',
+justifyleft_desc : 'Âûðàâíèâàíèå âëåâî',
+justifycenter_desc : 'Âûðàâíèâàíèå ïî öåíòðó',
+justifyright_desc : 'Âûðàâíèâàíèå âïðàâî',
+justifyfull_desc : 'Ðàâíîìåðíîå çàïîëíåíèå',
+bullist_desc : 'Ìàðêèðîâàííûé ñïèñîê',
+numlist_desc : 'Íóìåðîâàííûé ñïèñîê',
+outdent_desc : 'Óìåíüøèòü îòñòóï',
+indent_desc : 'Óâåëè÷èòü îòñòóï',
+undo_desc : 'Îòìåíèòü (Ctrl+Z)',
+redo_desc : 'Âåðíóòü (Ctrl+Y)',
+link_desc : 'Âñòàâèòü/èçìåíèòü ññûëêó',
+unlink_desc : 'Óáðàòü ññûëêó',
+image_desc : 'Âñòàâèòü/èçìåíèòü èçîáðàæåíèå',
+cleanup_desc : 'Ïîä÷èñòèòü èçáûòî÷íûé êîä',
+focus_alert : 'Äëÿ èñïîëüçîâàíèÿ äàííîé êîìàíäû Âû äîëæíû íàõîäèòñÿ â ïîëå ðåäàêòîðà.',
+edit_confirm : 'Õîòèòå ëè Âû ðåäàêòèðîâàòü â âèçóàëüíîì (WYSIWYG) ðåæèìå?',
+insert_link_title : 'Âñòàâèòü/èçìåíèòü ññûëêó',
+insert : 'Âñòàâèòü',
+update : 'Ïðèìåíèòü',
+cancel : 'Îòìåíèòü',
+insert_link_url : 'Àäðåñ ññûëêè',
+insert_link_target : 'Îòêðûòü â...:',
+insert_link_target_same : 'òîì æå îêíå',
+insert_link_target_blank : 'íîâîì îêíå',
+insert_image_title : 'Âñòàâèòü/èçìåíèòü èçîáðàæåíèå',
+insert_image_src : 'Àäðåñ êàðòèíêè',
+insert_image_alt : 'Îïèñàíèå êàðòèíêè',
+help_desc : 'Ïîìîùü',
+bold_img : "bold_ru.gif",
+italic_img : "italic_ru.gif",
+underline_img : "underline_ru.gif",
+clipboard_msg : 'Êîïèðîâàòü/Âûðåçàòü/Âñòàâèòü íåäîñòóïíû äëÿ Mozilla è Firefox.\nÕîòèòå óçíàòü îá ýòîì ïîäðîáíåå?',
+popup_blocked : 'Èçâèíèòå, íî â Âàøåì áðàóçåðå çàáëîêèðîâàíû âñïëûâàþùèå îêíà. Äëÿ òîãî, ÷òîáû èìåòü âîçìîæíîñòü âîñïîëüçîâàòüñÿ âñåìè âîçìîæíîñòÿìè ðåäàêòîðà, íåîáõîäèìî îòêëþ÷èòü áëîêèðîâêó âñïëûâàþùèõ îêîí äëÿ ýòîãî ñàéòà.'
+});
diff --git a/tinyMCE/langs/ru_KOI8-R.js b/tinyMCE/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..0744aeaa261bf4e7157327bcc6774a1133f951ed
--- /dev/null
+++ b/tinyMCE/langs/ru_KOI8-R.js
@@ -0,0 +1,43 @@
+// Russian translation by Vladimir Vitkovsky - admin@transport.su
+// Updated to 2.0.6.1 with some old errors fixed by yarodin@gmail.com for e107.org
+// Updated to 2.1.0 by Oleg Nitz
+
+tinyMCE.addToLang('',{
+bold_desc : 'öÉÒÎÙÊ (Ctrl+B)',
+italic_desc : 'ëÕÒÓÉ× (Ctrl+I)',
+underline_desc : 'ðÏÄÞÅÒËÎÕÔÙÊ (Ctrl+U)',
+striketrough_desc : 'ðÅÒÅÞÅÒËÎÕÔÙÊ',
+justifyleft_desc : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ ×ÌÅ×Ï',
+justifycenter_desc : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ ÐÏ ÃÅÎÔÒÕ',
+justifyright_desc : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ ×ÐÒÁ×Ï',
+justifyfull_desc : 'òÁ×ÎÏÍÅÒÎÏÅ ÚÁÐÏÌÎÅÎÉÅ',
+bullist_desc : 'íÁÒËÉÒÏ×ÁÎÎÙÊ ÓÐÉÓÏË',
+numlist_desc : 'îÕÍÅÒÏ×ÁÎÎÙÊ ÓÐÉÓÏË',
+outdent_desc : 'õÍÅÎØÛÉÔØ ÏÔÓÔÕÐ',
+indent_desc : 'õ×ÅÌÉÞÉÔØ ÏÔÓÔÕÐ',
+undo_desc : 'ïÔÍÅÎÉÔØ (Ctrl+Z)',
+redo_desc : '÷ÅÒÎÕÔØ (Ctrl+Y)',
+link_desc : '÷ÓÔÁ×ÉÔØ/ÉÚÍÅÎÉÔØ ÓÓÙÌËÕ',
+unlink_desc : 'õÂÒÁÔØ ÓÓÙÌËÕ',
+image_desc : '÷ÓÔÁ×ÉÔØ/ÉÚÍÅÎÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ',
+cleanup_desc : 'ðÏÄÞÉÓÔÉÔØ ÉÚÂÙÔÏÞÎÙÊ ËÏÄ',
+focus_alert : 'äÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÄÁÎÎÏÊ ËÏÍÁÎÄÙ ÷Ù ÄÏÌÖÎÙ ÎÁÈÏÄÉÔÓÑ × ÐÏÌÅ ÒÅÄÁËÔÏÒÁ.',
+edit_confirm : 'èÏÔÉÔÅ ÌÉ ÷Ù ÒÅÄÁËÔÉÒÏ×ÁÔØ × ×ÉÚÕÁÌØÎÏÍ (WYSIWYG) ÒÅÖÉÍÅ?',
+insert_link_title : '÷ÓÔÁ×ÉÔØ/ÉÚÍÅÎÉÔØ ÓÓÙÌËÕ',
+insert : '÷ÓÔÁ×ÉÔØ',
+update : 'ðÒÉÍÅÎÉÔØ',
+cancel : 'ïÔÍÅÎÉÔØ',
+insert_link_url : 'áÄÒÅÓ ÓÓÙÌËÉ',
+insert_link_target : 'ïÔËÒÙÔØ ×...:',
+insert_link_target_same : 'ÔÏÍ ÖÅ ÏËÎÅ',
+insert_link_target_blank : 'ÎÏ×ÏÍ ÏËÎÅ',
+insert_image_title : '÷ÓÔÁ×ÉÔØ/ÉÚÍÅÎÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ',
+insert_image_src : 'áÄÒÅÓ ËÁÒÔÉÎËÉ',
+insert_image_alt : 'ïÐÉÓÁÎÉÅ ËÁÒÔÉÎËÉ',
+help_desc : 'ðÏÍÏÝØ',
+bold_img : "bold_ru.gif",
+italic_img : "italic_ru.gif",
+underline_img : "underline_ru.gif",
+clipboard_msg : 'ëÏÐÉÒÏ×ÁÔØ/÷ÙÒÅÚÁÔØ/÷ÓÔÁ×ÉÔØ ÎÅÄÏÓÔÕÐÎÙ ÄÌÑ Mozilla É Firefox.\nèÏÔÉÔÅ ÕÚÎÁÔØ Ï ÜÔÏÍ ÐÏÄÒÏÂÎÅÅ?',
+popup_blocked : 'éÚ×ÉÎÉÔÅ, ÎÏ × ÷ÁÛÅÍ ÂÒÁÕÚÅÒÅ ÚÁÂÌÏËÉÒÏ×ÁÎÙ ×ÓÐÌÙ×ÁÀÝÉÅ ÏËÎÁ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÍÅÔØ ×ÏÚÍÏÖÎÏÓÔØ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ ×ÓÅÍÉ ×ÏÚÍÏÖÎÏÓÔÑÍÉ ÒÅÄÁËÔÏÒÁ, ÎÅÏÂÈÏÄÉÍÏ ÏÔËÌÀÞÉÔØ ÂÌÏËÉÒÏ×ËÕ ×ÓÐÌÙ×ÁÀÝÉÈ ÏËÏÎ ÄÌÑ ÜÔÏÇÏ ÓÁÊÔÁ.'
+});
diff --git a/tinyMCE/langs/si.js b/tinyMCE/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..8482a148027ee5ae74d27a27221c969b02b3141d
--- /dev/null
+++ b/tinyMCE/langs/si.js
@@ -0,0 +1,41 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+bold_desc : 'Krepko (Ctrl+B)',
+italic_desc : 'Postrani (Ctrl+I)',
+underline_desc : 'Pod&#269;rtano (Ctrl+U)',
+striketrough_desc : 'Pre&#269;rtano',
+justifyleft_desc : 'Poravnava levo',
+justifycenter_desc : 'Sredinska poravnava',
+justifyright_desc : 'Poravnava desno',
+justifyfull_desc : 'Porazdeli vsebino',
+bullist_desc : 'Ozna&#269;evanje',
+numlist_desc : 'O&#353;tevil&#269;evanje',
+outdent_desc : 'Zmanj&#353;aj zamik',
+indent_desc : 'Pove&#269;aj zamik',
+undo_desc : 'Prekli&#269;i zadnjo akcijo (Ctrl+Z)',
+redo_desc : 'Ponovi prej&#353;njo akcijo (Ctrl+Y)',
+link_desc : 'Vstavi/uredi hiperpovezavo',
+unlink_desc : 'Zbri&#353;i hiperpovezavo',
+image_desc : 'Vstavi/uredi sliko',
+cleanup_desc : 'Po&#269;isti umazano kodo',
+focus_alert : 'Pred uporabo tega ukaza morate klikniti na urejevalnik.',
+edit_confirm : 'Ali &#382;elite uporabljati WYSIWYG na&#269;in za ta urejevalnik?',
+insert_link_title : 'Vstavi/uredi hiperpovezavo',
+insert : 'Vstavi',
+update : 'Posodobi',
+cancel : 'Prekli&#269;i',
+insert_link_url : 'URL naslov',
+insert_link_target : 'Tar&#269;a',
+insert_link_target_same : 'Odpri hiperpovezavo v istem oknu',
+insert_link_target_blank : 'Odpri hiperpovezavo v novem oknu',
+insert_image_title : 'Vstavi/uredi sliko',
+insert_image_src : 'URL naslov slike',
+insert_image_alt : 'Opis slike',
+help_desc : 'Pomo&#269;',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Kopiraj/Izre&#382;i/Prilepi ni na voljo v brskalnikih Mozilla in Firefox.\nAli &#382;elite ve&#269; informacij glede tega?',
+popup_blocked : 'Odpiranje novega okna je bilo blokirano. &#268;e &#382;elite uporabljati vsa orodja, morate izklopiti blokiranje novih oken na tej strani.'
+});
diff --git a/tinyMCE/langs/sk.js b/tinyMCE/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd0c61b40d2ca23ebc44961b6c22b581e6cbf6a4
--- /dev/null
+++ b/tinyMCE/langs/sk.js
@@ -0,0 +1,50 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:43 spocke Exp $ 
+ */  
+
+
+tinyMCE.addToLang('',{
+bold_desc : 'Tučné',
+italic_desc : 'Kurzivá',
+underline_desc : 'Podčiarknutie',
+striketrough_desc : 'Preškrtnutie',
+justifyleft_desc : 'Zarovnanie vľavo',
+justifycenter_desc : 'Zarovnanie na stred',
+justifyright_desc : 'Zarovnanie vpravo',
+justifyfull_desc : 'Zarovnanie do bloku',
+bullist_desc : 'Zoznam s odrážkami',
+numlist_desc : 'Číslovaný zoznam',
+outdent_desc : 'Snížiť odsadenie',
+indent_desc : 'Zvýšiť odsadenie',
+undo_desc : 'Zpäť',
+redo_desc : 'Znovu',
+link_desc : 'Vložiť odkaz',
+unlink_desc : 'Zrušiť odkaz',
+image_desc : 'Vložiť obrázok',
+cleanup_desc : 'Vyčistiť kód',
+focus_alert : 'Pred použitím tohoto príkazu musí byť kurzor v okne editora.',
+edit_confirm : 'Chcete použiť WYSIWYG editáciu pre tento text?',
+insert_link_title : 'Vložiť/upraviť odkaz',
+insert : 'Vložiť',
+update : 'Zmeniť',
+cancel : 'Zrušiť',
+insert_link_url : 'URL odkazu',
+insert_link_target : 'Cieľ',
+insert_link_target_same : 'Otvoriť odkaz v rovnakom okne',
+insert_link_target_blank : 'Otvoriť odkaz v novom okne',
+insert_image_title : 'Vložiť/upraviť obrázok',
+insert_image_src : 'URL obrázku',
+insert_image_alt : 'Popis obrázku',
+help_desc : 'Nápoveda',
+bold_img : 'bold.gif',
+italic_img : 'italic.gif',
+underline_img : "underline.gif",
+clipboard_msg : 'Funkcia Kopírovať/vysrihnúť/vložiť niesú použiteľné v Mozille a Firefoxe.\nChcete viac informácií o tomto probléme?',
+popup_blocked : 'Ospravedlňujeme sa, ale blokovač vyskakovacích okien neumožnil otvoriť okno, ktoré zprostredkovává funkčnosť aplikáce. Musíte vypnuť blokovanie vyskakovacích okien na tomto webe, abyste využili jeho plnú funkčnosť.'
+});
+
diff --git a/tinyMCE/langs/sq.js b/tinyMCE/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..d940198f806998973ac319593c4f34f46e57ce6a
--- /dev/null
+++ b/tinyMCE/langs/sq.js
@@ -0,0 +1,41 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'I forte (Ctrl+B)',
+italic_desc : 'Italik (Ctrl+I)',
+underline_desc : 'I nenvizuar (Ctrl+U)',
+striketrough_desc : 'Strikethrough',
+justifyleft_desc : 'Ne te majte',
+justifycenter_desc : 'Ne mes',
+justifyright_desc : 'Ne te djathte',
+justifyfull_desc : 'Justifiko',
+bullist_desc : 'Liste e parenditur',
+numlist_desc : 'Liste e renditur',
+outdent_desc : 'Terhiq',
+indent_desc : 'Shty',
+undo_desc : 'Ç\'bej (Ctrl+Z)',
+redo_desc : 'Ri-bej (Ctrl+Y)',
+link_desc : 'Nderfut /ndrysho lidhjen',
+unlink_desc : 'Ç\'lidh',
+image_desc : 'Nderfut /ndrysho imazhin',
+cleanup_desc : 'Pastor kodin problematik',
+focus_alert : 'fokuso nje instance editori pastaj kliko.',
+edit_confirm : 'A do te perdoresh tinyMce?',
+insert_link_title : 'Nderfut /ndrysho lidhjen',
+insert : 'Nderfut',
+update : 'Ndrysho',
+cancel : 'Kthehu',
+insert_link_url : 'URL e lidhjes',
+insert_link_target : 'Objektivi',
+insert_link_target_same : 'Hape lidhjen ne po ate dritare',
+insert_link_target_blank : 'Hape lidhjen ne dritare te re',
+insert_image_title : 'Nderfut /ndrysho imazhin',
+insert_image_src : 'URL e imazhit',
+insert_image_alt : 'Pershkrimi i imazhit',
+help_desc : 'Ndihme',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : '?',
+popup_blocked : 'Shiko popup blocker - in.'
+});
\ No newline at end of file
diff --git a/tinyMCE/langs/sr.js b/tinyMCE/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..a6a08f0fc94833261a343e4393c8e5baa3a5d256
--- /dev/null
+++ b/tinyMCE/langs/sr.js
@@ -0,0 +1,41 @@
+// Serbian lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Podebljano (Ctrl+B)',
+italic_desc : 'Kurziv (Ctrl+I)',
+underline_desc : 'Podvučeno (Ctrl+U)',
+striketrough_desc : 'Linija preko teksta',
+justifyleft_desc : 'Ravnanje uz levu ivicu',
+justifycenter_desc : 'Ravnanje na centar',
+justifyright_desc : 'Ravnanje uz desnu ivicu',
+justifyfull_desc : 'Ravnanje uz levu i desnu ivicu',
+bullist_desc : 'Nesortirana lista',
+numlist_desc : 'Sortirana list',
+outdent_desc : 'Outdent',
+indent_desc : 'Indent',
+undo_desc : 'Undo (Ctrl+Z)',
+redo_desc : 'Redo (Ctrl+Y)',
+link_desc : 'Ubacivanje/menjanje linka',
+unlink_desc : 'Skidanje linka',
+image_desc : 'Ubacivanje/menjanje slike',
+cleanup_desc : 'Čišćenje lošeg koda',
+focus_alert : 'Editor mora imati fokus pre korišćenja ove komande.',
+edit_confirm : 'Da li želite da koristite obogaćeni modus za ovo tekst polje?',
+insert_link_title : 'Ubacivanje/menjajne linka',
+insert : 'Ubacivanje',
+update : 'Ažuriranje',
+cancel : 'Nazad',
+insert_link_url : 'Link URL',
+insert_link_target : 'Mesto otvaranja',
+insert_link_target_same : 'Otvaranje u istom prozoru',
+insert_link_target_blank : 'Otvaranje u novom prozoru',
+insert_image_title : 'Ubacivanje/menjanje slike',
+insert_image_src : 'Link za sliku',
+insert_image_alt : 'Opis slike',
+help_desc : 'Pomoć',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste nije moguće u Mozilli i Firefoxu.\nDa li želite više informacija o ovom problemu?',
+popup_blocked : 'Izvinjavamo se ali primetili smo da je Vaš program za blokiranje pop-up prozora blokirao prozor koji je potreban aplikaciji. Morate ukinuti blokiranje pop-up prozora na ovom sajtu da bi koristili aplikaciju u potpunosti.'
+});
diff --git a/tinyMCE/langs/sv.js b/tinyMCE/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e5d69bf3e9f547ac230994e2d5b40426cf08ab4
--- /dev/null
+++ b/tinyMCE/langs/sv.js
@@ -0,0 +1,43 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Fet',
+italic_desc : 'Kursiv',
+underline_desc : 'Understruken',
+striketrough_desc : 'Genomstruken',
+justifyleft_desc : 'Vänsterjustera',
+justifycenter_desc : 'Centrera',
+justifyright_desc : 'Högerjustera',
+justifyfull_desc : 'Kantjustera',
+bullist_desc : 'Punktlista',
+numlist_desc : 'Nummerlista',
+outdent_desc : 'Utdrag',
+indent_desc : 'Indrag',
+undo_desc : 'Ångra',
+redo_desc : 'Gör om',
+link_desc : 'Skapa länk',
+unlink_desc : 'Ta bort länk',
+image_desc : 'Skapa/redigera bild',
+cleanup_desc : 'Rensa skräpkod',
+focus_alert : 'Flytta markören till en textyta innan du använder detta kommando.',
+edit_confirm : 'Vill du använda WYSIWYG-editorn för detta textfält?',
+insert_link_title : 'Skapa/redigera länk',
+insert : 'Skapa',
+update : 'Uppdatera',
+cancel : 'Avbryt',
+insert_link_url : 'Länkens URL',
+insert_link_target : 'Fönster',
+insert_link_target_same : 'Öppna länken i samma fönster',
+insert_link_target_blank : 'Öppna länken i ett nytt fönster',
+insert_link_delta_width : 20,
+insert_link_delta_height : 10,
+insert_image_title : 'Skapa/redigera bild',
+insert_image_src : 'Bildens URL',
+insert_image_alt : 'Bildens beskrivning',
+bold_img : 'bold_de_se.gif',
+italic_img : 'italic_de_se.gif',
+underline_img : "underline.gif",
+clipboard_msg : 'Klipp ut/Kopiera/Klistra in fungerar inte Mozilla och Firefox. Vill du veta mer om detta?',
+help_desc : "Hjälp",
+popup_blocked : 'En popupblockerare har spärrat ett fönster som behövs för denna funktion. Avaktivera popupblockeraren om du vill kunna använda funktionen.'
+});
diff --git a/tinyMCE/langs/sv_utf8.js b/tinyMCE/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..6b8ec844d4e27a8933aec9972307e916cf6d4c34
--- /dev/null
+++ b/tinyMCE/langs/sv_utf8.js
@@ -0,0 +1,43 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Fet',
+italic_desc : 'Kursiv',
+underline_desc : 'Understruken',
+striketrough_desc : 'Genomstruken',
+justifyleft_desc : 'Vänsterjustera',
+justifycenter_desc : 'Centrera',
+justifyright_desc : 'Högerjustera',
+justifyfull_desc : 'Kantjustera',
+bullist_desc : 'Punktlista',
+numlist_desc : 'Nummerlista',
+outdent_desc : 'Utdrag',
+indent_desc : 'Indrag',
+undo_desc : 'Ã…ngra',
+redo_desc : 'Gör om',
+link_desc : 'Skapa länk',
+unlink_desc : 'Ta bort länk',
+image_desc : 'Skapa/redigera bild',
+cleanup_desc : 'Rensa skräpkod',
+focus_alert : 'Flytta markören till en textyta innan du använder detta kommando.',
+edit_confirm : 'Vill du använda WYSIWYG-editorn för detta textfält?',
+insert_link_title : 'Skapa/redigera länk',
+insert : 'Skapa',
+update : 'Uppdatera',
+cancel : 'Avbryt',
+insert_link_url : 'Länkens URL',
+insert_link_target : 'Fönster',
+insert_link_target_same : 'Öppna länken i samma fönster',
+insert_link_target_blank : 'Öppna länken i ett nytt fönster',
+insert_link_delta_width : 20,
+insert_link_delta_height : 10,
+insert_image_title : 'Skapa/redigera bild',
+insert_image_src : 'Bildens URL',
+insert_image_alt : 'Bildens beskrivning',
+bold_img : 'bold_de_se.gif',
+italic_img : 'italic_de_se.gif',
+underline_img : "underline.gif",
+clipboard_msg : 'Klipp ut/Kopiera/Klistra in fungerar inte Mozilla och Firefox. Vill du veta mer om detta?',
+help_desc : "Hjälp",
+popup_blocked : 'En popupblockerare har spärrat ett fönster som behövs för denna funktion. Avaktivera popupblockeraren om du vill kunna använda funktionen.'
+});
diff --git a/tinyMCE/langs/tr.js b/tinyMCE/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..e45b5860019b6b5b5e65a35fc1f2cdd7fb9f99a8
--- /dev/null
+++ b/tinyMCE/langs/tr.js
@@ -0,0 +1,41 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Kalýn (Ctrl+B)',
+italic_desc : 'Ýtalik (Ctrl+I)',
+underline_desc : 'Altý çizgili (Ctrl+U)',
+striketrough_desc : 'Üstü çizgili',
+justifyleft_desc : 'Sola dayalý',
+justifycenter_desc : 'Ortalanmýþ',
+justifyright_desc : 'Saða dayalý',
+justifyfull_desc : 'Ýki kenara yaslanmýþ',
+bullist_desc : 'Sýrasýz liste',
+numlist_desc : 'Sýralý liste',
+outdent_desc : 'Girintiyi azalt',
+indent_desc : 'Girintiyi arttýr',
+undo_desc : 'Geri al (Ctrl+Z)',
+redo_desc : 'Yeniden yap (Ctrl+Y)',
+link_desc : 'Link ekle/düzenle',
+unlink_desc : 'Linki kaldýr',
+image_desc : 'Resim ekle/düzenle',
+cleanup_desc : 'Daðýnýk kodu düzenle',
+focus_alert : 'Bu komutu kullanmadan önce editör seçilmeli(aktif olmalý).',
+edit_confirm : 'Bu text alaný için WYSIWYG modu kullanmak ister misiniz?',
+insert_link_title : 'Link ekle/düzenle',
+insert : 'Ekle',
+update : 'Güncelle',
+cancel : 'Ýptal',
+insert_link_url : 'Link adresi giriniz',
+insert_link_target : 'Hedef adres',
+insert_link_target_same : 'Linki ayný sayfada aç',
+insert_link_target_blank : 'Linki yeni sayfada aç',
+insert_image_title : 'Resim ekle/düzenle',
+insert_image_src : 'Resim adresi',
+insert_image_alt : 'Resim açýklamasý',
+help_desc : 'Yardým',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Mozilla ve Firefox tarayýcýlarýnda kopyala/kes/yapýþtýr komutlarýný kullanamassýnýz.\n Bu konu hakkýnda daha fazla bilgi edinmek ister misiniz?',
+popup_blocked : 'Popup engelleyiciniz programýn çalýþmasýný önlemektedir, bu özellikten yararlanabilmeniz için popup engelleyicinizi kapatmanýz gerekiyor.'
+});
\ No newline at end of file
diff --git a/tinyMCE/langs/uk.js b/tinyMCE/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..b8063547a7e92f33a05f6edf584d18cd87b2ab27
--- /dev/null
+++ b/tinyMCE/langs/uk.js
@@ -0,0 +1,41 @@
+// Ukrainian translation
+
+tinyMCE.addToLang('',{
+bold_desc : 'Жирний (Ctrl+B)',
+italic_desc : 'Курсив (Ctrl+I)',
+underline_desc : 'Підкреслений (Ctrl+U)',
+striketrough_desc : 'Перекреслений',
+justifyleft_desc : 'Вирівнювання вліво',
+justifycenter_desc : 'Вирівнювання до центру',
+justifyright_desc : 'Вирівнювання вправо',
+justifyfull_desc : 'Рівномірне заповнення',
+bullist_desc : 'Маркірований список',
+numlist_desc : 'Нумерований список',
+outdent_desc : 'Зменшити відступ',
+indent_desc : 'Збільшити відступ',
+undo_desc : 'Скасувати (Ctrl+Z)',
+redo_desc : 'Повернути (Ctrl+Y)',
+link_desc : 'Вставити/змінити посилання',
+unlink_desc : 'Прибрати посилання',
+image_desc : 'Вставити/змінити зображення',
+cleanup_desc : 'Підчистити надлишковий код',
+focus_alert : 'Для використання команди маєте перебувати у полі редактора.',
+edit_confirm : 'Чи хочете редагувати у візуальному (WYSIWYG) режимі?',
+insert_link_title : 'Вставити/змінити посилання',
+insert : 'Вставити',
+update : 'Застосувати',
+cancel : 'Скасувати',
+insert_link_url : 'Адреса посилання',
+insert_link_target : 'Відкрити в...:',
+insert_link_target_same : 'тому самому вікні',
+insert_link_target_blank : 'новому вікні',
+insert_image_title : 'Вставити/змінити зображення',
+insert_image_src : 'Адреса картинки',
+insert_image_alt : 'Опис картинки',
+help_desc : 'Допомога',
+bold_img : "bold_ru.gif",
+italic_img : "italic_ru.gif",
+underline_img : "underline_ru.gif",
+clipboard_msg : 'Копіювати/Вирізати/Вставити недоступні для Mozilla і Firefox.\nХочете дізнатися про це докладніше?',
+popup_blocked : 'Вибачте, але у Вашому браузері заблоковані спливаючі вікна. Щоб користуватися всіма можливостями редактора, треба відключити для цього сайту блокування спливаючих вікон.'
+});
diff --git a/tinyMCE/langs/uk_CP1251.js b/tinyMCE/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b04a5a33f748a27f7ea5b2b8b81e909f2bc54c3
--- /dev/null
+++ b/tinyMCE/langs/uk_CP1251.js
@@ -0,0 +1,41 @@
+// Ukrainian translation
+
+tinyMCE.addToLang('',{
+bold_desc : 'Æèðíèé (Ctrl+B)',
+italic_desc : 'Êóðñèâ (Ctrl+I)',
+underline_desc : 'ϳäêðåñëåíèé (Ctrl+U)',
+striketrough_desc : 'Ïåðåêðåñëåíèé',
+justifyleft_desc : 'Âèð³âíþâàííÿ âë³âî',
+justifycenter_desc : 'Âèð³âíþâàííÿ äî öåíòðó',
+justifyright_desc : 'Âèð³âíþâàííÿ âïðàâî',
+justifyfull_desc : 'гâíîì³ðíå çàïîâíåííÿ',
+bullist_desc : 'Ìàðê³ðîâàíèé ñïèñîê',
+numlist_desc : 'Íóìåðîâàíèé ñïèñîê',
+outdent_desc : 'Çìåíøèòè â³äñòóï',
+indent_desc : 'Çá³ëüøèòè â³äñòóï',
+undo_desc : 'Ñêàñóâàòè (Ctrl+Z)',
+redo_desc : 'Ïîâåðíóòè (Ctrl+Y)',
+link_desc : 'Âñòàâèòè/çì³íèòè ïîñèëàííÿ',
+unlink_desc : 'Ïðèáðàòè ïîñèëàííÿ',
+image_desc : 'Âñòàâèòè/çì³íèòè çîáðàæåííÿ',
+cleanup_desc : 'ϳä÷èñòèòè íàäëèøêîâèé êîä',
+focus_alert : 'Äëÿ âèêîðèñòàííÿ êîìàíäè ìàºòå ïåðåáóâàòè ó ïîë³ ðåäàêòîðà.',
+edit_confirm : '×è õî÷åòå ðåäàãóâàòè ó â³çóàëüíîìó (WYSIWYG) ðåæèì³?',
+insert_link_title : 'Âñòàâèòè/çì³íèòè ïîñèëàííÿ',
+insert : 'Âñòàâèòè',
+update : 'Çàñòîñóâàòè',
+cancel : 'Ñêàñóâàòè',
+insert_link_url : 'Àäðåñà ïîñèëàííÿ',
+insert_link_target : '³äêðèòè â...:',
+insert_link_target_same : 'òîìó ñàìîìó â³êí³',
+insert_link_target_blank : 'íîâîìó â³êí³',
+insert_image_title : 'Âñòàâèòè/çì³íèòè çîáðàæåííÿ',
+insert_image_src : 'Àäðåñà êàðòèíêè',
+insert_image_alt : 'Îïèñ êàðòèíêè',
+help_desc : 'Äîïîìîãà',
+bold_img : "bold_ru.gif",
+italic_img : "italic_ru.gif",
+underline_img : "underline_ru.gif",
+clipboard_msg : 'Êîï³þâàòè/Âèð³çàòè/Âñòàâèòè íåäîñòóïí³ äëÿ Mozilla ³ Firefox.\nÕî÷åòå ä³çíàòèñÿ ïðî öå äîêëàäí³øå?',
+popup_blocked : 'Âèáà÷òå, àëå ó Âàøîìó áðàóçåð³ çàáëîêîâàí³ ñïëèâàþ÷³ â³êíà. Ùîá êîðèñòóâàòèñÿ âñ³ìà ìîæëèâîñòÿìè ðåäàêòîðà, òðåáà â³äêëþ÷èòè äëÿ öüîãî ñàéòó áëîêóâàííÿ ñïëèâàþ÷èõ â³êîí.'
+});
diff --git a/tinyMCE/langs/uk_KOI8-U.js b/tinyMCE/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a1ad668def97905bd1bc2e8adfd588fe4e0f03a
--- /dev/null
+++ b/tinyMCE/langs/uk_KOI8-U.js
@@ -0,0 +1,41 @@
+// Ukrainian translation
+
+tinyMCE.addToLang('',{
+bold_desc : 'öÉÒÎÉÊ (Ctrl+B)',
+italic_desc : 'ëÕÒÓÉ× (Ctrl+I)',
+underline_desc : 'ð¦ÄËÒÅÓÌÅÎÉÊ (Ctrl+U)',
+striketrough_desc : 'ðÅÒÅËÒÅÓÌÅÎÉÊ',
+justifyleft_desc : '÷ÉÒ¦×ÎÀ×ÁÎÎÑ ×̦×Ï',
+justifycenter_desc : '÷ÉÒ¦×ÎÀ×ÁÎÎÑ ÄÏ ÃÅÎÔÒÕ',
+justifyright_desc : '÷ÉÒ¦×ÎÀ×ÁÎÎÑ ×ÐÒÁ×Ï',
+justifyfull_desc : 'ò¦×ÎÏͦÒÎÅ ÚÁÐÏ×ÎÅÎÎÑ',
+bullist_desc : 'íÁÒ˦ÒÏ×ÁÎÉÊ ÓÐÉÓÏË',
+numlist_desc : 'îÕÍÅÒÏ×ÁÎÉÊ ÓÐÉÓÏË',
+outdent_desc : 'úÍÅÎÛÉÔÉ ×¦ÄÓÔÕÐ',
+indent_desc : 'úÂ¦ÌØÛÉÔÉ ×¦ÄÓÔÕÐ',
+undo_desc : 'óËÁÓÕ×ÁÔÉ (Ctrl+Z)',
+redo_desc : 'ðÏ×ÅÒÎÕÔÉ (Ctrl+Y)',
+link_desc : '÷ÓÔÁ×ÉÔÉ/ÚͦÎÉÔÉ ÐÏÓÉÌÁÎÎÑ',
+unlink_desc : 'ðÒÉÂÒÁÔÉ ÐÏÓÉÌÁÎÎÑ',
+image_desc : '÷ÓÔÁ×ÉÔÉ/ÚͦÎÉÔÉ ÚÏÂÒÁÖÅÎÎÑ',
+cleanup_desc : 'ð¦ÄÞÉÓÔÉÔÉ ÎÁÄÌÉÛËÏ×ÉÊ ËÏÄ',
+focus_alert : 'äÌÑ ×ÉËÏÒÉÓÔÁÎÎÑ ËÏÍÁÎÄÉ ÍÁ¤ÔÅ ÐÅÒÅÂÕ×ÁÔÉ Õ ÐÏ̦ ÒÅÄÁËÔÏÒÁ.',
+edit_confirm : 'þÉ ÈÏÞÅÔÅ ÒÅÄÁÇÕ×ÁÔÉ Õ ×¦ÚÕÁÌØÎÏÍÕ (WYSIWYG) ÒÅÖÉͦ?',
+insert_link_title : '÷ÓÔÁ×ÉÔÉ/ÚͦÎÉÔÉ ÐÏÓÉÌÁÎÎÑ',
+insert : '÷ÓÔÁ×ÉÔÉ',
+update : 'úÁÓÔÏÓÕ×ÁÔÉ',
+cancel : 'óËÁÓÕ×ÁÔÉ',
+insert_link_url : 'áÄÒÅÓÁ ÐÏÓÉÌÁÎÎÑ',
+insert_link_target : '÷¦ÄËÒÉÔÉ ×...:',
+insert_link_target_same : 'ÔÏÍÕ ÓÁÍÏÍÕ ×¦ËΦ',
+insert_link_target_blank : 'ÎÏ×ÏÍÕ ×¦ËΦ',
+insert_image_title : '÷ÓÔÁ×ÉÔÉ/ÚͦÎÉÔÉ ÚÏÂÒÁÖÅÎÎÑ',
+insert_image_src : 'áÄÒÅÓÁ ËÁÒÔÉÎËÉ',
+insert_image_alt : 'ïÐÉÓ ËÁÒÔÉÎËÉ',
+help_desc : 'äÏÐÏÍÏÇÁ',
+bold_img : "bold_ru.gif",
+italic_img : "italic_ru.gif",
+underline_img : "underline_ru.gif",
+clipboard_msg : 'ëÏЦÀ×ÁÔÉ/÷ÉÒ¦ÚÁÔÉ/÷ÓÔÁ×ÉÔÉ ÎÅÄÏÓÔÕÐΦ ÄÌÑ Mozilla ¦ Firefox.\nèÏÞÅÔŠĦÚÎÁÔÉÓÑ ÐÒÏ ÃÅ ÄÏËÌÁÄΦÛÅ?',
+popup_blocked : '÷ÉÂÁÞÔÅ, ÁÌÅ Õ ÷ÁÛÏÍÕ ÂÒÁÕÚÅÒ¦ ÚÁÂÌÏËÏ×ÁΦ ÓÐÌÉ×ÁÀÞ¦ צËÎÁ. ýÏ ËÏÒÉÓÔÕ×ÁÔÉÓÑ ×Ó¦ÍÁ ÍÏÖÌÉ×ÏÓÔÑÍÉ ÒÅÄÁËÔÏÒÁ, ÔÒÅÂÁ צÄËÌÀÞÉÔÉ ÄÌÑ ÃØÏÇÏ ÓÁÊÔÕ ÂÌÏËÕ×ÁÎÎÑ ÓÐÌÉ×ÁÀÞÉÈ ×¦ËÏÎ.'
+});
diff --git a/tinyMCE/langs/vi.js b/tinyMCE/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..6238f9b359a23a63dc3566a3f82e2d7f97b27d78
--- /dev/null
+++ b/tinyMCE/langs/vi.js
@@ -0,0 +1,41 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+bold_desc : 'Đậm (Ctrl+B)',
+italic_desc : 'Nghiêng (Ctrl+I)',
+underline_desc : 'Gạch chân (Ctrl+U)',
+striketrough_desc : 'Gạch ngang',
+justifyleft_desc : 'Căn lề trái',
+justifycenter_desc : 'Căn lề giữa',
+justifyright_desc : 'Căn lề phải',
+justifyfull_desc : 'Căn lề đều hai bên',
+bullist_desc : 'Danh sách không sắp xếp thứ tự',
+numlist_desc : 'Danh sách có sắp xếp thứ tự',
+outdent_desc : 'Nhô ra',
+indent_desc : 'Thụt vào',
+undo_desc : 'Quay lại một thao tác (Ctrl+Z)',
+redo_desc : 'Thực hiện lại một thao tác (Ctrl+Y)',
+link_desc : 'Thêm/sửa liên kết',
+unlink_desc : 'Hủy liên kết',
+image_desc : 'Thêm/sửa ảnh',
+cleanup_desc : 'Xóa sạch các mã lộn xộn',
+focus_alert : 'Cần nhấn chuột vào bên trong ô nhập trước khi sử dụng lệnh này.',
+edit_confirm : 'Bạn có muốn dùng chế độ WYSIWYG (thấy gì có nấy) cho ô nhập này?',
+insert_link_title : 'Thêm/sửa liên kết',
+insert : 'Thêm',
+update : 'Cập_nhật',
+cancel : 'Hủy bỏ',
+insert_link_url : 'Địa chỉ liên kết',
+insert_link_target : 'Mục tiêu',
+insert_link_target_same : 'Mở liên kết trong cùng cửa sổ',
+insert_link_target_blank : 'Mở liên kết trong cửa sổ mới',
+insert_image_title : 'Thêm/sửa ảnh',
+insert_image_src : 'Địa chỉ ảnh',
+insert_image_alt : 'Mô tả ảnh',
+help_desc : 'Trợ giúp',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Trên Mozilla và Firefox không sử dụng được các thao tác Sao chép/Cắt/Dán. \nBạn cần thêm thông tin về điều này?',
+popup_blocked : 'Xin lỗi, nhưng chúng tôi thấy bộ khóa các cửa sổ bật ra (popup-blocker) của bạn đã khóa một cửa sổ cung cấp chức năng ứng dụng. Bạn cần tắt chế độ khóa cửa sổ bật ra cho trang web này để sử dụng hết các chức năng của công cụ này.'
+});
diff --git a/tinyMCE/langs/zh_cn.js b/tinyMCE/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..350dcd034d54b269603ec21f0483bd8c1506da3d
--- /dev/null
+++ b/tinyMCE/langs/zh_cn.js
@@ -0,0 +1,42 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+bold_desc : 'ºÚÌå (Ctrl+B)',
+italic_desc : 'бÌå (Ctrl+I)',
+underline_desc : 'Ï»®Ïß (Ctrl+U)',
+striketrough_desc : 'ɾ³ýÏß',
+justifyleft_desc : '×ó¶ÔÆë',
+justifycenter_desc : '¾ÓÖÐ¶ÔÆë',
+justifyright_desc : 'ÓÒ¶ÔÆë',
+justifyfull_desc : 'Á½¶Ë¶ÔÆë',
+bullist_desc : 'ÎÞÐòÁбí',
+numlist_desc : 'ÓÐÐòÁбí',
+outdent_desc : '¼õÉÙËõ½ø',
+indent_desc : 'Ôö¼ÓËõ½ø',
+undo_desc : '³·Ïû (Ctrl+Z)',
+redo_desc : 'ÖØ×ö (Ctrl+Y)',
+link_desc : '²åÈë/±à¼­ Á´½Ó',
+unlink_desc : 'ɾ³ýÁ´½Ó',
+image_desc : '²åÈë/±à¼­ ͼÏñ',
+cleanup_desc : 'ɾ³ýÈßÓà´úÂë',
+focus_alert : 'ÇëÏÈÑ¡Ôñ±à¼­Çø',
+edit_confirm : 'ÄúÏëÔÚ±à¼­ÇøÓòÉÏʹÓÃËù¼û¼´ËùµÃ±à¼­Æ÷ô£¿',
+insert_link_title : '²åÈë/±à¼­ Á´½Ó',
+insert : '²åÈë',
+update : '¸üÐÂ',
+cancel : 'È¡Ïû',
+insert_link_url : 'Á´½ÓµØÖ·',
+insert_link_target : 'Á´½ÓÄ¿±ê',
+insert_link_target_same : 'ÔÚͬһ´°¿ÚÖдò¿ªÁ´½Ó',
+insert_link_target_blank : 'ÔÚд°¿ÚÖдò¿ªÁ´½Ó',
+insert_image_title : '²åÈë/±à¼­ ͼÏñ',
+insert_image_src : 'ͼÏñµØÖ·',
+insert_image_alt : 'ͼÏñÃèÊö',
+help_desc : '°ïÖú',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : '¼ôÇÐ/¸´ÖÆ/Õ³Ìù¹¦ÄÜÔÚ Mozilla ºÍ Firefox ä¯ÀÀÆ÷Öв»Ö§³Ö¡£ÄúÏ£Íû»ñµÃ¸ü¶àµÄÐÅÏ¢Âð£¿',
+popup_blocked : '¶Ô²»Æð, ÄúµÄä¯ÀÀÆ÷½ûÖ¹Á˵¯³öʽ´°¿Ú¡£ÎªÁËÈÃÄúʹÓõ½×îÍêÉÆµÄ¹¦ÄÜ£¬Çë¶Ô±¾ÍøÕ¾µÄµ¯³öʽ´°¿Ú½â³ý½ûÖ¹¡£'
+});
diff --git a/tinyMCE/langs/zh_cn_utf8.js b/tinyMCE/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..7866112533ee8587c3ce26cd5b6dcfcb4aecb065
--- /dev/null
+++ b/tinyMCE/langs/zh_cn_utf8.js
@@ -0,0 +1,42 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+bold_desc : '黑体 (Ctrl+B)',
+italic_desc : '斜体 (Ctrl+I)',
+underline_desc : '下划线 (Ctrl+U)',
+striketrough_desc : '删除线',
+justifyleft_desc : '左对齐',
+justifycenter_desc : '居中对齐',
+justifyright_desc : '右对齐',
+justifyfull_desc : '两端对齐',
+bullist_desc : '无序列表',
+numlist_desc : '有序列表',
+outdent_desc : '减少缩进',
+indent_desc : '增加缩进',
+undo_desc : '撤消 (Ctrl+Z)',
+redo_desc : '重做 (Ctrl+Y)',
+link_desc : '插入/编辑 链接',
+unlink_desc : '删除链接',
+image_desc : '插入/编辑 图像',
+cleanup_desc : '删除冗余代码',
+focus_alert : '请先选择编辑区',
+edit_confirm : '您想在编辑区域上使用所见即所得编辑器么?',
+insert_link_title : '插入/编辑 链接',
+insert : '插入',
+update : 'æ›´æ–°',
+cancel : '取消',
+insert_link_url : '链接地址',
+insert_link_target : '链接目标',
+insert_link_target_same : '在同一窗口中打开链接',
+insert_link_target_blank : '在新窗口中打开链接',
+insert_image_title : '插入/编辑 图像',
+insert_image_src : '图像地址',
+insert_image_alt : '图像描述',
+help_desc : '帮助',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : '剪切/复制/粘贴功能在 Mozilla 和 Firefox 浏览器中不支持。您希望获得更多的信息吗?',
+popup_blocked : '对不起, 您的浏览器禁止了弹出式窗口。为了让您使用到最完善的功能,请对本网站的弹出式窗口解除禁止。'
+});
diff --git a/tinyMCE/langs/zh_tw.js b/tinyMCE/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..9d4e6d0de4909b69e72defbb0d2ddf7e8dc91527
--- /dev/null
+++ b/tinyMCE/langs/zh_tw.js
@@ -0,0 +1,42 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+bold_desc : '²ÊÅé¡]Ctrl+B¡^',
+italic_desc : '±×Åé¡]Ctrl+I¡^',
+underline_desc : '¥[©³½u¡]Ctrl+U¡^',
+striketrough_desc : '§R°£½u',
+justifyleft_desc : '¾a¥ª',
+justifycenter_desc : '¸m¤¤',
+justifyright_desc : '¾a¥k',
+justifyfull_desc : '¾ã½g¹ï»ô',
+bullist_desc : '¶µ¥Ø¤è¦¡±ø¦C',
+numlist_desc : '½s¸¹¤è¦¡±ø¦C',
+outdent_desc : 'ÂX¤jÁY±Æ',
+indent_desc : '´î¤pÁY±Æ',
+undo_desc : '´_­ì¡]Ctrl+Z¡^',
+redo_desc : '­«½Æ¡]Ctrl+Y¡^',
+link_desc : '´¡¤J©Î½s¿è³sµ²',
+unlink_desc : '§R°£³sµ²',
+image_desc : '´¡¤J©Î½s¿è¹ÏÀÉ',
+cleanup_desc : '²M°£¤¾½X',
+focus_alert : '¨Ï¥Î¦¹«ü¥O«e¶·¥ý«ü©w½s¿è¾¹',
+edit_confirm : '­n©ó¦¹¤å¦r¿é¤J°Ï¤¤±Ä¥Î©Òµø§Y±o¼Ò¦¡¶Ü¡H',
+insert_link_title : '´¡¤J©Î½s¿è³sµ²',
+insert : '´¡¤J',
+update : '§ó·s',
+cancel : '¨ú®ø',
+insert_link_url : '³sµ²ºô§}',
+insert_link_target : '¹ï¶H',
+insert_link_target_same : '©ó¦Pµøµ¡¤¤¶}±Ò³sµ²',
+insert_link_target_blank : '¥H·sµøµ¡¤¤¶}±Ò³sµ²',
+insert_image_title : '´¡¤J©Î½s¿è¹ÏÀÉ',
+insert_image_src : '¹ÏÀɺô§}',
+insert_image_alt : '¹ÏÀÉ»¡©ú',
+help_desc : '¨ó§U',
+bold_img : "bold_tw.gif",
+italic_img : "italic_tw.gif",
+underline_img : "underline_tw.gif",
+clipboard_msg : '¦b Mozilla ©M Firefox ¤¤µLªk¨Ï¥Î½Æ»s©Î°Å¤U©Î¶K¤W¥\¯à¡C\n»Ý­n§ó¦hÃö©ó¦¹ªº°T®§¶Ü¡H',
+popup_blocked : '³á¡I±z¦³³]¸m¸õ²{µøµ¡¹jµ´¾÷¨î¡A¤w±N¥\¯à¸õ²{µøµ¡µ¹¹jµ´¤F¡C\n½Ð½Õ¾ã¸õ²{µøµ¡¹jµ´¾÷¨îªº³]©w¡A¤~¯à¥¿±`¨Ï¥Î¦¹¥\¯à¡C'
+});
\ No newline at end of file
diff --git a/tinyMCE/langs/zh_tw_utf8.js b/tinyMCE/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..e39a16ce03fe9defaecbace64a5d0e20c164a75b
--- /dev/null
+++ b/tinyMCE/langs/zh_tw_utf8.js
@@ -0,0 +1,42 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+bold_desc : '粗體(Ctrl+B)',
+italic_desc : '斜體(Ctrl+I)',
+underline_desc : '加底線(Ctrl+U)',
+striketrough_desc : '刪除線',
+justifyleft_desc : '靠左',
+justifycenter_desc : '置中',
+justifyright_desc : '靠右',
+justifyfull_desc : '整篇對齊',
+bullist_desc : '項目方式條列',
+numlist_desc : '編號方式條列',
+outdent_desc : '擴大縮排',
+indent_desc : '減小縮排',
+undo_desc : '復原(Ctrl+Z)',
+redo_desc : '重複(Ctrl+Y)',
+link_desc : '插入或編輯連結',
+unlink_desc : '刪除連結',
+image_desc : '插入或編輯圖檔',
+cleanup_desc : '清除冗碼',
+focus_alert : '使用此指令前須先指定編輯器',
+edit_confirm : '要於此文字輸入區中採用所視即得模式嗎?',
+insert_link_title : '插入或編輯連結',
+insert : '插入',
+update : 'æ›´æ–°',
+cancel : '取消',
+insert_link_url : '連結網址',
+insert_link_target : '對象',
+insert_link_target_same : '於同視窗中開啟連結',
+insert_link_target_blank : '以新視窗中開啟連結',
+insert_image_title : '插入或編輯圖檔',
+insert_image_src : '圖檔網址',
+insert_image_alt : '圖檔說明',
+help_desc : '協助',
+bold_img : "bold_tw.gif",
+italic_img : "italic_tw.gif",
+underline_img : "underline_tw.gif",
+clipboard_msg : '在 Mozilla 和 Firefox 中無法使用複製或剪下或貼上功能。\n需要更多關於此的訊息嗎?',
+popup_blocked : '喔!您有設置跳現視窗隔絕機制,已將功能跳現視窗給隔絕了。\n請調整跳現視窗隔絕機制的設定,才能正常使用此功能。'
+});
diff --git a/tinyMCE/license.txt b/tinyMCE/license.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1837b0acbe16906b8643f1ded1a32f5b05d64e36
--- /dev/null
+++ b/tinyMCE/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/tinyMCE/plugins/advhr/css/advhr.css b/tinyMCE/plugins/advhr/css/advhr.css
new file mode 100644
index 0000000000000000000000000000000000000000..7ff36bdc8cc97e71b5d9c011c0bcbcbc16867e46
--- /dev/null
+++ b/tinyMCE/plugins/advhr/css/advhr.css
@@ -0,0 +1,23 @@
+input.radio {
+	border: 1px none #000000;
+	background-color: transparent;
+	vertical-align: middle;
+}
+
+.panel_wrapper div.current {
+	height: 80px;
+}
+
+#width {
+	width: 50px;
+	vertical-align: middle;
+}
+
+#width2 {
+	width: 50px;
+	vertical-align: middle;
+}
+
+#size {
+	width: 100px;
+}
diff --git a/tinyMCE/plugins/advhr/editor_plugin.js b/tinyMCE/plugins/advhr/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..ffff3a1cf95a36f8416be625378d538ecbe1eebd
--- /dev/null
+++ b/tinyMCE/plugins/advhr/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('advhr');var TinyMCE_AdvancedHRPlugin={getInfo:function(){return{longname:'Advanced HR',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"advhr":return tinyMCE.getButtonHTML(cn,'lang_insert_advhr_desc','{$pluginurl}/images/advhr.gif','mceAdvancedHr')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceAdvancedHr":var template=new Array();template['file']='../../plugins/advhr/rule.htm';template['width']=250;template['height']=160;template['width']+=tinyMCE.getLang('lang_advhr_delta_width',0);template['height']+=tinyMCE.getLang('lang_advhr_delta_height',0);var size="",width="",noshade="";if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="hr"){tinyMCE.hrElement=tinyMCE.selectedElement;if(tinyMCE.hrElement){size=tinyMCE.hrElement.getAttribute('size')?tinyMCE.hrElement.getAttribute('size'):"";width=tinyMCE.hrElement.getAttribute('width')?tinyMCE.hrElement.getAttribute('width'):"";noshade=tinyMCE.hrElement.getAttribute('noshade')?tinyMCE.hrElement.getAttribute('noshade'):""}tinyMCE.openWindow(template,{editor_id:editor_id,size:size,width:width,noshade:noshade,mceDo:'update'})}else{if(tinyMCE.isMSIE){tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,'<hr />')}else{tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes",size:size,width:width,noshade:noshade,mceDo:'insert'})}}return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="HR"){tinyMCE.switchClass(editor_id+'_advhr','mceButtonSelected');return true}}while((node=node.parentNode));tinyMCE.switchClass(editor_id+'_advhr','mceButtonNormal');return true}};tinyMCE.addPlugin("advhr",TinyMCE_AdvancedHRPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/advhr/editor_plugin_src.js b/tinyMCE/plugins/advhr/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..1005e056e647918461d925f1120b1f14b7810412
--- /dev/null
+++ b/tinyMCE/plugins/advhr/editor_plugin_src.js
@@ -0,0 +1,90 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('advhr');
+
+var TinyMCE_AdvancedHRPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Advanced HR',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		}
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "advhr":
+				return tinyMCE.getButtonHTML(cn, 'lang_insert_advhr_desc', '{$pluginurl}/images/advhr.gif', 'mceAdvancedHr');
+		}
+
+		return "";
+	},
+
+	/**
+	 * Executes the mceAdvanceHr command.
+	 */
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mceAdvancedHr":
+				var template = new Array();
+
+				template['file']   = '../../plugins/advhr/rule.htm'; // Relative to theme
+				template['width']  = 250;
+				template['height'] = 160;
+
+				template['width']  += tinyMCE.getLang('lang_advhr_delta_width', 0);
+				template['height'] += tinyMCE.getLang('lang_advhr_delta_height', 0);
+
+				var size = "", width = "", noshade = "";
+				if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "hr") {
+					tinyMCE.hrElement = tinyMCE.selectedElement;
+
+					if (tinyMCE.hrElement) {
+						size    = tinyMCE.hrElement.getAttribute('size') ? tinyMCE.hrElement.getAttribute('size') : "";
+						width   = tinyMCE.hrElement.getAttribute('width') ? tinyMCE.hrElement.getAttribute('width') : "";
+						noshade = tinyMCE.hrElement.getAttribute('noshade') ? tinyMCE.hrElement.getAttribute('noshade') : "";
+					}
+
+					tinyMCE.openWindow(template, {editor_id : editor_id, size : size, width : width, noshade : noshade, mceDo : 'update'});
+				} else {
+					if (tinyMCE.isMSIE) {
+						tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false,'<hr />');
+					} else {
+						tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes", size : size, width : width, noshade : noshade, mceDo : 'insert'});
+					}
+				}
+
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		if (node == null)
+			return;
+
+		do {
+			if (node.nodeName == "HR") {
+				tinyMCE.switchClass(editor_id + '_advhr', 'mceButtonSelected');
+				return true;
+			}
+		} while ((node = node.parentNode));
+
+		tinyMCE.switchClass(editor_id + '_advhr', 'mceButtonNormal');
+
+		return true;
+	}
+};
+
+tinyMCE.addPlugin("advhr", TinyMCE_AdvancedHRPlugin);
diff --git a/tinyMCE/plugins/advhr/images/advhr.gif b/tinyMCE/plugins/advhr/images/advhr.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e2f8658f463e2a260c22ae8affec1ece193886e3
Binary files /dev/null and b/tinyMCE/plugins/advhr/images/advhr.gif differ
diff --git a/tinyMCE/plugins/advhr/jscripts/rule.js b/tinyMCE/plugins/advhr/jscripts/rule.js
new file mode 100644
index 0000000000000000000000000000000000000000..ddaacd73db84d2fc5143890504d1695b5f449d2b
--- /dev/null
+++ b/tinyMCE/plugins/advhr/jscripts/rule.js
@@ -0,0 +1,43 @@
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	var formObj = document.forms[0];
+	formObj.width.value  = tinyMCE.getWindowArg('width');
+	formObj.size.value   = tinyMCE.getWindowArg('size');
+	formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('mceDo'),'Insert',true);
+	if (tinyMCE.getWindowArg('noshade')) {
+		formObj.noshade.checked = true;
+	}
+	if (tinyMCE.getWindowArg('width').lastIndexOf('%')!=-1) {
+		formObj.width2.value = "%";
+		formObj.width.value  = formObj.width.value.substring(0,formObj.width.value.length-1);
+	}
+}
+
+function insertHR() {
+	var formObj = document.forms[0];
+	var width   = formObj.width.value;
+	var size    = formObj.size.value;
+	var html = '<hr';
+	if (size!='' && size!=0) {
+		html += ' size="' + size + '"';
+	}
+	if (width!='' && width!=0) {
+		html += ' width="' + width;
+		if (formObj.width2.value=='%') {
+			html += '%';
+		}
+		html += '"';
+	}
+	if (formObj.noshade.checked==true) {
+		html += ' noshade="noshade"';
+	}
+	html += ' />';
+
+	tinyMCEPopup.execCommand("mceInsertContent", true, html);
+	tinyMCEPopup.close();
+}
+
+function cancelAction() {
+	tinyMCEPopup.close();
+}
diff --git a/tinyMCE/plugins/advhr/langs/ca.js b/tinyMCE/plugins/advhr/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..819476478d50ba541b58d9c35567ceec0076eab4
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ca.js
@@ -0,0 +1,8 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Horizontale rule',
+insert_advhr_width : 'Width',
+insert_advhr_size : 'Height',
+insert_advhr_noshade : 'No shadow'
+});
diff --git a/tinyMCE/plugins/advhr/langs/cs.js b/tinyMCE/plugins/advhr/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..4508c1a708fb3943bfa531219621ab4a51d700eb
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/cs.js
@@ -0,0 +1,14 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.5 2006/01/11 14:25:47 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Vložit/editovat vodorovný oddělovač',
+insert_advhr_width : 'Šířka',
+insert_advhr_size : 'Výška',
+insert_advhr_noshade : 'Nestínovat'
+});
+
diff --git a/tinyMCE/plugins/advhr/langs/cy.js b/tinyMCE/plugins/advhr/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..4ba9b8846ce622562ae6aad461d5a3029a6920cb
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/cy.js
@@ -0,0 +1,8 @@
+// Welsh lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Mewnosod/golygu llinell llorweddol',
+insert_advhr_width : 'Lled',
+insert_advhr_size : 'Uchder',
+insert_advhr_noshade : 'Dim cysgod'
+});
diff --git a/tinyMCE/plugins/advhr/langs/da.js b/tinyMCE/plugins/advhr/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..d8e329369708d470c67dd76073bcba67f943e1e0
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/da.js
@@ -0,0 +1,8 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.:
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Inds&aelig;t / rediger horisontal linie',
+insert_advhr_width : 'Bredde',
+insert_advhr_size : 'H&oslash;jde',
+insert_advhr_noshade : 'Ingen skygge'
+});
diff --git a/tinyMCE/plugins/advhr/langs/de.js b/tinyMCE/plugins/advhr/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce24ee27042abf4adb0072ed8c7c1180d259eb75
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/de.js
@@ -0,0 +1,8 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Horizontale Linie einf&uuml;gen/bearbeiten',
+insert_advhr_width : 'Breite',
+insert_advhr_size : 'H&ouml;he',
+insert_advhr_noshade : 'Kein Schatten'
+});
diff --git a/tinyMCE/plugins/advhr/langs/el.js b/tinyMCE/plugins/advhr/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..48595a690b46deec1d2b377a619a198092801dae
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/el.js
@@ -0,0 +1,8 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Ïñßæüíôéïò êáíüíáò',
+insert_advhr_width : 'ÐëÜôïò',
+insert_advhr_size : '¾øïò',
+insert_advhr_noshade : '×ùñßò óêéá'
+});
diff --git a/tinyMCE/plugins/advhr/langs/en.js b/tinyMCE/plugins/advhr/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..819476478d50ba541b58d9c35567ceec0076eab4
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/en.js
@@ -0,0 +1,8 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Horizontale rule',
+insert_advhr_width : 'Width',
+insert_advhr_size : 'Height',
+insert_advhr_noshade : 'No shadow'
+});
diff --git a/tinyMCE/plugins/advhr/langs/es.js b/tinyMCE/plugins/advhr/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..4de94ccf5d3bec14350451b122ad5ffc133e4bbb
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/es.js
@@ -0,0 +1,10 @@
+// ES lang variables by Alvaro Velasco and Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>
+// Last Updated : October 2005
+// TinyMCE Version : 2.0RC3
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Insertar/Editar Barra Horizontal',
+insert_advhr_width : 'Ancho',
+insert_advhr_size : 'Alto',
+insert_advhr_noshade : 'Sin Sombras'
+});
diff --git a/tinyMCE/plugins/advhr/langs/fa.js b/tinyMCE/plugins/advhr/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..54a4fbc7a45290013340b9a52ed08eb54bff825e
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/fa.js
@@ -0,0 +1,13 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_advhr_desc : '??? ? ?????? ?? ????',
+insert_advhr_width : '???',
+insert_advhr_size : '??????',
+insert_advhr_noshade : '???? ????'
+});
diff --git a/tinyMCE/plugins/advhr/langs/fi.js b/tinyMCE/plugins/advhr/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..55cbb1d75d08cb11b8e54aec3989cf999e7f015b
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/fi.js
@@ -0,0 +1,8 @@
+// FI lang variables by Tuomo Aura, Ateco.fi
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Lis&auml;&auml; / Muokkaa vaakaviivaa',
+insert_advhr_width : 'Leveys',
+insert_advhr_size : 'Korkeus',
+insert_advhr_noshade : 'Ei varjostusta'
+});
diff --git a/tinyMCE/plugins/advhr/langs/fr.js b/tinyMCE/plugins/advhr/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..a29287dbb0bc07fe27382b52b3019cbe0f4848d8
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/fr.js
@@ -0,0 +1,9 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Ins&eacute;rer une r&egrave;gle horizontale styl&eacute;e',
+insert_advhr_width : 'Largeur',
+insert_advhr_size : 'Hauteur',
+insert_advhr_noshade : 'Sans ombre'
+});
diff --git a/tinyMCE/plugins/advhr/langs/fr_ca.js b/tinyMCE/plugins/advhr/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..6dcd773912afe831d073eef7c7b931e4d98ec67e
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/fr_ca.js
@@ -0,0 +1,8 @@
+// CA_FR lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Insérer / Modifier Séparateur Horizontal',
+insert_advhr_width : 'Largeur',
+insert_advhr_size : 'Hauteur',
+insert_advhr_noshade : 'Sans ombrage'
+});
diff --git a/tinyMCE/plugins/advhr/langs/he.js b/tinyMCE/plugins/advhr/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e5d119c3a35cafcd514107752ee58ea6f5f1578
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/he.js
@@ -0,0 +1,8 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '÷å àåô÷é',
+insert_advhr_width : 'øåçá',
+insert_advhr_size : 'âåáä',
+insert_advhr_noshade : 'ììà öì'
+});
diff --git a/tinyMCE/plugins/advhr/langs/hu.js b/tinyMCE/plugins/advhr/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..2457f1c922e1de89a891fc280344b8ccb62188c3
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/hu.js
@@ -0,0 +1,8 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Vízszintes vonal beillesztése / szerkesztése',
+insert_advhr_width : 'Hosszúság',
+insert_advhr_size : 'Szélesség',
+insert_advhr_noshade : 'Nincs árnyék'
+});
diff --git a/tinyMCE/plugins/advhr/langs/is.js b/tinyMCE/plugins/advhr/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..63ca1d48e160a6bd6b37acbf113153fa2fd348af
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/is.js
@@ -0,0 +1,8 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'B&aelig;ta vi&eth;/breyta stiku',
+insert_advhr_width : 'Breidd',
+insert_advhr_size : 'H&aelig;&eth;',
+insert_advhr_noshade : 'Enginn skuggi'
+});
diff --git a/tinyMCE/plugins/advhr/langs/it.js b/tinyMCE/plugins/advhr/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..19d8a61f0191148a9c93b7a8785b8ff7c09317cf
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/it.js
@@ -0,0 +1,14 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Riga orizzontale',
+insert_advhr_width : 'Larghezza',
+insert_advhr_size : 'Altezza',
+insert_advhr_noshade : 'Senza rilievo'
+});
diff --git a/tinyMCE/plugins/advhr/langs/ja.js b/tinyMCE/plugins/advhr/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..adea960cf5d4f0463822ea91285f2a620161cb46
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ja.js
@@ -0,0 +1,8 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '水平線の挿入',
+insert_advhr_width : 'å¹…',
+insert_advhr_size : '高さ',
+insert_advhr_noshade : '影をつけない'
+});
diff --git a/tinyMCE/plugins/advhr/langs/ja_euc-jp.js b/tinyMCE/plugins/advhr/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff873278c3916661ed6bc8e39c7bc14f1704309c
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ja_euc-jp.js
@@ -0,0 +1,8 @@
+// ÆüËܸì euc lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Ê¿Ì̤ÎÀþ¤òÁÞÆþ¡¦ÊÔ½¸',
+insert_advhr_width : 'Éý',
+insert_advhr_size : '¹â¤µ',
+insert_advhr_noshade : '±Æ¤Ê¤·'
+});
diff --git a/tinyMCE/plugins/advhr/langs/ja_shift_jis.js b/tinyMCE/plugins/advhr/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..de6540e688e739553593c43d635a1c9e50e189e3
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ja_shift_jis.js
@@ -0,0 +1,8 @@
+// “ú–{Œê shift-jis lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '•½–ʂ̐ü‚ð‘}“üE•ҏW',
+insert_advhr_width : '•',
+insert_advhr_size : '‚‚³',
+insert_advhr_noshade : '‰e‚È‚µ'
+});
diff --git a/tinyMCE/plugins/advhr/langs/ja_utf-8.js b/tinyMCE/plugins/advhr/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..47cc25827b72d0e70d7e8fd1121af2d8fca6872f
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ja_utf-8.js
@@ -0,0 +1,8 @@
+// 日本語 utf-8 lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '平面の線を挿入・編集',
+insert_advhr_width : 'å¹…',
+insert_advhr_size : '高さ',
+insert_advhr_noshade : '影なし'
+});
diff --git a/tinyMCE/plugins/advhr/langs/ko.js b/tinyMCE/plugins/advhr/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..819476478d50ba541b58d9c35567ceec0076eab4
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ko.js
@@ -0,0 +1,8 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Horizontale rule',
+insert_advhr_width : 'Width',
+insert_advhr_size : 'Height',
+insert_advhr_noshade : 'No shadow'
+});
diff --git a/tinyMCE/plugins/advhr/langs/nb.js b/tinyMCE/plugins/advhr/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..14a5ab6b3a453d7508280300d0c24aef40db2b57
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/nb.js
@@ -0,0 +1,8 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Lage/Redigere horisontal linje',
+insert_advhr_width : 'Bredde',
+insert_advhr_size : 'H&oslash;yde',
+insert_advhr_noshade : 'Ingen skygge'
+});
diff --git a/tinyMCE/plugins/advhr/langs/nl.js b/tinyMCE/plugins/advhr/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..2ef3ba28754333caf87eecfa34fc28d8364e8a6e
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/nl.js
@@ -0,0 +1,8 @@
+// NL lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Horizontale lijn invoegen/bewerken',
+insert_advhr_width : 'Breedte',
+insert_advhr_size : 'Hoogte',
+insert_advhr_noshade : 'Geen schaduw'
+});
diff --git a/tinyMCE/plugins/advhr/langs/nn.js b/tinyMCE/plugins/advhr/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..2cc7b16baf8f2e56d9bfa2d255c72aceba894f55
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/nn.js
@@ -0,0 +1,8 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Lage/Redigere horisontal linje',
+insert_advhr_width : 'Bredde',
+insert_advhr_size : 'H&oslash;gde',
+insert_advhr_noshade : 'Ingen skugge'
+});
diff --git a/tinyMCE/plugins/advhr/langs/pl.js b/tinyMCE/plugins/advhr/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..8a003cc38f232afafcd57d9429a6724f9e8dbe63
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/pl.js
@@ -0,0 +1,11 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+// fixed by lemiel 14.11.2005
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Wstaw/Edytuj poziomÄ… liniÄ™',
+insert_advhr_width : 'Szerokość',
+insert_advhr_size : 'Wysokość',
+insert_advhr_noshade : 'Brak cienia'
+});
diff --git a/tinyMCE/plugins/advhr/langs/pt_br.js b/tinyMCE/plugins/advhr/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..22df425d759713e034372c63f40653fa6f1487d0
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/pt_br.js
@@ -0,0 +1,16 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Inserir/editar linha horizontal',
+insert_advhr_width : 'Largura',
+insert_advhr_size : 'Altura',
+insert_advhr_noshade : 'Sem sombra'
+});
diff --git a/tinyMCE/plugins/advhr/langs/ro.js b/tinyMCE/plugins/advhr/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..6cf8e0cbb98b2fe2b0130b84bdb47a552095268d
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ro.js
@@ -0,0 +1,8 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Insereaz&#259; / editeaz&#259; rigla orizontal&#259;',
+insert_advhr_width : 'L&#259;&#355;ime',
+insert_advhr_size : '&#206;n&#259;l&#355;ime',
+insert_advhr_noshade : 'F&#259;r&#259; umbr&#259;'
+});
diff --git a/tinyMCE/plugins/advhr/langs/ru.js b/tinyMCE/plugins/advhr/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..71a38d08d1a52689fa7422e93b662d66e92fd6ee
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ru.js
@@ -0,0 +1,8 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Вставить / редактировать горизонтальный разделитель',
+insert_advhr_width : 'Ширина',
+insert_advhr_size : 'Высота',
+insert_advhr_noshade : 'Без тени'
+});
diff --git a/tinyMCE/plugins/advhr/langs/ru_CP1251.js b/tinyMCE/plugins/advhr/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed4365cc057242c4238717b5e835fd790e9cfae7
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ru_CP1251.js
@@ -0,0 +1,8 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Âñòàâèòü / ðåäàêòèðîâàòü ãîðèçîíòàëüíûé ðàçäåëèòåëü',
+insert_advhr_width : 'Øèðèíà',
+insert_advhr_size : 'Âûñîòà',
+insert_advhr_noshade : 'Áåç òåíè'
+});
diff --git a/tinyMCE/plugins/advhr/langs/ru_KOI8-R.js b/tinyMCE/plugins/advhr/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..d3475e3bfb7688aaf63a8dd86b1934ad460d0179
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/ru_KOI8-R.js
@@ -0,0 +1,8 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '÷ÓÔÁ×ÉÔØ / ÒÅÄÁËÔÉÒÏ×ÁÔØ ÇÏÒÉÚÏÎÔÁÌØÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ',
+insert_advhr_width : 'ûÉÒÉÎÁ',
+insert_advhr_size : '÷ÙÓÏÔÁ',
+insert_advhr_noshade : 'âÅÚ ÔÅÎÉ'
+});
diff --git a/tinyMCE/plugins/advhr/langs/si.js b/tinyMCE/plugins/advhr/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..0b80730e550c8015133149bbb9675c99997dd375
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/si.js
@@ -0,0 +1,8 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Vstavi/uredi vodorano &#269;rto',
+insert_advhr_width : '&#352;irina',
+insert_advhr_size : 'Vi&#353;ina',
+insert_advhr_noshade : 'Brez sence'
+});
diff --git a/tinyMCE/plugins/advhr/langs/sk.js b/tinyMCE/plugins/advhr/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..84c6d4636ac539c48d78d77ab72af12cdb3d95d8
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/sk.js
@@ -0,0 +1,16 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:43 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Vložiť/editovať vodorovný oddeľovač',
+insert_advhr_width : 'Šírka',
+insert_advhr_size : 'Výška',
+insert_advhr_noshade : 'Nestieňovať'
+});
+
diff --git a/tinyMCE/plugins/advhr/langs/sq.js b/tinyMCE/plugins/advhr/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..e511dda988606aee1d1d49d2dcbec382e097c187
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/sq.js
@@ -0,0 +1,8 @@
+// AL lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Viszore horizontale',
+insert_advhr_width : 'Gjeresi',
+insert_advhr_size : 'Lartesi',
+insert_advhr_noshade : 'Pa hije'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/advhr/langs/sr.js b/tinyMCE/plugins/advhr/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..012bb06d56a8ea9bda4f25914607d1d7d99297b8
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/sr.js
@@ -0,0 +1,8 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Horizontalno pravilo',
+insert_advhr_width : 'Širina',
+insert_advhr_size : 'Visina',
+insert_advhr_noshade : 'Bez senke'
+});
diff --git a/tinyMCE/plugins/advhr/langs/sv.js b/tinyMCE/plugins/advhr/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..ecc40811a4cec3967fdad95c71425895bc21fc68
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/sv.js
@@ -0,0 +1,8 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Skapa/Redigera horisontell linje',
+insert_advhr_width : 'Bredd',
+insert_advhr_size : 'Höjd',
+insert_advhr_noshade : 'Ingen skugga'
+});
diff --git a/tinyMCE/plugins/advhr/langs/sv_utf8.js b/tinyMCE/plugins/advhr/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7d4280c40bbedb52d1d8eea6764e1dfe3b4558d
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/sv_utf8.js
@@ -0,0 +1,8 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Skapa/Redigera horisontell linje',
+insert_advhr_width : 'Bredd',
+insert_advhr_size : 'Höjd',
+insert_advhr_noshade : 'Ingen skugga'
+});
diff --git a/tinyMCE/plugins/advhr/langs/tr.js b/tinyMCE/plugins/advhr/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..b964765519d9ab40372f5c63573216fbb659c6d9
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/tr.js
@@ -0,0 +1,8 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Yatay çizgi ekle/düzenle',
+insert_advhr_width : 'Geniþlik',
+insert_advhr_size : 'Yükseklik',
+insert_advhr_noshade : 'Gölge yok'
+});
diff --git a/tinyMCE/plugins/advhr/langs/uk.js b/tinyMCE/plugins/advhr/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..f87461723af3a4e64336e1eda4a7a26d97bb3af7
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/uk.js
@@ -0,0 +1,8 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Вставити / редагувати горизонтальний роздільник',
+insert_advhr_width : 'Ширина',
+insert_advhr_size : 'Висота',
+insert_advhr_noshade : 'Без тіні'
+});
diff --git a/tinyMCE/plugins/advhr/langs/uk_CP1251.js b/tinyMCE/plugins/advhr/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..89168fe381764715e7b475d1636fe9b53b46153f
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/uk_CP1251.js
@@ -0,0 +1,8 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Âñòàâèòè / ðåäàãóâàòè ãîðèçîíòàëüíèé ðîçä³ëüíèê',
+insert_advhr_width : 'Øèðèíà',
+insert_advhr_size : 'Âèñîòà',
+insert_advhr_noshade : 'Áåç ò³í³'
+});
diff --git a/tinyMCE/plugins/advhr/langs/uk_KOI8-U.js b/tinyMCE/plugins/advhr/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..602964021a6cab0b6b4da2dd110f8ef20d2e30c4
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/uk_KOI8-U.js
@@ -0,0 +1,8 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '÷ÓÔÁ×ÉÔÉ / ÒÅÄÁÇÕ×ÁÔÉ ÇÏÒÉÚÏÎÔÁÌØÎÉÊ ÒÏÚÄ¦ÌØÎÉË',
+insert_advhr_width : 'ûÉÒÉÎÁ',
+insert_advhr_size : '÷ÉÓÏÔÁ',
+insert_advhr_noshade : 'âÅÚ Ô¦Î¦'
+});
diff --git a/tinyMCE/plugins/advhr/langs/vi.js b/tinyMCE/plugins/advhr/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..2757be5261c13b855f8e5f5e93b36648c2d9a3a6
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/vi.js
@@ -0,0 +1,8 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Đường thẳng ngang',
+insert_advhr_width : 'Độ rộng',
+insert_advhr_size : 'Chiều cao',
+insert_advhr_noshade : 'Không có bóng đổ'
+});
diff --git a/tinyMCE/plugins/advhr/langs/zh_cn.js b/tinyMCE/plugins/advhr/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..97943ce4f05f7e1b8c983b11df2dd4e1f5d80d6f
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/zh_cn.js
@@ -0,0 +1,9 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '²åÈë/±à¼­ ˮƽ±ê³ß',
+insert_advhr_width : '¿í¶È',
+insert_advhr_size : '¸ß¶È',
+insert_advhr_noshade : 'ÎÞÒõÓ°'
+});
diff --git a/tinyMCE/plugins/advhr/langs/zh_cn_utf8.js b/tinyMCE/plugins/advhr/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..caa89f85028d3e52c0779936c50199b1dbea02d3
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/zh_cn_utf8.js
@@ -0,0 +1,9 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '插入/编辑 水平标尺',
+insert_advhr_width : '宽度',
+insert_advhr_size : '高度',
+insert_advhr_noshade : '无阴影'
+});
diff --git a/tinyMCE/plugins/advhr/langs/zh_tw.js b/tinyMCE/plugins/advhr/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3029f67512cc2e4920b1098d6a9c7acf1980cf5
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/zh_tw.js
@@ -0,0 +1,10 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '´¡¤J©Î½s¿è¤ô¥­½u',
+insert_advhr_width : '¼e',
+insert_advhr_size : '°ª',
+insert_advhr_noshade : 'µL³±¼v'
+});
diff --git a/tinyMCE/plugins/advhr/langs/zh_tw_utf8.js b/tinyMCE/plugins/advhr/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc26a57145bdc3a5e241d3597204b604d2b15f63
--- /dev/null
+++ b/tinyMCE/plugins/advhr/langs/zh_tw_utf8.js
@@ -0,0 +1,10 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '插入或編輯水平線',
+insert_advhr_width : '寬',
+insert_advhr_size : '高',
+insert_advhr_noshade : 'ç„¡é™°å½±'
+});
diff --git a/tinyMCE/plugins/advhr/readme.txt b/tinyMCE/plugins/advhr/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/advhr/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/advhr/rule.htm b/tinyMCE/plugins/advhr/rule.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6f6034d39fddcfaf2c18786df8551437a432747d
--- /dev/null
+++ b/tinyMCE/plugins/advhr/rule.htm
@@ -0,0 +1,61 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_insert_advhr_desc}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/rule.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<link href="css/advhr.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');">
+<form onsubmit="insertHR();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_insert_advhr_desc}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<table border="0" cellpadding="4" cellspacing="0">
+                    <tr>
+                        <td><label for="width">{$lang_insert_advhr_width}</label></td>
+                        <td nowrap="nowrap">
+                            <input id="width" name="width" type="text" value="" />
+                            <select name="width2" id="width2">
+                                <option value="">px</option>
+                                <option value="%">%</option>
+                            </select>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td><label for="size">{$lang_insert_advhr_size}</label></td>
+                        <td><select id="size" name="size">
+                            <option value="">Normal</option>
+                            <option value="1">1</option>
+                            <option value="2">2</option>
+                            <option value="3">3</option>
+                            <option value="4">4</option>
+                            <option value="5">5</option>
+                        </select></td>
+                    </tr>
+                    <tr>
+                        <td><label for="noshade">{$lang_insert_advhr_noshade}</label></td>
+                        <td><input type="checkbox" name="noshade" id="noshade" class="radio" /></td>
+                    </tr>
+            </table>
+		</div>
+	</div>
+
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertHR();" />
+		</div>
+
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/advimage/css/advimage.css b/tinyMCE/plugins/advimage/css/advimage.css
new file mode 100644
index 0000000000000000000000000000000000000000..abf4405d380cae1e829900e576bc5e52aca97c8d
--- /dev/null
+++ b/tinyMCE/plugins/advimage/css/advimage.css
@@ -0,0 +1,66 @@
+/* CSS file for advimage plugin popup */
+
+.mceImageList {
+	width: 280px;
+}
+
+.mceActionPanel {
+	margin-top: 7px;
+}
+
+.alignPreview {
+	border: 1px solid black;
+	width: 140px;
+	height: 140px;
+	overflow: hidden;
+	padding: 5px;
+}
+
+.checkbox {
+	border: 0;
+}
+
+.panel_wrapper div.current {
+	height: 305px;
+}
+
+#prev {
+	margin: 0;
+	border: 1px
+	solid black;
+	width: 99%;
+	height: 150px;
+	overflow: auto;
+}
+
+#align, #classlist {
+	width: 150px;
+}
+
+#width, #height {
+	vertical-align: middle;
+	width: 50px;
+	text-align: center;
+}
+
+#vspace, #hspace, #border {
+	vertical-align: middle;
+	width: 30px;
+	text-align: center;
+}
+
+#classlist {
+	width: 180px;
+}
+
+input {
+	width: 280px;
+}
+
+#constrain, #onmousemovecheck {
+	width: auto;
+}
+
+#id, #dir, #lang, #usemap, #longdesc {
+	width: 200px;
+}
diff --git a/tinyMCE/plugins/advimage/editor_plugin.js b/tinyMCE/plugins/advimage/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..79b1452014d03214c10f03ecd6fbec59134ea289
--- /dev/null
+++ b/tinyMCE/plugins/advimage/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('advimage');var TinyMCE_AdvancedImagePlugin={getInfo:function(){return{longname:'Advanced image',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"image":return tinyMCE.getButtonHTML(cn,'lang_image_desc','{$themeurl}/images/image.gif','mceAdvImage')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceAdvImage":var template=new Array();template['file']='../../plugins/advimage/image.htm';template['width']=480;template['height']=380;template['width']+=tinyMCE.getLang('lang_advimage_delta_width',0);template['height']+=tinyMCE.getLang('lang_advimage_delta_height',0);var inst=tinyMCE.getInstanceById(editor_id);var elm=inst.getFocusElement();if(elm!=null&&tinyMCE.getAttrib(elm,'class').indexOf('mceItem')!=-1)return true;tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true}return false},cleanup:function(type,content){switch(type){case"insert_to_editor_dom":var imgs=content.getElementsByTagName("img"),src,i;for(i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=this._getImageSrc(onmouseover))!=""){if(tinyMCE.getParam('convert_urls'))src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseover',"this.src='"+src+"';")}if((src=this._getImageSrc(onmouseout))!=""){if(tinyMCE.getParam('convert_urls'))src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseout',"this.src='"+src+"';")}}break;case"get_from_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=this._getImageSrc(onmouseover))!=""){if(tinyMCE.getParam('convert_urls'))src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseover',"this.src='"+src+"';")}if((src=this._getImageSrc(onmouseout))!=""){if(tinyMCE.getParam('convert_urls'))src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseout',"this.src='"+src+"';")}}break}return content},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="IMG"&&tinyMCE.getAttrib(node,'class').indexOf('mceItem')==-1){tinyMCE.switchClass(editor_id+'_advimage','mceButtonSelected');return true}}while((node=node.parentNode));tinyMCE.switchClass(editor_id+'_advimage','mceButtonNormal');return true},_getImageSrc:function(s){var sr,p=-1;if(!s)return"";if((p=s.indexOf('this.src='))!=-1){sr=s.substring(p+10);sr=sr.substring(0,sr.indexOf('\''));return sr}return""}};tinyMCE.addPlugin("advimage",TinyMCE_AdvancedImagePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/advimage/editor_plugin_src.js b/tinyMCE/plugins/advimage/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..fbfd6541e2d3650bd51957014a255b0ed07f23e2
--- /dev/null
+++ b/tinyMCE/plugins/advimage/editor_plugin_src.js
@@ -0,0 +1,148 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('advimage');
+
+var TinyMCE_AdvancedImagePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Advanced image',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "image":
+				return tinyMCE.getButtonHTML(cn, 'lang_image_desc', '{$themeurl}/images/image.gif', 'mceAdvImage');
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		switch (command) {
+			case "mceAdvImage":
+				var template = new Array();
+
+				template['file']   = '../../plugins/advimage/image.htm';
+				template['width']  = 480;
+				template['height'] = 380;
+
+				// Language specific width and height addons
+				template['width']  += tinyMCE.getLang('lang_advimage_delta_width', 0);
+				template['height'] += tinyMCE.getLang('lang_advimage_delta_height', 0);
+
+				var inst = tinyMCE.getInstanceById(editor_id);
+				var elm = inst.getFocusElement();
+
+				if (elm != null && tinyMCE.getAttrib(elm, 'class').indexOf('mceItem') != -1)
+					return true;
+
+				tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+
+				return true;
+		}
+
+		return false;
+	},
+
+	cleanup : function(type, content) {
+		switch (type) {
+			case "insert_to_editor_dom":
+				var imgs = content.getElementsByTagName("img"), src, i;
+				for (i=0; i<imgs.length; i++) {
+					var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));
+					var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));
+
+					if ((src = this._getImageSrc(onmouseover)) != "") {
+						if (tinyMCE.getParam('convert_urls'))
+							src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
+
+						imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");
+					}
+
+					if ((src = this._getImageSrc(onmouseout)) != "") {
+						if (tinyMCE.getParam('convert_urls'))
+							src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
+
+						imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");
+					}
+				}
+				break;
+
+			case "get_from_editor_dom":
+				var imgs = content.getElementsByTagName("img");
+				for (var i=0; i<imgs.length; i++) {
+					var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));
+					var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));
+
+					if ((src = this._getImageSrc(onmouseover)) != "") {
+						if (tinyMCE.getParam('convert_urls'))
+							src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
+
+						imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");
+					}
+
+					if ((src = this._getImageSrc(onmouseout)) != "") {
+						if (tinyMCE.getParam('convert_urls'))
+							src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
+
+						imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");
+					}
+				}
+				break;
+		}
+
+		return content;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		if (node == null)
+			return;
+
+		do {
+			if (node.nodeName == "IMG" && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) {
+				tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonSelected');
+				return true;
+			}
+		} while ((node = node.parentNode));
+
+		tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonNormal');
+
+		return true;
+	},
+
+	/**
+	 * Returns the image src from a scripted mouse over image str.
+	 *
+	 * @param {string} s String to get real src from.
+	 * @return Image src from a scripted mouse over image str.
+	 * @type string
+	 */
+	_getImageSrc : function(s) {
+		var sr, p = -1;
+
+		if (!s)
+			return "";
+
+		if ((p = s.indexOf('this.src=')) != -1) {
+			sr = s.substring(p + 10);
+			sr = sr.substring(0, sr.indexOf('\''));
+
+			return sr;
+		}
+
+		return "";
+	}
+};
+
+tinyMCE.addPlugin("advimage", TinyMCE_AdvancedImagePlugin);
diff --git a/tinyMCE/plugins/advimage/image.htm b/tinyMCE/plugins/advimage/image.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d07c65f1f51c2563e571901dbced9e2357db7dc6
--- /dev/null
+++ b/tinyMCE/plugins/advimage/image.htm
@@ -0,0 +1,241 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_insert_image_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/validate.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/functions.js"></script>
+	<link href="css/advimage.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body id="advimage" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+    <form onsubmit="insertAction();return false;" action="#"> 
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_advimage_tab_general}</a></span></li>
+				<li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{$lang_advimage_tab_appearance}</a></span></li>
+				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_advimage_tab_advanced}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+						<legend>{$lang_advimage_general}</legend>
+
+						<table class="properties">
+							<tr>
+								<td class="column1"><label id="srclabel" for="src">{$lang_insert_image_src}</label></td>
+								<td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
+									<tr> 
+									  <td><input name="src" type="text" id="src" value="" onchange="showPreviewImage(this.value);" /></td> 
+									  <td id="srcbrowsercontainer">&nbsp;</td>
+									</tr>
+								  </table></td>
+							</tr>
+							<tr id="imagelistsrcrow">
+								<td class="column1"><label for="imagelistsrc">{$lang_image_list}</label></td>
+								<td colspan="2" id="imagelistsrccontainer">&nbsp;</td>
+							</tr>
+							<tr> 
+								<td class="column1"><label id="altlabel" for="alt">{$lang_insert_image_alt}</label></td> 
+								<td colspan="2"><input id="alt" name="alt" type="text" value="" /></td> 
+							</tr> 
+							<tr> 
+								<td class="column1"><label id="titlelabel" for="title">{$lang_advimage_title}</label></td> 
+								<td colspan="2"><input id="title" name="title" type="text" value="" /></td> 
+							</tr>
+						</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{$lang_advimage_preview}</legend>
+					<div id="prev"></div>
+				</fieldset>
+			</div>
+
+			<div id="appearance_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_advimage_tab_appearance}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr> 
+							<td class="column1"><label id="alignlabel" for="align">{$lang_insert_image_align}</label></td> 
+							<td><select id="align" name="align" onchange="changeAppearance();"> 
+									<option value="">{$lang_insert_image_align_default}</option> 
+									<option value="baseline">{$lang_insert_image_align_baseline}</option> 
+									<option value="top">{$lang_insert_image_align_top}</option> 
+									<option value="middle">{$lang_insert_image_align_middle}</option> 
+									<option value="bottom">{$lang_insert_image_align_bottom}</option> 
+									<option value="texttop">{$lang_insert_image_align_texttop}</option> 
+									<option value="absmiddle">{$lang_insert_image_align_absmiddle}</option> 
+									<option value="absbottom">{$lang_insert_image_align_absbottom}</option> 
+									<option value="left">{$lang_insert_image_align_left}</option> 
+									<option value="right">{$lang_insert_image_align_right}</option> 
+								</select> 
+							</td>
+							<td rowspan="6" valign="top">
+								<div class="alignPreview">
+									<img id="alignSampleImg" src="images/sample.gif" alt="{$lang_advimage_example_img}" />
+									Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam
+									nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum
+									edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam
+									erat volutpat.
+								</div>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="widthlabel" for="width">{$lang_insert_image_dimensions}</label></td>
+							<td nowrap="nowrap">
+								<input name="width" type="text" id="width" value="" size="5" maxlength="5" class="size" onchange="changeHeight();" /> x 
+								<input name="height" type="text" id="height" value="" size="5" maxlength="5" class="size" onchange="changeWidth();" /> px
+							</td>
+						</tr>
+
+						<tr>
+							<td>&nbsp;</td>
+							<td><table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>
+										<td><label id="constrainlabel" for="constrain">{$lang_advimage_constrain_proportions}</label></td>
+									</tr>
+								</table></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="vspacelabel" for="vspace">{$lang_insert_image_vspace}</label></td> 
+							<td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" class="number" onchange="changeAppearance();updateStyle();" />
+							</td>
+						</tr>
+
+						<tr> 
+							<td class="column1"><label id="hspacelabel" for="hspace">{$lang_insert_image_hspace}</label></td> 
+							<td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" class="number" onchange="changeAppearance();updateStyle();" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="borderlabel" for="border">{$lang_insert_image_border}</label></td> 
+							<td><input id="border" name="border" type="text" value="" size="3" maxlength="3" class="number" onchange="changeAppearance();updateStyle();" /></td> 
+						</tr>
+
+						<tr>
+							<td><label id="classlabel" for="classlist">{$lang_class_name}</label></td>
+							<td colspan="2">
+								 <select id="classlist" name="classlist">
+									<option value="" selected>{$lang_not_set}</option>
+								 </select>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="stylelabel" for="style">{$lang_advimage_style}</label></td> 
+							<td colspan="2"><input id="style" name="style" type="text" value="" onchange="styleUpdated();" /></td> 
+						</tr>
+
+						<!-- <tr>
+							<td class="column1"><label id="classeslabel" for="classes">{$lang_advimage_classes}</label></td> 
+							<td colspan="2"><input id="classes" name="classes" type="text" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td> 
+						</tr> -->
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_advimage_swap_image}</legend>
+
+					<input type="checkbox" id="onmousemovecheck" name="onmousemovecheck" class="checkbox" onclick="changeMouseMove();" />
+					<label id="onmousemovechecklabel" for="onmousemovecheck">{$lang_advimage_alt_image}</label>
+
+					<table border="0" cellpadding="4" cellspacing="0" width="100%">
+							<tr>
+								<td class="column1"><label id="onmouseoversrclabel" for="onmouseoversrc">{$lang_advimage_mouseover}</label></td> 
+								<td><table border="0" cellspacing="0" cellpadding="0"> 
+									<tr> 
+									  <td><input id="onmouseoversrc" name="onmouseoversrc" type="text" value="" /></td> 
+									  <td id="onmouseoversrccontainer">&nbsp;</td>
+									</tr>
+								  </table></td>
+							</tr>
+							<tr id="imagelistoverrow">
+								<td class="column1"><label for="imagelistover">{$lang_image_list}</label></td>
+								<td id="imagelistovercontainer">&nbsp;</td>
+							</tr>
+							<tr> 
+								<td class="column1"><label id="onmouseoutsrclabel" for="onmouseoutsrc">{$lang_advimage_mouseout}</label></td> 
+								<td class="column2"><table border="0" cellspacing="0" cellpadding="0"> 
+									<tr> 
+									  <td><input id="onmouseoutsrc" name="onmouseoutsrc" type="text" value="" /></td> 
+									  <td id="onmouseoutsrccontainer">&nbsp;</td>
+									</tr> 
+								  </table></td> 
+							</tr>
+							<tr id="imagelistoutrow">
+								<td class="column1"><label for="imagelistout">{$lang_image_list}</label></td>
+								<td id="imagelistoutcontainer">&nbsp;</td>
+							</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{$lang_advimage_misc}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label id="idlabel" for="id">{$lang_advimage_id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="dirlabel" for="dir">{$lang_advimage_langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir" onchange="changeAppearance();"> 
+										<option value="">{$lang_not_set}</option> 
+										<option value="ltr">{$lang_advimage_ltr}</option> 
+										<option value="rtl">{$lang_advimage_rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="langlabel" for="lang">{$lang_advimage_langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="usemaplabel" for="usemap">{$lang_advimage_image_map}</label></td> 
+							<td>
+								<input id="usemap" name="usemap" type="text" value="" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="longdesclabel" for="longdesc">{$lang_advimage_long_desc}</label></td>
+							<td><table border="0" cellspacing="0" cellpadding="0">
+									<tr>
+									  <td><input id="longdesc" name="longdesc" type="text" value="" /></td>
+									  <td id="longdesccontainer">&nbsp;</td>
+									</tr>
+								</table></td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div style="float: left">
+				<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertAction();" />
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="cancelAction();" />
+			</div>
+		</div>
+    </form>
+</body> 
+</html> 
diff --git a/tinyMCE/plugins/advimage/images/sample.gif b/tinyMCE/plugins/advimage/images/sample.gif
new file mode 100644
index 0000000000000000000000000000000000000000..53bf6890b507741c10910c9e2217ad8247b98e8d
Binary files /dev/null and b/tinyMCE/plugins/advimage/images/sample.gif differ
diff --git a/tinyMCE/plugins/advimage/jscripts/functions.js b/tinyMCE/plugins/advimage/jscripts/functions.js
new file mode 100644
index 0000000000000000000000000000000000000000..fc6b707ac22a6b9022c53756131a50a36b67de98
--- /dev/null
+++ b/tinyMCE/plugins/advimage/jscripts/functions.js
@@ -0,0 +1,538 @@
+/* Functions for the advimage plugin popup */
+
+var preloadImg = null;
+var orgImageWidth, orgImageHeight;
+
+function preinit() {
+	// Initialize
+	tinyMCE.setWindowArg('mce_windowresize', false);
+
+	// Import external list url javascript
+	var url = tinyMCE.getParam("external_image_list_url");
+	if (url != null) {
+		// Fix relative
+		if (url.charAt(0) != '/' && url.indexOf('://') == -1)
+			url = tinyMCE.documentBasePath + "/" + url;
+
+		document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+	}
+}
+
+function convertURL(url, node, on_save) {
+	return eval("tinyMCEPopup.windowOpener." + tinyMCE.settings['urlconverter_callback'] + "(url, node, on_save);");
+}
+
+function getImageSrc(str) {
+	var pos = -1;
+
+	if (!str)
+		return "";
+
+	if ((pos = str.indexOf('this.src=')) != -1) {
+		var src = str.substring(pos + 10);
+
+		src = src.substring(0, src.indexOf('\''));
+
+		if (tinyMCE.getParam('convert_urls'))
+			src = convertURL(src, null, true);
+
+		return src;
+	}
+
+	return "";
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	var formObj = document.forms[0];
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var elm = inst.getFocusElement();
+	var action = "insert";
+	var html = "";
+
+	// Image list src
+	html = getImageListHTML('imagelistsrc','src','onSelectMainImage');
+	if (html == "")
+		document.getElementById("imagelistsrcrow").style.display = 'none';
+	else
+		document.getElementById("imagelistsrccontainer").innerHTML = html;
+
+	// Image list oversrc
+	html = getImageListHTML('imagelistover','onmouseoversrc');
+	if (html == "")
+		document.getElementById("imagelistoverrow").style.display = 'none';
+	else
+		document.getElementById("imagelistovercontainer").innerHTML = html;
+
+	// Image list outsrc
+	html = getImageListHTML('imagelistout','onmouseoutsrc');
+	if (html == "")
+		document.getElementById("imagelistoutrow").style.display = 'none';
+	else
+		document.getElementById("imagelistoutcontainer").innerHTML = html;
+
+	// Src browser
+	html = getBrowserHTML('srcbrowser','src','image','advimage');
+	document.getElementById("srcbrowsercontainer").innerHTML = html;
+
+	// Over browser
+	html = getBrowserHTML('oversrcbrowser','onmouseoversrc','image','advimage');
+	document.getElementById("onmouseoversrccontainer").innerHTML = html;
+
+	// Out browser
+	html = getBrowserHTML('outsrcbrowser','onmouseoutsrc','image','advimage');
+	document.getElementById("onmouseoutsrccontainer").innerHTML = html;
+
+	// Longdesc browser
+	html = getBrowserHTML('longdescbrowser','longdesc','file','advimage');
+	document.getElementById("longdesccontainer").innerHTML = html;
+
+	// Resize some elements
+	if (isVisible('srcbrowser'))
+		document.getElementById('src').style.width = '260px';
+
+	if (isVisible('oversrcbrowser'))
+		document.getElementById('onmouseoversrc').style.width = '260px';
+
+	if (isVisible('outsrcbrowser'))
+		document.getElementById('onmouseoutsrc').style.width = '260px';
+
+	if (isVisible('longdescbrowser'))
+		document.getElementById('longdesc').style.width = '180px';
+
+	// Check action
+	if (elm != null && elm.nodeName == "IMG")
+		action = "update";
+
+	formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true); 
+
+	if (action == "update") {
+		var src = tinyMCE.getAttrib(elm, 'src');
+		var onmouseoversrc = getImageSrc(tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseover')));
+		var onmouseoutsrc = getImageSrc(tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseout')));
+
+		src = convertURL(src, elm, true);
+
+		// Use mce_src if found
+		var mceRealSrc = tinyMCE.getAttrib(elm, 'mce_src');
+		if (mceRealSrc != "") {
+			src = mceRealSrc;
+
+			if (tinyMCE.getParam('convert_urls'))
+				src = convertURL(src, elm, true);
+		}
+
+		if (onmouseoversrc != "" && tinyMCE.getParam('convert_urls'))
+			onmouseoversrc = convertURL(onmouseoversrc, elm, true);
+
+		if (onmouseoutsrc != "" && tinyMCE.getParam('convert_urls'))
+			onmouseoutsrc = convertURL(onmouseoutsrc, elm, true);
+
+		// Setup form data
+		var style = tinyMCE.parseStyle(tinyMCE.getAttrib(elm, "style"));
+
+		// Store away old size
+		orgImageWidth = trimSize(getStyle(elm, 'width'))
+		orgImageHeight = trimSize(getStyle(elm, 'height'));
+
+		formObj.src.value    = src;
+		formObj.alt.value    = tinyMCE.getAttrib(elm, 'alt');
+		formObj.title.value  = tinyMCE.getAttrib(elm, 'title');
+		formObj.border.value = trimSize(getStyle(elm, 'border', 'borderWidth'));
+		formObj.vspace.value = tinyMCE.getAttrib(elm, 'vspace');
+		formObj.hspace.value = tinyMCE.getAttrib(elm, 'hspace');
+		formObj.width.value  = orgImageWidth;
+		formObj.height.value = orgImageHeight;
+		formObj.onmouseoversrc.value = onmouseoversrc;
+		formObj.onmouseoutsrc.value  = onmouseoutsrc;
+		formObj.id.value  = tinyMCE.getAttrib(elm, 'id');
+		formObj.dir.value  = tinyMCE.getAttrib(elm, 'dir');
+		formObj.lang.value  = tinyMCE.getAttrib(elm, 'lang');
+		formObj.longdesc.value  = tinyMCE.getAttrib(elm, 'longdesc');
+		formObj.usemap.value  = tinyMCE.getAttrib(elm, 'usemap');
+		formObj.style.value  = tinyMCE.serializeStyle(style);
+
+		// Select by the values
+		if (tinyMCE.isMSIE)
+			selectByValue(formObj, 'align', getStyle(elm, 'align', 'styleFloat'));
+		else
+			selectByValue(formObj, 'align', getStyle(elm, 'align', 'cssFloat'));
+
+		addClassesToList('classlist', 'advimage_styles');
+
+		selectByValue(formObj, 'classlist', tinyMCE.getAttrib(elm, 'class'));
+		selectByValue(formObj, 'imagelistsrc', src);
+		selectByValue(formObj, 'imagelistover', onmouseoversrc);
+		selectByValue(formObj, 'imagelistout', onmouseoutsrc);
+
+		updateStyle();
+		showPreviewImage(src, true);
+		changeAppearance();
+
+		window.focus();
+	} else
+		addClassesToList('classlist', 'advimage_styles');
+
+	// If option enabled default contrain proportions to checked
+	if (tinyMCE.getParam("advimage_constrain_proportions", true))
+		formObj.constrain.checked = true;
+
+	// Check swap image if valid data
+	if (formObj.onmouseoversrc.value != "" || formObj.onmouseoutsrc.value != "")
+		setSwapImageDisabled(false);
+	else
+		setSwapImageDisabled(true);
+}
+
+function setSwapImageDisabled(state) {
+	var formObj = document.forms[0];
+
+	formObj.onmousemovecheck.checked = !state;
+
+	setBrowserDisabled('overbrowser', state);
+	setBrowserDisabled('outbrowser', state);
+
+	if (formObj.imagelistover)
+		formObj.imagelistover.disabled = state;
+
+	if (formObj.imagelistout)
+		formObj.imagelistout.disabled = state;
+
+	formObj.onmouseoversrc.disabled = state;
+	formObj.onmouseoutsrc.disabled  = state;
+}
+
+function setAttrib(elm, attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib];
+
+	if (typeof(value) == "undefined" || value == null) {
+		value = "";
+
+		if (valueElm)
+			value = valueElm.value;
+	}
+
+	if (value != "") {
+		elm.setAttribute(attrib, value);
+
+		if (attrib == "style")
+			attrib = "style.cssText";
+
+		if (attrib == "longdesc")
+			attrib = "longDesc";
+
+		if (attrib == "width") {
+			attrib = "style.width";
+			value = value + "px";
+			value = value.replace(/%px/g, 'px');
+		}
+
+		if (attrib == "height") {
+			attrib = "style.height";
+			value = value + "px";
+			value = value.replace(/%px/g, 'px');
+		}
+
+		if (attrib == "class")
+			attrib = "className";
+
+		eval('elm.' + attrib + "=value;");
+	} else {
+		if (attrib == 'class')
+			elm.className = '';
+
+		elm.removeAttribute(attrib);
+	}
+}
+
+function makeAttrib(attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib];
+
+	if (typeof(value) == "undefined" || value == null) {
+		value = "";
+
+		if (valueElm)
+			value = valueElm.value;
+	}
+
+	if (value == "")
+		return "";
+
+	// XML encode it
+	value = value.replace(/&/g, '&amp;');
+	value = value.replace(/\"/g, '&quot;');
+	value = value.replace(/</g, '&lt;');
+	value = value.replace(/>/g, '&gt;');
+
+	return ' ' + attrib + '="' + value + '"';
+}
+
+function insertAction() {
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var elm = inst.getFocusElement();
+	var formObj = document.forms[0];
+	var src = formObj.src.value;
+	var onmouseoversrc = formObj.onmouseoversrc.value;
+	var onmouseoutsrc = formObj.onmouseoutsrc.value;
+
+	if (!AutoValidator.validate(formObj)) {
+		alert(tinyMCE.getLang('lang_invalid_data'));
+		return false;
+	}
+
+	if (tinyMCE.getParam("accessibility_warnings")) {
+		if (formObj.alt.value == "" && !confirm(tinyMCE.getLang('lang_advimage_missing_alt', '', true)))
+			return;
+	}
+
+	if (onmouseoversrc && onmouseoversrc != "")
+		onmouseoversrc = "this.src='" + convertURL(onmouseoversrc, tinyMCE.imgElement) + "';";
+
+	if (onmouseoutsrc && onmouseoutsrc != "")
+		onmouseoutsrc = "this.src='" + convertURL(onmouseoutsrc, tinyMCE.imgElement) + "';";
+
+	if (elm != null && elm.nodeName == "IMG") {
+		setAttrib(elm, 'src', convertURL(src, tinyMCE.imgElement));
+		setAttrib(elm, 'mce_src', src);
+		setAttrib(elm, 'alt');
+		setAttrib(elm, 'title');
+		setAttrib(elm, 'border');
+		setAttrib(elm, 'vspace');
+		setAttrib(elm, 'hspace');
+		setAttrib(elm, 'width');
+		setAttrib(elm, 'height');
+		setAttrib(elm, 'onmouseover', onmouseoversrc);
+		setAttrib(elm, 'onmouseout', onmouseoutsrc);
+		setAttrib(elm, 'id');
+		setAttrib(elm, 'dir');
+		setAttrib(elm, 'lang');
+		setAttrib(elm, 'longdesc');
+		setAttrib(elm, 'usemap');
+		setAttrib(elm, 'style');
+		setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));
+		setAttrib(elm, 'align', getSelectValue(formObj, 'align'));
+
+		//tinyMCEPopup.execCommand("mceRepaint");
+
+		// Repaint if dimensions changed
+		if (formObj.width.value != orgImageWidth || formObj.height.value != orgImageHeight)
+			inst.repaint();
+
+		// Refresh in old MSIE
+		if (tinyMCE.isMSIE5)
+			elm.outerHTML = elm.outerHTML;
+	} else {
+		var html = "<img";
+
+		html += makeAttrib('src', convertURL(src, tinyMCE.imgElement));
+		html += makeAttrib('mce_src', src);
+		html += makeAttrib('alt');
+		html += makeAttrib('title');
+		html += makeAttrib('border');
+		html += makeAttrib('vspace');
+		html += makeAttrib('hspace');
+		html += makeAttrib('width');
+		html += makeAttrib('height');
+		html += makeAttrib('onmouseover', onmouseoversrc);
+		html += makeAttrib('onmouseout', onmouseoutsrc);
+		html += makeAttrib('id');
+		html += makeAttrib('dir');
+		html += makeAttrib('lang');
+		html += makeAttrib('longdesc');
+		html += makeAttrib('usemap');
+		html += makeAttrib('style');
+		html += makeAttrib('class', getSelectValue(formObj, 'classlist'));
+		html += makeAttrib('align', getSelectValue(formObj, 'align'));
+		html += " />";
+
+		tinyMCEPopup.execCommand("mceInsertContent", false, html);
+	}
+
+	tinyMCE._setEventsEnabled(inst.getBody(), false);
+	tinyMCEPopup.close();
+}
+
+function cancelAction() {
+	tinyMCEPopup.close();
+}
+
+function changeAppearance() {
+	var formObj = document.forms[0];
+	var img = document.getElementById('alignSampleImg');
+
+	if (img) {
+		img.align = formObj.align.value;
+		img.border = formObj.border.value;
+		img.hspace = formObj.hspace.value;
+		img.vspace = formObj.vspace.value;
+	}
+}
+
+function changeMouseMove() {
+	var formObj = document.forms[0];
+
+	setSwapImageDisabled(!formObj.onmousemovecheck.checked);
+}
+
+function updateStyle() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	if (tinyMCE.getParam('inline_styles', false)) {
+		st['width'] = formObj.width.value == '' ? '' : formObj.width.value + "px";
+		st['height'] = formObj.height.value == '' ? '' : formObj.height.value + "px";
+		st['border-width'] = formObj.border.value == '' ? '' : formObj.border.value + "px";
+		st['margin-top'] = formObj.vspace.value == '' ? '' : formObj.vspace.value + "px";
+		st['margin-bottom'] = formObj.vspace.value == '' ? '' : formObj.vspace.value + "px";
+		st['margin-left'] = formObj.hspace.value == '' ? '' : formObj.hspace.value + "px";
+		st['margin-right'] = formObj.hspace.value == '' ? '' : formObj.hspace.value + "px";
+	} else {
+		st['width'] = st['height'] = st['border-width'] = null;
+
+		if (st['margin-top'] == st['margin-bottom'])
+			st['margin-top'] = st['margin-bottom'] = null;
+
+		if (st['margin-left'] == st['margin-right'])
+			st['margin-left'] = st['margin-right'] = null;
+	}
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function styleUpdated() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	if (st['width'])
+		formObj.width.value = st['width'].replace('px', '');
+
+	if (st['height'])
+		formObj.height.value = st['height'].replace('px', '');
+
+	if (st['margin-top'] && st['margin-top'] == st['margin-bottom'])
+		formObj.vspace.value = st['margin-top'].replace('px', '');
+
+	if (st['margin-left'] && st['margin-left'] == st['margin-right'])
+		formObj.hspace.value = st['margin-left'].replace('px', '');
+
+	if (st['border-width'])
+		formObj.border.value = st['border-width'].replace('px', '');
+}
+
+function changeHeight() {
+	var formObj = document.forms[0];
+
+	if (!formObj.constrain.checked || !preloadImg) {
+		updateStyle();
+		return;
+	}
+
+	if (formObj.width.value == "" || formObj.height.value == "")
+		return;
+
+	var temp = (parseInt(formObj.width.value) / parseInt(preloadImg.width)) * preloadImg.height;
+	formObj.height.value = temp.toFixed(0);
+	updateStyle();
+}
+
+function changeWidth() {
+	var formObj = document.forms[0];
+
+	if (!formObj.constrain.checked || !preloadImg) {
+		updateStyle();
+		return;
+	}
+
+	if (formObj.width.value == "" || formObj.height.value == "")
+		return;
+
+	var temp = (parseInt(formObj.height.value) / parseInt(preloadImg.height)) * preloadImg.width;
+	formObj.width.value = temp.toFixed(0);
+	updateStyle();
+}
+
+function onSelectMainImage(target_form_element, name, value) {
+	var formObj = document.forms[0];
+
+	formObj.alt.value = name;
+	formObj.title.value = name;
+
+	resetImageData();
+	showPreviewImage(formObj.elements[target_form_element].value, false);
+}
+
+function showPreviewImage(src, start) {
+	var formObj = document.forms[0];
+
+	selectByValue(document.forms[0], 'imagelistsrc', src);
+
+	var elm = document.getElementById('prev');
+	var src = src == "" ? src : tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
+
+	if (!start && tinyMCE.getParam("advimage_update_dimensions_onchange", true))
+		resetImageData();
+
+	if (src == "")
+		elm.innerHTML = "";
+	else
+		elm.innerHTML = '<img id="previewImg" src="' + src + '" border="0" onload="updateImageData(' + start + ');" onerror="resetImageData();" />'
+}
+
+function updateImageData(start) {
+	var formObj = document.forms[0];
+
+	preloadImg = document.getElementById('previewImg');
+
+	if (!start && formObj.width.value == "")
+		formObj.width.value = preloadImg.width;
+
+	if (!start && formObj.height.value == "")
+		formObj.height.value = preloadImg.height;
+
+	updateStyle();
+}
+
+function resetImageData() {
+	var formObj = document.forms[0];
+	formObj.width.value = formObj.height.value = "";	
+}
+
+function getSelectValue(form_obj, field_name) {
+	var elm = form_obj.elements[field_name];
+
+	if (elm == null || elm.options == null)
+		return "";
+
+	return elm.options[elm.selectedIndex].value;
+}
+
+function getImageListHTML(elm_id, target_form_element, onchange_func) {
+	if (typeof(tinyMCEImageList) == "undefined" || tinyMCEImageList.length == 0)
+		return "";
+
+	var html = "";
+
+	html += '<select id="' + elm_id + '" name="' + elm_id + '"';
+	html += ' class="mceImageList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
+	html += 'this.options[this.selectedIndex].value;';
+
+	if (typeof(onchange_func) != "undefined")
+		html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';
+
+	html += '"><option value="">---</option>';
+
+	for (var i=0; i<tinyMCEImageList.length; i++)
+		html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
+
+	html += '</select>';
+
+	return html;
+
+	// tinyMCE.debug('-- image list start --', html, '-- image list end --');
+}
+
+// While loading
+preinit();
diff --git a/tinyMCE/plugins/advimage/langs/ca.js b/tinyMCE/plugins/advimage/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..b2e7ee0b7687daccb1c92c4470ef12401d66507d
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ca.js
@@ -0,0 +1,27 @@
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'General',
+tab_appearance : 'Aparen&ccedil;a',
+tab_advanced : 'Avan&ccedil;cat',
+general : 'General',
+title : 'T&iacute;tol',
+preview : 'Previsulitzaci&oacute;',
+constrain_proportions : 'Conserva la proporci&oacute;',
+langdir : 'Direcci&oacute; de la llengua',
+langcode : 'Codi de la llengua',
+long_desc : 'Enlla&ccedil; a la descripci&oacute; llarga',
+style : 'Estil',
+classes : 'Classe',
+ltr : 'Esquerra dreta',
+rtl : 'Dreta esquerra',
+id : 'Id',
+image_map : 'Mapa de la imatge',
+swap_image : 'Canvia imatge',
+alt_image : 'Imatge alternativa',
+mouseover : 'quan el ratol&iacute; arriba',
+mouseout : 'quan el ratol&iacute; marxa',
+misc : 'Altres',
+example_img : 'Aparen&ccedil;a&nbsp;imatge&nbsp;previsualitzada',
+missing_alt : 'Esteu segurs que voleu continuar sense incloure una Descripci&oacute de la imatge? Sense descripci&oacute no ser&agrave; accessible per usuaris amb discapacitats, que utilitzen navegadors de text o naveguint amb les imatges deshabilitades.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/cs.js b/tinyMCE/plugins/advimage/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..155efb62bab0a9446b412a92cd26f4d77b9836a3
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/cs.js
@@ -0,0 +1,33 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.4 2006/01/11 14:25:47 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Obecné',
+tab_appearance : 'Vzhled',
+tab_advanced : 'Pokročilé',
+general : 'Obecné',
+title : 'Titulek',
+preview : 'Náhled',
+constrain_proportions : 'Zachovat rozměry',
+langdir : 'Směr textu',
+langcode : 'Kód jazyka',
+long_desc : 'Dlouhý popis odkazu',
+style : 'Styl',
+classes : 'Třídy',
+ltr : 'Z leva doprava',
+rtl : 'Z prava doleva',
+id : 'Id',
+image_map : 'Obrázková mapa',
+swap_image : 'Přepnout obrázek',
+alt_image : 'Alternativní obrázek',
+mouseover : 'pro přejetí myší',
+mouseout : 'pro odjetí myší', 
+misc : 'Různé',
+example_img : 'Vzhled&nbsp;náhled&nbsp;obrázek',
+missing_alt : 'Jste si jistý(á), že chcete pokračovat bez vyplnění popisu obrázku? Bez popisu může být obrázek nepřístupný handicapovaným uživatelům, nebo těm kteří používají textový prohlížeč, nebo prohlíží stránky s vypnutým obrázky.'
+});
+
diff --git a/tinyMCE/plugins/advimage/langs/cy.js b/tinyMCE/plugins/advimage/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ca5b5649b077a18e3aeb02cb7f89c1e595852d0
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/cy.js
@@ -0,0 +1,27 @@
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Cyffredinol',
+tab_appearance : 'Ymddangosiad',
+tab_advanced : 'Uwch',
+general : 'Cyffredinol',
+title : 'Teitl',
+preview : 'Rhagolwg',
+constrain_proportions : 'Cadw cymesuredd',
+langdir : 'Cyfeiriad iaith',
+langcode : 'C&ocirc;d iaith',
+long_desc : 'Dolen disgrifiad hir',
+style : 'Arddull',
+classes : 'Dosbarthiadau',
+ltr : 'Chwith i\'r dde',
+rtl : 'Dde i\'r chwith',
+id : 'Id',
+image_map : 'Map delwedd',
+swap_image : 'Cyfnewid delwedd',
+alt_image : 'Delwedd amgen',
+mouseover : 'llygoden drosodd',
+mouseout : 'llygoden allan',
+misc : 'Arall',
+example_img : 'Delwedd&nbsp;rhagolwg&nbsp;delwedd',
+missing_alt : 'Wyt ti\'n sicr eisiau parhau heb gynnwys Disgrifiad Delwedd? Heb un, mae\'n bosib na fydd y ddelwedd yn hygyrch i ddefnyddwyr gydag anableddau, neu rhai gyda phorwr testun, neu sy\'n pori gyda delweddau wedi\'u diffodd.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/da.js b/tinyMCE/plugins/advimage/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c1efe8149131af224f94efaa6007071181e46c5
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/da.js
@@ -0,0 +1,27 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.:
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Generelt',
+tab_appearance : 'Udseende',
+tab_advanced : 'Avanceret',
+general : 'Generelt',
+title : 'Overskrift',
+preview : 'Se',
+constrain_proportions : 'Fasthold proportioner',
+langdir : 'Tekstretning',
+langcode : 'Sprogkode',
+long_desc : 'Langt beskrivelseslink',
+style : 'Stil',
+classes : 'Klasser',
+ltr : 'Venstre til h&oslash;jre',
+rtl : 'H&oslash;jre til venstre',
+id : 'Id',
+image_map : 'Billedkort',
+swap_image : 'Alternativt billede',
+alt_image : 'Alternativt billede',
+mouseover : 'ved mus over',
+mouseout : 'ved mus ud',
+misc : 'Diverse',
+example_img : 'Fremtoning&nbsp;forh&aring;ndsvisning&nbsp;billede',
+missing_alt : 'Er du sikker p&aring; at du vil forts&aelig;tte uden at inds&aelig;tte en billedbeskrivelse? Uden den, kan billedet v&aelig;re utilg&aelig;ngeligt for brugere med handicap, eller for brugere med en tekst-browser, eller som har sl&aring;et billedvisning fra.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/de.js b/tinyMCE/plugins/advimage/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..15692600c9f4498768e413e401321f9eb2f271e7
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/de.js
@@ -0,0 +1,27 @@
+// DE lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Allgemein',
+tab_appearance : 'Erscheinungsbild',
+tab_advanced : 'Erweitert',
+general : 'Allgemein',
+title : 'Titel',
+preview : 'Vorschau',
+constrain_proportions : 'Verh&auml;ltnis beibehalten',
+langdir : 'Textfluss',
+langcode : 'Sprach-Code',
+long_desc : 'Link zur ausf&uuml;hrlichen Beschreibung',
+style : 'CSS-Stil',
+classes : 'CSS-Klassen',
+ltr : 'Von links nach rechts',
+rtl : 'Von rechts nach links',
+id : 'ID',
+image_map : 'Image Map (Bild mit sensitiven Bereichen)',
+swap_image : 'Bild austauschen',
+alt_image : 'Alternatives Bild',
+mouseover : 'f&uuml;r Mouse-Over',
+mouseout : 'f&uuml;r Mouse-Out',
+misc : 'Verschiedenes',
+example_img : 'Erscheinungsbild&nbsp;Vorschau&nbsp;Bild',
+missing_alt : 'Sind Sie sicher fortzufahren, ohne eine Bild-Beschreibung einzugeben? Ohne die Bild-Beschreibung k&ouml;nnen einige Besucher mit einer Behinderung, Besucher die nur einen Text-Browser benutzen oder die das Anzeigen von Bilder im Internet deaktiviert haben, Ihre Bilder nicht richtig sehen.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/el.js b/tinyMCE/plugins/advimage/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..05c8db63c5a10aa200fe886f4177b4561a9c5cf7
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/el.js
@@ -0,0 +1,27 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'ÃåíéêÜ',
+tab_appearance : 'ÅìöÜíéóç',
+tab_advanced : 'Ãéá ðñï÷ùñçìÝíïõò',
+general : 'ÃåíéêÜ',
+title : 'Ôßôëïò',
+preview : 'Ðñïåðéóêüðçóç',
+constrain_proportions : 'Ðåñéïñéóìüò áíáëïãßáò',
+langdir : 'Êáôåýèõíóç ãëþóóáò',
+langcode : 'Êùäéêüò ãëþóóáò',
+long_desc : 'ÁíáëõôéêÞ ðåñéãñáöÞ óõíäÝóìïõ',
+style : 'Óôõë',
+classes : 'ÊëÜóåéò',
+ltr : 'ÁñéóôåñÜ ðñïò äåîéÜ',
+rtl : 'ÄåîéÜ ðñïò áñéóôåñÜ',
+id : 'Êùä.',
+image_map : 'Åéêüíá-÷Üñôçò',
+swap_image : 'ÅíáëëáãÞ åéêüíáò',
+alt_image : 'ÅíáëëáêôéêÞ åéêüíá',
+mouseover : 'ï äåßêôçò åíôüò',
+mouseout : 'ï äåßêôçò åêôüò',
+misc : 'ÄéÜöïñá',
+example_img : 'ÅìöÜíéóç&nbsp;ðñïåðéóêüðéóç&nbsp;åéêüíá',
+missing_alt : 'ÈÝëåôå íá óõíå÷ßóåôå ÷ùñßò íá äþóåôå ðåñéãñáöÞ åéêüíáò; ×ùñßò ðåñéãñáöÞ ßóùò Ý÷ïõí ðñüâëçìá ÁÌÅÁ, ÷ñÞóôåò ðïõ ÷ñçóéìïðïéïýí öõëëïìåôñçôÝò êåéìÝíïõ Þ üóïé Ý÷ïõí áðåíåñãïðïéÞóåé ôéò åéêüíåò.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/en.js b/tinyMCE/plugins/advimage/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..ffd7e30c51744ea16475a5271a0f40a30156a2d3
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/en.js
@@ -0,0 +1,27 @@
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'General',
+tab_appearance : 'Appearance',
+tab_advanced : 'Advanced',
+general : 'General',
+title : 'Title',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+langdir : 'Language direction',
+langcode : 'Language code',
+long_desc : 'Long description link',
+style : 'Style',
+classes : 'Classes',
+ltr : 'Left to right',
+rtl : 'Right to left',
+id : 'Id',
+image_map : 'Image map',
+swap_image : 'Swap image',
+alt_image : 'Alternative image',
+mouseover : 'for mouse over',
+mouseout : 'for mouse out',
+misc : 'Miscellaneous',
+example_img : 'Appearance&nbsp;preview&nbsp;image',
+missing_alt : 'Are you sure you want to continue without including an Image Description? Without  it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/es.js b/tinyMCE/plugins/advimage/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..51e532252aae40cdfaec1277b15eb85737358bf3
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/es.js
@@ -0,0 +1,36 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'General',
+tab_appearance : 'Aspecto',
+tab_advanced : 'Avanzado',
+general : 'General',
+title : 'Titulo',
+preview : 'Vista previa',
+constrain_proportions : 'Bloquear relaci&oacute;n de aspecto',
+langdir : 'Direcci&oacute;n del texto',
+langcode : 'C&oacute;digo del idioma',
+long_desc : 'Descripci&oacute;n larga del link',
+style : 'Estilo',
+classes : 'Clases',
+ltr : 'De izquierda a derecha',
+rtl : 'De derecha a izquierda',
+id : 'Id',
+image_map : 'Mapa de la imagen',
+swap_image : 'Intercambio de imagen',
+alt_image : 'Imagen alternativa',
+mouseover : 'Al pasar el rat&oacute;n por encima de la imagen',
+mouseout : 'Al sacar el rat&oacute;n de la imagen',
+misc : 'Miscel&aacute;neo',
+example_img : 'Aspecto&nbsp;vista previa&nbsp;imagen',
+missing_alt : '&#191;Est&aacute;s seguro de querer continuar sin incluir una descripci&oacute;n de la imagen? Sin ella la imagen puede no ser accesible para ciertos usuarios discapacitados, o para los usuarios que usen navegadores de texto, o para los usuarios que tengan las imagenes desactivadas en su navegador.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/fa.js b/tinyMCE/plugins/advimage/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..48dbe97b8d353b475831f723a450a3395a3d9712
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/fa.js
@@ -0,0 +1,13 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_image_alt2 : '????? ???',
+insert_image_onmousemove : '??? ???????',
+insert_image_mouseover : '??? ??????? ????? ???? ?????? ????',
+insert_image_mouseout : '??? ??????? ????? ???? ?????? ????'
+});
diff --git a/tinyMCE/plugins/advimage/langs/fi.js b/tinyMCE/plugins/advimage/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..2505a63072abe1394ff9cba020580125dc0c1ca7
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/fi.js
@@ -0,0 +1,27 @@
+// FI lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Yleiset',
+tab_appearance : 'Ulkoasu',
+tab_advanced : 'Lis&auml;asetukset',
+general : 'Yleiset',
+title : 'Otsikko',
+preview : 'Esikatselu',
+constrain_proportions : 'S&auml;ilyt&auml; mittasuhteet',
+langdir : 'Kielen suunta',
+langcode : 'Kielikoodi',
+long_desc : 'Laajan kuvauksen linkki',
+style : 'Tyyli',
+classes : 'Luokat',
+ltr : 'Vasemmalta oikealle',
+rtl : 'Oikealta vasemmalle',
+id : 'Id',
+image_map : 'Kuvakartta',
+swap_image : 'Kuvan vaihto',
+alt_image : 'Vaihda kuvaa hiiren tullessa kuvan p&auml;&auml;lle',
+mouseover : 'Osoittimen ollessa kuvan p&auml;&auml;ll&auml;',
+mouseout : 'Osoittimen poistuessa kuvan p&auml;&auml;lt&auml;',
+misc : 'Sekalaiset asetukset',
+example_img : 'Appearance&nbsp;preview&nbsp;image',
+missing_alt : 'Oletko varma että haluat lisätä kuvan ilman kuvan selitettä? Selite auttaa ihmisiä joilla on terveydellisiä rajoitteita. Tämä auttaa myös mikäli selaimesta on kuvien näyttö pois päältä, kuten esimerkiksi tekstiselaimissa kuvan tilalla näytetään sen selite.'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/advimage/langs/fr.js b/tinyMCE/plugins/advimage/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..1a1a6d8e1231a00328979e771ce5a94c00621a8b
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/fr.js
@@ -0,0 +1,28 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'G&eacute;n&eacute;rale',
+tab_appearance : 'Apparence',
+tab_advanced : 'Avanc&eacute;',
+general : 'G&eacute;n&eacute;rale',
+title : 'Titre',
+preview : 'Pr&eacute;visualisation',
+constrain_proportions : 'Conserver les proportions',
+langdir : 'Sens d\'&eacute;criture',
+langcode : 'Code de langue du libell&eacute;',
+long_desc : 'Description du lien',
+style : 'Style',
+classes : 'Classes',
+ltr : 'De gauche &agrave; droite',
+rtl : 'De droite &agrave; gauche',
+id : 'Id',
+image_map : 'Image map',
+swap_image : 'Image d\'&eacute;change',
+alt_image : 'Image alternative',
+mouseover : 'Quand le pointeur est au dessus',
+mouseout : 'Quand le pointeur est en dehors',
+misc : 'Divers',
+example_img : 'Apparence&nbsp;pr&eacute;visualisation&nbsp;image',
+missing_alt : 'Etes vous sur de vouloir continuer sans inclure une description de l\'image. Cette description est utile pour les utilisateurs ne pouvant pas afficher les images ou les ayant d&eacute;sactiv&eacute;es.'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/advimage/langs/fr_ca.js b/tinyMCE/plugins/advimage/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..4779ba06a3cef873bb5679e3986bf4da52a912f6
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/fr_ca.js
@@ -0,0 +1,8 @@
+// CA_FR lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Titre de l\'image',
+insert_image_onmousemove : 'Image alternative',
+insert_image_mouseover : 'pour le «mouse over»',
+insert_image_mouseout : 'pour le «mouse out»'
+});
diff --git a/tinyMCE/plugins/advimage/langs/he.js b/tinyMCE/plugins/advimage/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..ecb163f6b69b6265f42d99f97258bc479cdf7c3f
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/he.js
@@ -0,0 +1,27 @@
+// HE lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'ëììé',
+tab_appearance : 'îøàä',
+tab_advanced : 'îú÷ãí',
+general : 'ëììé',
+title : 'ëåúøú',
+preview : 'úöåâä î÷ãéîä',
+constrain_proportions : 'äâáìú îéîãéí',
+langdir : 'ëéååï ùôä',
+langcode : '÷åã ùôä',
+long_desc : '÷éùåø ìäñáø àøåê',
+style : 'ñâðåï',
+classes : 'Classéí',
+ltr : 'ùîàì ìéîéï',
+rtl : 'éîéï ìùîàì',
+id : 'Id',
+image_map : 'îôú úîåðä',
+swap_image : 'äçìôú úîåðä',
+alt_image : 'úîåðä çìåôéú',
+mouseover : 'ëùñîï äòëáø îòì äúîåðä',
+mouseout : 'ëùñîï äòëáø òåæá àú äúîåðä',
+misc : 'àçø',
+example_img : 'úöåâä&nbsp;î÷ãéîä&nbsp;ùì&nbsp;îøàä',
+missing_alt : 'äàí àúä áèåç ùáøöåðê ìäîùéê îáìé ìëìåì úéàåø ùì äúîåðä? ììà úéàåø, éúëï ëé äúîåðä ìà úäéä ðâéùä ìîùúîùéí áòìé îåâáìåéåú, àå ëàìå äîùúîùéí áãôãôï è÷ñèåàìé, àå ùîñééøéí áøùú áìé ìäöéâ úîåðåú.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/hu.js b/tinyMCE/plugins/advimage/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..1980e8d84e43a8fb559074ea2030d00ede87b845
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/hu.js
@@ -0,0 +1,27 @@
+// HU lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Általános',
+tab_appearance : 'Megjelenés',
+tab_advanced : 'Haladó',
+general : 'Általános',
+title : 'Cím',
+preview : 'Elõnézet',
+constrain_proportions : 'Arányok kényszerítése',
+langdir : 'Szöveg pozíció',
+langcode : 'Szöveg kód',
+long_desc : 'Hosszú leírás link',
+style : 'Stílus',
+classes : 'Osztályok',
+ltr : 'Balról jobbra',
+rtl : 'Jobbról balra',
+id : 'Azonosító',
+image_map : 'Kép térkép',
+swap_image : 'Kép váltás',
+alt_image : 'Másik kép',
+mouseover : 'egér rámutatásra',
+mouseout : 'egér elmozdítására',
+misc : 'Egyéb',
+example_img : 'Elõnézeti&nbsp;kép&nbsp;megjelenése',
+missing_alt : 'Are you sure you want to continue without including an Image Description? Without  it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/is.js b/tinyMCE/plugins/advimage/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..bae47b14c2ad877c1ee67e12a4785e7b41a754b6
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/is.js
@@ -0,0 +1,27 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'A&eth;alstillingar',
+tab_appearance : '&Uacute;tlit',
+tab_advanced : 'Fl&oacute;knari valkostir',
+general : 'Helstu uppl&yacute;singar',
+title : 'Titill',
+preview : 'Forsko&eth;un',
+constrain_proportions : 'Vernda hlutf&ouml;ll',
+langdir : 'Rith&aacute;ttur tungum&aacute;ls',
+langcode : 'Tungum&aacute;lsk&oacute;&eth;i',
+long_desc : 'Tengill &aacute; &iacute;tarl&yacute;singu',
+style : 'St&iacute;ll',
+classes : 'Klassi',
+ltr : 'Vinstri til h&aelig;gri',
+rtl : 'H&aelig;gri til vinstri',
+id : 'Id',
+image_map : 'Myndarkort',
+swap_image : 'Skipta mynd',
+alt_image : 'Skiptimynd',
+mouseover : '&thorn;egar m&uacute;s fer yfir',
+mouseout : '&thorn;egar m&uacute;s fer fr&aacute;',
+misc : '&Yacute;mislegt',
+example_img : 'Forsko&eth;unarmynd',
+missing_alt : 'Ertu viss um a&eth; &thorn;&uacute; viljir halda &aacute;fram &aacute;n myndarl&yacute;singar? &Aacute;n hennar munu sumir notendur, eins og fatla&eth;ir e&eth;a me&eth; gamla vafra ekki geta s&eacute;&eth; myndina.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/it.js b/tinyMCE/plugins/advimage/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d95c3de4ef3fe0ea5d4225c7dbb579b3ecac7cc
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/it.js
@@ -0,0 +1,33 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Generale',
+tab_appearance : 'Aspetto',
+tab_advanced : 'Avanzate',
+general : 'Generale',
+title : 'Titolo',
+preview : 'Anteprima',
+constrain_proportions : 'Mantieni proporzioni',
+langdir : 'Direzione del testo',
+langcode : 'Codifica lingua',
+long_desc : 'Link alla descrizione',
+style : 'Stile',
+classes : 'Classi',
+ltr : 'Da sinistra a destra',
+rtl : 'Da destra a sinistra',
+id : 'Id',
+image_map : 'Mappa',
+swap_image : 'Scambia immagine',
+alt_image : 'Immagini alternative',
+mouseover : 'Per il mouseover',
+mouseout : 'Per il mouseout',
+misc : 'Altro',
+example_img : 'Aspetto&nbsp;anteprima&nbsp;immagine',
+missing_alt : 'Sei sicuro di voler omettere il testo alternativo? Questo testo &egrave; utile a persone che usano browser testuali, che hanno disattivato il caricamento delle immagini, oppure ai disabili.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/ja.js b/tinyMCE/plugins/advimage/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..b9d1389bf3519f973347d361d99495bd19f697fa
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ja.js
@@ -0,0 +1,27 @@
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : '全般',
+tab_appearance : '表示',
+tab_advanced : '詳細',
+general : '全般',
+title : 'タイトル',
+preview : 'プレビュー',
+constrain_proportions : '大きさを指定する',
+langdir : '表示方向',
+langcode : '言語',
+long_desc : '詳細な説明',
+style : 'スタイル',
+classes : 'クラス',
+ltr : '左から右へ',
+rtl : '右から左へ',
+id : 'ID',
+image_map : 'イメージマップ',
+swap_image : '画像の交換',
+alt_image : '画像の交換を有効にする',
+mouseover : 'マウスが重なった時',
+mouseout : 'マウスが移動した時',
+misc : 'その他の設定',
+example_img : 'Appearance&nbsp;preview&nbsp;image',
+missing_alt : '画像の説明が記入されていませんがよろしいですか?'
+});
diff --git a/tinyMCE/plugins/advimage/langs/ja_euc-jp.js b/tinyMCE/plugins/advimage/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..f7d2cc10538d548857dd64082de475321f98e142
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ja_euc-jp.js
@@ -0,0 +1,27 @@
+// ÆüËܸì euc
+
+tinyMCE.addToLang('advimage',{
+tab_general : '°ìÈÌ',
+tab_appearance : 'ɽ¼¨',
+tab_advanced : '¾ÜºÙ',
+general : '°ìÈÌ',
+title : '¥¿¥¤¥È¥ë',
+preview : '¥×¥ì¥Ó¥å¡¼',
+constrain_proportions : '½Ä²£Èæ¤ò¸ÇÄê',
+langdir : '¸ÀÍդθþ¤­',
+langcode : '¸ÀÍÕ¥³¡¼¥É',
+long_desc : 'Ť¤ÀâÌÀ¤Î¥ê¥ó¥¯',
+style : '¥¹¥¿¥¤¥ë',
+classes : '¥¯¥é¥¹',
+ltr : 'º¸¤«¤é±¦¤Ø',
+rtl : '±¦¤«¤éº¸¤Ø',
+id : 'Id',
+image_map : '¥¤¥á¡¼¥¸¥Þ¥Ã¥×',
+swap_image : '¥¹¥ï¥Ã¥×¥¤¥á¡¼¥¸',
+alt_image : 'Âå¤ï¤ê¤Î¥¤¥á¡¼¥¸',
+mouseover : '¥Þ¥¦¥¹¾å',
+mouseout : '¥Þ¥¦¥¹³°',
+misc : '¤½¤Î¾',
+example_img : '¸«¤«¤±&nbsp;¥×¥ì¥Ó¥å¡¼&nbsp;¥¤¥á¡¼¥¸',
+missing_alt : 'ÂåÂØ¥Æ¥­¥¹¥È¤òÆþÎϤ·¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤Ê¤¯¤Æ¤â¤¤¤¤¤Ç¤¹¤«¡£'
+});
diff --git a/tinyMCE/plugins/advimage/langs/ja_shift_jis.js b/tinyMCE/plugins/advimage/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..acf5c7a982cdfdd6b45bf91c2c71a1448116aef3
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ja_shift_jis.js
@@ -0,0 +1,27 @@
+// “ú–{Œê 
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'ˆê”Ê',
+tab_appearance : '•\ަ',
+tab_advanced : 'Ú×',
+general : 'ˆê”Ê',
+title : 'ƒ^ƒCƒgƒ‹',
+preview : 'ƒvƒŒƒrƒ…[',
+constrain_proportions : 'c‰¡”ä‚ðŒÅ’è',
+langdir : 'Œ¾—t‚ÌŒü‚«',
+langcode : 'Œ¾—tƒR[ƒh',
+long_desc : '’·‚¢à–¾‚ÌƒŠƒ“ƒN',
+style : 'ƒXƒ^ƒCƒ‹',
+classes : 'ƒNƒ‰ƒX',
+ltr : '¶‚©‚ç‰E‚Ö',
+rtl : '‰E‚©‚獶‚Ö',
+id : 'Id',
+image_map : 'ƒCƒ[ƒWƒ}ƒbƒv',
+swap_image : 'ƒXƒƒbƒvƒCƒ[ƒW',
+alt_image : '‘ã‚í‚è‚̃Cƒ[ƒW',
+mouseover : 'ƒ}ƒEƒXã',
+mouseout : 'ƒ}ƒEƒXŠO',
+misc : '‚»‚Ì‘¼',
+example_img : 'Œ©‚©‚¯&nbsp;ƒvƒŒƒrƒ…[&nbsp;ƒCƒ[ƒW',
+missing_alt : '‘ã‘ÖƒeƒLƒXƒg‚ð“ü—Í‚µ‚Ü‚¹‚ñ‚Å‚µ‚½B ‚È‚­‚Ä‚à‚¢‚¢‚Å‚·‚©B'
+});
diff --git a/tinyMCE/plugins/advimage/langs/ja_utf-8.js b/tinyMCE/plugins/advimage/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..8586ecda943d53de393fd439961f955f9683af16
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ja_utf-8.js
@@ -0,0 +1,27 @@
+// 日本語 unicode utf-8
+
+tinyMCE.addToLang('advimage',{
+tab_general : '一般',
+tab_appearance : '表示',
+tab_advanced : '詳細',
+general : '一般',
+title : 'タイトル',
+preview : 'プレビュー',
+constrain_proportions : '縦横比を固定',
+langdir : '言葉の向き',
+langcode : '言葉コード',
+long_desc : '長い説明のリンク',
+style : 'スタイル',
+classes : 'クラス',
+ltr : '左から右へ',
+rtl : '右から左へ',
+id : 'Id',
+image_map : 'イメージマップ',
+swap_image : 'スワップイメージ',
+alt_image : '代わりのイメージ',
+mouseover : 'マウス上',
+mouseout : 'マウス外',
+misc : 'その他',
+example_img : '見かけ&nbsp;プレビュー&nbsp;イメージ',
+missing_alt : '代替テキストを入力しませんでした。 なくてもいいですか。'
+});
diff --git a/tinyMCE/plugins/advimage/langs/ko.js b/tinyMCE/plugins/advimage/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..70eb4b1a72ae5abdedc8f524d97a156046496537
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ko.js
@@ -0,0 +1,8 @@
+// KO lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : '±×¸² Á¦¸ñ',
+insert_image_onmousemove : '´ëü À̹ÌÁ&ouml;',
+insert_image_mouseover : '¸¶¿ì½º¸¦ ¿Ã·ÈÀ» ¶§',
+insert_image_mouseout : '¸¶¿ì½º¸¦ ³»·ÈÀ» ¶§'
+});
diff --git a/tinyMCE/plugins/advimage/langs/nb.js b/tinyMCE/plugins/advimage/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..487c59264eb90cf0c8825ee8d605c8eec3211e49
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/nb.js
@@ -0,0 +1,27 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Generelle innstillinger',
+tab_appearance : 'Visuelle innstillinger',
+tab_advanced : 'Avanserte innstillinger',
+general : 'Generell',
+title : 'Tittel',
+preview : 'Forh&aring;ndsvisning',
+constrain_proportions : 'Behold proporsjonene',
+langdir : 'Skrift retning',
+langcode : 'Spr&aring;k kode',
+long_desc : 'Lang beskrivelse',
+style : 'Stil',
+classes : 'CSS klasser',
+ltr : 'Venstre mot h&oslash;yre',
+rtl : 'H&oslash;yre mot venstre',
+id : 'Id',
+image_map : 'Opprett bilde',
+swap_image : 'Bytt bilde',
+alt_image : 'Alternativt bilde',
+mouseover : 'n&aring;r pekeren er over',
+mouseout : 'n&aring;r pekeren er utenfor',
+misc : 'Annet',
+example_img : 'Forh&aring;ndsvisnings bilde',
+missing_alt : 'Er du sikker p&aring; at du vil fortsette uten &aring; sette inn en beskrivelse av bildet?'
+});
diff --git a/tinyMCE/plugins/advimage/langs/nl.js b/tinyMCE/plugins/advimage/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..15ca4aac014407c00cc40862d1b5b9fff1775e8b
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/nl.js
@@ -0,0 +1,27 @@
+// NL lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Algemeen',
+tab_appearance : 'Beeld',
+tab_advanced : 'Geavanceerd',
+general : 'Algemeen',
+title : 'Titel',
+preview : 'Voorbeeld',
+constrain_proportions : 'Verhoudingen behouden',
+langdir : 'Taalrichting',
+langcode : 'Taalcode',
+long_desc : 'Link naar lange omschrijving',
+style : 'Stijl',
+classes : 'Stijlen',
+ltr : 'Links naar rechts',
+rtl : 'Rechts naar links',
+id : 'Id',
+image_map : 'Afbeelding opdelen',
+swap_image : 'Afbeelding wisselen',
+alt_image : 'Alternatieve afbeelding',
+mouseover : 'voor muis-over',
+mouseout : 'voor muis-uit',
+misc : 'Diversen',
+example_img : 'Voorbeeld&nbsp;afbeelding',
+missing_alt : 'Zonder een beschrijving van de afbeelding, zal de pagina voor mensen met een visuele handicap of met afbeeldingen uitgeschakeld niet toegankelijk zijn. Weet u zeker dat u wilt doorgaan zonder beschrijving?'
+});
diff --git a/tinyMCE/plugins/advimage/langs/nn.js b/tinyMCE/plugins/advimage/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..67ba3060ff4f45bdce0da21230ae0805a618b13b
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/nn.js
@@ -0,0 +1,27 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Generelle innstillinger',
+tab_appearance : 'Visuelle innstillinger',
+tab_advanced : 'Avanserte innstillinger',
+general : 'Generell',
+title : 'Tittel',
+preview : 'Forh&aring;ndsvisning',
+constrain_proportions : 'Behold proporsjonene',
+langdir : 'Skrift retning',
+langcode : 'Spr&aring;k kode',
+long_desc : 'Lang beskrivelse',
+style : 'Stil',
+classes : 'CSS klasser',
+ltr : 'Venstre mot h&oslash;gre',
+rtl : 'H&oslash;gre mot venstre',
+id : 'Id',
+image_map : 'Opprett bilde',
+swap_image : 'Bytt bilde',
+alt_image : 'Alternativt bilde',
+mouseover : 'n&aring;r pekeren er over',
+mouseout : 'n&aring;r pekeren er utenfor',
+misc : 'Annet',
+example_img : 'Forh&aring;ndsvisningsbilde',
+missing_alt : 'Er du sikker p&aring; at du vil fortsette uten &aring; sette inn ein beskrivelse av bildet?'
+});
diff --git a/tinyMCE/plugins/advimage/langs/pl.js b/tinyMCE/plugins/advimage/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee92a3fdc92bb645246ef853cb2d933378ad8ee7
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/pl.js
@@ -0,0 +1,28 @@
+// PL lang variables
+// fixed by lemiel 14.11.2005
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Główne ustawienia',
+tab_appearance : 'Widok',
+tab_advanced : 'Zaawansowane',
+general : 'Główne',
+title : 'Tytuł',
+preview : 'PodglÄ…d',
+constrain_proportions : 'Zachowaj proporcje',
+langdir : 'Kierunek tekstu',
+langcode : 'Kod języka',
+long_desc : 'Długi opis linku',
+style : 'Styl',
+classes : 'Klasy',
+ltr : 'Lewy do prawego',
+rtl : 'Prawy do lewego',
+id : 'Id',
+image_map : 'Mapa obrazka',
+swap_image : 'Podmiana obrazka',
+alt_image : 'Alternatywny obrazek',
+mouseover : 'gdy myszka nad obrazkiem',
+mouseout : 'gdy myszka poza obrazkiem',
+misc : 'Różne',
+example_img : 'Przykładowy&nbsp;podgląd&nbsp;obrazka',
+missing_alt : 'Czy jesteś pewien, że chcesz kontynuować bez zawarcia opisu obrazka? Niektórzy użytkownicy moga używać przeglądarek tekstowych, lub mieć ograniczenia na wyświetlanie grafik, a wtedy Twój obrazek pozostanie dla nich niewidoczny.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/pt_br.js b/tinyMCE/plugins/advimage/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..1a4fdf9c02503320070cf221609b2c80ed1830b6
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/pt_br.js
@@ -0,0 +1,36 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('advimage',{
+tab_general : 'Geral',
+tab_appearance : 'Aparência',
+tab_advanced : 'Avançado',
+general : 'Geral',
+title : 'Título',
+preview : 'Visualizar (Preview)',
+constrain_proportions : 'Bloquear proporções',
+langdir : 'Direção da linguagem',
+langcode : 'Código da linguagem',
+long_desc : 'Descrição completa do link',
+style : 'Estilo',
+classes : 'Classes',
+ltr : 'Esquerda para direita',
+rtl : 'Direita para esquerda',
+id : 'Id',
+image_map : 'Mapa da imagem',
+swap_image : 'Trocar imagem',
+alt_image : 'Imagem alternativa',
+mouseover : 'para o mouse sobre o link',
+mouseout : 'para o mouse fora do link',
+misc : 'Miscelânia',
+example_img : 'Exemplo&nbsp;da&nbsp;aparência',
+missing_alt : 'Não foi definida uma descrição para a imagem. Deseja continuar?\r\nSem a descrição, a imagem pode não estar acessível para alguns usuários com necessidades especiais, ou para aqueles que utilizam um navegador em modo texto ou com imagens desativadas.',
+delta_width : 40
+});
diff --git a/tinyMCE/plugins/advimage/langs/ro.js b/tinyMCE/plugins/advimage/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b35042c9cc8dc4cb102da6d59678270afa68da4
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ro.js
@@ -0,0 +1,27 @@
+// RO lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'General',
+tab_appearance : 'Aspect',
+tab_advanced : 'Avansat',
+general : 'General',
+title : 'Titlu',
+preview : 'Previzualizare',
+constrain_proportions : 'Propor&#355;ii constr&#226;geri',
+langdir : 'Direc&#355;ia limbii',
+langcode : 'Cod limb&#259;',
+long_desc : 'Descriere lung&#259; leg&#259;tur&#259;',
+style : 'Stil',
+classes : 'Clase',
+ltr : 'St&#226;nga la dreapta',
+rtl : 'Dreapta la st&#226;nga',
+id : 'Id',
+image_map : 'Hart&#259; imagine',
+swap_image : 'Schimb&#259; imagine',
+alt_image : 'Imagine alternativ&#259;',
+mouseover : 'pentru mouse deasupra',
+mouseout : 'pentru mouse afar&#259;',
+misc : 'Diverse',
+example_img : 'Aspect&nbsp;previzualizare&nbsp;imagine',
+missing_alt : 'E&#351;ti sigur c&#259; vrei s&#259; continui f&#259;r&#259; includerea unei descrieri pentru imagine? F&#259;r&#259; aceasta, este posibil ca imaginea s&#259; nu fie accesibil&#259; utilizatorilor cu invaliditate, celor care folosesc un program în mod text pentru navigarea pe internet sau celor care navigheaz&#259; cu imaginile dezactivate.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/ru.js b/tinyMCE/plugins/advimage/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..edff31a1d6293bebccc369e9debd0954820c5bff
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ru.js
@@ -0,0 +1,27 @@
+// RU lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Основные',
+tab_appearance : 'Визуализация',
+tab_advanced : 'Расширенные',
+general : 'Главные',
+title : 'Заголовок',
+preview : 'Предпросмотр',
+constrain_proportions : 'Сохранить пропорции',
+langdir : 'Описание языка',
+langcode : 'Код языка',
+long_desc : 'Полное описание',
+style : 'Стили',
+classes : 'Классы',
+ltr : 'Слева направо',
+rtl : 'Справа налево',
+id : 'Id',
+image_map : 'Карта изображения',
+swap_image : 'Подмена картинки',
+alt_image : 'Альтернативное изображение',
+mouseover : 'при наведении мыши',
+mouseout : 'когда уводите мышь',
+misc : 'Прочее',
+example_img : 'Визуализация&nbsp;расположения&nbsp;картинки',
+missing_alt : 'Продолжить без Описания Изображения? Без описания, изображение может быть недоступно для пользователей, использующих текстовые браузеры или отключивших показ изображений.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/ru_CP1251.js b/tinyMCE/plugins/advimage/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..9484fb047444a915778d15c7fbc331791d67d994
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ru_CP1251.js
@@ -0,0 +1,27 @@
+// RU lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Îñíîâíûå',
+tab_appearance : 'Âèçóàëèçàöèÿ',
+tab_advanced : 'Ðàñøèðåííûå',
+general : 'Ãëàâíûå',
+title : 'Çàãîëîâîê',
+preview : 'Ïðåäïðîñìîòð',
+constrain_proportions : 'Ñîõðàíèòü ïðîïîðöèè',
+langdir : 'Îïèñàíèå ÿçûêà',
+langcode : 'Êîä ÿçûêà',
+long_desc : 'Ïîëíîå îïèñàíèå',
+style : 'Ñòèëè',
+classes : 'Êëàññû',
+ltr : 'Ñëåâà íàïðàâî',
+rtl : 'Ñïðàâà íàëåâî',
+id : 'Id',
+image_map : 'Êàðòà èçîáðàæåíèÿ',
+swap_image : 'Ïîäìåíà êàðòèíêè',
+alt_image : 'Àëüòåðíàòèâíîå èçîáðàæåíèå',
+mouseover : 'ïðè íàâåäåíèè ìûøè',
+mouseout : 'êîãäà óâîäèòå ìûøü',
+misc : 'Ïðî÷åå',
+example_img : 'Âèçóàëèçàöèÿ&nbsp;ðàñïîëîæåíèÿ&nbsp;êàðòèíêè',
+missing_alt : 'Ïðîäîëæèòü áåç Îïèñàíèÿ Èçîáðàæåíèÿ? Áåç îïèñàíèÿ, èçîáðàæåíèå ìîæåò áûòü íåäîñòóïíî äëÿ ïîëüçîâàòåëåé, èñïîëüçóþùèõ òåêñòîâûå áðàóçåðû èëè îòêëþ÷èâøèõ ïîêàç èçîáðàæåíèé.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/ru_KOI8-R.js b/tinyMCE/plugins/advimage/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee33139d7d75840b4f64c11e266938e8361a01da
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/ru_KOI8-R.js
@@ -0,0 +1,27 @@
+// RU lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'ïÓÎÏ×ÎÙÅ',
+tab_appearance : '÷ÉÚÕÁÌÉÚÁÃÉÑ',
+tab_advanced : 'òÁÓÛÉÒÅÎÎÙÅ',
+general : 'çÌÁ×ÎÙÅ',
+title : 'úÁÇÏÌÏ×ÏË',
+preview : 'ðÒÅÄÐÒÏÓÍÏÔÒ',
+constrain_proportions : 'óÏÈÒÁÎÉÔØ ÐÒÏÐÏÒÃÉÉ',
+langdir : 'ïÐÉÓÁÎÉÅ ÑÚÙËÁ',
+langcode : 'ëÏÄ ÑÚÙËÁ',
+long_desc : 'ðÏÌÎÏÅ ÏÐÉÓÁÎÉÅ',
+style : 'óÔÉÌÉ',
+classes : 'ëÌÁÓÓÙ',
+ltr : 'óÌÅ×Á ÎÁÐÒÁ×Ï',
+rtl : 'óÐÒÁ×Á ÎÁÌÅ×Ï',
+id : 'Id',
+image_map : 'ëÁÒÔÁ ÉÚÏÂÒÁÖÅÎÉÑ',
+swap_image : 'ðÏÄÍÅÎÁ ËÁÒÔÉÎËÉ',
+alt_image : 'áÌØÔÅÒÎÁÔÉ×ÎÏÅ ÉÚÏÂÒÁÖÅÎÉÅ',
+mouseover : 'ÐÒÉ ÎÁ×ÅÄÅÎÉÉ ÍÙÛÉ',
+mouseout : 'ËÏÇÄÁ Õ×ÏÄÉÔÅ ÍÙÛØ',
+misc : 'ðÒÏÞÅÅ',
+example_img : '÷ÉÚÕÁÌÉÚÁÃÉÑ&nbsp;ÒÁÓÐÏÌÏÖÅÎÉÑ&nbsp;ËÁÒÔÉÎËÉ',
+missing_alt : 'ðÒÏÄÏÌÖÉÔØ ÂÅÚ ïÐÉÓÁÎÉÑ éÚÏÂÒÁÖÅÎÉÑ? âÅÚ ÏÐÉÓÁÎÉÑ, ÉÚÏÂÒÁÖÅÎÉÅ ÍÏÖÅÔ ÂÙÔØ ÎÅÄÏÓÔÕÐÎÏ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÉÓÐÏÌØÚÕÀÝÉÈ ÔÅËÓÔÏ×ÙÅ ÂÒÁÕÚÅÒÙ ÉÌÉ ÏÔËÌÀÞÉ×ÛÉÈ ÐÏËÁÚ ÉÚÏÂÒÁÖÅÎÉÊ.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/si.js b/tinyMCE/plugins/advimage/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..5cb35e7735805e8021171a38b9bb520a763e1a2f
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/si.js
@@ -0,0 +1,27 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Splo&#353;no',
+tab_appearance : 'Izgled',
+tab_advanced : 'Napredno',
+general : 'Splo&#353;no',
+title : 'Naslov',
+preview : 'Predogled',
+constrain_proportions : 'Zakleni razmerje',
+langdir : 'Smer jezika',
+langcode : 'Koda jezika',
+long_desc : 'Povezava do podrobnega opisa',
+style : 'Stil',
+classes : 'Razredi',
+ltr : 'Od leve proti desni',
+rtl : 'Od desne proti levi',
+id : 'Id',
+image_map : 'Ime zemljevida',
+swap_image : 'Zamenjava slike',
+alt_image : 'Alternativna slika',
+mouseover : 'ko gre mi&#353; &#269;ez sliko',
+mouseout : 'ko gre mi&#353; s slike',
+misc : 'Razno',
+example_img : 'Slika za predogled',
+missing_alt : 'Ali ste prepri&#269;ani, da &#382;elite nadaljevati brez vnosa za opis slike? Brez njega bo slika mogo&#269;e nedosegljiva za uporabnike s posebnimi potrebami ali uporabnike s tekstovnimi brskalniki.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/sk.js b/tinyMCE/plugins/advimage/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..469c347e528023a04407e18b9ef4c309a3a4b596
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/sk.js
@@ -0,0 +1,39 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Marián Zvalo marian.zvalo@student.umb.sk
+ *    
+ * $Id: sk.js,v 1.1 2006/02/28 20:56:44 spocke Exp $ 
+ */  
+
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Názov obrázku',
+insert_image_onmousemove : 'Alternatívny obrázok',
+insert_image_mouseover : 'pri prejdení myšou',
+insert_image_mouseout : 'pri odídení myši',
+advimage_tab_general : 'Hlavné',
+advimage_tab_appearance : 'Vzhľad',
+advimage_tab_advanced : 'Rozšírené',
+advimage_general : 'Hlavné nastavenia',
+advimage_title : 'Titulok',
+advimage_preview : 'Náhľad',
+advimage_constrain_proportions : 'Zachovať pomer strán',
+advimage_langdir : 'Smer textu',
+advimage_langcode : 'Kód jazyka',
+advimage_long_desc : 'Dlhý popis obrázka',
+advimage_style : 'CSS Štýl',
+advimage_classes : 'CSS Trieda',
+advimage_ltr : 'Z ľava do prava',
+advimage_rtl : 'Z prava do ľava',
+advimage_id : 'Id',
+advimage_image_map : 'Obrazová mapa',
+advimage_swap_image : 'Zmena obrázka',
+advimage_alt_image : 'Alternatívny obrázok',
+advimage_mouseover : 'ak je kurzor nad obrázkom',
+advimage_mouseout : 'ak kurzor odíde z obrázka',
+advimage_misc : 'Rôzne',
+advimage_example_img : 'Vzhľad&nbsp;náhľad&nbsp;obrázka',
+advimage_missing_alt : 'Ste si istý(á), že chcete pokračovať bez vloženého popisu obrázka? Bez popisu sa obrázok nesprávne zobrazí v textových prehliadačoch, ak má užívateľ vypnuté zobrazenie obrázkov alebo ak je užívateľ nevidiaci.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/sq.js b/tinyMCE/plugins/advimage/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..616988dc40c06da1a1ec999f7c949fc66b7c67aa
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/sq.js
@@ -0,0 +1,27 @@
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Te pergjithshme',
+tab_appearance : 'Pamja',
+tab_advanced : 'E avancuar',
+general : 'Te pergjithshme',
+title : 'Titulli',
+preview : 'Parashiko',
+constrain_proportions : 'Ruaj Proporcionet',
+langdir : 'Drejtimi i Gjuhes',
+langcode : 'Kodi i gjuhes',
+long_desc : 'Pershkirimi i gjate',
+style : 'Stili',
+classes : 'Klasat',
+ltr : 'Nga e majta ne te djathte',
+rtl : 'Nga e djathta ne te majte',
+id : 'Id',
+image_map : 'Harta e imazhit',
+swap_image : 'Nderro imazhin',
+alt_image : 'Imazhi alternativ',
+mouseover : 'per maus mbi',
+mouseout : 'per maus jashte',
+misc : 'te ndryshme',
+example_img : 'Pamja&nbsp;parashiko&nbsp;imazh',
+missing_alt : 'Jeni i sigurt se do te vazhdoni pa nje pershkrim per imazhin?.'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/advimage/langs/sr.js b/tinyMCE/plugins/advimage/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..483aa7fbefc22be6b851a55be8d133085e24ab43
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/sr.js
@@ -0,0 +1,27 @@
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Generalno',
+tab_appearance : 'Izgled',
+tab_advanced : 'Napredno',
+general : 'Generalno',
+title : 'Naslov',
+preview : 'Pregled',
+constrain_proportions : 'Zadržavanje proporcija',
+langdir : 'Jezički pravac',
+langcode : 'Jezički kod',
+long_desc : 'Duži opis linka',
+style : 'Stil',
+classes : 'Klase',
+ltr : 'Levo ka desno',
+rtl : 'Desno ka levo',
+id : 'Id',
+image_map : 'Mapa slike',
+swap_image : 'Zamenjivanje slike',
+alt_image : 'Alternativna slika',
+mouseover : 'za mouse over',
+mouseout : 'za mouse out',
+misc : 'Razno',
+example_img : 'Izgled&nbsp;pregled&nbsp;slika',
+missing_alt : 'Da li ste sigurni da želite da nastavite bez uključivanja opisa slike? Bez toga slici se možda neće moći pristupiti od strane korisnika sa ogrničenjima, ili  od strane onih koji koriste tekstualne browsere, ili onih koji isključe slike u browseru.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/sv.js b/tinyMCE/plugins/advimage/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..d35b2c912a3d66e386e56530b780e18f40b91f07
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/sv.js
@@ -0,0 +1,27 @@
+// SE lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Generella inställningar',
+tab_appearance : 'Visuella inställningar',
+tab_advanced : 'Avancerade inställningar',
+general : 'Generella',
+title : 'Titel',
+preview : 'Förhandsgranskning',
+constrain_proportions : 'Behåll proportionerna',
+langdir : 'Skriftriktning',
+langcode : 'Språkkod',
+long_desc : 'Lång beskrivning',
+style : 'Stil',
+classes : 'Stilmallsklasser',
+ltr : 'Vänster till höger',
+rtl : 'Höger till vänster',
+id : 'Id',
+image_map : 'Bildkarta',
+swap_image : 'Byt bild',
+alt_image : 'Alternativ bild',
+mouseover : 'när pekaren går över',
+mouseout : 'när pekaren går utanför',
+misc : 'Övrigt',
+example_img : 'Förhandsgranskningsbild',
+missing_alt : 'Är du säker på att du vill fortsätta utan att skriva en bildbeskrivning. Utan en alternativ beskrivning är bilden inte handikappanpassad.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/sv_utf8.js b/tinyMCE/plugins/advimage/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c7db53725696ede20996870bd78d38345a747ca
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/sv_utf8.js
@@ -0,0 +1,27 @@
+// SE lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Generella inställningar',
+tab_appearance : 'Visuella inställningar',
+tab_advanced : 'Avancerade inställningar',
+general : 'Generella',
+title : 'Titel',
+preview : 'Förhandsgranskning',
+constrain_proportions : 'Behåll proportionerna',
+langdir : 'Skriftriktning',
+langcode : 'Språkkod',
+long_desc : 'LÃ¥ng beskrivning',
+style : 'Stil',
+classes : 'Stilmallsklasser',
+ltr : 'Vänster till höger',
+rtl : 'Höger till vänster',
+id : 'Id',
+image_map : 'Bildkarta',
+swap_image : 'Byt bild',
+alt_image : 'Alternativ bild',
+mouseover : 'när pekaren går över',
+mouseout : 'när pekaren går utanför',
+misc : 'Övrigt',
+example_img : 'Förhandsgranskningsbild',
+missing_alt : 'Är du säker på att du vill fortsätta utan att skriva en bildbeskrivning. Utan en alternativ beskrivning är bilden inte handikappanpassad.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/tr.js b/tinyMCE/plugins/advimage/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ead325f5807bf62f7b5472c5c3e19c559370df8
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/tr.js
@@ -0,0 +1,27 @@
+// TR lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Genel',
+tab_appearance : 'Görünüþ',
+tab_advanced : 'Geliþmiþ',
+general : 'Genel',
+title : 'Baþlýk',
+preview : 'Önizleme',
+constrain_proportions : 'Boyutlarý kilitle',
+langdir : 'Dil yönetimi',
+langcode : 'Dil kodu',
+long_desc : 'Uzun açýklama linki',
+style : 'Stil',
+classes : 'Sýnýflar',
+ltr : 'Soldan saða',
+rtl : 'Saðdan sola',
+id : 'Id',
+image_map : 'Resim haritasý(image map)',
+swap_image : 'Resmi deðiþtir',
+alt_image : 'Alternatif  resim',
+mouseover : 'Mouse over için',
+mouseout : 'Mouse out için',
+misc : 'Çeþitli/Diðer',
+example_img : 'Görünüm&nbsp;önizleme&nbsp;resim',
+missing_alt : 'Resim açýklamasý olmadan devam etmek istediðinize emin misiniz?'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/advimage/langs/uk.js b/tinyMCE/plugins/advimage/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..dceac42f38875384b7d3c969de9d050c9ed0844d
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/uk.js
@@ -0,0 +1,27 @@
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Основні',
+tab_appearance : 'Візуалізація',
+tab_advanced : 'Розширені',
+general : 'Головні',
+title : 'Заголовок',
+preview : 'Попередній перегляд',
+constrain_proportions : 'Зберегти пропорції',
+langdir : 'Опис мови',
+langcode : 'Код мови',
+long_desc : 'Повний опис',
+style : 'Стилі',
+classes : 'Класи',
+ltr : 'Зліва направо',
+rtl : 'Справа наліво',
+id : 'Id',
+image_map : 'Карта зображення',
+swap_image : 'Підміна картинки',
+alt_image : 'Альтернативне зображення',
+mouseover : 'при наведенні миші',
+mouseout : 'коли усуненні миші',
+misc : 'Решта',
+example_img : 'Візуалізація&nbsp;розташування&nbsp;картинки',
+missing_alt : 'Продовжити без Опису Зображення? Без опису зображення може бути недоступно для користувачів, що використовують текстові браузери чи отключивших показ зображень.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/uk_CP1251.js b/tinyMCE/plugins/advimage/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..dd5f46c4a01d66594756f014c950ccf251e23583
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/uk_CP1251.js
@@ -0,0 +1,27 @@
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Îñíîâí³',
+tab_appearance : '³çóàë³çàö³ÿ',
+tab_advanced : 'Ðîçøèðåí³',
+general : 'Ãîëîâí³',
+title : 'Çàãîëîâîê',
+preview : 'Ïîïåðåäí³é ïåðåãëÿä',
+constrain_proportions : 'Çáåðåãòè ïðîïîðö³¿',
+langdir : 'Îïèñ ìîâè',
+langcode : 'Êîä ìîâè',
+long_desc : 'Ïîâíèé îïèñ',
+style : 'Ñòèë³',
+classes : 'Êëàñè',
+ltr : 'Çë³âà íàïðàâî',
+rtl : 'Ñïðàâà íàë³âî',
+id : 'Id',
+image_map : 'Êàðòà çîáðàæåííÿ',
+swap_image : 'ϳäì³íà êàðòèíêè',
+alt_image : 'Àëüòåðíàòèâíå çîáðàæåííÿ',
+mouseover : 'ïðè íàâåäåíí³ ìèø³',
+mouseout : 'êîëè óñóíåíí³ ìèø³',
+misc : 'Ðåøòà',
+example_img : '³çóàë³çàö³ÿ&nbsp;ðîçòàøóâàííÿ&nbsp;êàðòèíêè',
+missing_alt : 'Ïðîäîâæèòè áåç Îïèñó Çîáðàæåííÿ? Áåç îïèñó çîáðàæåííÿ ìîæå áóòè íåäîñòóïíî äëÿ êîðèñòóâà÷³â, ùî âèêîðèñòîâóþòü òåêñòîâ³ áðàóçåðè ÷è îòêëþ÷èâøèõ ïîêàç çîáðàæåíü.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/uk_KOI8-U.js b/tinyMCE/plugins/advimage/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..c602cac4662a2e5c7e9d777dd74c18e7e35b2094
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/uk_KOI8-U.js
@@ -0,0 +1,27 @@
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'ïÓÎÏ×Φ',
+tab_appearance : '÷¦ÚÕÁ̦ÚÁæÑ',
+tab_advanced : 'òÏÚÛÉÒÅΦ',
+general : 'çÏÌÏ×Φ',
+title : 'úÁÇÏÌÏ×ÏË',
+preview : 'ðÏÐÅÒÅÄÎ¦Ê ÐÅÒÅÇÌÑÄ',
+constrain_proportions : 'úÂÅÒÅÇÔÉ ÐÒÏÐÏÒæ§',
+langdir : 'ïÐÉÓ ÍÏ×É',
+langcode : 'ëÏÄ ÍÏ×É',
+long_desc : 'ðÏ×ÎÉÊ ÏÐÉÓ',
+style : 'óÔÉ̦',
+classes : 'ëÌÁÓÉ',
+ltr : 'ú̦×Á ÎÁÐÒÁ×Ï',
+rtl : 'óÐÒÁ×Á ÎÁ̦×Ï',
+id : 'Id',
+image_map : 'ëÁÒÔÁ ÚÏÂÒÁÖÅÎÎÑ',
+swap_image : 'ð¦ÄͦÎÁ ËÁÒÔÉÎËÉ',
+alt_image : 'áÌØÔÅÒÎÁÔÉ×ÎÅ ÚÏÂÒÁÖÅÎÎÑ',
+mouseover : 'ÐÒÉ ÎÁ×ÅÄÅÎΦ ÍÉÛ¦',
+mouseout : 'ËÏÌÉ ÕÓÕÎÅÎΦ ÍÉÛ¦',
+misc : 'òÅÛÔÁ',
+example_img : '÷¦ÚÕÁ̦ÚÁæÑ&nbsp;ÒÏÚÔÁÛÕ×ÁÎÎÑ&nbsp;ËÁÒÔÉÎËÉ',
+missing_alt : 'ðÒÏÄÏ×ÖÉÔÉ ÂÅÚ ïÐÉÓÕ úÏÂÒÁÖÅÎÎÑ? âÅÚ ÏÐÉÓÕ ÚÏÂÒÁÖÅÎÎÑ ÍÏÖÅ ÂÕÔÉ ÎÅÄÏÓÔÕÐÎÏ ÄÌÑ ËÏÒÉÓÔÕ×ÁÞ¦×, ÝÏ ×ÉËÏÒÉÓÔÏ×ÕÀÔØ ÔÅËÓÔÏצ ÂÒÁÕÚÅÒÉ ÞÉ ÏÔËÌÀÞÉ×ÛÉÈ ÐÏËÁÚ ÚÏÂÒÁÖÅÎØ.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/vi.js b/tinyMCE/plugins/advimage/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c259733ff87b0710f64fad4b6895b0cad08fb1b
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/vi.js
@@ -0,0 +1,27 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Chung',
+tab_appearance : 'Xuất hiện',
+tab_advanced : 'Nâng cao',
+general : 'Chung',
+title : 'Tiêu đề',
+preview : 'Xem trước',
+constrain_proportions : 'Ràng buộc kích thước',
+langdir : 'Hướng ngôn ngữ',
+langcode : 'Bộ mã ngôn ngữ',
+long_desc : 'Mô tả đầy đủ',
+style : 'Kiểu',
+classes : 'Lá»›p',
+ltr : 'Trái sang phải',
+rtl : 'Phải sang trái',
+id : 'Id',
+image_map : 'Bản đồ ảnh',
+swap_image : 'Thay đổi ảnh',
+alt_image : 'Ảnh thay thế',
+mouseover : 'khi di chuột vào',
+mouseout : 'khi di chuột ra ngoài',
+misc : 'Linh tinh',
+example_img : 'Ảnh&nbsp;xem&nbsp;trước',
+missing_alt : 'Bạn có chắc bạn muốn tiếp tục mà không cần nhập vào mô tả ảnh? Không có mô tả sẽ hạn chế khả năng truy cập của những người sử dụng khuyết tật, hoặc những người sử dụng trình duyệt văn bản, hoặc xem trang này khi đã tắt chế độ hiển thị ảnh.'
+});
diff --git a/tinyMCE/plugins/advimage/langs/zh_cn.js b/tinyMCE/plugins/advimage/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..41c6c57c3ae065c93cc6f230f6b42ad9f00e1fac
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/zh_cn.js
@@ -0,0 +1,28 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Ò»°ã',
+tab_appearance : 'ÏÔʾ',
+tab_advanced : '¸ß¼¶',
+general : 'Ò»°ã',
+title : '±êÌâ',
+preview : 'Ô¤ÀÀ',
+constrain_proportions : 'Ô¼ÊøÊôÐÔ',
+langdir : 'Êéд·½Ïò',
+langcode : 'ÓïÑÔ±àÂë',
+long_desc : '³¤ÃèÊöÁ´½Ó',
+style : '·ç¸ñ',
+classes : 'Àà',
+ltr : '´Ó×óÖÁÓÒ',
+rtl : '´ÓÓÒÖÁ×ó',
+id : '±íʶ',
+image_map : 'ͼƬ¶ÔÓ¦',
+swap_image : 'µ÷»»Í¼Æ¬',
+alt_image : 'ºòѡͼƬ',
+mouseover : 'Êó±êÔÚÉÏÃæÊ±',
+mouseout : 'Êó±êÀ뿪ʱ',
+misc : 'ÔÓÏî',
+example_img : 'ÏÔʾ&nbsp;Ô¤ÀÀ&nbsp;ͼƬ',
+missing_alt : 'ÄúÈ·ÈÏÒªÔÚûÓÐͼƬ˵Ã÷µÄÇé¿öϼÌÐøÂ𣿠ÕâÑùÆäËû¹Ø±ÕͼƬä¯ÀÀµÄÓû§½«ÎÞ·¨×¢Òâµ½ÄãÔÚÕâÀïÓÐͼƬ¡£'
+});
diff --git a/tinyMCE/plugins/advimage/langs/zh_cn_utf8.js b/tinyMCE/plugins/advimage/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..f835bc0aef67b461c29344e2f24cb4718340f42a
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/zh_cn_utf8.js
@@ -0,0 +1,28 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('advimage',{
+tab_general : '一般',
+tab_appearance : '显示',
+tab_advanced : '高级',
+general : '一般',
+title : '标题',
+preview : '预览',
+constrain_proportions : '约束属性',
+langdir : '书写方向',
+langcode : '语言编码',
+long_desc : '长描述链接',
+style : '风格',
+classes : 'ç±»',
+ltr : '从左至右',
+rtl : '从右至左',
+id : '表识',
+image_map : '图片对应',
+swap_image : '调换图片',
+alt_image : '候选图片',
+mouseover : '鼠标在上面时',
+mouseout : '鼠标离开时',
+misc : '杂项',
+example_img : '显示&nbsp;预览&nbsp;图片',
+missing_alt : '您确认要在没有图片说明的情况下继续吗? 这样其他关闭图片浏览的用户将无法注意到你在这里有图片。'
+});
diff --git a/tinyMCE/plugins/advimage/langs/zh_tw.js b/tinyMCE/plugins/advimage/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..7cee3c387ae9ea42f209d51a14c1e602639192d8
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/zh_tw.js
@@ -0,0 +1,29 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+
+tinyMCE.addToLang('advimage',{
+tab_general : '¤@¯ë',
+tab_appearance : '¥~Æ[',
+tab_advanced : '¶i¶¥',
+general : '¤@¯ë',
+title : '¼ÐÃD',
+preview : '¹wÄý',
+constrain_proportions : '¤ñ¨Ò­­¨î',
+langdir : '»y¨¥¥Îªk',
+langcode : '»y½X',
+long_desc : '§¹¾ã»¡©ú³sµ²',
+style : '¦¡¼Ë',
+classes : '¤ÀÃþ',
+ltr : '¥Ñ¥ª¦Ü¥k',
+rtl : '¥Ñ¥k¦Ü¥ª',
+id : '½s¸¹',
+image_map : '¹ÏÀɬM®g',
+swap_image : '¹ÏÀɥ洫',
+alt_image : '´À¥N¹ÏÀÉ',
+mouseover : '·í·Æ¹«²¾¤J',
+mouseout : '·í·Æ¹«²¾¥X',
+misc : 'Âø¶µ',
+example_img : '¥~Æ[&nbsp;¹wÄý&nbsp;¹ÏÀÉ',
+missing_alt : '½T©w­n¦b¤£§t¹ÏÀÉ»¡©úªºª¬ªp¤UÄ~Äò°õ¦æ¶Ü¡H\n¨S¦³¹ÏÀÉ»¡©ú¥i¯à·|¾É­P¨º¨Ç¹³¬O¥H¯Â¤å¦rÂsÄý¾¹©Î\nÃö³¬ÂsÄý¾¹¹ÏÀÉÅã²{¥\¯àªº¥Î¤áµLªk¶¶§QŪ¨ú¸ê°T¡C'
+});
diff --git a/tinyMCE/plugins/advimage/langs/zh_tw_utf8.js b/tinyMCE/plugins/advimage/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..32ab67d35895a80e5a2c672e7203d90fa48a0352
--- /dev/null
+++ b/tinyMCE/plugins/advimage/langs/zh_tw_utf8.js
@@ -0,0 +1,29 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+
+tinyMCE.addToLang('advimage',{
+tab_general : '一般',
+tab_appearance : '外觀',
+tab_advanced : '進階',
+general : '一般',
+title : '標題',
+preview : '預覽',
+constrain_proportions : '比例限制',
+langdir : '語言用法',
+langcode : '語碼',
+long_desc : '完整說明連結',
+style : '式樣',
+classes : '分類',
+ltr : '由左至右',
+rtl : '由右至左',
+id : '編號',
+image_map : '圖檔映射',
+swap_image : '圖檔交換',
+alt_image : '替代圖檔',
+mouseover : '當滑鼠移入',
+mouseout : '當滑鼠移出',
+misc : '雜項',
+example_img : '外觀&nbsp;預覽&nbsp;圖檔',
+missing_alt : '確定要在不含圖檔說明的狀況下繼續執行嗎?\n沒有圖檔說明可能會導致那些像是以純文字瀏覽器或\n關閉瀏覽器圖檔顯現功能的用戶無法順利讀取資訊。'
+});
diff --git a/tinyMCE/plugins/advimage/readme.txt b/tinyMCE/plugins/advimage/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/advimage/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/advlink/css/advlink.css b/tinyMCE/plugins/advlink/css/advlink.css
new file mode 100644
index 0000000000000000000000000000000000000000..0cb37bd20a2537b257a891ff7c75e70d2de3c63d
--- /dev/null
+++ b/tinyMCE/plugins/advlink/css/advlink.css
@@ -0,0 +1,35 @@
+/* CSS file for advimage plugin popup */
+
+.mceLinkList, .mceAnchorList, #targetlist {
+	width: 280px;
+}
+
+.mceActionPanel {
+	margin-top: 7px;
+}
+
+.panel_wrapper div.current {
+	height: 320px;
+}
+
+#classlist, #title, #href {
+	width: 280px;
+}
+
+#popupurl, #popupname {
+	width: 200px;
+}
+
+#popupwidth, #popupheight, #popupleft, #popuptop {
+	width: 30px;
+	vertical-align: middle;
+	text-align: center;
+}
+
+#id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {
+	width: 200px;
+}
+
+#events_panel input {
+	width: 200px;
+}
diff --git a/tinyMCE/plugins/advlink/editor_plugin.js b/tinyMCE/plugins/advlink/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..66602fa93a70fdc6776457edacbc357e07a141b1
--- /dev/null
+++ b/tinyMCE/plugins/advlink/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('advlink');var TinyMCE_AdvancedLinkPlugin={getInfo:function(){return{longname:'Advanced link',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){inst.addShortcut('ctrl','k','lang_advlink_desc','mceAdvLink')},getControlHTML:function(cn){switch(cn){case"link":return tinyMCE.getButtonHTML(cn,'lang_link_desc','{$themeurl}/images/link.gif','mceAdvLink')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceAdvLink":var inst=tinyMCE.getInstanceById(editor_id),anySelection=false;var focusElm=inst.getFocusElement(),selectedText=inst.selection.getSelectedText();if(tinyMCE.selectedElement)anySelection=(tinyMCE.selectedElement.nodeName.toLowerCase()=="img")||(selectedText&&selectedText.length>0);if(anySelection||(focusElm!=null&&focusElm.nodeName=="A")){tinyMCE.openWindow({file:'../../plugins/advlink/link.htm',width:480+tinyMCE.getLang('lang_advlink_delta_width',0),height:400+tinyMCE.getLang('lang_advlink_delta_height',0)},{editor_id:editor_id,inline:"yes"})}return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="A"&&tinyMCE.getAttrib(node,'href')!=""){tinyMCE.switchClass(editor_id+'_advlink','mceButtonSelected');return true}}while((node=node.parentNode));if(any_selection){tinyMCE.switchClass(editor_id+'_advlink','mceButtonNormal');return true}tinyMCE.switchClass(editor_id+'_advlink','mceButtonDisabled');return true}};tinyMCE.addPlugin("advlink",TinyMCE_AdvancedLinkPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/advlink/editor_plugin_src.js b/tinyMCE/plugins/advlink/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..0fed63fa8667d3f6d9ab75a59a8d302b2ecb049f
--- /dev/null
+++ b/tinyMCE/plugins/advlink/editor_plugin_src.js
@@ -0,0 +1,83 @@
+/**
+ * $Id: editor_plugin_src.js 268 2007-04-28 15:52:59Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('advlink');
+
+var TinyMCE_AdvancedLinkPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Advanced link',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		inst.addShortcut('ctrl', 'k', 'lang_advlink_desc', 'mceAdvLink');
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "link":
+				return tinyMCE.getButtonHTML(cn, 'lang_link_desc', '{$themeurl}/images/link.gif', 'mceAdvLink');
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		switch (command) {
+			case "mceAdvLink":
+				var inst = tinyMCE.getInstanceById(editor_id), anySelection = false;
+				var focusElm = inst.getFocusElement(), selectedText = inst.selection.getSelectedText();
+
+				if (tinyMCE.selectedElement)
+					anySelection = (tinyMCE.selectedElement.nodeName.toLowerCase() == "img") || (selectedText && selectedText.length > 0);
+
+				if (anySelection || (focusElm != null && focusElm.nodeName == "A")) {
+					tinyMCE.openWindow({
+						file : '../../plugins/advlink/link.htm',
+						width : 480 + tinyMCE.getLang('lang_advlink_delta_width', 0),
+						height : 400 + tinyMCE.getLang('lang_advlink_delta_height', 0)
+					}, {
+						editor_id : editor_id,
+						inline : "yes"
+					});
+				}
+
+				return true;
+		}
+
+		return false;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		if (node == null)
+			return;
+
+		do {
+			if (node.nodeName == "A" && tinyMCE.getAttrib(node, 'href') != "") {
+				tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonSelected');
+				return true;
+			}
+		} while ((node = node.parentNode));
+
+		if (any_selection) {
+			tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonNormal');
+			return true;
+		}
+
+		tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonDisabled');
+
+		return true;
+	}
+};
+
+tinyMCE.addPlugin("advlink", TinyMCE_AdvancedLinkPlugin);
diff --git a/tinyMCE/plugins/advlink/jscripts/functions.js b/tinyMCE/plugins/advlink/jscripts/functions.js
new file mode 100644
index 0000000000000000000000000000000000000000..9fd4da8b43fa107d955960ee06c147aec9c1ffd3
--- /dev/null
+++ b/tinyMCE/plugins/advlink/jscripts/functions.js
@@ -0,0 +1,587 @@
+/* Functions for the advlink plugin popup */
+
+var templates = {
+	"window.open" : "window.open('${url}','${target}','${options}')"
+};
+
+function preinit() {
+	// Initialize
+	tinyMCE.setWindowArg('mce_windowresize', false);
+
+	// Import external list url javascript
+	var url = tinyMCE.getParam("external_link_list_url");
+	if (url != null) {
+		// Fix relative
+		if (url.charAt(0) != '/' && url.indexOf('://') == -1)
+			url = tinyMCE.documentBasePath + "/" + url;
+
+		document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+	}
+}
+
+function changeClass() {
+	var formObj = document.forms[0];
+	formObj.classes.value = getSelectValue(formObj, 'classlist');
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	var formObj = document.forms[0];
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var elm = inst.getFocusElement();
+	var action = "insert";
+	var html;
+
+	document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','advlink');
+	document.getElementById('popupurlbrowsercontainer').innerHTML = getBrowserHTML('popupurlbrowser','popupurl','file','advlink');
+	document.getElementById('linklisthrefcontainer').innerHTML = getLinkListHTML('linklisthref','href');
+	document.getElementById('anchorlistcontainer').innerHTML = getAnchorListHTML('anchorlist','href');
+	document.getElementById('targetlistcontainer').innerHTML = getTargetListHTML('targetlist','target');
+
+	// Link list
+	html = getLinkListHTML('linklisthref','href');
+	if (html == "")
+		document.getElementById("linklisthrefrow").style.display = 'none';
+	else
+		document.getElementById("linklisthrefcontainer").innerHTML = html;
+
+	// Resize some elements
+	if (isVisible('hrefbrowser'))
+		document.getElementById('href').style.width = '260px';
+
+	if (isVisible('popupurlbrowser'))
+		document.getElementById('popupurl').style.width = '180px';
+
+	elm = tinyMCE.getParentElement(elm, "a");
+	if (elm != null && elm.nodeName == "A")
+		action = "update";
+
+	formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true); 
+
+	setPopupControlsDisabled(true);
+
+	if (action == "update") {
+		var href = tinyMCE.getAttrib(elm, 'href');
+
+		href = convertURL(href, elm, true);
+
+		// Use mce_href if found
+		var mceRealHref = tinyMCE.getAttrib(elm, 'mce_href');
+		if (mceRealHref != "") {
+			href = mceRealHref;
+
+			if (tinyMCE.getParam('convert_urls'))
+				href = convertURL(href, elm, true);
+		}
+
+		var onclick = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onclick'));
+
+		// Setup form data
+		setFormValue('href', href);
+		setFormValue('title', tinyMCE.getAttrib(elm, 'title'));
+		setFormValue('id', tinyMCE.getAttrib(elm, 'id'));
+		setFormValue('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(tinyMCE.getAttrib(elm, "style"))));
+		setFormValue('rel', tinyMCE.getAttrib(elm, 'rel'));
+		setFormValue('rev', tinyMCE.getAttrib(elm, 'rev'));
+		setFormValue('charset', tinyMCE.getAttrib(elm, 'charset'));
+		setFormValue('hreflang', tinyMCE.getAttrib(elm, 'hreflang'));
+		setFormValue('dir', tinyMCE.getAttrib(elm, 'dir'));
+		setFormValue('lang', tinyMCE.getAttrib(elm, 'lang'));
+		setFormValue('tabindex', tinyMCE.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));
+		setFormValue('accesskey', tinyMCE.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));
+		setFormValue('type', tinyMCE.getAttrib(elm, 'type'));
+		setFormValue('onfocus', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onfocus')));
+		setFormValue('onblur', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onblur')));
+		setFormValue('onclick', onclick);
+		setFormValue('ondblclick', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'ondblclick')));
+		setFormValue('onmousedown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousedown')));
+		setFormValue('onmouseup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseup')));
+		setFormValue('onmouseover', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseover')));
+		setFormValue('onmousemove', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousemove')));
+		setFormValue('onmouseout', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseout')));
+		setFormValue('onkeypress', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeypress')));
+		setFormValue('onkeydown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeydown')));
+		setFormValue('onkeyup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeyup')));
+		setFormValue('target', tinyMCE.getAttrib(elm, 'target'));
+		setFormValue('classes', tinyMCE.getAttrib(elm, 'class'));
+
+		// Parse onclick data
+		if (onclick != null && onclick.indexOf('window.open') != -1)
+			parseWindowOpen(onclick);
+		else
+			parseFunction(onclick);
+
+		// Select by the values
+		selectByValue(formObj, 'dir', tinyMCE.getAttrib(elm, 'dir'));
+		selectByValue(formObj, 'rel', tinyMCE.getAttrib(elm, 'rel'));
+		selectByValue(formObj, 'rev', tinyMCE.getAttrib(elm, 'rev'));
+		selectByValue(formObj, 'linklisthref', href);
+
+		if (href.charAt(0) == '#')
+			selectByValue(formObj, 'anchorlist', href);
+
+		addClassesToList('classlist', 'advlink_styles');
+
+		selectByValue(formObj, 'classlist', tinyMCE.getAttrib(elm, 'class'), true);
+		selectByValue(formObj, 'targetlist', tinyMCE.getAttrib(elm, 'target'), true);
+	} else
+		addClassesToList('classlist', 'advlink_styles');
+
+	window.focus();
+}
+
+function checkPrefix(n) {
+	if (Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCE.getLang('lang_is_email')))
+		n.value = 'mailto:' + n.value;
+
+	if (/^\s*www./i.test(n.value) && confirm(tinyMCE.getLang('lang_is_external')))
+		n.value = 'http://' + n.value;
+}
+
+function setFormValue(name, value) {
+	document.forms[0].elements[name].value = value;
+}
+
+function convertURL(url, node, on_save) {
+	return eval("tinyMCEPopup.windowOpener." + tinyMCE.settings['urlconverter_callback'] + "(url, node, on_save);");
+}
+
+function parseWindowOpen(onclick) {
+	var formObj = document.forms[0];
+
+	// Preprocess center code
+	if (onclick.indexOf('return false;') != -1) {
+		formObj.popupreturn.checked = true;
+		onclick = onclick.replace('return false;', '');
+	} else
+		formObj.popupreturn.checked = false;
+
+	var onClickData = parseLink(onclick);
+
+	if (onClickData != null) {
+		formObj.ispopup.checked = true;
+		setPopupControlsDisabled(false);
+
+		var onClickWindowOptions = parseOptions(onClickData['options']);
+		var url = onClickData['url'];
+
+		if (tinyMCE.getParam('convert_urls'))
+			url = convertURL(url, null, true);
+
+		formObj.popupname.value = onClickData['target'];
+		formObj.popupurl.value = url;
+		formObj.popupwidth.value = getOption(onClickWindowOptions, 'width');
+		formObj.popupheight.value = getOption(onClickWindowOptions, 'height');
+
+		formObj.popupleft.value = getOption(onClickWindowOptions, 'left');
+		formObj.popuptop.value = getOption(onClickWindowOptions, 'top');
+
+		if (formObj.popupleft.value.indexOf('screen') != -1)
+			formObj.popupleft.value = "c";
+
+		if (formObj.popuptop.value.indexOf('screen') != -1)
+			formObj.popuptop.value = "c";
+
+		formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes";
+		formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes";
+		formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes";
+		formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes";
+		formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes";
+		formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes";
+		formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes";
+
+		buildOnClick();
+	}
+}
+
+function parseFunction(onclick) {
+	var formObj = document.forms[0];
+	var onClickData = parseLink(onclick);
+
+	// TODO: Add stuff here
+}
+
+function getOption(opts, name) {
+	return typeof(opts[name]) == "undefined" ? "" : opts[name];
+}
+
+function setPopupControlsDisabled(state) {
+	var formObj = document.forms[0];
+
+	formObj.popupname.disabled = state;
+	formObj.popupurl.disabled = state;
+	formObj.popupwidth.disabled = state;
+	formObj.popupheight.disabled = state;
+	formObj.popupleft.disabled = state;
+	formObj.popuptop.disabled = state;
+	formObj.popuplocation.disabled = state;
+	formObj.popupscrollbars.disabled = state;
+	formObj.popupmenubar.disabled = state;
+	formObj.popupresizable.disabled = state;
+	formObj.popuptoolbar.disabled = state;
+	formObj.popupstatus.disabled = state;
+	formObj.popupreturn.disabled = state;
+	formObj.popupdependent.disabled = state;
+
+	setBrowserDisabled('popupurlbrowser', state);
+}
+
+function parseLink(link) {
+	link = link.replace(new RegExp('&#39;', 'g'), "'");
+
+	var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");
+
+	// Is function name a template function
+	var template = templates[fnName];
+	if (template) {
+		// Build regexp
+		var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));
+		var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";
+		var replaceStr = "";
+		for (var i=0; i<variableNames.length; i++) {
+			// Is string value
+			if (variableNames[i].indexOf("'${") != -1)
+				regExp += "'(.*)'";
+			else // Number value
+				regExp += "([0-9]*)";
+
+			replaceStr += "$" + (i+1);
+
+			// Cleanup variable name
+			variableNames[i] = variableNames[i].replace(new RegExp("[^A-Za-z0-9]", "gi"), "");
+
+			if (i != variableNames.length-1) {
+				regExp += "\\s*,\\s*";
+				replaceStr += "<delim>";
+			} else
+				regExp += ".*";
+		}
+
+		regExp += "\\);?";
+
+		// Build variable array
+		var variables = new Array();
+		variables["_function"] = fnName;
+		var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('<delim>');
+		for (var i=0; i<variableNames.length; i++)
+			variables[variableNames[i]] = variableValues[i];
+
+		return variables;
+	}
+
+	return null;
+}
+
+function parseOptions(opts) {
+	if (opts == null || opts == "")
+		return new Array();
+
+	// Cleanup the options
+	opts = opts.toLowerCase();
+	opts = opts.replace(/;/g, ",");
+	opts = opts.replace(/[^0-9a-z=,]/g, "");
+
+	var optionChunks = opts.split(',');
+	var options = new Array();
+
+	for (var i=0; i<optionChunks.length; i++) {
+		var parts = optionChunks[i].split('=');
+
+		if (parts.length == 2)
+			options[parts[0]] = parts[1];
+	}
+
+	return options;
+}
+
+function buildOnClick() {
+	var formObj = document.forms[0];
+
+	if (!formObj.ispopup.checked) {
+		formObj.onclick.value = "";
+		return;
+	}
+
+	var onclick = "window.open('";
+	var url = formObj.popupurl.value;
+
+	if (tinyMCE.getParam('convert_urls'))
+		url = convertURL(url, null, true);
+
+	onclick += url + "','";
+	onclick += formObj.popupname.value + "','";
+
+	if (formObj.popuplocation.checked)
+		onclick += "location=yes,";
+
+	if (formObj.popupscrollbars.checked)
+		onclick += "scrollbars=yes,";
+
+	if (formObj.popupmenubar.checked)
+		onclick += "menubar=yes,";
+
+	if (formObj.popupresizable.checked)
+		onclick += "resizable=yes,";
+
+	if (formObj.popuptoolbar.checked)
+		onclick += "toolbar=yes,";
+
+	if (formObj.popupstatus.checked)
+		onclick += "status=yes,";
+
+	if (formObj.popupdependent.checked)
+		onclick += "dependent=yes,";
+
+	if (formObj.popupwidth.value != "")
+		onclick += "width=" + formObj.popupwidth.value + ",";
+
+	if (formObj.popupheight.value != "")
+		onclick += "height=" + formObj.popupheight.value + ",";
+
+	if (formObj.popupleft.value != "") {
+		if (formObj.popupleft.value != "c")
+			onclick += "left=" + formObj.popupleft.value + ",";
+		else
+			onclick += "left='+(screen.availWidth/2-" + (formObj.popupwidth.value/2) + ")+',";
+	}
+
+	if (formObj.popuptop.value != "") {
+		if (formObj.popuptop.value != "c")
+			onclick += "top=" + formObj.popuptop.value + ",";
+		else
+			onclick += "top='+(screen.availHeight/2-" + (formObj.popupheight.value/2) + ")+',";
+	}
+
+	if (onclick.charAt(onclick.length-1) == ',')
+		onclick = onclick.substring(0, onclick.length-1);
+
+	onclick += "');";
+
+	if (formObj.popupreturn.checked)
+		onclick += "return false;";
+
+	// tinyMCE.debug(onclick);
+
+	formObj.onclick.value = onclick;
+
+	if (formObj.href.value == "")
+		formObj.href.value = url;
+}
+
+function setAttrib(elm, attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib.toLowerCase()];
+
+	if (typeof(value) == "undefined" || value == null) {
+		value = "";
+
+		if (valueElm)
+			value = valueElm.value;
+	}
+
+	if (value != "") {
+		elm.setAttribute(attrib.toLowerCase(), value);
+
+		if (attrib == "style")
+			attrib = "style.cssText";
+
+		if (attrib.substring(0, 2) == 'on')
+			value = 'return true;' + value;
+
+		if (attrib == "class")
+			attrib = "className";
+
+		eval('elm.' + attrib + "=value;");
+	} else
+		elm.removeAttribute(attrib);
+}
+
+function getAnchorListHTML(id, target) {
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var nodes = inst.getBody().getElementsByTagName("a"), name, i;
+	var html = "";
+
+	html += '<select id="' + id + '" name="' + id + '" class="mceAnchorList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target + '.value=';
+	html += 'this.options[this.selectedIndex].value;">';
+	html += '<option value="">---</option>';
+
+	for (i=0; i<nodes.length; i++) {
+		if ((name = tinyMCE.getAttrib(nodes[i], "name")) != "")
+			html += '<option value="#' + name + '">' + name + '</option>';
+	}
+
+	html += '</select>';
+
+	return html;
+}
+
+function insertAction() {
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var elm = inst.getFocusElement();
+
+	checkPrefix(document.forms[0].href);
+
+	elm = tinyMCE.getParentElement(elm, "a");
+
+	tinyMCEPopup.execCommand("mceBeginUndoLevel");
+
+	// Create new anchor elements
+	if (elm == null) {
+		if (tinyMCE.isSafari)
+			tinyMCEPopup.execCommand("mceInsertContent", false, '<a href="#mce_temp_url#">' + inst.selection.getSelectedHTML() + '</a>');
+		else
+			tinyMCEPopup.execCommand("createlink", false, "#mce_temp_url#");
+
+		var elementArray = tinyMCE.getElementsByAttributeValue(inst.getBody(), "a", "href", "#mce_temp_url#");
+		for (var i=0; i<elementArray.length; i++) {
+			var elm = elementArray[i];
+
+			// Move cursor to end
+			try {
+				tinyMCE.selectedInstance.selection.collapse(false);
+			} catch (ex) {
+				// Ignore
+			}
+
+			// Move cursor behind the new anchor
+			// Don't remember why this was needed so it's now removed
+			/*
+			if (tinyMCE.isGecko) {
+				var sp = inst.getDoc().createTextNode(" ");
+
+				if (elm.nextSibling)
+					elm.parentNode.insertBefore(sp, elm.nextSibling);
+				else
+					elm.parentNode.appendChild(sp);
+
+				// Set range after link
+				var rng = inst.getDoc().createRange();
+				rng.setStartAfter(elm);
+				rng.setEndAfter(elm);
+
+				// Update selection
+				var sel = inst.getSel();
+				sel.removeAllRanges();
+				sel.addRange(rng);
+			}
+			*/
+
+			setAllAttribs(elm);
+		}
+	} else
+		setAllAttribs(elm);
+
+	tinyMCE._setEventsEnabled(inst.getBody(), false);
+	tinyMCEPopup.execCommand("mceEndUndoLevel");
+	tinyMCEPopup.close();
+}
+
+function setAllAttribs(elm) {
+	var formObj = document.forms[0];
+	var href = formObj.href.value;
+	var target = getSelectValue(formObj, 'targetlist');
+
+	// Make anchors absolute
+	if (href.charAt(0) != '#')
+		href = convertURL(href, elm);
+
+	setAttrib(elm, 'href', href);
+	setAttrib(elm, 'mce_href', href);
+	setAttrib(elm, 'title');
+	setAttrib(elm, 'target', target == '_self' ? '' : target);
+	setAttrib(elm, 'id');
+	setAttrib(elm, 'style');
+	setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));
+	setAttrib(elm, 'rel');
+	setAttrib(elm, 'rev');
+	setAttrib(elm, 'charset');
+	setAttrib(elm, 'hreflang');
+	setAttrib(elm, 'dir');
+	setAttrib(elm, 'lang');
+	setAttrib(elm, 'tabindex');
+	setAttrib(elm, 'accesskey');
+	setAttrib(elm, 'type');
+	setAttrib(elm, 'onfocus');
+	setAttrib(elm, 'onblur');
+	setAttrib(elm, 'onclick');
+	setAttrib(elm, 'ondblclick');
+	setAttrib(elm, 'onmousedown');
+	setAttrib(elm, 'onmouseup');
+	setAttrib(elm, 'onmouseover');
+	setAttrib(elm, 'onmousemove');
+	setAttrib(elm, 'onmouseout');
+	setAttrib(elm, 'onkeypress');
+	setAttrib(elm, 'onkeydown');
+	setAttrib(elm, 'onkeyup');
+
+	// Refresh in old MSIE
+	if (tinyMCE.isMSIE5)
+		elm.outerHTML = elm.outerHTML;
+}
+
+function getSelectValue(form_obj, field_name) {
+	var elm = form_obj.elements[field_name];
+
+	if (elm == null || elm.options == null)
+		return "";
+
+	return elm.options[elm.selectedIndex].value;
+}
+
+function getLinkListHTML(elm_id, target_form_element, onchange_func) {
+	if (typeof(tinyMCELinkList) == "undefined" || tinyMCELinkList.length == 0)
+		return "";
+
+	var html = "";
+
+	html += '<select id="' + elm_id + '" name="' + elm_id + '"';
+	html += ' class="mceLinkList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
+	html += 'this.options[this.selectedIndex].value;';
+
+	if (typeof(onchange_func) != "undefined")
+		html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';
+
+	html += '"><option value="">---</option>';
+
+	for (var i=0; i<tinyMCELinkList.length; i++)
+		html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';
+
+	html += '</select>';
+
+	return html;
+
+	// tinyMCE.debug('-- image list start --', html, '-- image list end --');
+}
+
+function getTargetListHTML(elm_id, target_form_element) {
+	var targets = tinyMCE.getParam('theme_advanced_link_targets', '').split(';');
+	var html = '';
+
+	html += '<select id="' + elm_id + '" name="' + elm_id + '" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
+	html += 'this.options[this.selectedIndex].value;">';
+
+	html += '<option value="_self">' + tinyMCE.getLang('lang_advlink_target_same') + '</option>';
+	html += '<option value="_blank">' + tinyMCE.getLang('lang_advlink_target_blank') + ' (_blank)</option>';
+	html += '<option value="_parent">' + tinyMCE.getLang('lang_advlink_target_parent') + ' (_parent)</option>';
+	html += '<option value="_top">' + tinyMCE.getLang('lang_advlink_target_top') + ' (_top)</option>';
+
+	for (var i=0; i<targets.length; i++) {
+		var key, value;
+
+		if (targets[i] == "")
+			continue;
+
+		key = targets[i].split('=')[0];
+		value = targets[i].split('=')[1];
+
+		html += '<option value="' + key + '">' + value + ' (' + key + ')</option>';
+	}
+
+	html += '</select>';
+
+	return html;
+}
+
+// While loading
+preinit();
diff --git a/tinyMCE/plugins/advlink/langs/ca.js b/tinyMCE/plugins/advlink/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..0e68e5ab377c109f70b724a3b2380a7ea1ecc297
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ca.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'General',
+popup_tab : 'Popup',
+events_tab : 'Events',
+advanced_tab : 'Advanced',
+general_props : 'General properties',
+popup_props : 'Popup properties',
+event_props : 'Events',
+advanced_props : 'Advanced properties',
+popup_opts : 'Options',
+anchor_names : 'Anchors',
+target_same : 'Open in this window / frame',
+target_parent : 'Open in parent window / frame',
+target_top : 'Open in top frame (replaces all frames)',
+target_blank : 'Open in new window',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Window name',
+popup_return : 'Insert \'return false\'',
+popup_scrollbars : 'Show scrollbars',
+popup_statusbar : 'Show status bar',
+popup_toolbar : 'Show toolbars',
+popup_menubar : 'Show menu bar',
+popup_location : 'Show location bar',
+popup_resizable : 'Make window resizable',
+popup_dependent : 'Dependent (Mozilla/Firefox only)',
+popup_size : 'Size',
+popup_position : 'Position (X/Y)',
+id : 'Id',
+style: 'Style',
+classes : 'Classes',
+target_name : 'Target name',
+langdir : 'Language direction',
+target_langcode : 'Target language',
+langcode : 'Language code',
+encoding : 'Target character encoding',
+mime : 'Target MIME type',
+rel : 'Relationship page to target',
+rev : 'Relationship target to page',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Left to right',
+rtl : 'Right to left'
+});
diff --git a/tinyMCE/plugins/advlink/langs/cs.js b/tinyMCE/plugins/advlink/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..827623c61b314d7041948de434b6e0b2fba68cf8
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/cs.js
@@ -0,0 +1,51 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.5 2006/01/11 14:25:47 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Obecné',
+popup_tab : 'Popup',
+events_tab : 'Události',
+advanced_tab : 'Pokročilé',
+general_props : 'Obecné vlastnosti',
+popup_props : 'Popup vlastnosti',
+event_props : 'Události',
+advanced_props : 'Advanced properties',
+popup_opts : 'Možnosti',
+anchor_names : 'Anchors',
+target_same : 'Otevřít v tomto okně / rámu',
+target_parent : 'Otevřít v rodičovském okně / rámu',
+target_top : 'Otevřít v hlavním rámci (nahradí všechny rámce)',
+target_blank : 'Otevřít v novém okně',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Jméno okna',
+popup_return : 'Vložit \'return false\'',
+popup_scrollbars : 'Zobrazit posuvníky',
+popup_statusbar : 'Zobrazit stavový řádek',
+popup_toolbar : 'Zobrazit nástrojovou lištu',
+popup_menubar : 'Zobrazit menu',
+popup_location : 'Zobrazit pole s adresou',
+popup_resizable : 'Vytvořit okno, které jde zvětšovat/zmenšovat',
+popup_dependent : 'Závisí (jen pro Mozilla/Firefox)',
+popup_size : 'Velikost',
+popup_position : 'Pozice (X/Y)',
+id : 'Id',
+style: 'Styl',
+classes : 'Třídy',
+target_name : 'Jméno cíle',
+langdir : 'Jazykové nastavení',
+target_langcode : 'Cílový jazyk',
+langcode : 'Kód jazyka',
+encoding : 'Cílové kódování znaků',
+mime : 'Cílový MIME typ',
+rel : 'Vztah stránky k cíli',
+rev : 'Vztah cíle ke stránce',
+tabindex : 'Tabulátor',
+accesskey : 'Přístupové tlačítko',
+ltr : 'Z leva doprava',
+rtl : 'Z prava doleva'
+});
diff --git a/tinyMCE/plugins/advlink/langs/cy.js b/tinyMCE/plugins/advlink/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ad11a14660a9b87b7e163abd5132764f594c2b8
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/cy.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Cyffredinol',
+popup_tab : 'Ffenest Naid',
+events_tab : 'Digwyddiadau',
+advanced_tab : 'Uwch',
+general_props : 'Priodoleddau cyffredinol',
+popup_props : 'Priodoleddau ffenest naid',
+event_props : 'Digwyddiadau',
+advanced_props : 'Priodoleddau uwch',
+popup_opts : 'Dewisiadau',
+anchor_names : 'Angorau',
+target_same : 'Agor yn y ffenest / ffr&acirc;m yma',
+target_parent : 'Agor yn rhiant y ffenest / ffr&acirc;m',
+target_top : 'Agor yn y ffr&acirc;m uchaf (disodli pob ffr&acirc;m)',
+target_blank : 'Agor mewn ffenest newydd',
+popup : 'Ffenest naid Javascript',
+popup_url : 'URL ffenest naid',
+popup_name : 'Enw ffenest',
+popup_return : 'Mewnosod \'return false\'',
+popup_scrollbars : 'Dangos bariau sgrolio',
+popup_statusbar : 'Dangos bar statws',
+popup_toolbar : 'Dangos bariau offer',
+popup_menubar : 'Dangos bar dewislen',
+popup_location : 'Dangos bar lleoliad',
+popup_resizable : 'Caniat&aacute;u newid maint y ffenest',
+popup_dependent : 'Dibynnol (Mozilla/Firefox yn unig)',
+popup_size : 'Maint',
+popup_position : 'Lleoliad (X/Y)',
+id : 'Id',
+style: 'Arddull',
+classes : 'Dosbarthiadau',
+target_name : 'Enw targed',
+langdir : 'Cyfeiriad iaith',
+target_langcode : 'Iaith y targed',
+langcode : 'C&ocirc;d iaith',
+encoding : 'Amgodio testun y targed',
+mime : 'Math MIME y targed',
+rel : 'Perthynas tudalen i\'r targed',
+rev : 'Perthynas targed i\'r dudalen',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Chwith i\'r dde',
+rtl : 'Dde i\'r chwith'
+});
diff --git a/tinyMCE/plugins/advlink/langs/da.js b/tinyMCE/plugins/advlink/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..a33ce9c16ea5f384c2b7e148950707a49ca1aa57
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/da.js
@@ -0,0 +1,46 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard, Ronny Buelund - Corr.:
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Generelt',
+popup_tab : 'Popup',
+events_tab : 'Events',
+advanced_tab : 'Avanceret',
+general_props : 'Generelle egenskaber',
+popup_props : 'Popup egenskaber',
+event_props : 'Events',
+advanced_props : 'Advancerede egenskaber',
+popup_opts : 'Valgmuligheder',
+anchor_names : 'Bogm&aelig;rker',
+target_same : '&Aring;bn i samme vindue / ramme',
+target_parent : '&Aring;bn i overordnet vindue / ramme',
+target_top : '&Aring;bn i topramme (erstatter alle rammer)',
+target_blank : '&Aring;bn i nyt vindue',
+popup : 'Javascript popup',
+popup_url : 'Popup adresse',
+popup_name : 'Winduets navn',
+popup_return : 'Inds&aelig;t \'return false\'',
+popup_scrollbars : 'Vis scrollbar',
+popup_statusbar : 'Vis statuslinje',
+popup_toolbar : 'Vis v&aelig;rkt&oslash;jslinjer',
+popup_menubar : 'Vis menulinje',
+popup_location : 'Vis adresse',
+popup_resizable : 'G&oslash;r vinduet skalerbart',
+popup_dependent : 'Afh&aelig;ngigt (kun ved Mozilla/Firefox)',
+popup_size : 'St&oslash;rrelse',
+popup_position : 'Placering (X/Y)',
+id : 'Id',
+style: 'Stil',
+classes : 'Klasser',
+target_name : 'M&aring;l navn',
+target_langcode : 'M&aring;l sprog',
+langdir : 'Sprogretning',
+langcode : 'Sprogkode',
+encoding : 'Kodning',
+mime : 'MIME type',
+rel : 'Relation mellem side og m&aring;l',
+rev : 'Relation mellem m&aring;l og side',
+tabindex : 'Tabindeks',
+accesskey : 'Genvejstast',
+ltr : 'Venstre til h&oslash;jre',
+rtl : 'H&oslash;jre til venstre'
+});
diff --git a/tinyMCE/plugins/advlink/langs/de.js b/tinyMCE/plugins/advlink/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..52f92ff4f887c4639f75a5f6bdb2cc115110ed69
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/de.js
@@ -0,0 +1,46 @@
+// DE lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Allgemein',
+popup_tab : 'Popup',
+events_tab : 'Events',
+advanced_tab : 'Erweitert',
+general_props : 'Allgemeine Eigenschaften',
+popup_props : 'Popup-Eigenschaften',
+event_props : 'Javascript-Events',
+advanced_props : 'Erweiterte Eigenschaften',
+popup_opts : 'Optionen',
+anchor_names : 'Anker',
+target_same : 'In diesem Fenster/Frame &ouml;ffnen (_self)',
+target_parent : 'Im &uuml;bergeordneten Fenster/Frame &ouml;ffnen (_parent)',
+target_top : 'Im Fenster &ouml;ffnen (ersetzt alle Frames) (_top)',
+target_blank : '_blank - In neuem Fenster &ouml;ffnen',
+popup : 'Javascript-Popup',
+popup_url : 'Popup-URL',
+popup_name : 'Popup-Name',
+popup_return : 'Mit \'return false\' einf&uuml;gen',
+popup_scrollbars : 'Scrollleisten anzeigen',
+popup_statusbar : 'Statuszeilen anzeigen',
+popup_toolbar : 'Werkzeugleisten anzeigen',
+popup_menubar : 'Men&uuml;leiste anzeigen',
+popup_location : 'Adresszeile anzeigen',
+popup_resizable : 'Fenstergr&ouml;&szlig;e ver&auml;nderbar',
+popup_dependent : 'Abh&auml;ngiges Fenster (Nur Mozilla/Firefox)',
+popup_size : 'Gr&ouml;&szlig;e',
+popup_position : 'Position (X/Y)',
+id : 'ID',
+style: 'CSS-Stil',
+classes : 'CSS-Klassen',
+target_name : 'Zielname',
+langdir : 'Textfluss',
+target_langcode : 'Zielsprache',
+langcode : 'Sprach-Code',
+encoding : 'Zeichenkodierung',
+mime : 'MIME-Typ',
+rel : 'Verh&auml;ltnis Seite zu Ziel',
+rev : 'Verh&auml;ltnis Ziel zu Seite',
+tabindex : 'Tabulator-Index',
+accesskey : 'Tastaturk&uuml;rzel',
+ltr : 'Von links nach rechts',
+rtl : 'Von rechts nach links'
+});
diff --git a/tinyMCE/plugins/advlink/langs/el.js b/tinyMCE/plugins/advlink/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..45326f9365a05bd3e87bc10918891ad24acd7c97
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/el.js
@@ -0,0 +1,46 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'ÃåíéêÜ',
+popup_tab : 'Popup',
+events_tab : 'ÓõìâÜíôá',
+advanced_tab : 'Ãéá ðñï÷ùñçìÝíïõò',
+general_props : 'ÃåíéêÝò éäéüôçôåò',
+popup_props : 'Éäéüôçôåò popup',
+event_props : 'ÓõìâÜíôá',
+advanced_props : 'Ðñï÷ùñçìÝíåò éäéüôçôåò',
+popup_opts : 'ÅðéëïãÝò',
+anchor_names : '¢ãêõñåò',
+target_same : '¢íïéãìá óôï ßäéï ðáñÜèõñï / frame',
+target_parent : '¢íïéãìá óôï ðáôñéêü ðáñÜèõñï / frame',
+target_top : '¢íïéãìá óôï ðÜíù frame (áíôéêáèéóôÜ üëá ôá frames)',
+target_blank : '¢íïéãìá óå íÝï ðáñÜèõñï',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : '¼íïìá ðáñáèýñïõ',
+popup_return : 'ÅéóáãùãÞ \'return false\'',
+popup_scrollbars : 'ÅìöÜíéóç ìðáñþí êýëéóçò',
+popup_statusbar : 'ÅìöÜíéóç ìðÜñáò êáôÜóôáóçò',
+popup_toolbar : 'ÅìöÜíéóç ìðáñþí åñãáëåßùí',
+popup_menubar : 'ÅìöÜíéóç ìåíïý',
+popup_location : 'ÅìöÜíéóç ìðÜñáò ôïðïèåóßáò',
+popup_resizable : 'Ôï ðáñÜèõñï íá åðéôñÝðåé áëëáãÞ ìåãÝèïõò',
+popup_dependent : 'Åîáñôþìåíï(ìüíï Mozilla/Firefox)',
+popup_size : 'ÌÝãåèïò',
+popup_position : 'ÈÝóç (X/Y)',
+id : 'Êùä.',
+style: 'Óôõë',
+classes : 'ÊëÜóóåéò',
+target_name : '¼íïìá óôü÷ïõ',
+langdir : 'Äéåýèõíóç ãëþóóáò',
+target_langcode : 'Ãëþóóá óôü÷ïõ',
+langcode : 'Êùäéêüò ãëþóóáò',
+encoding : 'Êùäéêïðïßçóç ãëþóóáò óôü÷ïõ',
+mime : 'Ôýðïò MIME óôü÷ïõ',
+rel : 'Ó÷Ýóç óåëßäáò ìå óôü÷ï',
+rev : 'Ó÷Ýóç óôü÷ïõ ìå óåëßäá',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'ÁñéóôåñÜ ðñïò äåîéÜ',
+rtl : 'ÄåîéÜ ðñïò áñéóôåñÜ'
+});
diff --git a/tinyMCE/plugins/advlink/langs/en.js b/tinyMCE/plugins/advlink/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..1d50e4e89f72794437ad6fdd139dbeb363309971
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/en.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'General',
+popup_tab : 'Popup',
+events_tab : 'Events',
+advanced_tab : 'Advanced',
+general_props : 'General properties',
+popup_props : 'Popup properties',
+event_props : 'Events',
+advanced_props : 'Advanced properties',
+popup_opts : 'Options',
+anchor_names : 'Anchors',
+target_same : 'Open in this window / frame',
+target_parent : 'Open in parent window / frame',
+target_top : 'Open in top frame (replaces all frames)',
+target_blank : 'Open in new window',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Window name',
+popup_return : 'Insert \'return false\'',
+popup_scrollbars : 'Show scrollbars',
+popup_statusbar : 'Show status bar',
+popup_toolbar : 'Show toolbars',
+popup_menubar : 'Show menu bar',
+popup_location : 'Show location bar',
+popup_resizable : 'Make window resizable',
+popup_dependent : 'Dependent (Mozilla/Firefox only)',
+popup_size : 'Size',
+popup_position : 'Position (X/Y)',
+id : 'Id',
+style: 'Style',
+classes : 'Classes',
+target_name : 'Target name',
+langdir : 'Language direction',
+target_langcode : 'Target language',
+langcode : 'Language code',
+encoding : 'Target character encoding',
+mime : 'Target MIME type',
+rel : 'Relationship page to target',
+rev : 'Relationship target to page',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Left to right',
+rtl : 'Right to left'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/advlink/langs/es.js b/tinyMCE/plugins/advlink/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..f25fb78f8df88a5bc530ed0de4e257a91b15a5e4
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/es.js
@@ -0,0 +1,55 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'General',
+popup_tab : 'Popup',
+events_tab : 'Eventos',
+advanced_tab : 'Avanzado',
+general_props : 'Propiedades generales',
+popup_props : 'Propiedades de la popup',
+event_props : 'Eventos',
+advanced_props : 'Propiedades avanzadas',
+popup_opts : 'Opciones',
+anchor_names : 'Anclas',
+target_same : 'Abrir en esta ventana/frame',
+target_parent : 'Abrir en la ventana/frame padre',
+target_top : 'Abrir el frame superior (replaza todos los frames)',
+target_blank : 'Abrir en una ventana nueva',
+popup : 'Popup con JavaScript',
+popup_url : 'Direcci&oacute;n de la popup',
+popup_name : 'Nombre de la ventana',
+popup_return : 'Insertar \'return false\'',
+popup_scrollbars : 'Mostrar barras de scroll',
+popup_statusbar : 'Mostrar barra de estado',
+popup_toolbar : 'Mostrar barras de tarea',
+popup_menubar : 'Mostrar barra de menu',
+popup_location : 'Mostrar barra de direcciones',
+popup_resizable : 'La ventana puede cambiar de tama&ntilde;o',
+popup_dependent : 'Dependiente (solo Mozilla/Firefox)',
+popup_size : 'Tama&ntilde;o',
+popup_position : 'Posici&oacute;n (X/Y)',
+id : 'Id',
+style: 'Estilo',
+classes : 'Clases',
+target_name : 'Nombre del target',
+langdir : 'Direcci&oacute;n del texto',
+target_langcode : 'Idioma del target',
+langcode : 'C&oacute;digo del idioma',
+encoding : 'Codificaci&oacute;n de los car&aacute;cteres del target',
+mime : 'Tipo MIME del target',
+rel : 'Relaci&oacute;n de la p&aacute;gina con el target',
+rev : 'Relaci&oacute;n del target con la p&aacute;gina',
+tabindex : 'Indice para la tabulaci&oacute;n',
+accesskey : 'Tecla de acceso',
+ltr : 'de izquierda a derecha',
+rtl : 'de derecha a izquierda'
+});
diff --git a/tinyMCE/plugins/advlink/langs/fa.js b/tinyMCE/plugins/advlink/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..aca154bf8d9092514d80760b08299f8ff19604c1
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/fa.js
@@ -0,0 +1,27 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_link_target_same : '?? ???? ???? / ???? ??? ??',
+insert_link_target_parent : '?? ???? / ???? ???? ??? ??',
+insert_link_target_top : '?? ???? ???? ??? ?? (??? ?????? ?????? ????? ?????)',
+insert_link_target_blank : '?? ???? ???? ??? ??',
+insert_link_target_named : '?? ????? ??? ??',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'URL ?????',
+insert_link_popup_name : '??? ?????',
+insert_link_popup_return : '?????? \'return false\'',
+insert_link_popup_scrollbars : '????? scrollbars',
+insert_link_popup_statusbar : '????? statusbar',
+insert_link_popup_toolbar : '????? toolbars',
+insert_link_popup_menubar : '????? menubar',
+insert_link_popup_location : '????? locationbar',
+insert_link_popup_resizable : '???? ????? ?????? ????',
+insert_link_popup_size : '??????',
+insert_link_popup_position : '?????? (X/Y)',
+insert_link_popup_missingtarget : '???? ?? ??? ???? ???? ?????? ???? ?? ??? ??? ???? ????? ????? ?? ?????? ??????.'
+});
diff --git a/tinyMCE/plugins/advlink/langs/fi.js b/tinyMCE/plugins/advlink/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..d77defac73e39ae521c53e04c328489317aebe9a
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/fi.js
@@ -0,0 +1,46 @@
+// FI lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Yleiset',
+popup_tab : 'Ponnahdusikkuna',
+events_tab : 'Tapahtumat',
+advanced_tab : 'Lis&auml;asetukset',
+general_props : 'Yleiset asetukset',
+popup_props : 'Ponnahdusikkunan asetukset',
+event_props : 'Tapahtumat',
+advanced_props : 'Lis&auml;asetukset',
+popup_opts : 'Asetukset',
+anchor_names : 'Ankkurit',
+target_same : 'Avaa t&auml;ss&auml; ikkunassa / kehyksess&auml;',
+target_parent : 'Avaa is&auml;nt&auml;ikkunassa / kehyksess&auml;',
+target_top : 'Avaa kokoruudulle (korvaa kaikki kehykset)',
+target_blank : 'Avaa uuteen ikkunaan',
+popup : 'Javascript ponnahdusikkuna',
+popup_url : 'Ponnahdusikkunan osoite',
+popup_name : 'Ikkunan nimi',
+popup_return : 'Lis&auml;&auml; \'return false\'',
+popup_scrollbars : 'N&auml;yt&auml; vierityspalkit',
+popup_statusbar : 'N&auml;yt&auml; tilarivi',
+popup_toolbar : 'N&auml;yt&auml; ty&ouml;kalurivi',
+popup_menubar : 'N&auml;yt&auml; valikkorivi',
+popup_location : 'N&auml;yt&auml; sijaintipalkki',
+popup_resizable : 'Kokoa voi muuttaa',
+popup_dependent : 'Riippuvainen (vain Mozilla/Firefox)',
+popup_size : 'Koko',
+popup_position : 'Sijainti (X/Y)',
+id : 'Id',
+style: 'Tyyli',
+classes : 'Luokat',
+target_name : 'Kohteen nimi',
+langdir : 'Kohteen kielen suunta',
+target_langcode : 'Kohteen kieli',
+langcode : 'Kielikoodi',
+encoding : 'Kohteen merkkikoodisto',
+mime : 'Kohteen MIME tyyppi',
+rel : 'Sivun suhde kohteeseen',
+rev : 'Kohteen suhde sivuun',
+tabindex : 'Tabindex',
+accesskey : 'Pikan&auml;pp&auml;in',
+ltr : 'Vasemmalta oikealle',
+rtl : 'Oikealta vasemmalle'
+});
diff --git a/tinyMCE/plugins/advlink/langs/fr.js b/tinyMCE/plugins/advlink/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..088798f755eeb58af949190f3750d627873fd2f4
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/fr.js
@@ -0,0 +1,48 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('advlink',{
+popup_missingtarget : 'Veuillez ins&eacute;rer un nom pour la cible ou choisissez une autre option.',
+general_tab : 'G&eacute;n&eacute;ral',
+popup_tab : 'Popup',
+events_tab : 'Ev&ecirc;nements',
+advanced_tab : 'Avanc&eacute;',
+general_props : 'Propri&eacute;t&eacute;s g&eacute;n&eacute;rales',
+popup_props : 'Propri&eacute;t&eacute;s Popup',
+event_props : 'Ev&ecirc;nements',
+advanced_props : 'Propri&eacute;t&eacute;s Avanc&eacute;es',
+popup_opts : 'Options',
+anchor_names : 'Ancres',
+target_same : 'Ouvre dans la m&ecirc;me fen&ecirc;tre / Cadre',
+target_parent : 'Ouvre dans la fen&ecirc;tre / cadre parente',
+target_top : 'Ouvre dans le Top frame (remplace toutes les cadres)',
+target_blank : 'Ouvre dans une nouvelle fen&ecirc;tre',
+popup : 'JS-Popup',
+popup_url : 'URL de la Popup',
+popup_name : 'Nom de la fen&ecirc;tre',
+popup_return : 'Insert \'return false\'',
+popup_scrollbars : 'Montrer la barre de d&eacute;filement ',
+popup_statusbar : 'Montrer la barre d\'&eacute;tat',
+popup_toolbar : 'Montrer la barre d\'outils',
+popup_menubar : 'Montrer la barre du menu',
+popup_location : 'Montre la barre d\'adresse',
+popup_resizable : 'Fabriquer une fen&ecirc;tre redimensionnable',
+popup_dependent : 'Dependent (Mozilla/Firefox only)',
+popup_size : 'Taille',
+popup_position : 'Position (X/Y)',
+id : 'Id',
+style: 'Style',
+classes : 'Classes',
+target_name : 'Nom de la cible',
+langdir : 'Sens d\'&eacute;criture',
+target_langcode : 'Langage cible',
+langcode : 'Code langue',
+encoding : 'Codage caract&egrave;res de la cible',
+mime : 'Type MIME de la cible',
+rel : 'Page relative &agrave; la cible',
+rev : 'Cible relative &agrave; la page',
+tabindex : 'Tabindex',
+accesskey : 'Touche d\'acc&egrave;s',
+ltr : 'De gauche &agrave; droite',
+rtl : 'De droite &agrave; gauche'
+});
diff --git a/tinyMCE/plugins/advlink/langs/fr_ca.js b/tinyMCE/plugins/advlink/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b57ba30283bc0c302282fd68a27da10442359b6
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/fr_ca.js
@@ -0,0 +1,22 @@
+// CA_FR lang variables
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'Ouvrir dans la même fenêtre',
+insert_link_target_parent : 'Ouvrir dans la fenêtre parent',
+insert_link_target_top : 'Ouvrir dans le cadre supérieur',
+insert_link_target_blank : 'Ouvrir dans une nouvelle fenêtre',
+insert_link_target_named : 'Ouvrir à la destination',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'URL du popup',
+insert_link_popup_name : 'Nom de la fenêtre',
+insert_link_popup_return : 'Insérer le script \'return false\'',
+insert_link_popup_scrollbars : 'Barres de défilement',
+insert_link_popup_statusbar : 'Barre de statut',
+insert_link_popup_toolbar : 'Barres d\'outils',
+insert_link_popup_menubar : 'Barre de menu',
+insert_link_popup_location : 'Barre d\'adresse',
+insert_link_popup_resizable : 'Fenêtre redimensionnable',
+insert_link_popup_size : 'Dimensions',
+insert_link_popup_position : 'Position (X/Y)',
+insert_link_popup_missingtarget : 'S.v.p., entrer un nom de destination ou choisir une autre option.'
+});
diff --git a/tinyMCE/plugins/advlink/langs/he.js b/tinyMCE/plugins/advlink/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..bf3f79482d7a655bc3c0e7fd9fbc67cc65a82ee7
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/he.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'ëììé',
+popup_tab : 'çìåï ÷åôõ',
+events_tab : 'àøåòéí',
+advanced_tab : 'îú÷ãí',
+general_props : 'îàôééðéí ëììééí',
+popup_props : 'îàôééðé äçìåï ä÷åôõ',
+event_props : 'àøåòéí',
+advanced_props : 'îàôééðéí îú÷ãîéí',
+popup_opts : 'àôùøåéåú',
+anchor_names : 'òåâðéí',
+target_same : 'ôúç áçìåï æä àå îñâøú æå',
+target_parent : 'ôúç áçìåï àå áîñâøú äî÷åøééí',
+target_top : 'ôúç áîñâøú äøàùéú (îçìéó àú ëì äîñâøåú)',
+target_blank : 'ôúç áçìåï çãù',
+popup : 'çìåï ÷åôõ ùì Javascript',
+popup_url : 'ëúåáú äçìåï ä÷åôõ',
+popup_name : 'ùí äçìåï',
+popup_return : 'äëðñ \'return false\'',
+popup_scrollbars : 'äöâ ôñé âìéìä',
+popup_statusbar : 'äöâ ùåøú îöá',
+popup_toolbar : 'äöâ ñøâìé ëìåí',
+popup_menubar : 'äöâ àú ùåøú äúôøéèéí',
+popup_location : 'äöâ àú ùåøú äëúåáú',
+popup_resizable : 'çìåï ùðéúï ìùðåú àú âåãìå',
+popup_dependent : 'úìåé (Mozilla/Firefox áìáã)',
+popup_size : 'âåãì',
+popup_position : 'îé÷åí (X/Y)',
+id : 'Id',
+style: 'ñâðåï',
+classes : 'Classéí',
+target_name : 'ùí éòã',
+langdir : 'ëéååï ùôä',
+target_langcode : 'ùôú éòã',
+langcode : '÷åã ùôä',
+encoding : '÷éãåã úååéí ùì äéòã',
+mime : 'ñåâ MIME ùì äéòã',
+rel : 'éçñ ùì ãó ìéòã',
+rev : 'éçñ ùì éòã ìãó',
+tabindex : 'ñãø èàáéí',
+accesskey : 'î÷ù âéùä',
+ltr : 'ùîàì ìéîéï',
+rtl : 'éîéï ìùîàì'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/advlink/langs/hu.js b/tinyMCE/plugins/advlink/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..75f6beb5f83258c5c3714ac54c50498a067d47ce
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/hu.js
@@ -0,0 +1,46 @@
+// HU lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Általános',
+popup_tab : 'Popup',
+events_tab : 'Események',
+advanced_tab : 'Haladó',
+general_props : 'Általános beállítások',
+popup_props : 'Popup beállítások',
+event_props : 'Események',
+advanced_props : 'Haladó beállítások',
+popup_opts : 'Opciók',
+anchor_names : 'Horgonyok',
+target_same : 'Megnyitás ebben az ablakban / keretben',
+target_parent : 'Megnyitás a szülõ ablakban / keretben',
+target_top : 'Megnyitás felsõ keretben (minden keretet lecserél)',
+target_blank : 'Megnyitás új ablakban',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Ablak név',
+popup_return : '\'return false\' beszúrása',
+popup_scrollbars : 'Görgetõsávok megjelenítése',
+popup_statusbar : 'Állapotsor megjelenítése',
+popup_toolbar : 'Eszköztárak megjelenítése',
+popup_menubar : 'Menüsor megjelenítése',
+popup_location : 'Címsáv megjelenítése',
+popup_resizable : 'Ablak átméretezhetõvé tétele',
+popup_dependent : 'Függõ (csak Mozilla/Firefox)',
+popup_size : 'Méret',
+popup_position : 'Pozíció (X/Y)',
+id : 'Azonosító',
+style: 'Stílus',
+classes : 'Osztályok',
+target_name : 'Cél neve',
+langdir : 'Szöveg pozíció',
+target_langcode : 'Cél szöveg',
+langcode : 'Szöveg kód',
+encoding : 'Cél karakter kódolás',
+mime : 'Cél MIME típus',
+rel : 'Oldal kapcsolata a céllal',
+rev : 'Cél kapcsolat az oldallal',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Balról jobbra',
+rtl : 'Jobbról balra'
+});
diff --git a/tinyMCE/plugins/advlink/langs/is.js b/tinyMCE/plugins/advlink/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..3350e2b0994d874b5ffaf9f5598baa324cdd8874
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/is.js
@@ -0,0 +1,46 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Almennt',
+popup_tab : 'Sprettigluggi',
+events_tab : 'Atbur&eth;ir',
+advanced_tab : 'S&eacute;rstillingar',
+general_props : 'Almennar stillingar',
+popup_props : 'Stillingar sprettiglugga',
+event_props : 'Atbur&eth;ir',
+advanced_props : 'S&eacute;rstillingar',
+popup_opts : 'Valkostir',
+anchor_names : 'Akkeri',
+target_same : 'Opna &iacute; &thorn;essum glugga / ramma',
+target_parent : 'Opna &iacute; glugga / ramma foreldris',
+target_top : 'Opna í efsta ramma (kemur í sta&eth; allra ramma)',
+target_blank : 'Opna &iacute; n&yacute;jum glugga',
+popup : 'Javascript sprettigluggi',
+popup_url : 'Sl&oacute;&eth; sprettiglugga',
+popup_name : 'Nafn glugga',
+popup_return : 'Setja \'return false\'',
+popup_scrollbars : 'S&yacute;na skrunsl&aacute;r',
+popup_statusbar : 'S&yacute;na st&ouml;&eth;ustiku',
+popup_toolbar : 'S&yacute;na t&oacute;lastiku',
+popup_menubar : 'S&yacute;na valstiku',
+popup_location : 'S&yacute;na sl&oacute;&eth;arstiku',
+popup_resizable : 'Leyfa glugga a&eth; breyta st&aelig;r&eth;',
+popup_dependent : 'H&aacute;&eth;ur (eing&ouml;ngu Mozilla/Firefox)',
+popup_size : 'St&aelig;r&eth;',
+popup_position : 'Sta&eth;setning (X/Y)',
+id : 'Id',
+style: 'St&iacute;ll',
+classes : 'Klassi',
+target_name : 'Nafn tengils',
+langdir : 'Rith&aacute;ttur tungum&aacute;ls',
+target_langcode : 'Tungum&aacute; tengils',
+langcode : 'Tungum&aacute;lskenni',
+encoding : 'Textak&oacute;&eth;un tengils',
+mime : 'MIME-tegund tengils',
+rel : 'Tengsl s&iacute;&eth;u til tengils',
+rev : 'Tengsl tengils til s&iacute;&eth;u',
+tabindex : 'R&ouml;&eth;un',
+accesskey : 'Fl&yacute;tilykill',
+ltr : 'Vinstri til h&aelig;gri',
+rtl : 'H&aelig;gri til vinstri'
+});
diff --git a/tinyMCE/plugins/advlink/langs/it.js b/tinyMCE/plugins/advlink/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..36c24d11f1845ac70ce76ee37282de71905dbf70
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/it.js
@@ -0,0 +1,52 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Generale',
+popup_tab : 'Popup',
+events_tab : 'Eventi',
+advanced_tab : 'Avanzate',
+general_props : 'Propriet&agrave; generali',
+popup_props : 'Propriet&agrave; del popup',
+event_props : 'Eventi',
+advanced_props : 'Propriet&agrave; avanzate',
+popup_opts : 'Opzioni',
+anchor_names : 'Ancore',
+target_same : 'Apri nella stessa finestra o frame',
+target_parent : 'Apri nella finestra o nel frame superiori',
+target_top : 'Apri nel frame principale (occupa tutta la finestra)',
+target_blank : 'Apri in una nuova finestra',
+popup : 'Popup Javascript',
+popup_url : 'URL del popup',
+popup_name : 'Nome della finestra',
+popup_return : 'Inserisci \'return false\'',
+popup_scrollbars : 'Mostra le barre di scorrimento',
+popup_statusbar : 'Mostra la barra di stato',
+popup_toolbar : 'Mostra la barra degli strumenti',
+popup_menubar : 'Mostra la barra dei menu',
+popup_location : 'Mostra la barra degli indirizzi',
+popup_resizable : 'Permetti di ridimensionare la finestra',
+popup_dependent : 'Dipendente (solo Mozilla/Firefox)',
+popup_size : 'Dimensioni',
+popup_position : 'Posizione (X/Y)',
+id : 'Id',
+style: 'Stile',
+classes : 'Classi',
+target_name : 'Nome della destinazione',
+langdir : 'Direzione del testo',
+target_langcode : 'Codifica lingua destinazione',
+langcode : 'Codifica lingua',
+encoding : 'Codifica caratteri destinazione',
+mime : 'Tipo MIME destinazione',
+rel : 'Relazione pagina-destinazione',
+rev : 'Relazione destinazione-pagina',
+tabindex : 'Indice TAB',
+accesskey : 'Tasto di accesso',
+ltr : 'Da sinistra a destra',
+rtl : 'Da destra a sinistra'
+});
diff --git a/tinyMCE/plugins/advlink/langs/ja.js b/tinyMCE/plugins/advlink/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..c84f0dd8ac78d903f90584de97e3c0c40d09d3b2
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ja.js
@@ -0,0 +1,46 @@
+// JA lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : '全般',
+popup_tab : 'ポップアップ',
+events_tab : 'イベント',
+advanced_tab : '詳細',
+general_props : '全般',
+popup_props : 'ポップアップ',
+event_props : 'イベント',
+advanced_props : '詳細',
+popup_opts : 'オプション',
+anchor_names : 'しおり',
+target_same : '同じウィンドウで開く',
+target_parent : '親ウィンドウで開く',
+target_top : 'トップウィンドウで開く',
+target_blank : '新しいウィンドウで開く',
+popup : 'Javascriptポップアップを使用する',
+popup_url : 'URL',
+popup_name : 'ウィンドウのタイトル',
+popup_return : '\'return false\'を挿入',
+popup_scrollbars : 'スクロールバーを表示する',
+popup_statusbar : 'ステータスバーを表示する',
+popup_toolbar : 'ツールバーを表示する',
+popup_menubar : 'メニューバーを表示する',
+popup_location : 'アドレスバーを表示する',
+popup_resizable : '大きさを変更可能なウィンドウとする',
+popup_dependent : '親ウィンドウと連動する(Mozilla/Firefoxのみ)',
+popup_size : '大きさ',
+popup_position : '位置(X/Y)',
+id : 'ID',
+style: 'スタイル',
+classes : 'クラス',
+target_name : '表示先のウィンドウ',
+langdir : '表示の方向',
+target_langcode : '表示先の言語',
+langcode : '言語',
+encoding : '文字コード',
+mime : '表示先のMIMEタイプ',
+rel : 'このページから表示先への関連',
+rev : '表示先からこのページへの関連',
+tabindex : 'タブ順序',
+accesskey : 'ショートカットキー',
+ltr : '左から右へ',
+rtl : '右から左へ'
+});
diff --git a/tinyMCE/plugins/advlink/langs/ja_euc-jp.js b/tinyMCE/plugins/advlink/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..7920db1c035ef68279c53b9aae9f9714b0477a69
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ja_euc-jp.js
@@ -0,0 +1,46 @@
+// ÆüËܸì euc lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : '°ìÈÌ',
+popup_tab : '¥Ý¥Ã¥×¥¢¥Ã¥×',
+events_tab : '¥¤¥Ù¥ó¥È',
+advanced_tab : '¾ÜºÙ',
+general_props : '°ìÈ̤Υץí¥Ñ¥Æ¥£',
+popup_props : '¥Ý¥Ã¥×¥¢¥Ã¥×¤Î¥×¥í¥Ñ¥Æ¥£',
+event_props : '¥¤¥Ù¥ó¥È',
+advanced_props : '¾ÜºÙ¤Î¥×¥í¥Ñ¥Æ¥£',
+popup_opts : 'ÁªÂò',
+anchor_names : '¥¢¥ó¥«¡¼',
+target_same : '¤³¤Î¥¦¥¤¥ó¥É¥¦¤Ç³«¤¯',
+target_parent : '¿Æ¥¦¥¤¥ó¥É¥¦¤Ç³«¤¯',
+target_top : '¾å¤Î¥Õ¥ì¡¼¥à¤Ç³«¤¯',
+target_blank : '¿·¥¦¥¤¥ó¥É¥¦¤Ç³«¤¯',
+popup : 'Javascript ¥Ý¥Ã¥×¥¢¥Ã¥×',
+popup_url : '¥Ý¥Ã¥×¥¢¥Ã¥× URL',
+popup_name : '¥¦¥¤¥ó¥É¥¦Ì¾',
+popup_return : 'ÁÞÆþ \'return false\'',
+popup_scrollbars : '¥¹¥¯¥í¡¼¥ë¥Ð¡¼¤òɽ¼¨',
+popup_statusbar : '¥¹¥Æ¡¼¥¿¥¹¥Ð¡¼¤òɽ¼¨',
+popup_toolbar : '¥Ä¡¼¥ë¥Ð¡¼¤òɽ¼¨',
+popup_menubar : '¥á¥Ë¥å¡¼¥Ð¡¼¤òɽ¼¨',
+popup_location : '¥¢¥É¥ì¥¹¥Ð¡¼¤òɽ¼¨',
+popup_resizable : '¥¦¥¤¥ó¥É¥¦¤òÄ´À°²Ä¤Ë¤¹¤ë',
+popup_dependent : 'Íê¤ê (Mozilla/Firefox ¤Î¤ß)',
+popup_size : '¥µ¥¤¥º',
+popup_position : '°ÌÃÖ (X/Y)',
+id : 'Id',
+style: '¥¹¥¿¥¤¥ë',
+classes : '¥¯¥é¥¹',
+target_name : '¥¿¡¼¥²¥Ã¥È̾',
+langdir : '¸ÀÍդθþ¤­',
+target_langcode : '¥¿¡¼¥²¥Ã¥È¤Î¸ÀÍÕ',
+langcode : '¸ÀÍդΥ³¡¼¥É',
+encoding : '¥¿¡¼¥²¥Ã¥È¤Îʸ»ú¥¨¥ó¥³¡¼¥É',
+mime : '¥¿¡¼¥²¥Ã¥È MIME ¥¿¥¤¥×',
+rel : '¥Ú¡¼¥¸¢ª¥¿¡¼¥²¥Ã¥È´Ø·¸',
+rev : '¥¿¡¼¥²¥Ã¥È¢ª¥Ú¡¼¥¸´Ø·¸',
+tabindex : '¥¿¥Ã¥Ö»Ø¿ô',
+accesskey : '¥¢¥¯¥»¥¹¥­¡¼',
+ltr : 'º¸¤«¤é±¦¤Ø',
+rtl : '±¦¤«¤éº¸¤Ø'
+});
diff --git a/tinyMCE/plugins/advlink/langs/ja_shift_jis.js b/tinyMCE/plugins/advlink/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..8378a0f6c52d1100a69a250c61d8591b6b5a778f
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ja_shift_jis.js
@@ -0,0 +1,46 @@
+// “ú–{Œê shift_jis lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'ˆê”Ê',
+popup_tab : 'ƒ|ƒbƒvƒAƒbƒv',
+events_tab : 'ƒCƒxƒ“ƒg',
+advanced_tab : 'Ú×',
+general_props : 'ˆê”ʂ̃vƒƒpƒeƒB',
+popup_props : 'ƒ|ƒbƒvƒAƒbƒv‚̃vƒƒpƒeƒB',
+event_props : 'ƒCƒxƒ“ƒg',
+advanced_props : 'Ú×‚̃vƒƒpƒeƒB',
+popup_opts : '‘I‘ð',
+anchor_names : 'ƒAƒ“ƒJ[',
+target_same : '‚±‚̃EƒCƒ“ƒhƒE‚ÅŠJ‚­',
+target_parent : 'eƒEƒCƒ“ƒhƒE‚ÅŠJ‚­',
+target_top : 'ã‚̃tƒŒ[ƒ€‚ÅŠJ‚­',
+target_blank : 'VƒEƒCƒ“ƒhƒE‚ÅŠJ‚­',
+popup : 'Javascript ƒ|ƒbƒvƒAƒbƒv',
+popup_url : 'ƒ|ƒbƒvƒAƒbƒv URL',
+popup_name : 'ƒEƒCƒ“ƒhƒE–¼',
+popup_return : '‘}“ü \'return false\'',
+popup_scrollbars : 'ƒXƒNƒ[ƒ‹ƒo[‚ð•\ަ',
+popup_statusbar : 'ƒXƒe[ƒ^ƒXƒo[‚ð•\ަ',
+popup_toolbar : 'ƒc[ƒ‹ƒo[‚ð•\ަ',
+popup_menubar : 'ƒƒjƒ…[ƒo[‚ð•\ަ',
+popup_location : 'ƒAƒhƒŒƒXƒo[‚ð•\ަ',
+popup_resizable : 'ƒEƒCƒ“ƒhƒE‚𒲐®‰Â‚É‚·‚é',
+popup_dependent : '—Š‚è (Mozilla/Firefox ‚Ì‚Ý)',
+popup_size : 'ƒTƒCƒY',
+popup_position : 'ˆÊ’u (X/Y)',
+id : 'Id',
+style: 'ƒXƒ^ƒCƒ‹',
+classes : 'ƒNƒ‰ƒX',
+target_name : 'ƒ^[ƒQƒbƒg–¼',
+langdir : 'Œ¾—t‚ÌŒü‚«',
+target_langcode : 'ƒ^[ƒQƒbƒg‚ÌŒ¾—t',
+langcode : 'Œ¾—t‚̃R[ƒh',
+encoding : 'ƒ^[ƒQƒbƒg‚Ì•¶ŽšƒGƒ“ƒR[ƒh',
+mime : 'ƒ^[ƒQƒbƒg MIME ƒ^ƒCƒv',
+rel : 'ƒy[ƒW¨ƒ^[ƒQƒbƒgŠÖŒW',
+rev : 'ƒ^[ƒQƒbƒg¨ƒy[ƒWŠÖŒW',
+tabindex : 'ƒ^ƒbƒuŽw”',
+accesskey : 'ƒAƒNƒZƒXƒL[',
+ltr : '¶‚©‚ç‰E‚Ö',
+rtl : '‰E‚©‚獶‚Ö'
+});
diff --git a/tinyMCE/plugins/advlink/langs/ja_utf-8.js b/tinyMCE/plugins/advlink/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..5bcdfd8e1b100a243cb97df4cbe0fd76d5f521fe
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ja_utf-8.js
@@ -0,0 +1,46 @@
+// 日本語 utf-8 lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : '一般',
+popup_tab : 'ポップアップ',
+events_tab : 'イベント',
+advanced_tab : '詳細',
+general_props : '一般のプロパティ',
+popup_props : 'ポップアップのプロパティ',
+event_props : 'イベント',
+advanced_props : '詳細のプロパティ',
+popup_opts : '選択',
+anchor_names : 'アンカー',
+target_same : 'このウインドウで開く',
+target_parent : '親ウインドウで開く',
+target_top : '上のフレームで開く',
+target_blank : '新ウインドウで開く',
+popup : 'Javascript ポップアップ',
+popup_url : 'ポップアップ URL',
+popup_name : 'ウインドウ名',
+popup_return : '挿入 \'return false\'',
+popup_scrollbars : 'スクロールバーを表示',
+popup_statusbar : 'ステータスバーを表示',
+popup_toolbar : 'ツールバーを表示',
+popup_menubar : 'メニューバーを表示',
+popup_location : 'アドレスバーを表示',
+popup_resizable : 'ウインドウを調整可にする',
+popup_dependent : '頼り (Mozilla/Firefox のみ)',
+popup_size : 'サイズ',
+popup_position : '位置 (X/Y)',
+id : 'Id',
+style: 'スタイル',
+classes : 'クラス',
+target_name : 'ターゲット名',
+langdir : '言葉の向き',
+target_langcode : 'ターゲットの言葉',
+langcode : '言葉のコード',
+encoding : 'ターゲットの文字エンコード',
+mime : 'ターゲット MIME タイプ',
+rel : 'ページ→ターゲット関係',
+rev : 'ターゲット→ページ関係',
+tabindex : 'タッブ指数',
+accesskey : 'アクセスキー',
+ltr : '左から右へ',
+rtl : '右から左へ'
+});
diff --git a/tinyMCE/plugins/advlink/langs/ko.js b/tinyMCE/plugins/advlink/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..bcd48c04e019ecdf6b944c9149fa097d6dc52114
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ko.js
@@ -0,0 +1,21 @@
+// KO lang variables
+
+tinyMCE.addToLang('',{
+insert_link_target_same : '°°Àº â¿¡¼­ ¸µ&Aring;©/ÇÁ·¹ÀÓ ¿­±â',
+insert_link_target_parent : 'ºÎ¸ð â¿¡¼­ ¸µ&Aring;©/ÇÁ·¹ÀÓ ¿­±â',
+insert_link_target_top : 'TOP ÇÁ·¹ÀÓ¿¡¼­ ¿­±â (¸ðµç ÇÁ·¹ÀÓÀ» ´ëü)',
+insert_link_target_blank : '»õ â¿¡¼­ ¿­±â',
+insert_link_target_named : '»õ â¿¡¼­ ¿­±â',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'ÆË¾÷ URL',
+insert_link_popup_name : 'â À̸§',
+insert_link_popup_return : '\'return false\' ³&Ouml;±â',
+insert_link_popup_scrollbars : '½º&Aring;©·Ñ¹Ù¸¦ º¸¿©ÁÜ',
+insert_link_popup_statusbar : '»ó&Aring;ÂâÀ» º¸¿©ÁÜ',
+insert_link_popup_toolbar : '&Aring;ø¹Ù¸¦ º¸¿©ÁÜ',
+insert_link_popup_menubar : '¸Þ´º¹Ù¸¦ º¸¿©ÁÜ',
+insert_link_popup_location : 'À§&Auml;¡ Ç¥½ÃÁÙÀ» º¸¿©ÁÜ',
+insert_link_popup_resizable : '&Aring;©±â Á¶Àý °¡´ÉÇÑ À©µµ¿ì »ý¼º',
+insert_link_popup_size : '&Aring;©±â',
+insert_link_popup_position : 'À§&Auml;¡ (X/Y)'
+});
diff --git a/tinyMCE/plugins/advlink/langs/nb.js b/tinyMCE/plugins/advlink/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..181c54571f62632002accc21e1b9ffa8c0d2f730
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/nb.js
@@ -0,0 +1,47 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Generelle innstillinger',
+popup_tab : 'Popup',
+events_tab : 'Hendelser',
+advanced_tab : 'Avanserte innstillinger',
+general_props : 'Generelle innstillinger',
+popup_props : 'Popup innstillinger',
+event_props : 'Hendelser',
+advanced_props : 'Generelle innstillinger',
+popup_opts : 'Innstillinger',
+anchor_names : 'Bokmerke',
+target_same : '&Aring;pne i samme vindu / ramme',
+target_parent : '&Aring;pne i underliggende vindu / ramme',
+target_top : '&Aring;pne i topprammen (erstatter alle rammer)',
+target_blank : '&Aring;pne i et nytt vindu',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Vindu navn',
+popup_return : 'Sett inn \'return false\'',
+popup_scrollbars : 'Vis scrollbars',
+popup_statusbar : 'Vis status bar',
+popup_toolbar : 'Vis toolbars',
+popup_menubar : 'Vis meny bar',
+popup_location : 'Vis location bar',
+popup_resizable : 'Gj&oslash;r vinduet skalerbart',
+popup_dependent : 'Avhengig vindu (Bare i Mozilla/Firefox)',
+popup_size : 'St&oslash;rrelse',
+popup_position : 'Posisjon (X/Y)',
+id : 'Id',
+style: 'Stil',
+classes : 'CSS klasser',
+target_name : 'M&aring;l navn',
+langdir : 'Skrift retning',
+target_langcode : 'M&aring;l spr&aring;k',
+langcode : 'Spr&aring;k kode',
+encoding : 'Tegn konvertering',
+mime : 'M&aring;lets MIME type',
+rel : 'Relasjon side til m&aring;l',
+rev : 'Relasjon m&aring;l til side',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Venstre mot h&oslash;yre',
+rtl : 'H&oslash;yre mot venstre'
+});
+
diff --git a/tinyMCE/plugins/advlink/langs/nl.js b/tinyMCE/plugins/advlink/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..d4819ed186ec5359b7f70ebaa7bb68b2b71d7bcb
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/nl.js
@@ -0,0 +1,46 @@
+// NL lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Algemeen',
+popup_tab : 'Popup',
+events_tab : 'Gebeurtenissen',
+advanced_tab : 'Geavanceerd',
+general_props : 'Algemene eigenschappen',
+popup_props : 'Popup eigenschappen',
+event_props : 'Gebeurtenissen',
+advanced_props : 'Geavanceerde eigenschappen',
+popup_opts : 'Opties',
+anchor_names : 'Bladwijzers',
+target_same : 'Openen in dit venster/frame',
+target_parent : 'Openen in hgerliggend frame',
+target_top : 'Openen in bovenste frame (vervangt alle frames)',
+target_blank : 'Openen in nieuw venster',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Vensternaam',
+popup_return : 'Voeg \'return false\' toe',
+popup_scrollbars : 'Toon scrollbalken',
+popup_statusbar : 'Toon statusbalk',
+popup_toolbar : 'Toon werkbalk',
+popup_menubar : 'Toon menubalk',
+popup_location : 'Toon adresbalk',
+popup_resizable : 'Maak venster schaalbaar',
+popup_dependent : 'Afhankelijk (Mozilla/Firefox only)',
+popup_size : 'Afmetingen',
+popup_position : 'Positie (x/y)',
+id : 'Id',
+style: 'Stijl',
+classes : 'Stijlen',
+target_name : 'Naam doelframe',
+langdir : 'Taalrichting',
+target_langcode : 'Taal van doel',
+langcode : 'Taalcode',
+encoding : 'Doel character encoding',
+mime : 'Doel MIME type',
+rel : 'Relatie van pagina tot doel',
+rev : 'Relatie van doel tot pagina',
+tabindex : 'Tabindex',
+accesskey : 'Toegangstoets',
+ltr : 'Links naar rechts',
+rtl : 'Rechts naar links'
+});
diff --git a/tinyMCE/plugins/advlink/langs/nn.js b/tinyMCE/plugins/advlink/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..399f1d194a09718dc8f96e5e90cbf488fce99bc1
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/nn.js
@@ -0,0 +1,46 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Generelle innstillinger',
+popup_tab : 'Popup',
+events_tab : 'Hendelser',
+advanced_tab : 'Avanserte innstillinger',
+general_props : 'Generelle innstillinger',
+popup_props : 'Popup innstillinger',
+event_props : 'Hendelser',
+advanced_props : 'Generelle innstillinger',
+popup_opts : 'Innstillinger',
+anchor_names : 'Bokmerke',
+target_same : '&Aring;pne i samme vindauge / ramme',
+target_parent : '&Aring;pne i underliggende vindauge / ramme',
+target_top : '&Aring;pne i topprammen (erstatter alle rammer)',
+target_blank : '&Aring;pne i eit nytt vindauge',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Vindauge navn',
+popup_return : 'Sett inn \'return false\'',
+popup_scrollbars : 'Vis scrollbars',
+popup_statusbar : 'Vis status bar',
+popup_toolbar : 'Vis toolbars',
+popup_menubar : 'Vis meny bar',
+popup_location : 'Vis location bar',
+popup_resizable : 'Gjer vindauget skalerbart',
+popup_dependent : 'Avhengig vindauge (Bare i Mozilla/Firefox)',
+popup_size : 'St&oslash;rrelse',
+popup_position : 'Posisjon (X/Y)',
+id : 'Id',
+style: 'Stil',
+classes : 'CSS klasser',
+target_name : 'M&aring;l navn',
+langdir : 'Skrift retning',
+target_langcode : 'M&aring;l spr&aring;k',
+langcode : 'Spr&aring;k kode',
+encoding : 'Tekken konvertering',
+mime : 'M&aring;lets MIME type',
+rel : 'Relasjon side til m&aring;l',
+rev : 'Relasjon m&aring;l til side',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Venstre mot h&oslash;gre',
+rtl : 'H&oslash;gre mot venstre'
+});
diff --git a/tinyMCE/plugins/advlink/langs/pl.js b/tinyMCE/plugins/advlink/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..9795ee63743574b31ad52b459d6e20b60a4f0214
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/pl.js
@@ -0,0 +1,49 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+// fixed by lemiel 14.11.2005
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Główne ustawienia',
+popup_tab : 'Okienko popup',
+events_tab : 'Zdarzenia',
+advanced_tab : 'Zaawansowane',
+general_props : 'Główne',
+popup_props : 'Ustawienia popup',
+event_props : 'Zdarzenia',
+advanced_props : 'Zaawansowane opcje',
+popup_opts : 'Opcje',
+anchor_names : 'Kotwice',
+target_same : 'Otwórz w tym oknie / ramce',
+target_parent : 'Otwórz w poprzednim oknie / ramce',
+target_top : 'Otwórz w głównej ramce (zamienia wszystkie ramki)',
+target_blank : 'Otwórz w nowym oknie',
+popup : 'Okienko popup Javascript',
+popup_url : 'URL dla popup',
+popup_name : 'Nazwa okna',
+popup_return : 'Wstaw \'return false\'',
+popup_scrollbars : 'Pokaż paski przewijania',
+popup_statusbar : 'Pokaż pasek statusu',
+popup_toolbar : 'Pokaż pasek narzędzi',
+popup_menubar : 'Pokaż pasek menu',
+popup_location : 'Pokaż pasek adresu',
+popup_resizable : 'Pozwalaj na zmianę wielkości okna',
+popup_dependent : 'Zależne (tylko Mozilla/Firefox)',
+popup_size : 'Rozmiar',
+popup_position : 'Pozycja (X/Y)',
+id : 'Id',
+style: 'Styl',
+classes : 'Klasa',
+target_name : 'Nazwa celu',
+langdir : 'Kierunek tekstu',
+target_langcode : 'Język celu',
+langcode : 'Kod języka',
+encoding : 'Kodowanie znaków celu',
+mime : 'Typ MIME celu',
+rel : 'Zależność strony do celu',
+rev : 'Zależność celu do strony',
+tabindex : 'Indeks tabeli',
+accesskey : 'Klawisz dostępu',
+ltr : 'Lewy do prawego',
+rtl : 'Prawy do lewego'
+});
diff --git a/tinyMCE/plugins/advlink/langs/pt_br.js b/tinyMCE/plugins/advlink/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..aa2787b903f70292a5b3cb81d0dafaeb8b15bee2
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/pt_br.js
@@ -0,0 +1,54 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('advlink',{
+general_tab : 'Geral',
+popup_tab : 'Popup',
+events_tab : 'Eventos',
+advanced_tab : 'Avançado',
+general_props : 'Propriedades gerais',
+popup_props : 'Propriedades do popup',
+event_props : 'Eventos',
+advanced_props : 'Propriedades avançadas',
+popup_opts : 'Opções',
+anchor_names : 'âncoras',
+target_same : 'Abrir nesta janela/frame',
+target_parent : 'Abrir na janela/frame',
+target_top : 'Abrir na janela superior (repondo todas as frames)',
+target_blank : 'Abrir em uma nova janela',
+popup : 'Javascript popup',
+popup_url : 'Popup de uma URL',
+popup_name : 'Nome da janela',
+popup_return : 'Inserir \'retorna falso\'',
+popup_scrollbars : 'Mostrar barra de rolagem',
+popup_statusbar : 'Mostrar barra de status',
+popup_toolbar : 'Mostrar barra de ferramentas',
+popup_menubar : 'Mostrar barra do menu',
+popup_location : 'Mostrar barra de endereço',
+popup_resizable : 'Permite redimensionamento da janela',
+popup_dependent : 'Dependente (somente para Mozilla/Firefox)',
+popup_size : 'Tamanho',
+popup_position : 'Posição (X/Y)',
+id : 'Id',
+style: 'Estilo',
+classes : 'Classes',
+target_name : 'Nome do destino',
+langdir : 'Direção do texto',
+target_langcode : 'Idioma do destino',
+langcode : 'Código do idioma',
+encoding : 'Tipo de codifição de caractere de destino',
+mime : 'Tipo de MIME do destino',
+rel : 'Relacionamento da página com o destino',
+rev : 'Relacionamento do destino com a página',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Esquerda para direita',
+rtl : 'Direita para esquerda'
+});
diff --git a/tinyMCE/plugins/advlink/langs/ro.js b/tinyMCE/plugins/advlink/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..d91c2f08a336e253805eab442baee43eba3f7eab
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ro.js
@@ -0,0 +1,46 @@
+// RO lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'General',
+popup_tab : 'Popup',
+events_tab : 'Evenimente',
+advanced_tab : 'Avanasat',
+general_props : 'Propriet&#259;&#355;i generale',
+popup_props : 'Proprien&#259;&#355;i popup',
+event_props : 'Evenimente',
+advanced_props : 'Propriet&#259;&#355;i avansate',
+popup_opts : 'Op&#355;iuni',
+anchor_names : 'Ancore',
+target_same : 'Deschide &#238;n aceea&#351;i fereastr&#259; / frame',
+target_parent : 'Deschide &#238;n fereastra / frame-ul p&#259;rinte',
+target_top : 'Deschide &#238;n frame-ul de deasupra (&#238;nlocuie&#351;te toate frame-urile)',
+target_blank : 'Deschide &#238;n fereastr&#259; nou&#259;',
+popup : 'Popup javascript',
+popup_url : 'URL popup',
+popup_name : 'Nume fereastr&#259;',
+popup_return : 'Insereaz&#259; \'return false\'',
+popup_scrollbars : 'Arat&#259; barele de derulare',
+popup_statusbar : 'Arat&#259; bara de stare',
+popup_toolbar : 'Arat&#259; bare unelte',
+popup_menubar : 'Arata bara de meniuri',
+popup_location : 'Arat&#259; bara de adrese',
+popup_resizable : 'F&#259; fereastra redimensionabil&#259;',
+popup_dependent : 'Dependent (doar Mozilla/Firefox)',
+popup_size : 'Dimensiune',
+popup_position : 'Pozi&#355;ie (X/Y)',
+id : 'Id',
+style: 'Stil',
+classes : 'Clase',
+target_name : 'Nume &#355;int&#259;',
+langdir : 'Direc&#355;ie limb&#259;',
+target_langcode : 'Limba &#355;int&#259;',
+langcode : 'Cod limb&#259;',
+encoding : 'Codare caractere &#355;int&#259;',
+mime : 'Tipul MIME &#355;int&#259;',
+rel : 'Rela&#355;ia pagin&#259; c&#259;tre &#355;int&#259;',
+rev : 'Rela&#355;ia &#355;int&#259; c&#259;tre pagin&#259;',
+tabindex : 'Index etichet&#259;',
+accesskey : 'Cheie de acces',
+ltr : 'St&#226;nga la dreapta',
+rtl : 'Dreapta la st&#238;nga'
+});
diff --git a/tinyMCE/plugins/advlink/langs/ru.js b/tinyMCE/plugins/advlink/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c07d93a130a04d29384a1e551dcd1656ab99799
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ru.js
@@ -0,0 +1,46 @@
+// RU lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Основные',
+popup_tab : 'Всплывающие',
+events_tab : 'События',
+advanced_tab : 'Расширенные',
+general_props : 'Основные свойства',
+popup_props : 'Свойства всплывющих элементов',
+event_props : 'События',
+advanced_props : 'Расширенные настройки',
+popup_opts : 'Опции',
+anchor_names : 'Якоря',
+target_same : 'Открывать в этом окне / фрейме',
+target_parent : 'Открывать в родительском окне / фрейме',
+target_top : 'Открывать в верхнем фрейме (заменять все фреймы)',
+target_blank : 'Открывать в новом окне',
+popup : 'Всплывающее окно Javascript',
+popup_url : 'Всплывающий URL',
+popup_name : 'Имя окна',
+popup_return : 'Вставить \'return false\'',
+popup_scrollbars : 'Показывать линейки прокрутки',
+popup_statusbar : 'Показывать строку состояния',
+popup_toolbar : 'Показывать панели инструментов',
+popup_menubar : 'Показывать панель меню',
+popup_location : 'Показывать панель расположения',
+popup_resizable : 'Позволить изменять размеры окна',
+popup_dependent : 'Зависимость (только Mozilla/Firefox)',
+popup_size : 'Размер',
+popup_position : 'Расположение (X/Y)',
+id : 'Id',
+style: 'Стиль',
+classes : 'Классы',
+target_name : 'Имя цели',
+langdir : 'Направление письма в языке',
+target_langcode : 'Целевой язык',
+langcode : 'Код языка',
+encoding : 'Целевая кодировка',
+mime : 'Целевой MIME тип',
+rel : 'Зависимость страница -> цель',
+rev : 'Зависимость цель -> страница',
+tabindex : 'Индекс таблицы',
+accesskey : 'Ключ доступа',
+ltr : 'Слева направо',
+rtl : 'Справа налево'
+});
diff --git a/tinyMCE/plugins/advlink/langs/ru_CP1251.js b/tinyMCE/plugins/advlink/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..32e0f4689daa302217d8f69cf3013ddd50b04895
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ru_CP1251.js
@@ -0,0 +1,46 @@
+// RU lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Îñíîâíûå',
+popup_tab : 'Âñïëûâàþùèå',
+events_tab : 'Ñîáûòèÿ',
+advanced_tab : 'Ðàñøèðåííûå',
+general_props : 'Îñíîâíûå ñâîéñòâà',
+popup_props : 'Ñâîéñòâà âñïëûâþùèõ ýëåìåíòîâ',
+event_props : 'Ñîáûòèÿ',
+advanced_props : 'Ðàñøèðåííûå íàñòðîéêè',
+popup_opts : 'Îïöèè',
+anchor_names : 'ßêîðÿ',
+target_same : 'Îòêðûâàòü â ýòîì îêíå / ôðåéìå',
+target_parent : 'Îòêðûâàòü â ðîäèòåëüñêîì îêíå / ôðåéìå',
+target_top : 'Îòêðûâàòü â âåðõíåì ôðåéìå (çàìåíÿòü âñå ôðåéìû)',
+target_blank : 'Îòêðûâàòü â íîâîì îêíå',
+popup : 'Âñïëûâàþùåå îêíî Javascript',
+popup_url : 'Âñïëûâàþùèé URL',
+popup_name : 'Èìÿ îêíà',
+popup_return : 'Âñòàâèòü \'return false\'',
+popup_scrollbars : 'Ïîêàçûâàòü ëèíåéêè ïðîêðóòêè',
+popup_statusbar : 'Ïîêàçûâàòü ñòðîêó ñîñòîÿíèÿ',
+popup_toolbar : 'Ïîêàçûâàòü ïàíåëè èíñòðóìåíòîâ',
+popup_menubar : 'Ïîêàçûâàòü ïàíåëü ìåíþ',
+popup_location : 'Ïîêàçûâàòü ïàíåëü ðàñïîëîæåíèÿ',
+popup_resizable : 'Ïîçâîëèòü èçìåíÿòü ðàçìåðû îêíà',
+popup_dependent : 'Çàâèñèìîñòü (òîëüêî Mozilla/Firefox)',
+popup_size : 'Ðàçìåð',
+popup_position : 'Ðàñïîëîæåíèå (X/Y)',
+id : 'Id',
+style: 'Ñòèëü',
+classes : 'Êëàññû',
+target_name : 'Èìÿ öåëè',
+langdir : 'Íàïðàâëåíèå ïèñüìà â ÿçûêå',
+target_langcode : 'Öåëåâîé ÿçûê',
+langcode : 'Êîä ÿçûêà',
+encoding : 'Öåëåâàÿ êîäèðîâêà',
+mime : 'Öåëåâîé MIME òèï',
+rel : 'Çàâèñèìîñòü ñòðàíèöà -> öåëü',
+rev : 'Çàâèñèìîñòü öåëü -> ñòðàíèöà',
+tabindex : 'Èíäåêñ òàáëèöû',
+accesskey : 'Êëþ÷ äîñòóïà',
+ltr : 'Ñëåâà íàïðàâî',
+rtl : 'Ñïðàâà íàëåâî'
+});
diff --git a/tinyMCE/plugins/advlink/langs/ru_KOI8-R.js b/tinyMCE/plugins/advlink/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc04ecea7f39c41412ffc1ce7c8dca945b044828
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/ru_KOI8-R.js
@@ -0,0 +1,46 @@
+// RU lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'ïÓÎÏ×ÎÙÅ',
+popup_tab : '÷ÓÐÌÙ×ÁÀÝÉÅ',
+events_tab : 'óÏÂÙÔÉÑ',
+advanced_tab : 'òÁÓÛÉÒÅÎÎÙÅ',
+general_props : 'ïÓÎÏ×ÎÙÅ Ó×ÏÊÓÔ×Á',
+popup_props : 'ó×ÏÊÓÔ×Á ×ÓÐÌÙ×ÀÝÉÈ ÜÌÅÍÅÎÔÏ×',
+event_props : 'óÏÂÙÔÉÑ',
+advanced_props : 'òÁÓÛÉÒÅÎÎÙÅ ÎÁÓÔÒÏÊËÉ',
+popup_opts : 'ïÐÃÉÉ',
+anchor_names : 'ñËÏÒÑ',
+target_same : 'ïÔËÒÙ×ÁÔØ × ÜÔÏÍ ÏËÎÅ / ÆÒÅÊÍÅ',
+target_parent : 'ïÔËÒÙ×ÁÔØ × ÒÏÄÉÔÅÌØÓËÏÍ ÏËÎÅ / ÆÒÅÊÍÅ',
+target_top : 'ïÔËÒÙ×ÁÔØ × ×ÅÒÈÎÅÍ ÆÒÅÊÍÅ (ÚÁÍÅÎÑÔØ ×ÓÅ ÆÒÅÊÍÙ)',
+target_blank : 'ïÔËÒÙ×ÁÔØ × ÎÏ×ÏÍ ÏËÎÅ',
+popup : '÷ÓÐÌÙ×ÁÀÝÅÅ ÏËÎÏ Javascript',
+popup_url : '÷ÓÐÌÙ×ÁÀÝÉÊ URL',
+popup_name : 'éÍÑ ÏËÎÁ',
+popup_return : '÷ÓÔÁ×ÉÔØ \'return false\'',
+popup_scrollbars : 'ðÏËÁÚÙ×ÁÔØ ÌÉÎÅÊËÉ ÐÒÏËÒÕÔËÉ',
+popup_statusbar : 'ðÏËÁÚÙ×ÁÔØ ÓÔÒÏËÕ ÓÏÓÔÏÑÎÉÑ',
+popup_toolbar : 'ðÏËÁÚÙ×ÁÔØ ÐÁÎÅÌÉ ÉÎÓÔÒÕÍÅÎÔÏ×',
+popup_menubar : 'ðÏËÁÚÙ×ÁÔØ ÐÁÎÅÌØ ÍÅÎÀ',
+popup_location : 'ðÏËÁÚÙ×ÁÔØ ÐÁÎÅÌØ ÒÁÓÐÏÌÏÖÅÎÉÑ',
+popup_resizable : 'ðÏÚ×ÏÌÉÔØ ÉÚÍÅÎÑÔØ ÒÁÚÍÅÒÙ ÏËÎÁ',
+popup_dependent : 'úÁ×ÉÓÉÍÏÓÔØ (ÔÏÌØËÏ Mozilla/Firefox)',
+popup_size : 'òÁÚÍÅÒ',
+popup_position : 'òÁÓÐÏÌÏÖÅÎÉÅ (X/Y)',
+id : 'Id',
+style: 'óÔÉÌØ',
+classes : 'ëÌÁÓÓÙ',
+target_name : 'éÍÑ ÃÅÌÉ',
+langdir : 'îÁÐÒÁ×ÌÅÎÉÅ ÐÉÓØÍÁ × ÑÚÙËÅ',
+target_langcode : 'ãÅÌÅ×ÏÊ ÑÚÙË',
+langcode : 'ëÏÄ ÑÚÙËÁ',
+encoding : 'ãÅÌÅ×ÁÑ ËÏÄÉÒÏ×ËÁ',
+mime : 'ãÅÌÅ×ÏÊ MIME ÔÉÐ',
+rel : 'úÁ×ÉÓÉÍÏÓÔØ ÓÔÒÁÎÉÃÁ -> ÃÅÌØ',
+rev : 'úÁ×ÉÓÉÍÏÓÔØ ÃÅÌØ -> ÓÔÒÁÎÉÃÁ',
+tabindex : 'éÎÄÅËÓ ÔÁÂÌÉÃÙ',
+accesskey : 'ëÌÀÞ ÄÏÓÔÕÐÁ',
+ltr : 'óÌÅ×Á ÎÁÐÒÁ×Ï',
+rtl : 'óÐÒÁ×Á ÎÁÌÅ×Ï'
+});
diff --git a/tinyMCE/plugins/advlink/langs/si.js b/tinyMCE/plugins/advlink/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5bbf6fbc468fb67e4ba4f1a14f5fd222a98034b
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/si.js
@@ -0,0 +1,46 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Splo&#353;no',
+popup_tab : 'Popup okno',
+events_tab : 'Dogodki',
+advanced_tab : 'Napredno',
+general_props : 'Splo&#353;ne lastnosti',
+popup_props : 'Lastnosti popup okna',
+event_props : 'Lastnosti dogodkov',
+advanced_props : 'Napredne lastnosti',
+popup_opts : 'Mo&#382;nosti',
+anchor_names : 'Sidra',
+target_same : 'Odpri v tem oknu / okvirju',
+target_parent : 'Odpri v star&#353;evem oknu / okvirju',
+target_top : 'Odpri v najvi&#353;jem okvirju(nadomesti vse okvirje)',
+target_blank : 'Odpri v novem oknu',
+popup : 'Javascript popup okno',
+popup_url : 'URL naslov popup okna',
+popup_name : 'Ime okna',
+popup_return : 'Vstavi \'return false\'',
+popup_scrollbars : 'Poka&#382;i drsnike',
+popup_statusbar : 'Poka&#382;i statusno vrstico',
+popup_toolbar : 'Poka&#382;i orodno vrstico',
+popup_menubar : 'Poka&#382;i menu',
+popup_location : 'Poka&#382;i naslovno vrstico',
+popup_resizable : 'Naj se da oknu spreminjati velikost',
+popup_dependent : 'Odvisno okno (le v Mozilla/Firefox)',
+popup_size : 'Velikost',
+popup_position : 'Pozicija (X/Y)',
+id : 'Id',
+style: 'Stili',
+classes : 'Razredi',
+target_name : 'Ime tar&#269;e',
+langdir : 'Smer jezika',
+target_langcode : 'Jezik tar&#269;e',
+langcode : 'Koda jezika',
+encoding : 'Kodna tabela tar&#269;e',
+mime : 'MIME type tar&#269;e',
+rel : 'Razmerje strani do tar&#269;e',
+rev : 'Razmerje tar&#269;e do strani',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Od leve proti desni',
+rtl : 'Od desne proti levi'
+});
diff --git a/tinyMCE/plugins/advlink/langs/sk.js b/tinyMCE/plugins/advlink/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..a8761654e14b0639744aef31f5151c354a9607b9
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/sk.js
@@ -0,0 +1,72 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Marián Zvalo marian.zvalo@student.umb.sk
+ *    
+ * $Id: sk.js,v 1.1 2006/02/28 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'Otvoríť v rovnakom okne/ráme',
+insert_link_target_parent : 'Otvoríť v rodičovském okne/ráme',
+insert_link_target_top : 'Otvoriť v najvyššom ráme (prepíše všetky rámy)',
+insert_link_target_blank : 'Otvoríť v novom okne',
+insert_link_target_named : 'Otvoríť v okne',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'Popup URL',
+insert_link_popup_name : 'Názov okna',
+insert_link_popup_return : 'Vložiť \'return false\'',
+insert_link_popup_scrollbars : 'Ukázať posúvníky',
+insert_link_popup_statusbar : 'Ukázať stavový riadok',
+insert_link_popup_toolbar : 'Ukázať ovládaciu lištu',
+insert_link_popup_menubar : 'Ukázať menu',
+insert_link_popup_location : 'Ukázať lištu umiestení',
+insert_link_popup_resizable : 'Premenlivá veľkosť okna',
+insert_link_popup_size : 'Velikosť',
+insert_link_popup_position : 'Umiestnenie (X/Y)',
+insert_link_popup_missingtarget : 'Vložte názov cieľa alebo vyberte inú voľbu.',
+advlink_general_tab : 'Hlavné',
+advlink_popup_tab : 'Nové okno',
+advlink_events_tab : 'Udalosti',
+advlink_advanced_tab : 'Rozšírené',
+advlink_general_props : 'Hlavné nastavenia',
+advlink_popup_props : 'Nastavenia nového okna',
+advlink_event_props : 'Udalosti prehliadača',
+advlink_advanced_props : 'Rozšírené nastavenia',
+advlink_popup_opts : 'Voľby',
+advlink_anchor_names : 'Ukotvenia',
+advlink_target_same : 'Otvoriť v aktuálnom okne / ráme',
+advlink_target_parent : 'Otvoriť v materskom okne / ráme',
+advlink_target_top : 'Otvoriť v najvyššom ráme (prepíše všetky rámy)',
+advlink_target_blank : 'Otvoriť v novom okne',
+advlink_popup : 'Nové okno prehliadača',
+advlink_popup_url : 'Adresa nového okna',
+advlink_popup_name : 'Názov okna',
+advlink_popup_return : 'Vložiť \'return false\'',
+advlink_popup_scrollbars : 'Zobraziť posuvníky',
+advlink_popup_statusbar : 'Zobraziť stavový riadok',
+advlink_popup_toolbar : 'Zobraziť nástroje',
+advlink_popup_menubar : 'Zobraziť menu',
+advlink_popup_location : 'Zobraziť navigačný panel',
+advlink_popup_resizable : 'Umožniť zmenu veľkosti',
+advlink_popup_dependent : 'Závislosť (iba Mozilla/Firefox)',
+advlink_popup_size : 'Veľkosť',
+advlink_popup_position : 'Pozícia (X/Y)',
+advlink_id : 'Id',
+advlink_style: 'CSS štýl',
+advlink_classes : 'Trieda',
+advlink_target_name : 'Názov elementu',
+advlink_langdir : 'Smerovanie textu',
+advlink_target_langcode : 'Jazyk cieľa',
+advlink_langcode : 'Kód jazyka cieľa',
+advlink_encoding : 'Znakové kódovanie cieľa',
+advlink_mime : 'MIME typ cieľa',
+advlink_rel : 'Vzťah stránky k cieľu',
+advlink_rev : 'Vzťah cieľa k stránke',
+advlink_tabindex : 'Poradie pre tabulátor',
+advlink_accesskey : 'Klávesová skratka',
+advlink_ltr : 'Z ľava do prava',
+advlink_rtl : 'Z prava do ľava'
+});
+
diff --git a/tinyMCE/plugins/advlink/langs/sq.js b/tinyMCE/plugins/advlink/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..2d972ad8028f2c37cb5c2e7094a567ff862a9a4d
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/sq.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Te pergjithshme',
+popup_tab : 'Popup',
+events_tab : 'Eventet',
+advanced_tab : 'E Avancuar',
+general_props : 'Te dhena te pergjithshme',
+popup_props : 'Te dhenat e Popup',
+event_props : 'Te dhenat e Eventeve',
+advanced_props : 'Te dhena te Avancuara',
+popup_opts : 'Mundesi',
+anchor_names : 'Spiranca',
+target_same : 'Hape ne kete dritare / kornize',
+target_parent : ' dritaren / kornizen prind',
+target_top : 'Hape ne kornizen e pare(i zevendeson te gjitha kornizat)',
+target_blank : 'Hape ne dritare te re',
+popup : 'Popup me Javascript ',
+popup_url : 'URL e Popup',
+popup_name : 'Emrio i Dritares',
+popup_return : 'Nderfut kodin \'return false\'',
+popup_scrollbars : 'Trego shiritat e kontrollit',
+popup_statusbar : 'Trego shiritin e gjendjes',
+popup_toolbar : 'Trego shiritat e veglave',
+popup_menubar : 'Trego shiritin e Menu-se',
+popup_location : 'Trego shiritin e vendodhjes',
+popup_resizable : 'Beje dritaren te ndryshueshme',
+popup_dependent : 'E varur (vetem Mozilla/Firefox)',
+popup_size : 'Madhesi',
+popup_position : 'Pozicioni (X/Y)',
+id : 'Id',
+style: 'Stili',
+classes : 'Klasat',
+target_name : 'Emri i objektivit',
+langdir : 'Drejtimi i Gjuhes',
+target_langcode : 'Gjuha e objektivit',
+langcode : 'Kodi i gjuhes',
+encoding : 'Kodimi i karaktereve te objektivit',
+mime : 'Tipi MIME i objektivit',
+rel : 'Relacioni i faqes me objektivin',
+rev : 'Relacioni i objektivit me faqen',
+tabindex : 'Numeri i Tab',
+accesskey : 'Çelsei',
+ltr : 'Nga e majta ne te djathte',
+rtl : 'Nga e djathta ne te majte'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/advlink/langs/sr.js b/tinyMCE/plugins/advlink/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..987a4c58dcfa362df130a5d9aba31cd8ab21b69f
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/sr.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Generalno',
+popup_tab : 'Popup',
+events_tab : 'Događaji',
+advanced_tab : 'Napredno',
+general_props : 'Generalna podešavanja',
+popup_props : 'Popup podešavanja',
+event_props : 'Događaji',
+advanced_props : 'Napredna podešavanja',
+popup_opts : 'Opcije',
+anchor_names : 'Sidra',
+target_same : 'Otvaranje u ovom prozoru / frejmu',
+target_parent : 'Otvaranje u roditeljskom prozoru / frejmu',
+target_top : 'Otvaranje u frejmu na vrhu (zamenjuje sve frejmove)',
+target_blank : 'Otvaranje u novom prozoru',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Ime prozora',
+popup_return : 'Ubacivanje \'return false\'',
+popup_scrollbars : 'Prikazivanje skrolbarova',
+popup_statusbar : 'Prikazivanje status bara',
+popup_toolbar : 'Prikazivanje toolbarova',
+popup_menubar : 'Prikazivanje menija',
+popup_location : 'Prikazivanje lokacije',
+popup_resizable : 'Pravljenje prozora promenljive veličine',
+popup_dependent : 'Zavisno (samo Mozilla/Firefox)',
+popup_size : 'Veličina',
+popup_position : 'Pozicija (X/Y)',
+id : 'Id',
+style: 'Stil',
+classes : 'Klase',
+target_name : 'Ime mete',
+langdir : 'Jezički pravac',
+target_langcode : 'Jezik mete',
+langcode : 'Jezički kod',
+encoding : 'Jezički encoding',
+mime : 'MIME tip mete',
+rel : 'Relacija strana meta',
+rev : 'Relacija meta strana',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Levo ka desno',
+rtl : 'Desno ka levo'
+});
diff --git a/tinyMCE/plugins/advlink/langs/sv.js b/tinyMCE/plugins/advlink/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..31cab7ff082535a95facc54f9f77fd30f6b30c20
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/sv.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Generella inställningar',
+popup_tab : 'Popup',
+events_tab : 'Händelser',
+advanced_tab : 'Avancerade inställningar',
+general_props : 'Generella inställningar',
+popup_props : 'Popup inställningar',
+event_props : 'Händelser',
+advanced_props : 'Generella inställningar',
+popup_opts : 'Inställningar',
+anchor_names : 'Bokmärken',
+target_same : 'Öppna i samma fönster / ram',
+target_parent : 'Öppna i underliggande fönster / ram',
+target_top : 'Öppna i toppramen (ersätter alla ramar)',
+target_blank : 'Öppna i ett nytt fönster',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Fönster namn',
+popup_return : 'Sätt in \'return false\'',
+popup_scrollbars : 'Visa scrollningslist',
+popup_statusbar : 'Visa statusfält',
+popup_toolbar : 'Visa verktygsfält',
+popup_menubar : 'Visa menyknappar',
+popup_location : 'Visa adressfält',
+popup_resizable : 'Gör fönstret skalbart',
+popup_dependent : 'Beroende fönster (endast i Mozilla/Firefox)',
+popup_size : 'Storlek',
+popup_position : 'Position (X/Y)',
+id : 'Id',
+style: 'Stil',
+classes : 'Stilmallsklasser',
+target_name : 'Målnamn',
+langdir : 'Skriftriktning',
+target_langcode : 'Målets språk',
+langcode : 'Språkkod',
+encoding : 'Teckenkodning',
+mime : 'Målets MIME-typ',
+rel : 'Relation sida till mål',
+rev : 'Relation mål till sida',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Vänster till höger',
+rtl : 'Höger till vänster'
+});
diff --git a/tinyMCE/plugins/advlink/langs/sv_utf8.js b/tinyMCE/plugins/advlink/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..35fc8e737049f1c712f1b36c0e2358c6df4cf495
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/sv_utf8.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Generella inställningar',
+popup_tab : 'Popup',
+events_tab : 'Händelser',
+advanced_tab : 'Avancerade inställningar',
+general_props : 'Generella inställningar',
+popup_props : 'Popup inställningar',
+event_props : 'Händelser',
+advanced_props : 'Generella inställningar',
+popup_opts : 'Inställningar',
+anchor_names : 'Bokmärken',
+target_same : 'Öppna i samma fönster / ram',
+target_parent : 'Öppna i underliggande fönster / ram',
+target_top : 'Öppna i toppramen (ersätter alla ramar)',
+target_blank : 'Öppna i ett nytt fönster',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Fönster namn',
+popup_return : 'Sätt in \'return false\'',
+popup_scrollbars : 'Visa scrollningslist',
+popup_statusbar : 'Visa statusfält',
+popup_toolbar : 'Visa verktygsfält',
+popup_menubar : 'Visa menyknappar',
+popup_location : 'Visa adressfält',
+popup_resizable : 'Gör fönstret skalbart',
+popup_dependent : 'Beroende fönster (endast i Mozilla/Firefox)',
+popup_size : 'Storlek',
+popup_position : 'Position (X/Y)',
+id : 'Id',
+style: 'Stil',
+classes : 'Stilmallsklasser',
+target_name : 'MÃ¥lnamn',
+langdir : 'Skriftriktning',
+target_langcode : 'Målets språk',
+langcode : 'Språkkod',
+encoding : 'Teckenkodning',
+mime : 'MÃ¥lets MIME-typ',
+rel : 'Relation sida till mål',
+rev : 'Relation mål till sida',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Vänster till höger',
+rtl : 'Höger till vänster'
+});
diff --git a/tinyMCE/plugins/advlink/langs/tr.js b/tinyMCE/plugins/advlink/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b94cf5c00effc6c131094bd68cb47f65429c0d2
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/tr.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Genel',
+popup_tab : 'Popup',
+events_tab : 'Olaylar',
+advanced_tab : 'Geliþmiþ',
+general_props : 'Genel özellikler',
+popup_props : 'Popup özellikleri',
+event_props : 'Olaylar',
+advanced_props : 'Geliþmiþ özellikler',
+popup_opts : 'Seçenekler',
+anchor_names : 'Baðlantýlar',
+target_same : 'Bu pencerede/çerçevede aç',
+target_parent : 'Ana pencerede/çerçevede aç',
+target_top : 'Üst çercçevede aç(bütün çerçeveleri deðiþtirir)',
+target_blank : 'Yeni pencerede aç',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Pencere ismi',
+popup_return : '\'return false\' ekle',
+popup_scrollbars : 'Kaydýrma çubuðunu göster',
+popup_statusbar : 'Durum çubuðunu göster',
+popup_toolbar : 'Araç çubuklarýný göster',
+popup_menubar : 'Menü çubuðunu göster',
+popup_location : 'Adres satýrýný göster',
+popup_resizable : 'Pencereyi yeniden boyutlandýrýlabilir yap',
+popup_dependent : 'Ana pencereye baðýmlý (sadece Mozilla/Firefox)',
+popup_size : 'Büyüklük',
+popup_position : 'Posizyon (X/Y)',
+id : 'Id',
+style: 'Stil',
+classes : 'Sýnýflar',
+target_name : 'Hedef isim',
+langdir : 'Dil yönü',
+target_langcode : 'Hedef dil',
+langcode : 'Dil kodu',
+encoding : 'Hedef karakter kodlamasý',
+mime : 'Hedef MIME tipi',
+rel : 'Sayfa - hedef iliþkisi',
+rev : 'Hedef - sayfa iliþkisi',
+tabindex : 'Tabindeks',
+accesskey : 'Eriþim anahtarý',
+ltr : 'Soldan saða',
+rtl : 'Saðdan sola'
+});
diff --git a/tinyMCE/plugins/advlink/langs/uk.js b/tinyMCE/plugins/advlink/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..8bbef0dd36e8c2aedde4a6cd7121f2bf30fdc5b7
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/uk.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Основні',
+popup_tab : 'Зпливаючі',
+events_tab : 'Події',
+advanced_tab : 'Розширені',
+general_props : 'Основні властивості',
+popup_props : 'Властивості зпливючіх елементів',
+event_props : 'Події',
+advanced_props : 'Розширені настройки',
+popup_opts : 'Опції',
+anchor_names : 'Якорі',
+target_same : 'Відкривати у цьому вікні / фреймі',
+target_parent : 'Відкривати у батьківському вікні / фреймі',
+target_top : 'Відкривати у верхньому фреймі (заміняти все фрейми)',
+target_blank : 'Відкривати з новому вікні',
+popup : 'Зпливаче вікно Javascript',
+popup_url : 'Зпливаючий URL',
+popup_name : 'Ім\'я вікна',
+popup_return : 'Вставити \'return false\'',
+popup_scrollbars : 'Показувати лінійки прокручування',
+popup_statusbar : 'Показувати рядок стану',
+popup_toolbar : 'Показувати панелі інструментів',
+popup_menubar : 'Показувати панель меню',
+popup_location : 'Показувати панель розташування',
+popup_resizable : 'Дозволити змінювати розміри вікна',
+popup_dependent : 'Залежність (лише Mozilla/Firefox)',
+popup_size : 'Розмір',
+popup_position : 'Розташування (X/Y)',
+id : 'Id',
+style: 'Стиль',
+classes : 'Класи',
+target_name : 'Ім\'я цілі посилання',
+langdir : 'Напрямок письма',
+target_langcode : 'Цільова мова',
+langcode : 'Код мови',
+encoding : 'Цільове кодування',
+mime : 'Цільовий MIME тип',
+rel : 'Залежність сторінка -> ціль',
+rev : 'Залежність ціль -> сторінка',
+tabindex : 'Індекс таблиці',
+accesskey : 'Ключ доступу',
+ltr : 'Зліва направо',
+rtl : 'Справа наліво'
+});
diff --git a/tinyMCE/plugins/advlink/langs/uk_CP1251.js b/tinyMCE/plugins/advlink/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..6c1514577dafba434265a41e28bd3770aa73e7b8
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/uk_CP1251.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Îñíîâí³',
+popup_tab : 'Çïëèâàþ÷³',
+events_tab : 'Ïî䳿',
+advanced_tab : 'Ðîçøèðåí³',
+general_props : 'Îñíîâí³ âëàñòèâîñò³',
+popup_props : 'Âëàñòèâîñò³ çïëèâþ÷³õ åëåìåíò³â',
+event_props : 'Ïî䳿',
+advanced_props : 'Ðîçøèðåí³ íàñòðîéêè',
+popup_opts : 'Îïö³¿',
+anchor_names : 'ßêîð³',
+target_same : '³äêðèâàòè ó öüîìó â³êí³ / ôðåéì³',
+target_parent : '³äêðèâàòè ó áàòüê³âñüêîìó â³êí³ / ôðåéì³',
+target_top : '³äêðèâàòè ó âåðõíüîìó ôðåéì³ (çàì³íÿòè âñå ôðåéìè)',
+target_blank : '³äêðèâàòè ç íîâîìó â³êí³',
+popup : 'Çïëèâà÷å â³êíî Javascript',
+popup_url : 'Çïëèâàþ÷èé URL',
+popup_name : '²ì\'ÿ â³êíà',
+popup_return : 'Âñòàâèòè \'return false\'',
+popup_scrollbars : 'Ïîêàçóâàòè ë³í³éêè ïðîêðó÷óâàííÿ',
+popup_statusbar : 'Ïîêàçóâàòè ðÿäîê ñòàíó',
+popup_toolbar : 'Ïîêàçóâàòè ïàíåë³ ³íñòðóìåíò³â',
+popup_menubar : 'Ïîêàçóâàòè ïàíåëü ìåíþ',
+popup_location : 'Ïîêàçóâàòè ïàíåëü ðîçòàøóâàííÿ',
+popup_resizable : 'Äîçâîëèòè çì³íþâàòè ðîçì³ðè â³êíà',
+popup_dependent : 'Çàëåæí³ñòü (ëèøå Mozilla/Firefox)',
+popup_size : 'Ðîçì³ð',
+popup_position : 'Ðîçòàøóâàííÿ (X/Y)',
+id : 'Id',
+style: 'Ñòèëü',
+classes : 'Êëàñè',
+target_name : '²ì\'ÿ ö³ë³',
+langdir : 'Íàïðÿìîê ïèñüìà',
+target_langcode : 'Ö³ëüîâà ìîâà',
+langcode : 'Êîä ìîâè',
+encoding : 'Ö³ëüîâå êîäóâàííÿ',
+mime : 'Ö³ëüîâèé MIME òèï',
+rel : 'Çàëåæí³ñòü ñòîð³íêà -> ö³ëü',
+rev : 'Çàëåæí³ñòü ö³ëü -> ñòîð³íêà',
+tabindex : '²íäåêñ òàáëèö³',
+accesskey : 'Êëþ÷ äîñòóïó',
+ltr : 'Çë³âà íàïðàâî',
+rtl : 'Ñïðàâà íàë³âî'
+});
diff --git a/tinyMCE/plugins/advlink/langs/uk_KOI8-U.js b/tinyMCE/plugins/advlink/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..c1c62280839078f8aa9e10e13d01631fc4a2b1e2
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/uk_KOI8-U.js
@@ -0,0 +1,46 @@
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'ïÓÎÏ×Φ',
+popup_tab : 'úÐÌÉ×ÁÀÞ¦',
+events_tab : 'ðÏĦ§',
+advanced_tab : 'òÏÚÛÉÒÅΦ',
+general_props : 'ïÓÎÏ×Φ ×ÌÁÓÔÉ×ÏÓÔ¦',
+popup_props : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÚÐÌÉ×ÀÞ¦È ÅÌÅÍÅÎÔ¦×',
+event_props : 'ðÏĦ§',
+advanced_props : 'òÏÚÛÉÒÅΦ ÎÁÓÔÒÏÊËÉ',
+popup_opts : 'ïÐæ§',
+anchor_names : 'ñËÏÒ¦',
+target_same : '÷¦ÄËÒÉ×ÁÔÉ Õ ÃØÏÍÕ ×¦ËΦ / ÆÒÅÊͦ',
+target_parent : '÷¦ÄËÒÉ×ÁÔÉ Õ ÂÁÔØË¦×ÓØËÏÍÕ ×¦ËΦ / ÆÒÅÊͦ',
+target_top : '÷¦ÄËÒÉ×ÁÔÉ Õ ×ÅÒÈÎØÏÍÕ ÆÒÅÊͦ (ÚÁͦÎÑÔÉ ×ÓÅ ÆÒÅÊÍÉ)',
+target_blank : '÷¦ÄËÒÉ×ÁÔÉ Ú ÎÏ×ÏÍÕ ×¦ËΦ',
+popup : 'úÐÌÉ×ÁÞŠצËÎÏ Javascript',
+popup_url : 'úÐÌÉ×ÁÀÞÉÊ URL',
+popup_name : '¶Í\'Ñ ×¦ËÎÁ',
+popup_return : '÷ÓÔÁ×ÉÔÉ \'return false\'',
+popup_scrollbars : 'ðÏËÁÚÕ×ÁÔÉ Ì¦Î¦ÊËÉ ÐÒÏËÒÕÞÕ×ÁÎÎÑ',
+popup_statusbar : 'ðÏËÁÚÕ×ÁÔÉ ÒÑÄÏË ÓÔÁÎÕ',
+popup_toolbar : 'ðÏËÁÚÕ×ÁÔÉ ÐÁÎÅ̦ ¦ÎÓÔÒÕÍÅÎÔ¦×',
+popup_menubar : 'ðÏËÁÚÕ×ÁÔÉ ÐÁÎÅÌØ ÍÅÎÀ',
+popup_location : 'ðÏËÁÚÕ×ÁÔÉ ÐÁÎÅÌØ ÒÏÚÔÁÛÕ×ÁÎÎÑ',
+popup_resizable : 'äÏÚ×ÏÌÉÔÉ ÚͦÎÀ×ÁÔÉ ÒÏÚͦÒÉ ×¦ËÎÁ',
+popup_dependent : 'úÁÌÅÖΦÓÔØ (ÌÉÛÅ Mozilla/Firefox)',
+popup_size : 'òÏÚͦÒ',
+popup_position : 'òÏÚÔÁÛÕ×ÁÎÎÑ (X/Y)',
+id : 'Id',
+style: 'óÔÉÌØ',
+classes : 'ëÌÁÓÉ',
+target_name : '¶Í\'Ñ Ã¦Ì¦ ÐÏÓÉÌÁÎÎÑ',
+langdir : 'îÁÐÒÑÍÏË ÐÉÓØÍÁ',
+target_langcode : 'ã¦ÌØÏ×Á ÍÏ×Á',
+langcode : 'ëÏÄ ÍÏ×É',
+encoding : 'ã¦ÌØÏ×Å ËÏÄÕ×ÁÎÎÑ',
+mime : 'ã¦ÌØÏ×ÉÊ MIME ÔÉÐ',
+rel : 'úÁÌÅÖΦÓÔØ ÓÔÏÒ¦ÎËÁ -> Ã¦ÌØ',
+rev : 'úÁÌÅÖΦÓÔØ Ã¦ÌØ -> ÓÔÏÒ¦ÎËÁ',
+tabindex : '¶ÎÄÅËÓ ÔÁÂÌÉæ',
+accesskey : 'ëÌÀÞ ÄÏÓÔÕÐÕ',
+ltr : 'ú̦×Á ÎÁÐÒÁ×Ï',
+rtl : 'óÐÒÁ×Á ÎÁ̦×Ï'
+});
diff --git a/tinyMCE/plugins/advlink/langs/vi.js b/tinyMCE/plugins/advlink/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..7402ef57aa718450f2e8a7958a8abc7c2ceba6ea
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/vi.js
@@ -0,0 +1,46 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Chung',
+popup_tab : 'Cửa sổ bật ra',
+events_tab : 'Sự kiện',
+advanced_tab : 'Nâng cao',
+general_props : 'Thuộc tính chung',
+popup_props : 'Thuộc tính bật ra',
+event_props : 'Sự kiện',
+advanced_props : 'Thuộc tính nâng cao',
+popup_opts : 'Tùy chọn',
+anchor_names : 'Neo',
+target_same : 'Mở trong cửa sổ / khung này',
+target_parent : 'Mở trong cửa sổ / khung cha',
+target_top : 'Mở trong khung cao nhất (thay thế mọi khung)',
+target_blank : 'Mở trong cửa sổ mới',
+popup : 'Cửa sổ bật ra Javascript',
+popup_url : 'Địa chỉ bật ra',
+popup_name : 'Tên cửa sổ',
+popup_return : 'Thêm \'return false\'',
+popup_scrollbars : 'Hiện thanh cuộn',
+popup_statusbar : 'Hiện thanh trạng thái',
+popup_toolbar : 'Hiện thanh công cụ',
+popup_menubar : 'Hiện thanh menu',
+popup_location : 'Hiện thanh địa chỉ',
+popup_resizable : 'Cửa sổ có thể thay đổi kích thước',
+popup_dependent : 'Độc lập (chỉ trên Mozilla/Firefox)',
+popup_size : 'Kích thước',
+popup_position : 'Vị trí (tọa độ X/Y)',
+id : 'Id',
+style: 'Phong cách',
+classes : 'Lá»›p',
+target_name : 'Tên mục tiêu',
+langdir : 'Hướng ngôn ngữ',
+target_langcode : 'Ngôn ngữ mục tiêu',
+langcode : 'Mã ngôn ngữ',
+encoding : 'Mã hóa kí tự mục tiêu',
+mime : 'Kiểu MIME mục tiêu',
+rel : 'Quan hệ trang đến mục tiêu',
+rev : 'Quan hệ mục tiêu đến trang',
+tabindex : 'Chỉ số Tab',
+accesskey : 'Phím truy cập',
+ltr : 'Trái sang phải',
+rtl : 'Phải sang trái'
+});
diff --git a/tinyMCE/plugins/advlink/langs/zh_cn.js b/tinyMCE/plugins/advlink/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..7c146946cd4a571316ebfd306faa40ee0d797601
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/zh_cn.js
@@ -0,0 +1,47 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Ò»°ã',
+popup_tab : 'µ¯³ö',
+events_tab : 'ʼþ',
+advanced_tab : '¸ß¼¶',
+general_props : 'Ò»°ãÊôÐÔ',
+popup_props : 'µ¯³öÊôÐÔ',
+event_props : 'ʼþÊôÐÔ',
+advanced_props : '¸ß¼¼ÊôÐÔ',
+popup_opts : 'Ñ¡Ïî',
+anchor_names : 'êµã',
+target_same : 'ÔÚµ±Ç°´°¿Ú/¿ò¼ÜÖдò¿ª',
+target_parent : 'ÔÚ¸¸´°¿Ú/¿ò¼ÜÖдò¿ª',
+target_top : 'ÔÚ¶¥¶Ë´°¿Ú/¿ò¼ÜÖдò¿ª',
+target_blank : 'ÔÚд°¿ÚÖдò¿ª',
+popup : 'Javascript µ¯³ö',
+popup_url : 'µ¯³öµØÖ·',
+popup_name : 'µ¯³ö´°¿ÚÃû',
+popup_return : '²åÈë \'return false\'',
+popup_scrollbars : 'ÏÔʾ¹ö¶¯Ìõ',
+popup_statusbar : 'ÏÔʾ״̬Ìõ',
+popup_toolbar : 'ÏÔʾ¹¤¾ßÌõ',
+popup_menubar : 'ÏÔʾ²Ëµ¥Ìõ',
+popup_location : 'ÏÔʾµØÖ·Ìõ',
+popup_resizable : '´°¿Ú´óС¿É±ä',
+popup_dependent : 'Dependent (½öÏÞÓÚ Mozilla/Firefox)',
+popup_size : '´óС',
+popup_position : 'λÖà (X/Y)',
+id : '±êʶ',
+style: 'Ñùʽ',
+classes : 'Àà',
+target_name : 'Ä¿±êÃû³Æ',
+langdir : 'Êéд·½Ïò',
+target_langcode : 'Ä¿±êÓïÑÔ',
+langcode : 'ÓïÑÔ±àÂë',
+encoding : 'Ä¿±êÎÄ×Ö±àÂë',
+mime : 'Ä¿±ê MIME ÖÖÀà',
+rel : 'Ò³ÓëÄ¿±êµÄ¹ØÏµ',
+rev : 'Ä¿±êÓëÒ³µÄ¹ØÏµ',
+tabindex : 'Tabindex',
+accesskey : '¿ì½Ý¼ü',
+ltr : '´Ó×óµ½ÓÒ',
+rtl : '´ÓÓÒµ½×ó'
+});
diff --git a/tinyMCE/plugins/advlink/langs/zh_cn_utf8.js b/tinyMCE/plugins/advlink/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..b8a0e5882cf6fbda4d607aa2e2be3c4a1ba5d61f
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/zh_cn_utf8.js
@@ -0,0 +1,47 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('advlink',{
+general_tab : '一般',
+popup_tab : '弹出',
+events_tab : '事件',
+advanced_tab : '高级',
+general_props : '一般属性',
+popup_props : '弹出属性',
+event_props : '事件属性',
+advanced_props : '高技属性',
+popup_opts : '选项',
+anchor_names : '锚点',
+target_same : '在当前窗口/框架中打开',
+target_parent : '在父窗口/框架中打开',
+target_top : '在顶端窗口/框架中打开',
+target_blank : '在新窗口中打开',
+popup : 'Javascript 弹出',
+popup_url : '弹出地址',
+popup_name : '弹出窗口名',
+popup_return : '插入 \'return false\'',
+popup_scrollbars : '显示滚动条',
+popup_statusbar : '显示状态条',
+popup_toolbar : '显示工具条',
+popup_menubar : '显示菜单条',
+popup_location : '显示地址条',
+popup_resizable : '窗口大小可变',
+popup_dependent : 'Dependent (仅限于 Mozilla/Firefox)',
+popup_size : '大小',
+popup_position : '位置 (X/Y)',
+id : '标识',
+style: '样式',
+classes : 'ç±»',
+target_name : '目标名称',
+langdir : '书写方向',
+target_langcode : '目标语言',
+langcode : '语言编码',
+encoding : '目标文字编码',
+mime : '目标 MIME 种类',
+rel : '页与目标的关系',
+rev : '目标与页的关系',
+tabindex : 'Tabindex',
+accesskey : '快捷键',
+ltr : '从左到右',
+rtl : '从右到左'
+});
diff --git a/tinyMCE/plugins/advlink/langs/zh_tw.js b/tinyMCE/plugins/advlink/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..ebeef2639b48ae6550b60348c6c58ae21fb629f0
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/zh_tw.js
@@ -0,0 +1,47 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('advlink',{
+general_tab : '¤@¯ë',
+popup_tab : '¸õ²{µøµ¡',
+events_tab : '¨Æ¥ó',
+advanced_tab : '¶i¶¥',
+general_props : '¤@¯ëÄÝ©Ê',
+popup_props : '¸õ²{µøµ¡ÄÝ©Ê',
+event_props : '¨Æ¥óÄÝ©Ê',
+advanced_props : '¶i¶¥ÄÝ©Ê',
+popup_opts : '¿ï¶µ',
+anchor_names : '³sµ²ÂI',
+target_same : '©ó¦¹µøµ¡©Î®Ø¬[¤¤¶}±Ò',
+target_parent : '©ó¤W¼hµøµ¡©Î®Ø¬[¤¤¶}±Ò',
+target_top : '©ó¥D®Ø¬[¤¤¶}±Ò¡]·|¨ú¥N¥þ³¡®Ø¬[¡^',
+target_blank : '©ó·sµøµ¡¤¤¶}±Ò',
+popup : 'Javascript ¸õ²{µøµ¡',
+popup_url : '¸õ²{µøµ¡ºô§}',
+popup_name : 'µøµ¡¦WºÙ',
+popup_return : '´¡¤J "¸T¦^¤W­¶"',
+popup_scrollbars : 'Åã¥Ü²¾°Ê¶b',
+popup_statusbar : 'Åã¥Üª¬ºA¦C',
+popup_toolbar : 'Åã¥Ü¤u¨ã¦C',
+popup_menubar : 'Åã¥Ü¿ï³æ¦C',
+popup_location : 'Åã¥Ü¦ì¸m¦C',
+popup_resizable : '¥i¤j¤p¤Æµøµ¡',
+popup_dependent : '±qÄݩʡ]¶È¾A¥Î Mozilla / Firefox ¡^',
+popup_size : '¤j¤p',
+popup_position : '¦ì¸m¡] X / Y ¶b¡^',
+id : '½s½X',
+style: '¦¡¼Ë',
+classes : '¤ÀÃþ',
+target_name : '¹ï¶H¦WºÙ',
+langdir : '»y¨¥¥Îªk',
+target_langcode : '¹ï¶H»y¨¥',
+langcode : '»y½X',
+encoding : '¹ï¶H¦r¤¸½s½X',
+mime : '¹ï¶H MIME «¬¦¡',
+rel : '±Nºô­¶»P¹ï¶H²£¥ÍÃöÁp',
+rev : '±N¹ï¶H»Pºô­¶²£¥ÍÃöÁp',
+tabindex : '¼ÐÅÒ¯Á¤Þ',
+accesskey : '¦s¨úÁä',
+ltr : '¥Ñ¥ª¦Ü¥k',
+rtl : '¥Ñ¥k¦Ü¥ª'
+});
diff --git a/tinyMCE/plugins/advlink/langs/zh_tw_utf8.js b/tinyMCE/plugins/advlink/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..e360a6d35ce2163cda04813d53e258ec9328daea
--- /dev/null
+++ b/tinyMCE/plugins/advlink/langs/zh_tw_utf8.js
@@ -0,0 +1,47 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('advlink',{
+general_tab : '一般',
+popup_tab : '跳現視窗',
+events_tab : '事件',
+advanced_tab : '進階',
+general_props : '一般屬性',
+popup_props : '跳現視窗屬性',
+event_props : '事件屬性',
+advanced_props : '進階屬性',
+popup_opts : '選項',
+anchor_names : '連結點',
+target_same : '於此視窗或框架中開啟',
+target_parent : '於上層視窗或框架中開啟',
+target_top : '於主框架中開啟(會取代全部框架)',
+target_blank : '於新視窗中開啟',
+popup : 'Javascript 跳現視窗',
+popup_url : '跳現視窗網址',
+popup_name : '視窗名稱',
+popup_return : '插入 "禁回上頁"',
+popup_scrollbars : '顯示移動軸',
+popup_statusbar : '顯示狀態列',
+popup_toolbar : '顯示工具列',
+popup_menubar : '顯示選單列',
+popup_location : '顯示位置列',
+popup_resizable : '可大小化視窗',
+popup_dependent : '從屬性(僅適用 Mozilla / Firefox )',
+popup_size : '大小',
+popup_position : '位置( X / Y 軸)',
+id : '編碼',
+style: '式樣',
+classes : '分類',
+target_name : '對象名稱',
+langdir : '語言用法',
+target_langcode : '對象語言',
+langcode : '語碼',
+encoding : '對象字元編碼',
+mime : '對象 MIME 型式',
+rel : '將網頁與對象產生關聯',
+rev : '將對象與網頁產生關聯',
+tabindex : '標籤索引',
+accesskey : '存取鍵',
+ltr : '由左至右',
+rtl : '由右至左'
+});
diff --git a/tinyMCE/plugins/advlink/link.htm b/tinyMCE/plugins/advlink/link.htm
new file mode 100644
index 0000000000000000000000000000000000000000..95d89a12a80f0e20fd5ffbe1d7d086108842d72c
--- /dev/null
+++ b/tinyMCE/plugins/advlink/link.htm
@@ -0,0 +1,338 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_insert_link_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/validate.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/functions.js"></script>
+	<link href="css/advlink.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body id="advlink" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+    <form onsubmit="insertAction();return false;" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_advlink_general_tab}</a></span></li>
+				<li id="popup_tab"><span><a href="javascript:mcTabs.displayTab('popup_tab','popup_panel');" onmousedown="return false;">{$lang_advlink_popup_tab}</a></span></li>
+				<li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{$lang_advlink_events_tab}</a></span></li>
+				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_advlink_advanced_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{$lang_advlink_general_props}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+						  <td nowrap="nowrap"><label id="hreflabel" for="href">{$lang_insert_link_url}</label></td>
+						  <td><table border="0" cellspacing="0" cellpadding="0">
+								<tr>
+								  <td><input id="href" name="href" type="text" value="" onchange="selectByValue(this.form,'linklisthref',this.value);" /></td>
+								  <td id="hrefbrowsercontainer">&nbsp;</td>
+								</tr>
+							  </table></td>
+						</tr>
+						<tr id="linklisthrefrow">
+							<td class="column1"><label for="linklisthref">{$lang_link_list}</label></td>
+							<td colspan="2" id="linklisthrefcontainer">&nbsp;</td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="anchorlist">{$lang_advlink_anchor_names}</label></td>
+							<td colspan="2" id="anchorlistcontainer">&nbsp;</td>
+						</tr>
+						<tr>
+							<td><label id="targetlistlabel" for="targetlist">{$lang_insert_link_target}</label></td>
+							<td id="targetlistcontainer">&nbsp;</td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label id="titlelabel" for="title">{$lang_theme_insert_link_titlefield}</label></td>
+							<td><input id="title" name="title" type="text" value="" /></td>
+						</tr>
+						<tr>
+							<td><label id="classlabel" for="classlist">{$lang_class_name}</label></td>
+							<td>
+								 <select id="classlist" name="classlist" onchange="changeClass();">
+									<option value="" selected>{$lang_not_set}</option>
+								 </select>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="popup_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_advlink_popup_props}</legend>
+
+					<input type="checkbox" id="ispopup" name="ispopup" class="radio" onclick="setPopupControlsDisabled(!this.checked);buildOnClick();" />
+					<label id="ispopuplabel" for="ispopup">{$lang_advlink_popup}</label>
+
+					<table border="0" cellpadding="0" cellspacing="4">
+						<tr>
+							<td nowrap="nowrap"><label for="popupurl">{$lang_advlink_popup_url}</label>&nbsp;</td>
+							<td>
+								<table border="0" cellspacing="0" cellpadding="0">
+									<tr>
+										<td><input type="text" name="popupurl" id="popupurl" value="" onchange="buildOnClick();" /></td>
+										<td id="popupurlbrowsercontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label for="popupname">{$lang_advlink_popup_name}</label>&nbsp;</td>
+							<td><input type="text" name="popupname" id="popupname" value="" onchange="buildOnClick();" /></td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label>{$lang_advlink_popup_size}</label>&nbsp;</td>
+							<td nowrap="nowrap">
+								<input type="text" id="popupwidth" name="popupwidth" value="" onchange="buildOnClick();" /> x
+								<input type="text" id="popupheight" name="popupheight" value="" onchange="buildOnClick();" /> px
+							</td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap" id="labelleft"><label>{$lang_advlink_popup_position}</label>&nbsp;</td>
+							<td nowrap="nowrap">
+								<input type="text" id="popupleft" name="popupleft" value="" onchange="buildOnClick();" /> /                                
+								<input type="text" id="popuptop" name="popuptop" value="" onchange="buildOnClick();" /> (c /c = center)
+							</td>
+						</tr>
+					</table>
+
+					<fieldset>
+						<legend>{$lang_advlink_popup_opts}</legend>
+
+						<table border="0" cellpadding="0" cellspacing="4">
+							<tr>
+								<td><input type="checkbox" id="popuplocation" name="popuplocation" class="checkbox" onchange="buildOnClick();" /></td>
+								<td nowrap="nowrap"><label id="popuplocationlabel" for="popuplocation">{$lang_advlink_popup_location}</label></td>
+								<td><input type="checkbox" id="popupscrollbars" name="popupscrollbars" class="checkbox" onchange="buildOnClick();" /></td>
+								<td nowrap="nowrap"><label id="popupscrollbarslabel" for="popupscrollbars">{$lang_advlink_popup_scrollbars}</label></td>
+							</tr>
+							<tr>
+								<td><input type="checkbox" id="popupmenubar" name="popupmenubar" class="checkbox" onchange="buildOnClick();" /></td>
+								<td nowrap="nowrap"><label id="popupmenubarlabel" for="popupmenubar">{$lang_advlink_popup_menubar}</label></td>
+								<td><input type="checkbox" id="popupresizable" name="popupresizable" class="checkbox" onchange="buildOnClick();" /></td>
+								<td nowrap="nowrap"><label id="popupresizablelabel" for="popupresizable">{$lang_advlink_popup_resizable}</label></td>
+							</tr>
+							<tr>
+								<td><input type="checkbox" id="popuptoolbar" name="popuptoolbar" class="checkbox" onchange="buildOnClick();" /></td>
+								<td nowrap="nowrap"><label id="popuptoolbarlabel" for="popuptoolbar">{$lang_advlink_popup_toolbar}</label></td>
+								<td><input type="checkbox" id="popupdependent" name="popupdependent" class="checkbox" onchange="buildOnClick();" /></td>
+								<td nowrap="nowrap"><label id="popupdependentlabel" for="popupdependent">{$lang_advlink_popup_dependent}</label></td>
+							</tr>
+							<tr>
+								<td><input type="checkbox" id="popupstatus" name="popupstatus" class="checkbox" onchange="buildOnClick();" /></td>
+								<td nowrap="nowrap"><label id="popupstatuslabel" for="popupstatus">{$lang_advlink_popup_statusbar}</label></td>
+								<td><input type="checkbox" id="popupreturn" name="popupreturn" class="checkbox" onchange="buildOnClick();" checked="checked" /></td>
+								<td nowrap="nowrap"><label id="popupreturnlabel" for="popupreturn">{$lang_advlink_popup_return}</label></td>
+							</tr>
+						</table>
+					</fieldset>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+			<fieldset>
+					<legend>{$lang_advlink_advanced_props}</legend>
+
+					<table border="0" cellpadding="0" cellspacing="4">
+						<tr>
+							<td class="column1"><label id="idlabel" for="id">{$lang_advlink_id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td><label id="stylelabel" for="style">{$lang_advlink_style}</label></td>
+							<td><input type="text" id="style" name="style" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="classeslabel" for="classes">{$lang_advlink_classes}</label></td>
+							<td><input type="text" id="classes" name="classes" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="targetlabel" for="target">{$lang_advlink_target_name}</label></td>
+							<td><input type="text" id="target" name="target" value="" onchange="selectByValue(this.form,'targetlist',this.value,true);" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="dirlabel" for="dir">{$lang_advlink_langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir"> 
+										<option value="">{$lang_not_set}</option> 
+										<option value="ltr">{$lang_advlink_ltr}</option> 
+										<option value="rtl">{$lang_advlink_rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td><label id="hreflanglabel" for="hreflang">{$lang_advlink_target_langcode}</label></td>
+							<td><input type="text" id="hreflang" name="hreflang" value="" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="langlabel" for="lang">{$lang_advlink_langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td><label id="charsetlabel" for="charset">{$lang_advlink_encoding}</label></td>
+							<td><input type="text" id="charset" name="charset" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="typelabel" for="type">{$lang_advlink_mime}</label></td>
+							<td><input type="text" id="type" name="type" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="rellabel" for="rel">{$lang_advlink_rel}</label></td>
+							<td><select id="rel" name="rel"> 
+									<option value="">{$lang_not_set}</option> 
+									<option value="lightbox">Lightbox</option> 
+									<option value="alternate">Alternate</option> 
+									<option value="designates">Designates</option> 
+									<option value="stylesheet">Stylesheet</option> 
+									<option value="start">Start</option> 
+									<option value="next">Next</option> 
+									<option value="prev">Prev</option> 
+									<option value="contents">Contents</option> 
+									<option value="index">Index</option> 
+									<option value="glossary">Glossary</option> 
+									<option value="copyright">Copyright</option> 
+									<option value="chapter">Chapter</option> 
+									<option value="subsection">Subsection</option> 
+									<option value="appendix">Appendix</option> 
+									<option value="help">Help</option> 
+									<option value="bookmark">Bookmark</option>
+									<option value="nofollow">No Follow</option>
+									<option value="tag">Tag</option>
+								</select> 
+							</td>
+						</tr>
+
+						<tr>
+							<td><label id="revlabel" for="rev">{$lang_advlink_rev}</label></td>
+							<td><select id="rev" name="rev"> 
+									<option value="">{$lang_not_set}</option> 
+									<option value="alternate">Alternate</option> 
+									<option value="designates">Designates</option> 
+									<option value="stylesheet">Stylesheet</option> 
+									<option value="start">Start</option> 
+									<option value="next">Next</option> 
+									<option value="prev">Prev</option> 
+									<option value="contents">Contents</option> 
+									<option value="index">Index</option> 
+									<option value="glossary">Glossary</option> 
+									<option value="copyright">Copyright</option> 
+									<option value="chapter">Chapter</option> 
+									<option value="subsection">Subsection</option> 
+									<option value="appendix">Appendix</option> 
+									<option value="help">Help</option> 
+									<option value="bookmark">Bookmark</option> 
+								</select> 
+							</td>
+						</tr>
+
+						<tr>
+							<td><label id="tabindexlabel" for="tabindex">{$lang_advlink_tabindex}</label></td>
+							<td><input type="text" id="tabindex" name="tabindex" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="accesskeylabel" for="accesskey">{$lang_advlink_accesskey}</label></td>
+							<td><input type="text" id="accesskey" name="accesskey" value="" /></td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="events_panel" class="panel">
+			<fieldset>
+					<legend>{$lang_advlink_event_props}</legend>
+
+					<table border="0" cellpadding="0" cellspacing="4">
+						<tr>
+							<td class="column1"><label for="onfocus">onfocus</label></td> 
+							<td><input id="onfocus" name="onfocus" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onblur">onblur</label></td> 
+							<td><input id="onblur" name="onblur" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onclick">onclick</label></td> 
+							<td><input id="onclick" name="onclick" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="ondblclick">ondblclick</label></td> 
+							<td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmousedown">onmousedown</label></td> 
+							<td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmouseup">onmouseup</label></td> 
+							<td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmouseover">onmouseover</label></td> 
+							<td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmousemove">onmousemove</label></td> 
+							<td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onmouseout">onmouseout</label></td> 
+							<td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onkeypress">onkeypress</label></td> 
+							<td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onkeydown">onkeydown</label></td> 
+							<td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="onkeyup">onkeyup</label></td> 
+							<td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div style="float: left">
+				<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertAction();" />
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+    </form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/advlink/readme.txt b/tinyMCE/plugins/advlink/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/advlink/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/autosave/editor_plugin.js b/tinyMCE/plugins/autosave/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..e347646a68f3380cb82d44e389e8d1407d7d9cd6
--- /dev/null
+++ b/tinyMCE/plugins/autosave/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('autosave');var TinyMCE_AutoSavePlugin={getInfo:function(){return{longname:'Auto save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},_beforeUnloadHandler:function(){var n,inst,anyDirty=false,msg=tinyMCE.getLang("lang_autosave_unload_msg");if(tinyMCE.getParam("fullscreen_is_enabled"))return;for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;if(inst.isDirty())return msg}return}};window.onbeforeunload=TinyMCE_AutoSavePlugin._beforeUnloadHandler;tinyMCE.addPlugin("autosave",TinyMCE_AutoSavePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/autosave/editor_plugin_src.js b/tinyMCE/plugins/autosave/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..f76aeebe7c279d20b051a560c2b11bbd606f2f8f
--- /dev/null
+++ b/tinyMCE/plugins/autosave/editor_plugin_src.js
@@ -0,0 +1,46 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('autosave');
+
+var TinyMCE_AutoSavePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Auto save',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	// Private plugin internal methods
+
+	_beforeUnloadHandler : function() {
+		var n, inst, anyDirty = false, msg = tinyMCE.getLang("lang_autosave_unload_msg");
+
+		if (tinyMCE.getParam("fullscreen_is_enabled"))
+			return;
+
+		for (n in tinyMCE.instances) {
+			inst = tinyMCE.instances[n];
+
+			if (!tinyMCE.isInstance(inst))
+				continue;
+
+			if (inst.isDirty())
+				return msg;
+		}
+
+		return;
+	}
+};
+
+window.onbeforeunload = TinyMCE_AutoSavePlugin._beforeUnloadHandler;
+
+tinyMCE.addPlugin("autosave", TinyMCE_AutoSavePlugin);
diff --git a/tinyMCE/plugins/autosave/langs/ca.js b/tinyMCE/plugins/autosave/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..01951332d9ccbe322372f9310e09a634226247ca
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ca.js
@@ -0,0 +1,5 @@
+// EN lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'The changes you made will be lost if you navigate away from this page.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/cs.js b/tinyMCE/plugins/autosave/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..c24637ca8a6ed38b0cf0fc50cd2ec525f9653a62
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/cs.js
@@ -0,0 +1,11 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.2 2006/01/11 14:25:47 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Změny, které jste udělal(a) budou ztraceny, jestliže opustíte tuto stránku.'
+});
+
diff --git a/tinyMCE/plugins/autosave/langs/cy.js b/tinyMCE/plugins/autosave/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..60e79b947eb260f1b41237cfbe314a2ba6206d1d
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/cy.js
@@ -0,0 +1,5 @@
+// EN lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Byddi di\'n colli unrhyw newidiadau os wyt ti\'n gadael y dudalen hon.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/da.js b/tinyMCE/plugins/autosave/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0ca478bce8e6fa92eb26dc22ef9d8e24fb463ac
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/da.js
@@ -0,0 +1,5 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.:
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'De &aelig;ndringer, du har lavet, vil g&aring; tabt, hvis du lukker denne side.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/de.js b/tinyMCE/plugins/autosave/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..f039e9a8e683f3fed389d60689eaf3158c09c8e5
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/de.js
@@ -0,0 +1,5 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Alle Ver&auml;nderungen an dieser Seite werden verloren gehen, wenn Sie diese Seite jetzt verlassen!'
+});
diff --git a/tinyMCE/plugins/autosave/langs/el.js b/tinyMCE/plugins/autosave/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..b085057db2333d3fa12a611b4e371792a2e067e8
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/el.js
@@ -0,0 +1,5 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Ïé áëëáãÝò ðïõ êÜíáôå èá ÷áèïýí áí öýãåôå áðü áõôÞ ôç óåëßäá.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/en.js b/tinyMCE/plugins/autosave/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..01951332d9ccbe322372f9310e09a634226247ca
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/en.js
@@ -0,0 +1,5 @@
+// EN lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'The changes you made will be lost if you navigate away from this page.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/es.js b/tinyMCE/plugins/autosave/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..cea9233073a6f8c9f1d172723945797981b3f7cd
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/es.js
@@ -0,0 +1,14 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Los cambios que hayas hecho pueden perderse si navegas fuera de esta p&aacute;gina.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/fa.js b/tinyMCE/plugins/autosave/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..01951332d9ccbe322372f9310e09a634226247ca
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/fa.js
@@ -0,0 +1,5 @@
+// EN lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'The changes you made will be lost if you navigate away from this page.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/fi.js b/tinyMCE/plugins/autosave/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..a94d546595cd7c2148f56858717c8b6f54fdb11c
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/fi.js
@@ -0,0 +1,5 @@
+// EN lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Tekemäsi muutokset menetetään jos poistut tältä sivulta.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/fr.js b/tinyMCE/plugins/autosave/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b904f418f0d0b876f82c8e12ebb11e6a16f6d93
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/fr.js
@@ -0,0 +1,6 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Vos modifications seront perdues si vous quittez cette page.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/fr_ca.js b/tinyMCE/plugins/autosave/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..01951332d9ccbe322372f9310e09a634226247ca
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/fr_ca.js
@@ -0,0 +1,5 @@
+// EN lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'The changes you made will be lost if you navigate away from this page.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/he.js b/tinyMCE/plugins/autosave/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf3fa3c26243d863afa378265f8bc7937ed388c2
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/he.js
@@ -0,0 +1,5 @@
+// HE lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'äùéðåééí ùáéöòú éàáãå àí úòæåá àú ãó æä.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/hu.js b/tinyMCE/plugins/autosave/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..53ba609cddd85d7708450c26166b516484d6ffc2
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/hu.js
@@ -0,0 +1,5 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'A módosítások el fognak veszni, ha elnavigálsz az oldalról.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/is.js b/tinyMCE/plugins/autosave/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..58c86a8c9fff95c4fdefcb0d2bb48fcfd4dd35e3
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/is.js
@@ -0,0 +1,5 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Breytingarnar sem þú gerðir munu hverfa ef þú flakkar annað.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/it.js b/tinyMCE/plugins/autosave/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..568aa2f26f99717e89ce2b8492f6a595fa4d007c
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/it.js
@@ -0,0 +1,11 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'I cambiamenti andranno persi se si carica un\'altra pagina.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/ja.js b/tinyMCE/plugins/autosave/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..9e988e4219b62f277dd7b7a9ba141fd575f9a826
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ja.js
@@ -0,0 +1,5 @@
+// JAlang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'ページを移動すると編集中の文章は失われます。'
+});
diff --git a/tinyMCE/plugins/autosave/langs/ja_euc-jp.js b/tinyMCE/plugins/autosave/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..a20a8a23443b940318fe5345c0b83a05f75f43ab
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ja_euc-jp.js
@@ -0,0 +1,5 @@
+// Japanese euc-jp
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : '¤³¤Î¥Ú¡¼¥¸¤«¤éÎ¥¤ì¤ì¤Ð¡¢Êѹ¹¤ÎÉôʬ¤¬¤Ê¤¯¤Ê¤ë¡£'
+});
diff --git a/tinyMCE/plugins/autosave/langs/ja_shift_jis.js b/tinyMCE/plugins/autosave/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..565c7c7ce4ccf7cb9b8db4ca289170d68ddce051
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ja_shift_jis.js
@@ -0,0 +1,5 @@
+// Japanese shift_jis
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : '‚±‚̃y[ƒW‚©‚ç—£‚ê‚ê‚΁A•ύX‚Ì•”•ª‚ª‚È‚­‚È‚éB'
+});
diff --git a/tinyMCE/plugins/autosave/langs/ja_utf-8.js b/tinyMCE/plugins/autosave/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..db82fabd19ee152dfbe7f4732f88a4f5f1e430d5
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ja_utf-8.js
@@ -0,0 +1,5 @@
+// Japanese utf-8
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'このページから離れれば、変更の部分がなくなる。'
+});
diff --git a/tinyMCE/plugins/autosave/langs/ko.js b/tinyMCE/plugins/autosave/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..01951332d9ccbe322372f9310e09a634226247ca
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ko.js
@@ -0,0 +1,5 @@
+// EN lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'The changes you made will be lost if you navigate away from this page.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/nb.js b/tinyMCE/plugins/autosave/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..149c159fb572e56a8b56f3e7d887963723e63f33
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/nb.js
@@ -0,0 +1,6 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Forandringene du gjorde forsvinner om du velger &aring; forlate denne siden.'
+});
+
diff --git a/tinyMCE/plugins/autosave/langs/nl.js b/tinyMCE/plugins/autosave/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..608764c85b4a5c6653994db9f9b87ebf46bbad2b
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/nl.js
@@ -0,0 +1,5 @@
+// NL lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'De gemaakte veranderingen zullen verloren gaan als u naar een andere pagina navigeert.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/nn.js b/tinyMCE/plugins/autosave/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..d1f261f45581b08b7adf7713b38181641aff3cc9
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/nn.js
@@ -0,0 +1,6 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Forandringene du gjorde forsvinner om du velger &aring; forlate denne siden.'
+});
+
diff --git a/tinyMCE/plugins/autosave/langs/pl.js b/tinyMCE/plugins/autosave/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..5575e6986d63265a68141a430d79c307c1687986
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/pl.js
@@ -0,0 +1,8 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+// fixed by lemiel 14.11.2005
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Zmiany jakie wprowadziłeś zostaną utracone, jeśli opuścisz teraz tę stronę.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/pt_br.js b/tinyMCE/plugins/autosave/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..3afcb6b9d99f00bbf485d1826e2b158b25e81ce7
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/pt_br.js
@@ -0,0 +1,13 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'As modificações feitas serão perdidas caso você navegue fora desta página.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/ro.js b/tinyMCE/plugins/autosave/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..35e18176b154a4d8b89e68c7e2caadf2aa4cc4fe
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ro.js
@@ -0,0 +1,5 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Modific&#259;rile pe care le-ai f&#259;cut vor fi pierdute dac&#259; p&#259;r&#259;se&#351;ti aceast&#259; pagin&#259;.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/ru.js b/tinyMCE/plugins/autosave/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..0d9c49ee0b02c1e53c6b716891f1bff8b54b65c7
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ru.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Изменения не будут потеряны если Вы уйдёте с этой страницы.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/ru_CP1251.js b/tinyMCE/plugins/autosave/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..badd2485ce3af3c99d105a241d96c7fcc587826e
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ru_CP1251.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Èçìåíåíèÿ íå áóäóò ïîòåðÿíû åñëè Âû óéä¸òå ñ ýòîé ñòðàíèöû.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/ru_KOI8-R.js b/tinyMCE/plugins/autosave/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..fede4cc29570fd43a3c04d54ea87c3d0339d41cb
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/ru_KOI8-R.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'éÚÍÅÎÅÎÉÑ ÎÅ ÂÕÄÕÔ ÐÏÔÅÒÑÎÙ ÅÓÌÉ ÷Ù ÕÊÄ£ÔÅ Ó ÜÔÏÊ ÓÔÒÁÎÉÃÙ.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/si.js b/tinyMCE/plugins/autosave/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..43f392332347e54ab59b3c6c2760a1663adf50d2
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/si.js
@@ -0,0 +1,5 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Va&#353;e spremembe se bodo izgubile, &#269;e boste nalo&#382;ili drugo stran.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/sk.js b/tinyMCE/plugins/autosave/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..0224a754d72b26c774dd82cee768dd3745de93cf
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/sk.js
@@ -0,0 +1,13 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Zmeny, ktoré ste urobyl(a) budú stratené, ak opustíte túto stránku.'
+});
+
diff --git a/tinyMCE/plugins/autosave/langs/sq.js b/tinyMCE/plugins/autosave/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..b297c85f419200925cf48077ebdff952c9ccfc0a
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/sq.js
@@ -0,0 +1,5 @@
+// EN lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Ndryshimet e bera do te humbasin po naviguat jashte kesaj faqeje.'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/autosave/langs/sr.js b/tinyMCE/plugins/autosave/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..1a1104a5ee0f05534505463df5266c2867cadc4b
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/sr.js
@@ -0,0 +1,5 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Promene koje ste napravili biće izgubljene ako pređete na drugu stranu.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/sv.js b/tinyMCE/plugins/autosave/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..7c1b66ee43d98b4a75651cca3933941f4b631736
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/sv.js
@@ -0,0 +1,6 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'F&ouml;r&auml;ndringarna du gjorde kommer att g&aring; f&ouml;rlorade om du v&auml;ljer att l&auml;mna denna sida.'
+});
+
diff --git a/tinyMCE/plugins/autosave/langs/sv_utf8.js b/tinyMCE/plugins/autosave/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..7c1b66ee43d98b4a75651cca3933941f4b631736
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/sv_utf8.js
@@ -0,0 +1,6 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'F&ouml;r&auml;ndringarna du gjorde kommer att g&aring; f&ouml;rlorade om du v&auml;ljer att l&auml;mna denna sida.'
+});
+
diff --git a/tinyMCE/plugins/autosave/langs/tr.js b/tinyMCE/plugins/autosave/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..f122bf1dc1c57a6947d1bc11847649695c256bc8
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/tr.js
@@ -0,0 +1,5 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Baþka bir sayfayý görüntülerseniz yaptýðýnýz deðiþiklikleri kaybedeceksiniz!'
+});
diff --git a/tinyMCE/plugins/autosave/langs/uk.js b/tinyMCE/plugins/autosave/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..b9afcd9291382b3a9b84d6f42f7d8b1761d48d19
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/uk.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Зміни не будуть втрачені коли Ви підете з цієї сторінки.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/uk_CP1251.js b/tinyMCE/plugins/autosave/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..f67acb6fb38471e36b4638654dab9970a56da8b6
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/uk_CP1251.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Çì³íè íå áóäóòü âòðà÷åí³ êîëè Âè ï³äåòå ç ö³º¿ ñòîð³íêè.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/uk_KOI8-U.js b/tinyMCE/plugins/autosave/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..858bc50686e00a27cbd13221530c7f3b89a2bf21
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/uk_KOI8-U.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'úͦÎÉ ÎÅ ÂÕÄÕÔØ ×ÔÒÁÞÅΦ ËÏÌÉ ÷É Ð¦ÄÅÔÅ Ú Ã¦¤§ ÓÔÏÒ¦ÎËÉ.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/vi.js b/tinyMCE/plugins/autosave/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..5a6bdf8dcf4be208539eaf0b8027b16fcf3edd4d
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/vi.js
@@ -0,0 +1,5 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Các thay đổi của bạn sẽ bị mất nếu bạn di chuyển khỏi trang này.'
+});
diff --git a/tinyMCE/plugins/autosave/langs/zh_cn.js b/tinyMCE/plugins/autosave/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..c6cb4ed53f0ba25d28d572bdedd4ca47df22eac5
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/zh_cn.js
@@ -0,0 +1,6 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Èç¹ûÄúÀ뿪±¾Ò³£¬ÄúËù×÷µÄÐ޸Ľ«»áÏûʧ¡£'
+});
diff --git a/tinyMCE/plugins/autosave/langs/zh_cn_utf8.js b/tinyMCE/plugins/autosave/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..401e40edb3c1bc60dde6b6f1301598c210f2d29a
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/zh_cn_utf8.js
@@ -0,0 +1,6 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : '如果您离开本页,您所作的修改将会消失。'
+});
diff --git a/tinyMCE/plugins/autosave/langs/zh_tw.js b/tinyMCE/plugins/autosave/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..ebf0f60a9a77734e0a4fd1cf51e47773cd255ca3
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/zh_tw.js
@@ -0,0 +1,6 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : '©Ò¦³¤w§@ªº§ïÅÜ·|¦]±zÂ÷¶}¦¹­¶­±¦Ó¦Û°Ê©ñ±ó¤£Àx¦s'
+});
diff --git a/tinyMCE/plugins/autosave/langs/zh_tw_utf8.js b/tinyMCE/plugins/autosave/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..e18fc0045cb2a4569384cdf76e919b148a3e34c9
--- /dev/null
+++ b/tinyMCE/plugins/autosave/langs/zh_tw_utf8.js
@@ -0,0 +1,6 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : '所有已作的改變會因您離開此頁面而自動放棄不儲存'
+});
diff --git a/tinyMCE/plugins/autosave/readme.txt b/tinyMCE/plugins/autosave/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/autosave/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/bbcode/editor_plugin.js b/tinyMCE/plugins/bbcode/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..805aaf43473095571e389d1280d5fbb3aa5ae576
--- /dev/null
+++ b/tinyMCE/plugins/bbcode/editor_plugin.js
@@ -0,0 +1 @@
+var TinyMCE_BBCodePlugin={getInfo:function(){return{longname:'BBCode Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},cleanup:function(type,content){var dialect=tinyMCE.getParam('bbcode_dialect','punbb').toLowerCase();switch(type){case"insert_to_editor":content=this['_'+dialect+'_bbcode2html'](content);break;case"get_from_editor":content=this['_'+dialect+'_html2bbcode'](content);break}return content},_punbb_html2bbcode:function(s){s=tinyMCE.trim(s);function rep(re,str){s=s.replace(re,str)};rep(/<a href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url]$1[/url]");rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");rep(/<font>(.*?)<\/font>/gi,"$1");rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");rep(/<\/(strong|b)>/gi,"[/b]");rep(/<(strong|b)>/gi,"[b]");rep(/<\/(em|i)>/gi,"[/i]");rep(/<(em|i)>/gi,"[i]");rep(/<\/u>/gi,"[/u]");rep(/<u>/gi,"[u]");rep(/<br \/>/gi,"\n");rep(/<br\/>/gi,"\n");rep(/<br>/gi,"\n");rep(/<p>/gi,"");rep(/<\/p>/gi,"\n");rep(/&nbsp;/gi," ");rep(/&quot;/gi,"\"");rep(/&lt;/gi,"<");rep(/&gt;/gi,">");rep(/&amp;/gi,"&");rep(/&undefined;/gi,"'");return s},_punbb_bbcode2html:function(s){s=tinyMCE.trim(s);function rep(re,str){s=s.replace(re,str)};rep(/\n/gi,"<br />");rep(/\[b\]/gi,"<strong>");rep(/\[\/b\]/gi,"</strong>");rep(/\[i\]/gi,"<em>");rep(/\[\/i\]/gi,"</em>");rep(/\[u\]/gi,"<u>");rep(/\[\/u\]/gi,"</u>");rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");return s}};tinyMCE.addPlugin("bbcode",TinyMCE_BBCodePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/bbcode/editor_plugin_src.js b/tinyMCE/plugins/bbcode/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..1d38317e28519150b0bb8ca8c14b1ed2bb3bb074
--- /dev/null
+++ b/tinyMCE/plugins/bbcode/editor_plugin_src.js
@@ -0,0 +1,102 @@
+var TinyMCE_BBCodePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'BBCode Plugin',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	cleanup : function(type, content) {
+		var dialect = tinyMCE.getParam('bbcode_dialect', 'punbb').toLowerCase();
+
+		switch (type) {
+			case "insert_to_editor":
+				content = this['_' + dialect + '_bbcode2html'](content);
+				break;
+
+			case "get_from_editor":
+				content = this['_' + dialect + '_html2bbcode'](content);
+				break;
+		}
+
+		return content;
+	},
+
+	// Private methods
+
+	// HTML -> BBCode in PunBB dialect
+	_punbb_html2bbcode : function(s) {
+		s = tinyMCE.trim(s);
+
+		function rep(re, str) {
+			s = s.replace(re, str);
+		};
+
+		// example: <strong> to [b]
+		rep(/<a href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url]$1[/url]");
+		rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
+		rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
+		rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
+		rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
+		rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
+		rep(/<font>(.*?)<\/font>/gi,"$1");
+		rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
+		rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");
+		rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");
+		rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");
+		rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");
+		rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");
+		rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");
+		rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");
+		rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");
+		rep(/<\/(strong|b)>/gi,"[/b]");
+		rep(/<(strong|b)>/gi,"[b]");
+		rep(/<\/(em|i)>/gi,"[/i]");
+		rep(/<(em|i)>/gi,"[i]");
+		rep(/<\/u>/gi,"[/u]");
+		rep(/<u>/gi,"[u]");
+		rep(/<br \/>/gi,"\n");
+		rep(/<br\/>/gi,"\n");
+		rep(/<br>/gi,"\n");
+		rep(/<p>/gi,"");
+		rep(/<\/p>/gi,"\n");
+		rep(/&nbsp;/gi," ");
+		rep(/&quot;/gi,"\"");
+		rep(/&lt;/gi,"<");
+		rep(/&gt;/gi,">");
+		rep(/&amp;/gi,"&");
+		rep(/&undefined;/gi,"'"); // quickfix
+
+		return s; 
+	},
+
+	// BBCode -> HTML from PunBB dialect
+	_punbb_bbcode2html : function(s) {
+		s = tinyMCE.trim(s);
+
+		function rep(re, str) {
+			s = s.replace(re, str);
+		};
+
+		// example: [b] to <strong>
+		rep(/\n/gi,"<br />");
+		rep(/\[b\]/gi,"<strong>");
+		rep(/\[\/b\]/gi,"</strong>");
+		rep(/\[i\]/gi,"<em>");
+		rep(/\[\/i\]/gi,"</em>");
+		rep(/\[u\]/gi,"<u>");
+		rep(/\[\/u\]/gi,"</u>");
+		rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
+		rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
+		rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");
+		rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");
+		rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");
+
+		return s; 
+	}
+};
+
+tinyMCE.addPlugin("bbcode", TinyMCE_BBCodePlugin);
diff --git a/tinyMCE/plugins/cleanup/editor_plugin.js b/tinyMCE/plugins/cleanup/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/tinyMCE/plugins/cleanup/editor_plugin_src.js b/tinyMCE/plugins/cleanup/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e1312fa0fa6da7645f55e0153f5d5ef5d88a1e2
--- /dev/null
+++ b/tinyMCE/plugins/cleanup/editor_plugin_src.js
@@ -0,0 +1,10 @@
+/**
+ * $Id: editor_plugin_src.js 162 2007-01-03 16:16:52Z spocke $
+ *
+ * Experimental plugin for new Cleanup routine, this logic will be moved into the core ones it's stable enougth.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Dummy file since cleanup is now moved to core */
diff --git a/tinyMCE/plugins/cleanup/readme.txt b/tinyMCE/plugins/cleanup/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7a803b00f0c7f0a7e4276a127a1d4b96960aec51
--- /dev/null
+++ b/tinyMCE/plugins/cleanup/readme.txt
@@ -0,0 +1 @@
+Dummy plugin since cleanup is now moved into core.
diff --git a/tinyMCE/plugins/contextmenu/css/contextmenu.css b/tinyMCE/plugins/contextmenu/css/contextmenu.css
new file mode 100644
index 0000000000000000000000000000000000000000..fb3721468c3135f71dff0e0b070f070b3d461c7c
--- /dev/null
+++ b/tinyMCE/plugins/contextmenu/css/contextmenu.css
@@ -0,0 +1,74 @@
+.contextMenuIEPopup {
+	padding: 0;
+	margin: 0;
+	border: 0;
+	overflow: hidden;
+}
+
+.contextMenu {
+	position: absolute;
+	cursor: default;
+	z-index: 1000;
+	border: 1px solid #D4D0C8;
+	background-color: #FFFFFF;
+}
+
+.contextMenuItem, .contextMenuItemOver {
+}
+
+.contextMenuSeparator {
+	width: 100%;
+	background-color: #D4D0C8;
+	border: 0;
+}
+
+.contextMenuImage, .contextMenuItemDisabled {
+	border: 0;
+}
+
+.contextMenuIcon {
+	background-color: #F0F0EE;
+}
+
+.contextMenuItemOver .contextMenuIcon {
+	background-color: #B6BDD2;
+}
+
+.contextMenuIcon {
+	background-color: #F0F0EE;
+}
+
+.contextMenuItemDisabled img {
+	filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
+	-moz-opacity:0.3;
+	opacity: 0.3;
+}
+
+.contextMenuText {
+	font-family: Tahoma, Verdana, Arial, Helvetica;
+	font-size: 11px;
+	line-height: 20px;
+}
+
+.contextMenuItemDisabled {
+	color: #AAAAAA;
+}
+
+.contextMenuText a {
+	display: block;
+	line-height: 20px;
+	width: 100%;
+	text-decoration: none;
+	color: black;
+	font-weight: normal;
+	margin: 0;
+	padding: 0;
+}
+
+.contextMenuText a:hover {
+	background-color: #B6BDD2;
+	text-decoration: none !important;
+	font-weight: normal;
+	margin: 0;
+	padding: 0;
+}
diff --git a/tinyMCE/plugins/contextmenu/editor_plugin.js b/tinyMCE/plugins/contextmenu/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..8426e0b64221824924d48c80b4d45ae63318a53a
--- /dev/null
+++ b/tinyMCE/plugins/contextmenu/editor_plugin.js
@@ -0,0 +1 @@
+if(!tinyMCE.settings['contextmenu_skip_plugin_css']){tinyMCE.loadCSS(tinyMCE.baseURL+"/plugins/contextmenu/css/contextmenu.css")}var TinyMCE_ContextMenuPlugin={_contextMenu:null,getInfo:function(){return{longname:'Context menus',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(tinyMCE.isMSIE5_0&&tinyMCE.isOpera)return;TinyMCE_ContextMenuPlugin._contextMenu=new TinyMCE_ContextMenu({commandhandler:"TinyMCE_ContextMenuPlugin._commandHandler",spacer_image:tinyMCE.baseURL+"/plugins/contextmenu/images/spacer.gif"});tinyMCE.addEvent(inst.getDoc(),"click",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(inst.getDoc(),"keypress",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(inst.getDoc(),"keydown",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(document,"click",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(document,"keypress",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(document,"keydown",TinyMCE_ContextMenuPlugin._hideContextMenu);if(tinyMCE.isGecko){tinyMCE.addEvent(inst.getDoc(),"contextmenu",function(e){TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE?inst.contentWindow.event:e,inst)})}else tinyMCE.addEvent(inst.getDoc(),"contextmenu",TinyMCE_ContextMenuPlugin._onContextMenu)},_onContextMenu:function(e){var elm=tinyMCE.isMSIE?e.srcElement:e.target;var targetInst,body;if((body=tinyMCE.getParentElement(elm,"body"))!=null){for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;if(body==inst.getBody()){targetInst=inst;break}}return TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE?targetInst.contentWindow.event:e,targetInst)}},_showContextMenu:function(e,inst){if(e.ctrlKey)return true;function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):""}var x,y,elm,contextMenu;var pos=tinyMCE.getAbsPosition(inst.iframeElement);x=tinyMCE.isMSIE?e.screenX:pos.absLeft+(e.pageX-inst.getBody().scrollLeft);y=tinyMCE.isMSIE?e.screenY:pos.absTop+(e.pageY-inst.getBody().scrollTop);elm=tinyMCE.isMSIE?e.srcElement:e.target;contextMenu=this._contextMenu;contextMenu.inst=inst;window.setTimeout(function(){var theme=tinyMCE.getParam("theme");contextMenu.clearAll();var sel=inst.selection.getSelectedText().length!=0||elm.nodeName=="IMG";contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/cut.gif","$lang_cut_desc","Cut","",!sel);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/copy.gif","$lang_copy_desc","Copy","",!sel);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_paste_desc","Paste","",false);if(sel||(elm?(elm.nodeName=='A'&&tinyMCE.getAttrib(elm,'name')=='')||(elm.nodeName=='IMG'):false)){contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/themes/advanced/images/link.gif","$lang_link_desc",inst.hasPlugin("advlink")?"mceAdvLink":"mceLink");contextMenu.addItem(tinyMCE.baseURL+"/themes/advanced/images/unlink.gif","$lang_unlink_desc","unlink","",(elm?(elm.nodeName!='A')&&(elm.nodeName!='IMG'):true))}elm=tinyMCE.getParentElement(elm,"img,table,td"+(inst.hasPlugin("advhr")?',hr':''));if(elm){switch(elm.nodeName){case"IMG":contextMenu.addSeparator();if(tinyMCE.hasPlugin('flash')&&tinyMCE.getAttrib(elm,'class').indexOf('mceItemFlash')!=-1)contextMenu.addItem(tinyMCE.baseURL+"/plugins/flash/images/flash.gif","$lang_flash_props","mceFlash");else if(tinyMCE.hasPlugin('media')&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(elm,'class')))contextMenu.addItem(tinyMCE.baseURL+"/plugins/flash/images/flash.gif","$lang_media_title","mceMedia");else contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/image.gif","$lang_image_props_desc",inst.hasPlugin("advimage")?"mceAdvImage":"mceImage");break;case"HR":contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/advhr/images/advhr.gif","$lang_insert_advhr_desc","mceAdvancedHr");break;case"TABLE":case"TD":if(inst.hasPlugin("table")){var colspan=(elm.nodeName=="TABLE")?"":getAttrib(elm,"colspan");var rowspan=(elm.nodeName=="TABLE")?"":getAttrib(elm,"rowspan");colspan=colspan==""?"1":colspan;rowspan=rowspan==""?"1":rowspan;contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/cut.gif","$lang_table_cut_row_desc","mceTableCutRow");contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/copy.gif","$lang_table_copy_row_desc","mceTableCopyRow");contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_table_paste_row_before_desc","mceTablePasteRowBefore","",inst.tableRowClipboard==null);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_table_paste_row_after_desc","mceTablePasteRowAfter","",inst.tableRowClipboard==null);contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_desc","mceInsertTable","insert");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_props_desc","mceInsertTable");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_cell_props.gif","$lang_table_cell_desc","mceTableCellProps");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete.gif","$lang_table_del","mceTableDelete");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_row_props.gif","$lang_table_row_desc","mceTableRowProps");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_row_before.gif","$lang_table_row_before_desc","mceTableInsertRowBefore");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_row_after.gif","$lang_table_row_after_desc","mceTableInsertRowAfter");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete_row.gif","$lang_table_delete_row_desc","mceTableDeleteRow");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_col_before.gif","$lang_table_col_before_desc","mceTableInsertColBefore");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_col_after.gif","$lang_table_col_after_desc","mceTableInsertColAfter");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete_col.gif","$lang_table_delete_col_desc","mceTableDeleteCol");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_split_cells.gif","$lang_table_split_cells_desc","mceTableSplitCells","",(colspan=="1"&&rowspan=="1"));contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_merge_cells.gif","$lang_table_merge_cells_desc","mceTableMergeCells","",false)}break}}else{if(inst.hasPlugin("table")){contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_desc","mceInsertTable","insert")}}contextMenu.show(x,y)},10);tinyMCE.cancelEvent(e);return false},_hideContextMenu:function(){if(TinyMCE_ContextMenuPlugin._contextMenu)TinyMCE_ContextMenuPlugin._contextMenu.hide()},_commandHandler:function(command,value){var cm=TinyMCE_ContextMenuPlugin._contextMenu;cm.hide();var ui=false;if(command=="mceInsertTable"||command=="mceTableCellProps"||command=="mceTableRowProps"||command=="mceTableMergeCells")ui=true;if(command=="Paste")value=null;if(tinyMCE.getParam("dialog_type")=="modal"&&tinyMCE.isMSIE){window.setTimeout(function(){cm.inst.execCommand(command,ui,value)},100)}else cm.inst.execCommand(command,ui,value)}};tinyMCE.addPlugin("contextmenu",TinyMCE_ContextMenuPlugin);function TinyMCE_ContextMenu(settings){var doc,self=this;function defParam(key,def_val){settings[key]=typeof(settings[key])!="undefined"?settings[key]:def_val}this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.contextMenuDiv=document.createElement("div");this.contextMenuDiv.className="contextMenu";this.contextMenuDiv.setAttribute("class","contextMenu");this.contextMenuDiv.style.display="none";this.contextMenuDiv.style.position='absolute';this.contextMenuDiv.style.zindex=1000;this.contextMenuDiv.style.left='0';this.contextMenuDiv.style.top='0';this.contextMenuDiv.unselectable="on";document.body.appendChild(this.contextMenuDiv);defParam("commandhandler","");defParam("spacer_image","images/spacer.gif");this.items=new Array();this.settings=settings;this.html="";if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0&&!tinyMCE.isOpera){this.pop=window.createPopup();doc=this.pop.document;doc.open();doc.write('<html><head><link href="'+tinyMCE.baseURL+'/plugins/contextmenu/css/contextmenu.css" rel="stylesheet" type="text/css" /></head><body unselectable="yes" class="contextMenuIEPopup"></body></html>');doc.close()}};TinyMCE_ContextMenu.prototype={clearAll:function(){this.html="";this.contextMenuDiv.innerHTML=""},addSeparator:function(){this.html+='<tr class="contextMenuItem"><td class="contextMenuIcon"><img src="'+this.settings['spacer_image']+'" width="20" height="1" class="contextMenuImage" /></td><td><img class="contextMenuSeparator" width="1" height="1" src="'+this.settings['spacer_image']+'" /></td></tr>'},addItem:function(icon,title,command,value,disabled){if(title.charAt(0)=='$')title=tinyMCE.getLang(title.substring(1));var onMouseDown='';var html='';if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0)onMouseDown='contextMenu.execCommand(\''+command+'\', \''+value+'\');return false;';else onMouseDown=this.settings['commandhandler']+'(\''+command+'\', \''+value+'\');return false;';if(icon=="")icon=this.settings['spacer_image'];if(!disabled)html+='<tr class="contextMenuItem">';else html+='<tr class="contextMenuItemDisabled">';html+='<td class="contextMenuIcon"><img src="'+icon+'" width="20" height="20" class="contextMenuImage" /></td>';html+='<td><div class="contextMenuText">';html+='<a href="javascript:void(0);" onclick="'+onMouseDown+'" onmousedown="return false;">&#160;';html+=title;html+='&#160;</a>';html+='</div></td>';html+='</tr>';this.html+=html},show:function(x,y){var vp,width,height,yo;if(this.html=="")return;var html='';html+='<a href="#"></a><table border="0" cellpadding="0" cellspacing="0">';html+=this.html;html+='</table>';this.contextMenuDiv.innerHTML=html;this.contextMenuDiv.style.display="block";width=this.contextMenuDiv.offsetWidth;height=this.contextMenuDiv.offsetHeight;this.contextMenuDiv.style.display="none";if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0&&!tinyMCE.isOpera){this.pop.document.body.innerHTML='<div class="contextMenu">'+html+"</div>";this.pop.document.tinyMCE=tinyMCE;this.pop.document.contextMenu=this;this.pop.show(x,y,width,height)}else{vp=this.getViewPort();yo=tinyMCE.isMSIE5_0?document.body.scrollTop:self.pageYOffset;this.contextMenuDiv.style.left=(x>vp.left+vp.width-width?vp.left+vp.width-width:x)+'px';this.contextMenuDiv.style.top=(y>vp.top+vp.height-height?vp.top+vp.height-height:y)+'px';this.contextMenuDiv.style.display="block"}},getViewPort:function(){return{left:self.pageXOffset||self.document.documentElement.scrollLeft||self.document.body.scrollLeft,top:self.pageYOffset||self.document.documentElement.scrollTop||self.document.body.scrollTop,width:document.documentElement.offsetWidth||document.body.offsetWidth,height:self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}},hide:function(){if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0&&!tinyMCE.isOpera)this.pop.hide();else this.contextMenuDiv.style.display="none"},execCommand:function(command,value){eval(this.settings['commandhandler']+"(command, value);")}};
\ No newline at end of file
diff --git a/tinyMCE/plugins/contextmenu/editor_plugin_src.js b/tinyMCE/plugins/contextmenu/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..51340f608e92288e7ee11908a18c52ac45119cf8
--- /dev/null
+++ b/tinyMCE/plugins/contextmenu/editor_plugin_src.js
@@ -0,0 +1,360 @@
+/**
+ * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+if (!tinyMCE.settings['contextmenu_skip_plugin_css']) {
+	tinyMCE.loadCSS(tinyMCE.baseURL + "/plugins/contextmenu/css/contextmenu.css");
+}
+
+var TinyMCE_ContextMenuPlugin = {
+	// Private fields
+	_contextMenu : null,
+
+	getInfo : function() {
+		return {
+			longname : 'Context menus',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		// Is not working on MSIE 5.0 or Opera no contextmenu event
+		if (tinyMCE.isMSIE5_0 && tinyMCE.isOpera)
+			return;
+
+		TinyMCE_ContextMenuPlugin._contextMenu = new TinyMCE_ContextMenu({
+			commandhandler : "TinyMCE_ContextMenuPlugin._commandHandler",
+			spacer_image : tinyMCE.baseURL + "/plugins/contextmenu/images/spacer.gif"
+		});
+
+		// Add hide event handles
+		tinyMCE.addEvent(inst.getDoc(), "click", TinyMCE_ContextMenuPlugin._hideContextMenu);
+		tinyMCE.addEvent(inst.getDoc(), "keypress", TinyMCE_ContextMenuPlugin._hideContextMenu);
+		tinyMCE.addEvent(inst.getDoc(), "keydown", TinyMCE_ContextMenuPlugin._hideContextMenu);
+		tinyMCE.addEvent(document, "click", TinyMCE_ContextMenuPlugin._hideContextMenu);
+		tinyMCE.addEvent(document, "keypress", TinyMCE_ContextMenuPlugin._hideContextMenu);
+		tinyMCE.addEvent(document, "keydown", TinyMCE_ContextMenuPlugin._hideContextMenu);
+
+		// Attach contextmenu event
+		if (tinyMCE.isGecko) {
+			tinyMCE.addEvent(inst.getDoc(), "contextmenu", function(e) {TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE ? inst.contentWindow.event : e, inst);});
+		} else
+			tinyMCE.addEvent(inst.getDoc(), "contextmenu", TinyMCE_ContextMenuPlugin._onContextMenu);
+	},
+
+	// Private plugin internal methods
+
+	_onContextMenu : function(e) {
+		var elm = tinyMCE.isMSIE ? e.srcElement : e.target;
+		var targetInst, body;
+
+		// Find instance
+		if ((body = tinyMCE.getParentElement(elm, "body")) != null) {
+			for (var n in tinyMCE.instances) {
+				var inst = tinyMCE.instances[n];
+				if (!tinyMCE.isInstance(inst))
+					continue;
+
+				if (body == inst.getBody()) {
+					targetInst = inst;
+					break;
+				}
+			}
+
+			return TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE ? targetInst.contentWindow.event : e, targetInst);
+		}
+	},
+
+	_showContextMenu : function(e, inst) {
+		if (e.ctrlKey)
+			return true;
+
+		function getAttrib(elm, name) {
+			return elm.getAttribute(name) ? elm.getAttribute(name) : "";
+		}
+
+		var x, y, elm, contextMenu;
+		var pos = tinyMCE.getAbsPosition(inst.iframeElement);
+
+		x = tinyMCE.isMSIE ? e.screenX : pos.absLeft + (e.pageX - inst.getBody().scrollLeft);
+		y = tinyMCE.isMSIE ? e.screenY : pos.absTop + (e.pageY - inst.getBody().scrollTop);
+		elm = tinyMCE.isMSIE ? e.srcElement : e.target;
+
+		contextMenu = this._contextMenu;
+		contextMenu.inst = inst;
+
+		// Mozilla needs some time
+		window.setTimeout(function () {
+			var theme = tinyMCE.getParam("theme");
+
+			contextMenu.clearAll();
+			var sel = inst.selection.getSelectedText().length != 0 || elm.nodeName == "IMG";
+
+			// Default items
+			contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_cut_desc", "Cut", "", !sel);
+			contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_copy_desc", "Copy", "", !sel);
+			contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_paste_desc", "Paste", "", false);
+
+			if (sel || (elm ? (elm.nodeName == 'A' && tinyMCE.getAttrib(elm, 'name') == '') || (elm.nodeName == 'IMG') : false)) {
+				contextMenu.addSeparator();
+				contextMenu.addItem(tinyMCE.baseURL + "/themes/advanced/images/link.gif", "$lang_link_desc", inst.hasPlugin("advlink") ? "mceAdvLink" : "mceLink");
+				contextMenu.addItem(tinyMCE.baseURL + "/themes/advanced/images/unlink.gif", "$lang_unlink_desc", "unlink", "", (elm ? (elm.nodeName != 'A') && (elm.nodeName != 'IMG') : true));
+			}
+
+			// Get element
+			elm = tinyMCE.getParentElement(elm, "img,table,td" + (inst.hasPlugin("advhr") ? ',hr' : ''));
+			if (elm) {
+				switch (elm.nodeName) {
+					case "IMG":
+						contextMenu.addSeparator();
+
+						// If flash
+						if (tinyMCE.hasPlugin('flash') && tinyMCE.getAttrib(elm, 'class').indexOf('mceItemFlash') != -1)
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_flash_props", "mceFlash");
+						else if (tinyMCE.hasPlugin('media') && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(elm, 'class')))
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_media_title", "mceMedia");
+						else
+							contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/image.gif", "$lang_image_props_desc", inst.hasPlugin("advimage") ? "mceAdvImage" : "mceImage");
+						break;
+
+					case "HR":
+						contextMenu.addSeparator();
+						contextMenu.addItem(tinyMCE.baseURL + "/plugins/advhr/images/advhr.gif", "$lang_insert_advhr_desc", "mceAdvancedHr");
+						break;
+
+					case "TABLE":
+					case "TD":
+						// Is table plugin loaded
+						if (inst.hasPlugin("table")) {
+							var colspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "colspan");
+							var rowspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "rowspan");
+
+							colspan = colspan == "" ? "1" : colspan;
+							rowspan = rowspan == "" ? "1" : rowspan;
+
+							contextMenu.addSeparator();
+							contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_table_cut_row_desc", "mceTableCutRow");
+							contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_table_copy_row_desc", "mceTableCopyRow");
+							contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_before_desc", "mceTablePasteRowBefore", "", inst.tableRowClipboard == null);
+							contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_after_desc", "mceTablePasteRowAfter", "", inst.tableRowClipboard == null);
+
+	/*						contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifyleft.gif", "$lang_justifyleft_desc", "JustifyLeft", "", false);
+							contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifycenter.gif", "$lang_justifycenter_desc", "JustifyCenter", "", false);
+							contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifyright.gif", "$lang_justifyright_desc", "JustifyRight", "", false);
+							contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifyfull.gif", "$lang_justifyfull_desc", "JustifyFull", "", false);*/
+							contextMenu.addSeparator();
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_desc", "mceInsertTable", "insert");
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_props_desc", "mceInsertTable");
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_cell_props.gif", "$lang_table_cell_desc", "mceTableCellProps");
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete.gif", "$lang_table_del", "mceTableDelete");
+							contextMenu.addSeparator();
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_row_props.gif", "$lang_table_row_desc", "mceTableRowProps");
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_before.gif", "$lang_table_row_before_desc", "mceTableInsertRowBefore");
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_after.gif", "$lang_table_row_after_desc", "mceTableInsertRowAfter");
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_row.gif", "$lang_table_delete_row_desc", "mceTableDeleteRow");
+							contextMenu.addSeparator();
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_before.gif", "$lang_table_col_before_desc", "mceTableInsertColBefore");
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_after.gif", "$lang_table_col_after_desc", "mceTableInsertColAfter");
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_col.gif", "$lang_table_delete_col_desc", "mceTableDeleteCol");
+							contextMenu.addSeparator();
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_split_cells.gif", "$lang_table_split_cells_desc", "mceTableSplitCells", "", (colspan == "1" && rowspan == "1"));
+							contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_merge_cells.gif", "$lang_table_merge_cells_desc", "mceTableMergeCells", "", false);
+						}
+						break;
+				}
+			}  else {
+				// Add table specific
+				if (inst.hasPlugin("table")) {
+					contextMenu.addSeparator();
+					contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_desc", "mceInsertTable", "insert");
+				}
+			}
+
+			contextMenu.show(x, y);
+		}, 10);
+
+		// Cancel default handeling
+		tinyMCE.cancelEvent(e);
+		return false;
+	},
+
+	_hideContextMenu : function() {
+		if (TinyMCE_ContextMenuPlugin._contextMenu)
+			TinyMCE_ContextMenuPlugin._contextMenu.hide();
+	},
+
+	_commandHandler : function(command, value) {
+		var cm = TinyMCE_ContextMenuPlugin._contextMenu;
+
+		cm.hide();
+
+		// UI must be true on these
+		var ui = false;
+		if (command == "mceInsertTable" || command == "mceTableCellProps" || command == "mceTableRowProps" || command == "mceTableMergeCells")
+			ui = true;
+
+		if (command == "Paste")
+			value = null;
+
+		if (tinyMCE.getParam("dialog_type") == "modal" && tinyMCE.isMSIE) {
+			// Cell properties will generate access denied error is this isn't done?!
+			window.setTimeout(function() {
+				cm.inst.execCommand(command, ui, value);
+			}, 100);
+		} else
+			cm.inst.execCommand(command, ui, value);
+	}
+};
+
+tinyMCE.addPlugin("contextmenu", TinyMCE_ContextMenuPlugin);
+
+// Context menu class
+
+function TinyMCE_ContextMenu(settings) {
+	var doc, self = this;
+
+	// Default value function
+	function defParam(key, def_val) {
+		settings[key] = typeof(settings[key]) != "undefined" ? settings[key] : def_val;
+	}
+
+	this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
+
+	// Setup contextmenu div
+	this.contextMenuDiv = document.createElement("div");
+	this.contextMenuDiv.className = "contextMenu";
+	this.contextMenuDiv.setAttribute("class", "contextMenu");
+	this.contextMenuDiv.style.display = "none";
+	this.contextMenuDiv.style.position = 'absolute';
+	this.contextMenuDiv.style.zindex = 1000;
+	this.contextMenuDiv.style.left = '0';
+	this.contextMenuDiv.style.top = '0';
+	this.contextMenuDiv.unselectable = "on";
+
+	document.body.appendChild(this.contextMenuDiv);
+
+	// Setup default values
+	defParam("commandhandler", "");
+	defParam("spacer_image", "images/spacer.gif");
+
+	this.items = new Array();
+	this.settings = settings;
+	this.html = "";
+
+	// IE Popup
+	if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0 && !tinyMCE.isOpera) {
+		this.pop = window.createPopup();
+		doc = this.pop.document;
+		doc.open();
+		doc.write('<html><head><link href="' + tinyMCE.baseURL + '/plugins/contextmenu/css/contextmenu.css" rel="stylesheet" type="text/css" /></head><body unselectable="yes" class="contextMenuIEPopup"></body></html>');
+		doc.close();
+	}
+};
+
+TinyMCE_ContextMenu.prototype = {
+	clearAll : function() {
+		this.html = "";
+		this.contextMenuDiv.innerHTML = "";
+	},
+
+	addSeparator : function() {
+		this.html += '<tr class="contextMenuItem"><td class="contextMenuIcon"><img src="' + this.settings['spacer_image'] + '" width="20" height="1" class="contextMenuImage" /></td><td><img class="contextMenuSeparator" width="1" height="1" src="' + this.settings['spacer_image'] + '" /></td></tr>';
+	},
+
+	addItem : function(icon, title, command, value, disabled) {
+		if (title.charAt(0) == '$')
+			title = tinyMCE.getLang(title.substring(1));
+
+		var onMouseDown = '';
+		var html = '';
+
+		if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0)
+			onMouseDown = 'contextMenu.execCommand(\'' + command + '\', \'' + value + '\');return false;';
+		else
+			onMouseDown = this.settings['commandhandler'] + '(\'' + command + '\', \'' + value + '\');return false;';
+
+		if (icon == "")
+			icon = this.settings['spacer_image'];
+
+		if (!disabled)
+			html += '<tr class="contextMenuItem">';
+		else
+			html += '<tr class="contextMenuItemDisabled">';
+
+		html += '<td class="contextMenuIcon"><img src="' + icon + '" width="20" height="20" class="contextMenuImage" /></td>';
+		html += '<td><div class="contextMenuText">';
+		html += '<a href="javascript:void(0);" onclick="' + onMouseDown + '" onmousedown="return false;">&#160;';
+
+		// Add text
+		html += title;
+
+		html += '&#160;</a>';
+		html += '</div></td>';
+		html += '</tr>';
+
+		// Add to main
+		this.html += html;
+	},
+
+	show : function(x, y) {
+		var vp, width, height, yo;
+
+		if (this.html == "")
+			return;
+
+		var html = '';
+
+		html += '<a href="#"></a><table border="0" cellpadding="0" cellspacing="0">';
+		html += this.html;
+		html += '</table>';
+
+		this.contextMenuDiv.innerHTML = html;
+
+		// Get dimensions
+		this.contextMenuDiv.style.display = "block";
+		width = this.contextMenuDiv.offsetWidth;
+		height = this.contextMenuDiv.offsetHeight;
+		this.contextMenuDiv.style.display = "none";
+
+		if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0 && !tinyMCE.isOpera) {
+			// Setup popup and show
+			this.pop.document.body.innerHTML = '<div class="contextMenu">' + html + "</div>";
+			this.pop.document.tinyMCE = tinyMCE;
+			this.pop.document.contextMenu = this;
+			this.pop.show(x, y, width, height);
+		} else {
+			vp = this.getViewPort();
+			yo = tinyMCE.isMSIE5_0 ? document.body.scrollTop : self.pageYOffset;
+			this.contextMenuDiv.style.left = (x > vp.left + vp.width - width ? vp.left + vp.width - width : x) + 'px';
+			this.contextMenuDiv.style.top = (y > vp.top + vp.height - height ? vp.top + vp.height - height : y) + 'px';
+			this.contextMenuDiv.style.display = "block";
+		}
+	},
+
+	getViewPort : function() {
+		return {
+			left : self.pageXOffset || self.document.documentElement.scrollLeft || self.document.body.scrollLeft,
+			top: self.pageYOffset || self.document.documentElement.scrollTop || self.document.body.scrollTop,
+			width : document.documentElement.offsetWidth || document.body.offsetWidth,
+			height : self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
+		};
+	},
+
+	hide : function() {
+		if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0 && !tinyMCE.isOpera)
+			this.pop.hide();
+		else
+			this.contextMenuDiv.style.display = "none";
+	},
+
+	execCommand : function(command, value) {
+		eval(this.settings['commandhandler'] + "(command, value);");
+	}
+};
diff --git a/tinyMCE/plugins/contextmenu/images/spacer.gif b/tinyMCE/plugins/contextmenu/images/spacer.gif
new file mode 100644
index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a
Binary files /dev/null and b/tinyMCE/plugins/contextmenu/images/spacer.gif differ
diff --git a/tinyMCE/plugins/contextmenu/readme.txt b/tinyMCE/plugins/contextmenu/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/contextmenu/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/devkit/css/devkit.css b/tinyMCE/plugins/devkit/css/devkit.css
new file mode 100644
index 0000000000000000000000000000000000000000..27eaac07082225860ba9c3ad7dbc1dbc965e0a79
--- /dev/null
+++ b/tinyMCE/plugins/devkit/css/devkit.css
@@ -0,0 +1,117 @@
+body {
+	overflow: hidden;
+}
+
+h1 {
+	font-size: 14px;
+	margin: 0 0 10px 0;
+}
+
+h2 {
+	font-size: 12px;
+	margin: 3px 0 3px 0;
+}
+
+h3 {
+	font-size: 11px;
+	margin: 3px 0 3px 0;
+}
+
+#log {
+	font-family: Verdana;
+	border: 1px solid gray;
+	width: 100%; height: 240px;
+	overflow: scroll;
+	white-space: nowrap;
+}
+
+#log span {
+	display: block;
+}
+
+#log span.msg {
+	float: left;
+}
+
+#log span.time {
+	float: left;
+}
+
+#log br {
+	clear: both;
+}
+
+#logfilter {
+	width: 350px;
+}
+
+#logenabled {
+	border: 0;
+}
+
+#settings_panel span, #info_panel span, #content_panel span, #command_states_panel span, #undo_redo_panel span {
+	display: block;
+	margin: 5px 0 5px 0;
+}
+
+div.data {
+	width: 100%; height: 240px;
+	overflow: scroll;
+	border: 1px solid gray;
+}
+
+#misc_panel div.data {
+	height: 270px;
+}
+
+.data input {
+	width: 265px;
+	border: 0;
+}
+
+.data h2 {
+	margin-left: 5px;
+}
+
+.data h3 {
+	margin-left: 7px;
+}
+
+.data div {
+	margin-left: 7px;
+}
+
+.data table {
+	margin: 0 0 15px 15px;
+}
+
+.data p {
+	margin: 0; padding: 0;
+	margin-top: 5px;
+	margin-left: 5px;
+}
+
+table, td {
+	border: 1px solid gray;
+	border-collapse: collapse;
+}
+
+#flip {
+	position: absolute;
+	left: 295; top: 384px;
+}
+
+.bspec {
+	color: gray;
+}
+
+.dep {
+	color: #880000;
+}
+
+.col1 {
+	width: 265px;
+}
+
+div.undodata {
+}
diff --git a/tinyMCE/plugins/devkit/css/devkit_ui.css b/tinyMCE/plugins/devkit/css/devkit_ui.css
new file mode 100644
index 0000000000000000000000000000000000000000..6713abc85279f87fd36ff30da45fc50f7130e3f5
--- /dev/null
+++ b/tinyMCE/plugins/devkit/css/devkit_ui.css
@@ -0,0 +1,15 @@
+#devkit {
+	position: absolute;
+	top: -385px; right: 0;
+	width: 640px; height: 390px;
+	border: 1px solid black;
+	z-index: 10000;
+}
+
+.devkitup {
+	top: -385px !important;
+}
+
+.devkitdown {
+	top: 0 !important;
+}
diff --git a/tinyMCE/plugins/devkit/devkit.htm b/tinyMCE/plugins/devkit/devkit.htm
new file mode 100644
index 0000000000000000000000000000000000000000..92a339bd8ce4aa09a3588acc17eb26a56aa84e76
--- /dev/null
+++ b/tinyMCE/plugins/devkit/devkit.htm
@@ -0,0 +1,140 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_devkit_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/devkit.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/diff.js"></script>
+	<link href="css/devkit.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body id="devkit" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+    <form action="#">
+		<h1>{$lang_devkit_title}</h1>
+
+		<div class="tabs">
+			<ul>
+				<li id="log_tab" class="current"><span><a href="javascript:mcTabs.displayTab('log_tab','log_panel');" onmousedown="return false;">{$lang_devkit_log_tab}</a></span></li>
+				<li id="info_tab"><span><a href="javascript:mcTabs.displayTab('info_tab','info_panel');" onmousedown="return false;">{$lang_devkit_info_tab}</a></span></li>
+				<li id="settings_tab"><span><a href="javascript:mcTabs.displayTab('settings_tab','settings_panel');" onmousedown="return false;">{$lang_devkit_settings_tab}</a></span></li>
+				<li id="content_tab"><span><a href="javascript:mcTabs.displayTab('content_tab','content_panel');" onmousedown="return false;">{$lang_devkit_content_tab}</a></span></li>
+				<!-- <li id="command_states_tab"><span><a href="javascript:mcTabs.displayTab('command_states_tab','command_states_panel');" onmousedown="return false;">{$lang_devkit_command_states_tab}</a></span></li> -->
+				<li id="undo_redo_tab"><span><a href="javascript:mcTabs.displayTab('undo_redo_tab','undo_redo_panel');" onmousedown="return false;">{$lang_devkit_undo_redo_tab}</a></span></li>
+				<li id="misc_tab"><span><a href="javascript:mcTabs.displayTab('misc_tab','misc_panel');" onmousedown="return false;">{$lang_devkit_misc_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="log_panel" class="panel current">
+				<fieldset>
+					<legend>{$lang_devkit_log_tab}</legend>
+
+					<div style="float: left">
+						<label>{$lang_devkit_filter} </label><input type="text" id="logfilter" name="logfilter" value="" onchange="changeFilter(this.value);" />
+					</div>
+
+					<div style="float: left">
+						<input type="checkbox" id="logenabled" name="logenabled" value="true" checked="checked" onclick="toggleLog(this.checked);" />
+					</div>
+
+					<div style="float: right">
+						<a href="javascript:clearLog();">[{$lang_devkit_clear_log}]</a>
+					</div>
+
+					<br style="clear: both" />
+
+					<div id="log">
+					</div>
+
+					<input type="checkbox" id="debug_events" name="debug_events" class="checkbox" onclick="toggleDebugEvents(this.checked);" /><label for="debug_events" onclick="toggleDebugEvents(this.form.debug_events.checked);">{$lang_devkit_debug_events}</label>
+				</fieldset>
+			</div>
+
+			<div id="info_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_devkit_info_tab}</legend>
+
+					<span><a href="javascript:renderInfo();">[{$lang_devkit_refresh}]</a></span>
+
+					<div id="info" class="data">
+						<p>{$lang_devkit_info_help}</p>
+					</div>
+				</fieldset>
+			</div>
+
+			<div id="settings_panel" class="panel">
+			<fieldset>
+					<legend>{$lang_devkit_settings_tab}</legend>
+
+					<span><a href="javascript:renderSettings();">[{$lang_devkit_refresh}]</a></span>
+
+					<div id="settings" class="data">
+						<p>{$lang_devkit_settings_help}</p>
+					</div>
+				</fieldset>
+			</div>
+
+			<div id="content_panel" class="panel">
+			<fieldset>
+					<legend>{$lang_devkit_content_tab}</legend>
+
+					<span><a href="javascript:renderContent();">[{$lang_devkit_refresh}]</a></span>
+
+					<div id="content" class="data">
+						<p>{$lang_devkit_content_help}</p>
+					</div>
+				</fieldset>
+			</div>
+
+			<div id="command_states_panel" class="panel">
+			<fieldset>
+					<legend>{$lang_devkit_command_states_tab}</legend>
+
+					<span><a href="javascript:renderCommandStates();">[{$lang_devkit_refresh}]</a></span>
+
+					<div id="command_states" class="data">
+						<p>{$lang_devkit_command_states_help}</p>
+					</div>
+				</fieldset>
+			</div>
+
+			<div id="undo_redo_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_devkit_undo_redo_tab}</legend>
+
+					<span><a href="javascript:renderUndoRedo();">[{$lang_devkit_refresh}]</a></span>
+
+					<div id="undo_redo" class="data">
+						<p>{$lang_devkit_undo_redo_help}</p>
+					</div>
+
+					<input type="checkbox" id="undo_diff" name="undo_diff" class="checkbox" /><label for="undo_diff">{$lang_devkit_undo_diff}</label>
+				</fieldset>
+			</div>
+
+			<div id="misc_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_devkit_misc_tab}</legend>
+
+					<div class="data">
+						<p>{$lang_devkit_misc_help}</p>
+						<hr />
+						<p>Selection: <a href="#" onmousedown="return storeSelection();">[Store selection]</a> <a href="#" onmousedown="return restoreSelection();">[Restore selection]</a></p>
+						<hr />
+						<div><strong>Insert custom HTML content</strong></div>
+						<div><textarea id="htmlcont" name="htmlcont" style="width: 90%" rows="5"></textarea></div>
+						<div><a href="#" onclick="return tinyMCE.execCommand('mceInsertContent',false,document.getElementById('htmlcont').value);">[Insert content]</a></div>
+						<hr />
+						<div><strong>Eval JS:</strong></div>
+						<div><textarea id="jscont" name="jscont" style="width: 90%" rows="5">tinyMCE.execCommand('Bold',false,null);</textarea></div>
+						<div><a href="#" onclick="return parent.window.eval(document.getElementById('jscont').value);">[Evaluate]</a></div>
+					</div>
+				</fieldset>
+			</div>
+		</div>
+    </form>
+
+	<div id="flip"><a href="javascript:toggleFlip();" onmousedown="return false;"><img id="flipbtn" src="images/flip_down.gif" border="0" /></a></div>
+</body>
+</html>
diff --git a/tinyMCE/plugins/devkit/editor_plugin.js b/tinyMCE/plugins/devkit/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..8a5d64c9203842044cc03bbf469951a2614eeed4
--- /dev/null
+++ b/tinyMCE/plugins/devkit/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('devkit');var TinyMCE_DevKitPlugin={_logFilter:'\\[(importCSS|execCommand|execInstanceCommand|debug)\\]',_logPadding:'',_startTime:null,_benchMark:false,_winLoaded:false,_isDebugEvents:false,getInfo:function(){return{longname:'Development Kit',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/devkit',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){this._setup()},_setup:function(){if(this._loaded)return;this._loaded=true;document.___TinyMCE=tinyMCE;this._logFilter=tinyMCE.getParam('devkit_log_filter',this._logFilter);this._benchMark=tinyMCE.getParam('devkit_bench_mark',false);var ifr=document.createElement('iframe');ifr.setAttribute("id","devkit");ifr.setAttribute("frameBorder","0");ifr.setAttribute("src",tinyMCE.baseURL+'/plugins/devkit/devkit.htm');document.body.appendChild(ifr);tinyMCE.importCSS(document,tinyMCE.baseURL+'/plugins/devkit/css/devkit_ui.css')},_start:function(){this._logPadding+='\u00a0';return new Date().getTime()},_end:function(st){if(this._logPadding.length>0)this._logPadding=this._logPadding.substring(0,this._logPadding.length-1);if(this._benchMark)this._log("benchmark","Execution time: "+(new Date().getTime()-st))},_log:function(t){var m,a,i,e=document.getElementById('devkit'),now=new Date().getTime();if(!this._startTime)this._startTime=now;m=(this._logPadding.length>1?this._logPadding:'')+'['+(now-this._startTime)+'] ['+t+'] ';a=this._log.arguments;for(i=1;i<a.length;i++){if(typeof(a[i])=='undefined')continue;if(i>1)m+=', ';m+=a[i]}if(!new RegExp(this._logFilter,'gi').test(m)){if(this._logPadding.length>0)this._logPadding=this._logPadding.substring(0,this._logPadding.length-1);return}if(!this._winLoaded)tinyMCE.log[tinyMCE.log.length]=m;else e.contentWindow.debug(m)},_debugEvents:function(s){var i,ld,inst,n,ev=['CheckboxStateChange','DOMAttrModified','DOMMenuItemActive','DOMMenuItemInactive','DOMMouseScroll','DOMNodeInserted','DOMNodeRemoved','RadioStateChange','blur','broadcast','change','click','close','command','commandupdate','contextmenu','dblclick','dragdrop','dragenter','dragexit','draggesture','dragover','focus','input','keydown','keypress','keyup','load','mousedown','mouseout','mouseover','mouseup','overflow','overflowchanged','popuphidden','popuphiding','popupshowing','popupshown','select','syncfrompreference','synctopreference','underflow','unload','abort','activate','afterprint','afterupdate','beforeactivate','beforecopy','beforecut','beforedeactivate','beforeeditfocus','beforepaste','beforeprint','beforeunload','beforeupdate','bounce','cellchange','controlselect','copy','cut','dataavailable','datasetchanged','datasetcomplete','deactivate','dragend','dragleave','dragstart','drop','error','errorupdate','filterchange','finish','focusin','focusout','help','layoutcomplete','losecapture','mouseenter','mouseleave','mousewheel','move','moveend','movestart','paste','propertychange','readystatechange','reset','resize','resizeend','resizestart','rowenter','rowexit','rowsdelete','rowsinserted','scroll','selectionchange','selectstart','start','stop','submit'];if(TinyMCE_DevKitPlugin._isDebugEvents==s)return;TinyMCE_DevKitPlugin._isDebugEvents=s;for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst)||inst.getDoc()==ld)continue;ld=inst.getDoc();for(i=0;i<ev.length;i++){if(s)tinyMCE.addEvent(ld,ev[i],TinyMCE_DevKitPlugin._debugEvent);else tinyMCE.removeEvent(ld,ev[i],TinyMCE_DevKitPlugin._debugEvent)}}},_debugEvent:function(e){var t;e=e?e:tinyMCE.selectedInstance.getWin().event;t=e.srcElement?e.srcElement:e.target;tinyMCE.debug(e.type,t?t.nodeName:'')},_serialize:function(o){var i,v,s=TinyMCE_DevKitPlugin._serialize;if(o==null)return'null';switch(typeof o){case'string':v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(new RegExp('([\u0080-\uFFFF\\x00-\\x1f\\"])','g'),function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a})+'"';case'object':if(o instanceof Array){for(i=0,v='[';i<o.length;i++)v+=(i>0?',':'')+s(o[i]);return v+']'}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}'}return''+o}};tinyMCE.__debug=tinyMCE.debug;tinyMCE.debug=function(){var a,i,m='',now=new Date().getTime(),start=TinyMCE_DevKitPlugin._startTime;if(!start)TinyMCE_DevKitPlugin._startTime=start=now;a=this.debug.arguments;for(i=0;i<a.length;i++){if(typeof(a[i])=='undefined')continue;if(i>0)m+=', ';m+=a[i]}TinyMCE_DevKitPlugin._log('debug',m)};tinyMCE.dump=function(o){tinyMCE.debug(TinyMCE_DevKitPlugin._serialize(o))};tinyMCE.sleep=function(t){var s=new Date().getTime(),b;while(new Date().getTime()-s<t)b=1};tinyMCE.__execCommand=tinyMCE.execCommand;tinyMCE.execCommand=function(command,user_interface,value){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('execCommand',command,user_interface,value);r=tinyMCE.__execCommand(command,user_interface,value);dk._end(st);return r};tinyMCE.__execInstanceCommand=tinyMCE.execInstanceCommand;tinyMCE.execInstanceCommand=function(editor_id,command,user_interface,value,focus){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('execInstanceCommand',editor_id,command,user_interface,value);r=tinyMCE.__execInstanceCommand(editor_id,command,user_interface,value);dk._end(st);return r};TinyMCE_Engine.prototype.__handleEvent=TinyMCE_Engine.prototype.handleEvent;TinyMCE_Engine.prototype.handleEvent=function(e){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('handleEvent',e.type);r=tinyMCE.__handleEvent(e);dk._end(st);return r};tinyMCE.__importCSS=tinyMCE.importCSS;tinyMCE.importCSS=function(doc,css){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('importCSS',doc,css);r=tinyMCE.__importCSS(doc,css);dk._end(st);return r};tinyMCE.__triggerNodeChange=tinyMCE.triggerNodeChange;tinyMCE.triggerNodeChange=function(focus,setup_content){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('triggerNodeChange',focus,setup_content);r=tinyMCE.__triggerNodeChange(focus,setup_content);dk._end(st);return r};tinyMCE.__dispatchCallback=tinyMCE.dispatchCallback;tinyMCE.dispatchCallback=function(i,p,n){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('dispatchCallback',i,p,n);r=tinyMCE.__dispatchCallback(i,p,n);dk._end(st);return r};tinyMCE.__executeCallback=tinyMCE.executeCallback;tinyMCE.executeCallback=function(i,p,n){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('executeCallback',i,p,n);r=tinyMCE.__executeCallback(i,p,n);dk._end(st);return r};tinyMCE.__execCommandCallback=tinyMCE.execCommandCallback;tinyMCE.execCommandCallback=function(i,p,n){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('execCommandCallback',i,p,n);r=tinyMCE.__execCommandCallback(i,p,n);dk._end(st);return r};tinyMCE.addPlugin("devkit",TinyMCE_DevKitPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/devkit/editor_plugin_src.js b/tinyMCE/plugins/devkit/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..efe72567b3f010e0b15e710ea9abf8a58f96e283
--- /dev/null
+++ b/tinyMCE/plugins/devkit/editor_plugin_src.js
@@ -0,0 +1,325 @@
+/**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+tinyMCE.importPluginLanguagePack('devkit');
+
+var TinyMCE_DevKitPlugin = {
+	_logFilter : '\\[(importCSS|execCommand|execInstanceCommand|debug)\\]',
+	_logPadding : '',
+	_startTime : null,
+	_benchMark : false,
+	_winLoaded : false,
+	_isDebugEvents : false,
+
+	getInfo : function() {
+		return {
+			longname : 'Development Kit',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/devkit',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		this._setup();
+	},
+
+	_setup : function() {
+		if (this._loaded)
+			return;
+
+		this._loaded = true;
+
+		// Register a document reference for more easy access in the FF DOM inspector
+		document.___TinyMCE = tinyMCE;
+
+		// Setup devkit by settings
+		this._logFilter = tinyMCE.getParam('devkit_log_filter', this._logFilter);
+		this._benchMark = tinyMCE.getParam('devkit_bench_mark', false);
+
+		var ifr = document.createElement('iframe');
+
+		ifr.setAttribute("id", "devkit");
+		ifr.setAttribute("frameBorder", "0");
+		ifr.setAttribute("src", tinyMCE.baseURL + '/plugins/devkit/devkit.htm');
+
+		document.body.appendChild(ifr);
+
+		// Workaround for strange IE reload bug
+		//if (tinyMCE.isRealIE)
+		//	document.getElementById('devkit').outerHTML = document.getElementById('devkit').outerHTML;
+
+		tinyMCE.importCSS(document, tinyMCE.baseURL + '/plugins/devkit/css/devkit_ui.css');
+	},
+
+	_start : function() {
+		this._logPadding += '\u00a0';
+
+		return new Date().getTime();
+	},
+
+	_end : function(st) {
+		if (this._logPadding.length > 0)
+			this._logPadding = this._logPadding.substring(0, this._logPadding.length - 1);
+
+		if (this._benchMark)
+			this._log("benchmark", "Execution time: " + (new Date().getTime() - st));
+	},
+
+	_log : function(t) {
+		var m, a, i, e = document.getElementById('devkit'), now = new Date().getTime();
+
+		if (!this._startTime)
+			this._startTime = now;
+
+		m = (this._logPadding.length > 1 ? this._logPadding : '') + '[' + (now - this._startTime) + '] [' + t + '] ';
+
+		a = this._log.arguments;
+		for (i=1; i<a.length; i++) {
+			if (typeof(a[i]) == 'undefined')
+				continue;
+
+			if (i > 1)
+				m += ', ';
+
+			m += a[i];
+		}
+
+		if (!new RegExp(this._logFilter, 'gi').test(m)) {
+			if (this._logPadding.length > 0)
+				this._logPadding = this._logPadding.substring(0, this._logPadding.length - 1);
+
+			return;
+		}
+
+		if (!this._winLoaded)
+			tinyMCE.log[tinyMCE.log.length] = m;
+		else
+			e.contentWindow.debug(m);
+	},
+
+	_debugEvents : function(s) {
+		var i, ld, inst, n, ev = ['CheckboxStateChange','DOMAttrModified','DOMMenuItemActive',
+				'DOMMenuItemInactive','DOMMouseScroll','DOMNodeInserted','DOMNodeRemoved',
+				'RadioStateChange','blur','broadcast','change','click','close','command',
+				'commandupdate','contextmenu','dblclick','dragdrop','dragenter','dragexit',
+				'draggesture','dragover','focus','input','keydown','keypress','keyup','load',
+				'mousedown','mouseout','mouseover','mouseup','overflow','overflowchanged','popuphidden',
+				'popuphiding','popupshowing','popupshown','select','syncfrompreference','synctopreference',
+				'underflow','unload','abort','activate','afterprint','afterupdate','beforeactivate',
+				'beforecopy','beforecut','beforedeactivate','beforeeditfocus','beforepaste','beforeprint',
+				'beforeunload','beforeupdate','bounce','cellchange','controlselect','copy','cut',
+				'dataavailable','datasetchanged','datasetcomplete','deactivate','dragend','dragleave',
+				'dragstart','drop','error','errorupdate','filterchange','finish','focusin','focusout',
+				'help','layoutcomplete','losecapture','mouseenter','mouseleave','mousewheel',
+				'move','moveend','movestart','paste','propertychange','readystatechange','reset','resize',
+				'resizeend','resizestart','rowenter','rowexit','rowsdelete','rowsinserted','scroll',
+				'selectionchange','selectstart','start','stop','submit'];
+		// mousemove
+
+		if (TinyMCE_DevKitPlugin._isDebugEvents == s)
+			return;
+
+		TinyMCE_DevKitPlugin._isDebugEvents = s;
+
+		for (n in tinyMCE.instances) {
+			inst = tinyMCE.instances[n];
+
+			if (!tinyMCE.isInstance(inst) || inst.getDoc() == ld)
+				continue;
+
+			ld = inst.getDoc();
+
+			for (i=0; i<ev.length; i++) {
+				if (s)
+					tinyMCE.addEvent(ld, ev[i], TinyMCE_DevKitPlugin._debugEvent);
+				else
+					tinyMCE.removeEvent(ld, ev[i], TinyMCE_DevKitPlugin._debugEvent);
+			}
+		}
+	},
+
+	_debugEvent : function(e) {
+		var t;
+
+		e = e ? e : tinyMCE.selectedInstance.getWin().event;
+		t = e.srcElement ? e.srcElement : e.target;
+
+		tinyMCE.debug(e.type, t ? t.nodeName : '');
+	},
+
+	_serialize : function(o) {
+		var i, v, s = TinyMCE_DevKitPlugin._serialize;
+
+		if (o == null)
+			return 'null';
+
+		switch (typeof o) {
+			case 'string':
+				v = '\bb\tt\nn\ff\rr\""\'\'\\\\';
+
+				return '"' + o.replace(new RegExp('([\u0080-\uFFFF\\x00-\\x1f\\"])', 'g'), function(a, b) {
+					i = v.indexOf(b);
+
+					if (i+1)
+						return '\\' + v.charAt(i + 1);
+
+					a = b.charCodeAt().toString(16);
+
+					return '\\u' + '0000'.substring(a.length) + a;
+				}) + '"';
+
+			case 'object':
+				if (o instanceof Array) {
+					for (i=0, v = '['; i<o.length; i++)
+						v += (i > 0 ? ',' : '') + s(o[i]);
+
+					return v + ']';
+				}
+
+				v = '{';
+
+				for (i in o)
+					v += typeof o[i] != 'function' ? (v.length > 1 ? ',"' : '"') + i + '":' + s(o[i]) : '';
+
+				return v + '}';
+		}
+
+		return '' + o;
+	}
+};
+
+// Patch and piggy back functions
+tinyMCE.__debug = tinyMCE.debug;
+tinyMCE.debug = function() {
+	var a, i, m = '', now = new Date().getTime(), start = TinyMCE_DevKitPlugin._startTime;
+
+	if (!start)
+		TinyMCE_DevKitPlugin._startTime = start = now;
+
+	a = this.debug.arguments;
+	for (i=0; i<a.length; i++) {
+		if (typeof(a[i]) == 'undefined')
+			continue;
+
+		if (i > 0)
+			m += ', ';
+
+		m += a[i];
+	}
+
+	TinyMCE_DevKitPlugin._log('debug', m);
+};
+
+tinyMCE.dump = function(o) {
+	tinyMCE.debug(TinyMCE_DevKitPlugin._serialize(o));
+};
+
+tinyMCE.sleep = function(t) {
+	var s = new Date().getTime(), b;
+
+	while (new Date().getTime() - s < t) b=1;
+};
+
+tinyMCE.__execCommand = tinyMCE.execCommand;
+tinyMCE.execCommand = function(command, user_interface, value) {
+	var r, st, dk = TinyMCE_DevKitPlugin;
+
+	st = dk._start();
+	dk._log('execCommand', command, user_interface, value);
+	r = tinyMCE.__execCommand(command, user_interface, value);
+	dk._end(st);
+
+	return r;
+};
+
+tinyMCE.__execInstanceCommand = tinyMCE.execInstanceCommand;
+tinyMCE.execInstanceCommand = function(editor_id, command, user_interface, value, focus) {
+	var r, st, dk = TinyMCE_DevKitPlugin;
+
+	st = dk._start();
+	dk._log('execInstanceCommand', editor_id, command, user_interface, value);
+	r = tinyMCE.__execInstanceCommand(editor_id, command, user_interface, value);
+	dk._end(st);
+
+	return r;
+};
+
+TinyMCE_Engine.prototype.__handleEvent = TinyMCE_Engine.prototype.handleEvent;
+TinyMCE_Engine.prototype.handleEvent = function(e) {
+	var r, st, dk = TinyMCE_DevKitPlugin;
+
+	st = dk._start();
+	dk._log('handleEvent', e.type);
+	r = tinyMCE.__handleEvent(e);
+	dk._end(st);
+
+	return r;
+};
+
+tinyMCE.__importCSS = tinyMCE.importCSS;
+tinyMCE.importCSS = function(doc, css) {
+	var r, st, dk = TinyMCE_DevKitPlugin;
+
+	st = dk._start();
+	dk._log('importCSS', doc, css);
+	r = tinyMCE.__importCSS(doc, css);
+	dk._end(st);
+
+	return r;
+};
+
+tinyMCE.__triggerNodeChange = tinyMCE.triggerNodeChange;
+tinyMCE.triggerNodeChange = function(focus, setup_content) {
+	var r, st, dk = TinyMCE_DevKitPlugin;
+
+	st = dk._start();
+	dk._log('triggerNodeChange', focus, setup_content);
+	r = tinyMCE.__triggerNodeChange(focus, setup_content);
+	dk._end(st);
+
+	return r;
+};
+
+tinyMCE.__dispatchCallback = tinyMCE.dispatchCallback;
+tinyMCE.dispatchCallback = function(i, p, n) {
+	var r, st, dk = TinyMCE_DevKitPlugin;
+
+	st = dk._start();
+	dk._log('dispatchCallback', i, p, n);
+	r = tinyMCE.__dispatchCallback(i, p, n);
+	dk._end(st);
+
+	return r;
+};
+
+tinyMCE.__executeCallback = tinyMCE.executeCallback;
+tinyMCE.executeCallback = function(i, p, n) {
+	var r, st, dk = TinyMCE_DevKitPlugin;
+
+	st = dk._start();
+	dk._log('executeCallback', i, p, n);
+	r = tinyMCE.__executeCallback(i, p, n);
+	dk._end(st);
+
+	return r;
+};
+
+tinyMCE.__execCommandCallback = tinyMCE.execCommandCallback;
+tinyMCE.execCommandCallback = function(i, p, n) {
+	var r, st, dk = TinyMCE_DevKitPlugin;
+
+	st = dk._start();
+	dk._log('execCommandCallback', i, p, n);
+	r = tinyMCE.__execCommandCallback(i, p, n);
+	dk._end(st);
+
+	return r;
+};
+
+tinyMCE.addPlugin("devkit", TinyMCE_DevKitPlugin);
diff --git a/tinyMCE/plugins/devkit/images/flip_down.gif b/tinyMCE/plugins/devkit/images/flip_down.gif
new file mode 100644
index 0000000000000000000000000000000000000000..29a2d746bad9936f08fdde4ab0b944fe28a4652a
Binary files /dev/null and b/tinyMCE/plugins/devkit/images/flip_down.gif differ
diff --git a/tinyMCE/plugins/devkit/images/flip_up.gif b/tinyMCE/plugins/devkit/images/flip_up.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4b9676b6a64e26f16741d18396fadeb72141915d
Binary files /dev/null and b/tinyMCE/plugins/devkit/images/flip_up.gif differ
diff --git a/tinyMCE/plugins/devkit/jscripts/devkit.js b/tinyMCE/plugins/devkit/jscripts/devkit.js
new file mode 100644
index 0000000000000000000000000000000000000000..0225405683f5fe3586929a4c0a71c0d22f5c19eb
--- /dev/null
+++ b/tinyMCE/plugins/devkit/jscripts/devkit.js
@@ -0,0 +1,331 @@
+var devkit = parent.tinyMCE.plugins['devkit'], logEnabled = true, flip = false, book = null;
+
+function init() {
+	var log, i, f = document.forms[0];
+
+	devkit._winLoaded = true;
+
+	log = tinyMCE.log;
+
+	for (i=0; i<log.length; i++)
+		debug(log[i]);
+
+	f.logfilter.value = devkit._logFilter;
+}
+
+function changeFilter(f) {
+	devkit._logFilter = f;
+}
+
+function toggleLog(s) {
+	logEnabled = s;
+}
+
+function toggleFlip() {
+	document.getElementById('flipbtn').src = flip ? 'images/flip_down.gif' : 'images/flip_up.gif';
+
+	if (flip)
+		parent.document.getElementById('devkit').className = 'devkitup';
+	else
+		parent.document.getElementById('devkit').className = 'devkitdown';
+
+	flip = !flip;
+}
+
+function debug(s) {
+	var d, l, n;
+
+	if (!logEnabled || !new RegExp(devkit._logFilter, 'gi').test(s))
+		return;
+
+	d = document;
+	l = d.getElementById('log');
+	n = d.createElement('span');
+
+	n.innerHTML = tinyMCE.xmlEncode(s);
+
+	l.appendChild(n);
+	l.scrollTop = l.scrollHeight;
+}
+
+function renderInfo() {
+	var se = document.getElementById('info'), n, sn, inst, h = '', sel, rng, instCount = 0, rc;
+
+	h += '<h2>Browser info:</h2>';
+
+	h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';
+	h += addRenderInfo('navigator.userAgent', navigator.userAgent);
+	h += addRenderInfo('navigator.appName', navigator.appName);
+	h += addRenderInfo('navigator.platform', navigator.platform);
+	h += addRenderInfo('navigator.language', navigator.language, 'bspec');
+	h += addRenderInfo('navigator.browserLanguage', navigator.browserLanguage, 'bspec');
+	h += addRenderInfo('navigator.systemLanguage', navigator.systemLanguage, 'bspec');
+	h += addRenderInfo('navigator.userLanguage', navigator.userLanguage, 'bspec');
+	h += addRenderInfo('opera.buildNumber("inconspicuous")', typeof(opera) != 'undefined' && opera.buildNumber ? opera.buildNumber('inconspicuous') : null, 'bspec');
+	h += addRenderInfo('window.innerWidth', parent.window.innerWidth, 'bspec');
+	h += addRenderInfo('window.innerHeight', parent.window.innerHeight, 'bspec');
+	h += addRenderInfo('document.body.offsetWidth', parent.document.body.offsetWidth);
+	h += addRenderInfo('document.body.offsetHeight', parent.document.body.offsetHeight);
+	h += addRenderInfo('screen.width', screen.width);
+	h += addRenderInfo('screen.height', screen.height);
+	h += addRenderInfo('screen.availWidth', screen.availWidth);
+	h += addRenderInfo('screen.availHeight', screen.availHeight);
+	h += addRenderInfo('screen.colorDepth', screen.colorDepth);
+	h += addRenderInfo('screen.pixelDepth', screen.pixelDepth, 'bspec');
+	h += addRenderInfo('document.contentType', document.contentType, 'bspec');
+	h += '</table>';
+
+	h += '<h2>TinyMCE_Engine info:</h2>';
+
+	h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';
+	h += addRenderInfo('baseURL', tinyMCE.baseURL);
+	h += addRenderInfo('selectedInstance.editorId', tinyMCE.selectedInstance ? tinyMCE.selectedInstance.editorId : null);
+	h += addRenderInfo('selectedElement.nodeName', tinyMCE.selectedElement ? tinyMCE.selectedElement.nodeName : null, 'dep');
+	h += addRenderInfo('loadedFiles',tinyMCE.loadedFiles.join(','));
+	h += addRenderInfo('isMSIE', tinyMCE.isMSIE);
+	h += addRenderInfo('isMSIE5', tinyMCE.isMSIE5);
+	h += addRenderInfo('isMSIE5_0', tinyMCE.isMSIE5_0);
+	h += addRenderInfo('isMSIE7', tinyMCE.isMSIE7);
+	h += addRenderInfo('isGecko', tinyMCE.isGecko);
+	h += addRenderInfo('isSafari', tinyMCE.isSafari);
+	h += addRenderInfo('isOpera', tinyMCE.isOpera);
+	h += addRenderInfo('isMac', tinyMCE.isMac);
+	h += addRenderInfo('isNS7', tinyMCE.isNS7);
+	h += addRenderInfo('isNS71', tinyMCE.isNS71);
+	h += addRenderInfo('idCounter', tinyMCE.idCounter);
+	h += addRenderInfo('currentConfig', tinyMCE.currentConfig);
+	h += addRenderInfo('majorVersion', tinyMCE.majorVersion);
+	h += addRenderInfo('minorVersion', tinyMCE.minorVersion);
+	h += addRenderInfo('releaseDate', tinyMCE.releaseDate);
+	h += addRenderInfo('documentBasePath', tinyMCE.documentBasePath);
+	h += addRenderInfo('documentURL', tinyMCE.documentURL);
+	h += '</table>';
+
+	for (n in tinyMCE.instances) {
+		inst = tinyMCE.instances[n];
+
+		if (!tinyMCE.isInstance(inst))
+			continue;
+
+		sel = inst.selection.getSel();
+		rng = inst.selection.getRng();
+
+		h += '<h2>TinyMCE_Control(' + (instCount++) + ') id: ' + inst.editorId + '</h2>';
+		h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';
+
+		h += addRenderInfo('editorId', inst.editorId);
+		h += addRenderInfo('visualAid', inst.visualAid);
+		h += addRenderInfo('foreColor', inst.foreColor);
+		h += addRenderInfo('backColor', inst.backColor);
+		h += addRenderInfo('formTargetElementId', inst.formTargetElementId);
+		h += addRenderInfo('formElement', inst.formElement ? inst.formElement.nodeName : null);
+		h += addRenderInfo('oldTargetElement', inst.oldTargetElement ? inst.oldTargetElement.nodeName : null);
+		h += addRenderInfo('linkElement', inst.linkElement ? inst.linkElement.nodeName : null, 'dep');
+		h += addRenderInfo('imgElement', inst.imgElement ? inst.imgElement.nodeName : null, 'dep');
+		h += addRenderInfo('selectedNode', inst.selectedNode ? inst.selectedNode.nodeName : null, 'dep');
+		h += addRenderInfo('targetElement', inst.targetElement ? inst.targetElement.nodeName : null);
+		h += addRenderInfo('getBody().nodeName', inst.getBody() ? inst.getBody().nodeName : null);
+		h += addRenderInfo('getBody().getAttribute("id")', inst.getBody() ? inst.getBody().getAttribute("id") : null);
+		h += addRenderInfo('getDoc().location', inst.getDoc() ? inst.getDoc().location : null);
+		h += addRenderInfo('startContent', inst.startContent);
+		h += addRenderInfo('isHidden()', inst.isHidden());
+		h += addRenderInfo('isDirty()', inst.isDirty());
+		h += addRenderInfo('undoRedo.undoLevels.length', inst.undoRedo.undoLevels.length);
+		h += addRenderInfo('undoRedo.undoIndex', inst.undoRedo.undoIndex);
+		h += addRenderInfo('selection.getSelectedHTML()', inst.selection.getSelectedHTML());
+		h += addRenderInfo('selection.isCollapsed()', inst.selection.isCollapsed() || 'false');
+		h += addRenderInfo('selection.getSelectedText()', inst.selection.getSelectedText());
+		h += addRenderInfo('selection.getFocusElement().nodeName', inst.selection.getFocusElement().nodeName);
+		h += addRenderInfo('selection.getFocusElement().outerHTML', tinyMCE.getOuterHTML(inst.selection.getFocusElement()));
+
+		if ((tinyMCE.isGecko || tinyMCE.isOpera) && sel && rng) {
+			h += addRenderInfo('selection.getSel().anchorNode.nodeName', sel.anchorNode ? sel.anchorNode.nodeName : null, 'bspec');
+			h += addRenderInfo('selection.getSel().anchorOffset', sel.anchorOffset, 'bspec');
+			h += addRenderInfo('selection.getSel().focusNode.nodeName', sel.focusNode ? sel.focusNode.nodeName : null, 'bspec');
+			h += addRenderInfo('selection.getSel().focusOffset', sel.focusOffset, 'bspec');
+			h += addRenderInfo('selection.getRng().startContainer.nodeName', rng.startContainer ? rng.startContainer.nodeName : null, 'bspec');
+			h += addRenderInfo('selection.getRng().startOffset', rng.startOffset, 'bspec');
+			h += addRenderInfo('selection.getRng().endContainer.nodeName', rng.endContainer ? rng.endContainer.nodeName : null, 'bspec');
+			h += addRenderInfo('selection.getRng().endOffset', rng.endOffset, 'bspec');
+		}
+
+		if (typeof(rng.item) != 'undefined' || typeof(rng.htmlText) != 'undefined') {
+			if (!rng.item) {
+				h += addRenderInfo('selection.getSel().type', sel.type, 'bspec');
+				h += addRenderInfo('selection.getRng().htmlText', rng.htmlText, 'bspec');
+				h += addRenderInfo('selection.getRng().text', rng.text, 'bspec');
+			} else
+				h += addRenderInfo('selection.getRng().item(0).nodeName', rng.item(0).nodeName, 'bspec');
+		}
+
+		h += '</table>';
+	}
+
+	h += '<p>Fields marked in <strong class="bspec">gray</strong> is not cross browser and should be used with care.</p>';
+	h += '<p>Fields marked <strong class="dep">red</strong> are marked deprecated and will be removed in the future.</p><br />';
+
+	se.innerHTML = h;
+}
+
+function addRenderInfo(n, v, c) {
+	return '<tr><td' + (c ? ' class="' + c + '"' : '')+ '>' + n + '</td><td><input type="text" value="' + tinyMCE.xmlEncode(v != null ? ('' + v).replace(/[\r\n]/g, '') : 'null') + '" /></td></tr>';
+}
+
+function renderSettings() {
+	var se = document.getElementById('settings'), n, sn, inst, h = '', v;
+
+	for (n in tinyMCE.instances) {
+		inst = tinyMCE.instances[n];
+
+		if (!tinyMCE.isInstance(inst))
+			continue;
+
+		h += '<h2>Instance id: ' + inst.editorId + '</h2>';
+		h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';
+
+		for (sn in inst.settings) {
+			v = inst.settings[sn];
+
+			h += '<tr><td class="col1">' + tinyMCE.xmlEncode(sn) + '</td><td><input type="text" value="' + tinyMCE.xmlEncode(v) + '" /></td></tr>';
+		}
+
+		h += '</table>';
+	}
+
+	se.innerHTML = h;
+}
+
+function renderContent() {
+	var se = document.getElementById('content'), n, inst, h = '';
+
+	for (n in tinyMCE.instances) {
+		inst = tinyMCE.instances[n];
+
+		if (!tinyMCE.isInstance(inst))
+			continue;
+
+		h += '<h2>Instance id: ' + inst.editorId + '</h2>';
+
+		h += '<h3>Start content - inst.startContent:</h3>';
+		h += '<div>' + tinyMCE.xmlEncode(inst.startContent) + '</div>';
+
+		h += '<h3>Raw content - inst.getBody().innerHTML or inst.getHTML(true):</h3>';
+		h += '<div>' + tinyMCE.xmlEncode(inst.getHTML(true)) + '</div>';
+
+		h += '<h3>Cleaned content - inst.getHTML():</h3>';
+		h += '<div>' + tinyMCE.xmlEncode(inst.getHTML()) + '</div>';
+
+		if (inst.serializedHTML) {
+			h += '<h3>Serialized HTML content - inst.serializedHTML:</h3>';
+			h += '<div>' + tinyMCE.xmlEncode(inst.serializedHTML) + '</div>';
+		}
+	}
+
+	se.innerHTML = h;
+}
+
+function renderCommandStates() {
+	var se = document.getElementById('command_states'), n, inst, h = '', v, ex;
+	var cmds = new Array('2D-Position','AbsolutePosition','BackColor','BlockDirLTR','BlockDirRTL','Bold','BrowseMode','Copy','CreateBookmark','CreateLink','Cut','Delete','DirLTR','DirRTL','EditMode','enableInlineTableEditing','enableObjectResizing','FontName','FontSize','ForeColor','FormatBlock','Indent','InsertButton','InsertFieldset','InsertHorizontalRule','InsertIFrame','InsertImage','InsertInputButton','InsertInputCheckbox','InsertInputFileUpload','InsertInputHidden','InsertInputImage','InsertInputPassword','InsertInputRadio','InsertInputReset','InsertInputSubmit','InsertInputText','InsertMarquee','InsertOrderedList','InsertParagraph','InsertSelectDropdown','InsertSelectListbox','InsertTextArea','InsertUnorderedList','Italic','JustifyCenter','JustifyFull','JustifyLeft','JustifyNone','JustifyRight','LiveResize','MultipleSelection','Open','Outdent','OverWrite','Paste','PlayImage','Redo','Refresh','RemoveFormat','SaveAs','SelectAll','SizeToControl','SizeToControlHeight','SizeToControlWidth','Stop','StopImage','StrikeThrough','styleWithCSS','Subscript','Superscript','UnBookmark','Underline','Undo','Unlink','Unselect'), i;
+
+	for (n in tinyMCE.instances) {
+		inst = tinyMCE.instances[n];
+
+		if (!tinyMCE.isInstance(inst))
+			continue;
+
+		h += '<h2>Instance id: ' + inst.editorId + '</h2>';
+		h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';
+
+		for (i=0; i<cmds.length; i++) {
+			v = null;
+
+			try {
+				v = tinyMCE.isGecko || inst.getDoc().queryCommandSupported(cmds[i]);
+				v = v ? inst.queryCommandState(cmds[i]) : 'Not supported';
+			} catch (ex) {
+				v = 'Not supported';
+			}
+
+			h += '<tr><td><input type="text" value="' + tinyMCE.xmlEncode(cmds[i]) + '" /></td><td><input type="text" value="' + tinyMCE.xmlEncode(v) + '" /></td></tr>';
+		}
+
+		h += '</table>';
+	}
+
+	se.innerHTML = h;
+}
+
+function renderUndoRedo() {
+	var se = document.getElementById('undo_redo'), inst, n, h = '', i, le, id, d, ur;
+	var f = document.forms[0];	
+
+	if (tinyMCE.undoLevels) {
+		le = tinyMCE.undoLevels;
+
+		h += '<h2>Global undo/redo</h2>';
+		h += '<table border="0" cellpadding="0" cellspacing="0" width="50%" class="data">';
+		h += '<tr><td>undoLevels.length</td><td>' + le.length + '</td></tr>';
+		h += '<tr><td>undoIndex</td><td>' + tinyMCE.undoIndex + '</td></tr>';
+		h += '</table>';
+
+		for (i=0; i<le.length; i++)
+			h += '<h3>Level: ' + i + ', Instance: ' + (le[i] ? le[i].editorId : 'null') + '</h3>';
+	}
+
+	for (n in tinyMCE.instances) {
+		inst = tinyMCE.instances[n];
+
+		if (!tinyMCE.isInstance(inst))
+			continue;
+
+		ur = inst.undoRedo;
+		le = ur.undoLevels;
+
+		h += '<hr /><h2>Instance id: ' + inst.editorId + '</h2>';
+		h += '<table border="0" cellpadding="0" cellspacing="0" width="50%" class="data">';
+		h += '<tr><td>undoLevels.length</td><td>' + le.length + '</td></tr>';
+		h += '<tr><td>undoIndex</td><td>' + ur.undoIndex + '</td></tr>';
+		h += '<tr><td>typingUndoIndex</td><td>' + ur.typingUndoIndex + '</td></tr>';
+		h += '<tr><td>undoRedo</td><td>' + ur.undoRedo + '</td></tr>';
+		h += '</table>';
+
+		for (i=0; i<le.length; i++) {
+			h += '<h3>Level: ' + i + (!le[i].bookmark ? "" : " [bookmark]") + '</h3>';
+			h += '<div class="undodata">' + tinyMCE.xmlEncode(le[i].content) + '</div>';
+
+			if (i > 0 && f.undo_diff.checked) {
+				d = diff_main(i > 0 ? le[i-1].content.replace(/[\r\n]+/g, '') : null, le[i].content.replace(/[\r\n]+/g, ''), false);
+				diff_cleanup_semantic(d);
+				h += '<h3>Diff ' + (i-1) + ',' + i + '</h3><div class="undodata">' + diff_prettyhtml(d) + '</div>';
+			}
+		}
+	}
+
+	se.innerHTML = h;
+}
+
+function clearLog() {
+	document.getElementById('log').innerHTML = '';
+	devkit._startTime = null;
+}
+
+function cancelAction() {
+	parent.document.getElementById('devkit').style.display = 'none';
+}
+
+function toggleDebugEvents(s) {
+	devkit._debugEvents(s);
+}
+
+function storeSelection() {
+	book = tinyMCE.selectedInstance.selection.getBookmark();
+
+	return false;
+}
+
+function restoreSelection() {
+	tinyMCE.selectedInstance.selection.moveToBookmark(book);
+
+	return false;
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/devkit/jscripts/diff.js b/tinyMCE/plugins/devkit/jscripts/diff.js
new file mode 100644
index 0000000000000000000000000000000000000000..87b96cc2b554a2a08f13cf334f77aa5dcd706a9d
--- /dev/null
+++ b/tinyMCE/plugins/devkit/jscripts/diff.js
@@ -0,0 +1,1192 @@
+// Diff_Match_Patch v1.3
+// Computes the difference between two texts to create a patch.
+// Applies the patch onto another text, allowing for errors.
+// Copyright (C) 2006 Neil Fraser
+// http://neil.fraser.name/software/diff_match_patch/
+
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation.
+
+// This program 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 General Public License (www.gnu.org) for more details.
+
+
+// Constants.
+// Redefine these in your program to override the defaults.
+
+// Number of seconds to map a diff before giving up.  (0 for infinity)
+var DIFF_TIMEOUT = 1.0;
+// Cost of an empty edit operation in terms of edit characters.
+var DIFF_EDIT_COST = 4;
+// Tweak the relative importance (0.0 = accuracy, 1.0 = proximity)
+var MATCH_BALANCE = 0.5;
+// At what point is no match declared (0.0 = perfection, 1.0 = very loose)
+var MATCH_THRESHOLD = 0.5;
+// The min and max cutoffs used when computing text lengths.
+var MATCH_MINLENGTH = 100;
+var MATCH_MAXLENGTH = 1000;
+// Chunk size for context length.
+var PATCH_MARGIN = 4;
+
+
+  //////////////////////////////////////////////////////////////////////
+ //  Diff                                                            //
+//////////////////////////////////////////////////////////////////////
+
+// The data structure representing a diff is an array of tuples:
+// [[-1, "Hello"], [1, "Goodbye"], [0, " world."]]
+// which means: delete "Hello", add "Goodbye" and keep " world."
+
+
+function diff_main(text1, text2, checklines) {
+  // Find the differences between two texts.  Return an array of changes.
+  // If checklines is present and false, then don't run a line-level diff first to identify the changed areas.
+  // Check for equality (speedup)
+  if (text1 == text2)
+    return [[0, text1]];
+
+  if (typeof checklines == 'undefined')
+    checklines = true;
+
+  var a;
+  // Trim off common prefix (speedup)
+  a = diff_prefix(text1, text2);
+  text1 = a[0];
+  text2 = a[1];
+  var commonprefix = a[2];
+
+  // Trim off common suffix (speedup)
+  a = diff_suffix(text1, text2);
+  text1 = a[0];
+  text2 = a[1];
+  var commonsuffix = a[2];
+
+  var diff, i;
+  var longtext = text1.length > text2.length ? text1 : text2;
+  var shorttext = text1.length > text2.length ? text2 : text1;
+
+  if (!text1) {  // Just add some text (speedup)
+    diff = [[1, text2]];
+  } else if (!text2) { // Just delete some text (speedup)
+    diff = [[-1, text1]];
+  } else if ((i = longtext.indexOf(shorttext)) != -1) {
+    // Shorter text is inside the longer text (speedup)
+    diff = [[1, longtext.substring(0, i)], [0, shorttext], [1, longtext.substring(i+shorttext.length)]];
+    // Swap insertions for deletions if diff is reversed.
+    if (text1.length > text2.length)
+      diff[0][0] = diff[2][0] = -1;
+  } else {
+    longtext = shorttext = null; // Garbage collect
+    // Check to see if the problem can be split in two.
+    var hm = diff_halfmatch(text1, text2);
+    if (hm) {
+      // A half-match was found, sort out the return data.
+      var text1_a = hm[0];
+      var text1_b = hm[1];
+      var text2_a = hm[2];
+      var text2_b = hm[3];
+      var mid_common = hm[4];
+      // Send both pairs off for separate processing.
+      var diff_a = diff_main(text1_a, text2_a, checklines);
+      var diff_b = diff_main(text1_b, text2_b, checklines);
+      // Merge the results.
+      diff = diff_a.concat([[0, mid_common]], diff_b);
+    } else {
+      // Perform a real diff.
+      if (checklines && text1.length + text2.length < 250)
+        checklines = false; // Too trivial for the overhead.
+      if (checklines) {
+        // Scan the text on a line-by-line basis first.
+        a = diff_lines2chars(text1, text2);
+        text1 = a[0];
+        text2 = a[1];
+        var linearray = a[2];
+      }
+      diff = diff_map(text1, text2);
+      if (!diff) // No acceptable result.
+        diff = [[-1, text1], [1, text2]];
+      if (checklines) {
+        diff_chars2lines(diff, linearray); // Convert the diff back to original text.
+        diff_cleanup_semantic(diff); // Eliminate freak matches (e.g. blank lines)
+
+        // Rediff any replacement blocks, this time on character-by-character basis.
+        diff.push([0, '']);  // Add a dummy entry at the end.
+        var pointer = 0;
+        var count_delete = 0;
+        var count_insert = 0;
+        var text_delete = '';
+        var text_insert = '';
+        while(pointer < diff.length) {
+          if (diff[pointer][0] == 1) {
+            count_insert++;
+            text_insert += diff[pointer][1];
+          } else if (diff[pointer][0] == -1) {
+            count_delete++;
+            text_delete += diff[pointer][1];
+          } else {  // Upon reaching an equality, check for prior redundancies.
+            if (count_delete >= 1 && count_insert >= 1) {
+              // Delete the offending records and add the merged ones.
+              a = diff_main(text_delete, text_insert, false);
+              diff.splice(pointer - count_delete - count_insert, count_delete + count_insert);
+              pointer = pointer - count_delete - count_insert;
+              for (i=a.length-1; i>=0; i--)
+                diff.splice(pointer, 0, a[i]);
+              pointer = pointer + a.length;
+            }
+            count_insert = 0;
+            count_delete = 0;
+            text_delete = '';
+            text_insert = '';
+          }
+          pointer++;
+        }
+        diff.pop();  // Remove the dummy entry at the end.
+
+      }
+    }
+  }
+
+  if (commonprefix)
+    diff.unshift([0, commonprefix]);
+  if (commonsuffix)
+    diff.push([0, commonsuffix]);
+  diff_cleanup_merge(diff);
+  return diff;
+}
+
+
+function diff_lines2chars(text1, text2) {
+  // Split text into an array of strings.
+  // Reduce the texts to a string of hashes where each character represents one line.
+  var linearray = new Array();  // linearray[4] == "Hello\n"
+  var linehash = new Object();  // linehash["Hello\n"] == 4
+
+  // "\x00" is a valid JavaScript character, but the Venkman debugger doesn't like it (bug 335098)
+  // So we'll insert a junk entry to avoid generating a null character.
+  linearray.push('');
+
+  function diff_lines2chars_munge(text) {
+    // My first ever closure!
+    var i, line;
+    var chars = '';
+    while (text) {
+      i = text.indexOf('\n');
+      if (i == -1)
+        i = text.length;
+      line = text.substring(0, i+1);
+      text = text.substring(i+1);
+      if (linehash.hasOwnProperty ? linehash.hasOwnProperty(line) : (linehash[line] !== undefined)) {
+        chars += String.fromCharCode(linehash[line]);
+      } else {
+        linearray.push(line);
+        linehash[line] = linearray.length - 1;
+        chars += String.fromCharCode(linearray.length - 1);
+      }
+    }
+    return chars;
+  }
+
+  var chars1 = diff_lines2chars_munge(text1);
+  var chars2 = diff_lines2chars_munge(text2);
+  return [chars1, chars2, linearray];
+}
+
+
+function diff_chars2lines(diff, linearray) {
+  // Rehydrate the text in a diff from a string of line hashes to real lines of text.
+  var chars, text;
+  for (var x=0; x<diff.length; x++) {
+    chars = diff[x][1];
+    text = '';
+    for (var y=0; y<chars.length; y++)
+      text += linearray[chars.charCodeAt(y)];
+    diff[x][1] = text;
+  }
+}
+
+
+function diff_map(text1, text2) {
+  // Explore the intersection points between the two texts.
+  var now = new Date();
+  var ms_end = now.getTime() + DIFF_TIMEOUT * 1000; // Don't run for too long.
+  var max = (text1.length + text2.length) / 2;
+  var v_map1 = new Array();
+  var v_map2 = new Array();
+  var v1 = new Object();
+  var v2 = new Object();
+  v1[1] = 0;
+  v2[1] = 0;
+  var x, y;
+  var footstep; // Used to track overlapping paths.
+  var footsteps = new Object();
+  var done = false;
+  var hasOwnProperty = !!(footsteps.hasOwnProperty);
+  // If the total number of characters is odd, then the front path will collide with the reverse path.
+  var front = (text1.length + text2.length) % 2;
+  for (var d=0; d<max; d++) {
+    now = new Date();
+    if (DIFF_TIMEOUT > 0 && now.getTime() > ms_end) // Timeout reached
+      return null;
+
+    // Walk the front path one step.
+    v_map1[d] = new Object();
+    for (var k=-d; k<=d; k+=2) {
+      if (k == -d || k != d && v1[k-1] < v1[k+1])
+        x = v1[k+1];
+      else
+        x = v1[k-1]+1;
+      y = x - k;
+      footstep = x+","+y;
+      if (front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined)))
+        done = true;
+      if (!front)
+        footsteps[footstep] = d;
+      while (!done && x < text1.length && y < text2.length && text1.charAt(x) == text2.charAt(y)) {
+        x++; y++;
+        footstep = x+","+y;
+        if (front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined)))
+          done = true;
+        if (!front)
+          footsteps[footstep] = d;
+      }
+      v1[k] = x;
+      v_map1[d][x+","+y] = true;
+      if (done) {
+        // Front path ran over reverse path.
+        v_map2 = v_map2.slice(0, footsteps[footstep]+1);
+        var a = diff_path1(v_map1, text1.substring(0, x), text2.substring(0, y));
+        return a.concat(diff_path2(v_map2, text1.substring(x), text2.substring(y)));
+      }
+    }
+
+    // Walk the reverse path one step.
+    v_map2[d] = new Object();
+    for (var k=-d; k<=d; k+=2) {
+      if (k == -d || k != d && v2[k-1] < v2[k+1])
+        x = v2[k+1];
+      else
+        x = v2[k-1]+1;
+      y = x - k;
+      footstep = (text1.length-x)+","+(text2.length-y);
+      if (!front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined)))
+        done = true;
+      if (front)
+        footsteps[footstep] = d;
+      while (!done && x < text1.length && y < text2.length && text1.charAt(text1.length-x-1) == text2.charAt(text2.length-y-1)) {
+        x++; y++;
+        footstep = (text1.length-x)+","+(text2.length-y);
+        if (!front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined)))
+          done = true;
+        if (front)
+          footsteps[footstep] = d;
+      }
+      v2[k] = x;
+      v_map2[d][x+","+y] = true;
+      if (done) {
+        // Reverse path ran over front path.
+        v_map1 = v_map1.slice(0, footsteps[footstep]+1);
+        var a = diff_path1(v_map1, text1.substring(0, text1.length-x), text2.substring(0, text2.length-y));
+        return a.concat(diff_path2(v_map2, text1.substring(text1.length-x), text2.substring(text2.length-y)));
+      }
+    }
+  }
+  // Number of diffs equals number of characters, no commonality at all.
+  return null;
+}
+
+
+function diff_path1(v_map, text1, text2) {
+  // Work from the middle back to the start to determine the path.
+  var path = [];
+  var x = text1.length;
+  var y = text2.length;
+  var last_op = null;
+  for (var d=v_map.length-2; d>=0; d--) {
+    while(1) {
+      if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty((x-1)+","+y) : (v_map[d][(x-1)+","+y] !== undefined)) {
+        x--;
+        if (last_op === -1)
+          path[0][1] = text1.charAt(x) + path[0][1];
+        else
+          path.unshift([-1, text1.charAt(x)]);
+        last_op = -1;
+        break;
+      } else if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty(x+","+(y-1)) : (v_map[d][x+","+(y-1)] !== undefined)) {
+        y--;
+        if (last_op === 1)
+          path[0][1] = text2.charAt(y) + path[0][1];
+        else
+          path.unshift([1, text2.charAt(y)]);
+        last_op = 1;
+        break;
+      } else {
+        x--;
+        y--;
+        //if (text1.charAt(x) != text2.charAt(y))
+        //  return alert("No diagonal.  Can't happen. (diff_path1)");
+        if (last_op === 0)
+          path[0][1] = text1.charAt(x) + path[0][1];
+        else
+          path.unshift([0, text1.charAt(x)]);
+        last_op = 0;
+      }
+    }
+  }
+  return path;
+}
+
+
+function diff_path2(v_map, text1, text2) {
+  // Work from the middle back to the end to determine the path.
+  var path = [];
+  var x = text1.length;
+  var y = text2.length;
+  var last_op = null;
+  for (var d=v_map.length-2; d>=0; d--) {
+    while(1) {
+      if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty((x-1)+","+y) : (v_map[d][(x-1)+","+y] !== undefined)) {
+        x--;
+        if (last_op === -1)
+          path[path.length-1][1] += text1.charAt(text1.length-x-1);
+        else
+          path.push([-1, text1.charAt(text1.length-x-1)]);
+        last_op = -1;
+        break;
+      } else if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty(x+","+(y-1)) : (v_map[d][x+","+(y-1)] !== undefined)) {
+        y--;
+        if (last_op === 1)
+          path[path.length-1][1] += text2.charAt(text2.length-y-1);
+        else
+          path.push([1, text2.charAt(text2.length-y-1)]);
+        last_op = 1;
+        break;
+      } else {
+        x--;
+        y--;
+        //if (text1.charAt(text1.length-x-1) != text2.charAt(text2.length-y-1))
+        //  return alert("No diagonal.  Can't happen. (diff_path2)");
+        if (last_op === 0)
+          path[path.length-1][1] += text1.charAt(text1.length-x-1);
+        else
+          path.push([0, text1.charAt(text1.length-x-1)]);
+        last_op = 0;
+      }
+    }
+  }
+  return path;
+}
+
+
+function diff_prefix(text1, text2) {
+  // Trim off common prefix
+  var pointermin = 0;
+  var pointermax = Math.min(text1.length, text2.length);
+  var pointermid = pointermax;
+  while(pointermin < pointermid) {
+    if (text1.substring(0, pointermid) == text2.substring(0, pointermid))
+      pointermin = pointermid;
+    else
+      pointermax = pointermid;
+    pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
+  }
+  var commonprefix = text1.substring(0, pointermid);
+  text1 = text1.substring(pointermid);
+  text2 = text2.substring(pointermid);
+  return [text1, text2, commonprefix];
+}
+
+
+function diff_suffix(text1, text2) {
+  // Trim off common suffix
+  var pointermin = 0;
+  var pointermax = Math.min(text1.length, text2.length);
+  var pointermid = pointermax;
+  while(pointermin < pointermid) {
+    if (text1.substring(text1.length-pointermid) == text2.substring(text2.length-pointermid))
+      pointermin = pointermid;
+    else
+      pointermax = pointermid;
+    pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
+  }
+  var commonsuffix = text1.substring(text1.length-pointermid);
+  text1 = text1.substring(0, text1.length-pointermid);
+  text2 = text2.substring(0, text2.length-pointermid);
+  return [text1, text2, commonsuffix];
+}
+
+
+function diff_halfmatch(text1, text2) {
+  // Do the two texts share a substring which is at least half the length of the longer text?
+  var longtext = text1.length > text2.length ? text1 : text2;
+  var shorttext = text1.length > text2.length ? text2 : text1;
+  if (longtext.length < 10 || shorttext.length < 1)
+    return null; // Pointless.
+
+  function diff_halfmatch_i(longtext, shorttext, i) {
+    // Start with a 1/4 length substring at position i as a seed.
+    var seed = longtext.substring(i, i+Math.floor(longtext.length/4));
+    var j = -1;
+    var best_common = '';
+    var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;
+    while ((j = shorttext.indexOf(seed, j+1)) != -1) {
+      var my_prefix = diff_prefix(longtext.substring(i), shorttext.substring(j));
+      var my_suffix = diff_suffix(longtext.substring(0, i), shorttext.substring(0, j));
+      if (best_common.length < (my_suffix[2] + my_prefix[2]).length) {
+        best_common = my_suffix[2] + my_prefix[2];
+        best_longtext_a = my_suffix[0];
+        best_longtext_b = my_prefix[0];
+        best_shorttext_a = my_suffix[1];
+        best_shorttext_b = my_prefix[1];
+      }
+    }
+    if (best_common.length >= longtext.length/2)
+      return [best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common];
+    else
+      return null;
+  }
+
+  // First check if the second quarter is the seed for a half-match.
+  var hm1 = diff_halfmatch_i(longtext, shorttext, Math.ceil(longtext.length/4));
+  // Check again based on the third quarter.
+  var hm2 = diff_halfmatch_i(longtext, shorttext, Math.ceil(longtext.length/2));
+  var hm;
+  if (!hm1 && !hm2)
+    return null;
+  else if (!hm2)
+    hm = hm1;
+  else if (!hm1)
+    hm = hm2;
+  else // Both matched.  Select the longest.
+    hm = hm1[4].length > hm2[4].length ? hm1 : hm2;
+
+  // A half-match was found, sort out the return data.
+  if (text1.length > text2.length) {
+    var text1_a = hm[0];
+    var text1_b = hm[1];
+    var text2_a = hm[2];
+    var text2_b = hm[3];
+  } else {
+    var text2_a = hm[0];
+    var text2_b = hm[1];
+    var text1_a = hm[2];
+    var text1_b = hm[3];
+  }
+  var mid_common = hm[4];
+  return [text1_a, text1_b, text2_a, text2_b, mid_common];
+}
+
+
+function diff_cleanup_semantic(diff) {
+  // Reduce the number of edits by eliminating semantically trivial equalities.
+  var changes = false;
+  var equalities = []; // Stack of indices where equalities are found.
+  var lastequality = null; // Always equal to equalities[equalities.length-1][1]
+  var pointer = 0; // Index of current position.
+  var length_changes1 = 0; // Number of characters that changed prior to the equality.
+  var length_changes2 = 0; // Number of characters that changed after the equality.
+  while (pointer < diff.length) {
+    if (diff[pointer][0] == 0) { // equality found
+      equalities.push(pointer);
+      length_changes1 = length_changes2;
+      length_changes2 = 0;
+      lastequality = diff[pointer][1];
+    } else { // an insertion or deletion
+      length_changes2 += diff[pointer][1].length;
+      if (lastequality != null && (lastequality.length <= length_changes1) && (lastequality.length <= length_changes2)) {
+        //alert("Splitting: '"+lastequality+"'");
+        diff.splice(equalities[equalities.length-1], 0, [-1, lastequality]); // Duplicate record
+        diff[equalities[equalities.length-1]+1][0] = 1; // Change second copy to insert.
+        equalities.pop();  // Throw away the equality we just deleted;
+        equalities.pop();  // Throw away the previous equality;
+        pointer = equalities.length ? equalities[equalities.length-1] : -1;
+        length_changes1 = 0; // Reset the counters.
+        length_changes2 = 0;
+        lastequality = null;
+        changes = true;
+      }
+    }
+    pointer++;
+  }
+
+  if (changes)
+    diff_cleanup_merge(diff);
+}
+
+
+function diff_cleanup_efficiency(diff) {
+  // Reduce the number of edits by eliminating operationally trivial equalities.
+  var changes = false;
+  var equalities = []; // Stack of indices where equalities are found.
+  var lastequality = ''; // Always equal to equalities[equalities.length-1][1]
+  var pointer = 0; // Index of current position.
+  var pre_ins = false; // Is there an insertion operation before the last equality.
+  var pre_del = false; // Is there an deletion operation before the last equality.
+  var post_ins = false; // Is there an insertion operation after the last equality.
+  var post_del = false; // Is there an deletion operation after the last equality.
+  while (pointer < diff.length) {
+    if (diff[pointer][0] == 0) { // equality found
+      if (diff[pointer][1].length < DIFF_EDIT_COST && (post_ins || post_del)) {
+        // Candidate found.
+        equalities.push(pointer);
+        pre_ins = post_ins;
+        pre_del = post_del;
+        lastequality = diff[pointer][1];
+      } else {
+        // Not a candidate, and can never become one.
+        equalities = [];
+        lastequality = '';
+      }
+      post_ins = post_del = false;
+    } else { // an insertion or deletion
+      if (diff[pointer][0] == -1)
+        post_del = true;
+      else
+        post_ins = true;
+      // Five types to be split:
+      // <ins>A</ins><del>B</del>XY<ins>C</ins><del>D</del>
+      // <ins>A</ins>X<ins>C</ins><del>D</del>
+      // <ins>A</ins><del>B</del>X<ins>C</ins>
+      // <ins>A</del>X<ins>C</ins><del>D</del>
+      // <ins>A</ins><del>B</del>X<del>C</del>
+      if (lastequality && ((pre_ins && pre_del && post_ins && post_del) || ((lastequality.length < DIFF_EDIT_COST/2) && (pre_ins + pre_del + post_ins + post_del) == 3))) {
+        //alert("Splitting: '"+lastequality+"'");
+        diff.splice(equalities[equalities.length-1], 0, [-1, lastequality]); // Duplicate record
+        diff[equalities[equalities.length-1]+1][0] = 1; // Change second copy to insert.
+        equalities.pop();  // Throw away the equality we just deleted;
+        lastequality = '';
+        if (pre_ins && pre_del) {
+          // No changes made which could affect previous entry, keep going.
+          post_ins = post_del = true;
+          equalities = [];
+        } else {
+          equalities.pop();  // Throw away the previous equality;
+          pointer = equalities.length ? equalities[equalities.length-1] : -1;
+          post_ins = post_del = false;
+        }
+        changes = true;
+      }
+    }
+    pointer++;
+  }
+
+  if (changes)
+    diff_cleanup_merge(diff);
+}
+
+
+function diff_cleanup_merge(diff) {
+  // Reorder and merge like edit sections.  Merge equalities.
+  // Any edit section can move as long as it doesn't cross an equality.
+  diff.push([0, '']);  // Add a dummy entry at the end.
+  var pointer = 0;
+  var count_delete = 0;
+  var count_insert = 0;
+  var text_delete = '';
+  var text_insert = '';
+  var record_insert, record_delete;
+  var my_xfix;
+  while(pointer < diff.length) {
+    if (diff[pointer][0] == 1) {
+      count_insert++;
+      text_insert += diff[pointer][1];
+      pointer++;
+    } else if (diff[pointer][0] == -1) {
+      count_delete++;
+      text_delete += diff[pointer][1];
+      pointer++;
+    } else {  // Upon reaching an equality, check for prior redundancies.
+      if (count_delete > 1 || count_insert > 1) {
+        if (count_delete > 1 && count_insert > 1) {
+          // Factor out any common prefixies.
+          my_xfix = diff_prefix(text_insert, text_delete);
+          if (my_xfix[2] != '') {
+            if ((pointer - count_delete - count_insert) > 0 && diff[pointer - count_delete - count_insert - 1][0] == 0) {
+              text_insert = my_xfix[0];
+              text_delete = my_xfix[1];
+              diff[pointer - count_delete - count_insert - 1][1] += my_xfix[2];
+            }
+          }
+          // Factor out any common suffixies.
+          my_xfix = diff_suffix(text_insert, text_delete);
+          if (my_xfix[2] != '') {
+            text_insert = my_xfix[0];
+            text_delete = my_xfix[1];
+            diff[pointer][1] = my_xfix[2] + diff[pointer][1];
+          }
+        }
+        // Delete the offending records and add the merged ones.
+        if (count_delete == 0)
+          diff.splice(pointer - count_delete - count_insert, count_delete + count_insert, [1, text_insert]);
+        else if (count_insert == 0)
+          diff.splice(pointer - count_delete - count_insert, count_delete + count_insert, [-1, text_delete]);
+        else
+          diff.splice(pointer - count_delete - count_insert, count_delete + count_insert, [-1, text_delete], [1, text_insert]);
+        pointer = pointer - count_delete - count_insert + (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;
+      } else if (pointer != 0 && diff[pointer-1][0] == 0) {
+        // Merge this equality with the previous one.
+        diff[pointer-1][1] += diff[pointer][1];
+        diff.splice(pointer, 1);
+      } else {
+        pointer++;
+      }
+      count_insert = 0;
+      count_delete = 0;
+      text_delete = '';
+      text_insert = '';
+    }
+  }
+  if (diff[diff.length-1][1] == '')
+    diff.pop();  // Remove the dummy entry at the end.
+}
+
+
+function diff_addindex(diff) {
+  // Add an index to each tuple, represents where the tuple is located in text2.
+  // e.g. [[-1, 'h', 0], [1, 'c', 0], [0, 'at', 1]]
+  var i = 0;
+  for (var x=0; x<diff.length; x++) {
+    diff[x].push(i);
+    if (diff[x][0] != -1)
+      i += diff[x][1].length;
+  }
+}
+
+
+function diff_xindex(diff, loc) {
+  // loc is a location in text1, compute and return the equivalent location in text2.
+  // e.g. "The cat" vs "The big cat", 1->1, 5->8
+  var chars1 = 0;
+  var chars2 = 0;
+  var last_chars1 = 0;
+  var last_chars2 = 0;
+  for (var x=0; x<diff.length; x++) {
+    if (diff[x][0] != 1) // Equality or deletion.
+      chars1 += diff[x][1].length;
+    if (diff[x][0] != -1) // Equality or insertion.
+      chars2 += diff[x][1].length;
+    if (chars1 > loc) // Overshot the location.
+      break;
+    last_chars1 = chars1;
+    last_chars2 = chars2;
+  }
+  if (diff.length != x && diff[x][0] == -1) // The location was deleted.
+    return last_chars2;
+  // Add the remaining character length.
+  return last_chars2 + (loc - last_chars1);
+}
+
+
+function diff_prettyhtml(diff) {
+  // Convert a diff array into a pretty HTML report.
+  diff_addindex(diff);
+  var html = '';
+  for (var x=0; x<diff.length; x++) {
+    var m = diff[x][0]; // Mode (-1=delete, 0=copy, 1=add)
+    var t = diff[x][1]; // Text of change.
+    var i = diff[x][2]; // Index of change.
+    t = t.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
+    t = t.replace(/\n/g, "&para;<BR>");
+    if (m == -1)
+      html += "<DEL STYLE='background:#FFE6E6;' TITLE='i="+i+"'>"+t+"</DEL>";
+    else if (m == 1)
+      html += "<INS STYLE='background:#E6FFE6;' TITLE='i="+i+"'>"+t+"</INS>";
+    else
+      html += "<SPAN TITLE='i="+i+"'>"+t+"</SPAN>";
+  }
+  return html;
+}
+
+
+  //////////////////////////////////////////////////////////////////////
+ //  Match                                                           //
+//////////////////////////////////////////////////////////////////////
+
+
+function match_getmaxbits() {
+  // Compute the number of bits in an int.
+  // The normal answer for JavaScript is 32.
+  var maxbits = 0;
+  var oldi = 1;
+  var newi = 2;
+  while (oldi != newi) {
+    maxbits++;
+    oldi = newi;
+    newi = newi << 1;
+  }
+  return maxbits;
+}
+var MATCH_MAXBITS = match_getmaxbits();
+
+
+function match_main(text, pattern, loc) {
+  // Locate the best instance of 'pattern' in 'text' near 'loc'.
+  loc = Math.max(0, Math.min(loc, text.length-pattern.length));
+  if (text == pattern) {
+    // Shortcut (potentially not guaranteed by the algorithm)
+    return 0;
+  } else if (text.length == 0) {
+    // Nothing to match.
+    return null;
+  } else if (text.substring(loc, loc + pattern.length) == pattern) {
+    // Perfect match at the perfect spot!  (Includes case of null pattern)
+    return loc;
+  } else {
+    // Do a fuzzy compare.
+    var match = match_bitap(text, pattern, loc);
+    return match;
+  }
+}
+
+
+function match_bitap(text, pattern, loc) {
+  // Locate the best instance of 'pattern' in 'text' near 'loc' using the Bitap algorithm.
+  if (pattern.length > MATCH_MAXBITS)
+    return alert("Pattern too long for this browser.");
+
+  // Initialise the alphabet.
+  var s = match_alphabet(pattern);
+
+  var score_text_length = text.length;
+  // Coerce the text length between reasonable maximums and minimums.
+  score_text_length = Math.max(score_text_length, MATCH_MINLENGTH);
+  score_text_length = Math.min(score_text_length, MATCH_MAXLENGTH);
+
+  function match_bitap_score (e, x) {
+    // Compute and return the score for a match with e errors and x location.
+    var d = Math.abs(loc-x);
+    return (e / pattern.length / MATCH_BALANCE) + (d / score_text_length / (1.0 - MATCH_BALANCE));
+  }
+
+  // Highest score beyond which we give up.
+  var score_threshold = MATCH_THRESHOLD;
+  // Is there a nearby exact match? (speedup)
+  var best_loc = text.indexOf(pattern, loc);
+  if (best_loc != -1)
+    score_threshold = Math.min(match_bitap_score(0, best_loc), score_threshold);
+  // What about in the other direction? (speedup)
+  best_loc = text.lastIndexOf(pattern, loc+pattern.length);
+  if (best_loc != -1)
+    score_threshold = Math.min(match_bitap_score(0, best_loc), score_threshold);
+
+  // Initialise the bit arrays.
+  var r = Array();
+  var d = -1;
+  var matchmask = Math.pow(2, pattern.length-1);
+  best_loc = null;
+
+  var bin_min, bin_mid;
+  var bin_max = Math.max(loc+loc, text.length);
+  var last_rd;
+  for (var d=0; d<pattern.length; d++) {
+    // Scan for the best match; each iteration allows for one more error.
+    var rd = Array(text.length);
+
+    // Run a binary search to determine how far from 'loc' we can stray at this error level.
+    bin_min = loc;
+    bin_mid = bin_max;
+    while(bin_min < bin_mid) {
+      if (match_bitap_score(d, bin_mid) < score_threshold)
+        bin_min = bin_mid;
+      else
+        bin_max = bin_mid;
+      bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min);
+    }
+    bin_max = bin_mid; // Use the result from this iteration as the maximum for the next.
+    var start = Math.max(0, loc - (bin_mid - loc) - 1);
+    var finish = Math.min(text.length-1, pattern.length + bin_mid);
+
+    if (text.charAt(finish) == pattern.charAt(pattern.length-1))
+      rd[finish] = Math.pow(2, d+1)-1;
+    else
+      rd[finish] = Math.pow(2, d)-1;
+    for (var j=finish-1; j>=start; j--) {
+      // The alphabet (s) is a sparse hash, so the following lines generate warnings.
+      if (d == 0) // First pass: exact match.
+        rd[j] = ((rd[j+1] << 1) | 1) & s[text.charAt(j)];
+      else // Subsequent passes: fuzzy match.
+        rd[j] = ((rd[j+1] << 1) | 1) & s[text.charAt(j)] | ((last_rd[j+1] << 1) | 1) | ((last_rd[j] << 1) | 1) | last_rd[j+1];
+      if (rd[j] & matchmask) {
+        var score = match_bitap_score(d, j);
+        // This match will almost certainly be better than any existing match.  But check anyway.
+        if (score <= score_threshold) {
+          // Told you so.
+          score_threshold = score;
+          best_loc = j;
+          if (j > loc) {
+            // When passing loc, don't exceed our current distance from loc.
+            start = Math.max(0, loc - (j - loc));
+          } else {
+            // Already passed loc, downhill from here on in.
+            break;
+          }
+        }
+      }
+    }
+    if (match_bitap_score(d+1, loc) > score_threshold) // No hope for a (better) match at greater error levels.
+      break;
+    last_rd = rd;
+  }
+  return best_loc;
+}
+
+
+function match_alphabet(pattern) {
+  // Initialise the alphabet for the Bitap algorithm.
+  var s = Object();
+  for (var i=0; i<pattern.length; i++)
+    s[pattern.charAt(i)] = 0;
+  for (var i=0; i<pattern.length; i++)
+    s[pattern.charAt(i)] |= Math.pow(2, pattern.length-i-1);
+  return s;
+}
+
+
+  //////////////////////////////////////////////////////////////////////
+ //  Patch                                                           //
+//////////////////////////////////////////////////////////////////////
+
+
+function patch_obj() {
+  // Constructor for a patch object.
+  this.diffs = [];
+  this.start1 = null;
+  this.start2 = null;
+  this.length1 = 0;
+  this.length2 = 0;
+
+  this.toString = function() {
+    // Emmulate GNU diff's format.
+    // Header: @@ -382,8 +481,9 @@
+    // Indicies are printed as 1-based, not 0-based.
+    var coords1, coords2;
+    if (this.length1 == 0)
+      coords1 = this.start1+",0";
+    else if (this.length1 == 1)
+      coords1 = this.start1+1;
+    else
+      coords1 = (this.start1+1)+","+this.length1;
+    if (this.length2 == 0)
+      coords2 = this.start2+",0";
+    else if (this.length2 == 1)
+      coords2 = this.start2+1;
+    else
+      coords2 = (this.start2+1)+","+this.length2;
+    var txt = "@@ -"+coords1+" +"+coords2+" @@\n";
+    // Escape the body of the patch with %xx notation.
+    for (var x=0; x<this.diffs.length; x++)
+      txt += ("- +".charAt(this.diffs[x][0]+1)) + encodeURI(this.diffs[x][1]) + "\n";
+    return txt.replace(/%20/g, ' ');
+  }
+
+  this.text1 = function() {
+    // Compute and return the source text (all equalities and deletions).
+    var txt = '';
+    for (var x=0; x<this.diffs.length; x++)
+      if (this.diffs[x][0] == 0 || this.diffs[x][0] == -1)
+        txt += this.diffs[x][1];
+    return txt;
+  }
+
+  this.text2 = function() {
+    // Compute and return the destination text (all equalities and insertions).
+    var txt = '';
+    for (var x=0; x<this.diffs.length; x++)
+      if (this.diffs[x][0] == 0 || this.diffs[x][0] == 1)
+        txt += this.diffs[x][1];
+    return txt;
+  }
+}
+
+
+function patch_addcontext(patch, text) {
+  var pattern = text.substring(patch.start2, patch.start2+patch.length1);
+  var padding = 0;
+  // Increase the context until we're unique (but don't let the pattern expand beyond MATCH_MAXBITS).
+  while (text.indexOf(pattern) != text.lastIndexOf(pattern) && pattern.length < MATCH_MAXBITS-PATCH_MARGIN-PATCH_MARGIN) {
+    padding += PATCH_MARGIN;
+    pattern = text.substring(patch.start2 - padding, patch.start2+patch.length1 + padding);
+  }
+  // Add one chunk for good luck.
+  padding += PATCH_MARGIN;
+  // Add the prefix.
+  var prefix = text.substring(patch.start2 - padding, patch.start2);
+  if (prefix != '')
+    patch.diffs.unshift([0, prefix]);
+  // Add the suffix
+  var suffix = text.substring(patch.start2+patch.length1, patch.start2+patch.length1 + padding);
+  if (suffix != '')
+    patch.diffs.push([0, suffix]);
+
+  // Roll back the start points.
+  patch.start1 -= prefix.length;
+  patch.start2 -= prefix.length;
+  // Extend the lengths.
+  patch.length1 += prefix.length + suffix.length;
+  patch.length2 += prefix.length + suffix.length;
+}
+
+
+function patch_make(text1, text2, diff) {
+  // Compute a list of patches to turn text1 into text2.
+  // Use diff if provided, otherwise compute it ourselves.
+  if (typeof diff == 'undefined') {
+    diff = diff_main(text1, text2, true);
+    if (diff.length > 2) {
+      diff_cleanup_semantic(diff);
+      diff_cleanup_efficiency(diff);
+    }
+  }
+  if (diff.length == 0)
+    return []; // Get rid of the null case.
+  var patches = [];
+  var patch = new patch_obj();
+  var char_count1 = 0; // Number of characters into the text1 string.
+  var char_count2 = 0; // Number of characters into the text2 string.
+  var last_type = null;
+  var prepatch_text = text1; // Recreate the patches to determine context info.
+  var postpatch_text = text1;
+  for (var x=0; x<diff.length; x++) {
+    var diff_type = diff[x][0];
+    var diff_text = diff[x][1];
+
+    if (patch.diffs.length == 0 && diff_type != 0) {
+      // A new patch starts here.
+      patch.start1 = char_count1;
+      patch.start2 = char_count2;
+    }
+
+    if (diff_type == 1) {
+      // Insertion
+      patch.diffs.push(diff[x]);
+      patch.length2 += diff_text.length;
+      postpatch_text = postpatch_text.substring(0, char_count2) + diff_text + postpatch_text.substring(char_count2);
+    } else if (diff_type == -1) {
+      // Deletion.
+      patch.length1 += diff_text.length;
+      patch.diffs.push(diff[x]);
+      postpatch_text = postpatch_text.substring(0, char_count2) + postpatch_text.substring(char_count2 + diff_text.length);
+    } else if (diff_type == 0 && diff_text.length <= 2*PATCH_MARGIN && patch.diffs.length != 0 && diff.length != x+1) {
+      // Small equality inside a patch.
+      patch.diffs.push(diff[x]);
+      patch.length1 += diff_text.length;
+      patch.length2 += diff_text.length;
+    }
+
+    last_type = diff_type;
+    if (diff_type == 0 && diff_text.length >= 2*PATCH_MARGIN) {
+      // Time for a new patch.
+      if (patch.diffs.length != 0) {
+        patch_addcontext(patch, prepatch_text);
+        patches.push(patch);
+        var patch = new patch_obj();
+        last_type = null;
+        prepatch_text = postpatch_text;
+      }
+    }
+
+    // Update the current character count.
+    if (diff_type != 1)
+      char_count1 += diff_text.length;
+    if (diff_type != -1)
+      char_count2 += diff_text.length;
+  }
+  // Pick up the leftover patch if not empty.
+  if (patch.diffs.length != 0) {
+    patch_addcontext(patch, prepatch_text);
+    patches.push(patch);
+  }
+
+  return patches;
+}
+
+
+function patch_apply(patches, text) {
+  // Merge a set of patches onto the text.
+  // Return a patched text, as well as a list of true/false values indicating which patches were applied.
+  patch_splitmax(patches);
+  var results = [];
+  var delta = 0;
+  var expected_loc, start_loc;
+  var text1, text2;
+  var diff, mod, index1, index2;
+  for (var x=0; x<patches.length; x++) {
+    expected_loc = patches[x].start2 + delta;
+    text1 = patches[x].text1();
+    start_loc = match_main(text, text1, expected_loc);
+    if (start_loc == null) {
+      // No match found.  :(
+      results.push(false);
+    } else {
+      // Found a match.  :)
+      results.push(true);
+      delta = start_loc - expected_loc;
+      text2 = text.substring(start_loc, start_loc + text1.length);
+      if (text1 == text2) {
+        // Perfect match, just shove the replacement text in.
+        text = text.substring(0, start_loc) + patches[x].text2() + text.substring(start_loc + text1.length);
+      } else {
+        // Imperfect match.  Run a diff to get a framework of equivalent indicies.
+        diff = diff_main(text1, text2, false);
+        index1 = 0;
+        for (var y=0; y<patches[x].diffs.length; y++) {
+          mod = patches[x].diffs[y];
+          if (mod[0] != 0)
+            index2 = diff_xindex(diff, index1);
+          if (mod[0] == 1) // Insertion
+            text = text.substring(0, start_loc + index2) + mod[1] + text.substring(start_loc + index2);
+          else if (mod[0] == -1) // Deletion
+            text = text.substring(0, start_loc + index2) + text.substring(start_loc + diff_xindex(diff, index1 + mod[1].length));
+          if (mod[0] != -1)
+            index1 += mod[1].length;
+        }
+      }
+    }
+  }
+  return [text, results];
+}
+
+
+function patch_splitmax(patches) {
+  // Look through the patches and break up any which are longer than the maximum limit of the match algorithm.
+  var bigpatch, patch, patch_size, start1, start2, diff_type, diff_text, precontext, postcontext, empty;
+  for (var x=0; x<patches.length; x++) {
+    if (patches[x].length1 > MATCH_MAXBITS) {
+      bigpatch = patches[x];
+      // Remove the big old patch.
+      patches.splice(x, 1);
+      patch_size = MATCH_MAXBITS;
+      start1 = bigpatch.start1;
+      start2 = bigpatch.start2;
+      precontext = '';
+      while (bigpatch.diffs.length != 0) {
+        // Create one of several smaller patches.
+        patch = new patch_obj();
+        empty = true;
+        patch.start1 = start1 - precontext.length;
+        patch.start2 = start2 - precontext.length;
+        if (precontext  != '') {
+          patch.length1 = patch.length2 = precontext.length;
+          patch.diffs.push([0, precontext]);
+        }
+        while (bigpatch.diffs.length != 0 && patch.length1 < patch_size - PATCH_MARGIN) {
+          diff_type = bigpatch.diffs[0][0];
+          diff_text = bigpatch.diffs[0][1];
+          if (diff_type == 1) {
+            // Insertions are harmless.
+            patch.length2 += diff_text.length;
+            start2 += diff_text.length;
+            patch.diffs.push(bigpatch.diffs.shift());
+            empty = false;
+          } else {
+            // Deletion or equality.  Only take as much as we can stomach.
+            diff_text = diff_text.substring(0, patch_size - patch.length1 - PATCH_MARGIN);
+            patch.length1 += diff_text.length;
+            start1 += diff_text.length;
+            if (diff_type == 0) {
+              patch.length2 += diff_text.length;
+              start2 += diff_text.length;
+            } else {
+              empty = false;
+            }
+            patch.diffs.push([diff_type, diff_text]);
+            if (diff_text == bigpatch.diffs[0][1])
+              bigpatch.diffs.shift();
+            else
+              bigpatch.diffs[0][1] = bigpatch.diffs[0][1].substring(diff_text.length);
+          }
+        }
+        // Compute the head context for the next patch.
+        precontext = patch.text2();
+        precontext = precontext.substring(precontext.length - PATCH_MARGIN);
+        // Append the end context for this patch.
+        postcontext = bigpatch.text1().substring(0, PATCH_MARGIN);
+        if (postcontext  != '') {
+          patch.length1 += postcontext.length;
+          patch.length2 += postcontext.length;
+          if (patch.diffs.length > 0 && patch.diffs[patch.diffs.length-1][0] == 0)
+            patch.diffs[patch.diffs.length-1][1] += postcontext;
+          else
+            patch.diffs.push([0, postcontext]);
+        }
+        if (!empty)
+          patches.splice(x++, 0, patch);
+      }
+    }
+  }
+}
+
+
+function patch_totext(patches) {
+  // Take a list of patches and return a textual representation.
+  var text = '';
+  for (var x=0; x<patches.length; x++)
+    text += patches[x];
+  return text;
+}
+
+
+function patch_fromtext(text) {
+  // Take a textual representation of patches and return a list of patch objects.
+  var patches = [];
+  text = text.split('\n');
+  var patch, m, chars1, chars2, sign, line;
+  while (text.length != 0) {
+    m = text[0].match(/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/);
+    if (!m)
+      return alert("Invalid patch string:\n"+text[0]);
+    patch = new patch_obj();
+    patches.push(patch);
+    patch.start1 = parseInt(m[1]);
+    if (m[2] == '') {
+      patch.start1--;
+      patch.length1 = 1;
+    } else if (m[2] == '0') {
+      patch.length1 = 0;
+    } else {
+      patch.start1--;
+      patch.length1 = parseInt(m[2]);
+    }
+
+    patch.start2 = parseInt(m[3]);
+    if (m[4] == '') {
+      patch.start2--;
+      patch.length2 = 1;
+    } else if (m[4] == '0') {
+      patch.length2 = 0;
+    } else {
+      patch.start2--;
+      patch.length2 = parseInt(m[4]);
+    }
+    text.shift();
+
+    while (text.length != 0) {
+      sign = text[0].charAt(0);
+      line = decodeURIComponent(text[0].substring(1));
+      if (sign == '-') {
+        // Deletion.
+        patch.diffs.push([-1, line]);
+      } else if (sign == '+') {
+        // Insertion.
+        patch.diffs.push([1, line]);
+      } else if (sign == ' ') {
+        // Minor equality.
+        patch.diffs.push([0, line]);
+      } else if (sign == '@') {
+        // Start of next patch.
+        break;
+      } else if (sign == '') {
+        // Blank line?  Whatever.
+      } else {
+        // WTF?
+        return alert("Invalid patch mode: '"+sign+"'\n"+line);
+      }
+      text.shift();
+    }
+  }
+  return patches;
+}
+
+// EOF
diff --git a/tinyMCE/plugins/devkit/langs/en.js b/tinyMCE/plugins/devkit/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..44356cf0616ea69f1024a704197dea15f155963e
--- /dev/null
+++ b/tinyMCE/plugins/devkit/langs/en.js
@@ -0,0 +1,23 @@
+// UK lang variables
+
+tinyMCE.addToLang('devkit',{
+title : 'TinyMCE Development Kit',
+info_tab : 'Info',
+settings_tab : 'Settings',
+log_tab : 'Log',
+content_tab : 'Content',
+command_states_tab : 'Commands',
+undo_redo_tab : 'Undo/Redo',
+misc_tab : 'Misc',
+filter : 'Filter:',
+clear_log : 'Clear log',
+refresh : 'Refresh',
+info_help : 'Press Refresh to view info.',
+settings_help : 'Press Refresh to display the settings array for each TinyMCE_Control instance.',
+content_help : 'Press Refresh to display the raw and cleaned HTML content for each TinyMCE_Control instance.',
+command_states_help : 'Press Refresh to display the current command states from inst.queryCommandState. This list will also mark unsupported commands.',
+undo_redo_help : 'Press Refresh to display the global and instance undo/redo levels.',
+misc_help : 'Here are various tools for debugging and development purposes.',
+debug_events : 'Debug events',
+undo_diff : 'Diff undo levels'
+});
diff --git a/tinyMCE/plugins/directionality/editor_plugin.js b/tinyMCE/plugins/directionality/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..d3cc5cd57b9f04e5bffde4223bdfda6cbf93e823
--- /dev/null
+++ b/tinyMCE/plugins/directionality/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('directionality');var TinyMCE_DirectionalityPlugin={getInfo:function(){return{longname:'Directionality',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"ltr":return tinyMCE.getButtonHTML(cn,'lang_directionality_ltr_desc','{$pluginurl}/images/ltr.gif','mceDirectionLTR');case"rtl":return tinyMCE.getButtonHTML(cn,'lang_directionality_rtl_desc','{$pluginurl}/images/rtl.gif','mceDirectionRTL')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceDirectionLTR":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","ltr");tinyMCE.triggerNodeChange(false);return true;case"mceDirectionRTL":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","rtl");tinyMCE.triggerNodeChange(false);return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):""}if(node==null)return;var elm=tinyMCE.getParentElement(node,"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(!elm){tinyMCE.switchClass(editor_id+'_ltr','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_rtl','mceButtonDisabled');return true}tinyMCE.switchClass(editor_id+'_ltr','mceButtonNormal');tinyMCE.switchClass(editor_id+'_rtl','mceButtonNormal');var dir=getAttrib(elm,"dir");if(dir=="ltr"||dir=="")tinyMCE.switchClass(editor_id+'_ltr','mceButtonSelected');else tinyMCE.switchClass(editor_id+'_rtl','mceButtonSelected');return true}};tinyMCE.addPlugin("directionality",TinyMCE_DirectionalityPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/directionality/editor_plugin_src.js b/tinyMCE/plugins/directionality/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..eb106f189c7cadb5fed69b280926ef076def06c6
--- /dev/null
+++ b/tinyMCE/plugins/directionality/editor_plugin_src.js
@@ -0,0 +1,90 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('directionality');
+
+var TinyMCE_DirectionalityPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Directionality',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "ltr":
+				return tinyMCE.getButtonHTML(cn, 'lang_directionality_ltr_desc', '{$pluginurl}/images/ltr.gif', 'mceDirectionLTR');
+
+			case "rtl":
+				return tinyMCE.getButtonHTML(cn, 'lang_directionality_rtl_desc', '{$pluginurl}/images/rtl.gif', 'mceDirectionRTL');
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mceDirectionLTR":
+				var inst = tinyMCE.getInstanceById(editor_id);
+				var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
+
+				if (elm)
+					elm.setAttribute("dir", "ltr");
+
+				tinyMCE.triggerNodeChange(false);
+				return true;
+
+			case "mceDirectionRTL":
+				var inst = tinyMCE.getInstanceById(editor_id);
+				var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
+
+				if (elm)
+					elm.setAttribute("dir", "rtl");
+
+				tinyMCE.triggerNodeChange(false);
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		function getAttrib(elm, name) {
+			return elm.getAttribute(name) ? elm.getAttribute(name) : "";
+		}
+
+		if (node == null)
+			return;
+
+		var elm = tinyMCE.getParentElement(node, "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
+		if (!elm) {
+			tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonDisabled');
+			tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonDisabled');
+			return true;
+		}
+
+		tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonNormal');
+
+		var dir = getAttrib(elm, "dir");
+		if (dir == "ltr" || dir == "")
+			tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonSelected');
+		else
+			tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonSelected');
+
+		return true;
+	}
+};
+
+tinyMCE.addPlugin("directionality", TinyMCE_DirectionalityPlugin);
diff --git a/tinyMCE/plugins/directionality/images/ltr.gif b/tinyMCE/plugins/directionality/images/ltr.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ac8f30c1208e044ac5ed8f4f82c2e513c56c9f4b
Binary files /dev/null and b/tinyMCE/plugins/directionality/images/ltr.gif differ
diff --git a/tinyMCE/plugins/directionality/images/rtl.gif b/tinyMCE/plugins/directionality/images/rtl.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0348f9965669dd9cfba3c69d71d20ea3928e46fe
Binary files /dev/null and b/tinyMCE/plugins/directionality/images/rtl.gif differ
diff --git a/tinyMCE/plugins/directionality/langs/ca.js b/tinyMCE/plugins/directionality/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1db2978561ce288b3c2b600823717092096e244
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ca.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direction left to right',
+directionality_rtl_desc : 'Direction right to left'
+});
diff --git a/tinyMCE/plugins/directionality/langs/cs.js b/tinyMCE/plugins/directionality/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..d16b4958b78daf8164c0e623c943e80b07515210
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/cs.js
@@ -0,0 +1,12 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.2 2006/01/11 14:25:48 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Směr z leva doprava',
+directionality_rtl_desc : 'Směr z prava doleva'
+});
+
diff --git a/tinyMCE/plugins/directionality/langs/cy.js b/tinyMCE/plugins/directionality/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..0f593a6e5c3abb105a44654126d16ec7292ab4ee
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/cy.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Cyfeiriad chwith i\'r dde',
+directionality_rtl_desc : 'Cyfeiriad dde i\'r chwith'
+});
diff --git a/tinyMCE/plugins/directionality/langs/da.js b/tinyMCE/plugins/directionality/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..c495f1da4df63c0fd2b5e0358b27556363d04abe
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/da.js
@@ -0,0 +1,6 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.:
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Retning - venstre mod h&oslash;jre',
+directionality_rtl_desc : 'Retning - h&oslash;jre mod venstre'
+});
diff --git a/tinyMCE/plugins/directionality/langs/de.js b/tinyMCE/plugins/directionality/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..5551a486acf604b53020ef87324b1f34306f6273
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/de.js
@@ -0,0 +1,6 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Von links nach rechts',
+directionality_rtl_desc : 'Von rechts nach links'
+});
diff --git a/tinyMCE/plugins/directionality/langs/el.js b/tinyMCE/plugins/directionality/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..06ef764f88ae5b03ae8378f2d1edb9b974974715
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/el.js
@@ -0,0 +1,6 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'ÁñéóôåñÜ ðñïò äåîéÜ',
+directionality_rtl_desc : 'ÄåîéÜ ðñïò áñéóôåñÜ'
+});
diff --git a/tinyMCE/plugins/directionality/langs/en.js b/tinyMCE/plugins/directionality/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1db2978561ce288b3c2b600823717092096e244
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/en.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direction left to right',
+directionality_rtl_desc : 'Direction right to left'
+});
diff --git a/tinyMCE/plugins/directionality/langs/es.js b/tinyMCE/plugins/directionality/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..a8998da64e67bf445d665572feebec5931bb8619
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/es.js
@@ -0,0 +1,15 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direcci&oacute;n de izquierda a derecha',
+directionality_rtl_desc : 'Direcci&oacute;n de derecha a izquierda'
+});
diff --git a/tinyMCE/plugins/directionality/langs/fa.js b/tinyMCE/plugins/directionality/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1db2978561ce288b3c2b600823717092096e244
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/fa.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direction left to right',
+directionality_rtl_desc : 'Direction right to left'
+});
diff --git a/tinyMCE/plugins/directionality/langs/fi.js b/tinyMCE/plugins/directionality/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e017e473b6c51daab76898b499b673acb04f213
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/fi.js
@@ -0,0 +1,6 @@
+// FI lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Suunta vasemmalta oikealle',
+directionality_rtl_desc : 'Suunta oikealta vasemmalle'
+});
diff --git a/tinyMCE/plugins/directionality/langs/fr.js b/tinyMCE/plugins/directionality/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b434c65a84955e1fe963beab587ab063b04196d
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/fr.js
@@ -0,0 +1,7 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Vers la droite',
+directionality_rtl_desc : 'Vers la gauche'
+});
diff --git a/tinyMCE/plugins/directionality/langs/fr_ca.js b/tinyMCE/plugins/directionality/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..1ed3b89ea5ea0ff56acfa7e20b05680ff3bce7e8
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/fr_ca.js
@@ -0,0 +1,6 @@
+// fr_ca lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direction de la gauche vers la droite',
+directionality_rtl_desc : 'Direction de la droite vers la gauche'
+});
diff --git a/tinyMCE/plugins/directionality/langs/he.js b/tinyMCE/plugins/directionality/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..063b943134f8b9bb70e4eeaead0604e2904da938
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/he.js
@@ -0,0 +1,6 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'ëéååï ùîàì ìéîéï',
+directionality_rtl_desc : 'ëéååï éîéï ìùîàì'
+});
diff --git a/tinyMCE/plugins/directionality/langs/hu.js b/tinyMCE/plugins/directionality/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..d61608a9badc54bad34474733d348d61dfc9445f
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/hu.js
@@ -0,0 +1,6 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Elhelyezkedés balról jobbra',
+directionality_rtl_desc : 'Elhelyezkedés jobbról balra'
+});
diff --git a/tinyMCE/plugins/directionality/langs/is.js b/tinyMCE/plugins/directionality/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..19b66a903ed3811cd9c475dee4135e210b82c8c1
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/is.js
@@ -0,0 +1,6 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Fr&aacute; vinstri til h&aelig;gri',
+directionality_rtl_desc : 'Fr&aacute; h&aelig;gri til vinstri'
+});
diff --git a/tinyMCE/plugins/directionality/langs/it.js b/tinyMCE/plugins/directionality/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..c1423fb347627531582cad778c3b88a8a71c9994
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/it.js
@@ -0,0 +1,12 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direzione da sinistra a destra',
+directionality_rtl_desc : 'Direzione da destra a sinistra'
+});
diff --git a/tinyMCE/plugins/directionality/langs/ja.js b/tinyMCE/plugins/directionality/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..726f4fe25d0363e8995e45820a175418906f4319
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ja.js
@@ -0,0 +1,6 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : '表示方向:左から右へ',
+directionality_rtl_desc : '表示方向:右から左へ'
+});
diff --git a/tinyMCE/plugins/directionality/langs/ja_euc-jp.js b/tinyMCE/plugins/directionality/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..110b4219eff61928f65e13cc9dc9e22d6fb95e8b
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ja_euc-jp.js
@@ -0,0 +1,6 @@
+// Japanese unicode (euc)
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'º¸¤«¤é±¦¤Ø',
+directionality_rtl_desc : '±¦¤«¤éº¸¤Ø'
+});
diff --git a/tinyMCE/plugins/directionality/langs/ja_shift_jis.js b/tinyMCE/plugins/directionality/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..48de123533d17fd62606b40ce3c548394d51eaed
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ja_shift_jis.js
@@ -0,0 +1,6 @@
+// Japanese unicode (shift_jis)
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : '¶‚©‚ç‰E‚Ö',
+directionality_rtl_desc : '‰E‚©‚獶‚Ö'
+});
diff --git a/tinyMCE/plugins/directionality/langs/ja_utf-8.js b/tinyMCE/plugins/directionality/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..eed5c4851d640133f331ff432944b6fa868019ee
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ja_utf-8.js
@@ -0,0 +1,6 @@
+// Japanese unicode (utf-8)
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : '左から右へ',
+directionality_rtl_desc : '右から左へ'
+});
diff --git a/tinyMCE/plugins/directionality/langs/ko.js b/tinyMCE/plugins/directionality/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1db2978561ce288b3c2b600823717092096e244
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ko.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direction left to right',
+directionality_rtl_desc : 'Direction right to left'
+});
diff --git a/tinyMCE/plugins/directionality/langs/nb.js b/tinyMCE/plugins/directionality/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..bec3514b897b1a875398bc184fbe736cc1b21ec1
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/nb.js
@@ -0,0 +1,6 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Retning fra venstre mot h&oslash;yre',
+directionality_rtl_desc : 'Retning fra h&oslash;yre mot venstre'
+});
diff --git a/tinyMCE/plugins/directionality/langs/nl.js b/tinyMCE/plugins/directionality/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..409d6df203324adfd8c5e05ec3c35ab98e6bd2c6
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/nl.js
@@ -0,0 +1,6 @@
+// NL lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Richting links naar rechts',
+directionality_rtl_desc : 'Richting rechts naar links'
+});
diff --git a/tinyMCE/plugins/directionality/langs/nn.js b/tinyMCE/plugins/directionality/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..3186896ecc34fb6ea29b8ccc8b427c4c45c632f0
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/nn.js
@@ -0,0 +1,6 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Venstre mot h&oslash;gre',
+directionality_rtl_desc : 'H&oslash;gre mot venstre'
+});
diff --git a/tinyMCE/plugins/directionality/langs/pl.js b/tinyMCE/plugins/directionality/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..90d400d566d07a2fb75e3f7966df7a5591463868
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/pl.js
@@ -0,0 +1,8 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Kierunek od lewej do prawej',
+directionality_rtl_desc : 'Kierunek od prawej do lewej'
+});
diff --git a/tinyMCE/plugins/directionality/langs/pt_br.js b/tinyMCE/plugins/directionality/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..f0f04f2f6b29c208c875bb66aea07aab6c4b3717
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/pt_br.js
@@ -0,0 +1,14 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */ 
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direcionamento da esquerda para direita',
+directionality_rtl_desc : 'Direcionamento da direita para esquerda'
+});
diff --git a/tinyMCE/plugins/directionality/langs/ro.js b/tinyMCE/plugins/directionality/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..aa1a757b9321c272b4706386a8848e18ea6023a6
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ro.js
@@ -0,0 +1,6 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direc&#355;ia st&#226;nga la dreapta',
+directionality_rtl_desc : 'Direc&#355;ia dreapta la st&#226;nga'
+});
diff --git a/tinyMCE/plugins/directionality/langs/ru.js b/tinyMCE/plugins/directionality/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..73364e71fa15325af82493ea5a8e322deaef3723
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ru.js
@@ -0,0 +1,6 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Направление слева направо',
+directionality_rtl_desc : 'Направление справа налево'
+});
diff --git a/tinyMCE/plugins/directionality/langs/ru_CP1251.js b/tinyMCE/plugins/directionality/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..8773d2c9d75b8c3b887137ea6925c1ffe9ff21b3
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ru_CP1251.js
@@ -0,0 +1,6 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Íàïðàâëåíèå ñëåâà íàïðàâî',
+directionality_rtl_desc : 'Íàïðàâëåíèå ñïðàâà íàëåâî'
+});
diff --git a/tinyMCE/plugins/directionality/langs/ru_KOI8-R.js b/tinyMCE/plugins/directionality/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..41c57421727a0aaebe05fb8ab0d33bfe90d82609
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/ru_KOI8-R.js
@@ -0,0 +1,6 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'îÁÐÒÁ×ÌÅÎÉÅ ÓÌÅ×Á ÎÁÐÒÁ×Ï',
+directionality_rtl_desc : 'îÁÐÒÁ×ÌÅÎÉÅ ÓÐÒÁ×Á ÎÁÌÅ×Ï'
+});
diff --git a/tinyMCE/plugins/directionality/langs/si.js b/tinyMCE/plugins/directionality/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..028eb68014b5965c14817dab373af67b62e01e5b
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/si.js
@@ -0,0 +1,6 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Smer od leve proti desni',
+directionality_rtl_desc : 'Smer od desne proti levi'
+});
diff --git a/tinyMCE/plugins/directionality/langs/sk.js b/tinyMCE/plugins/directionality/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..0754b557edba6b9be57fdba96cafe9eeba29fcf0
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/sk.js
@@ -0,0 +1,14 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Smer z ľava doprava',
+directionality_rtl_desc : 'Smer z prava doľava'
+});
+
diff --git a/tinyMCE/plugins/directionality/langs/sq.js b/tinyMCE/plugins/directionality/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0f77628d90378fa4c5e499475c273f0bd6de346
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/sq.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Drejtimi e majta ne te djathte',
+directionality_rtl_desc : 'Drejtimi e djathta ne te majte'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/directionality/langs/sr.js b/tinyMCE/plugins/directionality/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce053e30ab821781257a074dd73e4c7a8f3775fd
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/sr.js
@@ -0,0 +1,6 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Pravac levo ka desno',
+directionality_rtl_desc : 'Pravac desno ka levo'
+});
diff --git a/tinyMCE/plugins/directionality/langs/sv.js b/tinyMCE/plugins/directionality/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1d02bf5ca76124b74ecb35704c1c38a01fa7428
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/sv.js
@@ -0,0 +1,6 @@
+// SV lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Riktning från vänster till höger',
+directionality_rtl_desc : 'Riktning från höger till vänster'
+});
diff --git a/tinyMCE/plugins/directionality/langs/sv_utf8.js b/tinyMCE/plugins/directionality/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..8bf91cd02da0d6aa063b73e40e3cf147eaa9b1bb
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/sv_utf8.js
@@ -0,0 +1,6 @@
+// SV lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Riktning från vänster till höger',
+directionality_rtl_desc : 'Riktning från höger till vänster'
+});
diff --git a/tinyMCE/plugins/directionality/langs/tr.js b/tinyMCE/plugins/directionality/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..7886f966146d00003fa1726aa5b0b6c09c3634b0
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/tr.js
@@ -0,0 +1,6 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Yön soldan saða',
+directionality_rtl_desc : 'Yön saðdan sola'
+});
diff --git a/tinyMCE/plugins/directionality/langs/uk.js b/tinyMCE/plugins/directionality/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b4f26dd6434d2ed5a74b8e87c46d640b8c0be53
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/uk.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Напрямок зліва-направо',
+directionality_rtl_desc : 'Напрямок справа-наліво'
+});
diff --git a/tinyMCE/plugins/directionality/langs/uk_CP1251.js b/tinyMCE/plugins/directionality/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..3790c97fd75887d3d1e6ae07e1ba81bc8dec2e26
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/uk_CP1251.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Íàïðÿìîê çë³âà-íàïðàâî',
+directionality_rtl_desc : 'Íàïðÿìîê ñïðàâà-íàë³âî'
+});
diff --git a/tinyMCE/plugins/directionality/langs/uk_KOI8-U.js b/tinyMCE/plugins/directionality/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..91b85a07c13558bbb900925e3223887f0d091ec2
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/uk_KOI8-U.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'îÁÐÒÑÍÏË Ú̦×Á-ÎÁÐÒÁ×Ï',
+directionality_rtl_desc : 'îÁÐÒÑÍÏË ÓÐÒÁ×Á-ÎÁ̦×Ï'
+});
diff --git a/tinyMCE/plugins/directionality/langs/vi.js b/tinyMCE/plugins/directionality/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..38a1588bed57d7f2974d4b8aff7787217866cf82
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/vi.js
@@ -0,0 +1,6 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Hướng trái sang phải',
+directionality_rtl_desc : 'Hướng phải sang trái'
+});
diff --git a/tinyMCE/plugins/directionality/langs/zh_cn.js b/tinyMCE/plugins/directionality/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..ea0a036573362ae0c4e3fcba0cbc5935d14849bc
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/zh_cn.js
@@ -0,0 +1,7 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : '·½Ïò´Ó×óÍùÓÒ',
+directionality_rtl_desc : '·½Ïò´ÓÓÒÍù×ó'
+});
diff --git a/tinyMCE/plugins/directionality/langs/zh_cn_utf8.js b/tinyMCE/plugins/directionality/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..8922cf22e9da8994b27b7ae97320c8ea9185f3cc
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/zh_cn_utf8.js
@@ -0,0 +1,7 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : '方向从左往右',
+directionality_rtl_desc : '方向从右往左'
+});
diff --git a/tinyMCE/plugins/directionality/langs/zh_tw.js b/tinyMCE/plugins/directionality/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..db59c8670d63977e732b8ae6070f587e1adf1acc
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/zh_tw.js
@@ -0,0 +1,7 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : '¥Ñ¥ª©¹¥k¤è¦V',
+directionality_rtl_desc : '¥Ñ¥k©¹¥ª¤è¦V'
+});
diff --git a/tinyMCE/plugins/directionality/langs/zh_tw_utf8.js b/tinyMCE/plugins/directionality/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..54e320170a4e538b8c4699a9b90fde08d3477801
--- /dev/null
+++ b/tinyMCE/plugins/directionality/langs/zh_tw_utf8.js
@@ -0,0 +1,7 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : '由左往右方向',
+directionality_rtl_desc : '由右往左方向'
+});
diff --git a/tinyMCE/plugins/directionality/readme.txt b/tinyMCE/plugins/directionality/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/directionality/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/emotions/editor_plugin.js b/tinyMCE/plugins/emotions/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d81e5a86bf80750317bc26a1b8f676cdc1aa840
--- /dev/null
+++ b/tinyMCE/plugins/emotions/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('emotions');var TinyMCE_EmotionsPlugin={getInfo:function(){return{longname:'Emotions',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"emotions":return tinyMCE.getButtonHTML(cn,'lang_emotions_desc','{$pluginurl}/images/emotions.gif','mceEmotion')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceEmotion":var template=new Array();template['file']='../../plugins/emotions/emotions.htm';template['width']=250;template['height']=160;template['width']+=tinyMCE.getLang('lang_emotions_delta_width',0);template['height']+=tinyMCE.getLang('lang_emotions_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true}return false}};tinyMCE.addPlugin('emotions',TinyMCE_EmotionsPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/emotions/editor_plugin_src.js b/tinyMCE/plugins/emotions/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..c7d60cf3f5c03b6c94af352d3004fb7bcf8c0a24
--- /dev/null
+++ b/tinyMCE/plugins/emotions/editor_plugin_src.js
@@ -0,0 +1,63 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('emotions');
+
+// Plucin static class
+var TinyMCE_EmotionsPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Emotions',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	/**
+	 * Returns the HTML contents of the emotions control.
+	 */
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "emotions":
+				return tinyMCE.getButtonHTML(cn, 'lang_emotions_desc', '{$pluginurl}/images/emotions.gif', 'mceEmotion');
+		}
+
+		return "";
+	},
+
+	/**
+	 * Executes the mceEmotion command.
+	 */
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mceEmotion":
+				var template = new Array();
+
+				template['file'] = '../../plugins/emotions/emotions.htm'; // Relative to theme
+				template['width'] = 250;
+				template['height'] = 160;
+
+				// Language specific width and height addons
+				template['width'] += tinyMCE.getLang('lang_emotions_delta_width', 0);
+				template['height'] += tinyMCE.getLang('lang_emotions_delta_height', 0);
+
+				tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	}
+};
+
+// Register plugin
+tinyMCE.addPlugin('emotions', TinyMCE_EmotionsPlugin);
diff --git a/tinyMCE/plugins/emotions/emotions.htm b/tinyMCE/plugins/emotions/emotions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..fca8ffa08103d4e99ca5e7fe286098797ac35dd4
--- /dev/null
+++ b/tinyMCE/plugins/emotions/emotions.htm
@@ -0,0 +1,40 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_emotions_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/functions.js"></script>
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+	<div align="center">
+		<div class="title">{$lang_emotions_title}:<br /><br /></div>
+
+		<table border="0" cellspacing="0" cellpadding="4">
+		  <tr>
+			<td><a href="javascript:insertEmotion('smiley-cool.gif','lang_emotions_cool');"><img src="images/smiley-cool.gif" width="18" height="18" border="0" alt="{$lang_emotions_cool}" title="{$lang_emotions_cool}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-cry.gif','lang_emotions_cry');"><img src="images/smiley-cry.gif" width="18" height="18" border="0" alt="{$lang_emotions_cry}" title="{$lang_emotions_cry}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-embarassed.gif','lang_emotions_embarassed');"><img src="images/smiley-embarassed.gif" width="18" height="18" border="0" alt="{$lang_emotions_embarassed}" title="{$lang_emotions_embarassed}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-foot-in-mouth.gif','lang_emotions_foot_in_mouth');"><img src="images/smiley-foot-in-mouth.gif" width="18" height="18" border="0" alt="{$lang_emotions_foot_in_mouth}" title="{$lang_emotions_foot_in_mouth}" /></a></td>
+		  </tr>
+		  <tr>
+			<td><a href="javascript:insertEmotion('smiley-frown.gif','lang_emotions_frown');"><img src="images/smiley-frown.gif" width="18" height="18" border="0" alt="{$lang_emotions_frown}" title="{$lang_emotions_frown}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-innocent.gif','lang_emotions_innocent');"><img src="images/smiley-innocent.gif" width="18" height="18" border="0" alt="{$lang_emotions_innocent}" title="{$lang_emotions_innocent}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-kiss.gif','lang_emotions_kiss');"><img src="images/smiley-kiss.gif" width="18" height="18" border="0" alt="{$lang_emotions_kiss}" title="{$lang_emotions_kiss}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-laughing.gif','lang_emotions_laughing');"><img src="images/smiley-laughing.gif" width="18" height="18" border="0" alt="{$lang_emotions_laughing}" title="{$lang_emotions_laughing}" /></a></td>
+		  </tr>
+		  <tr>
+			<td><a href="javascript:insertEmotion('smiley-money-mouth.gif','lang_emotions_money_mouth');"><img src="images/smiley-money-mouth.gif" width="18" height="18" border="0" alt="{$lang_emotions_money_mouth}" title="{$lang_emotions_money_mouth}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-sealed.gif','lang_emotions_sealed');"><img src="images/smiley-sealed.gif" width="18" height="18" border="0" alt="{$lang_emotions_sealed}" title="{$lang_emotions_sealed}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-smile.gif','lang_emotions_smile');"><img src="images/smiley-smile.gif" width="18" height="18" border="0" alt="{$lang_emotions_smile}" title="{$lang_emotions_smile}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-surprised.gif','lang_emotions_surprised');"><img src="images/smiley-surprised.gif" width="18" height="18" border="0" alt="{$lang_emotions_surprised}" title="{$lang_emotions_surprised}" /></a></td>
+		  </tr>
+		  <tr>
+			<td><a href="javascript:insertEmotion('smiley-tongue-out.gif','lang_emotions_tongue_out');"><img src="images/smiley-tongue-out.gif" width="18" height="18" border="0" alt="{$lang_emotions_tongue-out}" title="{$lang_emotions_tongue_out}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-undecided.gif','lang_emotions_undecided');"><img src="images/smiley-undecided.gif" width="18" height="18" border="0" alt="{$lang_emotions_undecided}" title="{$lang_emotions_undecided}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-wink.gif','lang_emotions_wink');"><img src="images/smiley-wink.gif" width="18" height="18" border="0" alt="{$lang_emotions_wink}" title="{$lang_emotions_wink}" /></a></td>
+			<td><a href="javascript:insertEmotion('smiley-yell.gif','lang_emotions_yell');"><img src="images/smiley-yell.gif" width="18" height="18" border="0" alt="{$lang_emotions_yell}" title="{$lang_emotions_yell}" /></a></td>
+		  </tr>
+		</table>
+	</div>
+</body>
+</html>
diff --git a/tinyMCE/plugins/emotions/images/emotions.gif b/tinyMCE/plugins/emotions/images/emotions.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a39ed8ec3807e9da5725bfffc1a9e64694156d7a
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/emotions.gif differ
diff --git a/tinyMCE/plugins/emotions/images/readme.txt b/tinyMCE/plugins/emotions/images/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cc2cf3feaa510e7ad126de6d05e6d54e0ae8d495
--- /dev/null
+++ b/tinyMCE/plugins/emotions/images/readme.txt
@@ -0,0 +1,2 @@
+These emotions where taken from Mozilla Thunderbird.
+I hope they don't get angry if I use them here after all this is a open source project aswell.
diff --git a/tinyMCE/plugins/emotions/images/smiley-cool.gif b/tinyMCE/plugins/emotions/images/smiley-cool.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ba90cc36fb0415d0273d1cd206bff63fd9c91fde
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-cool.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-cry.gif b/tinyMCE/plugins/emotions/images/smiley-cry.gif
new file mode 100644
index 0000000000000000000000000000000000000000..74d897a4f6d22e814e2b054e98b8a75fb464b4be
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-cry.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-embarassed.gif b/tinyMCE/plugins/emotions/images/smiley-embarassed.gif
new file mode 100644
index 0000000000000000000000000000000000000000..963a96b8a7593b1d8bcbab073abe5ee4e539dbf6
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-embarassed.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-foot-in-mouth.gif b/tinyMCE/plugins/emotions/images/smiley-foot-in-mouth.gif
new file mode 100644
index 0000000000000000000000000000000000000000..16f68cc1e91a9b8ec6cfa0ba4e0c86f94b177f1a
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-foot-in-mouth.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-frown.gif b/tinyMCE/plugins/emotions/images/smiley-frown.gif
new file mode 100644
index 0000000000000000000000000000000000000000..716f55e161bfebb1c3d34f0b0f40c177fc82c30b
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-frown.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-innocent.gif b/tinyMCE/plugins/emotions/images/smiley-innocent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..334d49e0e60f2997c9ba24071764f95d9e08a5cc
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-innocent.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-kiss.gif b/tinyMCE/plugins/emotions/images/smiley-kiss.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4efd549ed31c44b1faac17ed34bb67abeb42baf8
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-kiss.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-laughing.gif b/tinyMCE/plugins/emotions/images/smiley-laughing.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1606c119e75678c4031f384e0d50849906e8f533
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-laughing.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-money-mouth.gif b/tinyMCE/plugins/emotions/images/smiley-money-mouth.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ca2451e102722e12e131ae53ea76989acbf191e2
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-money-mouth.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-sealed.gif b/tinyMCE/plugins/emotions/images/smiley-sealed.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b33d3cca1e7b8e62dc689880074d5c61f619520d
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-sealed.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-smile.gif b/tinyMCE/plugins/emotions/images/smiley-smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e6a9e60d5ddd1243fbbf2197b4dc6cd9c1b58b93
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-smile.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-surprised.gif b/tinyMCE/plugins/emotions/images/smiley-surprised.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cb99cdd9136fa30462a9f57aa6a0adeb7e4124e7
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-surprised.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-tongue-out.gif b/tinyMCE/plugins/emotions/images/smiley-tongue-out.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2075dc16058f1f17912167675ce5cfb9986fc71d
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-tongue-out.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-undecided.gif b/tinyMCE/plugins/emotions/images/smiley-undecided.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bef7e257303f8243c89787e7a7f9955dd1f112e2
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-undecided.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-wink.gif b/tinyMCE/plugins/emotions/images/smiley-wink.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9faf1aff8f4b28e02f4f414975fe1859c43b6b54
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-wink.gif differ
diff --git a/tinyMCE/plugins/emotions/images/smiley-yell.gif b/tinyMCE/plugins/emotions/images/smiley-yell.gif
new file mode 100644
index 0000000000000000000000000000000000000000..648e6e879123fe49beebbc1f3635141864a79a9c
Binary files /dev/null and b/tinyMCE/plugins/emotions/images/smiley-yell.gif differ
diff --git a/tinyMCE/plugins/emotions/jscripts/functions.js b/tinyMCE/plugins/emotions/jscripts/functions.js
new file mode 100644
index 0000000000000000000000000000000000000000..95a9eafe8ae5e89124b3ac280eb82b012071f427
--- /dev/null
+++ b/tinyMCE/plugins/emotions/jscripts/functions.js
@@ -0,0 +1,21 @@
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+}
+
+function insertEmotion(file_name, title) {
+	title = tinyMCE.getLang(title);
+
+	if (title == null)
+		title = "";
+
+	// XML encode
+	title = title.replace(/&/g, '&amp;');
+	title = title.replace(/\"/g, '&quot;');
+	title = title.replace(/</g, '&lt;');
+	title = title.replace(/>/g, '&gt;');
+
+	var html = '<img src="' + tinyMCE.baseURL + "/plugins/emotions/images/" + file_name + '" mce_src="' + tinyMCE.baseURL + "/plugins/emotions/images/" + file_name + '" border="0" alt="' + title + '" title="' + title + '" />';
+
+	tinyMCE.execCommand('mceInsertContent', false, html);
+	tinyMCEPopup.close();
+}
diff --git a/tinyMCE/plugins/emotions/langs/ca.js b/tinyMCE/plugins/emotions/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..3cdd675175016337aa77c0f78d94a257bc386434
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ca.js
@@ -0,0 +1,22 @@
+// UK lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Insert emotion',
+desc : 'Emotions',
+cool : 'Cool',
+cry : 'Cry',
+embarassed : 'Embarassed',
+foot_in_mouth : 'Foot in mouth',
+frown : 'Frown',
+innocent : 'Innocent',
+kiss : 'Kiss',
+laughing : 'Laughing',
+money_mouth : 'Money mouth',
+sealed : 'Sealed',
+smile : 'Smile',
+surprised : 'Surprised',
+tongue_out : 'Tongue out',
+undecided : 'Undecided',
+wink : 'Wink',
+yell : 'Yell'
+});
diff --git a/tinyMCE/plugins/emotions/langs/cs.js b/tinyMCE/plugins/emotions/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..b91fd84634b1eab8f557affc6b1de34cdf0f9a3a
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/cs.js
@@ -0,0 +1,12 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.4 2005/10/18 13:59:42 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Vložit emotikonu',
+emotions_desc : 'Emotikony'
+});
+
diff --git a/tinyMCE/plugins/emotions/langs/cy.js b/tinyMCE/plugins/emotions/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..d771cef2b22812db45aa4bade0805c8702896d8c
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/cy.js
@@ -0,0 +1,22 @@
+// UK lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Mewnosod gwenoglun',
+desc : 'Gwenogluniau',
+cool : 'C&#373;l',
+cry : 'Cr&iuml;o',
+embarassed : 'Cywilydd',
+foot_in_mouth : 'Troed yn y ceg',
+frown : 'Gwgu',
+innocent : 'Diniwed',
+kiss : 'Sws',
+laughing : 'Chwerthin',
+money_mouth : 'Ceg arian',
+sealed : 'Seliwyd',
+smile : 'Gw&ecirc;n',
+surprised : 'Synnu',
+tongue_out : 'Tafod allan',
+undecided : 'Penagored',
+wink : 'Winc',
+yell : 'Gwaedd'
+});
diff --git a/tinyMCE/plugins/emotions/langs/da.js b/tinyMCE/plugins/emotions/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..436c0468cd9bea47c92df034033a3320130e51d8
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/da.js
@@ -0,0 +1,22 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard, Ronny Buelund - Corr.:
+
+tinyMCE.addToLang('emotions',{
+title : 'Inds&aelig;t smiley',
+desc : 'Smileys',
+cool : 'Sej',
+cry : 'Gr&aring;der',
+embarassed : 'Forlegen',
+foot_in_mouth : 'Foden i munden',
+frown : 'Rynket pande',
+innocent : 'Uskyldig',
+kiss : 'Kys',
+laughing : 'Latter',
+money_mouth : 'L&aelig;kker mund',
+sealed : 'Lukket',
+smile : 'Smil',
+surprised : 'Overrasket',
+tongue_out : 'R&aelig;kker tunge',
+undecided : 'Usikker',
+wink : 'Blinker',
+yell : 'R&aring;b'
+});
diff --git a/tinyMCE/plugins/emotions/langs/de.js b/tinyMCE/plugins/emotions/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..6790c349f7b2c7f0846ed43c299c963c63c2bfa2
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/de.js
@@ -0,0 +1,22 @@
+// DE lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Emotion einf&uuml;gen',
+desc : 'Emotions',
+cool : 'Cool',
+cry : 'Weinen',
+embarassed : 'Besch&auml;mt',
+foot_in_mouth : 'Fettn&auml;pfchen',
+frown : 'Missbilligen',
+innocent : 'Unschuldig',
+kiss : 'Kuss',
+laughing : 'Lachanfall',
+money_mouth : 'Geld im Kopf',
+sealed : 'Besiegelt',
+smile : 'L&auml;cheln',
+surprised : '&Uuml;berrascht',
+tongue_out : 'Zunge ausstrecken',
+undecided : 'Unentschieden',
+wink : 'Winken',
+yell : 'Schreien'
+});
diff --git a/tinyMCE/plugins/emotions/langs/el.js b/tinyMCE/plugins/emotions/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..20be6d9979f59c0ba3dd10f440eff17b95a0ec4d
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/el.js
@@ -0,0 +1,6 @@
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'ÅéóáãùãÞ åíüò åéêïíéäßïõ emoticon',
+emotions_desc : 'Åéêïíßäéá emoticons'
+});
diff --git a/tinyMCE/plugins/emotions/langs/en.js b/tinyMCE/plugins/emotions/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..3cdd675175016337aa77c0f78d94a257bc386434
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/en.js
@@ -0,0 +1,22 @@
+// UK lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Insert emotion',
+desc : 'Emotions',
+cool : 'Cool',
+cry : 'Cry',
+embarassed : 'Embarassed',
+foot_in_mouth : 'Foot in mouth',
+frown : 'Frown',
+innocent : 'Innocent',
+kiss : 'Kiss',
+laughing : 'Laughing',
+money_mouth : 'Money mouth',
+sealed : 'Sealed',
+smile : 'Smile',
+surprised : 'Surprised',
+tongue_out : 'Tongue out',
+undecided : 'Undecided',
+wink : 'Wink',
+yell : 'Yell'
+});
diff --git a/tinyMCE/plugins/emotions/langs/es.js b/tinyMCE/plugins/emotions/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..33facc5d64258e27508524409d98a4c8a912ba62
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/es.js
@@ -0,0 +1,31 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('emotions',{
+title : 'Intertar emoticono',
+desc : 'Emoticonos',
+cool : 'Chulo',
+cry : 'Llorando',
+embarassed : 'Avergonzado',
+foot_in_mouth : 'Sin palabras',
+frown : 'Triste',
+innocent : 'Inocente',
+kiss : 'Beso',
+laughing : 'Riendo',
+money_mouth : 'Forrado',
+sealed : 'Boca sellada',
+smile : 'Sonriente',
+surprised : 'Sorprendido',
+tongue_out : 'Burla',
+undecided : 'Indeciso',
+wink : 'Gui&ntilde;o',
+yell : 'Enfadado'
+});
diff --git a/tinyMCE/plugins/emotions/langs/fa.js b/tinyMCE/plugins/emotions/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..f357f1ab21bf64f282aa4332abba64bf08ebe950
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/fa.js
@@ -0,0 +1,11 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_emotions_title : '?????? ????',
+emotions_desc : '??????'
+});
diff --git a/tinyMCE/plugins/emotions/langs/fi.js b/tinyMCE/plugins/emotions/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..5f44fad83f984aa83f31d95098c526c5e51ea995
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/fi.js
@@ -0,0 +1,22 @@
+// FI lang variables
+
+tinyMCE.addToLang('Hymi&ouml;t',{
+title : 'Lis&auml;&auml; hymi&ouml;',
+desc : 'Hymi&ouml;',
+cool : 'Cooli',
+cry : 'Surullinen',
+embarassed : 'Nolostunut',
+foot_in_mouth : 'Jalka suussa',
+frown : 'Otsa rypyss&auml;',
+innocent : 'Viaton',
+kiss : 'Suudelma',
+laughing : 'Naurava',
+money_mouth : 'Rahasuu',
+sealed : 'Sinet&ouml;ity',
+smile : 'Hymyilev&auml;',
+surprised : 'Yll&auml;ttynyt',
+tongue_out : 'Kieli ulkona',
+undecided : 'P&auml;&auml;tt&auml;m&auml;t&ouml;n',
+wink : 'Silm&auml;&auml; iskev&auml;',
+yell : 'Huutaa'
+});
diff --git a/tinyMCE/plugins/emotions/langs/fr.js b/tinyMCE/plugins/emotions/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..62e7ec965bb1c974395b860717b2bc3a7b61a9a2
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/fr.js
@@ -0,0 +1,23 @@
+// FR lang variables
+// Modified by keyko-web.net, last updated 2007-03-08, based on the work of Motte
+
+tinyMCE.addToLang('emotions',{
+title : 'Choisir une &eacute;motic&ocirc;ne',
+desc : 'Ins&eacute;rer une &eacute;motic&ocirc;ne',
+cool : 'Cool',
+cry : 'Triste',
+embarassed : 'Embarrass&eacute;',
+foot_in_mouth : 'Oups !',
+frown : 'M&eacute;content',
+innocent : 'Innocent',
+kiss : 'Bisou',
+laughing : 'Mort de rire',
+money_mouth : 'Sensur&eacute;',
+sealed : 'Motus',
+smile : 'Sourire',
+surprised : 'Surprise',
+tongue_out : 'Moqueur',
+undecided : 'Perplexe',
+wink : 'Clin d\'oeil',
+yell : 'Horreur !'
+});
diff --git a/tinyMCE/plugins/emotions/langs/fr_ca.js b/tinyMCE/plugins/emotions/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..41b771a1d5b3332d0d5ae70a192aa6ae636cf094
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/fr_ca.js
@@ -0,0 +1,6 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Insérer un émoticon',
+emotions_desc : 'Émoticons'
+});
diff --git a/tinyMCE/plugins/emotions/langs/he.js b/tinyMCE/plugins/emotions/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..47d983a547a66daf5bd59778733beea07a2e3b0e
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/he.js
@@ -0,0 +1,22 @@
+// HE lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'äëðñ øâùåï',
+desc : 'øâùåðéí',
+cool : 'øâåò',
+cry : 'áåëä',
+embarassed : 'ðáåê',
+foot_in_mouth : 'òí äøâì áôä',
+frown : 'æåòó',
+innocent : 'úîéí',
+kiss : 'ðùé÷ä',
+laughing : 'öåç÷',
+money_mouth : 'ôä ùì ëñó',
+sealed : 'àèåí',
+smile : 'çéåê',
+surprised : 'îåôúò',
+tongue_out : 'ìùåï áçåõ',
+undecided : 'áìúé äçìèé',
+wink : '÷øéöä',
+yell : 'öò÷ä'
+});
diff --git a/tinyMCE/plugins/emotions/langs/hu.js b/tinyMCE/plugins/emotions/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..35c4c9574604de6f263e51ce1bd4e8ac3a221dad
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/hu.js
@@ -0,0 +1,22 @@
+// HU lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Hangulatjel beszúrása',
+desc : 'Hangulatjelek',
+cool : 'Király',
+cry : 'Sírás',
+embarassed : 'Zavart',
+foot_in_mouth : 'Foot in mouth',
+frown : 'Homlokráncolás',
+innocent : 'Ártatlan',
+kiss : 'Csók',
+laughing : 'Nevetés',
+money_mouth : 'Pénzéhes',
+sealed : 'Elnémult',
+smile : 'Mosolygás',
+surprised : 'Meglepett',
+tongue_out : 'Tongue out',
+undecided : 'Határozatlan',
+wink : 'Kacsintás',
+yell : 'Sikoltás'
+});
diff --git a/tinyMCE/plugins/emotions/langs/is.js b/tinyMCE/plugins/emotions/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..583e8b8d7181f484bdaaa7d22db91128b7cc15b2
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/is.js
@@ -0,0 +1,22 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('emotions',{
+title : 'Tilfinningat&aacute;kn',
+desc : 'Tilfinningat&aacute;kn',
+cool : 'Svalur',
+cry : 'Gr&aacute;ta',
+embarassed : 'Sk&ouml;mmustulegur',
+foot_in_mouth : 'Tala af s&eacute;r',
+frown : 'F&yacute;ldur',
+innocent : 'Saklaus',
+kiss : 'Koss',
+laughing : 'Hl&aelig;jandi',
+money_mouth : 'Gr&aacute;&eth;ugur',
+sealed : '&THORN;&ouml;gull sem gr&ouml;fin',
+smile : 'Brosandi',
+surprised : 'Hissa',
+tongue_out : 'Ullandi',
+undecided : '&Oacute;&aacute;kve&eth;inn',
+wink : 'Glottandi',
+yell : '&Ouml;skrandi'
+});
diff --git a/tinyMCE/plugins/emotions/langs/it.js b/tinyMCE/plugins/emotions/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..57ee9891dfb1b3edf3d6799db55f01bbf38fde3a
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/it.js
@@ -0,0 +1,28 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('emotions',{
+title : 'Inserisci emoticon',
+desc : 'Emoticons',
+cool : 'Fico',
+cry : 'Pianto',
+embarassed : 'Imbarazzo',
+foot_in_mouth : 'Calcio in faccia',
+frown : 'Tristezza',
+innocent : 'Innocenza',
+kiss : 'Bacio',
+laughing : 'Risata',
+money_mouth : 'Soldi',
+sealed : 'Bocca chiusa',
+smile : 'Sorriso',
+surprised : 'Sorpresa',
+tongue_out : 'Linguaccia',
+undecided : 'Indecisione',
+wink : 'Occhiolino',
+yell : 'Urlo'
+});
diff --git a/tinyMCE/plugins/emotions/langs/ja.js b/tinyMCE/plugins/emotions/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..af46e470c8abc7519a77dcd5f9fdd25e5060dc1a
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ja.js
@@ -0,0 +1,22 @@
+// JA lang variables
+
+tinyMCE.addToLang('emotions',{
+title : '絵文字の挿入',
+desc : '絵文字',
+cool : 'クール',
+cry : '悲しい',
+embarassed : '照れる',
+foot_in_mouth : '失言',
+frown : '眉をひそめる',
+innocent : '無邪気',
+kiss : 'キス',
+laughing : '笑う',
+money_mouth : 'お金!',
+sealed : '内緒',
+smile : '笑顔',
+surprised : '驚く',
+tongue_out : 'あっかんべー',
+undecided : 'æ‚©ã‚€',
+wink : 'ウィンク',
+yell : '叫ぶ'
+});
diff --git a/tinyMCE/plugins/emotions/langs/ja_euc-jp.js b/tinyMCE/plugins/emotions/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e5b7e7086aaa17d20bcbe0597eaedb4d55ced4f
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ja_euc-jp.js
@@ -0,0 +1,22 @@
+// ÆüËܸì EUC lang variables
+
+tinyMCE.addToLang('emotions',{
+title : '´é¥­¥ã¥é¤òÁÞÆþ',
+desc : '´é¥­¥ã¥é',
+cool : '¥«¥Ã¥³¥¤¥¤',
+cry : 'µã¤¯',
+embarassed : '¾È¤ì¤ë',
+foot_in_mouth : '¸ý¤Ë¥Á¥ã¥Ã¥¯',
+frown : '¥Ü¡¼¥Ã',
+innocent : 'Å·»È',
+kiss : '¥­¥¹',
+laughing : '¾Ð¤¦',
+money_mouth : '¤ª¶â',
+sealed : '',
+smile : '¾Ð´é',
+surprised : '¥Ó¥Ã¥¯¥ê',
+tongue_out : '¥Ú¥í¥Ã',
+undecided : '¤Õ¡Á¤ó',
+wink : '¥¦¥£¥ó¥¯',
+yell : '¶«¤Ö'
+});
diff --git a/tinyMCE/plugins/emotions/langs/ja_shift_jis.js b/tinyMCE/plugins/emotions/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..0ecb408acc2a7d16e90e4c625dc208eaa0780d59
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ja_shift_jis.js
@@ -0,0 +1,22 @@
+// “ú–{Œê Shift_JIS lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'ŠçƒLƒƒƒ‰‚ð‘}“ü',
+desc : 'ŠçƒLƒƒƒ‰',
+cool : 'ƒJƒbƒRƒCƒC',
+cry : '‹ƒ‚­',
+embarassed : 'Æ‚ê‚é',
+foot_in_mouth : 'Œû‚Ƀ`ƒƒƒbƒN',
+frown : 'ƒ{[ƒb',
+innocent : '“VŽg',
+kiss : 'ƒLƒX',
+laughing : 'Î‚¤',
+money_mouth : '‚¨‹à',
+sealed : '',
+smile : 'ÎŠç',
+surprised : 'ƒrƒbƒNƒŠ',
+tongue_out : 'ƒyƒƒb',
+undecided : '‚Ӂ`‚ñ',
+wink : 'ƒEƒBƒ“ƒN',
+yell : '‹©‚Ô'
+});
diff --git a/tinyMCE/plugins/emotions/langs/ja_utf-8.js b/tinyMCE/plugins/emotions/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..4235efceb941f70fef35da37ae3f284706c5a976
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ja_utf-8.js
@@ -0,0 +1,22 @@
+// 日本語 utf-8 lang variables
+
+tinyMCE.addToLang('emotions',{
+title : '顔キャラを挿入',
+desc : '顔キャラ',
+cool : 'カッコイイ',
+cry : '泣く',
+embarassed : '照れる',
+foot_in_mouth : '口にチャック',
+frown : 'ボーッ',
+innocent : '天使',
+kiss : 'キス',
+laughing : '笑う',
+money_mouth : 'お金',
+sealed : '',
+smile : '笑顔',
+surprised : 'ビックリ',
+tongue_out : 'ペロッ',
+undecided : 'ふ~ん',
+wink : 'ウィンク',
+yell : '叫ぶ'
+});
diff --git a/tinyMCE/plugins/emotions/langs/ko.js b/tinyMCE/plugins/emotions/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..49f813474dedf67677de166e1facf33c3706a7f7
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ko.js
@@ -0,0 +1,6 @@
+// KO lang variables
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'À̸ðƼ&Auml;Ü ³&Ouml;±â',
+emotions_desc : 'À̸ðƼ&Auml;Ü'
+});
diff --git a/tinyMCE/plugins/emotions/langs/nb.js b/tinyMCE/plugins/emotions/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..801f3b23d3060e4836a804e425e4dec7409c4927
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/nb.js
@@ -0,0 +1,22 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('emotions',{
+title : 'Lim inn f&oslash;lelse',
+desc : 'F&oslash;lelser',
+cool : 'Cool',
+cry : 'Gr&aring;ter',
+embarassed : 'Sjenert',
+foot_in_mouth : 'Fot i munnen',
+frown : 'Lei seg',
+innocent : 'Uskyldig',
+kiss : 'Kyss',
+laughing : 'Ler',
+money_mouth : 'Penger i munnen',
+sealed : 'Hemmelig',
+smile : 'Glad',
+surprised : 'Overrasket',
+tongue_out : 'Rekke tunge',
+undecided : 'Betenkt',
+wink : 'Fl&oslash;rt',
+yell : 'Skrikende'
+});
diff --git a/tinyMCE/plugins/emotions/langs/nl.js b/tinyMCE/plugins/emotions/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..a596ab4da5a890bbba561a703655dede57370de2
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/nl.js
@@ -0,0 +1,22 @@
+// NL lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Emoticon invoegen',
+desc : 'Emoticons',
+cool : 'Cool',
+cry : 'Huilen',
+embarassed : 'Verlegen', // embarrassed
+foot_in_mouth : 'Eten in mond', // food in mouth?
+frown : 'Fronsen',
+innocent : 'Onschuldig',
+kiss : 'Kus',
+laughing : 'Lachend',
+money_mouth : 'Geldgezicht',
+sealed : 'Verzegeld',
+smile : 'Smile',
+surprised : 'Verbaasd',
+tongue_out : 'Tong uitstekend',
+undecided : 'Obepaald',
+wink : 'Knipoog',
+yell : 'Schreeuwen'
+});
diff --git a/tinyMCE/plugins/emotions/langs/nn.js b/tinyMCE/plugins/emotions/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..92f17a0d4cdc71dd1fd3eb176c8dc14d913a66bf
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/nn.js
@@ -0,0 +1,22 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('emotions',{
+title : 'Lim inn f&oslash;lelse',
+desc : 'F&oslash;lelser',
+cool : 'Cool',
+cry : 'Gr&aring;ter',
+embarassed : 'Sjenert',
+foot_in_mouth : 'Fot i munnen',
+frown : 'Lei seg',
+innocent : 'Uskyldig',
+kiss : 'Kyss',
+laughing : 'Ler',
+money_mouth : 'Penger i munnen',
+sealed : 'Hemmelig',
+smile : 'Glad',
+surprised : 'Overrasket',
+tongue_out : 'Rekke tunge',
+undecided : 'Betenkt',
+wink : 'Fl&oslash;rt',
+yell : 'Skrikende'
+});
diff --git a/tinyMCE/plugins/emotions/langs/pl.js b/tinyMCE/plugins/emotions/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..0607586892ae0f07c8397f00a8b5e16eaef708ae
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/pl.js
@@ -0,0 +1,25 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+// lemiel 25.10.2005
+
+tinyMCE.addToLang('emotions',{
+title : 'Wstaw emotikonkÄ™',
+desc : 'Emotikonki',
+cool : 'Super',
+cry : 'Płaczę',
+embarassed : 'Zażenowanie',
+foot_in_mouth : 'Trzepię jęzorem',
+frown : 'MarszczÄ™ brew',
+innocent : 'Niewinny',
+kiss : 'Pocałunek',
+laughing : 'śmiech',
+money_mouth : 'Zasady życiowe',
+sealed : 'Zaplombowane usta',
+smile : 'Uśmiech',
+surprised : 'Zaskoczenie',
+tongue_out : 'Pokazuję język',
+undecided : 'Niezdecydowanie',
+wink : 'Perskie oko',
+yell : 'Wycie'
+});
diff --git a/tinyMCE/plugins/emotions/langs/pt_br.js b/tinyMCE/plugins/emotions/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..0d406a3edbfdfb669e4057de067b2462d3a4cac7
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/pt_br.js
@@ -0,0 +1,30 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('emotions',{
+title : 'Inserir emoticons',
+desc : 'Emoticons',
+cool : 'Legal',
+cry : 'Chorando',
+embarassed : 'Embaraçado',
+foot_in_mouth : 'Falando asneira',
+frown : 'Triste',
+innocent : 'Inocente',
+kiss : 'Beijo',
+laughing : 'Rindo',
+money_mouth : 'Interesseiro',
+sealed : 'Lábios fechados',
+smile : 'Sorriso',
+surprised : 'Surpreso',
+tongue_out : 'Mostrar a língua',
+undecided : 'Indeciso',
+wink : 'Piscar',
+yell : 'Grito'
+});
diff --git a/tinyMCE/plugins/emotions/langs/ro.js b/tinyMCE/plugins/emotions/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..35562aa5b62bd8881c3b41dcb8fa3f235c8953b6
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ro.js
@@ -0,0 +1,22 @@
+// RO lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Insereaz&#259; figurin&#259;',
+desc : 'Figurine',
+cool : 'Mi&#351;to',
+cry : 'Pl&#226;nset',
+embarassed : 'Ru&#351;inat',
+foot_in_mouth : 'Picior &#238;n gur&#259;!',
+frown : '&#206;ncruntat',
+innocent : 'Inocent',
+kiss : 'Pupic',
+laughing : 'R&#226;sete',
+money_mouth : 'Gur&#259; bogat&#259;',
+sealed : 'Sigilat',
+smile : 'Z&#226;mbet',
+surprised : 'Surprins',
+tongue_out : 'Cu limbu&#355;a pe-afar&#259;',
+undecided : 'Nedecis',
+wink : 'Trage cu ochiul',
+yell : 'Url&#259;'
+});
diff --git a/tinyMCE/plugins/emotions/langs/ru.js b/tinyMCE/plugins/emotions/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..18005a9a02512c69858baf3f9aa537cd765c9617
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ru.js
@@ -0,0 +1,22 @@
+// RU lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Вставить смайлик',
+desc : 'Смайлики',
+cool : 'Круто',
+cry : 'Плач',
+embarassed : 'Смущенный',
+foot_in_mouth : 'Косноязычный',
+frown : 'Нахмуренный',
+innocent : 'Святой',
+kiss : 'Поцелуй',
+laughing : 'Смех',
+money_mouth : 'Дельный',
+sealed : 'Заклеенный',
+smile : 'Улыбка',
+surprised : 'Сюрприз',
+tongue_out : 'Высунутый язык',
+undecided : 'Нерешительный',
+wink : 'Подмигнуть',
+yell : 'Вопль'
+});
diff --git a/tinyMCE/plugins/emotions/langs/ru_CP1251.js b/tinyMCE/plugins/emotions/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..0530fd3fa968f63b3b77fd6353f4754e107bfe88
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ru_CP1251.js
@@ -0,0 +1,22 @@
+// RU lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Âñòàâèòü ñìàéëèê',
+desc : 'Ñìàéëèêè',
+cool : 'Êðóòî',
+cry : 'Ïëà÷',
+embarassed : 'Ñìóùåííûé',
+foot_in_mouth : 'Êîñíîÿçû÷íûé',
+frown : 'Íàõìóðåííûé',
+innocent : 'Ñâÿòîé',
+kiss : 'Ïîöåëóé',
+laughing : 'Ñìåõ',
+money_mouth : 'Äåëüíûé',
+sealed : 'Çàêëååííûé',
+smile : 'Óëûáêà',
+surprised : 'Ñþðïðèç',
+tongue_out : 'Âûñóíóòûé ÿçûê',
+undecided : 'Íåðåøèòåëüíûé',
+wink : 'Ïîäìèãíóòü',
+yell : 'Âîïëü'
+});
diff --git a/tinyMCE/plugins/emotions/langs/ru_KOI8-R.js b/tinyMCE/plugins/emotions/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc8e3fba99dae081ff08e839f34ffed745d023e0
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/ru_KOI8-R.js
@@ -0,0 +1,22 @@
+// RU lang variables
+
+tinyMCE.addToLang('emotions',{
+title : '÷ÓÔÁ×ÉÔØ ÓÍÁÊÌÉË',
+desc : 'óÍÁÊÌÉËÉ',
+cool : 'ëÒÕÔÏ',
+cry : 'ðÌÁÞ',
+embarassed : 'óÍÕÝÅÎÎÙÊ',
+foot_in_mouth : 'ëÏÓÎÏÑÚÙÞÎÙÊ',
+frown : 'îÁÈÍÕÒÅÎÎÙÊ',
+innocent : 'ó×ÑÔÏÊ',
+kiss : 'ðÏÃÅÌÕÊ',
+laughing : 'óÍÅÈ',
+money_mouth : 'äÅÌØÎÙÊ',
+sealed : 'úÁËÌÅÅÎÎÙÊ',
+smile : 'õÌÙÂËÁ',
+surprised : 'óÀÒÐÒÉÚ',
+tongue_out : '÷ÙÓÕÎÕÔÙÊ ÑÚÙË',
+undecided : 'îÅÒÅÛÉÔÅÌØÎÙÊ',
+wink : 'ðÏÄÍÉÇÎÕÔØ',
+yell : '÷ÏÐÌØ'
+});
diff --git a/tinyMCE/plugins/emotions/langs/si.js b/tinyMCE/plugins/emotions/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..e1cd3abbebad51f469cce3eccce80b94db9869b6
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/si.js
@@ -0,0 +1,22 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('emotions',{
+title : 'Vstavi sme&#353;kota',
+desc : 'Sme&#353;koti',
+cool : 'Kul',
+cry : 'Jok',
+embarassed : 'Osramo&#269;en',
+foot_in_mouth : 'Foot in mouth',
+frown : 'Nakrem&#382;en',
+innocent : 'Nedol&#382;en',
+kiss : 'Poljub',
+laughing : 'Smeh',
+money_mouth : 'Denar',
+sealed : 'Zape&#269;aten',
+smile : 'Nasmeh',
+surprised : 'Presene&#269;en',
+tongue_out : 'Jezik ven',
+undecided : 'Neodlo&#269;en',
+wink : 'Pome&#382;ik',
+yell : 'Kri&#269;im'
+});
diff --git a/tinyMCE/plugins/emotions/langs/sk.js b/tinyMCE/plugins/emotions/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..0746fdc0e9a09e1ff35983b2392fd762665fc8dd
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/sk.js
@@ -0,0 +1,14 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Vložiť emotikonu',
+emotions_desc : 'Emotikony'
+});
+
diff --git a/tinyMCE/plugins/emotions/langs/sq.js b/tinyMCE/plugins/emotions/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..9d363a8f76d83dd05d3ad4a8883cb57009c6020f
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/sq.js
@@ -0,0 +1,22 @@
+// UK lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Nderfut emocione',
+desc : 'Emocione',
+cool : 'Njesh',
+cry : 'Qaj',
+embarassed : 'Ne siklet',
+foot_in_mouth : 'Kemben ne goje',
+frown : 'Hmm...',
+innocent : 'I pafajshem',
+kiss : 'Puthje',
+laughing : 'Qeshje',
+money_mouth : 'Goje me para',
+sealed : 'I vulosur',
+smile : 'Buzeqeshje',
+surprised : 'I çuditur',
+tongue_out : 'Perqeshje',
+undecided : 'I pavendosur',
+wink : 'Hmm...',
+yell : 'Bertitje'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/emotions/langs/sr.js b/tinyMCE/plugins/emotions/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..66ac5882491dbc998e28fabb5380551c39cf774f
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/sr.js
@@ -0,0 +1,22 @@
+// SR lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Ubacivanje smajlija',
+desc : 'Smajliji',
+cool : 'Kul',
+cry : 'Plače',
+embarassed : 'Sramota',
+foot_in_mouth : 'Noga u ustima',
+frown : 'Mršti se',
+innocent : 'Nevin',
+kiss : 'Poljubac',
+laughing : 'Smeje se',
+money_mouth : 'Novac u ustima',
+sealed : 'Zapečaćen',
+smile : 'Smeje se',
+surprised : 'Iznenađen',
+tongue_out : 'Plezi se',
+undecided : 'Neodlučan',
+wink : 'Namiguje',
+yell : 'Viče'
+});
diff --git a/tinyMCE/plugins/emotions/langs/sv.js b/tinyMCE/plugins/emotions/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..18d0740e67e19368de6998399fa579e75e604520
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/sv.js
@@ -0,0 +1,22 @@
+// SE lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Klistra in k&auml;nsla',
+desc : 'K&auml;nslor',
+cool : 'Cool',
+cry : 'Gr&aring;ter',
+embarassed : 'Generad',
+foot_in_mouth : 'Fot i munnnen',
+frown : 'Ledsen',
+innocent : 'Oskyldig',
+kiss : 'Kyss',
+laughing : 'Skrattande',
+money_mouth : 'Penga mun',
+sealed : 'Hemlis',
+smile : 'Glad',
+surprised : 'F&ouml;rv&aring;nad',
+tongue_out : 'R&auml;cka ut tungan',
+undecided : 'Fundersam',
+wink : 'Fl&ouml;rt',
+yell : 'Skrikandes'
+});
diff --git a/tinyMCE/plugins/emotions/langs/sv_utf8.js b/tinyMCE/plugins/emotions/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..18d0740e67e19368de6998399fa579e75e604520
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/sv_utf8.js
@@ -0,0 +1,22 @@
+// SE lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Klistra in k&auml;nsla',
+desc : 'K&auml;nslor',
+cool : 'Cool',
+cry : 'Gr&aring;ter',
+embarassed : 'Generad',
+foot_in_mouth : 'Fot i munnnen',
+frown : 'Ledsen',
+innocent : 'Oskyldig',
+kiss : 'Kyss',
+laughing : 'Skrattande',
+money_mouth : 'Penga mun',
+sealed : 'Hemlis',
+smile : 'Glad',
+surprised : 'F&ouml;rv&aring;nad',
+tongue_out : 'R&auml;cka ut tungan',
+undecided : 'Fundersam',
+wink : 'Fl&ouml;rt',
+yell : 'Skrikandes'
+});
diff --git a/tinyMCE/plugins/emotions/langs/tr.js b/tinyMCE/plugins/emotions/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..325a69c4615ca80667699bfc3bc38a7b1164f635
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/tr.js
@@ -0,0 +1,22 @@
+// TR lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Yüz ifadesi ekle',
+desc : 'Yüz ifadeleri',
+cool : 'Soðukkanlý',
+cry : 'Aðlayan',
+embarassed : 'Utangaç',
+foot_in_mouth : 'Foot in mouth',
+frown : 'Kaþlarý çatýk',
+innocent : 'Masum',
+kiss : 'Öpücük',
+laughing : 'Gülen',
+money_mouth : 'Money mouth',
+sealed : 'Týp',
+smile : 'Gülümseyen',
+surprised : 'Þaþýrmýþ',
+tongue_out : 'Dili dýþarda',
+undecided : 'Kararsýz',
+wink : 'Göz kýrpan',
+yell : 'Haykýran'
+});
diff --git a/tinyMCE/plugins/emotions/langs/uk.js b/tinyMCE/plugins/emotions/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..182141b8592977b570763a719cc3df36dff83112
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/uk.js
@@ -0,0 +1,22 @@
+// UK lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Вставити смайлик',
+desc : 'Смайлики',
+cool : 'Круто',
+cry : 'Плач',
+embarassed : 'Збентежений',
+foot_in_mouth : 'Недорікуватий',
+frown : 'Нахмурений',
+innocent : 'Святий',
+kiss : 'Поцілунок',
+laughing : 'Сміх',
+money_mouth : 'Слушний',
+sealed : 'Заклеєний',
+smile : 'Усмішка',
+surprised : 'Сюрприз',
+tongue_out : 'Висунутий язик',
+undecided : 'Нерішучий',
+wink : 'Підморгнути',
+yell : 'Вигук'
+});
diff --git a/tinyMCE/plugins/emotions/langs/uk_CP1251.js b/tinyMCE/plugins/emotions/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..90752881893c07c3b27db4db1290702934f4fd5f
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/uk_CP1251.js
@@ -0,0 +1,22 @@
+// UK lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Âñòàâèòè ñìàéëèê',
+desc : 'Ñìàéëèêè',
+cool : 'Êðóòî',
+cry : 'Ïëà÷',
+embarassed : 'Çáåíòåæåíèé',
+foot_in_mouth : 'Íåäîð³êóâàòèé',
+frown : 'Íàõìóðåíèé',
+innocent : 'Ñâÿòèé',
+kiss : 'Ïîö³ëóíîê',
+laughing : 'Ñì³õ',
+money_mouth : 'Ñëóøíèé',
+sealed : 'Çàêëåºíèé',
+smile : 'Óñì³øêà',
+surprised : 'Ñþðïðèç',
+tongue_out : 'Âèñóíóòèé ÿçèê',
+undecided : 'Íåð³øó÷èé',
+wink : 'ϳäìîðãíóòè',
+yell : 'Âèãóê'
+});
diff --git a/tinyMCE/plugins/emotions/langs/uk_KOI8-U.js b/tinyMCE/plugins/emotions/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..ae3825258380068f2f5aac3a77b52b3670a13582
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/uk_KOI8-U.js
@@ -0,0 +1,22 @@
+// UK lang variables
+
+tinyMCE.addToLang('emotions',{
+title : '÷ÓÔÁ×ÉÔÉ ÓÍÁÊÌÉË',
+desc : 'óÍÁÊÌÉËÉ',
+cool : 'ëÒÕÔÏ',
+cry : 'ðÌÁÞ',
+embarassed : 'úÂÅÎÔÅÖÅÎÉÊ',
+foot_in_mouth : 'îÅÄÏÒ¦ËÕ×ÁÔÉÊ',
+frown : 'îÁÈÍÕÒÅÎÉÊ',
+innocent : 'ó×ÑÔÉÊ',
+kiss : 'ðÏæÌÕÎÏË',
+laughing : 'óͦÈ',
+money_mouth : 'óÌÕÛÎÉÊ',
+sealed : 'úÁËÌŤÎÉÊ',
+smile : 'õÓͦÛËÁ',
+surprised : 'óÀÒÐÒÉÚ',
+tongue_out : '÷ÉÓÕÎÕÔÉÊ ÑÚÉË',
+undecided : 'îÅÒ¦ÛÕÞÉÊ',
+wink : 'ð¦ÄÍÏÒÇÎÕÔÉ',
+yell : '÷ÉÇÕË'
+});
diff --git a/tinyMCE/plugins/emotions/langs/vi.js b/tinyMCE/plugins/emotions/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..b8aa314d7d454d7234327592d0a2cff0a59b5ea3
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/vi.js
@@ -0,0 +1,22 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('emotions',{
+title : 'Thêm biểu cảm',
+desc : 'Biểu&nbsp;cảm',
+cool : 'Tuyệt',
+cry : 'Khóc',
+embarassed : 'Bối&nbsp;rối',
+foot_in_mouth : 'Chân&nbsp;trong&nbsp;miệng',
+frown : 'Cau&nbsp;mày',
+innocent : 'Ngây&nbsp;thơ',
+kiss : 'Hôn',
+laughing : 'Cười',
+money_mouth : 'Ngậm&nbsp;tiền',
+sealed : 'Dán&nbsp;miệng',
+smile : 'Mỉm&nbsp;cười',
+surprised : 'Ngạc&nbsp;nhiên',
+tongue_out : 'Thè&nbsp;lưỡi',
+undecided : 'Chưa&nbsp;quyết&nbsp;định',
+wink : 'Nháy&nbsp;mắt',
+yell : 'La&nbsp;hét'
+});
diff --git a/tinyMCE/plugins/emotions/langs/zh_cn.js b/tinyMCE/plugins/emotions/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0a98be09153954275c26685ba2cd0196f1b1530
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/zh_cn.js
@@ -0,0 +1,23 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('emotions',{
+title : '²åÈë±íÇé',
+desc : '񡀂',
+cool : '¿á',
+cry : '¿Þ',
+embarassed : 'ÞÏÞÎ',
+foot_in_mouth : 'Foot in mouth',
+frown : 'Öåü',
+innocent : 'ÎÞ¹¼',
+kiss : 'Ç×ÎÇ',
+laughing : '´óЦ',
+money_mouth : 'Money mouth',
+sealed : '±£ÃÜ',
+smile : '΢Ц',
+surprised : '¾ªÑÈ',
+tongue_out : 'ÍÂÉà',
+undecided : 'ÓÌÔ¥',
+wink : 'Õ£ÑÛ',
+yell : '´ó½Ð'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/emotions/langs/zh_cn_utf8.js b/tinyMCE/plugins/emotions/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..8c41682aff08b45f629076d4c8ba0d285229389d
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/zh_cn_utf8.js
@@ -0,0 +1,23 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('emotions',{
+title : '插入表情',
+desc : '表情',
+cool : 'é…·',
+cry : 'å“­',
+embarassed : 'å°´å°¬',
+foot_in_mouth : 'Foot in mouth',
+frown : '皱眉',
+innocent : '无辜',
+kiss : '亲吻',
+laughing : '大笑',
+money_mouth : 'Money mouth',
+sealed : '保密',
+smile : '微笑',
+surprised : '惊讶',
+tongue_out : '吐舌',
+undecided : '犹豫',
+wink : '眨眼',
+yell : '大叫'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/emotions/langs/zh_tw.js b/tinyMCE/plugins/emotions/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca3e2d6aa7e3a0149dd8687a8ed09e0c869f5b6b
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/zh_tw.js
@@ -0,0 +1,23 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('emotions',{
+title : '´¡¤Jªí±¡¹Ï¥Ü',
+desc : 'ªí±¡¹Ï¥Ü',
+cool : '»Å³á',
+cry : '¤j­ú',
+embarassed : '¦nêɧr',
+foot_in_mouth : '¯ä¦º¤F',
+frown : '­ó¡IÃi±o²z§A',
+innocent : '§Ú¬OµL¶dªº',
+kiss : '¿Ë¤@­Ó',
+laughing : '¤Ó¥i¯º¹Æ',
+money_mouth : '¦n°ª¿³³á',
+sealed : '³¬¼L',
+smile : '·L¯º',
+surprised : 'Åå³Y',
+tongue_out : '¦R¦ÞÀY',
+undecided : '§Ú·Q·Q',
+wink : '¯w²´',
+yell : '°I¦º¤F¡ã¡ã'
+});
diff --git a/tinyMCE/plugins/emotions/langs/zh_tw_utf8.js b/tinyMCE/plugins/emotions/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..1bc29d953422006a063d7a56ed42ccf4a7348945
--- /dev/null
+++ b/tinyMCE/plugins/emotions/langs/zh_tw_utf8.js
@@ -0,0 +1,23 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('emotions',{
+title : '插入表情圖示',
+desc : '表情圖示',
+cool : 'é…·å–”',
+cry : '大哭',
+embarassed : '好糗呀',
+foot_in_mouth : '臭死了',
+frown : '哼!懶得理你',
+innocent : '我是無辜的',
+kiss : '親一個',
+laughing : '太可笑嘍',
+money_mouth : '好高興喔',
+sealed : '閉嘴',
+smile : '微笑',
+surprised : '驚訝',
+tongue_out : '吐舌頭',
+undecided : '我想想',
+wink : '眨眼',
+yell : '衰死了~~'
+});
diff --git a/tinyMCE/plugins/emotions/readme.txt b/tinyMCE/plugins/emotions/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/emotions/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/flash/css/content.css b/tinyMCE/plugins/flash/css/content.css
new file mode 100644
index 0000000000000000000000000000000000000000..843258b79d3891466410f2a8aea84cf1c899557d
--- /dev/null
+++ b/tinyMCE/plugins/flash/css/content.css
@@ -0,0 +1,7 @@
+.mceItemFlash {
+	border: 1px dotted #cc0000;
+	background-image: url('../images/flash.gif');
+	background-position: center;
+	background-repeat: no-repeat;
+	background-color: #ffffcc;
+}
diff --git a/tinyMCE/plugins/flash/css/flash.css b/tinyMCE/plugins/flash/css/flash.css
new file mode 100644
index 0000000000000000000000000000000000000000..d3e88e1a20496490dfed51da6d661697c29251b2
--- /dev/null
+++ b/tinyMCE/plugins/flash/css/flash.css
@@ -0,0 +1,11 @@
+.panel_wrapper div.current {
+	height: 100px;
+}
+
+#width, #height {
+	width: 50px;
+}
+
+#file {
+	width: 250px;
+}
diff --git a/tinyMCE/plugins/flash/editor_plugin.js b/tinyMCE/plugins/flash/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..ddcf35d3903bfb00d73e313debf6ce2a3990d999
--- /dev/null
+++ b/tinyMCE/plugins/flash/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('flash');var TinyMCE_FlashPlugin={getInfo:function(){return{longname:'Flash',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/flash',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(!tinyMCE.settings['flash_skip_plugin_css'])tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/flash/css/content.css")},getControlHTML:function(cn){switch(cn){case"flash":return tinyMCE.getButtonHTML(cn,'lang_flash_desc','{$pluginurl}/images/flash.gif','mceFlash')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceFlash":var name="",swffile="",swfwidth="",swfheight="",action="insert";var template=new Array();var inst=tinyMCE.getInstanceById(editor_id);var focusElm=inst.getFocusElement();template['file']='../../plugins/flash/flash.htm';template['width']=430;template['height']=175;template['width']+=tinyMCE.getLang('lang_flash_delta_width',0);template['height']+=tinyMCE.getLang('lang_flash_delta_height',0);if(focusElm!=null&&focusElm.nodeName.toLowerCase()=="img"){name=tinyMCE.getAttrib(focusElm,'class');if(name.indexOf('mceItemFlash')==-1)return true;swffile=tinyMCE.getAttrib(focusElm,'alt');if(tinyMCE.getParam('convert_urls'))swffile=eval(tinyMCE.settings['urlconverter_callback']+"(swffile, null, true);");swfwidth=tinyMCE.getAttrib(focusElm,'width');swfheight=tinyMCE.getAttrib(focusElm,'height');action="update"}tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes",swffile:swffile,swfwidth:swfwidth,swfheight:swfheight,action:action});return true}return false},cleanup:function(type,content){switch(type){case"insert_to_editor_dom":if(tinyMCE.getParam('convert_urls')){var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){if(tinyMCE.getAttrib(imgs[i],"class")=="mceItemFlash"){var src=tinyMCE.getAttrib(imgs[i],"alt");if(tinyMCE.getParam('convert_urls'))src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('alt',src);imgs[i].setAttribute('title',src)}}}break;case"get_from_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){if(tinyMCE.getAttrib(imgs[i],"class")=="mceItemFlash"){var src=tinyMCE.getAttrib(imgs[i],"alt");if(tinyMCE.getParam('convert_urls'))src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('alt',src);imgs[i].setAttribute('title',src)}}break;case"insert_to_editor":var startPos=0;var embedList=new Array();content=content.replace(new RegExp('<[ ]*embed','gi'),'<embed');content=content.replace(new RegExp('<[ ]*/embed[ ]*>','gi'),'</embed>');content=content.replace(new RegExp('<[ ]*object','gi'),'<object');content=content.replace(new RegExp('<[ ]*/object[ ]*>','gi'),'</object>');while((startPos=content.indexOf('<embed',startPos+1))!=-1){var endPos=content.indexOf('>',startPos);var attribs=TinyMCE_FlashPlugin._parseAttributes(content.substring(startPos+6,endPos));embedList[embedList.length]=attribs}var index=0;while((startPos=content.indexOf('<object',startPos))!=-1){if(index>=embedList.length)break;var attribs=embedList[index];endPos=content.indexOf('</object>',startPos);endPos+=9;var contentAfter=content.substring(endPos);content=content.substring(0,startPos);content+='<img width="'+attribs["width"]+'" height="'+attribs["height"]+'"';content+=' src="'+(tinyMCE.getParam("theme_href")+'/images/spacer.gif')+'" title="'+attribs["src"]+'"';content+=' alt="'+attribs["src"]+'" class="mceItemFlash" />'+content.substring(endPos);content+=contentAfter;index++;startPos++}var index=0;while((startPos=content.indexOf('<embed',startPos))!=-1){if(index>=embedList.length)break;var attribs=embedList[index];endPos=content.indexOf('>',startPos);endPos+=9;var contentAfter=content.substring(endPos);content=content.substring(0,startPos);content+='<img width="'+attribs["width"]+'" height="'+attribs["height"]+'"';content+=' src="'+(tinyMCE.getParam("theme_href")+'/images/spacer.gif')+'" title="'+attribs["src"]+'"';content+=' alt="'+attribs["src"]+'" class="mceItemFlash" />'+content.substring(endPos);content+=contentAfter;index++;startPos++}break;case"get_from_editor":var startPos=-1;while((startPos=content.indexOf('<img',startPos+1))!=-1){var endPos=content.indexOf('/>',startPos);var attribs=TinyMCE_FlashPlugin._parseAttributes(content.substring(startPos+4,endPos));if(attribs['class']!="mceItemFlash")continue;endPos+=2;var embedHTML='';var wmode=tinyMCE.getParam("flash_wmode","");var quality=tinyMCE.getParam("flash_quality","high");var menu=tinyMCE.getParam("flash_menu","false");embedHTML+='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';embedHTML+=' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"';embedHTML+=' width="'+attribs["width"]+'" height="'+attribs["height"]+'">';embedHTML+='<param name="movie" value="'+attribs["title"]+'" />';embedHTML+='<param name="quality" value="'+quality+'" />';embedHTML+='<param name="menu" value="'+menu+'" />';embedHTML+='<param name="wmode" value="'+wmode+'" />';embedHTML+='<embed src="'+attribs["title"]+'" wmode="'+wmode+'" quality="'+quality+'" menu="'+menu+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+attribs["width"]+'" height="'+attribs["height"]+'"></embed></object>';chunkBefore=content.substring(0,startPos);chunkAfter=content.substring(endPos);content=chunkBefore+embedHTML+chunkAfter}break}return content},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="IMG"&&tinyMCE.getAttrib(node,'class').indexOf('mceItemFlash')==0){tinyMCE.switchClass(editor_id+'_flash','mceButtonSelected');return true}}while((node=node.parentNode));tinyMCE.switchClass(editor_id+'_flash','mceButtonNormal');return true},_parseAttributes:function(attribute_string){var attributeName="";var attributeValue="";var withInName;var withInValue;var attributes=new Array();var whiteSpaceRegExp=new RegExp('^[ \n\r\t]+','g');if(attribute_string==null||attribute_string.length<2)return null;withInName=withInValue=false;for(var i=0;i<attribute_string.length;i++){var chr=attribute_string.charAt(i);if((chr=='"'||chr=="'")&&!withInValue)withInValue=true;else if((chr=='"'||chr=="'")&&withInValue){withInValue=false;var pos=attributeName.lastIndexOf(' ');if(pos!=-1)attributeName=attributeName.substring(pos+1);attributes[attributeName.toLowerCase()]=attributeValue.substring(1);attributeName="";attributeValue=""}else if(!whiteSpaceRegExp.test(chr)&&!withInName&&!withInValue)withInName=true;if(chr=='='&&withInName)withInName=false;if(withInName)attributeName+=chr;if(withInValue)attributeValue+=chr}return attributes}};tinyMCE.addPlugin("flash",TinyMCE_FlashPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/flash/editor_plugin_src.js b/tinyMCE/plugins/flash/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..d8e2d8a7a2ede894061e287027058f66ffb1e848
--- /dev/null
+++ b/tinyMCE/plugins/flash/editor_plugin_src.js
@@ -0,0 +1,285 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('flash');
+
+var TinyMCE_FlashPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Flash',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/flash',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		if (!tinyMCE.settings['flash_skip_plugin_css'])
+			tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/flash/css/content.css");
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "flash":
+				return tinyMCE.getButtonHTML(cn, 'lang_flash_desc', '{$pluginurl}/images/flash.gif', 'mceFlash');
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mceFlash":
+				var name = "", swffile = "", swfwidth = "", swfheight = "", action = "insert";
+				var template = new Array();
+				var inst = tinyMCE.getInstanceById(editor_id);
+				var focusElm = inst.getFocusElement();
+
+				template['file']   = '../../plugins/flash/flash.htm'; // Relative to theme
+				template['width']  = 430;
+				template['height'] = 175;
+
+				template['width'] += tinyMCE.getLang('lang_flash_delta_width', 0);
+				template['height'] += tinyMCE.getLang('lang_flash_delta_height', 0);
+
+				// Is selection a image
+				if (focusElm != null && focusElm.nodeName.toLowerCase() == "img") {
+					name = tinyMCE.getAttrib(focusElm, 'class');
+
+					if (name.indexOf('mceItemFlash') == -1) // Not a Flash
+						return true;
+
+					// Get rest of Flash items
+					swffile = tinyMCE.getAttrib(focusElm, 'alt');
+
+					if (tinyMCE.getParam('convert_urls'))
+						swffile = eval(tinyMCE.settings['urlconverter_callback'] + "(swffile, null, true);");
+
+					swfwidth = tinyMCE.getAttrib(focusElm, 'width');
+					swfheight = tinyMCE.getAttrib(focusElm, 'height');
+					action = "update";
+				}
+
+				tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes", swffile : swffile, swfwidth : swfwidth, swfheight : swfheight, action : action});
+			return true;
+	   }
+
+	   // Pass to next handler in chain
+	   return false;
+	},
+
+	cleanup : function(type, content) {
+		switch (type) {
+			case "insert_to_editor_dom":
+				// Force relative/absolute
+				if (tinyMCE.getParam('convert_urls')) {
+					var imgs = content.getElementsByTagName("img");
+					for (var i=0; i<imgs.length; i++) {
+						if (tinyMCE.getAttrib(imgs[i], "class") == "mceItemFlash") {
+							var src = tinyMCE.getAttrib(imgs[i], "alt");
+
+							if (tinyMCE.getParam('convert_urls'))
+								src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
+
+							imgs[i].setAttribute('alt', src);
+							imgs[i].setAttribute('title', src);
+						}
+					}
+				}
+				break;
+
+			case "get_from_editor_dom":
+				var imgs = content.getElementsByTagName("img");
+				for (var i=0; i<imgs.length; i++) {
+					if (tinyMCE.getAttrib(imgs[i], "class") == "mceItemFlash") {
+						var src = tinyMCE.getAttrib(imgs[i], "alt");
+
+						if (tinyMCE.getParam('convert_urls'))
+							src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
+
+						imgs[i].setAttribute('alt', src);
+						imgs[i].setAttribute('title', src);
+					}
+				}
+				break;
+
+			case "insert_to_editor":
+				var startPos = 0;
+				var embedList = new Array();
+
+				// Fix the embed and object elements
+				content = content.replace(new RegExp('<[ ]*embed','gi'),'<embed');
+				content = content.replace(new RegExp('<[ ]*/embed[ ]*>','gi'),'</embed>');
+				content = content.replace(new RegExp('<[ ]*object','gi'),'<object');
+				content = content.replace(new RegExp('<[ ]*/object[ ]*>','gi'),'</object>');
+
+				// Parse all embed tags
+				while ((startPos = content.indexOf('<embed', startPos+1)) != -1) {
+					var endPos = content.indexOf('>', startPos);
+					var attribs = TinyMCE_FlashPlugin._parseAttributes(content.substring(startPos + 6, endPos));
+					embedList[embedList.length] = attribs;
+				}
+
+				// Parse all object tags and replace them with images from the embed data
+				var index = 0;
+				while ((startPos = content.indexOf('<object', startPos)) != -1) {
+					if (index >= embedList.length)
+						break;
+
+					var attribs = embedList[index];
+
+					// Find end of object
+					endPos = content.indexOf('</object>', startPos);
+					endPos += 9;
+
+					// Insert image
+					var contentAfter = content.substring(endPos);
+					content = content.substring(0, startPos);
+					content += '<img width="' + attribs["width"] + '" height="' + attribs["height"] + '"';
+					content += ' src="' + (tinyMCE.getParam("theme_href") + '/images/spacer.gif') + '" title="' + attribs["src"] + '"';
+					content += ' alt="' + attribs["src"] + '" class="mceItemFlash" />' + content.substring(endPos);
+					content += contentAfter;
+					index++;
+
+					startPos++;
+				}
+
+				// Parse all embed tags and replace them with images from the embed data
+				var index = 0;
+				while ((startPos = content.indexOf('<embed', startPos)) != -1) {
+					if (index >= embedList.length)
+						break;
+
+					var attribs = embedList[index];
+
+					// Find end of embed
+					endPos = content.indexOf('>', startPos);
+					endPos += 9;
+
+					// Insert image
+					var contentAfter = content.substring(endPos);
+					content = content.substring(0, startPos);
+					content += '<img width="' + attribs["width"] + '" height="' + attribs["height"] + '"';
+					content += ' src="' + (tinyMCE.getParam("theme_href") + '/images/spacer.gif') + '" title="' + attribs["src"] + '"';
+					content += ' alt="' + attribs["src"] + '" class="mceItemFlash" />' + content.substring(endPos);
+					content += contentAfter;
+					index++;
+
+					startPos++;
+				}
+
+				break;
+
+			case "get_from_editor":
+				// Parse all img tags and replace them with object+embed
+				var startPos = -1;
+
+				while ((startPos = content.indexOf('<img', startPos+1)) != -1) {
+					var endPos = content.indexOf('/>', startPos);
+					var attribs = TinyMCE_FlashPlugin._parseAttributes(content.substring(startPos + 4, endPos));
+
+					// Is not flash, skip it
+					if (attribs['class'] != "mceItemFlash")
+						continue;
+
+					endPos += 2;
+
+					var embedHTML = '';
+					var wmode = tinyMCE.getParam("flash_wmode", "");
+					var quality = tinyMCE.getParam("flash_quality", "high");
+					var menu = tinyMCE.getParam("flash_menu", "false");
+
+					// Insert object + embed
+					embedHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
+					embedHTML += ' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"';
+					embedHTML += ' width="' + attribs["width"] + '" height="' + attribs["height"] + '">';
+					embedHTML += '<param name="movie" value="' + attribs["title"] + '" />';
+					embedHTML += '<param name="quality" value="' + quality + '" />';
+					embedHTML += '<param name="menu" value="' + menu + '" />';
+					embedHTML += '<param name="wmode" value="' + wmode + '" />';
+					embedHTML += '<embed src="' + attribs["title"] + '" wmode="' + wmode + '" quality="' + quality + '" menu="' + menu + '" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + attribs["width"] + '" height="' + attribs["height"] + '"></embed></object>';
+
+					// Insert embed/object chunk
+					chunkBefore = content.substring(0, startPos);
+					chunkAfter = content.substring(endPos);
+					content = chunkBefore + embedHTML + chunkAfter;
+				}
+				break;
+		}
+
+		// Pass through to next handler in chain
+		return content;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		if (node == null)
+			return;
+
+		do {
+			if (node.nodeName == "IMG" && tinyMCE.getAttrib(node, 'class').indexOf('mceItemFlash') == 0) {
+				tinyMCE.switchClass(editor_id + '_flash', 'mceButtonSelected');
+				return true;
+			}
+		} while ((node = node.parentNode));
+
+		tinyMCE.switchClass(editor_id + '_flash', 'mceButtonNormal');
+
+		return true;
+	},
+
+	// Private plugin internal functions
+
+	_parseAttributes : function(attribute_string) {
+		var attributeName = "";
+		var attributeValue = "";
+		var withInName;
+		var withInValue;
+		var attributes = new Array();
+		var whiteSpaceRegExp = new RegExp('^[ \n\r\t]+', 'g');
+
+		if (attribute_string == null || attribute_string.length < 2)
+			return null;
+
+		withInName = withInValue = false;
+
+		for (var i=0; i<attribute_string.length; i++) {
+			var chr = attribute_string.charAt(i);
+
+			if ((chr == '"' || chr == "'") && !withInValue)
+				withInValue = true;
+			else if ((chr == '"' || chr == "'") && withInValue) {
+				withInValue = false;
+
+				var pos = attributeName.lastIndexOf(' ');
+				if (pos != -1)
+					attributeName = attributeName.substring(pos+1);
+
+				attributes[attributeName.toLowerCase()] = attributeValue.substring(1);
+
+				attributeName = "";
+				attributeValue = "";
+			} else if (!whiteSpaceRegExp.test(chr) && !withInName && !withInValue)
+				withInName = true;
+
+			if (chr == '=' && withInName)
+				withInName = false;
+
+			if (withInName)
+				attributeName += chr;
+
+			if (withInValue)
+				attributeValue += chr;
+		}
+
+		return attributes;
+	}
+};
+
+tinyMCE.addPlugin("flash", TinyMCE_FlashPlugin);
diff --git a/tinyMCE/plugins/flash/flash.htm b/tinyMCE/plugins/flash/flash.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7bab48ad05aba153f9b2c799df457d41cef12b42
--- /dev/null
+++ b/tinyMCE/plugins/flash/flash.htm
@@ -0,0 +1,70 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_flash_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/flash.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<link href="css/flash.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+    <form onsubmit="insertFlash();return false;" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_flash_general}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{$lang_flash_general}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+							<tr>
+							<td nowrap="nowrap"><label for="file">{$lang_flash_file}</label></td>
+							  <td nowrap="nowrap">
+									<table border="0" cellspacing="0" cellpadding="0">
+									  <tr>
+										<td><input id="file" name="file" type="text" value="" onfocus="this.select();" /></td>
+										<td id="filebrowsercontainer">&nbsp;</td>
+									  </tr>
+									</table>
+								</td>
+							</tr>
+							<tr id="linklistrow">
+								<td><label for="linklist">{$lang_flash_list}</label></td>
+								<td id="linklistcontainer">&nbsp;</td>
+							</tr>
+							<tr>
+								<td nowrap="nowrap"><label>{$lang_flash_size}</label></td>
+								<td nowrap="nowrap">
+									<input type="text" id="width" name="width" value="" onfocus="this.select();" />
+									<select name="width2" id="width2" style="width: 50px">
+										<option value="">px</option>
+										<option value="%">%</option>
+									</select>&nbsp;x&nbsp;<input id="height" name="height" type="text"  value="" onfocus="this.select();" />
+									<select name="height2" id="height2" style="width: 50px">
+										<option value="">px</option>
+										<option value="%">%</option>
+									</select>
+								</td>
+							</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div style="float: left">
+				<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertFlash();" />
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+	</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/flash/images/flash.gif b/tinyMCE/plugins/flash/images/flash.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cb192e6ceda8d19ad8e7d08dd1cfde0aa72ead2a
Binary files /dev/null and b/tinyMCE/plugins/flash/images/flash.gif differ
diff --git a/tinyMCE/plugins/flash/jscripts/flash.js b/tinyMCE/plugins/flash/jscripts/flash.js
new file mode 100644
index 0000000000000000000000000000000000000000..4f08077268b09dc31e3c73fecba3223d8645e78b
--- /dev/null
+++ b/tinyMCE/plugins/flash/jscripts/flash.js
@@ -0,0 +1,107 @@
+var url = tinyMCE.getParam("flash_external_list_url");
+if (url != null) {
+	// Fix relative
+	if (url.charAt(0) != '/' && url.indexOf('://') == -1)
+		url = tinyMCE.documentBasePath + "/" + url;
+
+	document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById("filebrowsercontainer").innerHTML = getBrowserHTML('filebrowser','file','flash','flash');
+
+	// Image list outsrc
+	var html = getFlashListHTML('filebrowser','file','flash','flash');
+	if (html == "")
+		document.getElementById("linklistrow").style.display = 'none';
+	else
+		document.getElementById("linklistcontainer").innerHTML = html;
+
+	var formObj = document.forms[0];
+	var swffile   = tinyMCE.getWindowArg('swffile');
+	var swfwidth  = '' + tinyMCE.getWindowArg('swfwidth');
+	var swfheight = '' + tinyMCE.getWindowArg('swfheight');
+
+	if (swfwidth.indexOf('%')!=-1) {
+		formObj.width2.value = "%";
+		formObj.width.value  = swfwidth.substring(0,swfwidth.length-1);
+	} else {
+		formObj.width2.value = "px";
+		formObj.width.value  = swfwidth;
+	}
+
+	if (swfheight.indexOf('%')!=-1) {
+		formObj.height2.value = "%";
+		formObj.height.value  = swfheight.substring(0,swfheight.length-1);
+	} else {
+		formObj.height2.value = "px";
+		formObj.height.value  = swfheight;
+	}
+
+	formObj.file.value = swffile;
+	formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
+
+	selectByValue(formObj, 'linklist', swffile);
+
+	// Handle file browser
+	if (isVisible('filebrowser'))
+		document.getElementById('file').style.width = '230px';
+
+	// Auto select flash in list
+	if (typeof(tinyMCEFlashList) != "undefined" && tinyMCEFlashList.length > 0) {
+		for (var i=0; i<formObj.linklist.length; i++) {
+			if (formObj.linklist.options[i].value == tinyMCE.getWindowArg('swffile'))
+				formObj.linklist.options[i].selected = true;
+		}
+	}
+}
+
+function getFlashListHTML() {
+	if (typeof(tinyMCEFlashList) != "undefined" && tinyMCEFlashList.length > 0) {
+		var html = "";
+
+		html += '<select id="linklist" name="linklist" style="width: 250px" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.file.value=this.options[this.selectedIndex].value;">';
+		html += '<option value="">---</option>';
+
+		for (var i=0; i<tinyMCEFlashList.length; i++)
+			html += '<option value="' + tinyMCEFlashList[i][1] + '">' + tinyMCEFlashList[i][0] + '</option>';
+
+		html += '</select>';
+
+		return html;
+	}
+
+	return "";
+}
+
+function insertFlash() {
+	var formObj = document.forms[0];
+	var html      = '';
+	var file      = formObj.file.value;
+	var width     = formObj.width.value;
+	var height    = formObj.height.value;
+	if (formObj.width2.value=='%') {
+		width = width + '%';
+	}
+	if (formObj.height2.value=='%') {
+		height = height + '%';
+	}
+
+	if (width == "")
+		width = 100;
+
+	if (height == "")
+		height = 100;
+
+	html += ''
+		+ '<img src="' + (tinyMCE.getParam("theme_href") + "/images/spacer.gif") + '" mce_src="' + (tinyMCE.getParam("theme_href") + "/images/spacer.gif") + '" '
+		+ 'width="' + width + '" height="' + height + '" '
+		+ 'border="0" alt="' + file + '" title="' + file + '" class="mceItemFlash" />';
+
+	tinyMCEPopup.execCommand("mceInsertContent", true, html);
+	tinyMCE.selectedInstance.repaint();
+
+	tinyMCEPopup.close();
+}
diff --git a/tinyMCE/plugins/flash/langs/ca.js b/tinyMCE/plugins/flash/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..67272bc97bbbb8aae54dbac91b60cac800c6be39
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ca.js
@@ -0,0 +1,11 @@
+// UK lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Insert / edit Flash Movie',
+desc : 'Insert / edit Flash Movie',
+file : 'Flash-File (.swf)',
+size : 'Size',
+list : 'Flash files',
+props : 'Flash properties',
+general : 'General'
+});
diff --git a/tinyMCE/plugins/flash/langs/cs.js b/tinyMCE/plugins/flash/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..a081e699a5f5afe0dad834d28e4eada5c5047452
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/cs.js
@@ -0,0 +1,16 @@
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id: cs.js,v 1.8 2006/02/23 09:05:57 spocke Exp $
+ */
+
+tinyMCE.addToLang('flash',{
+title : 'Vložit / editovat Flash',
+desc : 'Vložit / editovat Flash',
+file : 'Flash soubor (.swf)',
+size : 'Velikost',
+list : 'Flash soubory',
+props : 'Flash nastavení',
+general : 'Obecné'
+});
diff --git a/tinyMCE/plugins/flash/langs/cy.js b/tinyMCE/plugins/flash/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2e17e4e137d06d68b53505d4ed16a503ce4a540
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/cy.js
@@ -0,0 +1,11 @@
+// UK lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Mewnosod/golygu Ffilm Flash',
+desc : 'Mewnosod/golygu Ffilm Flash',
+file : 'Ffeil Flash (.swf)',
+size : 'Maint',
+list : 'Ffeiliau Flash',
+props : 'Priodoleddau Flash',
+general : 'Cyffredinol'
+});
diff --git a/tinyMCE/plugins/flash/langs/da.js b/tinyMCE/plugins/flash/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..4941ad4c21ef60999d51666f469c243f495b064e
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/da.js
@@ -0,0 +1,11 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.:
+
+tinyMCE.addToLang('flash',{
+title : 'Inds&aelig;t / rediger Flash-film',
+desc : 'Inds&aelig;t / rediger Flash-film',
+file : 'Flash-Fil (.swf)',
+size : 'St&oslash;rrelse',
+list : 'Flash filer',
+props : 'Flash egenskaber',
+general : 'Genererelt'
+});
diff --git a/tinyMCE/plugins/flash/langs/de.js b/tinyMCE/plugins/flash/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..4072c14f407900fc38a595e30563e3ae3a575832
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/de.js
@@ -0,0 +1,11 @@
+// DE lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Flash-Datei einf&uuml;gen/bearbeiten',
+desc : 'Flash-Datei einf&uuml;gen/bearbeiten',
+file : 'Flash-Datei (.swf)',
+size : 'Gr&ouml;&szlig;e',
+list : 'Flash-Dateien',
+props : 'Flash-Eigenschaften',
+general : 'Allgemein'
+});
diff --git a/tinyMCE/plugins/flash/langs/el.js b/tinyMCE/plugins/flash/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..606778512930141540b4ecdd93c0fd0dc379a708
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/el.js
@@ -0,0 +1,11 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('flash',{
+title : 'ÅéóáãùãÞ / äéüñèùóç áñ÷åßïõ Flash',
+desc : 'ÅéóáãùãÞ / äéüñèùóç áñ÷åßïõ Flash',
+file : 'Áñ÷åßï-Flash (.swf)',
+size : 'ÌÝãåèïò',
+list : 'Áñ÷åßá Flash',
+props : 'Éäéüôçôåò Flash',
+general : 'ÃåíéêÜ'
+});
diff --git a/tinyMCE/plugins/flash/langs/en.js b/tinyMCE/plugins/flash/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..67272bc97bbbb8aae54dbac91b60cac800c6be39
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/en.js
@@ -0,0 +1,11 @@
+// UK lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Insert / edit Flash Movie',
+desc : 'Insert / edit Flash Movie',
+file : 'Flash-File (.swf)',
+size : 'Size',
+list : 'Flash files',
+props : 'Flash properties',
+general : 'General'
+});
diff --git a/tinyMCE/plugins/flash/langs/es.js b/tinyMCE/plugins/flash/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ab0c9cc0892210d0e5e3eed354916925226f004
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/es.js
@@ -0,0 +1,20 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('flash',{
+title : 'Insertar / editar pel&iacute;cula Flash',
+desc : 'Insert / edit Flash Movie',
+file : 'Fichero Flash (.swf)',
+size : 'Tama&ntilde;o',
+list : 'Ficheros Flash',
+props : 'Propiedades del Flash',
+general : 'General'
+});
diff --git a/tinyMCE/plugins/flash/langs/fa.js b/tinyMCE/plugins/flash/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..66a8b4e650af802ddeb8cf3fde8b2f2a6fca2fcb
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/fa.js
@@ -0,0 +1,13 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_flash : '?????? ? ?????? ???? ???',
+insert_flash_file : '???? ??? (.swf)',
+insert_flash_size : '?????',
+flash_props : 'Flash properties'
+});
diff --git a/tinyMCE/plugins/flash/langs/fi.js b/tinyMCE/plugins/flash/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..3cb395c30ccfaf4b53eab406871359d9b177bd24
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/fi.js
@@ -0,0 +1,11 @@
+// FI lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Lis&auml;&auml; / muokkaa Flash animaatio',
+desc : 'Lis&auml;&auml; / muokkaa Flash animaatio',
+file : 'Flash-tiedosto (.swf)',
+size : 'Koko',
+list : 'Flash tiedostot',
+props : 'Flash ominaisuudet',
+general : 'Yleiset'
+});
diff --git a/tinyMCE/plugins/flash/langs/fr.js b/tinyMCE/plugins/flash/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..73463237da9d0343e12fb79f546baff03791eaf8
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/fr.js
@@ -0,0 +1,12 @@
+// FR lang variables
+// Modified by keyko-web.net, last updated 2007-03-08, based on the work of Motte
+
+tinyMCE.addToLang('flash',{
+title : 'Gestionnaire d\'animation Flash',
+desc : 'Ins&eacute;rer une animation Flash',
+file : 'Fichier Flash (.swf)',
+size : 'Taille',
+list : 'Liste des fichiers Flash',
+props : 'Propri&eacute;t&eacute;s Flash',
+general : 'G&eacute;n&eacute;ral'
+});
diff --git a/tinyMCE/plugins/flash/langs/fr_ca.js b/tinyMCE/plugins/flash/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..f80d9205d5f979f16f87e2f9850a39b708a34174
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/fr_ca.js
@@ -0,0 +1,9 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+insert_flash : 'Insérer / Modifier une animation Flash',
+insert_flash_file : 'Fichier Flash (.swf)',
+insert_flash_size : 'Dimension',
+insert_flash_list : 'Fichiers Flash',
+flash_props : 'Propriétés Flash'
+});
diff --git a/tinyMCE/plugins/flash/langs/he.js b/tinyMCE/plugins/flash/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..09448fed2752b8e9e5bc2e1130c581af997c502c
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/he.js
@@ -0,0 +1,11 @@
+// HE lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'äëðñ/òøåê ñøèåï Flash',
+desc : 'äëðñ/òøåê ñøèåï Flash',
+file : '÷åáõ Flash (.swf)',
+size : 'âåãì',
+list : '÷áöé Flash',
+props : 'îàôééðé Flash',
+general : 'ëììé'
+});
diff --git a/tinyMCE/plugins/flash/langs/hu.js b/tinyMCE/plugins/flash/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..0760f10a64d04b030371d2410f2c97fc6bd069df
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/hu.js
@@ -0,0 +1,11 @@
+// HU lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Flash animáció beszúrása / szerkesztése',
+desc : 'Flash animáció beszúrása / szerkesztése',
+file : 'Flash-Fájl (.swf)',
+size : 'Méret',
+list : 'Flash fájlok',
+props : 'Flash tulajdonságok',
+general : 'Általános'
+});
diff --git a/tinyMCE/plugins/flash/langs/is.js b/tinyMCE/plugins/flash/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..022a7d6bc18b5656daf7b1eb62dbbea36c70bb08
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/is.js
@@ -0,0 +1,11 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('flash',{
+title : 'B&aelig;ta vi&eth; / breyta Flash-mynd',
+desc : 'B&aelig;ta vi&eth; / breyta Flash-mynd',
+file : 'Flash-skr&aacute; (.swf)',
+size : 'St&aelig;r&eth;',
+list : 'Flash skr&aacute;r',
+props : 'Flash stillingar',
+general : 'Almennt'
+});
diff --git a/tinyMCE/plugins/flash/langs/it.js b/tinyMCE/plugins/flash/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..07b96c1586c19e6c9fafe7f4c0526ce0ac265931
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/it.js
@@ -0,0 +1,17 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('flash',{
+title : 'Inserisci o modifica oggetto Flash',
+desc : 'Inserisci o modifica oggetto Flash',
+file : 'File Flash (.swf)',
+size : 'Dimensioni',
+list : 'Lista file',
+props : 'Propriet&agrave;',
+general : 'Generale'
+});
diff --git a/tinyMCE/plugins/flash/langs/ja.js b/tinyMCE/plugins/flash/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..78ad48c789f73440bbfd0c9005efa57950b0cca2
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ja.js
@@ -0,0 +1,11 @@
+// JA lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Flashの挿入',
+desc : 'Flashの挿入',
+file : 'Flashファイル(.swf)',
+size : 'サイズ',
+list : 'Flashファイル',
+props : 'Flashの設定',
+general : '全般'
+});
diff --git a/tinyMCE/plugins/flash/langs/ja_euc-jp.js b/tinyMCE/plugins/flash/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..c45aecb0c419015039b66732e331480b84e133aa
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ja_euc-jp.js
@@ -0,0 +1,11 @@
+// Japanese euc variables
+
+tinyMCE.addToLang('flash',{
+title : 'ÁÞÆþ¡¦ÊÔ½¸¥Õ¥é¥Ã¥·¥å',
+desc : 'ÁÞÆþ¡¦ÊÔ½¸¥Õ¥é¥Ã¥·¥å',
+file : '¥Õ¥é¥Ã¥·¥å (.swf)',
+size : '¥µ¥¤¥º',
+list : '¥Õ¥é¥Ã¥·¥å¤Î¥Õ¥¡¥¤¥ë',
+props : '¥Õ¥é¥Ã¥·¥å¤Î¥×¥í¥Ñ¥Æ¥£',
+general : '°ìÈÌ'
+});
diff --git a/tinyMCE/plugins/flash/langs/ja_shift_jis.js b/tinyMCE/plugins/flash/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..e40a8e9323306effc4daf7061f060a454499d08d
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ja_shift_jis.js
@@ -0,0 +1,11 @@
+// Japanese shift_jis variables
+
+tinyMCE.addToLang('flash',{
+title : '‘}“üE•ҏWƒtƒ‰ƒbƒVƒ…',
+desc : '‘}“üE•ҏWƒtƒ‰ƒbƒVƒ…',
+file : 'ƒtƒ‰ƒbƒVƒ… (.swf)',
+size : 'ƒTƒCƒY',
+list : 'ƒtƒ‰ƒbƒVƒ…‚̃tƒ@ƒCƒ‹',
+props : 'ƒtƒ‰ƒbƒVƒ…‚̃vƒƒpƒeƒB',
+general : 'ˆê”Ê'
+});
diff --git a/tinyMCE/plugins/flash/langs/ja_utf-8.js b/tinyMCE/plugins/flash/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..b7a4d630f8c30fdd32c6d85ccf6fbe1310e2e3d8
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ja_utf-8.js
@@ -0,0 +1,11 @@
+// Japanese utf-8 variables
+
+tinyMCE.addToLang('flash',{
+title : '挿入・編集フラッシュ',
+desc : '挿入・編集フラッシュ',
+file : 'フラッシュ (.swf)',
+size : 'サイズ',
+list : 'フラッシュのファイル',
+props : 'フラッシュのプロパティ',
+general : '一般'
+});
diff --git a/tinyMCE/plugins/flash/langs/ko.js b/tinyMCE/plugins/flash/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..67272bc97bbbb8aae54dbac91b60cac800c6be39
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ko.js
@@ -0,0 +1,11 @@
+// UK lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Insert / edit Flash Movie',
+desc : 'Insert / edit Flash Movie',
+file : 'Flash-File (.swf)',
+size : 'Size',
+list : 'Flash files',
+props : 'Flash properties',
+general : 'General'
+});
diff --git a/tinyMCE/plugins/flash/langs/nb.js b/tinyMCE/plugins/flash/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..09eaa6a783a2fd6b5ecc8af70eda6adf33dc396c
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/nb.js
@@ -0,0 +1,11 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('flash',{
+title : 'Lag/oppdater flash-film',
+desc : 'Lag/oppdater flash-film',
+file : 'Flash-film (.swf)',
+size : 'St&oslash;rrelse',
+list : 'Flash-filer',
+props : 'Flash egenskaper',
+general : 'Generelle innstillinger'
+});
diff --git a/tinyMCE/plugins/flash/langs/nl.js b/tinyMCE/plugins/flash/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..5a35fe658311554f2d29147a99064a509322fd2f
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/nl.js
@@ -0,0 +1,11 @@
+// NL lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Flash bestand invoegen/bewerken',
+desc : 'Flash bestand invoegen/bewerken',
+file : 'Flash bestand (.swf)',
+size : 'Grootte',
+list : 'Flash bestanden',
+props : 'Flash eigenschappen',
+general : 'Algemeen'
+});
diff --git a/tinyMCE/plugins/flash/langs/nn.js b/tinyMCE/plugins/flash/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..13eb072daa15190db4b93cab4de0b1d3ff96ee4b
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/nn.js
@@ -0,0 +1,11 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('flash',{
+title : 'Lag/oppdater flash-film',
+desc : 'Lag/oppdater flash-film',
+file : 'Flash-film (.swf)',
+size : 'St&oslash;rrelse',
+list : 'Flash-filer',
+props : 'Flash egenskaper',
+general : 'Generelle innstillinger'
+});
diff --git a/tinyMCE/plugins/flash/langs/pl.js b/tinyMCE/plugins/flash/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..68e21b8248d8b9c1e2d29f40c296ee8a5fc14dad
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/pl.js
@@ -0,0 +1,14 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+// fixed by lemiel 14.11.2005
+
+tinyMCE.addToLang('flash',{
+title : 'Wstaw/edytuj film flash',
+desc : 'Wstaw/edytuj film flash',
+file : 'Plik flash (.swf)',
+size : 'Rozmiar',
+list : 'Pliki flash',
+props : 'Właściwości flash',
+general : 'Główne'
+});
diff --git a/tinyMCE/plugins/flash/langs/pt_br.js b/tinyMCE/plugins/flash/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca44203fb5f9d1cfa4db4d53c9de4dcabf7da748
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/pt_br.js
@@ -0,0 +1,19 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('flash',{
+title : 'Inserir/editar arquivo Flash',
+desc : 'Inserir/editar arquivo Flash',
+file : 'Arquivo Flash (.swf)',
+size : 'Tamanho',
+list : 'Lista de arquivos Flash',
+props : 'Propriedades do Flash',
+general : 'Geral'
+});
diff --git a/tinyMCE/plugins/flash/langs/ro.js b/tinyMCE/plugins/flash/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..611cd9d0a1339df2b2bd0f3e6bab55d06b9eeaf2
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ro.js
@@ -0,0 +1,11 @@
+// RO lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Insereaz&#259; / editeaz&#259; film Flash',
+desc : 'Inserare / editare film Flash',
+file : 'Fi&#351;ier-Flash (.swf)',
+size : 'Dimensiune',
+list : 'Fi&#351;iere Flash',
+props : 'Propriet&#259;&#355;i Flash',
+general : 'General'
+});
diff --git a/tinyMCE/plugins/flash/langs/ru.js b/tinyMCE/plugins/flash/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..15e932f57810d6ef31d9539b85a088a96a48a832
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ru.js
@@ -0,0 +1,11 @@
+// RU lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Вставить / Редактировать флеш-ролик',
+desc : 'Вставить / Редактировать флеш-ролик',
+file : 'Флеш-Файл (.swf)',
+size : 'Размер',
+list : 'Флеш-файлы',
+props : 'Свойства флеш',
+general : 'Основное'
+});
diff --git a/tinyMCE/plugins/flash/langs/ru_CP1251.js b/tinyMCE/plugins/flash/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..30024beb153cd9f5adf4ba806892bbd3f434770d
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ru_CP1251.js
@@ -0,0 +1,11 @@
+// RU lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Âñòàâèòü / Ðåäàêòèðîâàòü ôëåø-ðîëèê',
+desc : 'Âñòàâèòü / Ðåäàêòèðîâàòü ôëåø-ðîëèê',
+file : 'Ôëåø-Ôàéë (.swf)',
+size : 'Ðàçìåð',
+list : 'Ôëåø-ôàéëû',
+props : 'Ñâîéñòâà ôëåø',
+general : 'Îñíîâíîå'
+});
diff --git a/tinyMCE/plugins/flash/langs/ru_KOI8-R.js b/tinyMCE/plugins/flash/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..700c2650e4a0965eac6bd6f80d4d9be7c3f3d458
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/ru_KOI8-R.js
@@ -0,0 +1,11 @@
+// RU lang variables
+
+tinyMCE.addToLang('flash',{
+title : '÷ÓÔÁ×ÉÔØ / òÅÄÁËÔÉÒÏ×ÁÔØ ÆÌÅÛ-ÒÏÌÉË',
+desc : '÷ÓÔÁ×ÉÔØ / òÅÄÁËÔÉÒÏ×ÁÔØ ÆÌÅÛ-ÒÏÌÉË',
+file : 'æÌÅÛ-æÁÊÌ (.swf)',
+size : 'òÁÚÍÅÒ',
+list : 'æÌÅÛ-ÆÁÊÌÙ',
+props : 'ó×ÏÊÓÔ×Á ÆÌÅÛ',
+general : 'ïÓÎÏ×ÎÏÅ'
+});
diff --git a/tinyMCE/plugins/flash/langs/si.js b/tinyMCE/plugins/flash/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..d4ff897f3006bc04fac4fa52971667328d759e55
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/si.js
@@ -0,0 +1,11 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('flash',{
+title : 'Vstavi/uredi Flash film',
+desc : 'Vstavi/uredi Flash film',
+file : 'Flash datoteka (.swf)',
+size : 'Velikost',
+list : 'Flash datoteke',
+props : 'Lastnosti',
+general : 'Splo&#353;no'
+});
diff --git a/tinyMCE/plugins/flash/langs/sk.js b/tinyMCE/plugins/flash/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..46a6c0122c043a44030252140e0b6a5236c1d0d0
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/sk.js
@@ -0,0 +1,16 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+insert_flash : 'Vložiť/editovať Flash Movie',
+insert_flash_file : 'Flash súbor (.swf)',
+insert_flash_size : 'Veľkosť',
+insert_flash_list : 'Zoznam',
+flash_props : 'Vlastnosti Flash'
+});
diff --git a/tinyMCE/plugins/flash/langs/sq.js b/tinyMCE/plugins/flash/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..214f6003e630de3124c85310a46337c1e49cefbc
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/sq.js
@@ -0,0 +1,11 @@
+// UK lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Nderfut / ndrysho dokument Flash',
+desc : 'Nderfut / ndrysho dokument Flash',
+file : 'Dokument Flash (.swf)',
+size : 'Madhesia',
+list : 'Dokumenta Flash',
+props : 'Te dhanat e dokumentit Flash',
+general : 'Te pergjithshme'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/flash/langs/sr.js b/tinyMCE/plugins/flash/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..02d5a9851675adda0c5feb593b208692e3e76102
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/sr.js
@@ -0,0 +1,11 @@
+// SR lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Ubacivanje / menjanje Flash Filma',
+desc : 'Ubacivanje / menjanje Flash Filma',
+file : 'Flash-Fajl (.swf)',
+size : 'Veličina',
+list : 'Flash fajlovi',
+props : 'Flash podešavanja',
+general : 'Generalno'
+});
diff --git a/tinyMCE/plugins/flash/langs/sv.js b/tinyMCE/plugins/flash/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..211ba98c95fb8545c4e9ab1db101368fe22a5f7f
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/sv.js
@@ -0,0 +1,11 @@
+// SE lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Skapa/uppdatera flash-film',
+desc : 'Skapa/uppdatera flash-film',
+file : 'Flash-film (.swf)',
+size : 'Storlek',
+list : 'Flash-filer',
+props : 'Flash egenskaper',
+general : 'Generella inst&auml;llningar'
+});
diff --git a/tinyMCE/plugins/flash/langs/sv_utf8.js b/tinyMCE/plugins/flash/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..211ba98c95fb8545c4e9ab1db101368fe22a5f7f
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/sv_utf8.js
@@ -0,0 +1,11 @@
+// SE lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Skapa/uppdatera flash-film',
+desc : 'Skapa/uppdatera flash-film',
+file : 'Flash-film (.swf)',
+size : 'Storlek',
+list : 'Flash-filer',
+props : 'Flash egenskaper',
+general : 'Generella inst&auml;llningar'
+});
diff --git a/tinyMCE/plugins/flash/langs/tr.js b/tinyMCE/plugins/flash/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..04902b409d4f246b65a095eadccfa98806ed042d
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/tr.js
@@ -0,0 +1,11 @@
+// TR lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Flash ekle/düzenle',
+desc : 'Flash ekle/düzenle',
+file : 'Flash-Dosyasý (.swf)',
+size : 'Boyut',
+list : 'Flash Dosyalarý',
+props : 'Flash özellikleri',
+general : 'Genel'
+});
diff --git a/tinyMCE/plugins/flash/langs/uk.js b/tinyMCE/plugins/flash/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..539226d11ff4204d0d7da6ae36d26a9806fe77da
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/uk.js
@@ -0,0 +1,11 @@
+// UK lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Вставити / Редагувати флеш-ролик',
+desc : 'Вставити / Редагувати флеш-ролик',
+file : 'Флеш-Файл (.swf)',
+size : 'Розмір',
+list : 'Флеш-файли',
+props : 'Властивості флеш',
+general : 'Основне'
+});
diff --git a/tinyMCE/plugins/flash/langs/uk_CP1251.js b/tinyMCE/plugins/flash/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..75a2e9e505231fb5512c3fbd1d71499defa29e76
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/uk_CP1251.js
@@ -0,0 +1,11 @@
+// UK lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Âñòàâèòè / Ðåäàãóâàòè ôëåø-ðîëèê',
+desc : 'Âñòàâèòè / Ðåäàãóâàòè ôëåø-ðîëèê',
+file : 'Ôëåø-Ôàéë (.swf)',
+size : 'Ðîçì³ð',
+list : 'Ôëåø-ôàéëè',
+props : 'Âëàñòèâîñò³ ôëåø',
+general : 'Îñíîâíå'
+});
diff --git a/tinyMCE/plugins/flash/langs/uk_KOI8-U.js b/tinyMCE/plugins/flash/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..c5c46b73ab8b93f09e7e8759b05016ecda4ea452
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/uk_KOI8-U.js
@@ -0,0 +1,11 @@
+// UK lang variables
+
+tinyMCE.addToLang('flash',{
+title : '÷ÓÔÁ×ÉÔÉ / òÅÄÁÇÕ×ÁÔÉ ÆÌÅÛ-ÒÏÌÉË',
+desc : '÷ÓÔÁ×ÉÔÉ / òÅÄÁÇÕ×ÁÔÉ ÆÌÅÛ-ÒÏÌÉË',
+file : 'æÌÅÛ-æÁÊÌ (.swf)',
+size : 'òÏÚͦÒ',
+list : 'æÌÅÛ-ÆÁÊÌÉ',
+props : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÆÌÅÛ',
+general : 'ïÓÎÏ×ÎÅ'
+});
diff --git a/tinyMCE/plugins/flash/langs/vi.js b/tinyMCE/plugins/flash/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b36ddf80321f4530d4a0bc2975232a3f7d32884
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/vi.js
@@ -0,0 +1,11 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('flash',{
+title : 'Thêm/sửa phim flash',
+desc : 'Thêm/sửa phim flash',
+file : 'File flash (.swf)',
+size : 'Kích thước',
+list : 'File flash',
+props : 'Thuộc tính flash',
+general : 'Chung'
+});
diff --git a/tinyMCE/plugins/flash/langs/zh_cn.js b/tinyMCE/plugins/flash/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..f8d306094dafb853b4918bac44c5213e823094a3
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/zh_cn.js
@@ -0,0 +1,12 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('flash',{
+title : '²åÈë/±à¼­ FlashµçÓ°',
+desc : 'FlashµçÓ°ÃèÊö',
+file : 'Flash²å¼þ(.swf)',
+size : '³ß´ç',
+list : 'Flash²å¼þÁбí',
+props : 'FlashÊôÐÔ',
+general : 'Ò»°ã'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/flash/langs/zh_cn_utf8.js b/tinyMCE/plugins/flash/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..1742ae201b42b6d1b5fac7e75277b6e82259c27c
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/zh_cn_utf8.js
@@ -0,0 +1,12 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('flash',{
+title : '插入/编辑 Flash电影',
+desc : 'Flash电影描述',
+file : 'Flash插件(.swf)',
+size : '尺寸',
+list : 'Flash插件列表',
+props : 'Flash属性',
+general : '一般'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/flash/langs/zh_tw.js b/tinyMCE/plugins/flash/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..31ae8b17f83e3267c68f58b8292a3465458c8b34
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/zh_tw.js
@@ -0,0 +1,12 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('flash',{
+title : '´¡¤J©Î½s¿è Flash °ÊµeÀÉ',
+desc : '´¡¤J©Î½s¿è Flash °ÊµeÀÉ',
+file : 'Flash °ÊµeÀÉ¡] .swf ¡^',
+size : '¤j¤p',
+list : 'Flash °ÊµeÀÉ',
+props : 'Flash °ÊµeÀÉÄÝ©Ê',
+general : '¤@¯ë'
+});
diff --git a/tinyMCE/plugins/flash/langs/zh_tw_utf8.js b/tinyMCE/plugins/flash/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..724f7f32eb0e8ce41ed14cf85018f17c0b35fc08
--- /dev/null
+++ b/tinyMCE/plugins/flash/langs/zh_tw_utf8.js
@@ -0,0 +1,12 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('flash',{
+title : '插入或編輯 Flash 動畫檔',
+desc : '插入或編輯 Flash 動畫檔',
+file : 'Flash 動畫檔( .swf )',
+size : '大小',
+list : 'Flash 動畫檔',
+props : 'Flash 動畫檔屬性',
+general : '一般'
+});
diff --git a/tinyMCE/plugins/flash/readme.txt b/tinyMCE/plugins/flash/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/flash/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/fullpage/blank.htm b/tinyMCE/plugins/fullpage/blank.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1e5876a278fd446901fdf6613edadb57b2673e95
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/blank.htm
@@ -0,0 +1,9 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>blank_page</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+</head>
+<body onload="parent.setupIframe(document);">
+
+</body>
+</html>
diff --git a/tinyMCE/plugins/fullpage/css/fullpage.css b/tinyMCE/plugins/fullpage/css/fullpage.css
new file mode 100644
index 0000000000000000000000000000000000000000..19f74f48bd5dcc110d9c42b827dff9b9856b497e
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/css/fullpage.css
@@ -0,0 +1,176 @@
+/* Hide the advanced tab */
+#advanced_tab {
+	display: none;
+}
+
+#metatitle, #metakeywords, #metadescription, #metaauthor, #metacopyright {
+	width: 280px;
+}
+
+#doctype, #docencoding {
+	width: 200px;
+}
+
+#langcode {
+	width: 30px;
+}
+
+#bgimage {
+	width: 220px;	
+}
+
+#fontface {
+	width: 240px;
+}
+
+#leftmargin, #rightmargin, #topmargin, #bottommargin {
+	width: 50px;
+}
+
+.panel_wrapper div.current {
+	height: 400px;
+}
+
+#stylesheet, #style {
+	width: 240px;
+}
+
+/* Head list classes */
+
+.headlistwrapper {
+	width: 100%;
+}
+
+.addbutton, .removebutton, .moveupbutton, .movedownbutton {
+	border-top: 1px solid;
+	border-left: 1px solid;
+	border-bottom: 1px solid;
+	border-right: 1px solid;
+	border-color: #F0F0EE;
+	cursor: default;
+	display: block;
+	width: 20px;
+	height: 20px;
+}
+
+.addbutton:hover, .removebutton:hover, .moveupbutton:hover, .movedownbutton:hover {
+	border: 1px solid #0A246A;
+	background-color: #B6BDD2;
+}
+
+.addbutton {
+	background-image: url('../images/add.gif');
+	float: left;
+	margin-right: 3px;
+}
+
+.removebutton {
+	background-image: url('../images/remove.gif');
+	float: left;
+}
+
+.moveupbutton {
+	background-image: url('../images/move_up.gif');
+	float: left;
+	margin-right: 3px;
+}
+
+.movedownbutton {
+	background-image: url('../images/move_down.gif');
+	float: left;
+}
+
+.selected {
+	border: 1px solid #0A246A;
+	background-color: #B6BDD2;
+}
+
+.toolbar {
+	width: 100%;
+}
+
+#headlist {
+	width: 100%;
+	margin-top: 3px;
+	font-size: 11px;
+}
+
+#info, #title_element, #meta_element, #script_element, #style_element, #base_element, #link_element, #comment_element, #unknown_element {
+	display: none;
+}
+
+#addmenu {
+	position: absolute;
+	border: 1px solid gray;
+	display: none;
+	z-index: 100;
+	background-color: white;
+}
+
+#addmenu a {
+	display: block;
+	width: 100%;
+	line-height: 20px;
+	text-decoration: none;
+	background-color: white;
+}
+
+#addmenu a:hover {
+	background-color: #B6BDD2;
+	color: black;
+}
+
+#addmenu span {
+	padding-left: 10px;
+	padding-right: 10px;
+}
+
+#updateElementPanel {
+	display: none;
+}
+
+#script_element .panel_wrapper div.current {
+	height: 108px;
+}
+
+#style_element .panel_wrapper div.current {
+	height: 108px;
+}
+
+#link_element  .panel_wrapper div.current {
+	height: 140px;
+}
+
+#element_script_value {
+	width: 100%;
+	height: 100px;
+}
+
+#element_comment_value {
+	width: 100%;
+	height: 120px;
+}
+
+#element_style_value {
+	width: 100%;
+	height: 100px;
+}
+
+#element_title, #element_script_src, #element_meta_name, #element_meta_content, #element_base_href, #element_link_href, #element_link_title {
+	width: 250px;
+}
+
+.updateElementButton {
+	margin-top: 3px;
+}
+
+/* MSIE specific styles */
+
+* html .addbutton, * html .removebutton, * html .moveupbutton, * html .movedownbutton {
+	width: 22px;
+	height: 22px;
+}
+
+textarea {
+	height: 55px;
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/fullpage/editor_plugin.js b/tinyMCE/plugins/fullpage/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e1eb516a67050405677793e98bd5af117848964
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('fullpage');var TinyMCE_FullPagePlugin={getInfo:function(){return{longname:'Fullpage',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"fullpage":return tinyMCE.getButtonHTML(cn,'lang_fullpage_desc','{$pluginurl}/images/fullpage.gif','mceFullPageProperties')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceFullPageProperties":var template=new Array();template['file']='../../plugins/fullpage/fullpage.htm';template['width']=430;template['height']=485+(tinyMCE.isOpera?5:0);template['width']+=tinyMCE.getLang('lang_fullpage_delta_width',0);template['height']+=tinyMCE.getLang('lang_fullpage_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;case"mceFullPageUpdate":TinyMCE_FullPagePlugin._addToHead(tinyMCE.getInstanceById(editor_id));return true}return false},cleanup:function(type,content,inst){switch(type){case"insert_to_editor":var tmp=content.toLowerCase();var pos=tmp.indexOf('<body'),pos2;if(pos!=-1){pos=tmp.indexOf('>',pos);pos2=tmp.lastIndexOf('</body>');inst.fullpageTopContent=content.substring(0,pos+1);content=content.substring(pos+1,pos2);}else{if(!inst.fullpageTopContent){var docType=tinyMCE.getParam("fullpage_default_doctype",'<!DOCTYPE html PUBLIC "-/'+'/W3C//DTD XHTML 1.0 Transitional/'+'/EN" "http:/'+'/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');var enc=tinyMCE.getParam("fullpage_default_encoding",'utf-8');var title=tinyMCE.getParam("fullpage_default_title",'Untitled document');var lang=tinyMCE.getParam("fullpage_default_langcode",'en');var pi=tinyMCE.getParam("fullpage_default_xml_pi",true);var ff=tinyMCE.getParam("fullpage_default_font_family","");var fz=tinyMCE.getParam("fullpage_default_font_size","");var ds=tinyMCE.getParam("fullpage_default_style","");var dtc=tinyMCE.getParam("fullpage_default_text_color","");title=title.replace(/&/g,'&amp;');title=title.replace(/\"/g,'&quot;');title=title.replace(/</g,'&lt;');title=title.replace(/>/g,'&gt;');tmp='';if(pi)tmp+='<?xml version="1.0" encoding="'+enc+'"?>\n';tmp+=docType+'\n';tmp+='<html xmlns="http:/'+'/www.w3.org/1999/xhtml" lang="'+lang+'" xml:lang="'+lang+'">\n';tmp+='<head>\n';tmp+='\t<title>'+title+'</title>\n';tmp+='\t<meta http-equiv="Content-Type" content="text/html; charset='+enc+'" />\n';tmp+='</head>\n';tmp+='<body';if(ff!=''||fz!=''){tmp+=' style="';if(ds!='')tmp+=ds+";";if(ff!='')tmp+='font-family: '+ff+";";if(fz!='')tmp+='font-size: '+fz+";";tmp+='"'}if(dtc!='')tmp+=' text="'+dtc+'"';tmp+='>\n';inst.fullpageTopContent=tmp}}this._addToHead(inst);break;case"get_from_editor":if(inst.fullpageTopContent&&!tinyMCE.getParam("fullpage_hide_in_source_view",false)){content=content.replace(/(\s)?mce\_[a-z_]+\=[^\s>]+(\s|\>)/i,'');content=inst.fullpageTopContent+content+"\n</body>\n</html>"}break;case"submit_content":if(inst.fullpageTopContent&&tinyMCE.getParam("fullpage_hide_in_source_view",false))content=inst.fullpageTopContent+content+"\n</body>\n</html>";break}return content},_addToHead:function(inst){var doc=inst.getDoc();var head=doc.getElementsByTagName("head")[0];var body=doc.body;var h=inst.fullpageTopContent;var e=doc.createElement("body");var nl,i,le,tmp;h=h.replace(/(\r|\n)/gi,'');h=h.replace(/<\?[^\>]*\>/gi,'');h=h.replace(/<\/?(!DOCTYPE|head|html)[^\>]*\>/gi,'');h=h.replace(/<script(.*?)<\/script>/gi,'');h=h.replace(/<title(.*?)<\/title>/gi,'');h=h.replace(/<(meta|base)[^>]*>/gi,'');h=h.replace(/<link([^>]*)\/>/gi,'<pre mce_type="link" $1></pre>');h=h.replace(/<body/gi,'<div mce_type="body"');h+='</div>';e.innerHTML=h;body.vLink=body.aLink=body.link=body.text='';body.style.cssText='';nl=head.getElementsByTagName('link');for(i=0;i<nl.length;i++){if(tinyMCE.getAttrib(nl[i],'mce_head')=="true")nl[i].parentNode.removeChild(nl[i])}nl=e.getElementsByTagName('pre');for(i=0;i<nl.length;i++){tmp=tinyMCE.getAttrib(nl[i],'media');if(tinyMCE.getAttrib(nl[i],'mce_type')=="link"&&(tmp==""||tmp=="screen"||tmp=="all")&&tinyMCE.getAttrib(nl[i],'rel')=="stylesheet"){le=doc.createElement("link");le.rel="stylesheet";le.href=tinyMCE.getAttrib(nl[i],'href');le.setAttribute("mce_head","true");head.appendChild(le)}}nl=e.getElementsByTagName('div');if(nl.length>0){body.style.cssText=tinyMCE.getAttrib(nl[0],'style');if((tmp=tinyMCE.getAttrib(nl[0],'leftmargin'))!=''&&body.style.marginLeft=='')body.style.marginLeft=tmp+"px";if((tmp=tinyMCE.getAttrib(nl[0],'rightmargin'))!=''&&body.style.marginRight=='')body.style.marginRight=tmp+"px";if((tmp=tinyMCE.getAttrib(nl[0],'topmargin'))!=''&&body.style.marginTop=='')body.style.marginTop=tmp+"px";if((tmp=tinyMCE.getAttrib(nl[0],'bottommargin'))!=''&&body.style.marginBottom=='')body.style.marginBottom=tmp+"px";body.dir=tinyMCE.getAttrib(nl[0],'dir');body.vLink=tinyMCE.getAttrib(nl[0],'vlink');body.aLink=tinyMCE.getAttrib(nl[0],'alink');body.link=tinyMCE.getAttrib(nl[0],'link');body.text=tinyMCE.getAttrib(nl[0],'text');if((tmp=tinyMCE.getAttrib(nl[0],'background'))!='')body.style.backgroundImage="url('"+tmp+"')";if((tmp=tinyMCE.getAttrib(nl[0],'bgcolor'))!='')body.style.backgroundColor=tmp}}};tinyMCE.addPlugin("fullpage",TinyMCE_FullPagePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/fullpage/editor_plugin_src.js b/tinyMCE/plugins/fullpage/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..8c618235591cf2d44958eb2aed6fe0d3a4bb64b1
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/editor_plugin_src.js
@@ -0,0 +1,235 @@
+/**
+ * $Id: editor_plugin_src.js 232 2007-03-05 17:00:27Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('fullpage');
+
+var TinyMCE_FullPagePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Fullpage',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "fullpage":
+				return tinyMCE.getButtonHTML(cn, 'lang_fullpage_desc', '{$pluginurl}/images/fullpage.gif', 'mceFullPageProperties');
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mceFullPageProperties":
+				var template = new Array();
+
+				template['file']   = '../../plugins/fullpage/fullpage.htm';
+				template['width']  = 430;
+				template['height'] = 485 + (tinyMCE.isOpera ? 5 : 0);
+
+				template['width'] += tinyMCE.getLang('lang_fullpage_delta_width', 0);
+				template['height'] += tinyMCE.getLang('lang_fullpage_delta_height', 0);
+
+				tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+			return true;
+
+			case "mceFullPageUpdate":
+				TinyMCE_FullPagePlugin._addToHead(tinyMCE.getInstanceById(editor_id));
+				return true;
+	   }
+
+	   // Pass to next handler in chain
+	   return false;
+	},
+
+	cleanup : function(type, content, inst) {
+		switch (type) {
+			case "insert_to_editor":
+				var tmp = content.toLowerCase();
+				var pos = tmp.indexOf('<body'), pos2;
+
+				// Split page in header and body chunks
+				if (pos != -1) {
+					pos = tmp.indexOf('>', pos);
+					pos2 = tmp.lastIndexOf('</body>');
+					inst.fullpageTopContent = content.substring(0, pos + 1);
+					content = content.substring(pos + 1, pos2);
+					// tinyMCE.debug(inst.fullpageTopContent, content);
+				} else {
+					if (!inst.fullpageTopContent) {
+						var docType = tinyMCE.getParam("fullpage_default_doctype", '<!DOCTYPE html PUBLIC "-/'+'/W3C//DTD XHTML 1.0 Transitional/'+'/EN" "http:/'+'/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
+						var enc = tinyMCE.getParam("fullpage_default_encoding", 'utf-8');
+						var title = tinyMCE.getParam("fullpage_default_title", 'Untitled document');
+						var lang = tinyMCE.getParam("fullpage_default_langcode", 'en');
+						var pi = tinyMCE.getParam("fullpage_default_xml_pi", true);
+						var ff = tinyMCE.getParam("fullpage_default_font_family", "");
+						var fz = tinyMCE.getParam("fullpage_default_font_size", "");
+						var ds = tinyMCE.getParam("fullpage_default_style", "");
+						var dtc = tinyMCE.getParam("fullpage_default_text_color", "");
+
+						// Xml encode it
+						title = title.replace(/&/g, '&amp;');
+						title = title.replace(/\"/g, '&quot;');
+						title = title.replace(/</g, '&lt;');
+						title = title.replace(/>/g, '&gt;');
+
+						tmp = '';
+
+						// Make default chunk
+						if (pi)
+							tmp += '<?xml version="1.0" encoding="' + enc + '"?>\n';
+
+						tmp += docType + '\n';
+						tmp += '<html xmlns="http:/'+'/www.w3.org/1999/xhtml" lang="' + lang + '" xml:lang="' + lang + '">\n';
+						tmp += '<head>\n';
+						tmp += '\t<title>' + title + '</title>\n';
+						tmp += '\t<meta http-equiv="Content-Type" content="text/html; charset=' + enc + '" />\n';
+						tmp += '</head>\n';
+						tmp += '<body';
+
+						if (ff != '' || fz != '') {
+							tmp += ' style="';
+
+							if (ds != '')
+								tmp += ds + ";";
+
+							if (ff != '')
+								tmp += 'font-family: ' + ff + ";";
+
+							if (fz != '')
+								tmp += 'font-size: ' + fz + ";";
+
+							tmp += '"';
+						}
+
+						if (dtc != '')
+							tmp += ' text="' + dtc + '"';
+
+						tmp += '>\n';
+
+						inst.fullpageTopContent = tmp;
+					}
+				}
+
+				this._addToHead(inst);
+
+				break;
+
+			case "get_from_editor":
+				if (inst.fullpageTopContent && !tinyMCE.getParam("fullpage_hide_in_source_view", false)) {
+					content = content.replace(/(\s)?mce\_[a-z_]+\=[^\s>]+(\s|\>)/i, ''); // Remove internal stuff
+					content = inst.fullpageTopContent + content + "\n</body>\n</html>";
+				}
+
+				break;
+
+			case "submit_content":
+				if (inst.fullpageTopContent && tinyMCE.getParam("fullpage_hide_in_source_view", false))
+					content = inst.fullpageTopContent + content + "\n</body>\n</html>";
+
+				break;
+		}
+
+		// Pass through to next handler in chain
+		return content;
+	},
+
+	// Private plugin internal methods
+
+	_addToHead : function(inst) {
+		var doc = inst.getDoc();
+		var head = doc.getElementsByTagName("head")[0];
+		var body = doc.body;
+		var h = inst.fullpageTopContent;
+		var e = doc.createElement("body");
+		var nl, i, le, tmp;
+
+		// Remove stuff we don't want
+		h = h.replace(/(\r|\n)/gi, '');
+		h = h.replace(/<\?[^\>]*\>/gi, '');
+		h = h.replace(/<\/?(!DOCTYPE|head|html)[^\>]*\>/gi, '');
+		h = h.replace(/<script(.*?)<\/script>/gi, '');
+		h = h.replace(/<title(.*?)<\/title>/gi, '');
+		h = h.replace(/<(meta|base)[^>]*>/gi, '');
+
+		// Make link and style elements into pre
+		h = h.replace(/<link([^>]*)\/>/gi, '<pre mce_type="link" $1></pre>');
+		//h = h.replace(/<style([^>]*)>(.*?)<\/style>/gi, '<pre mce_type="style" $1>$2</pre>');
+
+		// Make body a div
+		h = h.replace(/<body/gi, '<div mce_type="body"');
+		h += '</div>';
+
+		// Now crapy MSIE can parse it
+		e.innerHTML = h;
+
+		// Reset all body attributes
+		body.vLink = body.aLink = body.link = body.text = '';
+		body.style.cssText = '';
+
+		// Delete all old links
+		nl = head.getElementsByTagName('link');
+		for (i=0; i<nl.length; i++) {
+			if (tinyMCE.getAttrib(nl[i], 'mce_head') == "true")
+				nl[i].parentNode.removeChild(nl[i]);
+		}
+
+		// Add link elements
+		nl = e.getElementsByTagName('pre');
+		for (i=0; i<nl.length; i++) {
+			tmp = tinyMCE.getAttrib(nl[i], 'media');
+			if (tinyMCE.getAttrib(nl[i], 'mce_type') == "link" && (tmp == "" || tmp == "screen" || tmp == "all") && tinyMCE.getAttrib(nl[i], 'rel') == "stylesheet") {
+				le = doc.createElement("link");
+
+				le.rel = "stylesheet";
+				le.href = tinyMCE.getAttrib(nl[i], 'href');
+				le.setAttribute("mce_head", "true");
+
+				head.appendChild(le);
+			}
+		}
+
+		// Add body attributes
+		nl = e.getElementsByTagName('div');
+		if (nl.length > 0) {
+			body.style.cssText = tinyMCE.getAttrib(nl[0], 'style');
+
+			if ((tmp = tinyMCE.getAttrib(nl[0], 'leftmargin')) != '' && body.style.marginLeft == '')
+				body.style.marginLeft = tmp + "px";
+
+			if ((tmp = tinyMCE.getAttrib(nl[0], 'rightmargin')) != '' && body.style.marginRight == '')
+				body.style.marginRight = tmp + "px";
+
+			if ((tmp = tinyMCE.getAttrib(nl[0], 'topmargin')) != '' && body.style.marginTop == '')
+				body.style.marginTop = tmp + "px";
+
+			if ((tmp = tinyMCE.getAttrib(nl[0], 'bottommargin')) != '' && body.style.marginBottom == '')
+				body.style.marginBottom = tmp + "px";
+
+			body.dir = tinyMCE.getAttrib(nl[0], 'dir');
+			body.vLink = tinyMCE.getAttrib(nl[0], 'vlink');
+			body.aLink = tinyMCE.getAttrib(nl[0], 'alink');
+			body.link = tinyMCE.getAttrib(nl[0], 'link');
+			body.text = tinyMCE.getAttrib(nl[0], 'text');
+
+			if ((tmp = tinyMCE.getAttrib(nl[0], 'background')) != '')
+				body.style.backgroundImage = "url('" + tmp + "')";
+
+			if ((tmp = tinyMCE.getAttrib(nl[0], 'bgcolor')) != '')
+				body.style.backgroundColor = tmp;
+		}
+	}
+};
+
+tinyMCE.addPlugin("fullpage", TinyMCE_FullPagePlugin);
diff --git a/tinyMCE/plugins/fullpage/fullpage.htm b/tinyMCE/plugins/fullpage/fullpage.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2781581ffcbb57e11a83170588c67eb183de29b9
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/fullpage.htm
@@ -0,0 +1,577 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_fullpage_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mclayer.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/fullpage.js"></script>
+	<link href="css/fullpage.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body id="advlink" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+    <form onsubmit="updateAction();return false;" name="fullpage" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="meta_tab" class="current"><span><a href="javascript:mcTabs.displayTab('meta_tab','meta_panel');" onmousedown="return false;">{$lang_fullpage_meta_tab}</a></span></li>
+				<li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{$lang_fullpage_appearance_tab}</a></span></li>
+				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_fullpage_advanced_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="meta_panel" class="panel current">
+				<fieldset>
+					<legend>{$lang_fullpage_meta_props}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td nowrap="nowrap"><label for="metatitle">{$lang_fullpage_meta_title}</label>&nbsp;</td>
+							<td><input type="text" id="metatitle" name="metatitle" value="" /></td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label for="metakeywords">{$lang_fullpage_meta_keywords}</label>&nbsp;</td>
+							<td><textarea id="metakeywords" name="metakeywords" rows="4"></textarea></td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label for="metadescription">{$lang_fullpage_meta_description}</label>&nbsp;</td>
+							<td><textarea id="metadescription" name="metadescription" rows="4"></textarea></td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label for="metaauthor">{$lang_fullpage_author}</label>&nbsp;</td>
+							<td><input type="text" id="metaauthor" name="metaauthor" value="" /></td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label for="metacopyright">{$lang_fullpage_copyright}</label>&nbsp;</td>
+							<td><input type="text" id="metacopyright" name="metacopyright" value="" /></td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label for="metarobots">{$lang_fullpage_meta_robots}</label>&nbsp;</td>
+							<td>
+<select id="metarobots" name="metarobots">
+			<option value="">{$lang_not_set}</option> 
+			<option value="index,follow">{$lang_fullpage_meta_index_follow}</option>
+			<option value="index,nofollow">{$lang_fullpage_meta_index_nofollow}</option>
+			<option value="noindex,follow">{$lang_fullpage_meta_noindex_follow}</option>
+			<option value="noindex,nofollow">{$lang_fullpage_meta_noindex_nofollow}</option>
+</select>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{$lang_fullpage_langprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="docencoding">{$lang_fullpage_encoding}</label></td> 
+							<td>
+								<select id="docencoding" name="docencoding"> 
+										<option value="">{$lang_not_set}</option>
+								</select>
+							</td> 
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label for="doctypes">{$lang_fullpage_doctypes}</label>&nbsp;</td>
+							<td>
+								<select id="doctypes" name="doctypes">
+										<option value="">{$lang_not_set}</option>
+								</select>
+							</td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label for="langcode">{$lang_fullpage_langcode}</label>&nbsp;</td>
+							<td><input type="text" id="langcode" name="langcode" value="" /></td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="langdir">{$lang_fullpage_langdir}</label></td> 
+							<td>
+								<select id="langdir" name="langdir"> 
+										<option value="">{$lang_not_set}</option> 
+										<option value="ltr">{$lang_fullpage_ltr}</option> 
+										<option value="rtl">{$lang_fullpage_rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+						<tr>
+							<td nowrap="nowrap"><label for="xml_pi">{$lang_fullpage_xml_pi}</label>&nbsp;</td>
+							<td><input type="checkbox" id="xml_pi" name="xml_pi" class="checkbox" /></td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="appearance_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_fullpage_appearance_textprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="fontface">{$lang_fullpage_fontface}</label></td> 
+							<td>
+								<select id="fontface" name="fontface" onchange="changedStyleField(this);">
+										<option value="">{$lang_not_set}</option>
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="fontsize">{$lang_fullpage_fontsize}</label></td> 
+							<td>
+								<select id="fontsize" name="fontsize" onchange="changedStyleField(this);">
+										<option value="">{$lang_not_set}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="textcolor">{$lang_fullpage_textcolor}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="textcolor" name="textcolor" type="text" value="" size="9" onchange="updateColor('textcolor_pick','textcolor');changedStyleField(this);" /></td>
+										<td id="textcolor_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{$lang_fullpage_appearance_bgprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="bgimage">{$lang_fullpage_bgimage}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgimage" name="bgimage" type="text" value="" onchange="changedStyleField(this);" /></td>
+										<td id="bgimage_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="bgcolor">{$lang_fullpage_bgcolor}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedStyleField(this);" /></td>
+										<td id="bgcolor_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{$lang_fullpage_appearance_marginprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="leftmargin">{$lang_fullpage_left_margin}</label></td> 
+							<td><input id="leftmargin" name="leftmargin" type="text" value="" onchange="changedStyleField(this);" /></td>
+							<td class="column1"><label for="rightmargin">{$lang_fullpage_right_margin}</label></td> 
+							<td><input id="rightmargin" name="rightmargin" type="text" value="" onchange="changedStyleField(this);" /></td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="topmargin">{$lang_fullpage_top_margin}</label></td> 
+							<td><input id="topmargin" name="topmargin" type="text" value="" onchange="changedStyleField(this);" /></td>
+							<td class="column1"><label for="bottommargin">{$lang_fullpage_bottom_margin}</label></td> 
+							<td><input id="bottommargin" name="bottommargin" type="text" value="" onchange="changedStyleField(this);" /></td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{$lang_fullpage_appearance_linkprops}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="link_color">{$lang_fullpage_link_color}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="link_color" name="link_color" type="text" value="" size="9" onchange="updateColor('link_color_pick','link_color');changedStyleField(this);" /></td>
+										<td id="link_color_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td>
+
+							<td class="column1"><label for="visited_color">{$lang_fullpage_visited_color}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="visited_color" name="visited_color" type="text" value="" size="9" onchange="updateColor('visited_color_pick','visited_color');changedStyleField(this);" /></td>
+										<td id="visited_color_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="active_color">{$lang_fullpage_active_color}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="active_color" name="active_color" type="text" value="" size="9" onchange="updateColor('active_color_pick','active_color');changedStyleField(this);" /></td>
+										<td id="active_color_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td>
+
+							<td>&nbsp;</td>
+							<td>&nbsp;</td>
+
+<!--							<td class="column1"><label for="hover_color">{$lang_fullpage_hover_color}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="hover_color" name="hover_color" type="text" value="" size="9" onchange="changedStyleField(this);" /></td>
+										<td id="hover_color_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> -->
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{$lang_fullpage_appearance_style}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="stylesheet">{$lang_fullpage_stylesheet}</label></td> 
+							<td><table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="stylesheet" name="stylesheet" type="text" value="" /></td>
+										<td id="stylesheet_browsercontainer">&nbsp;</td>
+									</tr>
+								</table></td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="style">{$lang_fullpage_style}</label></td> 
+							<td><input id="style" name="style" type="text" value="" onchange="changedStyleField(this);" /></td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<div id="addmenu">
+					<table border="0" cellpadding="0" cellspacing="0">
+						<tr><td><a href="javascript:addHeadElm('title');" onmousedown="return false;"><span>{$lang_fullpage_add_title}</span></a></td></tr>
+						<tr><td><a href="javascript:addHeadElm('meta');" onmousedown="return false;"><span>{$lang_fullpage_add_meta}</span></a></td></tr>
+						<tr><td><a href="javascript:addHeadElm('script');" onmousedown="return false;"><span>{$lang_fullpage_add_script}</span></a></td></tr>
+						<tr><td><a href="javascript:addHeadElm('style');" onmousedown="return false;"><span>{$lang_fullpage_add_style}</span></a></td></tr>
+						<tr><td><a href="javascript:addHeadElm('link');" onmousedown="return false;"><span>{$lang_fullpage_add_link}</span></a></td></tr>
+						<tr><td><a href="javascript:addHeadElm('base');" onmousedown="return false;"><span>{$lang_fullpage_add_base}</span></a></td></tr>
+						<tr><td><a href="javascript:addHeadElm('comment');" onmousedown="return false;"><span>{$lang_fullpage_add_comment}</span></a></td></tr>
+					</table>
+				</div>
+
+				<fieldset>
+					<legend>{$lang_fullpage_head_elements}</legend>
+
+					<div class="headlistwrapper">
+						<div class="toolbar">
+							<div style="float: left">
+								<a id="addbutton" href="javascript:showAddMenu();" onmousedown="return false;" class="addbutton" title="{$lang_fullpage_add}"></a>
+								<a href="#" onmousedown="return false;" class="removebutton" title="{$lang_fullpage_remove}"></a>
+							</div>
+							<div style="float: right">
+								<a href="#" onmousedown="return false;" class="moveupbutton" title="{$lang_fullpage_moveup}"></a>
+								<a href="#" onmousedown="return false;" class="movedownbutton" title="{$lang_fullpage_movedown}"></a>
+							</div>
+							<br style="clear: both" />
+						</div>
+						<select id="headlist" size="26" onchange="updateHeadElm(this.options[this.selectedIndex].value);">
+							<option value="title_0">&lt;title&gt;Some title bla bla bla&lt;/title&gt;</option>
+							<option value="meta_1">&lt;meta name="keywords"&gt;Some bla bla bla&lt;/meta&gt;</option>
+							<option value="meta_2">&lt;meta name="description"&gt;Some bla bla bla bla bla bla bla bla bla&lt;/meta&gt;</option>
+							<option value="script_3">&lt;script language=&quot;javascript&quot;&gt;...&lt;/script&gt;</option>
+							<option value="style_4">&lt;style&gt;...&lt;/style&gt;</option>
+							<option value="base_5">&lt;base href="." /&gt;</option>
+							<option value="comment_6">&lt;!-- ... --&gt;</option>
+							<option value="link_7">&lt;link href="." /&gt;</option>
+						</select>
+					</div>
+				</fieldset>
+
+				<fieldset id="meta_element">
+					<legend>{$lang_fullpage_meta_element}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="element_meta_type">{$lang_fullpage_type}</label></td> 
+							<td><select id="element_meta_type">
+										<option value="name">name</option>
+										<option value="http-equiv">http-equiv</option>
+								</select></td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="element_meta_name">{$lang_fullpage_name}</label></td> 
+							<td><input id="element_meta_name" name="element_meta_name" type="text" value="" /></td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="element_meta_content">{$lang_fullpage_content}</label></td> 
+							<td><input id="element_meta_content" name="element_meta_content" type="text" value="" /></td>
+						</tr>
+					</table>
+
+					<input type="button" id="meta_updateelement" class="updateElementButton" name="update" value="{$lang_update}" onclick="updateElement();" />
+				</fieldset>
+
+				<fieldset id="title_element">
+					<legend>{$lang_fullpage_title_element}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="element_title">{$lang_fullpage_meta_title}</label></td> 
+							<td><input id="element_title" name="element_title" type="text" value="" /></td>
+						</tr>
+					</table>
+
+					<input type="button" id="title_updateelement" class="updateElementButton" name="update" value="{$lang_update}" onclick="updateElement();" />
+				</fieldset>
+
+				<fieldset id="script_element">
+					<legend>{$lang_fullpage_script_element}</legend>
+
+					<div class="tabs">
+						<ul>
+							<li id="script_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('script_props_tab','script_props_panel');" onmousedown="return false;">{$lang_fullpage_properties}</a></span></li>
+							<li id="script_value_tab"><span><a href="javascript:mcTabs.displayTab('script_value_tab','script_value_panel');" onmousedown="return false;">{$lang_fullpage_value}</a></span></li>
+						</ul>
+					</div>
+
+					<br style="clear: both" />
+
+					<div class="panel_wrapper">
+						<div id="script_props_panel" class="panel current">
+							<table border="0" cellpadding="4" cellspacing="0">
+								<tr>
+									<td class="column1"><label for="element_script_type">{$lang_fullpage_type}</label></td> 
+									<td><select id="element_script_type">
+										<option value="text/javascript">text/javascript</option>
+										<option value="text/jscript">text/jscript</option>
+										<option value="text/vbscript">text/vbscript</option>
+										<option value="text/vbs">text/vbs</option>
+										<option value="text/ecmascript">text/ecmascript</option>
+										<option value="text/xml">text/xml</option>
+									</select></td>
+								</tr>
+								<tr>
+									<td class="column1"><label for="element_script_src">{$lang_fullpage_src}</label></td> 
+									<td><table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="element_script_src" name="element_script_src" type="text" value="" /></td>
+										<td id="script_src_pickcontainer">&nbsp;</td>
+									</tr>
+								</table></td>
+								</tr>
+								<tr>
+									<td class="column1"><label for="element_script_charset">{$lang_fullpage_charset}</label></td> 
+									<td><select id="element_script_charset"><option value="">{$lang_not_set}</option></select></td>
+								</tr>
+								<tr>
+									<td class="column1"><label for="element_script_defer">{$lang_fullpage_defer}</label></td> 
+									<td><input type="checkbox" id="element_script_defer" name="element_script_defer" class="checkbox" /></td>
+								</tr>
+							</table>
+						</div>
+
+						<div id="script_value_panel" class="panel">
+							<textarea id="element_script_value"></textarea>
+						</div>
+					</div>
+
+					<input type="button" id="script_updateelement" class="updateElementButton" name="update" value="{$lang_update}" onclick="updateElement();" />
+				</fieldset>
+
+				<fieldset id="style_element">
+					<legend>{$lang_fullpage_style_element}</legend>
+
+					<div class="tabs">
+						<ul>
+							<li id="style_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('style_props_tab','style_props_panel');" onmousedown="return false;">{$lang_fullpage_properties}</a></span></li>
+							<li id="style_value_tab"><span><a href="javascript:mcTabs.displayTab('style_value_tab','style_value_panel');" onmousedown="return false;">{$lang_fullpage_value}</a></span></li>
+						</ul>
+					</div>
+
+					<br style="clear: both" />
+
+					<div class="panel_wrapper">
+						<div id="style_props_panel" class="panel current">
+							<table border="0" cellpadding="4" cellspacing="0">
+								<tr>
+									<td class="column1"><label for="element_style_type">{$lang_fullpage_type}</label></td> 
+									<td><select id="element_style_type">
+										<option value="text/css">text/css</option>
+									</select></td>
+								</tr>
+								<tr>
+									<td class="column1"><label for="element_style_media">{$lang_fullpage_media}</label></td> 
+									<td><select id="element_style_media"></select></td>
+								</tr>
+							</table>
+						</div>
+
+						<div id="style_value_panel" class="panel">
+							<textarea id="element_style_value"></textarea>
+						</div>
+					</div>
+
+					<input type="button" id="style_updateelement" class="updateElementButton" name="update" value="{$lang_update}" onclick="updateElement();" />
+				</fieldset>
+
+				<fieldset id="base_element">
+					<legend>{$lang_fullpage_base_element}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td class="column1"><label for="element_base_href">{$lang_fullpage_href}</label></td> 
+							<td><input id="element_base_href" name="element_base_href" type="text" value="" /></td>
+						</tr>
+						<tr>
+							<td class="column1"><label for="element_base_target">{$lang_fullpage_target}</label></td> 
+							<td><input id="element_base_target" name="element_base_target" type="text" value="" /></td>
+						</tr>
+					</table>
+
+					<input type="button" id="base_updateelement" class="updateElementButton" name="update" value="{$lang_update}" onclick="updateElement();" />
+				</fieldset>
+
+				<fieldset id="link_element">
+					<legend>{$lang_fullpage_link_element}</legend>
+
+					<div class="tabs">
+						<ul>
+							<li id="link_general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('link_general_tab','link_general_panel');" onmousedown="return false;">{$lang_fullpage_general_props}</a></span></li>
+							<li id="link_advanced_tab"><span><a href="javascript:mcTabs.displayTab('link_advanced_tab','link_advanced_panel');" onmousedown="return false;">{$lang_fullpage_advanced_props}</a></span></li>
+						</ul>
+					</div>
+
+					<br style="clear: both" />
+
+					<div class="panel_wrapper">
+						<div id="link_general_panel" class="panel current">
+							<table border="0" cellpadding="4" cellspacing="0">
+								<tr>
+									<td class="column1"><label for="element_link_href">{$lang_fullpage_href}</label></td> 
+									<td><table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="element_link_href" name="element_link_href" type="text" value="" /></td>
+										<td id="link_href_pickcontainer">&nbsp;</td>
+									</tr>
+								</table></td>
+								</tr>
+								<tr>
+									<td class="column1"><label for="element_link_title">{$lang_fullpage_meta_title}</label></td> 
+									<td><input id="element_link_title" name="element_link_title" type="text" value="" /></td>
+								</tr>
+								<tr>
+									<td class="column1"><label for="element_link_type">{$lang_fullpage_type}</label></td> 
+									<td><select id="element_link_type" name="element_link_type">
+										<option value="text/css">text/css</option>
+										<option value="text/javascript">text/javascript</option>
+									</select></td>
+								</tr>
+								<tr>
+									<td class="column1"><label for="element_link_media">{$lang_fullpage_media}</label></td> 
+									<td><select id="element_link_media" name="element_link_media"></select></td>
+								</tr>
+								<tr>
+									<td><label for="element_style_rel">{$lang_fullpage_rel}</label></td>
+									<td><select id="element_style_rel" name="element_style_rel"> 
+											<option value="">{$lang_not_set}</option> 
+											<option value="stylesheet">Stylesheet</option>
+											<option value="alternate">Alternate</option>
+											<option value="designates">Designates</option>
+											<option value="start">Start</option>
+											<option value="next">Next</option>
+											<option value="prev">Prev</option>
+											<option value="contents">Contents</option>
+											<option value="index">Index</option>
+											<option value="glossary">Glossary</option>
+											<option value="copyright">Copyright</option>
+											<option value="chapter">Chapter</option>
+											<option value="subsection">Subsection</option>
+											<option value="appendix">Appendix</option>
+											<option value="help">Help</option>
+											<option value="bookmark">Bookmark</option>
+										</select> 
+									</td>
+								</tr>
+							</table>
+						</div>
+
+						<div id="link_advanced_panel" class="panel">
+							<table border="0" cellpadding="4" cellspacing="0">
+								<tr>
+									<td class="column1"><label for="element_link_charset">{$lang_fullpage_charset}</label></td> 
+									<td><select id="element_link_charset"><option value="">{$lang_not_set}</option></select></td>
+								</tr>
+								<tr>
+									<td class="column1"><label for="element_link_hreflang">{$lang_fullpage_hreflang}</label></td> 
+									<td><input id="element_link_hreflang" name="element_link_hreflang" type="text" value="" /></td>
+								</tr>
+								<tr>
+									<td class="column1"><label for="element_link_target">{$lang_fullpage_target}</label></td> 
+									<td><input id="element_link_target" name="element_link_target" type="text" value="" /></td>
+								</tr>
+								<tr>
+									<td><label for="element_style_rev">{$lang_fullpage_rev}</label></td>
+									<td><select id="element_style_rev" name="element_style_rev"> 
+											<option value="">{$lang_not_set}</option> 
+											<option value="alternate">Alternate</option> 
+											<option value="designates">Designates</option> 
+											<option value="stylesheet">Stylesheet</option> 
+											<option value="start">Start</option> 
+											<option value="next">Next</option> 
+											<option value="prev">Prev</option> 
+											<option value="contents">Contents</option> 
+											<option value="index">Index</option> 
+											<option value="glossary">Glossary</option> 
+											<option value="copyright">Copyright</option> 
+											<option value="chapter">Chapter</option> 
+											<option value="subsection">Subsection</option> 
+											<option value="appendix">Appendix</option> 
+											<option value="help">Help</option> 
+											<option value="bookmark">Bookmark</option> 
+										</select> 
+									</td>
+								</tr>
+							</table>
+						</div>
+					</div>
+
+					<input type="button" id="link_updateelement" class="updateElementButton" name="update" value="{$lang_update}" onclick="updateElement();" />
+				</fieldset>
+
+				<fieldset id="comment_element">
+					<legend>{$lang_fullpage_comment_element}</legend>
+
+					<textarea id="element_comment_value"></textarea>
+
+					<input type="button" id="comment_updateelement" class="updateElementButton" name="update" value="{$lang_update}" onclick="updateElement();" />
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div style="float: left">
+				<input type="button" id="insert" name="update" value="{$lang_update}" onclick="updateAction();" />
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+    </form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/fullpage/images/add.gif b/tinyMCE/plugins/fullpage/images/add.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d6291d97d06d183e7c232652ba356c6b842d7d9a
Binary files /dev/null and b/tinyMCE/plugins/fullpage/images/add.gif differ
diff --git a/tinyMCE/plugins/fullpage/images/fullpage.gif b/tinyMCE/plugins/fullpage/images/fullpage.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1ddefcd1fa10c5be38b06588166fb623e8bb5d5f
Binary files /dev/null and b/tinyMCE/plugins/fullpage/images/fullpage.gif differ
diff --git a/tinyMCE/plugins/fullpage/images/move_down.gif b/tinyMCE/plugins/fullpage/images/move_down.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5bec71fffccb6a29968683ff723186351413cca9
Binary files /dev/null and b/tinyMCE/plugins/fullpage/images/move_down.gif differ
diff --git a/tinyMCE/plugins/fullpage/images/move_up.gif b/tinyMCE/plugins/fullpage/images/move_up.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2f489c909e4609157fcfec8474bd018080a5efeb
Binary files /dev/null and b/tinyMCE/plugins/fullpage/images/move_up.gif differ
diff --git a/tinyMCE/plugins/fullpage/images/remove.gif b/tinyMCE/plugins/fullpage/images/remove.gif
new file mode 100644
index 0000000000000000000000000000000000000000..299c684efcd7acc388fd1ebc6c8155c2154177d5
Binary files /dev/null and b/tinyMCE/plugins/fullpage/images/remove.gif differ
diff --git a/tinyMCE/plugins/fullpage/jscripts/fullpage.js b/tinyMCE/plugins/fullpage/jscripts/fullpage.js
new file mode 100644
index 0000000000000000000000000000000000000000..b20e77c054535bcdf92666dfc52cf73edca42a0c
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/jscripts/fullpage.js
@@ -0,0 +1,580 @@
+//
+
+var defaultDocTypes = 
+	'XHTML 1.0 Transitional=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,' +
+	'XHTML 1.0 Frameset=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">,' +
+	'XHTML 1.0 Strict=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,' +
+	'XHTML 1.1=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">,' +
+	'HTML 4.01 Transitional=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,' +
+	'HTML 4.01 Strict=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">,' +
+	'HTML 4.01 Frameset=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">';
+
+var defaultEncodings = 
+	'Western european (iso-8859-1)=iso-8859-1,' +
+	'Central European (iso-8859-2)=iso-8859-2,' +
+	'Unicode (UTF-8)=utf-8,' +
+	'Chinese traditional (Big5)=big5,' +
+	'Cyrillic (iso-8859-5)=iso-8859-5,' +
+	'Japanese (iso-2022-jp)=iso-2022-jp,' +
+	'Greek (iso-8859-7)=iso-8859-7,' +
+	'Korean (iso-2022-kr)=iso-2022-kr,' +
+	'ASCII (us-ascii)=us-ascii';
+
+var defaultMediaTypes = 
+	'all=all,' +
+	'screen=screen,' +
+	'print=print,' +
+	'tty=tty,' +
+	'tv=tv,' +
+	'projection=projection,' +
+	'handheld=handheld,' +
+	'braille=braille,' +
+	'aural=aural';
+
+var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';
+var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px';
+
+var addMenuLayer = new MCLayer("addmenu");
+var lastElementType = null;
+var topDoc;
+
+function init() {
+	var f = document.forms['fullpage'];
+	var i, p, doctypes, encodings, mediaTypes, fonts;
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+
+	// Setup doctype select box
+	doctypes = tinyMCE.getParam("fullpage_doctypes", defaultDocTypes).split(',');
+	for (i=0; i<doctypes.length; i++) {
+		p = doctypes[i].split('=');
+
+		if (p.length > 1)
+			addSelectValue(f, 'doctypes', p[0], p[1]);
+	}
+
+	// Setup fonts select box
+	fonts = tinyMCE.getParam("fullpage_fonts", defaultFontNames).split(';');
+	for (i=0; i<fonts.length; i++) {
+		p = fonts[i].split('=');
+
+		if (p.length > 1)
+			addSelectValue(f, 'fontface', p[0], p[1]);
+	}
+
+	// Setup fontsize select box
+	fonts = tinyMCE.getParam("fullpage_fontsizes", defaultFontSizes).split(',');
+	for (i=0; i<fonts.length; i++)
+		addSelectValue(f, 'fontsize', fonts[i], fonts[i]);
+
+	// Setup mediatype select boxs
+	mediaTypes = tinyMCE.getParam("fullpage_media_types", defaultMediaTypes).split(',');
+	for (i=0; i<mediaTypes.length; i++) {
+		p = mediaTypes[i].split('=');
+
+		if (p.length > 1) {
+			addSelectValue(f, 'element_style_media', p[0], p[1]);
+			addSelectValue(f, 'element_link_media', p[0], p[1]);
+		}
+	}
+
+	// Setup encodings select box
+	encodings = tinyMCE.getParam("fullpage_encodings", defaultEncodings).split(',');
+	for (i=0; i<encodings.length; i++) {
+		p = encodings[i].split('=');
+
+		if (p.length > 1) {
+			addSelectValue(f, 'docencoding', p[0], p[1]);
+			addSelectValue(f, 'element_script_charset', p[0], p[1]);
+			addSelectValue(f, 'element_link_charset', p[0], p[1]);
+		}
+	}
+
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+	document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color');
+	//document.getElementById('hover_color_pickcontainer').innerHTML = getColorPickerHTML('hover_color_pick','hover_color');
+	document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color');
+	document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color');
+	document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor');
+	document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage');
+	document.getElementById('link_href_pickcontainer').innerHTML = getBrowserHTML('link_href_browser','element_link_href','file','fullpage');
+	document.getElementById('script_src_pickcontainer').innerHTML = getBrowserHTML('script_src_browser','element_script_src','file','fullpage');
+	document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage');
+
+	// Resize some elements
+	if (isVisible('stylesheetbrowser'))
+		document.getElementById('stylesheet').style.width = '220px';
+
+	if (isVisible('link_href_browser'))
+		document.getElementById('element_link_href').style.width = '230px';
+
+	if (isVisible('bgimage_browser'))
+		document.getElementById('bgimage').style.width = '210px';
+
+	// Create iframe
+	var iframe = document.createElement('iframe');
+
+	iframe.id = 'tempFrame';
+	iframe.style.display = 'none';
+	iframe.src = tinyMCE.baseURL + "/plugins/fullpage/blank.htm";
+
+	document.body.appendChild(iframe);
+
+	tinyMCEPopup.resizeToInnerSize();
+}
+
+function setupIframe(doc) {
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var hc = inst.fullpageTopContent;
+	var f = document.forms[0];
+	var xmlVer, xmlEnc, docType;
+	var nodes, i, x, name, value, tmp, l;
+
+	// Keep it from not loading/executing stuff
+	hc = hc.replace(/<script>/gi, '<script type="text/javascript">');
+	hc = hc.replace(/\ssrc=/gi, " mce_src=");
+	hc = hc.replace(/\shref=/gi, " mce_href=");
+	hc = hc.replace(/\stype=/gi, " mce_type=");
+	hc = hc.replace(/<script/gi, '<script type="text/unknown" ');
+
+	// Add end to make it DOM parseable
+	hc += '</body></html>';
+
+	topDoc = doc;
+	doc.open();
+	doc.write(hc);
+	doc.close();
+
+	// ------- Setup options for genral tab
+
+	// Parse xml and doctype
+	xmlVer = getReItem(/<\?\s*?xml.*?version\s*?=\s*?"(.*?)".*?\?>/gi, hc, 1);
+	xmlEnc = getReItem(/<\?\s*?xml.*?encoding\s*?=\s*?"(.*?)".*?\?>/gi, hc, 1);
+	docType = getReItem(/<\!DOCTYPE.*?>/gi, hc, 0);
+	f.langcode.value = getReItem(/lang="(.*?)"/gi, hc, 1);
+
+	// Get title
+	f.metatitle.value = tinyMCE.entityDecode(getReItem(/<title>(.*?)<\/title>/gi, hc, 1));
+
+	// Check for meta encoding
+	nodes = doc.getElementsByTagName("meta");
+	for (i=0; i<nodes.length; i++) {
+		name = tinyMCE.getAttrib(nodes[i], 'name');
+		value = tinyMCE.getAttrib(nodes[i], 'content');
+		httpEquiv = tinyMCE.getAttrib(nodes[i], 'httpEquiv');
+
+		switch (name.toLowerCase()) {
+			case "keywords":
+				f.metakeywords.value = value;
+				break;
+
+			case "description":
+				f.metadescription.value = value;
+				break;
+
+			case "author":
+				f.metaauthor.value = value;
+				break;
+
+			case "copyright":
+				f.metacopyright.value = value;
+				break;
+
+			case "robots":
+				selectByValue(f, 'metarobots', value, true, true);
+				break;
+		}
+
+		switch (httpEquiv.toLowerCase()) {
+			case "content-type":
+				tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, value, 1);
+
+				// Override XML encoding
+				if (tmp != "")
+					xmlEnc = tmp;
+
+				break;
+		}
+	}
+
+	selectByValue(f, 'doctypes', docType, true, true);
+	selectByValue(f, 'docencoding', xmlEnc, true, true);
+	selectByValue(f, 'langdir', tinyMCE.getAttrib(doc.body, 'dir'), true, true);
+
+	if (xmlVer != '')
+		f.xml_pi.checked = true;
+
+	// ------- Setup options for appearance tab
+
+	// Get primary stylesheet
+	nodes = doc.getElementsByTagName("link");
+	for (i=0; i<nodes.length; i++) {
+		l = nodes[i];
+		tmp = tinyMCE.getAttrib(l, 'media');
+
+		if (tinyMCE.getAttrib(l, 'mce_type') == "text/css" && (tmp == "" || tmp == "screen" || tmp == "all") && tinyMCE.getAttrib(l, 'rel') == "stylesheet") {
+			f.stylesheet.value = tinyMCE.getAttrib(l, 'mce_href');
+			break;
+		}
+	}
+
+	// Get from style elements
+	nodes = doc.getElementsByTagName("style");
+	for (i=0; i<nodes.length; i++) {
+		tmp = parseStyleElement(nodes[i]);
+
+		for (x=0; x<tmp.length; x++) {
+		//	if (tmp[x].rule.indexOf('a:hover') != -1 && tmp[x].data['color'])
+		//		f.hover_color.value = tmp[x].data['color'];
+
+			if (tmp[x].rule.indexOf('a:visited') != -1 && tmp[x].data['color'])
+				f.visited_color.value = tmp[x].data['color'];
+
+			if (tmp[x].rule.indexOf('a:link') != -1 && tmp[x].data['color'])
+				f.link_color.value = tmp[x].data['color'];
+
+			if (tmp[x].rule.indexOf('a:active') != -1 && tmp[x].data['color'])
+				f.active_color.value = tmp[x].data['color'];
+		}
+	}
+
+	// Get from body attribs
+
+/*	f.leftmargin.value = tinyMCE.getAttrib(doc.body, "leftmargin");
+	f.rightmargin.value = tinyMCE.getAttrib(doc.body, "rightmargin");
+	f.topmargin.value = tinyMCE.getAttrib(doc.body, "topmargin");
+	f.bottommargin.value = tinyMCE.getAttrib(doc.body, "bottommargin");*/
+	f.textcolor.value = convertRGBToHex(tinyMCE.getAttrib(doc.body, "text"));
+	f.active_color.value = convertRGBToHex(tinyMCE.getAttrib(doc.body, "alink"));
+	f.link_color.value = convertRGBToHex(tinyMCE.getAttrib(doc.body, "link"));
+	f.visited_color.value = convertRGBToHex(tinyMCE.getAttrib(doc.body, "vlink"));
+	f.bgcolor.value = convertRGBToHex(tinyMCE.getAttrib(doc.body, "bgcolor"));
+	f.bgimage.value = convertRGBToHex(tinyMCE.getAttrib(doc.body, "background"));
+
+	// Get from style info
+	var style = tinyMCE.parseStyle(tinyMCE.getAttrib(doc.body, 'style'));
+
+	if (style['font-family'])
+		selectByValue(f, 'fontface', style['font-family'], true, true);
+	else
+		selectByValue(f, 'fontface', tinyMCE.getParam("fullpage_default_fontface", ""), true, true);
+
+	if (style['font-size'])
+		selectByValue(f, 'fontsize', style['font-size'], true, true);
+	else
+		selectByValue(f, 'fontsize', tinyMCE.getParam("fullpage_default_fontsize", ""), true, true);
+
+	if (style['color'])
+		f.textcolor.value = convertRGBToHex(style['color']);
+
+	if (style['background-image'])
+		f.bgimage.value = style['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+
+	if (style['background-color'])
+		f.bgcolor.value = convertRGBToHex(style['background-color']);
+
+	if (style['margin']) {
+		tmp = style['margin'].replace(/[^0-9 ]/g, '');
+		tmp = tmp.split(/ +/);
+		f.topmargin.value = tmp.length > 0 ? tmp[0] : '';
+		f.rightmargin.value = tmp.length > 1 ? tmp[1] : tmp[0];
+		f.bottommargin.value = tmp.length > 2 ? tmp[2] : tmp[0];
+		f.leftmargin.value = tmp.length > 3 ? tmp[3] : tmp[0];
+	}
+
+	if (style['margin-left'])
+		f.leftmargin.value = style['margin-left'].replace(/[^0-9]/g, '');
+
+	if (style['margin-right'])
+		f.rightmargin.value = style['margin-right'].replace(/[^0-9]/g, '');
+
+	if (style['margin-top'])
+		f.topmargin.value = style['margin-top'].replace(/[^0-9]/g, '');
+
+	if (style['margin-bottom'])
+		f.bottommargin.value = style['margin-bottom'].replace(/[^0-9]/g, '');
+
+	f.style.value = tinyMCE.serializeStyle(style);
+
+	updateColor('textcolor_pick', 'textcolor');
+	updateColor('bgcolor_pick', 'bgcolor');
+	updateColor('visited_color_pick', 'visited_color');
+	updateColor('active_color_pick', 'active_color');
+	updateColor('link_color_pick', 'link_color');
+	//updateColor('hover_color_pick', 'hover_color');
+}
+
+function updateAction() {
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var f = document.forms[0];
+	var nl, i, h, v, s, head, html, l, tmp, addlink = true;
+
+	head = topDoc.getElementsByTagName('head')[0];
+
+	// Fix scripts without a type
+	nl = topDoc.getElementsByTagName('script');
+	for (i=0; i<nl.length; i++) {
+		if (tinyMCE.getAttrib(nl[i], 'mce_type') == '')
+			nl[i].setAttribute('mce_type', 'text/javascript');
+	}
+
+	// Get primary stylesheet
+	nl = topDoc.getElementsByTagName("link");
+	for (i=0; i<nl.length; i++) {
+		l = nl[i];
+
+		tmp = tinyMCE.getAttrib(l, 'media');
+
+		if (tinyMCE.getAttrib(l, 'mce_type') == "text/css" && (tmp == "" || tmp == "screen" || tmp == "all") && tinyMCE.getAttrib(l, 'rel') == "stylesheet") {
+			addlink = false;
+
+			if (f.stylesheet.value == '')
+				l.parentNode.removeChild(l);
+			else
+				l.setAttribute('mce_href', f.stylesheet.value);
+
+			break;
+		}
+	}
+
+	// Add new link
+	if (f.stylesheet.value != '') {
+		l = topDoc.createElement('link');
+
+		l.setAttribute('mce_type', 'text/css');
+		l.setAttribute('mce_href', f.stylesheet.value);
+		l.setAttribute('rel', 'stylesheet');
+
+		head.appendChild(l);
+	}
+
+	setMeta(head, 'keywords', f.metakeywords.value);
+	setMeta(head, 'description', f.metadescription.value);
+	setMeta(head, 'author', f.metaauthor.value);
+	setMeta(head, 'copyright', f.metacopyright.value);
+	setMeta(head, 'robots', getSelectValue(f, 'metarobots'));
+	setMeta(head, 'Content-Type', getSelectValue(f, 'docencoding'));
+
+	topDoc.body.dir = getSelectValue(f, 'langdir');
+	topDoc.body.style.cssText = f.style.value;
+
+	topDoc.body.setAttribute('vLink', f.visited_color.value);
+	topDoc.body.setAttribute('link', f.link_color.value);
+	topDoc.body.setAttribute('text', f.textcolor.value);
+	topDoc.body.setAttribute('aLink', f.active_color.value);
+
+	topDoc.body.style.fontFamily = getSelectValue(f, 'fontface');
+	topDoc.body.style.fontSize = getSelectValue(f, 'fontsize');
+	topDoc.body.style.backgroundColor = f.bgcolor.value;
+
+	if (f.leftmargin.value != '')
+		topDoc.body.style.marginLeft = f.leftmargin.value + 'px';
+
+	if (f.rightmargin.value != '')
+		topDoc.body.style.marginRight = f.rightmargin.value + 'px';
+
+	if (f.bottommargin.value != '')
+		topDoc.body.style.marginBottom = f.bottommargin.value + 'px';
+
+	if (f.topmargin.value != '')
+		topDoc.body.style.marginTop = f.topmargin.value + 'px';
+
+	html = topDoc.getElementsByTagName('html')[0];
+	html.setAttribute('lang', f.langcode.value);
+	html.setAttribute('xml:lang', f.langcode.value);
+
+	if (f.bgimage.value != '')
+		topDoc.body.style.backgroundImage = "url('" + f.bgimage.value + "')";
+	else
+		topDoc.body.style.backgroundImage = '';
+
+	inst.cleanup.addRuleStr('-title,meta[http-equiv|name|content],base[href|target],link[href|rel|type|title|media],style[type],script[type|language|src],html[lang|xml:lang|xmlns],body[style|dir|vlink|link|text|alink],head');
+
+	h = inst.cleanup.serializeNodeAsHTML(topDoc.documentElement);
+
+	h = h.substring(0, h.lastIndexOf('</body>'));
+
+	if (h.indexOf('<title>') == -1)
+		h = h.replace(/<head.*?>/, '$&\n' + '<title>' + inst.cleanup.xmlEncode(f.metatitle.value) + '</title>');
+	else
+		h = h.replace(/<title>(.*?)<\/title>/, '<title>' + inst.cleanup.xmlEncode(f.metatitle.value) + '</title>');
+
+	if ((v = getSelectValue(f, 'doctypes')) != '')
+		h = v + '\n' + h;
+
+	if (f.xml_pi.checked) {
+		s = '<?xml version="1.0"';
+
+		if ((v = getSelectValue(f, 'docencoding')) != '')
+			s += ' encoding="' + v + '"';
+
+		s += '?>\n';
+		h = s + h;
+	}
+
+	inst.fullpageTopContent = h;
+
+	tinyMCEPopup.execCommand('mceFullPageUpdate', false, '');
+	tinyMCEPopup.close();
+}
+
+function setMeta(he, k, v) {
+	var nl, i, m;
+
+	nl = he.getElementsByTagName('meta');
+	for (i=0; i<nl.length; i++) {
+		if (k == 'Content-Type' && tinyMCE.getAttrib(nl[i], 'http-equiv') == k) {
+			if (v == '')
+				nl[i].parentNode.removeChild(nl[i]);
+			else
+				nl[i].setAttribute('content', "text/html; charset=" + v);
+
+			return;
+		}
+
+		if (tinyMCE.getAttrib(nl[i], 'name') == k) {
+			if (v == '')
+				nl[i].parentNode.removeChild(nl[i]);
+			else
+				nl[i].setAttribute('content', v);
+			return;
+		}
+	}
+
+	if (v == '')
+		return;
+
+	m = topDoc.createElement('meta');
+
+	if (k == 'Content-Type')
+		m.httpEquiv = k;
+	else
+		m.setAttribute('name', k);
+
+	m.setAttribute('content', v);
+	he.appendChild(m);
+}
+
+function parseStyleElement(e) {
+	var v = e.innerHTML;
+	var p, i, r;
+
+	v = v.replace(/<!--/gi, '');
+	v = v.replace(/-->/gi, '');
+	v = v.replace(/[\n\r]/gi, '');
+	v = v.replace(/\s+/gi, ' ');
+
+	r = new Array();
+	p = v.split(/{|}/);
+
+	for (i=0; i<p.length; i+=2) {
+		if (p[i] != "")
+			r[r.length] = {rule : tinyMCE.trim(p[i]), data : tinyMCE.parseStyle(p[i+1])};
+	}
+
+	return r;
+}
+
+function serializeStyleElement(d) {
+	var i, s, st;
+
+	s = '<!--\n';
+
+	for (i=0; i<d.length; i++) {
+		s += d[i].rule + ' {\n';
+
+		st = tinyMCE.serializeStyle(d[i].data);
+
+		if (st != '')
+			st += ';';
+
+		s += st.replace(/;/g, ';\n');
+		s += '}\n';
+
+		if (i != d.length - 1)
+			s += '\n';
+	}
+
+	s += '\n-->';
+
+	return s;
+}
+
+function getReItem(r, s, i) {
+	var c = r.exec(s);
+
+	if (c && c.length > i)
+		return c[i];
+
+	return '';
+}
+
+function changedStyleField(field) {
+	//alert(field.id);
+}
+
+function showAddMenu() {
+	var re = document.getElementById('addbutton');
+
+	addMenuLayer.moveRelativeTo(re, 'tr');
+	if (addMenuLayer.isMSIE)
+		addMenuLayer.moveBy(2, 0);
+
+	addMenuLayer.show();
+	addMenuLayer.setAutoHide(true, hideAddMenu);
+	addMenuLayer.addCSSClass(re, 'selected');
+}
+
+function hideAddMenu(l, e, mx, my) {
+	var re = document.getElementById('addbutton');
+	addMenuLayer.removeCSSClass(re, 'selected');
+}
+
+function addHeadElm(type) {
+	var le = document.getElementById('headlist');
+	var re = document.getElementById('addbutton');
+	var te = document.getElementById(type + '_element');
+
+	if (lastElementType)
+		lastElementType.style.display = 'none';
+
+	te.style.display = 'block';
+
+	lastElementType = te;
+
+	addMenuLayer.hide();
+	addMenuLayer.removeCSSClass(re, 'selected');
+
+	document.getElementById(type + '_updateelement').value = tinyMCE.getLang('lang_insert', 'Insert', true);
+
+	le.size = 10;
+}
+
+function updateHeadElm(item) {
+	var type = item.substring(0, item.indexOf('_'));
+	var le = document.getElementById('headlist');
+	var re = document.getElementById('addbutton');
+	var te = document.getElementById(type + '_element');
+
+	if (lastElementType)
+		lastElementType.style.display = 'none';
+
+	te.style.display = 'block';
+
+	lastElementType = te;
+
+	addMenuLayer.hide();
+	addMenuLayer.removeCSSClass(re, 'selected');
+
+	document.getElementById(type + '_updateelement').value = tinyMCE.getLang('lang_update', 'Update', true);
+
+	le.size = 10;
+}
+
+function cancelElementUpdate() {
+	var le = document.getElementById('headlist');
+
+	if (lastElementType)
+		lastElementType.style.display = 'none';
+
+	le.size = 26;
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/fullpage/langs/ca.js b/tinyMCE/plugins/fullpage/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ca.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/cs.js b/tinyMCE/plugins/fullpage/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/cs.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/cy.js b/tinyMCE/plugins/fullpage/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/cy.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/da.js b/tinyMCE/plugins/fullpage/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..16b8b1e8c209df339e703c2828ecf10ceb8ae91a
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/da.js
@@ -0,0 +1,92 @@
+// // DK lang variables - Transl.:Morten Wulff <wulff@ratatosk.net>, Ronny Buelund, Corr.:
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Dokumentegenskaber',
+	desc : 'Dokumentegenskaber',
+	meta_tab : 'Generelt',
+	appearance_tab : 'Udseende',
+	advanced_tab : 'Avanceret',
+	meta_props : 'Meta-information',
+	langprops : 'Sprog og tegnkodning',
+	meta_title : 'Titel',
+	meta_keywords : 'Nøgleord',
+	meta_description : 'Beskrivelse',
+	meta_robots : 'Robotter',
+	doctypes : 'Dokumenttype',
+	langcode : 'Sprogkode',
+	langdir : 'Sprogretning',
+	ltr : 'Venstre til h&oslash;jre',
+	rtl : 'H&oslash;jre til venstre',
+	xml_pi : 'XML deklaration',
+	encoding : 'Tegnkodning',
+	appearance_bgprops : 'Baggrund',
+	appearance_marginprops : 'Marginer',
+	appearance_linkprops : 'Henvisningsfarver',
+	appearance_textprops : 'Tekstegenskaber',
+	bgcolor : 'Baggrundsfarve',
+	bgimage : 'Baggrundsbillede',
+	left_margin : 'Vesntre margin',
+	right_margin : 'H&oslash;jre margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bund margin',
+	text_color : 'Teekstfarve',
+	font_size : 'Skriftstørrelse',
+	font_face : 'Skrifttype',
+	link_color : 'Henvisningsfarve',
+	hover_color : 'Sv&aelig;ve farve',
+	visited_color : 'Besøgt farve',
+	active_color : 'Aktiv farve',
+	textcolor : 'Farve',
+	fontsize : 'Skriftstørrelse',
+	fontface : 'Skrifttype',
+	meta_index_follow : 'Indekser og f&oslash;lg henvisningerne',
+	meta_index_nofollow : 'Indekser og f&oslash;lg ikke henvisningerne',
+	meta_noindex_follow : 'Indekser ikke, men f&oslash;lg henvisningerne',
+	meta_noindex_nofollow : 'Indekser ikke, og f&oslash;lg ikke henvisningerne',
+	appearance_style : 'Stilark og stilegenskaber',
+	stylesheet : 'Stilark',
+	style : 'Stil',
+	author : 'Forfatter',
+	copyright : 'Copyright',
+	add : 'Tilføj element',
+	remove : 'Fjern valgte element',
+	moveup : 'Flyt valgte element op',
+	movedown : 'Flyt valgte element ned',
+	head_elements : 'Hovedelementer',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Titel-element',
+	add_meta : 'Meta-element',
+	add_script : 'Script-element',
+	add_style : 'Stil-element',
+	add_link : 'Henvisningselement',
+	add_base : 'Basis-element',
+	add_comment : 'Kommentar',
+	title_element : 'Titel-element',
+	script_element : 'Script-element',
+	style_element : 'Stil-element',
+	base_element : 'Basis-element',
+	link_element : 'Henvisningselement',
+	meta_element : 'Meta-element',
+	comment_element : 'Kommentar',
+	src : 'Src',
+	language : 'Sprog',
+	href : 'Href',
+	target : 'Mål',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Karakters&aelig;t',
+	defer : 'Defer',
+	media : 'Medie',
+	properties : 'Indstillinger',
+	name : 'Navn',
+	value : 'V&aelig;rdi',
+	content : 'Indhold',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'Generelt',
+	advanced_props : 'Avanceret',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/de.js b/tinyMCE/plugins/fullpage/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..faa8dfad0fc0d1e128d907d90ffa5b02d92ead6a
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/de.js
@@ -0,0 +1,92 @@
+// DE lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Dokumenten Eigenschaften',
+	desc : 'Dokumenten Eigenschaften',
+	meta_tab : 'Allgemein',
+	appearance_tab : 'Erscheinung',
+	advanced_tab : 'Erweitert',
+	meta_props : 'Meta Information',
+	langprops : 'Sprache und Kodierung',
+	meta_title : 'Titel',
+	meta_keywords : 'Schl&uuml;sselw&ouml;rter',
+	meta_description : 'Beschreibung',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Sprach-Code',
+	langdir : 'Textfluss',
+	ltr : 'Links nach rechts',
+	rtl : 'Rechts nach links',
+	xml_pi : 'XML Deklaration',
+	encoding : 'Character Kodierung',
+	appearance_bgprops : 'Hintergrund Eigenschaften',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link Farben',
+	appearance_textprops : 'Text Eigenschaften',
+	bgcolor : 'Hintergrundfarbe',
+	bgimage : 'Hintergrundbild',
+	left_margin : 'Linksb&uuml;ndig',
+	right_margin : 'Rechtsb&uuml;ndig',
+	top_margin : 'Oberer Seitenrand',
+	bottom_margin : 'Unterer Seitenrand',
+	text_color : 'Textfarbe',
+	font_size : 'Schriftgr&ouml;&szlig;e',
+	font_face : 'Schriftfamilie',
+	link_color : 'Link Farbe',
+	hover_color : 'Hover Farbe',
+	visited_color : 'Visited Farbe',
+	active_color : 'Aktiv Farbe',
+	textcolor : 'Farbe',
+	fontsize : 'Schriftgr&ouml;&szlig;e',
+	fontface : 'Schriftfamilie',
+	meta_index_follow : 'Index und den Links folgen',
+	meta_index_nofollow : 'Index und den Links nicht folgen',
+	meta_noindex_follow : 'Keinen Index, aber den Links folgen',
+	meta_noindex_nofollow : 'Keinen Index und auch nicht den Links folgen',
+	appearance_style : 'Stylesheet und Style Eigenschaften',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Autor',
+	copyright : 'Copyright',
+	add : 'Neues Element hinzuf&uuml;gen',
+	remove : 'Ausgew&auml;hltes Element l&ouml;schen',
+	moveup : 'Ausgew&auml;hltes Element eine Ebene h&ouml;her',
+	movedown : 'Ausgew&auml;hltes Element eine Ebene tiefer',
+	head_elements : 'Kopf Elemente',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Titel Element',
+	add_meta : 'Meta Element',
+	add_script : 'Script Element',
+	add_style : 'Style Element',
+	add_link : 'Link Element',
+	add_base : 'Basis Element',
+	add_comment : 'Kommentarknoten',
+	title_element : 'Titel Element',
+	script_element : 'Script Element',
+	style_element : 'Style Element',
+	base_element : 'Basis Element',
+	link_element : 'Link Element',
+	meta_element : 'Meta Element',
+	comment_element : 'Kommentar',
+	src : 'Src',
+	language : 'Sprache',
+	href : 'Href',
+	target : 'Ziel',
+	rel : 'Rel',
+	type : 'Typ',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Medien',
+	properties : 'Eigenschaften',
+	name : 'Name',
+	value : 'Wert',
+	content : 'Inhalt',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'Allgemein',
+	advanced_props : 'Erweitert',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/el.js b/tinyMCE/plugins/fullpage/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/el.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/en.js b/tinyMCE/plugins/fullpage/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/en.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/es.js b/tinyMCE/plugins/fullpage/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..3395afef6fded41da1655325446b60e48886df67
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/es.js
@@ -0,0 +1,98 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+ 
+tinyMCE.addToLang('fullpage',{
+	title : 'Propiedades del documento',
+	desc : 'Propiedades del documento',
+	meta_tab : 'General',
+	appearance_tab : 'Apariencia',
+	advanced_tab : 'Avanzado',
+	meta_props : 'Informaci&oacute;n Meta',
+	langprops : 'Idioma y codificaci&oacute;n',
+	meta_title : 'T&iacute;tulo',
+	meta_keywords : 'Palabras clave',
+	meta_description : 'Descripci&oacute;n',
+	meta_robots : 'Robots',
+	doctypes : 'Tipo de documento',
+	langcode : 'C&oacute;digo del idioma',
+	langdir : 'Direcci&oacute;n del idioma',
+	ltr : 'Izquierda a derecha',
+	rtl : 'Derecha a izquierda',
+	xml_pi : 'Declaraci&oacute;n XML',
+	encoding : 'Codificaci&oacute;n de caracteres',
+	appearance_bgprops : 'Propiedades de fondo',
+	appearance_marginprops : 'M&aacute;rgenes del cuerpo',
+	appearance_linkprops : 'Color de los enlaces',
+	appearance_textprops : 'Propiedades del texto',
+	bgcolor : 'Color de fondo',
+	bgimage : 'Imagen de fondo',
+	left_margin : 'Margen izquierdo',
+	right_margin : 'Margen derecho',
+	top_margin : 'Margen superior',
+	bottom_margin : 'Margen inferior',
+	text_color : 'Color del texto',
+	font_size : 'Tama&ntilde;o de la fuente',
+	font_face : 'Familia de la fuente',
+	link_color : 'Color de los enlaces',
+	hover_color : 'Color de resalte',
+	visited_color : 'Color de visitado',
+	active_color : 'Color de activo',
+	textcolor : 'Color',
+	fontsize : 'Tama&ntilde;o de la fuente',
+	fontface : 'Familia de la fuente',
+	meta_index_follow : 'Indexar y seguir enlaces',
+	meta_index_nofollow : 'Indexar y no seguir enlaces',
+	meta_noindex_follow : 'No indexar pero seguir enlaces',
+	meta_noindex_nofollow : 'No indexar ni seguir enlaces',
+	appearance_style : 'Hoja de estilos y propiedades de estilo',
+	stylesheet : 'Hoja de estilos',
+	style : 'Estilo',
+	author : 'Autor',
+	copyright : 'Copyright',
+	add : 'A&ntilde;adir nuevo elemento',
+	remove : 'Quitar elemento seleccionado',
+	moveup : 'Mover el elemento seleccionado hacia arriba',
+	movedown : 'Mover el elemento seleccionado hacia abajo',
+	head_elements : 'Elementos de cabecera',
+	info : 'Informaci&oacute;n',
+	info_text : '',
+	add_title : 'Elemento de t&iacute;tulo',
+	add_meta : 'Elemento Meta',
+	add_script : 'Elemento de script',
+	add_style : 'Elemento de estilo',
+	add_link : 'Elemento de enlace',
+	add_base : 'Elemento base',
+	add_comment : 'Nodo comentario',
+	title_element : 'Elemento de t&iacute;tulo',
+	script_element : 'Elemento de script',
+	style_element : 'Elemento de estilo',
+	base_element : 'Elemento base',
+	link_element : 'Elemento de enlace',
+	meta_element : 'Elemento Meta',
+	comment_element : 'Comentario',
+	src : 'Fuente',
+	language : 'Idioma',
+	href : 'Referencia',
+	target : 'Destino',
+	rel : 'Rel',
+	type : 'Tipo',
+	charset : 'C&oacute;digo de caracteres',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Propiedades',
+	name : 'Nombre',
+	value : 'Valor',
+	content : 'Contenido',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Idioma de referencia',
+	general_props : 'General',
+	advanced_props : 'Avanzado',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/fa.js b/tinyMCE/plugins/fullpage/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/fa.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/fi.js b/tinyMCE/plugins/fullpage/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/fi.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/fr.js b/tinyMCE/plugins/fullpage/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..0a1bec18464b04fa37e84a5b357f81df603dedcd
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/fr.js
@@ -0,0 +1,93 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Propri&eacute;t&eacute;s de la page',
+	desc : 'Propri&eacute;t&eacute;s de la page',
+	meta_tab : 'G&eacute;n&eacute;ral',
+	appearance_tab : 'Apparence',
+	advanced_tab : 'Avanc&eacute;',
+	meta_props : 'Balises Meta',
+	langprops : 'Langue et encodage',
+	meta_title : 'Titre',
+	meta_keywords : 'Mots cl&eacute;s',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Code langue',
+	langdir : 'Sens de l\'&eacute;criture',
+	ltr : 'Gauche &agrave; droite',
+	rtl : 'Droite &agrave; gauche',
+	xml_pi : 'En-t&ecirc;te XML',
+	encoding : 'Encodage',
+	appearance_bgprops : 'Arri&egrave;re-plan',
+	appearance_marginprops : 'Marges du document',
+	appearance_linkprops : 'Couleur des liens',
+	appearance_textprops : 'Propri&eacute;t&eacute;s du texte',
+	bgcolor : 'Couleur de fond',
+	bgimage : 'Image de fond',
+	left_margin : 'Gauche',
+	right_margin : 'Droite',
+	top_margin : 'Haut',
+	bottom_margin : 'Bas',
+	text_color : 'Couleur du texte',
+	font_size : 'Taille',
+	font_face : 'Police',
+	link_color : 'Couleur des liens',
+	hover_color : 'Liens survol&eacute;s',
+	visited_color : 'Liens visit&eacute;s',
+	active_color : 'Liens actifs',
+	textcolor : 'Couleur',
+	fontsize : 'Taille',
+	fontface : 'Police',
+	meta_index_follow : 'Page actuelle et pages li&eacute;es',
+	meta_index_nofollow : 'Page actuelle uniquement',
+	meta_noindex_follow : 'Uniquement les pages li&eacute;es',
+	meta_noindex_nofollow : 'Aucune indexation',
+	appearance_style : 'Feuille de style et propri&eacute;t&eacute;s',
+	stylesheet : 'Feuille de style',
+	style : 'Style',
+	author : 'Auteur',
+	copyright : 'Copyright',
+	add : 'Ajouter un &eacute;l&eacute;ment',
+	remove : 'Retirer l\'&eacute;l&eacute;ment s&eacute;lectionn&eacute;',
+	moveup : 'Vers le haut',
+	movedown : 'Vers le bas',
+	head_elements : 'En-t&ecirc;tes',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Balise Titre',
+	add_meta : 'Balise Meta',
+	add_script : 'Balise Script',
+	add_style : 'Balise Style',
+	add_link : 'Balise Lien',
+	add_base : 'Balise Base',
+	add_comment : 'Ajouter un commentaire',
+	title_element : 'Balise Titre',
+	script_element : 'Balise Script',
+	style_element : 'Balise Style',
+	base_element : 'Balise Base',
+	link_element : 'Balise Lien',
+	meta_element : 'Balise Meta',
+	comment_element : 'Commentaire',
+	src : 'Src',
+	language : 'Langage',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Propri&eacute;t&eacute;s',
+	name : 'Nom',
+	value : 'Valeur',
+	content : 'Contenu',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'G&eacute;n&eacute;ral',
+	advanced_props : 'Avanc&eacute;',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/fr_ca.js b/tinyMCE/plugins/fullpage/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/fr_ca.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/he.js b/tinyMCE/plugins/fullpage/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/he.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/hu.js b/tinyMCE/plugins/fullpage/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/hu.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/is.js b/tinyMCE/plugins/fullpage/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/is.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/it.js b/tinyMCE/plugins/fullpage/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..7dfed9dd0221bc00864fe6225383c8d18d62c12d
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/it.js
@@ -0,0 +1,98 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Propriet&agrave; del documento',
+	desc : 'Propriet&agrave; del documento',
+	meta_tab : 'Generale',
+	appearance_tab : 'Aspetto',
+	advanced_tab : 'Avanzate',
+	meta_props : 'Tag Meta',
+	langprops : 'Lingua e codifica',
+	meta_title : 'Titolo',
+	meta_keywords : 'Parole chiave',
+	meta_description : 'Descrizione',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Codifica lingua',
+	langdir : 'Direzione del testo',
+	ltr : 'Da sinistra a destra',
+	rtl : 'Da destra a sinistra',
+	xml_pi : 'Dichiarazione XML',
+	encoding : 'Codifica caratteri',
+	appearance_bgprops : 'Propriet&agrave; dello sfondo',
+	appearance_marginprops : 'Margine',
+	appearance_linkprops : 'Colori dei link',
+	appearance_textprops : 'Propriet&agrave; del testo',
+	bgcolor : 'Colore di sfondo',
+	bgimage : 'Immagine di sfondo',
+	left_margin : 'Margine sinistro',
+	right_margin : 'Margine destro',
+	top_margin : 'Margine superiore',
+	bottom_margin : 'Margine inferiore',
+	text_color : 'Colore del testo',
+	font_size : 'Dimensione del carattere',
+	font_face : 'Font',
+	link_color : 'Colore dei link',
+	hover_color : 'Colore del link sotto il mouse',
+	visited_color : 'Colore dei link visitati',
+	active_color : 'Colore del link attivo',
+	textcolor : 'Colore',
+	fontsize : 'Dimensione del carattere',
+	fontface : 'Font',
+	meta_index_follow : 'Indicizza e segui i link',
+	meta_index_nofollow : 'Indicizza, ma non seguire i link',
+	meta_noindex_follow : 'Non indicizzare, ma segui i link',
+	meta_noindex_nofollow : 'Non indicizzare e non seguire i link',
+	appearance_style : 'Fogli di stile e propriet&agrave; degli stili',
+	stylesheet : 'Foglio di stile',
+	style : 'Stile',
+	author : 'Autore',
+	copyright : 'Copyright',
+	add : 'Aggiungi nuovo elemento',
+	remove : 'Rimuovi elemento selezionato',
+	moveup : 'Muovi elemento selezionato verso l\'alto',
+	movedown : 'Muovi elemento selezionato verso il basso',
+	head_elements : 'Elementi Head',
+	info : 'Informazioni',
+	info_text : '',
+	add_title : 'Elemento Title',
+	add_meta : 'Elemento Meta',
+	add_script : 'Elemento Script',
+	add_style : 'Elemento Style',
+	add_link : 'ELemento Link',
+	add_base : 'Elemento Base',
+	add_comment : 'Nodo Commento',
+	title_element : 'Elemento Title',
+	script_element : 'Elemento Script',
+	style_element : 'Elemento Style',
+	base_element : 'Elemento Base',
+	link_element : 'ELemento Link',
+	meta_element : 'Elemento Met',
+	comment_element : 'Commento',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'Generale',
+	advanced_props : 'Avanzate',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/ja.js b/tinyMCE/plugins/fullpage/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..11e0212e58db7832efba0ad19def67e8207646d1
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ja.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : '文書のプロパティ',
+	desc : '文書のプロパティ',
+	meta_tab : '全般',
+	appearance_tab : '表示',
+	advanced_tab : '詳細',
+	meta_props : 'メタ情報',
+	langprops : '言語',
+	meta_title : 'タイトル',
+	meta_keywords : 'キーワード',
+	meta_description : '説明',
+	meta_robots : '検索ロボット',
+	doctypes : '文書の種類',
+	langcode : '言語',
+	langdir : '表示方向',
+	ltr : '左から右へ',
+	rtl : '右から左へ',
+	xml_pi : 'XML定義',
+	encoding : '文字コード',
+	appearance_bgprops : '背景の設定',
+	appearance_marginprops : 'BODYの余白',
+	appearance_linkprops : 'リンクの色',
+	appearance_textprops : 'テキストの色',
+	bgcolor : '背景色',
+	bgimage : '背景の画像',
+	left_margin : 'å·¦',
+	right_margin : '右',
+	top_margin : '上',
+	bottom_margin : '下',
+	text_color : 'テキストの色',
+	font_size : 'フォントサイズ',
+	font_face : 'フォント',
+	link_color : 'リンクの色',
+	hover_color : 'マウスが重なったとき',
+	visited_color : '訪問済みのリンク',
+	active_color : 'クリック中のリンク',
+	textcolor : '色',
+	fontsize : 'フォントサイズ',
+	fontface : 'フォント',
+	meta_index_follow : 'インデックスおよびリンク先まで探索',
+	meta_index_nofollow : 'インデックスのみ探索しリンク先は探索しない',
+	meta_noindex_follow : 'インデックスは探索せずリンク先のみ探索する',
+	meta_noindex_nofollow : 'インデックスおよびリンク先を探索しない',
+	appearance_style : 'スタイルシートの設定',
+	stylesheet : 'スタイルシート',
+	style : 'スタイル',
+	author : '作成者',
+	copyright : '著作権表記',
+	add : '新しい要素を追加',
+	remove : '選択した要素を削除',
+	moveup : '上へ',
+	movedown : '下へ',
+	head_elements : 'ページ属性',
+	info : '情報',
+	info_text : '',
+	add_title : 'タイトル',
+	add_meta : 'メタ要素',
+	add_script : 'スクリプト',
+	add_style : 'スタイルシート',
+	add_link : '関連',
+	add_base : 'ベース',
+	add_comment : 'コメント',
+	title_element : 'タイトル',
+	script_element : 'スクリプト',
+	style_element : 'スタイルシート',
+	base_element : 'ベース',
+	link_element : '関連',
+	meta_element : 'メタ要素',
+	comment_element : 'コメント',
+	src : 'ソース',
+	language : '言語',
+	href : 'ソース',
+	target : 'ターゲット',
+	rel : '関連',
+	type : '種類',
+	charset : '文字コード',
+	defer : 'Defer',
+	media : '有効なメディア',
+	properties : 'プロパティ',
+	name : '名称',
+	value : '値',
+	content : '内容',
+	rel : '関連',
+	rev : '関連',
+	hreflang : 'ソースの言語',
+	general_props : '全般',
+	advanced_props : '詳細',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/ja_euc-jp.js b/tinyMCE/plugins/fullpage/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ja_euc-jp.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/ja_shift_jis.js b/tinyMCE/plugins/fullpage/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ja_shift_jis.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/ja_utf-8.js b/tinyMCE/plugins/fullpage/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ja_utf-8.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/ko.js b/tinyMCE/plugins/fullpage/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ko.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/nb.js b/tinyMCE/plugins/fullpage/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/nb.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/nl.js b/tinyMCE/plugins/fullpage/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/nl.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/nn.js b/tinyMCE/plugins/fullpage/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/nn.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/pl.js b/tinyMCE/plugins/fullpage/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/pl.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/pt_br.js b/tinyMCE/plugins/fullpage/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..d155432781dce3ff661b6d226eb401ff29055820
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/pt_br.js
@@ -0,0 +1,99 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('fullpage',{
+	title : 'Propriedades do documento',
+	desc : 'Propriedades do documento',
+	meta_tab : 'Geral',
+	appearance_tab : 'Aparência',
+	advanced_tab : 'Avançado',
+	meta_props : 'Informação Meta',
+	langprops : 'Codificação e idioma',
+	meta_title : 'Título',
+	meta_keywords : 'Palavras',
+	meta_description : 'Descrição',
+	meta_robots : 'Robos',
+	doctypes : 'Tipo de documento',
+	langcode : 'Código do idioma',
+	langdir : 'Direção do idioma',
+	ltr : 'Esquerda para direita',
+	rtl : 'Direita para esquerda',
+	xml_pi : 'Declaração XML',
+	encoding : 'Codificação de caracteres',
+	appearance_bgprops : 'Propriedades do fundo',
+	appearance_marginprops : 'Margens do corpo',
+	appearance_linkprops : 'Cores dos links',
+	appearance_textprops : 'Propriedades do texto',
+	bgcolor : 'Cor do fundo',
+	bgimage : 'Fundo da imagem',
+	left_margin : 'Margem esquerda',
+	right_margin : 'Margem direita',
+	top_margin : 'Margem superior',
+	bottom_margin : 'Margem inferior',
+	text_color : 'Cor do texto',
+	font_size : 'Tamanho da fonte',
+	font_face : 'Tipo de fonte',
+	link_color : 'Cor do link',
+	hover_color : 'Cor do mouse sobre',
+	visited_color : 'Cor do link visitado',
+	active_color : 'Cor do link ativo',
+	textcolor : 'Cor',
+	fontsize : 'Tamanho da fonte',
+	fontface : 'Tipo de fonte',
+	meta_index_follow : 'Indexar e seguir os links',
+	meta_index_nofollow : 'Indexar e não seguir os links',
+	meta_noindex_follow : 'Não indexar, mas seguir os links',
+	meta_noindex_nofollow : 'Não indexar e não seguir os links',
+	appearance_style : 'Folha de estilo e propriedades dos estilos',
+	stylesheet : 'Folha de estilo',
+	style : 'Estilo',
+	author : 'Autor',
+	copyright : 'Copyright',
+	add : 'Adicionar novo elemento',
+	remove : 'Remover elemento selecionado',
+	moveup : 'Mover selecionado para cima',
+	movedown : 'Mover selecionado para baixo',
+	head_elements : 'Elementos do cabeçalho',
+	info : 'Informação',
+	info_text : '',
+	add_title : 'Elemento Título',
+	add_meta : 'Elemento Meta',
+	add_script : 'Elemento Script',
+	add_style : 'Elemento Estilo',
+	add_link : 'Elemento Link',
+	add_base : 'Elemento Base',
+	add_comment : 'Comentário',
+	title_element : 'Título',
+	script_element : 'Script',
+	style_element : 'Estilo',
+	base_element : 'Base',
+	link_element : 'Link',
+	meta_element : 'Meta',
+	comment_element : 'Comentário',
+	src : 'Src',
+	language : 'Idioma',
+	href : 'Href',
+	target : 'Destino',
+	rel : 'Rel',
+	type : 'Tipo',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Midia',
+	properties : 'Propriedades',
+	name : 'Nome',
+	value : 'Valor',
+	content : 'Conteúdo',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'Geral',
+	advanced_props : 'Avançado',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/ro.js b/tinyMCE/plugins/fullpage/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..86c088f41d121ae7eb55116298ba15f8c7ebbf45
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ro.js
@@ -0,0 +1,92 @@
+// RO lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Propriet&#259;&#355;i document',
+	desc : 'Propriet&#355;i document',
+	meta_tab : 'General',
+	appearance_tab : 'Aspect',
+	advanced_tab : 'Avansat',
+	meta_props : 'Meta informa&#355;ii',
+	langprops : 'Limb&#259; &#351;i codificare',
+	meta_title : 'Titlu',
+	meta_keywords : 'Cuvinte cheie',
+	meta_description : 'Descriere',
+	meta_robots : 'Robo&#355;i',
+	doctypes : 'Doctype',
+	langcode : 'Cod limb&#259;',
+	langdir : 'Direc&#355;ie limb&#259;',
+	ltr : 'St&#226;nga la dreapta',
+	rtl : 'Dreapta la st&#226;nga',
+	xml_pi : 'declara&#355;ie XML',
+	encoding : 'Codificare caractere',
+	appearance_bgprops : 'Propriet&#259;&#355;i fundal',
+	appearance_marginprops : 'Marginile corpului',
+	appearance_linkprops : 'Culori leg&#259;turi',
+	appearance_textprops : 'Propriet&#259;&#355;i text',
+	bgcolor : 'Culoare fundal',
+	bgimage : 'Imagine de fundal',
+	left_margin : 'Marginea st&#226;ng&#259;',
+	right_margin : 'Marginea dreapt&#259;',
+	top_margin : 'Marginea de sus',
+	bottom_margin : 'Marginea bazei',
+	text_color : 'Culoare text',
+	font_size : 'Dimensiune font',
+	font_face : 'Stil font',
+	link_color : 'Culoare leg&#259;tur&#259;',
+	hover_color : 'Culoare la trecere peste',
+	visited_color : 'Culoare vizitat',
+	active_color : 'Culoare activ',
+	textcolor : 'Culoare',
+	fontsize : 'Dimensiune font',
+	fontface : 'Familie font',
+	meta_index_follow : 'Indexeaz&#259; &#351;i urmeaz&#259; leg&#259;turile',
+	meta_index_nofollow : 'Indexeaz&#259; &#351;i nu urma leg&#259;turile',
+	meta_noindex_follow : 'Nu indexa dar urmeaz&#259; leg&#259;turile',
+	meta_noindex_nofollow : 'Nu indexa &#351;i nu urma leg&#259;turile',
+	appearance_style : 'Propriet&#259;&#355;i  stil &#351;i foaie de stiluri',
+	stylesheet : 'Foaie de stiluri',
+	style : 'Stil',
+	author : 'Autor',
+	copyright : 'Copyright',
+	add : 'Adaug&#259; element nou',
+	remove : '&#351;terge elementul selectat',
+	moveup : 'Mut&#259; elementul selectat sus',
+	movedown : 'Mut&#259; elementul selectat jos',
+	head_elements : 'Elemente head',
+	info : 'Informa&#355;ii',
+	info_text : '',
+	add_title : 'Elementul title',
+	add_meta : 'Elementul meta',
+	add_script : 'Elementul script',
+	add_style : 'Elementul style',
+	add_link : 'Elementul link',
+	add_base : 'Elementul base',
+	add_comment : 'Nod comentarii',
+	title_element : 'Elementul title',
+	script_element : 'Elementul script',
+	style_element : 'Elementul style',
+	base_element : 'Elementul base',
+	link_element : 'Elementul link',
+	meta_element : 'Elementul meta',
+	comment_element : 'Comentariu',
+	src : 'Surs&#259;',
+	language : 'Language',
+	href : 'Href',
+	target : '&#355;int&#259;',
+	rel : 'Rel',
+	type : 'Tip',
+	charset : 'Set de caractere',
+	defer : '&#206;nm&#226;nare',
+	media : 'Mediu',
+	properties : 'Propriet&#259;&#355;i',
+	name : 'Nume',
+	value : 'Valoare',
+	content : 'Con&#355;inut',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Limb&#259; Href',
+	general_props : 'General',
+	advanced_props : 'Avansat',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/ru.js b/tinyMCE/plugins/fullpage/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..eddd0b9b8bf6700e6b7f9c983ea2af30881e1546
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ru.js
@@ -0,0 +1,92 @@
+// RU lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Свойства документа',
+	desc : 'Свойства документа',
+	meta_tab : 'Основные',
+	appearance_tab : 'Видимость',
+	advanced_tab : 'Дополнительные',
+	meta_props : 'Мета информация',
+	langprops : 'Язык и кодировка',
+	meta_title : 'Название',
+	meta_keywords : 'Ключевые слова',
+	meta_description : 'Описание',
+	meta_robots : 'Роботы',
+	doctypes : 'Тип документа (Doctype)',
+	langcode : 'Код языка',
+	langdir : 'Направление языка',
+	ltr : 'Слева направо',
+	rtl : 'Справа налево',
+	xml_pi : 'XML декларация',
+	encoding : 'Кодировка',
+	appearance_bgprops : 'Свойства фона',
+	appearance_marginprops : 'Отступы',
+	appearance_linkprops : 'Цвет ссылок',
+	appearance_textprops : 'Свойства текста',
+	bgcolor : 'Цвет фона',
+	bgimage : 'Фоновое изображение',
+	left_margin : 'Отступ слева',
+	right_margin : 'Отступ справа',
+	top_margin : 'Отступ сверху',
+	bottom_margin : 'Отступ снизу',
+	text_color : 'Цвет текста',
+	font_size : 'Размер шрифта',
+	font_face : 'Шрифт',
+	link_color : 'Цвет ссылки',
+	hover_color : 'Цвет при наведении на ссылку',
+	visited_color : 'Цвет посещенной ссылки',
+	active_color : 'Цвет активной ссылки',
+	textcolor : 'Цвет',
+	fontsize : 'Размер шрифта',
+	fontface : 'Тип шрифта',
+	meta_index_follow : 'Индексировать и следовать по ссылкам',
+	meta_index_nofollow : 'Индексировать и не следовать по ссылкам',
+	meta_noindex_follow : 'Не индексировать, но следовать по ссылкам',
+	meta_noindex_nofollow : 'Не индексировать и не следовать по ссылкам',
+	appearance_style : 'Таблица стилей и свойства стиля',
+	stylesheet : 'Таблица стилей',
+	style : 'Стиль',
+	author : 'Автор',
+	copyright : 'Авторское право',
+	add : 'Добавить новый элемент',
+	remove : 'Удалить выделенный элемент',
+	moveup : 'Переместить выбранный элемент вверх',
+	movedown : 'Переместить выделенный элемент вниз',
+	head_elements : 'Элемент главный',
+	info : 'Информация',
+	info_text : '',
+	add_title : 'Элемент название',
+	add_meta : 'Элемент мета',
+	add_script : 'Элемент скрипт',
+	add_style : 'Элемент стиль',
+	add_link : 'Элемент ссылка',
+	add_base : 'Элемент базовый',
+	add_comment : 'Элемент комментарий',
+	title_element : 'Элемент название',
+	script_element : 'Элемент скрипт',
+	style_element : 'Элемент стиль',
+	base_element : 'Элемент базовый',
+	link_element : 'Элемент ссылка',
+	meta_element : 'Элемент мета',
+	comment_element : 'Комментарий',
+	src : 'Источник',
+	language : 'Язык',
+	href : 'Href',
+	target : 'Цель',
+	rel : 'Вып',
+	type : 'Тип',
+	charset : 'Кодировка',
+	defer : 'Задержка',
+	media : 'Медиа',
+	properties : 'Свойства',
+	name : 'Имя',
+	value : 'Значение',
+	content : 'Контент',
+	rel : 'Вып',
+	rev : 'Обр',
+	hreflang : 'Href язык',
+	general_props : 'Основные',
+	advanced_props : 'Дополнительные',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/ru_CP1251.js b/tinyMCE/plugins/fullpage/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..18fedea45e545ae216996c1dc9209ce3ed181431
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ru_CP1251.js
@@ -0,0 +1,92 @@
+// RU lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Ñâîéñòâà äîêóìåíòà',
+	desc : 'Ñâîéñòâà äîêóìåíòà',
+	meta_tab : 'Îñíîâíûå',
+	appearance_tab : 'Âèäèìîñòü',
+	advanced_tab : 'Äîïîëíèòåëüíûå',
+	meta_props : 'Ìåòà èíôîðìàöèÿ',
+	langprops : 'ßçûê è êîäèðîâêà',
+	meta_title : 'Íàçâàíèå',
+	meta_keywords : 'Êëþ÷åâûå ñëîâà',
+	meta_description : 'Îïèñàíèå',
+	meta_robots : 'Ðîáîòû',
+	doctypes : 'Òèï äîêóìåíòà (Doctype)',
+	langcode : 'Êîä ÿçûêà',
+	langdir : 'Íàïðàâëåíèå ÿçûêà',
+	ltr : 'Ñëåâà íàïðàâî',
+	rtl : 'Ñïðàâà íàëåâî',
+	xml_pi : 'XML äåêëàðàöèÿ',
+	encoding : 'Êîäèðîâêà',
+	appearance_bgprops : 'Ñâîéñòâà ôîíà',
+	appearance_marginprops : 'Îòñòóïû',
+	appearance_linkprops : 'Öâåò ññûëîê',
+	appearance_textprops : 'Ñâîéñòâà òåêñòà',
+	bgcolor : 'Öâåò ôîíà',
+	bgimage : 'Ôîíîâîå èçîáðàæåíèå',
+	left_margin : 'Îòñòóï ñëåâà',
+	right_margin : 'Îòñòóï ñïðàâà',
+	top_margin : 'Îòñòóï ñâåðõó',
+	bottom_margin : 'Îòñòóï ñíèçó',
+	text_color : 'Öâåò òåêñòà',
+	font_size : 'Ðàçìåð øðèôòà',
+	font_face : 'Øðèôò',
+	link_color : 'Öâåò ññûëêè',
+	hover_color : 'Öâåò ïðè íàâåäåíèè íà ññûëêó',
+	visited_color : 'Öâåò ïîñåùåííîé ññûëêè',
+	active_color : 'Öâåò àêòèâíîé ññûëêè',
+	textcolor : 'Öâåò',
+	fontsize : 'Ðàçìåð øðèôòà',
+	fontface : 'Òèï øðèôòà',
+	meta_index_follow : 'Èíäåêñèðîâàòü è ñëåäîâàòü ïî ññûëêàì',
+	meta_index_nofollow : 'Èíäåêñèðîâàòü è íå ñëåäîâàòü ïî ññûëêàì',
+	meta_noindex_follow : 'Íå èíäåêñèðîâàòü, íî ñëåäîâàòü ïî ññûëêàì',
+	meta_noindex_nofollow : 'Íå èíäåêñèðîâàòü è íå ñëåäîâàòü ïî ññûëêàì',
+	appearance_style : 'Òàáëèöà ñòèëåé è ñâîéñòâà ñòèëÿ',
+	stylesheet : 'Òàáëèöà ñòèëåé',
+	style : 'Ñòèëü',
+	author : 'Àâòîð',
+	copyright : 'Àâòîðñêîå ïðàâî',
+	add : 'Äîáàâèòü íîâûé ýëåìåíò',
+	remove : 'Óäàëèòü âûäåëåííûé ýëåìåíò',
+	moveup : 'Ïåðåìåñòèòü âûáðàííûé ýëåìåíò ââåðõ',
+	movedown : 'Ïåðåìåñòèòü âûäåëåííûé ýëåìåíò âíèç',
+	head_elements : 'Ýëåìåíò ãëàâíûé',
+	info : 'Èíôîðìàöèÿ',
+	info_text : '',
+	add_title : 'Ýëåìåíò íàçâàíèå',
+	add_meta : 'Ýëåìåíò ìåòà',
+	add_script : 'Ýëåìåíò ñêðèïò',
+	add_style : 'Ýëåìåíò ñòèëü',
+	add_link : 'Ýëåìåíò ññûëêà',
+	add_base : 'Ýëåìåíò áàçîâûé',
+	add_comment : 'Ýëåìåíò êîììåíòàðèé',
+	title_element : 'Ýëåìåíò íàçâàíèå',
+	script_element : 'Ýëåìåíò ñêðèïò',
+	style_element : 'Ýëåìåíò ñòèëü',
+	base_element : 'Ýëåìåíò áàçîâûé',
+	link_element : 'Ýëåìåíò ññûëêà',
+	meta_element : 'Ýëåìåíò ìåòà',
+	comment_element : 'Êîììåíòàðèé',
+	src : 'Èñòî÷íèê',
+	language : 'ßçûê',
+	href : 'Href',
+	target : 'Öåëü',
+	rel : 'Âûï',
+	type : 'Òèï',
+	charset : 'Êîäèðîâêà',
+	defer : 'Çàäåðæêà',
+	media : 'Ìåäèà',
+	properties : 'Ñâîéñòâà',
+	name : 'Èìÿ',
+	value : 'Çíà÷åíèå',
+	content : 'Êîíòåíò',
+	rel : 'Âûï',
+	rev : 'Îáð',
+	hreflang : 'Href ÿçûê',
+	general_props : 'Îñíîâíûå',
+	advanced_props : 'Äîïîëíèòåëüíûå',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/ru_KOI8-R.js b/tinyMCE/plugins/fullpage/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..b438a78686e23d99a290cea6eb6fdd338bdc0908
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/ru_KOI8-R.js
@@ -0,0 +1,92 @@
+// RU lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'ó×ÏÊÓÔ×Á ÄÏËÕÍÅÎÔÁ',
+	desc : 'ó×ÏÊÓÔ×Á ÄÏËÕÍÅÎÔÁ',
+	meta_tab : 'ïÓÎÏ×ÎÙÅ',
+	appearance_tab : '÷ÉÄÉÍÏÓÔØ',
+	advanced_tab : 'äÏÐÏÌÎÉÔÅÌØÎÙÅ',
+	meta_props : 'íÅÔÁ ÉÎÆÏÒÍÁÃÉÑ',
+	langprops : 'ñÚÙË É ËÏÄÉÒÏ×ËÁ',
+	meta_title : 'îÁÚ×ÁÎÉÅ',
+	meta_keywords : 'ëÌÀÞÅ×ÙÅ ÓÌÏ×Á',
+	meta_description : 'ïÐÉÓÁÎÉÅ',
+	meta_robots : 'òÏÂÏÔÙ',
+	doctypes : 'ôÉÐ ÄÏËÕÍÅÎÔÁ (Doctype)',
+	langcode : 'ëÏÄ ÑÚÙËÁ',
+	langdir : 'îÁÐÒÁ×ÌÅÎÉÅ ÑÚÙËÁ',
+	ltr : 'óÌÅ×Á ÎÁÐÒÁ×Ï',
+	rtl : 'óÐÒÁ×Á ÎÁÌÅ×Ï',
+	xml_pi : 'XML ÄÅËÌÁÒÁÃÉÑ',
+	encoding : 'ëÏÄÉÒÏ×ËÁ',
+	appearance_bgprops : 'ó×ÏÊÓÔ×Á ÆÏÎÁ',
+	appearance_marginprops : 'ïÔÓÔÕÐÙ',
+	appearance_linkprops : 'ã×ÅÔ ÓÓÙÌÏË',
+	appearance_textprops : 'ó×ÏÊÓÔ×Á ÔÅËÓÔÁ',
+	bgcolor : 'ã×ÅÔ ÆÏÎÁ',
+	bgimage : 'æÏÎÏ×ÏÅ ÉÚÏÂÒÁÖÅÎÉÅ',
+	left_margin : 'ïÔÓÔÕÐ ÓÌÅ×Á',
+	right_margin : 'ïÔÓÔÕÐ ÓÐÒÁ×Á',
+	top_margin : 'ïÔÓÔÕÐ Ó×ÅÒÈÕ',
+	bottom_margin : 'ïÔÓÔÕÐ ÓÎÉÚÕ',
+	text_color : 'ã×ÅÔ ÔÅËÓÔÁ',
+	font_size : 'òÁÚÍÅÒ ÛÒÉÆÔÁ',
+	font_face : 'ûÒÉÆÔ',
+	link_color : 'ã×ÅÔ ÓÓÙÌËÉ',
+	hover_color : 'ã×ÅÔ ÐÒÉ ÎÁ×ÅÄÅÎÉÉ ÎÁ ÓÓÙÌËÕ',
+	visited_color : 'ã×ÅÔ ÐÏÓÅÝÅÎÎÏÊ ÓÓÙÌËÉ',
+	active_color : 'ã×ÅÔ ÁËÔÉ×ÎÏÊ ÓÓÙÌËÉ',
+	textcolor : 'ã×ÅÔ',
+	fontsize : 'òÁÚÍÅÒ ÛÒÉÆÔÁ',
+	fontface : 'ôÉÐ ÛÒÉÆÔÁ',
+	meta_index_follow : 'éÎÄÅËÓÉÒÏ×ÁÔØ É ÓÌÅÄÏ×ÁÔØ ÐÏ ÓÓÙÌËÁÍ',
+	meta_index_nofollow : 'éÎÄÅËÓÉÒÏ×ÁÔØ É ÎÅ ÓÌÅÄÏ×ÁÔØ ÐÏ ÓÓÙÌËÁÍ',
+	meta_noindex_follow : 'îÅ ÉÎÄÅËÓÉÒÏ×ÁÔØ, ÎÏ ÓÌÅÄÏ×ÁÔØ ÐÏ ÓÓÙÌËÁÍ',
+	meta_noindex_nofollow : 'îÅ ÉÎÄÅËÓÉÒÏ×ÁÔØ É ÎÅ ÓÌÅÄÏ×ÁÔØ ÐÏ ÓÓÙÌËÁÍ',
+	appearance_style : 'ôÁÂÌÉÃÁ ÓÔÉÌÅÊ É Ó×ÏÊÓÔ×Á ÓÔÉÌÑ',
+	stylesheet : 'ôÁÂÌÉÃÁ ÓÔÉÌÅÊ',
+	style : 'óÔÉÌØ',
+	author : 'á×ÔÏÒ',
+	copyright : 'á×ÔÏÒÓËÏÅ ÐÒÁ×Ï',
+	add : 'äÏÂÁ×ÉÔØ ÎÏ×ÙÊ ÜÌÅÍÅÎÔ',
+	remove : 'õÄÁÌÉÔØ ×ÙÄÅÌÅÎÎÙÊ ÜÌÅÍÅÎÔ',
+	moveup : 'ðÅÒÅÍÅÓÔÉÔØ ×ÙÂÒÁÎÎÙÊ ÜÌÅÍÅÎÔ ××ÅÒÈ',
+	movedown : 'ðÅÒÅÍÅÓÔÉÔØ ×ÙÄÅÌÅÎÎÙÊ ÜÌÅÍÅÎÔ ×ÎÉÚ',
+	head_elements : 'üÌÅÍÅÎÔ ÇÌÁ×ÎÙÊ',
+	info : 'éÎÆÏÒÍÁÃÉÑ',
+	info_text : '',
+	add_title : 'üÌÅÍÅÎÔ ÎÁÚ×ÁÎÉÅ',
+	add_meta : 'üÌÅÍÅÎÔ ÍÅÔÁ',
+	add_script : 'üÌÅÍÅÎÔ ÓËÒÉÐÔ',
+	add_style : 'üÌÅÍÅÎÔ ÓÔÉÌØ',
+	add_link : 'üÌÅÍÅÎÔ ÓÓÙÌËÁ',
+	add_base : 'üÌÅÍÅÎÔ ÂÁÚÏ×ÙÊ',
+	add_comment : 'üÌÅÍÅÎÔ ËÏÍÍÅÎÔÁÒÉÊ',
+	title_element : 'üÌÅÍÅÎÔ ÎÁÚ×ÁÎÉÅ',
+	script_element : 'üÌÅÍÅÎÔ ÓËÒÉÐÔ',
+	style_element : 'üÌÅÍÅÎÔ ÓÔÉÌØ',
+	base_element : 'üÌÅÍÅÎÔ ÂÁÚÏ×ÙÊ',
+	link_element : 'üÌÅÍÅÎÔ ÓÓÙÌËÁ',
+	meta_element : 'üÌÅÍÅÎÔ ÍÅÔÁ',
+	comment_element : 'ëÏÍÍÅÎÔÁÒÉÊ',
+	src : 'éÓÔÏÞÎÉË',
+	language : 'ñÚÙË',
+	href : 'Href',
+	target : 'ãÅÌØ',
+	rel : '÷ÙÐ',
+	type : 'ôÉÐ',
+	charset : 'ëÏÄÉÒÏ×ËÁ',
+	defer : 'úÁÄÅÒÖËÁ',
+	media : 'íÅÄÉÁ',
+	properties : 'ó×ÏÊÓÔ×Á',
+	name : 'éÍÑ',
+	value : 'úÎÁÞÅÎÉÅ',
+	content : 'ëÏÎÔÅÎÔ',
+	rel : '÷ÙÐ',
+	rev : 'ïÂÒ',
+	hreflang : 'Href ÑÚÙË',
+	general_props : 'ïÓÎÏ×ÎÙÅ',
+	advanced_props : 'äÏÐÏÌÎÉÔÅÌØÎÙÅ',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/si.js b/tinyMCE/plugins/fullpage/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/si.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/sk.js b/tinyMCE/plugins/fullpage/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/sk.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/sq.js b/tinyMCE/plugins/fullpage/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..cb8f01dcd0c0ad97aeb8123ba79c49a833740045
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/sq.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+        title : 'Te dhenat  dokumentit',
+        desc : 'Te dhenat  dokumentit',
+        meta_tab : 'Te pergjithshme',
+        appearance_tab : 'Pamja',
+        advanced_tab : 'E avancuar',
+        meta_props : 'Informacioni Meta',
+        langprops : 'Gjuha dhe kodimi',
+        meta_title : 'Titulli',
+        meta_keywords : 'Fjalet çeles',
+        meta_description : 'Pershkrimi',
+        meta_robots : 'Robotet',
+        doctypes : 'Tipi i Documentit',
+        langcode : 'Kodi i gjuhes',
+        langdir : 'Drejtimi i gjuhes',
+        ltr : 'Nga e majta ne te djathte',
+        rtl : 'Nga e djathta ne te majte',
+        xml_pi : 'Deklarimi XML',
+        encoding : 'Kodimi i karaktereve',
+        appearance_bgprops : 'Te dhenat e sfondit',
+        appearance_marginprops : 'Cepat e \'Body\'',
+        appearance_linkprops : 'Ngjyrat e lidhjes',
+        appearance_textprops : 'Te dhenat e tekstit',
+        bgcolor : 'Ngjyra e sfondit',
+        bgimage : 'Imazhi ne sfond',
+        left_margin : 'Cepi i majte',
+        right_margin : 'Cepi i djathe',
+        top_margin : 'Cepi i siperm',
+        bottom_margin : 'Cepi i poshtem',
+        text_color : 'Ngjyra e tekstit',
+        font_size : 'Madhesia e fontit',
+        font_face : 'Fytyra e fontit',
+        link_color : 'Ngjyra e lidhjes'',
+        hover_color : 'Ngjyra e siperme',
+        visited_color : 'Ngjyra e vizituar',
+        active_color : 'Ngjyra aktive',
+        textcolor : 'Ngjyra',
+        fontsize : 'Madhesia e fontit',
+        fontface : 'Familja  e fontit',
+        meta_index_follow : 'Indekso dhe ndiq lidhjet',
+        meta_index_nofollow : 'Indekso dhe mos ndiq lidhjet',
+        meta_noindex_follow : 'Mos indekso dhe ndiq lidhjet',
+        meta_noindex_nofollow : 'Mos indekso dhe mos ndiq lidhjet',
+        appearance_style : 'Te dhenat e stilimeve dhe stileve',
+        stylesheet : 'Stilim',
+        style : 'Stili',
+        author : 'Autori',
+        copyright : 'E drejte',
+        add : 'Shto nje element',
+        remove : 'Hiq elementin e zgjedhur',
+        moveup : 'Levize elmentin e zgjedhur lart',
+        movedown : 'Levize elmentin e zgjedhur poshte',
+        head_elements : 'Elementet e kokes',
+        info : 'Informacion',
+        info_text : '',
+        add_title : 'Elementi \'Title\'',
+        add_meta : 'Elementi \'Meta\'',
+        add_script : 'Elementi Skript',
+        add_style : 'Elementi \'Style\'',
+        add_link : 'Elementi \'Link\'',
+        add_base : 'Elementi \'Base\'',
+        add_comment : 'Nyeja \'Comment\'',
+        title_element : 'Elementi \'Title\'',
+        script_element : 'Elementi \'Script\'',
+        style_element : 'Elementi \'Style\'',
+        base_element : 'Elementi \'Base\'',
+        link_element : 'Elementi \'Link\'',
+        meta_element : 'Elementi \'Meta\'',
+        comment_element : 'Comment',
+        src : 'Src',
+        language : 'Language',
+        href : 'Href',
+        target : 'Target',
+        rel : 'Rel',
+        type : 'Type',
+        charset : 'Charset',
+        defer : 'Defer',
+        media : 'Media',
+        properties : 'Properties',
+        name : 'Name',
+        value : 'Value',
+        content : 'Content',
+        rel : 'Rel',
+        rev : 'Rev',
+        hreflang : 'Href lang',
+        general_props : 'General',
+        advanced_props : 'Advanced',
+        delta_width : 0,
+        delta_height : 0
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/fullpage/langs/sr.js b/tinyMCE/plugins/fullpage/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..aacda001256a78234ceb9e124fb3cb632041b091
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/sr.js
@@ -0,0 +1,92 @@
+// SR lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Podešavanja dokumenta',
+	desc : 'Podešavanja dokumenta',
+	meta_tab : 'Generalno',
+	appearance_tab : 'Izgled',
+	advanced_tab : 'Napredno',
+	meta_props : 'Meta informacije',
+	langprops : 'Jezik i encoding',
+	meta_title : 'Naslov',
+	meta_keywords : 'Ključne reči',
+	meta_description : 'Opis',
+	meta_robots : 'Roboti',
+	doctypes : 'Doctype',
+	langcode : 'Jezički kod',
+	langdir : 'Jezički pravac',
+	ltr : 'Levo ka desno',
+	rtl : 'Desno ka levo',
+	xml_pi : 'XML deklaracija',
+	encoding : 'Enkoding',
+	appearance_bgprops : 'Podešavanja pozadine',
+	appearance_marginprops : 'Margine',
+	appearance_linkprops : 'Boje linka',
+	appearance_textprops : 'Podešavanja teksta',
+	bgcolor : 'Pozadinska boja',
+	bgimage : 'Pozadinska slika',
+	left_margin : 'Leva margina',
+	right_margin : 'Desna margina',
+	top_margin : 'Gornja margina',
+	bottom_margin : 'Donja margina',
+	text_color : 'Boja teksta',
+	font_size : 'Veličina fonta',
+	font_face : 'Izgled fonta',
+	link_color : 'Boja linka',
+	hover_color : 'Hover boja',
+	visited_color : 'Posećen link boja',
+	active_color : 'Aktivni link boja',
+	textcolor : 'Boja',
+	fontsize : 'Veličina fonta',
+	fontface : 'Izgled fonta',
+	meta_index_follow : 'Index i praćenje linkova',
+	meta_index_nofollow : 'Index i ne praćenje linkova',
+	meta_noindex_follow : 'Bez indeksa ali praćenje linkova',
+	meta_noindex_nofollow : 'Bez indeksa i bez praćenja linkova',
+	appearance_style : 'Stil i podešavanja stilova',
+	stylesheet : 'Stilovi',
+	style : 'Stil',
+	author : 'Autor',
+	copyright : 'Copyright',
+	add : 'Dodavanje novog elementa',
+	remove : 'Izbacivanje odabranog elementa',
+	moveup : 'Pomeranje odabranog elementa gore',
+	movedown : 'Pomeranje odabranog elementa dole',
+	head_elements : 'Elementi head-a',
+	info : 'Informacije',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment čvor',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Podešavanja',
+	name : 'Ime',
+	value : 'Vrednost',
+	content : 'Sadržaj',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'Generalno',
+	advanced_props : 'Napredno',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/sv.js b/tinyMCE/plugins/fullpage/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/sv.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/sv_utf8.js b/tinyMCE/plugins/fullpage/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/sv_utf8.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/tr.js b/tinyMCE/plugins/fullpage/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/tr.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/uk.js b/tinyMCE/plugins/fullpage/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..814cb2ca108eafdd990c06fa3479f9959b9b4875
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/uk.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Властивості документа',
+	desc : 'Властивості документа',
+	meta_tab : 'Основні',
+	appearance_tab : 'Видимість',
+	advanced_tab : 'Додаткові',
+	meta_props : 'Мета інформація',
+	langprops : 'Мова і кодування',
+	meta_title : 'Назва',
+	meta_keywords : 'Ключове слово',
+	meta_description : 'Опис',
+	meta_robots : 'Роботи',
+	doctypes : 'Тип документа (Doctype)',
+	langcode : 'Код мови',
+	langdir : 'Напрямок письма',
+	ltr : 'Зліва направо',
+	rtl : 'Справа наліво',
+	xml_pi : 'XML декларація',
+	encoding : 'Кодування',
+	appearance_bgprops : 'Властивості фону',
+	appearance_marginprops : 'Відступи',
+	appearance_linkprops : 'Колір посилань',
+	appearance_textprops : 'Властивості тексту',
+	bgcolor : 'Колір фону',
+	bgimage : 'Фонове зображення',
+	left_margin : 'Відступ зліва',
+	right_margin : 'Відступ справа',
+	top_margin : 'Відступ згори',
+	bottom_margin : 'Відступ знизу',
+	text_color : 'Колір тексту',
+	font_size : 'Розмір шрифту',
+	font_face : 'Шрифт',
+	link_color : 'Колір посилання',
+	hover_color : 'Колір при наведенні на посилання',
+	visited_color : 'Колір відвідуваного посилання',
+	active_color : 'Колір активного посилання',
+	textcolor : 'Колір',
+	fontsize : 'Розмір шрифту',
+	fontface : 'Тип шрифту',
+	meta_index_follow : 'Індексувати і йти за посиланнями',
+	meta_index_nofollow : 'Індексувати і не йти за посиланнями',
+	meta_noindex_follow : 'Не індексувати, але йти за посиланнями',
+	meta_noindex_nofollow : 'Не індексувати і не йти за посиланнями',
+	appearance_style : 'Таблиця стилів й властивості стилю',
+	stylesheet : 'Таблиця стилів',
+	style : 'Стиль',
+	author : 'Автор',
+	copyright : 'Авторське право',
+	add : 'Додати новий елемент',
+	remove : 'Видалити обраний елемент',
+	moveup : 'Перемістити обраний елемент вгору',
+	movedown : 'Перемістити обраний елемент вниз',
+	head_elements : 'Елемент головний',
+	info : 'Інформація',
+	info_text : '',
+	add_title : 'Елемент назва',
+	add_meta : 'Елемент позначка',
+	add_script : 'Елемент скрипт',
+	add_style : 'Елемент стиль',
+	add_link : 'Елемент посилання',
+	add_base : 'Елемент базовий',
+	add_comment : 'Елемент коментар',
+	title_element : 'Елемент назва',
+	script_element : 'Елемент скрипт',
+	style_element : 'Елемент стиль',
+	base_element : 'Елемент базовий',
+	link_element : 'Елемент посилання',
+	meta_element : 'Елемент позначка',
+	comment_element : 'Коментар',
+	src : 'Джерело',
+	language : 'Мова',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Тип',
+	charset : 'Кодування',
+	defer : 'Затримка',
+	media : 'Медіа',
+	properties : 'Властивості',
+	name : 'Ім\'я',
+	value : 'Значення',
+	content : 'Контент',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'Основні',
+	advanced_props : 'Додаткові',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/uk_CP1251.js b/tinyMCE/plugins/fullpage/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..950ad2ff159c243c57da122f686df31a4f0be843
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/uk_CP1251.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Âëàñòèâîñò³ äîêóìåíòà',
+	desc : 'Âëàñòèâîñò³ äîêóìåíòà',
+	meta_tab : 'Îñíîâí³',
+	appearance_tab : 'Âèäèì³ñòü',
+	advanced_tab : 'Äîäàòêîâ³',
+	meta_props : 'Ìåòà ³íôîðìàö³ÿ',
+	langprops : 'Ìîâà ³ êîäóâàííÿ',
+	meta_title : 'Íàçâà',
+	meta_keywords : 'Êëþ÷îâå ñëîâî',
+	meta_description : 'Îïèñ',
+	meta_robots : 'Ðîáîòè',
+	doctypes : 'Òèï äîêóìåíòà (Doctype)',
+	langcode : 'Êîä ìîâè',
+	langdir : 'Íàïðÿìîê ïèñüìà',
+	ltr : 'Çë³âà íàïðàâî',
+	rtl : 'Ñïðàâà íàë³âî',
+	xml_pi : 'XML äåêëàðàö³ÿ',
+	encoding : 'Êîäóâàííÿ',
+	appearance_bgprops : 'Âëàñòèâîñò³ ôîíó',
+	appearance_marginprops : '³äñòóïè',
+	appearance_linkprops : 'Êîë³ð ïîñèëàíü',
+	appearance_textprops : 'Âëàñòèâîñò³ òåêñòó',
+	bgcolor : 'Êîë³ð ôîíó',
+	bgimage : 'Ôîíîâå çîáðàæåííÿ',
+	left_margin : '³äñòóï çë³âà',
+	right_margin : '³äñòóï ñïðàâà',
+	top_margin : '³äñòóï çãîðè',
+	bottom_margin : '³äñòóï çíèçó',
+	text_color : 'Êîë³ð òåêñòó',
+	font_size : 'Ðîçì³ð øðèôòó',
+	font_face : 'Øðèôò',
+	link_color : 'Êîë³ð ïîñèëàííÿ',
+	hover_color : 'Êîë³ð ïðè íàâåäåíí³ íà ïîñèëàííÿ',
+	visited_color : 'Êîë³ð â³äâ³äóâàíîãî ïîñèëàííÿ',
+	active_color : 'Êîë³ð àêòèâíîãî ïîñèëàííÿ',
+	textcolor : 'Êîë³ð',
+	fontsize : 'Ðîçì³ð øðèôòó',
+	fontface : 'Òèï øðèôòó',
+	meta_index_follow : '²íäåêñóâàòè ³ éòè çà ïîñèëàííÿìè',
+	meta_index_nofollow : '²íäåêñóâàòè ³ íå éòè çà ïîñèëàííÿìè',
+	meta_noindex_follow : 'Íå ³íäåêñóâàòè, àëå éòè çà ïîñèëàííÿìè',
+	meta_noindex_nofollow : 'Íå ³íäåêñóâàòè ³ íå éòè çà ïîñèëàííÿìè',
+	appearance_style : 'Òàáëèöÿ ñòèë³â é âëàñòèâîñò³ ñòèëþ',
+	stylesheet : 'Òàáëèöÿ ñòèë³â',
+	style : 'Ñòèëü',
+	author : 'Àâòîð',
+	copyright : 'Àâòîðñüêå ïðàâî',
+	add : 'Äîäàòè íîâèé åëåìåíò',
+	remove : 'Âèäàëèòè îáðàíèé åëåìåíò',
+	moveup : 'Ïåðåì³ñòèòè îáðàíèé åëåìåíò âãîðó',
+	movedown : 'Ïåðåì³ñòèòè îáðàíèé åëåìåíò âíèç',
+	head_elements : 'Åëåìåíò ãîëîâíèé',
+	info : '²íôîðìàö³ÿ',
+	info_text : '',
+	add_title : 'Åëåìåíò íàçâà',
+	add_meta : 'Åëåìåíò ïîçíà÷êà',
+	add_script : 'Åëåìåíò ñêðèïò',
+	add_style : 'Åëåìåíò ñòèëü',
+	add_link : 'Åëåìåíò ïîñèëàííÿ',
+	add_base : 'Åëåìåíò áàçîâèé',
+	add_comment : 'Åëåìåíò êîìåíòàð',
+	title_element : 'Åëåìåíò íàçâà',
+	script_element : 'Åëåìåíò ñêðèïò',
+	style_element : 'Åëåìåíò ñòèëü',
+	base_element : 'Åëåìåíò áàçîâèé',
+	link_element : 'Åëåìåíò ïîñèëàííÿ',
+	meta_element : 'Åëåìåíò ïîçíà÷êà',
+	comment_element : 'Êîìåíòàð',
+	src : 'Äæåðåëî',
+	language : 'Ìîâà',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Òèï',
+	charset : 'Êîäóâàííÿ',
+	defer : 'Çàòðèìêà',
+	media : 'Ìåä³à',
+	properties : 'Âëàñòèâîñò³',
+	name : '²ì\'ÿ',
+	value : 'Çíà÷åííÿ',
+	content : 'Êîíòåíò',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'Îñíîâí³',
+	advanced_props : 'Äîäàòêîâ³',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/uk_KOI8-U.js b/tinyMCE/plugins/fullpage/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc1ef0e2f8b428969157fd700390c653d58c79d3
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/uk_KOI8-U.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÄÏËÕÍÅÎÔÁ',
+	desc : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÄÏËÕÍÅÎÔÁ',
+	meta_tab : 'ïÓÎÏ×Φ',
+	appearance_tab : '÷ÉÄÉͦÓÔØ',
+	advanced_tab : 'äÏÄÁÔËÏצ',
+	meta_props : 'íÅÔÁ ¦ÎÆÏÒÍÁæÑ',
+	langprops : 'íÏ×Á ¦ ËÏÄÕ×ÁÎÎÑ',
+	meta_title : 'îÁÚ×Á',
+	meta_keywords : 'ëÌÀÞÏ×Å ÓÌÏ×Ï',
+	meta_description : 'ïÐÉÓ',
+	meta_robots : 'òÏÂÏÔÉ',
+	doctypes : 'ôÉÐ ÄÏËÕÍÅÎÔÁ (Doctype)',
+	langcode : 'ëÏÄ ÍÏ×É',
+	langdir : 'îÁÐÒÑÍÏË ÐÉÓØÍÁ',
+	ltr : 'ú̦×Á ÎÁÐÒÁ×Ï',
+	rtl : 'óÐÒÁ×Á ÎÁ̦×Ï',
+	xml_pi : 'XML ÄÅËÌÁÒÁæÑ',
+	encoding : 'ëÏÄÕ×ÁÎÎÑ',
+	appearance_bgprops : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÆÏÎÕ',
+	appearance_marginprops : '÷¦ÄÓÔÕÐÉ',
+	appearance_linkprops : 'ëÏÌ¦Ò ÐÏÓÉÌÁÎØ',
+	appearance_textprops : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÔÅËÓÔÕ',
+	bgcolor : 'ëÏÌ¦Ò ÆÏÎÕ',
+	bgimage : 'æÏÎÏ×Å ÚÏÂÒÁÖÅÎÎÑ',
+	left_margin : '÷¦ÄÓÔÕÐ Ú̦×Á',
+	right_margin : '÷¦ÄÓÔÕÐ ÓÐÒÁ×Á',
+	top_margin : '÷¦ÄÓÔÕÐ ÚÇÏÒÉ',
+	bottom_margin : '÷¦ÄÓÔÕÐ ÚÎÉÚÕ',
+	text_color : 'ëÏÌ¦Ò ÔÅËÓÔÕ',
+	font_size : 'òÏÚÍ¦Ò ÛÒÉÆÔÕ',
+	font_face : 'ûÒÉÆÔ',
+	link_color : 'ëÏÌ¦Ò ÐÏÓÉÌÁÎÎÑ',
+	hover_color : 'ëÏÌ¦Ò ÐÒÉ ÎÁ×ÅÄÅÎΦ ÎÁ ÐÏÓÉÌÁÎÎÑ',
+	visited_color : 'ëÏÌ¦Ò ×¦ÄצÄÕ×ÁÎÏÇÏ ÐÏÓÉÌÁÎÎÑ',
+	active_color : 'ëÏÌ¦Ò ÁËÔÉ×ÎÏÇÏ ÐÏÓÉÌÁÎÎÑ',
+	textcolor : 'ëÏ̦Ò',
+	fontsize : 'òÏÚÍ¦Ò ÛÒÉÆÔÕ',
+	fontface : 'ôÉÐ ÛÒÉÆÔÕ',
+	meta_index_follow : '¶ÎÄÅËÓÕ×ÁÔÉ ¦ ÊÔÉ ÚÁ ÐÏÓÉÌÁÎÎÑÍÉ',
+	meta_index_nofollow : '¶ÎÄÅËÓÕ×ÁÔÉ ¦ ÎÅ ÊÔÉ ÚÁ ÐÏÓÉÌÁÎÎÑÍÉ',
+	meta_noindex_follow : 'îÅ ¦ÎÄÅËÓÕ×ÁÔÉ, ÁÌÅ ÊÔÉ ÚÁ ÐÏÓÉÌÁÎÎÑÍÉ',
+	meta_noindex_nofollow : 'îÅ ¦ÎÄÅËÓÕ×ÁÔÉ ¦ ÎÅ ÊÔÉ ÚÁ ÐÏÓÉÌÁÎÎÑÍÉ',
+	appearance_style : 'ôÁÂÌÉÃÑ ÓÔÉÌ¦× Ê ×ÌÁÓÔÉ×ÏÓÔ¦ ÓÔÉÌÀ',
+	stylesheet : 'ôÁÂÌÉÃÑ ÓÔÉ̦×',
+	style : 'óÔÉÌØ',
+	author : 'á×ÔÏÒ',
+	copyright : 'á×ÔÏÒÓØËÅ ÐÒÁ×Ï',
+	add : 'äÏÄÁÔÉ ÎÏ×ÉÊ ÅÌÅÍÅÎÔ',
+	remove : '÷ÉÄÁÌÉÔÉ ÏÂÒÁÎÉÊ ÅÌÅÍÅÎÔ',
+	moveup : 'ðÅÒÅͦÓÔÉÔÉ ÏÂÒÁÎÉÊ ÅÌÅÍÅÎÔ ×ÇÏÒÕ',
+	movedown : 'ðÅÒÅͦÓÔÉÔÉ ÏÂÒÁÎÉÊ ÅÌÅÍÅÎÔ ×ÎÉÚ',
+	head_elements : 'åÌÅÍÅÎÔ ÇÏÌÏ×ÎÉÊ',
+	info : '¶ÎÆÏÒÍÁæÑ',
+	info_text : '',
+	add_title : 'åÌÅÍÅÎÔ ÎÁÚ×Á',
+	add_meta : 'åÌÅÍÅÎÔ ÐÏÚÎÁÞËÁ',
+	add_script : 'åÌÅÍÅÎÔ ÓËÒÉÐÔ',
+	add_style : 'åÌÅÍÅÎÔ ÓÔÉÌØ',
+	add_link : 'åÌÅÍÅÎÔ ÐÏÓÉÌÁÎÎÑ',
+	add_base : 'åÌÅÍÅÎÔ ÂÁÚÏ×ÉÊ',
+	add_comment : 'åÌÅÍÅÎÔ ËÏÍÅÎÔÁÒ',
+	title_element : 'åÌÅÍÅÎÔ ÎÁÚ×Á',
+	script_element : 'åÌÅÍÅÎÔ ÓËÒÉÐÔ',
+	style_element : 'åÌÅÍÅÎÔ ÓÔÉÌØ',
+	base_element : 'åÌÅÍÅÎÔ ÂÁÚÏ×ÉÊ',
+	link_element : 'åÌÅÍÅÎÔ ÐÏÓÉÌÁÎÎÑ',
+	meta_element : 'åÌÅÍÅÎÔ ÐÏÚÎÁÞËÁ',
+	comment_element : 'ëÏÍÅÎÔÁÒ',
+	src : 'äÖÅÒÅÌÏ',
+	language : 'íÏ×Á',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'ôÉÐ',
+	charset : 'ëÏÄÕ×ÁÎÎÑ',
+	defer : 'úÁÔÒÉÍËÁ',
+	media : 'íÅĦÁ',
+	properties : '÷ÌÁÓÔÉ×ÏÓÔ¦',
+	name : '¶Í\'Ñ',
+	value : 'úÎÁÞÅÎÎÑ',
+	content : 'ëÏÎÔÅÎÔ',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'ïÓÎÏ×Φ',
+	advanced_props : 'äÏÄÁÔËÏצ',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/vi.js b/tinyMCE/plugins/fullpage/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..6670bb6356b81dd18ef41e8f1cdb922e1941450f
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/vi.js
@@ -0,0 +1,92 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Thuộc tính văn bản',
+	desc : 'Thuộc tính văn bản',
+	meta_tab : 'Chung',
+	appearance_tab : 'Xuất hiện',
+	advanced_tab : 'Nâng cao',
+	meta_props : 'Thông tin siêu dữ liệu',
+	langprops : 'Ngôn ngữ và bộ mã',
+	meta_title : 'Tiêu đề',
+	meta_keywords : 'Từ khóa',
+	meta_description : 'Mô tả',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Mã ngôn ngữ',
+	langdir : 'Hướng ngôn ngữ',
+	ltr : 'Trái sang phải',
+	rtl : 'Phải sang trái',
+	xml_pi : 'Khai báo XML',
+	encoding : 'Bộ mã ký tự',
+	appearance_bgprops : 'Thuộc tính nền',
+	appearance_marginprops : 'Lề',
+	appearance_linkprops : 'Màu liên kết',
+	appearance_textprops : 'Thuộc tính văn bản',
+	bgcolor : 'Màu nền',
+	bgimage : 'Ảnh nền',
+	left_margin : 'Lề trái',
+	right_margin : 'Lề phải',
+	top_margin : 'Lề trên',
+	bottom_margin : 'Lề dưới',
+	text_color : 'Màu văn bản',
+	font_size : 'Kích thước font chữ',
+	font_face : 'Tên font',
+	link_color : 'Màu liên kết',
+	hover_color : 'Màu khi di chuột lên',
+	visited_color : 'Màu khi đã ghé thăm',
+	active_color : 'Màu khi nhấn',
+	textcolor : 'Màu chữ',
+	fontsize : 'Kích thước font chữ',
+	fontface : 'Tên font',
+	meta_index_follow : 'Chỉ mục và theo các liên kết',
+	meta_index_nofollow : 'Chỉ mục và không theo các liên kết',
+	meta_noindex_follow : 'Không phải chỉ mục nhưng theo các liên kết',
+	meta_noindex_nofollow : 'Không phải chỉ mục và không theo các liên kết',
+	appearance_style : 'Đinh dạng phong cách và thuộc tính phong cách',
+	stylesheet : 'Định dạng phong cách',
+	style : 'Phong cách',
+	author : 'Tác giả',
+	copyright : 'Bản quyền',
+	add : 'Thêm một thành phần mới',
+	remove : 'Xóa thành phần đã chọn',
+	moveup : 'Di chuyển thành phần đã chọn lên trên',
+	movedown : 'Di chuyển thành phần đã chọn xuống dưới',
+	head_elements : 'Mục đầu',
+	info : 'Thông tin',
+	info_text : '',
+	add_title : 'Thành phần tiêu đề',
+	add_meta : 'Thành phần siêu dữ liệu',
+	add_script : 'Thành phần Script',
+	add_style : 'Thành phần phong cách',
+	add_link : 'Thành phần liên kết',
+	add_base : 'Thành phần cơ sở',
+	add_comment : 'Nút chú thích',
+	title_element : 'Thành phần tiêu đề',
+	script_element : 'Thành phần Script',
+	style_element : 'Thành phần phong cách',
+	base_element : 'Thành phần cơ sở',
+	link_element : 'Thành phần liên kết',
+	meta_element : 'Thành phần siêu dữ liệu',
+	comment_element : 'Chú thích',
+	src : 'Src',
+	language : 'Ngôn ngữ',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/zh_cn.js b/tinyMCE/plugins/fullpage/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..d00d7e2a1777a3f953163c09f6fbe3e5a1eab993
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/zh_cn.js
@@ -0,0 +1,93 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('fullpage',{
+	title : 'ÎĵµÊôÐÔ',
+	desc : 'ÎĵµÊôÐÔ',
+	meta_tab : '³£¹æ',
+	appearance_tab : 'ÏÔʾ',
+	advanced_tab : '¸ß¼¶',
+	meta_props : 'MetaÐÅÏ¢',
+	langprops : 'ÓïÑԺͱàÂë',
+	meta_title : '±êÌâ',
+	meta_keywords : '¹Ø¼ü×Ö',
+	meta_description : 'ÃèÊö',
+	meta_robots : '»úÆ÷ÈË',
+	doctypes : 'Doctype',
+	langcode : 'ÓïÑÔ´úÂë',
+	langdir : 'ÎÄ×Ö·½Ïò',
+	ltr : '´Ó×óÍùÓÒ',
+	rtl : '´ÓÓÒÍù×ó',
+	xml_pi : 'XMLÉêÃ÷',
+	encoding : '×Ö·û±àÂë',
+	appearance_bgprops : '±³¾°ÊôÐÔ',
+	appearance_marginprops : 'Ò³Ãæ±ß¾à',
+	appearance_linkprops : 'Á´½ÓÑÕÉ«',
+	appearance_textprops : 'ÎÄ×ÖÊôÐÔ',
+	bgcolor : '±³¾°ÑÕÉ«',
+	bgimage : '±³¾°Í¼Æ¬',
+	left_margin : '×ó±ß¾à',
+	right_margin : 'Óұ߾à',
+	top_margin : 'Éϱ߾à',
+	bottom_margin : 'ϱ߾à',
+	text_color : 'ÎÄ×ÖÑÕÉ«',
+	font_size : '×ÖÌå´óС',
+	font_face : '×ÖÌå',
+	link_color : 'Á´½ÓÑÕÉ«',
+	hover_color : 'ÐüÍ£ÑÕÉ«',
+	visited_color : '·ÃÎʹýµÄÑÕÉ«',
+	active_color : '¼¤»îʱÑÕÉ«',
+	textcolor : 'ÑÕÉ«',
+	fontsize : '×ÖÌå´óС',
+	fontface : '×ÖÌå',
+	meta_index_follow : 'Ë÷Òý²¢¸úËæÁ´½Ó',
+	meta_index_nofollow : 'Ë÷Òýµ«²»¸úËæÁ´½Ó',
+	meta_noindex_follow : '²»Ë÷Òý£¬¸úËæÁ´½Ó',
+	meta_noindex_nofollow : '²»Ë÷ÒýÒ²²»¸úËæÁ´½Ó',
+	appearance_style : 'Ñùʽ±íºÍÑùʽÊôÐÔ',
+	stylesheet : 'Ñùʽ±í',
+	style : 'Ñùʽ',
+	author : '×÷Õß',
+	copyright : '°æÈ¨',
+	add : 'Ìí¼ÓÐÂÔªËØ',
+	remove : 'ÒÆ³ýÑ¡ÖеÄÔªËØ',
+	moveup : 'ÏòÉÏÒÆ¶¯Ñ¡ÖеÄÔªËØ',
+	movedown : 'ÏòÏÂÒÆ¶¯Ñ¡ÖеÄÔªËØ',
+	head_elements : 'Í·ÔªËØ',
+	info : 'ÐÅÏ¢',
+	info_text : '',
+	add_title : 'TitleÔªËØ',
+	add_meta : 'MetaÔªËØ',
+	add_script : 'ScriptÔªËØ',
+	add_style : 'StyleÔªËØ',
+	add_link : 'LinkÔªËØ',
+	add_base : 'BaseÔªËØ',
+	add_comment : 'Comment½Úµã',
+	title_element : 'TitleÔªËØ',
+	script_element : 'ScriptÔªËØ',
+	style_element : 'StyleÔªËØ',
+	base_element : 'BaseÔªËØt',
+	link_element : 'LinkÔªËØ',
+	meta_element : 'MetaÔªËØ',
+	comment_element : '×¢ÊÍ',
+	src : 'Src',
+	language : 'ÓïÑÔ',
+	href : 'Á´½Ó',
+	target : 'Ä¿±ê',
+	rel : 'Rel',
+	type : 'ÀàÐÍ',
+	charset : '×Ö·û¼¯',
+	defer : 'ÑÓ³Ù',
+	media : 'ýÌå',
+	properties : 'ÊôÐÔ',
+	name : 'Ãû³Æ',
+	value : 'Öµ',
+	content : 'ÄÚÈÝ',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : '³£¹æ',
+	advanced_props : '¸ß¼¶',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/zh_cn_utf8.js b/tinyMCE/plugins/fullpage/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..4a5de90ccfba123c2ecf89191784f1900abfb0c6
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/zh_cn_utf8.js
@@ -0,0 +1,93 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('fullpage',{
+	title : '文档属性',
+	desc : '文档属性',
+	meta_tab : '常规',
+	appearance_tab : '显示',
+	advanced_tab : '高级',
+	meta_props : 'Meta信息',
+	langprops : '语言和编码',
+	meta_title : '标题',
+	meta_keywords : '关键字',
+	meta_description : '描述',
+	meta_robots : '机器人',
+	doctypes : 'Doctype',
+	langcode : '语言代码',
+	langdir : '文字方向',
+	ltr : '从左往右',
+	rtl : '从右往左',
+	xml_pi : 'XML申明',
+	encoding : '字符编码',
+	appearance_bgprops : '背景属性',
+	appearance_marginprops : '页面边距',
+	appearance_linkprops : '链接颜色',
+	appearance_textprops : '文字属性',
+	bgcolor : '背景颜色',
+	bgimage : '背景图片',
+	left_margin : '左边距',
+	right_margin : '右边距',
+	top_margin : '上边距',
+	bottom_margin : '下边距',
+	text_color : '文字颜色',
+	font_size : '字体大小',
+	font_face : '字体',
+	link_color : '链接颜色',
+	hover_color : '悬停颜色',
+	visited_color : '访问过的颜色',
+	active_color : '激活时颜色',
+	textcolor : '颜色',
+	fontsize : '字体大小',
+	fontface : '字体',
+	meta_index_follow : '索引并跟随链接',
+	meta_index_nofollow : '索引但不跟随链接',
+	meta_noindex_follow : '不索引,跟随链接',
+	meta_noindex_nofollow : '不索引也不跟随链接',
+	appearance_style : '样式表和样式属性',
+	stylesheet : '样式表',
+	style : '样式',
+	author : '作者',
+	copyright : '版权',
+	add : '添加新元素',
+	remove : '移除选中的元素',
+	moveup : '向上移动选中的元素',
+	movedown : '向下移动选中的元素',
+	head_elements : '头元素',
+	info : '信息',
+	info_text : '',
+	add_title : 'Title元素',
+	add_meta : 'Meta元素',
+	add_script : 'Script元素',
+	add_style : 'Style元素',
+	add_link : 'Link元素',
+	add_base : 'Base元素',
+	add_comment : 'Comment节点',
+	title_element : 'Title元素',
+	script_element : 'Script元素',
+	style_element : 'Style元素',
+	base_element : 'Base元素t',
+	link_element : 'Link元素',
+	meta_element : 'Meta元素',
+	comment_element : '注释',
+	src : 'Src',
+	language : '语言',
+	href : '链接',
+	target : '目标',
+	rel : 'Rel',
+	type : '类型',
+	charset : '字符集',
+	defer : '延迟',
+	media : '媒体',
+	properties : '属性',
+	name : '名称',
+	value : '值',
+	content : '内容',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : '常规',
+	advanced_props : '高级',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/zh_tw.js b/tinyMCE/plugins/fullpage/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/zh_tw.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullpage/langs/zh_tw_utf8.js b/tinyMCE/plugins/fullpage/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..1864d3d5215ec55e1992fa321df94da96ff29278
--- /dev/null
+++ b/tinyMCE/plugins/fullpage/langs/zh_tw_utf8.js
@@ -0,0 +1,92 @@
+// UK lang variables
+
+tinyMCE.addToLang('fullpage',{
+	title : 'Document properties',
+	desc : 'Document properties',
+	meta_tab : 'General',
+	appearance_tab : 'Appearance',
+	advanced_tab : 'Advanced',
+	meta_props : 'Meta information',
+	langprops : 'Language and encoding',
+	meta_title : 'Title',
+	meta_keywords : 'Keywords',
+	meta_description : 'Description',
+	meta_robots : 'Robots',
+	doctypes : 'Doctype',
+	langcode : 'Language code',
+	langdir : 'Language direction',
+	ltr : 'Left to right',
+	rtl : 'Right to left',
+	xml_pi : 'XML declaration',
+	encoding : 'Character encoding',
+	appearance_bgprops : 'Background properties',
+	appearance_marginprops : 'Body margins',
+	appearance_linkprops : 'Link colors',
+	appearance_textprops : 'Text properties',
+	bgcolor : 'Background color',
+	bgimage : 'Background image',
+	left_margin : 'Left margin',
+	right_margin : 'Right margin',
+	top_margin : 'Top margin',
+	bottom_margin : 'Bottom margin',
+	text_color : 'Text color',
+	font_size : 'Font size',
+	font_face : 'Font face',
+	link_color : 'Link color',
+	hover_color : 'Hover color',
+	visited_color : 'Visited color',
+	active_color : 'Active color',
+	textcolor : 'Color',
+	fontsize : 'Font size',
+	fontface : 'Font family',
+	meta_index_follow : 'Index and follow the links',
+	meta_index_nofollow : 'Index and don\'t follow the links',
+	meta_noindex_follow : 'Do not index but follow the links',
+	meta_noindex_nofollow : 'Do not index and don\'t follow the links',
+	appearance_style : 'Stylesheet and style properties',
+	stylesheet : 'Stylesheet',
+	style : 'Style',
+	author : 'Author',
+	copyright : 'Copyright',
+	add : 'Add new element',
+	remove : 'Remove selected element',
+	moveup : 'Move selected element up',
+	movedown : 'Move selected element down',
+	head_elements : 'Head elements',
+	info : 'Information',
+	info_text : '',
+	add_title : 'Title element',
+	add_meta : 'Meta element',
+	add_script : 'Script element',
+	add_style : 'Style element',
+	add_link : 'Link element',
+	add_base : 'Base element',
+	add_comment : 'Comment node',
+	title_element : 'Title element',
+	script_element : 'Script element',
+	style_element : 'Style element',
+	base_element : 'Base element',
+	link_element : 'Link element',
+	meta_element : 'Meta element',
+	comment_element : 'Comment',
+	src : 'Src',
+	language : 'Language',
+	href : 'Href',
+	target : 'Target',
+	rel : 'Rel',
+	type : 'Type',
+	charset : 'Charset',
+	defer : 'Defer',
+	media : 'Media',
+	properties : 'Properties',
+	name : 'Name',
+	value : 'Value',
+	content : 'Content',
+	rel : 'Rel',
+	rev : 'Rev',
+	hreflang : 'Href lang',
+	general_props : 'General',
+	advanced_props : 'Advanced',
+	delta_width : 0,
+	delta_height : 0
+});
diff --git a/tinyMCE/plugins/fullscreen/css/page.css b/tinyMCE/plugins/fullscreen/css/page.css
new file mode 100644
index 0000000000000000000000000000000000000000..94f9debad4ad312d871dbd683668b380ed5f821a
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/css/page.css
@@ -0,0 +1,21 @@
+/* This class restores all CSS properties to that absolute positioning of fullscreen mode is correct */
+.mceFullscreenPos {
+	display: block !important;
+	position: static !important;
+	left: 0 !important;
+	top: 0 !important;
+	bottom: auto !important;
+	right: auto !important;
+	width: auto !important;
+	height: auto !important;
+	margin: 0 !important;
+	padding: 0 !important;
+	border: 0 !important;
+	overflow: visible;
+	z-index: 1 !important;
+	clear: both;
+}
+
+body.mceFullscreen {
+	overflow: hidden !important;
+}
diff --git a/tinyMCE/plugins/fullscreen/editor_plugin.js b/tinyMCE/plugins/fullscreen/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..4adb57e9b45d54600728ed5b510142c0a357f291
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('fullscreen');var TinyMCE_FullScreenPlugin={getInfo:function(){return{longname:'Fullscreen',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(!tinyMCE.settings['fullscreen_skip_plugin_css'])tinyMCE.importCSS(inst.getContainerWin().document,tinyMCE.baseURL+"/plugins/fullscreen/css/page.css")},getControlHTML:function(cn){switch(cn){case"fullscreen":return tinyMCE.getButtonHTML(cn,'lang_fullscreen_desc','{$pluginurl}/images/fullscreen.gif','mceFullScreen')}return""},execCommand:function(editor_id,element,command,user_interface,value){var inst;switch(command){case"mceFullScreen":inst=tinyMCE.getInstanceById(editor_id);if(tinyMCE.getParam('fullscreen_new_window'))this._toggleFullscreenWin(inst);else this._toggleFullscreen(inst);return true}return false},_toggleFullscreenWin:function(inst){if(tinyMCE.getParam('fullscreen_is_enabled')){window.opener.tinyMCE.execInstanceCommand(tinyMCE.getParam('fullscreen_editor_id'),'mceSetContent',false,tinyMCE.getContent(inst.editorId));top.close()}else{tinyMCE.setWindowArg('editor_id',inst.editorId);var win=window.open(tinyMCE.baseURL+"/plugins/fullscreen/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{win.resizeTo(screen.availWidth,screen.availHeight)}catch(e){}}},_toggleFullscreen:function(inst){var ds=inst.getData('fullscreen'),editorContainer,tableElm,iframe,vp,cw,cd,re,w,h,si,blo,delta=0,cell,row,fcml,bcml;cw=inst.getContainerWin();cd=cw.document;editorContainer=cd.getElementById(inst.editorId+'_parent');tableElm=editorContainer.firstChild;iframe=inst.iframeElement;re=cd.getElementById(inst.editorId+'_resize');blo=document.getElementById('mce_fullscreen_blocker');fcm=new TinyMCE_Layer(inst.editorId+'_fcMenu');fcml=new TinyMCE_Layer(inst.editorId+'_fcMenu');bcml=new TinyMCE_Layer(inst.editorId+'_bcMenu');if(fcml.exists()&&fcml.isVisible()){tinyMCE.switchClass(inst.editorId+'_forecolor','mceMenuButton');fcml.hide()}if(bcml.exists()&&bcml.isVisible()){tinyMCE.switchClass(inst.editorId+'_backcolor','mceMenuButton');bcml.hide()}if(!ds.enabled){if(inst.toolbarElement){delta+=inst.toolbarElement.offsetHeight;cell=tableElm.tBodies[0].insertRow(0).insertCell(-1);cell.className='mceToolbarTop';cell.nowrap=true;ds.oldToolbarParent=inst.toolbarElement.parentNode;ds.toolbarHolder=document.createTextNode('...');cell.appendChild(ds.oldToolbarParent.replaceChild(ds.toolbarHolder,inst.toolbarElement))}ds.parents=[];vp=tinyMCE.getViewPort(cw);ds.scrollX=vp.left;ds.scrollY=vp.top;if(!tinyMCE.isOpera)tinyMCE.addCSSClass(cd.body,'mceFullscreen');tinyMCE.getParentNode(tableElm.parentNode,function(n){if(n.nodeName=='BODY')return true;if(n.nodeType==1)tinyMCE.addCSSClass(n,'mceFullscreenPos');return false});if(re)re.style.display='none';vp=tinyMCE.getViewPort(cw);ds.oldWidth=iframe.style.width?iframe.style.width:iframe.offsetWidth;ds.oldHeight=iframe.style.height?iframe.style.height:iframe.offsetHeight;ds.oldTWidth=tableElm.style.width?tableElm.style.width:tableElm.offsetWidth;ds.oldTHeight=tableElm.style.height?tableElm.style.height:tableElm.offsetHeight;if(ds.oldWidth&&ds.oldWidth.indexOf)ds.oldTWidth=ds.oldWidth.indexOf('%')!=-1?ds.oldWidth:ds.oldTWidth;if(!blo&&tinyMCE.isRealIE){blo=tinyMCE.createTag(document,'iframe',{id:'mce_fullscreen_blocker',src:'about:blank',frameBorder:0,width:vp.width,height:vp.height,style:'display: block; position: absolute; left: 0; top: 0; z-index: 999; margin: 0; padding: 0;'});document.body.appendChild(blo)}tableElm.style.position='absolute';tableElm.style.zIndex=1000;tableElm.style.left=tableElm.style.top='0';tableElm.style.width=vp.width+'px';tableElm.style.height=vp.height+'px';if(tinyMCE.isRealIE){iframe.style.width=vp.width+'px';iframe.style.height=vp.height+'px';w=iframe.parentNode.clientWidth-(tableElm.offsetWidth-vp.width);h=iframe.parentNode.clientHeight-(tableElm.offsetHeight-vp.height)}else{w=iframe.parentNode.clientWidth;h=iframe.parentNode.clientHeight}iframe.style.width=w+"px";iframe.style.height=(h+delta)+"px";tinyMCE.switchClass(inst.editorId+'_fullscreen','mceButtonSelected');ds.enabled=true;inst.useCSS=false}else{if(inst.toolbarElement){row=inst.toolbarElement.parentNode.parentNode;row.parentNode.removeChild(row);ds.oldToolbarParent.replaceChild(inst.toolbarElement,ds.toolbarHolder);ds.oldToolbarParent=null;ds.toolbarHolder=null}if(blo)blo.parentNode.removeChild(blo);si=0;tinyMCE.getParentNode(tableElm.parentNode,function(n){if(n.nodeName=='BODY')return true;if(n.nodeType==1)tinyMCE.removeCSSClass(n,'mceFullscreenPos')});if(re&&tinyMCE.getParam("theme_advanced_resizing",false))re.style.display='block';tableElm.style.position='static';tableElm.style.zIndex='';tableElm.style.width='';tableElm.style.height='';tableElm.style.width=ds.oldTWidth?ds.oldTWidth:'';tableElm.style.height=ds.oldTHeight?ds.oldTHeight:'';iframe.style.width=ds.oldWidth?ds.oldWidth:'';iframe.style.height=ds.oldHeight?ds.oldHeight:'';tinyMCE.switchClass(inst.editorId+'_fullscreen','mceButtonNormal');ds.enabled=false;tinyMCE.removeCSSClass(cd.body,'mceFullscreen');cw.scrollTo(ds.scrollX,ds.scrollY);inst.useCSS=false}},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(tinyMCE.getParam('fullscreen_is_enabled'))tinyMCE.switchClass(editor_id+'_fullscreen','mceButtonSelected');return true}};tinyMCE.addPlugin("fullscreen",TinyMCE_FullScreenPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/fullscreen/editor_plugin_src.js b/tinyMCE/plugins/fullscreen/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..0f8b83af89720ff6421fbe23bbbdc1d407d5f33f
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/editor_plugin_src.js
@@ -0,0 +1,230 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('fullscreen');
+
+var TinyMCE_FullScreenPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Fullscreen',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		if (!tinyMCE.settings['fullscreen_skip_plugin_css'])
+			tinyMCE.importCSS(inst.getContainerWin().document, tinyMCE.baseURL + "/plugins/fullscreen/css/page.css");
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "fullscreen":
+				return tinyMCE.getButtonHTML(cn, 'lang_fullscreen_desc', '{$pluginurl}/images/fullscreen.gif', 'mceFullScreen');
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		var inst;
+
+		// Handle commands
+		switch (command) {
+			case "mceFullScreen":
+				inst = tinyMCE.getInstanceById(editor_id);
+
+				if (tinyMCE.getParam('fullscreen_new_window'))
+					this._toggleFullscreenWin(inst);
+				else
+					this._toggleFullscreen(inst);
+
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	},
+
+	_toggleFullscreenWin : function(inst) {
+		if (tinyMCE.getParam('fullscreen_is_enabled')) {
+			// In fullscreen mode
+			window.opener.tinyMCE.execInstanceCommand(tinyMCE.getParam('fullscreen_editor_id'), 'mceSetContent', false, tinyMCE.getContent(inst.editorId));
+			top.close();
+		} else {
+			tinyMCE.setWindowArg('editor_id', inst.editorId);
+
+			var win = window.open(tinyMCE.baseURL + "/plugins/fullscreen/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);
+			try { win.resizeTo(screen.availWidth, screen.availHeight); } catch (e) {}
+		}
+	},
+
+	_toggleFullscreen : function(inst) {
+		var ds = inst.getData('fullscreen'), editorContainer, tableElm, iframe, vp, cw, cd, re, w, h, si, blo, delta = 0, cell, row, fcml, bcml;
+
+		cw = inst.getContainerWin();
+		cd = cw.document;
+		editorContainer = cd.getElementById(inst.editorId + '_parent');
+		tableElm = editorContainer.firstChild;
+		iframe = inst.iframeElement;
+		re = cd.getElementById(inst.editorId + '_resize');
+		blo = document.getElementById('mce_fullscreen_blocker');
+		fcm = new TinyMCE_Layer(inst.editorId + '_fcMenu');
+		fcml = new TinyMCE_Layer(inst.editorId + '_fcMenu');
+		bcml = new TinyMCE_Layer(inst.editorId + '_bcMenu');
+
+		if (fcml.exists() && fcml.isVisible()) {
+			tinyMCE.switchClass(inst.editorId + '_forecolor', 'mceMenuButton');
+			fcml.hide();
+		}
+
+		if (bcml.exists() && bcml.isVisible()) {
+			tinyMCE.switchClass(inst.editorId + '_backcolor', 'mceMenuButton');
+			bcml.hide();
+		}
+
+		if (!ds.enabled) {
+			// Handle External Toolbar
+			if (inst.toolbarElement) {
+				delta += inst.toolbarElement.offsetHeight;
+
+				cell = tableElm.tBodies[0].insertRow(0).insertCell(-1);
+				cell.className = 'mceToolbarTop';
+				cell.nowrap = true;
+
+				ds.oldToolbarParent = inst.toolbarElement.parentNode;
+				ds.toolbarHolder = document.createTextNode('...');
+
+				cell.appendChild(ds.oldToolbarParent.replaceChild(ds.toolbarHolder, inst.toolbarElement));
+			}
+
+			ds.parents = [];
+
+			vp = tinyMCE.getViewPort(cw);
+			ds.scrollX = vp.left;
+			ds.scrollY = vp.top;
+
+			// Opera has a bug restoring scrollbars
+			if (!tinyMCE.isOpera)
+				tinyMCE.addCSSClass(cd.body, 'mceFullscreen');
+
+			tinyMCE.getParentNode(tableElm.parentNode, function (n) {
+				if (n.nodeName == 'BODY')
+					return true;
+
+				if (n.nodeType == 1)
+					tinyMCE.addCSSClass(n, 'mceFullscreenPos');
+
+				return false;
+			});
+
+			if (re)
+				re.style.display = 'none';
+
+			vp = tinyMCE.getViewPort(cw);
+
+			ds.oldWidth = iframe.style.width ? iframe.style.width : iframe.offsetWidth;
+			ds.oldHeight = iframe.style.height ? iframe.style.height : iframe.offsetHeight;
+			ds.oldTWidth = tableElm.style.width ? tableElm.style.width : tableElm.offsetWidth;
+			ds.oldTHeight = tableElm.style.height ? tableElm.style.height : tableElm.offsetHeight;
+
+			// Handle % width
+			if (ds.oldWidth && ds.oldWidth.indexOf)
+				ds.oldTWidth = ds.oldWidth.indexOf('%') != -1 ? ds.oldWidth : ds.oldTWidth;
+
+			if (!blo && tinyMCE.isRealIE) {
+				blo = tinyMCE.createTag(document, 'iframe', {id : 'mce_fullscreen_blocker', src : 'about:blank', frameBorder : 0, width : vp.width, height : vp.height, style : 'display: block; position: absolute; left: 0; top: 0; z-index: 999; margin: 0; padding: 0;'});
+				document.body.appendChild(blo);
+			}
+
+			tableElm.style.position = 'absolute';
+			tableElm.style.zIndex = 1000;
+			tableElm.style.left = tableElm.style.top = '0';
+
+			tableElm.style.width = vp.width + 'px';
+			tableElm.style.height = vp.height + 'px';
+
+			if (tinyMCE.isRealIE) {
+				iframe.style.width = vp.width + 'px';
+				iframe.style.height = vp.height + 'px';
+
+				// Calc new width/height based on overflow
+				w = iframe.parentNode.clientWidth - (tableElm.offsetWidth - vp.width);
+				h = iframe.parentNode.clientHeight - (tableElm.offsetHeight - vp.height);
+			} else {
+				w = iframe.parentNode.clientWidth;
+				h = iframe.parentNode.clientHeight;
+			}
+
+			iframe.style.width = w + "px";
+			iframe.style.height = (h+delta) + "px";
+
+			tinyMCE.switchClass(inst.editorId + '_fullscreen', 'mceButtonSelected');
+			ds.enabled = true;
+
+			inst.useCSS = false;
+		} else {
+			// Handle External Toolbar
+			if (inst.toolbarElement) {
+				row = inst.toolbarElement.parentNode.parentNode;
+
+				row.parentNode.removeChild(row);
+
+				ds.oldToolbarParent.replaceChild(inst.toolbarElement, ds.toolbarHolder);
+
+				ds.oldToolbarParent = null;
+				ds.toolbarHolder = null;
+			}
+
+			if (blo)
+				blo.parentNode.removeChild(blo);
+
+			si = 0;
+			tinyMCE.getParentNode(tableElm.parentNode, function (n) {
+				if (n.nodeName == 'BODY')
+					return true;
+
+				if (n.nodeType == 1)
+					tinyMCE.removeCSSClass(n, 'mceFullscreenPos');
+			});
+
+			if (re && tinyMCE.getParam("theme_advanced_resizing", false))
+				re.style.display = 'block';
+
+			tableElm.style.position = 'static';
+			tableElm.style.zIndex = '';
+			tableElm.style.width = '';
+			tableElm.style.height = '';
+
+			tableElm.style.width = ds.oldTWidth ? ds.oldTWidth : '';
+			tableElm.style.height = ds.oldTHeight ? ds.oldTHeight : '';
+
+			iframe.style.width = ds.oldWidth ? ds.oldWidth : '';
+			iframe.style.height = ds.oldHeight ? ds.oldHeight : '';
+
+			tinyMCE.switchClass(inst.editorId + '_fullscreen', 'mceButtonNormal');
+			ds.enabled = false;
+
+			tinyMCE.removeCSSClass(cd.body, 'mceFullscreen');
+			cw.scrollTo(ds.scrollX, ds.scrollY);
+
+			inst.useCSS = false;
+		}
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		if (tinyMCE.getParam('fullscreen_is_enabled'))
+			tinyMCE.switchClass(editor_id + '_fullscreen', 'mceButtonSelected');
+
+		return true;
+	}
+};
+
+tinyMCE.addPlugin("fullscreen", TinyMCE_FullScreenPlugin);
diff --git a/tinyMCE/plugins/fullscreen/fullscreen.htm b/tinyMCE/plugins/fullscreen/fullscreen.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5e455cde4f953bffb9f053e490ba314b6d849bbf
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/fullscreen.htm
@@ -0,0 +1,91 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_fullscreen_title}</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+	<script language="javascript" type="text/javascript" src="../../tiny_mce.js"></script>
+	<script language="javascript" type="text/javascript">
+		function patchCallback(settings, key) {
+			if (settings[key])
+				settings[key] = "window.opener." + settings[key];
+		}
+
+		var settings = new Array();
+
+		// Clone array
+		for (var name in window.opener.tinyMCE.settings)
+			settings[name] = window.opener.tinyMCE.settings[name];
+
+		// Override options for fullscreen
+		for (var name in window.opener.tinyMCE.settings.fullscreen_settings)
+			settings[name] = window.opener.tinyMCE.settings.fullscreen_settings[name];
+
+		// Patch callbacks, make them point to window.opener
+		patchCallback(settings, 'urlconverter_callback');
+		patchCallback(settings, 'insertlink_callback');
+		patchCallback(settings, 'insertimage_callback');
+		patchCallback(settings, 'setupcontent_callback');
+		patchCallback(settings, 'save_callback');
+		patchCallback(settings, 'onchange_callback');
+		patchCallback(settings, 'init_instance_callback');
+		patchCallback(settings, 'file_browser_callback');
+		patchCallback(settings, 'cleanup_callback');
+		patchCallback(settings, 'execcommand_callback');
+		patchCallback(settings, 'oninit');
+
+		// Set options
+		settings['mode'] = 'exact';
+		settings['elements'] = 'fullscreenarea';
+		settings['ask'] = false;
+		settings['setupcontent_callback'] = 'setupContent';
+		settings['fullscreen_is_enabled'] = true;
+		settings['fullscreen_editor_id'] = window.opener.tinyMCE.getWindowArg("editor_id");
+		settings['theme_advanced_resizing'] = false;
+
+		// Init
+		tinyMCE.init(settings);
+		tinyMCE.documentBasePath = window.opener.tinyMCE.documentBasePath;
+
+		function setupContent(editor_id, body, doc) {
+			var inst = tinyMCE.getInstanceById(editor_id);
+			var content = window.opener.tinyMCE.getContent(tinyMCE.getParam('fullscreen_editor_id'));
+
+			// Setup title
+			var divElm = document.createElement("div");
+			divElm.innerHTML = tinyMCELang['lang_fullscreen_title'];
+			document.title = divElm.innerHTML;
+
+			// Get content
+			inst.execCommand('mceSetContent', false, content);
+		}
+
+		function unloadHandler(e) {
+			moveContent();
+		}
+
+		function moveContent() {
+			var doc = tinyMCE.isMSIE ? window.frames['mce_editor_0'].window.document : document.getElementById('mce_editor_0').contentDocument;
+			window.opener.tinyMCE.setInnerHTML(window.opener.tinyMCE.selectedInstance.getBody(), doc.body.innerHTML);
+		}
+
+		// Add onunload
+		tinyMCE.addEvent(window, "beforeunload", unloadHandler);
+
+		function doParentSubmit() {
+			moveContent();
+
+			if (window.opener.tinyMCE.selectedInstance.formElement.form)
+				window.opener.tinyMCE.selectedInstance.formElement.form.submit();
+
+			window.close();
+
+			return false;
+		}
+	</script>
+	<base target="_self" />
+</head>
+<body style="margin: 0; overflow: hidden; height: 100%" scrolling="no" scroll="no">
+<form onsubmit="doParentSubmit();" style="height: 100%">
+<textarea id="fullscreenarea" style="width: 100%; height: 100%"></textarea>
+</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/fullscreen/images/fullscreen.gif b/tinyMCE/plugins/fullscreen/images/fullscreen.gif
new file mode 100644
index 0000000000000000000000000000000000000000..66fa6d92177f171fd42883474b7dd093bd2d339a
Binary files /dev/null and b/tinyMCE/plugins/fullscreen/images/fullscreen.gif differ
diff --git a/tinyMCE/plugins/fullscreen/langs/ca.js b/tinyMCE/plugins/fullscreen/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a2ea6eca04bd49db72f14350d0bfc8c9ab9fd38
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ca.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Fullscreen mode',
+fullscreen_desc : 'Toggle fullscreen mode'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/cs.js b/tinyMCE/plugins/fullscreen/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..df6f362ad03ca35e579a9d95d59e33160bcab900
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/cs.js
@@ -0,0 +1,12 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.5 2006/01/11 14:25:48 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Na celou obrazovku',
+fullscreen_desc : 'Přepnout na celou obrazovku'
+});
+
diff --git a/tinyMCE/plugins/fullscreen/langs/cy.js b/tinyMCE/plugins/fullscreen/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..c527967c5ef69e07a6aeec0ce30ab849303f3d41
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/cy.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Dull sgr&icirc;n-lawn',
+fullscreen_desc : 'Gwrthdroi dull sgr&icirc;n-lawn'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/da.js b/tinyMCE/plugins/fullscreen/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..67232a7b0ca71d1f803c3bc65478e393846e9127
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/da.js
@@ -0,0 +1,5 @@
+// // DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen - Corr.:
+
+tinyMCE.addToLang('',{
+fullscreen_desc : 'Skift fuldsk&aelig;rms mode'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/de.js b/tinyMCE/plugins/fullscreen/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..e1d0fa7fa845e0bdc4d7540da3bed437433ec52a
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/de.js
@@ -0,0 +1,6 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Vollbild-Modus',
+fullscreen_desc : 'Vollbild-Modus umschalten'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/el.js b/tinyMCE/plugins/fullscreen/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed50faddbd09e9672d60b39986be48d0a5c44eb2
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/el.js
@@ -0,0 +1,6 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'ÊáôÜóôáóç ðëÞñïõò åéêüíáò',
+fullscreen_desc : 'ÁíôéóôñïöÞ êáôÜóôáóçò ðëÞñïõò åéêüíáò'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/en.js b/tinyMCE/plugins/fullscreen/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..c5ad4ca938c1a2f37989f81d1809ee53bf93c93d
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/en.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_desc : 'Toggle fullscreen mode'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/es.js b/tinyMCE/plugins/fullscreen/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..c4b552c856430220ea276a0e7631f72012e20ab5
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/es.js
@@ -0,0 +1,8 @@
+// ES lang variables by Alvaro Velasco and Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>
+// Last Updated : October 2005
+// TinyMCE Version : 2.0RC3
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Pantalla completa',
+fullscreen_desc : 'Cambiar a pantalla completa'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/fa.js b/tinyMCE/plugins/fullscreen/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a2ea6eca04bd49db72f14350d0bfc8c9ab9fd38
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/fa.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Fullscreen mode',
+fullscreen_desc : 'Toggle fullscreen mode'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/fi.js b/tinyMCE/plugins/fullscreen/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..69290c0431d8a2b6d052685623a8223b6b774847
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/fi.js
@@ -0,0 +1,6 @@
+// FI lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Kokoruututila',
+fullscreen_desc : 'Vaihda kokoruututila p&auml;&auml;lle/pois'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/fr.js b/tinyMCE/plugins/fullscreen/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..15238a74a42a7492edaf2d35bccd2d2e04f518bc
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/fr.js
@@ -0,0 +1,7 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Affichage plein &eacute;cran',
+fullscreen_desc : 'Affichage plein &eacute;cran/normal'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/fullscreen/langs/fr_ca.js b/tinyMCE/plugins/fullscreen/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..a810964a0320d2cb9f510bf700e183b2b6a1dfbc
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/fr_ca.js
@@ -0,0 +1,6 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Mode plein écran',
+fullscreen_desc : 'Basculer le mode plein écrans'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/he.js b/tinyMCE/plugins/fullscreen/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..13663dab67258b094d25e056c522669cee05df4a
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/he.js
@@ -0,0 +1,6 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'îöá îñê îìà',
+fullscreen_desc : 'äçìó îöá îñê îìà'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/hu.js b/tinyMCE/plugins/fullscreen/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..520124543d70ba39d5bfa3c0fe4b68bf166a9dff
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/hu.js
@@ -0,0 +1,6 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Teljesképernyõs mód',
+fullscreen_desc : 'Váltás teljesképernyõs módra'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/is.js b/tinyMCE/plugins/fullscreen/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..5cec332b8bf7591863be367190148a785acb2cd3
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/is.js
@@ -0,0 +1,6 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Heilskj&aacute;r',
+fullscreen_desc : 'Skipta &iacute; / &uacute;r heilskj&aacute;'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/it.js b/tinyMCE/plugins/fullscreen/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..66bb8ce759f2ee5a45e1a67da825aa4d54783086
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/it.js
@@ -0,0 +1,11 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+fullscreen_desc : 'Abilita o disabilita la modalit&agrave; a schermo intero'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/ja.js b/tinyMCE/plugins/fullscreen/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5ae5b1757dfa33f27a1e19bd12b8f99e6b562f3
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ja.js
@@ -0,0 +1,5 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_desc : 'フルスクリーンモードを切り替える'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/ja_euc-jp.js b/tinyMCE/plugins/fullscreen/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..28226b3bd70068541eb257350bb3bfb1b60cb3f3
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ja_euc-jp.js
@@ -0,0 +1,6 @@
+// Japanese euc variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Á´²èÌÌɽ¼¨',
+fullscreen_desc : 'Á´²èÌÌɽ¼¨¤ò¥È¥°¥ë'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/ja_shift_jis.js b/tinyMCE/plugins/fullscreen/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..b9e7c13613822af1641fdb9a31c0e8ba057a39a6
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ja_shift_jis.js
@@ -0,0 +1,6 @@
+// Japanese shift_jis variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : '‘S‰æ–Ê•\ަ',
+fullscreen_desc : '‘S‰æ–Ê•\ަ‚ðƒgƒOƒ‹'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/ja_utf-8.js b/tinyMCE/plugins/fullscreen/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..b840fd53de3b06b9378ab7fdda3c786afd937f59
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ja_utf-8.js
@@ -0,0 +1,6 @@
+// Japanese utf-8 variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : '全画面表示',
+fullscreen_desc : '全画面表示をトグル'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/ko.js b/tinyMCE/plugins/fullscreen/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a2ea6eca04bd49db72f14350d0bfc8c9ab9fd38
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ko.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Fullscreen mode',
+fullscreen_desc : 'Toggle fullscreen mode'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/nb.js b/tinyMCE/plugins/fullscreen/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..be4047f17b8f006207ed32480080d86eac8d17ba
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/nb.js
@@ -0,0 +1,6 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Fullskjerm tilstand',
+fullscreen_desc : 'Hopp fra/til fullskjermtilstand'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/nl.js b/tinyMCE/plugins/fullscreen/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e28e208ce4b4e7e645e3354be555a08b8dd90c4
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/nl.js
@@ -0,0 +1,6 @@
+// NL lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Volledig scherm',
+fullscreen_desc : 'Volledig scherm aan/uit'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/nn.js b/tinyMCE/plugins/fullscreen/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..5b6f3e7a9faf345e2e287937738cffffb8b6a383
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/nn.js
@@ -0,0 +1,6 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Fullskjerm tilstand',
+fullscreen_desc : 'Hopp fra/til fullskjermtilstand'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/pl.js b/tinyMCE/plugins/fullscreen/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..6dd4c99b8855646610742ccb23e75039a9b2b3ec
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/pl.js
@@ -0,0 +1,9 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+// fixed by lemiel 14.11.2005
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Tryb pełnoekranowy',
+fullscreen_desc : 'Przełącz w tryb pełnoekranowy'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/pt_br.js b/tinyMCE/plugins/fullscreen/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..153f789678da1824035eafefa04f8b67aff03d93
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/pt_br.js
@@ -0,0 +1,14 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+fullscreen_title : 'Modo de janela inteira (Fullscreen)',
+fullscreen_desc : 'Alterar para modo de janela inteira'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/ro.js b/tinyMCE/plugins/fullscreen/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..326d0ce388f4e5a4d31c5ac9b83ada35df7be602
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ro.js
@@ -0,0 +1,6 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Afi&#351;are pe tot ecranul',
+fullscreen_desc : 'Comut&#259; modul de afi&#351;are'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/ru.js b/tinyMCE/plugins/fullscreen/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..7de9acc1f7d7371bd97c9644623752b01a4a9ed4
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ru.js
@@ -0,0 +1,6 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Полноэкранный режим',
+fullscreen_desc : 'Включить полноэкранный режим'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/ru_CP1251.js b/tinyMCE/plugins/fullscreen/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..739920935ff14fb2b48eec215d73bedf2b9f9de6
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ru_CP1251.js
@@ -0,0 +1,6 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Ïîëíîýêðàííûé ðåæèì',
+fullscreen_desc : 'Âêëþ÷èòü ïîëíîýêðàííûé ðåæèì'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/ru_KOI8-R.js b/tinyMCE/plugins/fullscreen/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4b1fe543d0032b2030aa3dcebd75dbe91d92cad
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/ru_KOI8-R.js
@@ -0,0 +1,6 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'ðÏÌÎÏÜËÒÁÎÎÙÊ ÒÅÖÉÍ',
+fullscreen_desc : '÷ËÌÀÞÉÔØ ÐÏÌÎÏÜËÒÁÎÎÙÊ ÒÅÖÉÍ'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/si.js b/tinyMCE/plugins/fullscreen/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..e1ce11d9348a45c6413188bf5b5e2d16c7da8e20
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/si.js
@@ -0,0 +1,6 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Celozaslonski na&#269;in',
+fullscreen_desc : 'Vklopi/izklopi celozaslonski na&#269;in'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/sk.js b/tinyMCE/plugins/fullscreen/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..4f77916940503ae1506d3a6607bf349d0a222e28
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/sk.js
@@ -0,0 +1,14 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Na celú obrazovku',
+fullscreen_desc : 'Prepnúť na celú obrazovku'
+});
+
diff --git a/tinyMCE/plugins/fullscreen/langs/sq.js b/tinyMCE/plugins/fullscreen/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..cef8431441686dc108d4171c32b724d7f42efee4
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/sq.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Modaliteti i ekranit te plote',
+fullscreen_desc : 'Cakto modalitetin e ekranit te plote'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/fullscreen/langs/sr.js b/tinyMCE/plugins/fullscreen/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..b42e9aa3e09a215d92e3f192b0d316da4dc88620
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/sr.js
@@ -0,0 +1,6 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Mod celog ekrana',
+fullscreen_desc : 'Menjanje moda punog ekrana'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/sv.js b/tinyMCE/plugins/fullscreen/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..38599082233000e296b5bf3ed2db53fa1bfee6bb
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/sv.js
@@ -0,0 +1,6 @@
+// SV lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Fullskärmsläge',
+fullscreen_desc : 'Hoppa från/till fullskärmsläge'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/sv_utf8.js b/tinyMCE/plugins/fullscreen/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..b5d05784009606a000c27e254835b7fe5e5c3e6f
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/sv_utf8.js
@@ -0,0 +1,6 @@
+// SV lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Fullskärmsläge',
+fullscreen_desc : 'Hoppa från/till fullskärmsläge'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/tr.js b/tinyMCE/plugins/fullscreen/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..229094d3e45fc1a48a4ad3e05223f952937c9e51
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/tr.js
@@ -0,0 +1,6 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Tam ekran modu',
+fullscreen_desc : 'Tam ekran moduna geç'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/uk.js b/tinyMCE/plugins/fullscreen/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..be42bc9315fc1872ab3f226a7c9740f1a3e3f2c1
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/uk.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Повноекранний режим',
+fullscreen_desc : 'Включити повноекранний режим'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/uk_CP1251.js b/tinyMCE/plugins/fullscreen/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..53c1ac75c7660306b115a3202d61e73c2082ec7d
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/uk_CP1251.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Ïîâíîåêðàííèé ðåæèì',
+fullscreen_desc : 'Âêëþ÷èòè ïîâíîåêðàííèé ðåæèì'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/uk_KOI8-U.js b/tinyMCE/plugins/fullscreen/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..8c1e63655934c79217954d8b98ba1fab8f84f92d
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/uk_KOI8-U.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'ðÏ×ÎÏÅËÒÁÎÎÉÊ ÒÅÖÉÍ',
+fullscreen_desc : '÷ËÌÀÞÉÔÉ ÐÏ×ÎÏÅËÒÁÎÎÉÊ ÒÅÖÉÍ'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/vi.js b/tinyMCE/plugins/fullscreen/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..9cd6cf36e34606d07865ec24716c449ff2b90bbb
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/vi.js
@@ -0,0 +1,6 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Chế độ toàn màn hình',
+fullscreen_desc : 'Chuyển đổi chế độ xem toàn màn hình'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/zh_cn.js b/tinyMCE/plugins/fullscreen/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..fe6b82b6a5d25d13b06e7f936b152a7caf106a51
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/zh_cn.js
@@ -0,0 +1,7 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'È«ÆÁģʽ',
+fullscreen_desc : 'Çл»È«ÆÁģʽ'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/zh_cn_utf8.js b/tinyMCE/plugins/fullscreen/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..44006dd3d236c78e427fc54ba2db8e836a68166c
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/zh_cn_utf8.js
@@ -0,0 +1,7 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+fullscreen_title : '全屏模式',
+fullscreen_desc : '切换全屏模式'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/zh_tw.js b/tinyMCE/plugins/fullscreen/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..47a456ac4b89572a4f3401476059e20136a80c95
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/zh_tw.js
@@ -0,0 +1,7 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+fullscreen_title : '¥þ¿Ã¹õ¼Ò¦¡',
+fullscreen_desc : 'Âন¥þ¿Ã¹õ¼Ò¦¡'
+});
diff --git a/tinyMCE/plugins/fullscreen/langs/zh_tw_utf8.js b/tinyMCE/plugins/fullscreen/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..2442c4bfc536089d2e87bd5238b7728c3346f26e
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/langs/zh_tw_utf8.js
@@ -0,0 +1,7 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+fullscreen_title : '全螢幕模式',
+fullscreen_desc : '轉成全螢幕模式'
+});
diff --git a/tinyMCE/plugins/fullscreen/readme.txt b/tinyMCE/plugins/fullscreen/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/fullscreen/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/iespell/editor_plugin.js b/tinyMCE/plugins/iespell/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..b19625bb629d2c3d2db3f6ea5d31b807c3c7ba77
--- /dev/null
+++ b/tinyMCE/plugins/iespell/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('iespell');var TinyMCE_IESpellPlugin={getInfo:function(){return{longname:'IESpell (MSIE Only)',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){if(cn=="iespell"&&(tinyMCE.isMSIE&&!tinyMCE.isOpera))return tinyMCE.getButtonHTML(cn,'lang_iespell_desc','{$pluginurl}/images/iespell.gif','mceIESpell');return""},execCommand:function(editor_id,element,command,user_interface,value){if(command=="mceIESpell"){try{var ieSpell=new ActiveXObject("ieSpell.ieSpellExtension");ieSpell.CheckDocumentNode(tinyMCE.getInstanceById(editor_id).contentDocument.documentElement)}catch(e){if(e.number==-2146827859){if(confirm(tinyMCE.getLang("lang_iespell_download","",true)))window.open('http://www.iespell.com/download.php','ieSpellDownload','')}else alert("Error Loading ieSpell: Exception "+e.number)}return true}return false}};tinyMCE.addPlugin("iespell",TinyMCE_IESpellPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/iespell/editor_plugin_src.js b/tinyMCE/plugins/iespell/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..353db1c5dae760fb777138aba070320dced4c441
--- /dev/null
+++ b/tinyMCE/plugins/iespell/editor_plugin_src.js
@@ -0,0 +1,58 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('iespell');
+
+var TinyMCE_IESpellPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'IESpell (MSIE Only)',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	/**
+	 * Returns the HTML contents of the iespell control.
+	 */
+	getControlHTML : function(cn) {
+		// Is it the iespell control and is the brower MSIE.
+		if (cn == "iespell" && (tinyMCE.isMSIE && !tinyMCE.isOpera))
+			return tinyMCE.getButtonHTML(cn, 'lang_iespell_desc', '{$pluginurl}/images/iespell.gif', 'mceIESpell');
+
+		return "";
+	},
+
+	/**
+	 * Executes the mceIESpell command.
+	 */
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle ieSpellCommand
+		if (command == "mceIESpell") {
+			try {
+				var ieSpell = new ActiveXObject("ieSpell.ieSpellExtension");
+				ieSpell.CheckDocumentNode(tinyMCE.getInstanceById(editor_id).contentDocument.documentElement);
+			} catch (e) {
+				if (e.number == -2146827859) {
+					if (confirm(tinyMCE.getLang("lang_iespell_download", "", true)))
+						window.open('http://www.iespell.com/download.php', 'ieSpellDownload', '');
+				} else
+					alert("Error Loading ieSpell: Exception " + e.number);
+			}
+
+			return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	}
+};
+
+tinyMCE.addPlugin("iespell", TinyMCE_IESpellPlugin);
diff --git a/tinyMCE/plugins/iespell/images/iespell.gif b/tinyMCE/plugins/iespell/images/iespell.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a9a2891891f6c44cb58cec06e1df90154fab728a
Binary files /dev/null and b/tinyMCE/plugins/iespell/images/iespell.gif differ
diff --git a/tinyMCE/plugins/iespell/langs/ca.js b/tinyMCE/plugins/iespell/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3688e94659d8ec95d1d30ba3a2294fffd3886cb
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ca.js
@@ -0,0 +1,7 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Run spell checking',
+iespell_download : "ieSpell not detected. Click OK to go to download page."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/cs.js b/tinyMCE/plugins/iespell/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..8f9996a5e5e004ed3d53553c0fd993e3ce768fde
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/cs.js
@@ -0,0 +1,12 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.5 2006/01/11 14:25:48 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Spustit kontrolu pravopisu',
+iespell_download : "ieSpell nedetekován. Klikněte na OK a otevřete stahovací stránku."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/cy.js b/tinyMCE/plugins/iespell/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..e7671a2e71e821dc48342150a3912a866561ca7c
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/cy.js
@@ -0,0 +1,7 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Dechrau gwirio sillafu',
+iespell_download : "Methwyd canfod ieSpell. Cliciwch OK i fynd i'r dudalen lawrlwytho."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/da.js b/tinyMCE/plugins/iespell/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e45d33cb4528c3060558713ee58504acdb6d363
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/da.js
@@ -0,0 +1,7 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen - Corr.:
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Lav stavekontrol',
+iespell_download : "ieSpell kan ikke findes. Klik p&aring; OK for at forts&aelig;tte til downloadsiden."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/de.js b/tinyMCE/plugins/iespell/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc10a50053721aa5b7c2ee62b084c898f3327419
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/de.js
@@ -0,0 +1,7 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Rechtschreibpr&uuml;fung',
+iespell_download : "ieSpell nicht gefunden. Klicken Sie OK, um die Download-Seite aufzurufen."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/el.js b/tinyMCE/plugins/iespell/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..13996468265bc7d921c0b4bfb04e4c513023907f
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/el.js
@@ -0,0 +1,7 @@
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Ïñèïãñáöéêüò Ýëåã÷ïò',
+iespell_download : "Ôï ðñüãñáììá ieSpell äåí âñÝèçêå. ÐáôÞóôå OK ãéá íá ìåôáâåßôå óôçí éóôïóåëßäá ëÞøçò ôïõ ðñïãñÜììáôïò."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/en.js b/tinyMCE/plugins/iespell/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3688e94659d8ec95d1d30ba3a2294fffd3886cb
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/en.js
@@ -0,0 +1,7 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Run spell checking',
+iespell_download : "ieSpell not detected. Click OK to go to download page."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/es.js b/tinyMCE/plugins/iespell/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..c5a3d4ce113d781d838eba177bde08a7ca140c84
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/es.js
@@ -0,0 +1,16 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Ejecutar corrector ortogr&aacute;fico',
+iespell_download : "Corrector ortogr&aacute;fico no detectado. Pulse OK para ir a la p&aacute;gina de descarga."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/fa.js b/tinyMCE/plugins/iespell/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3688e94659d8ec95d1d30ba3a2294fffd3886cb
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/fa.js
@@ -0,0 +1,7 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Run spell checking',
+iespell_download : "ieSpell not detected. Click OK to go to download page."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/fi.js b/tinyMCE/plugins/iespell/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3688e94659d8ec95d1d30ba3a2294fffd3886cb
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/fi.js
@@ -0,0 +1,7 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Run spell checking',
+iespell_download : "ieSpell not detected. Click OK to go to download page."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/fr.js b/tinyMCE/plugins/iespell/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..b086db922ce283af175b238380ebbd4ef5587412
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/fr.js
@@ -0,0 +1,7 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Lancer le v&eacute;rificateur d\'orthographe',
+iespell_download : "Le dictionnaire ieSpell n\'a pas &eacute;t&eacute; trouv&eacute;.\n\nCliquez sur Ok pour aller au site de t&eacute;l&eacute;chargement."
+});
diff --git a/tinyMCE/plugins/iespell/langs/fr_ca.js b/tinyMCE/plugins/iespell/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..8904bebe4fbbea53a338e357720bf4331cdb5715
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/fr_ca.js
@@ -0,0 +1,6 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Executer le vérificateur d\'orthographe',
+iespell_download : "ieSpell n\'a pas été trouvé. Cliquez sur OK pour aller au site de téléchargement."
+});
diff --git a/tinyMCE/plugins/iespell/langs/he.js b/tinyMCE/plugins/iespell/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c1fde67f722b865f36da34a3a4d28494c16aacb
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/he.js
@@ -0,0 +1,6 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+iespell_desc : 'äôòì áãé÷ú àéåú',
+iespell_download : "ìà ðîöà ieSpell. ìçõ òì àéùåø ëãé ìäâéò ìãó ääåøãä."
+});
diff --git a/tinyMCE/plugins/iespell/langs/hu.js b/tinyMCE/plugins/iespell/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..d24a8039c894187f6d8b4eb77c200ac845d75377
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/hu.js
@@ -0,0 +1,7 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Helyesírásellenõrzés indítása',
+iespell_download : "ieSpell nem található. Kattints az OK-ra a letöltési oldalhoz."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/is.js b/tinyMCE/plugins/iespell/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3024006089255dcd3f80794e19888ab9c7130c4
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/is.js
@@ -0,0 +1,7 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Stafsetningarp&uacute;ki',
+iespell_download : "ieSpell ekki til staðar. Smellið á OK til að sjá niðurhalssíðu."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/it.js b/tinyMCE/plugins/iespell/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..3db8a5ecb12b5511e18bbfb6633dce97f2121f59
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/it.js
@@ -0,0 +1,13 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Oct. 17th, 2006
+ * TinyMCE Version : 2.0.7
+ */
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Esegui controllo ortografico',
+iespell_download : "ieSpell non trovato. Fai clic su OK per visitare la pagina di download."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/ja.js b/tinyMCE/plugins/iespell/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..c56b4814ce9dde0aaf3b0be50e01b35e991e0528
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ja.js
@@ -0,0 +1,7 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'スペルチェックを行う',
+iespell_download : "ieSpellが検出できませんでした。OKボタンを押してダウンロードページを表示してください"
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/ja_euc-jp.js b/tinyMCE/plugins/iespell/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..7176af17c011d99009f8262f6a0c09d04fb00098
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ja_euc-jp.js
@@ -0,0 +1,7 @@
+// Japanese euc variables
+
+tinyMCE.addToLang('',{
+iespell_desc : '¥¹¥Ú¥ë¥Á¥§¥Ã¥¯¤ò¤¹¤ë',
+iespell_download : "¥¹¥Ú¥ë¥Á¥§¥Ã¥¯¤¬¤Ê¤¤. OK¤ò¥¯¥ê¥Ã¥¯¤¹¤ì¤Ð¡¢¥À¥¦¥ó¥í¡¼¥É¤Ø¹Ô¤¯."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/ja_shift_jis.js b/tinyMCE/plugins/iespell/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..91a37fe0676d865809ff44ec8b5a6f6363963862
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ja_shift_jis.js
@@ -0,0 +1,7 @@
+// Japanese shif_jis variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'ƒXƒyƒ‹ƒ`ƒFƒbƒN‚ð‚·‚é',
+iespell_download : "ƒXƒyƒ‹ƒ`ƒFƒbƒN‚ª‚È‚¢. OK‚ðƒNƒŠƒbƒN‚·‚ê‚΁Aƒ_ƒEƒ“ƒ[ƒh‚֍s‚­."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/ja_utf-8.js b/tinyMCE/plugins/iespell/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..4211fce09036784d00a4f533336a9460f76c7d75
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ja_utf-8.js
@@ -0,0 +1,7 @@
+// Japanese utf-8 variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'スペルチェックをする',
+iespell_download : "スペルチェックがない. OKをクリックすれば、ダウンロードへ行く."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/ko.js b/tinyMCE/plugins/iespell/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..eb03092600da99dd18007771c1ca386fa70e99dd
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ko.js
@@ -0,0 +1,7 @@
+// KO lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : '¸ÂÃã¹ý °Ë»ç ½ÇÇà',
+iespell_download : "ieSpellÀ» ãÀ» ¼&ouml; ¾ø½À´Ï´Ù. OK¸¦ ´©¸£¸é ´Ù¿î·Îµ&aring; Æ&auml;ÀÌÁ&ouml;·Î À̵¿ÇÕ´Ï´Ù."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/nb.js b/tinyMCE/plugins/iespell/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..71d165f0a4055c1d9faf18cc84d314e1dc265b8c
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/nb.js
@@ -0,0 +1,6 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Kj&oslash;r rettstavingskontroll',
+iespell_download : "ieSpell virker ikke &aring; v&aelig;re installert. Klikk OK for &aring; laste hjem."
+});
diff --git a/tinyMCE/plugins/iespell/langs/nl.js b/tinyMCE/plugins/iespell/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..9d3530d94c8006601d027a10d9a61ed52749359d
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/nl.js
@@ -0,0 +1,6 @@
+// NL lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Spellingscontrole',
+iespell_download : "ieSpell niet gedetecteerd. Klik op OK om deze te downloaden."
+});
diff --git a/tinyMCE/plugins/iespell/langs/nn.js b/tinyMCE/plugins/iespell/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..85b46a1ea6bd9f527eac3698d48af732c0cc8ea2
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/nn.js
@@ -0,0 +1,6 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Kj&oslash;r rettstavingskontroll',
+iespell_download : "ieSpell virker ikke &aring; v&aelig;re installert. Klikk OK for &aring; laste hjem."
+});
diff --git a/tinyMCE/plugins/iespell/langs/pl.js b/tinyMCE/plugins/iespell/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..524c17419430e23c66c6f3fc2dad586d7b741489
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/pl.js
@@ -0,0 +1,8 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Uruchom sprawdzanie pisowni',
+iespell_download : "Nie wykryto pluginu, kliknij aby przejść do strony z pluginami."
+});
diff --git a/tinyMCE/plugins/iespell/langs/pt_br.js b/tinyMCE/plugins/iespell/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..93947b130729f064de8c776bfed3dfb5f64daf5f
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/pt_br.js
@@ -0,0 +1,14 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+iespell_desc : 'Executar verificação ortográfica',
+iespell_download : "Verificador ieSpell não detectado. Clique em \"OK\" para ir à página de download."
+});
diff --git a/tinyMCE/plugins/iespell/langs/ro.js b/tinyMCE/plugins/iespell/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..ecd84ed274532922a93cafa56cddc8c26dbabbfa
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ro.js
@@ -0,0 +1,7 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Porne&#351;te verificarea ortografic&#259;',
+iespell_download : "ieSpell nu a fost detectat. Apas&#259; OK pentru a merge la pagina de desc&#259;rcare."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/ru.js b/tinyMCE/plugins/iespell/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..595dcb505db061ade092ef6a778e097affac853e
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ru.js
@@ -0,0 +1,7 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Запустить проверку орфографии',
+iespell_download : 'ieSpell не обнаружен. нажмите OK, чтобы перейти на страницу загрузки.'
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/ru_CP1251.js b/tinyMCE/plugins/iespell/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..2858f015007250e5cd09db98bcd2c1e2aa856c09
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ru_CP1251.js
@@ -0,0 +1,7 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Çàïóñòèòü ïðîâåðêó îðôîãðàôèè',
+iespell_download : 'ieSpell íå îáíàðóæåí. íàæìèòå OK, ÷òîáû ïåðåéòè íà ñòðàíèöó çàãðóçêè.'
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/ru_KOI8-R.js b/tinyMCE/plugins/iespell/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..7e9c2914bd35d7c0be281c378124c22862747166
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/ru_KOI8-R.js
@@ -0,0 +1,7 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'úÁÐÕÓÔÉÔØ ÐÒÏ×ÅÒËÕ ÏÒÆÏÇÒÁÆÉÉ',
+iespell_download : 'ieSpell ÎÅ ÏÂÎÁÒÕÖÅÎ. ÎÁÖÍÉÔÅ OK, ÞÔÏÂÙ ÐÅÒÅÊÔÉ ÎÁ ÓÔÒÁÎÉÃÕ ÚÁÇÒÕÚËÉ.'
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/si.js b/tinyMCE/plugins/iespell/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..113f2e3e0e8cb027bce5bdae3930c09fbe302c47
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/si.js
@@ -0,0 +1,7 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Za&#382;eni &#269;rkovanje',
+iespell_download : "ieSpell ni zaznan. Kliknite OK za skok na stran za prenos."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/sk.js b/tinyMCE/plugins/iespell/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c095171ef9a125cd28643a3c5611746f5759f50
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/sk.js
@@ -0,0 +1,14 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Spustiť kontrolu pravopisu',
+iespell_download : "ieSpell nedetekovaný Kliknite na OK a otvorte stahovaciu stránku."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/sq.js b/tinyMCE/plugins/iespell/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..b5189a231d0092686a0595b2103f0f1d6c3de475
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/sq.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Run spell checking',
+iespell_download : "ieSpell not detected. Click OK to go to download page."
+});
diff --git a/tinyMCE/plugins/iespell/langs/sr.js b/tinyMCE/plugins/iespell/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..1d4995349e91004bb2f2b9c8811761cd6edc7251
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/sr.js
@@ -0,0 +1,7 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Startuj proveru teksta',
+iespell_download : "ieSpell nije detektovan. Kliknite OK za dolazak na download stranu."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/sv.js b/tinyMCE/plugins/iespell/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..7006885b2a34b38dd1c703a381dbe28041fb68e0
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/sv.js
@@ -0,0 +1,6 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'K&ouml;r r&auml;ttstavningskontroll',
+iespell_download : "ieSpell verkar inte vara installerad. Klicka OK f&ouml;r att ladda hem."
+});
diff --git a/tinyMCE/plugins/iespell/langs/sv_utf8.js b/tinyMCE/plugins/iespell/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..7006885b2a34b38dd1c703a381dbe28041fb68e0
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/sv_utf8.js
@@ -0,0 +1,6 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'K&ouml;r r&auml;ttstavningskontroll',
+iespell_download : "ieSpell verkar inte vara installerad. Klicka OK f&ouml;r att ladda hem."
+});
diff --git a/tinyMCE/plugins/iespell/langs/tr.js b/tinyMCE/plugins/iespell/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..a8273c1d75a807261e5eafc499db17ab7fabf597
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/tr.js
@@ -0,0 +1,7 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Yazým denetimini çalýþtýr',
+iespell_download : "ieSpell bulunamadý. Download sayfasýna gitmek için 'OK' týklayýnýz"
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/uk.js b/tinyMCE/plugins/iespell/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..a98969e938efc7bf06e73d89e964c109f7c96fd3
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/uk.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Запустити перевірку орфографії',
+iespell_download : 'ieSpell не знайдено. Натисніть OK, щоб перейти на сторінку завантаження.'
+});
diff --git a/tinyMCE/plugins/iespell/langs/uk_CP1251.js b/tinyMCE/plugins/iespell/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..94b7aca75f4c6135c06d6b971d815555dfc83e2c
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/uk_CP1251.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Çàïóñòèòè ïåðåâ³ðêó îðôîãðàô³¿',
+iespell_download : 'ieSpell íå çíàéäåíî. Íàòèñí³òü OK, ùîá ïåðåéòè íà ñòîð³íêó çàâàíòàæåííÿ.'
+});
diff --git a/tinyMCE/plugins/iespell/langs/uk_KOI8-U.js b/tinyMCE/plugins/iespell/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad815d39a5fc50a031b9ef3e8fa032e223af5ef7
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/uk_KOI8-U.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'úÁÐÕÓÔÉÔÉ ÐÅÒÅצÒËÕ ÏÒÆÏÇÒÁƦ§',
+iespell_download : 'ieSpell ÎÅ ÚÎÁÊÄÅÎÏ. îÁÔÉÓÎ¦ÔØ OK, ÝÏ ÐÅÒÅÊÔÉ ÎÁ ÓÔÏÒ¦ÎËÕ ÚÁ×ÁÎÔÁÖÅÎÎÑ.'
+});
diff --git a/tinyMCE/plugins/iespell/langs/vi.js b/tinyMCE/plugins/iespell/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..c58173946c6eb58bb0603f18ff6f59e2b837ef6a
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/vi.js
@@ -0,0 +1,7 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Chạy kiểm tra chính tả',
+iespell_download : "Khong thấy kiểm tra chính tả ieSpell. Kích nút OK để đến trang tải xuống."
+});
+
diff --git a/tinyMCE/plugins/iespell/langs/zh_cn.js b/tinyMCE/plugins/iespell/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..01848d47419ce01940e358b17b5dc9db0cdf441f
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/zh_cn.js
@@ -0,0 +1,7 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+iespell_desc : 'ÔËÐÐÆ´Ð´¼ì²é',
+iespell_download : "δ¼ì²âµ½ ieSpell ƴд¼ì²é£¬µã»÷ OK ǰÍùÏÂÔØÒ³Ãæ¡£"
+});
diff --git a/tinyMCE/plugins/iespell/langs/zh_cn_utf8.js b/tinyMCE/plugins/iespell/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..67b9e51277934f83eb7dd603b330e3170d13f97b
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/zh_cn_utf8.js
@@ -0,0 +1,7 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+iespell_desc : '运行拼写检查',
+iespell_download : "未检测到 ieSpell 拼写检查,点击 OK 前往下载页面。"
+});
diff --git a/tinyMCE/plugins/iespell/langs/zh_tw.js b/tinyMCE/plugins/iespell/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..5345a72b60b4292e472fa884cbcd0c086c73c80a
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/zh_tw.js
@@ -0,0 +1,7 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+iespell_desc : '°õ¦æ«÷¦rÀˬd',
+iespell_download : "µL ieSpell «÷¦rÀˬd¥\¯à¡CÂI«ö¡u½T©w¡v«á¤U¸ü¦w¸Ë"
+});
diff --git a/tinyMCE/plugins/iespell/langs/zh_tw_utf8.js b/tinyMCE/plugins/iespell/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..936520a20a2bf63eb8a0ccac4cbeda0e4eb2c8e0
--- /dev/null
+++ b/tinyMCE/plugins/iespell/langs/zh_tw_utf8.js
@@ -0,0 +1,8 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+iespell_desc : '執行拼字檢查',
+iespell_download : "無 ieSpell 拼字檢查功能。點按「確定」後下載安裝"
+});
+
diff --git a/tinyMCE/plugins/iespell/readme.txt b/tinyMCE/plugins/iespell/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/iespell/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/inlinepopups/css/inlinepopup.css b/tinyMCE/plugins/inlinepopups/css/inlinepopup.css
new file mode 100644
index 0000000000000000000000000000000000000000..43be823cdf6dc189ac3f30c11432df9b8da47f46
--- /dev/null
+++ b/tinyMCE/plugins/inlinepopups/css/inlinepopup.css
@@ -0,0 +1,69 @@
+/* Window classes */
+
+.mceWindow {
+	position: absolute;
+	left: 0;
+	top: 0;
+	border: 1px solid black;
+	background-color: #D4D0C8;
+}
+
+.mceWindowHead {
+	background-color: #334F8D;
+	width: 100%;
+	height: 18px;
+	cursor: move;
+	overflow: hidden;
+}
+
+.mceWindowBody {
+	clear: both;
+	background-color: white;
+}
+
+.mceWindowStatusbar {
+	background-color: #D4D0C8;
+	height: 12px;
+	border-top: 1px solid black;
+}
+
+.mceWindowTitle {
+	float: left;
+	font-family: "MS Sans Serif";
+	font-size: 9pt;
+	font-weight: bold;
+	line-height: 18px;
+	color: white;
+	margin-left: 2px;
+	overflow: hidden;
+}
+
+.mceWindowHeadTools {
+	margin-right: 2px;
+}
+
+.mceWindowClose, .mceWindowMinimize, .mceWindowMaximize {
+	display: block;
+	float: right;
+	overflow: hidden;
+	margin-top: 2px;
+}
+
+.mceWindowClose {
+	margin-left: 2px;
+}
+
+.mceWindowMinimize {
+}
+
+.mceWindowMaximize {
+}
+
+.mceWindowResize {
+	display: block;
+	float: right;
+	overflow: hidden;
+	cursor: se-resize;
+	width: 12px;
+	height: 12px;
+}
diff --git a/tinyMCE/plugins/inlinepopups/editor_plugin.js b/tinyMCE/plugins/inlinepopups/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..be3e3ab88263669f8631496d10d352cc9ac8b693
--- /dev/null
+++ b/tinyMCE/plugins/inlinepopups/editor_plugin.js
@@ -0,0 +1 @@
+var TinyMCE_InlinePopupsPlugin={getInfo:function(){return{longname:'Inline Popups',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}}};tinyMCE.addPlugin("inlinepopups",TinyMCE_InlinePopupsPlugin);TinyMCE_Engine.prototype.orgOpenWindow=TinyMCE_Engine.prototype.openWindow;TinyMCE_Engine.prototype.orgCloseWindow=TinyMCE_Engine.prototype.closeWindow;TinyMCE_Engine.prototype.openWindow=function(template,args){if(args['inline']!="yes"||tinyMCE.isOpera||tinyMCE.getParam("plugins").indexOf('inlinepopups')==-1){mcWindows.selectedWindow=null;args['mce_inside_iframe']=false;this.orgOpenWindow(template,args);return}var url,resizable,scrollbars;args['mce_inside_iframe']=true;tinyMCE.windowArgs=args;if(template['file'].charAt(0)!='/'&&template['file'].indexOf('://')==-1)url=tinyMCE.baseURL+"/themes/"+tinyMCE.getParam("theme")+"/"+template['file'];else url=template['file'];if(!(width=parseInt(template['width'])))width=320;if(!(height=parseInt(template['height'])))height=200;if(!(minWidth=parseInt(template['minWidth'])))minWidth=100;if(!(minHeight=parseInt(template['minHeight'])))minHeight=100;resizable=(args&&args['resizable'])?args['resizable']:"no";scrollbars=(args&&args['scrollbars'])?args['scrollbars']:"no";height+=18;for(var name in args){if(typeof(args[name])=='function')continue;url=tinyMCE.replaceVar(url,name,escape(args[name]))}var elm=document.getElementById(this.selectedInstance.editorId+'_parent');if(tinyMCE.hasPlugin('fullscreen')&&this.selectedInstance.getData('fullscreen').enabled)pos={absLeft:0,absTop:0};else pos=tinyMCE.getAbsPosition(elm);pos.absLeft+=Math.round((elm.firstChild.clientWidth/ 2) - (width /2));pos.absTop+=Math.round((elm.firstChild.clientHeight/ 2) - (height /2));mcWindows.open(url,mcWindows.idCounter++,"modal=yes,width="+width+",height="+height+",resizable="+resizable+",scrollbars="+scrollbars+",statusbar="+resizable+",left="+pos.absLeft+",top="+pos.absTop+",minWidth="+minWidth+",minHeight="+minHeight)};TinyMCE_Engine.prototype.closeWindow=function(win){var gotit=false,n,w;for(n in mcWindows.windows){w=mcWindows.windows[n];if(typeof(w)=='function')continue;if(win.name==w.id+'_iframe'){w.close();gotit=true}}if(!gotit)this.orgCloseWindow(win);tinyMCE.selectedInstance.getWin().focus()};TinyMCE_Engine.prototype.setWindowTitle=function(win_ref,title){for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(typeof(win)=='function')continue;if(win_ref.name==win.id+"_iframe")window.frames[win.id+"_iframe"].document.getElementById(win.id+'_title').innerHTML=title}};function TinyMCE_Windows(){this.settings=new Array();this.windows=new Array();this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.isGecko=navigator.userAgent.indexOf('Gecko')!=-1;this.isSafari=navigator.userAgent.indexOf('Safari')!=-1;this.isMac=navigator.userAgent.indexOf('Mac')!=-1;this.isMSIE5_0=this.isMSIE&&(navigator.userAgent.indexOf('MSIE 5.0')!=-1);this.action="none";this.selectedWindow=null;this.lastSelectedWindow=null;this.zindex=1001;this.mouseDownScreenX=0;this.mouseDownScreenY=0;this.mouseDownLayerX=0;this.mouseDownLayerY=0;this.mouseDownWidth=0;this.mouseDownHeight=0;this.idCounter=0};TinyMCE_Windows.prototype.init=function(settings){this.settings=settings;if(this.isMSIE)this.addEvent(document,"mousemove",mcWindows.eventDispatcher);else this.addEvent(window,"mousemove",mcWindows.eventDispatcher);this.addEvent(document,"mouseup",mcWindows.eventDispatcher);this.addEvent(window,"resize",mcWindows.eventDispatcher);this.addEvent(document,"scroll",mcWindows.eventDispatcher);this.doc=document};TinyMCE_Windows.prototype.getBounds=function(){if(!this.bounds){var vp=tinyMCE.getViewPort(window);var top,left,bottom,right,docEl=this.doc.documentElement;top=vp.top;left=vp.left;bottom=vp.height+top-2;right=vp.width+left-22;this.bounds=[left,top,right,bottom]}return this.bounds};TinyMCE_Windows.prototype.clampBoxPosition=function(x,y,w,h,minW,minH){var bounds=this.getBounds();x=Math.max(bounds[0],Math.min(bounds[2],x+w)-w);y=Math.max(bounds[1],Math.min(bounds[3],y+h)-h);return this.clampBoxSize(x,y,w,h,minW,minH)};TinyMCE_Windows.prototype.clampBoxSize=function(x,y,w,h,minW,minH){var bounds=this.getBounds();return[x,y,Math.max(minW,Math.min(bounds[2],x+w)-x),Math.max(minH,Math.min(bounds[3],y+h)-y)]};TinyMCE_Windows.prototype.getParam=function(name,default_value){var value=null;value=(typeof(this.settings[name])=="undefined")?default_value:this.settings[name];if(value=="true"||value=="false")return(value=="true");return value};TinyMCE_Windows.prototype.eventDispatcher=function(e){e=typeof(e)=="undefined"?window.event:e;if(mcWindows.selectedWindow==null)return;if(mcWindows.isGecko&&e.type=="mousedown"){var elm=e.currentTarget;for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(win.headElement==elm||win.resizeElement==elm){win.focus();break}}}switch(e.type){case"mousemove":mcWindows.selectedWindow.onMouseMove(e);break;case"mouseup":mcWindows.selectedWindow.onMouseUp(e);break;case"mousedown":mcWindows.selectedWindow.onMouseDown(e);break;case"focus":mcWindows.selectedWindow.onFocus(e);break;case"scroll":case"resize":if(mcWindows.clampUpdateTimeout)clearTimeout(mcWindows.clampUpdateTimeout);mcWindows.clampEventType=e.type;mcWindows.clampUpdateTimeout=setTimeout(function(){mcWindows.updateClamping()},100);break}};TinyMCE_Windows.prototype.updateClamping=function(){var clamp,oversize,etype=mcWindows.clampEventType;this.bounds=null;this.clampUpdateTimeout=null;for(var n in this.windows){win=this.windows[n];if(typeof(win)=='function'||!win.winElement)continue;clamp=mcWindows.clampBoxPosition(win.left,win.top,win.winElement.scrollWidth,win.winElement.scrollHeight,win.features.minWidth,win.features.minHeight);oversize=(clamp[2]!=win.winElement.scrollWidth||clamp[3]!=win.winElement.scrollHeight)?true:false;if(!oversize||win.features.resizable=="yes"||etype!="scroll")win.moveTo(clamp[0],clamp[1]);if(oversize&&win.features.resizable=="yes")win.resizeTo(clamp[2],clamp[3])}};TinyMCE_Windows.prototype.addEvent=function(obj,name,handler){if(this.isMSIE)obj.attachEvent("on"+name,handler);else obj.addEventListener(name,handler,false)};TinyMCE_Windows.prototype.cancelEvent=function(e){if(this.isMSIE){e.returnValue=false;e.cancelBubble=true}else e.preventDefault()};TinyMCE_Windows.prototype.parseFeatures=function(opts){opts=opts.toLowerCase();opts=opts.replace(/;/g,",");opts=opts.replace(/[^0-9a-z=,]/g,"");var optionChunks=opts.split(',');var options=new Array();options['left']="10";options['top']="10";options['width']="300";options['height']="300";options['minwidth']="100";options['minheight']="100";options['resizable']="yes";options['minimizable']="yes";options['maximizable']="yes";options['close']="yes";options['movable']="yes";options['statusbar']="yes";options['scrollbars']="auto";options['modal']="no";if(opts=="")return options;for(var i=0;i<optionChunks.length;i++){var parts=optionChunks[i].split('=');if(parts.length==2)options[parts[0]]=parts[1]}options['left']=parseInt(options['left']);options['top']=parseInt(options['top']);options['width']=parseInt(options['width']);options['height']=parseInt(options['height']);options['minWidth']=parseInt(options['minwidth']);options['minHeight']=parseInt(options['minheight']);return options};TinyMCE_Windows.prototype.open=function(url,name,features){this.lastSelectedWindow=this.selectedWindow;var win=new TinyMCE_Window();var winDiv,html="",id;var imgPath=this.getParam("images_path");features=this.parseFeatures(features);var clamp=mcWindows.clampBoxPosition(features['left'],features['top'],features['width'],features['height'],features['minWidth'],features['minHeight']);features['left']=clamp[0];features['top']=clamp[1];if(features['resizable']=="yes"){features['width']=clamp[2];features['height']=clamp[3]}id="mcWindow_"+name;win.deltaHeight=18;if(features['statusbar']=="yes"){win.deltaHeight+=13;if(this.isMSIE)win.deltaHeight+=1}width=parseInt(features['width']);height=parseInt(features['height'])-win.deltaHeight;if(this.isMSIE)width-=2;win.id=id;win.url=url;win.name=name;win.features=features;this.windows[name]=win;iframeWidth=width;iframeHeight=height;html+='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';html+='<html>';html+='<head>';html+='<title>Wrapper iframe</title>';html+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';html+='<link href="'+this.getParam("css_file")+'" rel="stylesheet" type="text/css" />';html+='</head>';html+='<body onload="parent.mcWindows.onLoad(\''+name+'\');">';html+='<div id="'+id+'_container" class="mceWindow">';html+='<div id="'+id+'_head" class="mceWindowHead" onmousedown="parent.mcWindows.windows[\''+name+'\'].focus();">';html+='  <div id="'+id+'_title" class="mceWindowTitle"';html+='  onselectstart="return false;" unselectable="on" style="-moz-user-select: none !important;"></div>';html+='    <div class="mceWindowHeadTools">';html+='      <a href="javascript:parent.mcWindows.windows[\''+name+'\'].close();" target="_self" onmousedown="return false;" class="mceWindowClose"><img border="0" src="'+imgPath+'/window_close.gif" /></a>';if(features['resizable']=="yes"&&features['maximizable']=="yes")html+='      <a href="javascript:parent.mcWindows.windows[\''+name+'\'].maximize();" target="_self" onmousedown="return false;" class="mceWindowMaximize"><img border="0" src="'+imgPath+'/window_maximize.gif" /></a>';html+='    </div>';html+='</div><div id="'+id+'_body" class="mceWindowBody" style="width: '+width+'px; height: '+height+'px;">';html+='<iframe id="'+id+'_iframe" name="'+id+'_iframe" frameborder="0" width="'+iframeWidth+'" height="'+iframeHeight+'" src="'+url+'" class="mceWindowBodyIframe" scrolling="'+features['scrollbars']+'"></iframe></div>';if(features['statusbar']=="yes"){html+='<div id="'+id+'_statusbar" class="mceWindowStatusbar" onmousedown="parent.mcWindows.windows[\''+name+'\'].focus();">';if(features['resizable']=="yes"){if(this.isGecko)html+='<div id="'+id+'_resize" class="mceWindowResize"><div style="background-image: url(\''+imgPath+'/window_resize.gif\'); width: 12px; height: 12px;"></div></div>';else html+='<div id="'+id+'_resize" class="mceWindowResize"><img onmousedown="parent.mcWindows.windows[\''+name+'\'].focus();" border="0" src="'+imgPath+'/window_resize.gif" /></div>'}html+='</div>'}html+='</div>';html+='</body>';html+='</html>';this.createFloatingIFrame(id,features['left'],features['top'],features['width'],features['height'],html)};TinyMCE_Windows.prototype.setDocumentLock=function(state){var elm=document.getElementById('mcWindowEventBlocker');if(state){if(elm==null){elm=document.createElement("div");elm.id="mcWindowEventBlocker";elm.style.position="absolute";elm.style.left="0";elm.style.top="0";document.body.appendChild(elm)}elm.style.display="none";var imgPath=this.getParam("images_path");var width=document.body.clientWidth;var height=document.body.clientHeight;elm.style.width=width;elm.style.height=height;elm.innerHTML='<img src="'+imgPath+'/spacer.gif" width="'+width+'" height="'+height+'" />';elm.style.zIndex=mcWindows.zindex-1;elm.style.display="block"}else if(elm!=null){if(mcWindows.windows.length==0)elm.parentNode.removeChild(elm);else elm.style.zIndex=mcWindows.zindex-1}};TinyMCE_Windows.prototype.onLoad=function(name){var win=mcWindows.windows[name];var id="mcWindow_"+name;var wrapperIframe=window.frames[id+"_iframe"].frames[0];var wrapperDoc=window.frames[id+"_iframe"].document;var doc=window.frames[id+"_iframe"].document;var winDiv=document.getElementById("mcWindow_"+name+"_div");var realIframe=window.frames[id+"_iframe"].frames[0];win.id="mcWindow_"+name;win.winElement=winDiv;win.bodyElement=doc.getElementById(id+'_body');win.iframeElement=doc.getElementById(id+'_iframe');win.headElement=doc.getElementById(id+'_head');win.titleElement=doc.getElementById(id+'_title');win.resizeElement=doc.getElementById(id+'_resize');win.containerElement=doc.getElementById(id+'_container');win.left=win.features['left'];win.top=win.features['top'];win.frame=window.frames[id+'_iframe'].frames[0];win.wrapperFrame=window.frames[id+'_iframe'];win.wrapperIFrameElement=document.getElementById(id+"_iframe");mcWindows.addEvent(win.headElement,"mousedown",mcWindows.eventDispatcher);if(win.resizeElement!=null)mcWindows.addEvent(win.resizeElement,"mousedown",mcWindows.eventDispatcher);if(mcWindows.isMSIE){mcWindows.addEvent(realIframe.document,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(realIframe.document,"mouseup",mcWindows.eventDispatcher)}else{mcWindows.addEvent(realIframe,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(realIframe,"mouseup",mcWindows.eventDispatcher);mcWindows.addEvent(realIframe,"focus",mcWindows.eventDispatcher)}for(var i=0;i<window.frames.length;i++){if(!window.frames[i]._hasMouseHandlers){if(mcWindows.isMSIE){mcWindows.addEvent(window.frames[i].document,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(window.frames[i].document,"mouseup",mcWindows.eventDispatcher)}else{mcWindows.addEvent(window.frames[i],"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(window.frames[i],"mouseup",mcWindows.eventDispatcher)}window.frames[i]._hasMouseHandlers=true}}if(mcWindows.isMSIE){mcWindows.addEvent(win.frame.document,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(win.frame.document,"mouseup",mcWindows.eventDispatcher)}else{mcWindows.addEvent(win.frame,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(win.frame,"mouseup",mcWindows.eventDispatcher);mcWindows.addEvent(win.frame,"focus",mcWindows.eventDispatcher)}var func=this.getParam("on_open_window","");if(func!="")eval(func+"(win);");win.focus();if(win.features['modal']=="yes")mcWindows.setDocumentLock(true)};TinyMCE_Windows.prototype.createFloatingIFrame=function(id_prefix,left,top,width,height,html){var iframe=document.createElement("iframe");var div=document.createElement("div"),doc;width=parseInt(width);height=parseInt(height)+1;div.setAttribute("id",id_prefix+"_div");div.setAttribute("width",width);div.setAttribute("height",(height));div.style.position="absolute";div.style.left=left+"px";div.style.top=top+"px";div.style.width=width+"px";div.style.height=(height)+"px";div.style.backgroundColor="white";div.style.display="none";if(this.isGecko){iframeWidth=width+2;iframeHeight=height+2}else{iframeWidth=width;iframeHeight=height+1}iframe.setAttribute("id",id_prefix+"_iframe");iframe.setAttribute("name",id_prefix+"_iframe");iframe.setAttribute("border","0");iframe.setAttribute("frameBorder","0");iframe.setAttribute("marginWidth","0");iframe.setAttribute("marginHeight","0");iframe.setAttribute("leftMargin","0");iframe.setAttribute("topMargin","0");iframe.setAttribute("width",iframeWidth);iframe.setAttribute("height",iframeHeight);iframe.setAttribute("scrolling","no");iframe.style.width=iframeWidth+"px";iframe.style.height=iframeHeight+"px";iframe.style.backgroundColor="white";div.appendChild(iframe);document.body.appendChild(div);div.innerHTML=div.innerHTML;if(this.isSafari){window.setTimeout(function(){var doc=window.frames[id_prefix+'_iframe'].document;doc.open();doc.write(html);doc.close()},10)}else{doc=window.frames[id_prefix+'_iframe'].window.document;doc.open();doc.write(html);doc.close()}div.style.display="block";return div};function TinyMCE_Window(){};TinyMCE_Window.prototype.focus=function(){if(this!=mcWindows.selectedWindow){this.winElement.style.zIndex=++mcWindows.zindex;mcWindows.lastSelectedWindow=mcWindows.selectedWindow;mcWindows.selectedWindow=this}};TinyMCE_Window.prototype.minimize=function(){};TinyMCE_Window.prototype.maximize=function(){if(this.restoreSize){this.moveTo(this.restoreSize[0],this.restoreSize[1]);this.resizeTo(this.restoreSize[2],this.restoreSize[3]);this.updateClamping();this.restoreSize=null}else{var bounds=mcWindows.getBounds();this.restoreSize=[this.left,this.top,this.winElement.scrollWidth,this.winElement.scrollHeight];this.moveTo(bounds[0],bounds[1]);this.resizeTo(bounds[2]-bounds[0],bounds[3]-bounds[1])}};TinyMCE_Window.prototype.startResize=function(){mcWindows.action="resize"};TinyMCE_Window.prototype.startMove=function(e){mcWindows.action="move"};TinyMCE_Window.prototype.close=function(){if(this.frame&&this.frame['tinyMCEPopup'])this.frame['tinyMCEPopup'].restoreSelection();if(mcWindows.lastSelectedWindow!=null)mcWindows.lastSelectedWindow.focus();var mcWindowsNew=new Array();for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(typeof(win)=='function')continue;if(win.name!=this.name)mcWindowsNew[n]=win}mcWindows.windows=mcWindowsNew;var e=mcWindows.doc.getElementById(this.id+"_iframe");e.parentNode.removeChild(e);var e=mcWindows.doc.getElementById(this.id+"_div");e.parentNode.removeChild(e);mcWindows.setDocumentLock(false)};TinyMCE_Window.prototype.onMouseMove=function(e){var clamp;var dx=e.screenX-mcWindows.mouseDownScreenX;var dy=e.screenY-mcWindows.mouseDownScreenY;switch(mcWindows.action){case"resize":clamp=mcWindows.clampBoxSize(this.left,this.top,mcWindows.mouseDownWidth+(e.screenX-mcWindows.mouseDownScreenX),mcWindows.mouseDownHeight+(e.screenY-mcWindows.mouseDownScreenY),this.features.minWidth,this.features.minHeight);this.resizeTo(clamp[2],clamp[3]);mcWindows.cancelEvent(e);break;case"move":this.left=mcWindows.mouseDownLayerX+(e.screenX-mcWindows.mouseDownScreenX);this.top=mcWindows.mouseDownLayerY+(e.screenY-mcWindows.mouseDownScreenY);this.updateClamping();mcWindows.cancelEvent(e);break}};TinyMCE_Window.prototype.moveTo=function(x,y){this.left=x;this.top=y;this.winElement.style.left=this.left+"px";this.winElement.style.top=this.top+"px"};TinyMCE_Window.prototype.resizeTo=function(width,height){this.wrapperIFrameElement.style.width=(width+2)+'px';this.wrapperIFrameElement.style.height=(height+2)+'px';this.wrapperIFrameElement.width=width+2;this.wrapperIFrameElement.height=height+2;this.winElement.style.width=width+'px';this.winElement.style.height=height+'px';height=height-this.deltaHeight;this.containerElement.style.width=width+'px';this.iframeElement.style.width=width+'px';this.iframeElement.style.height=height+'px';this.bodyElement.style.width=width+'px';this.bodyElement.style.height=height+'px';this.headElement.style.width=width+'px';};TinyMCE_Window.prototype.updateClamping=function(){var clamp,oversize;clamp=mcWindows.clampBoxPosition(this.left,this.top,this.winElement.scrollWidth,this.winElement.scrollHeight,this.features.minWidth,this.features.minHeight);oversize=(clamp[2]!=this.winElement.scrollWidth||clamp[3]!=this.winElement.scrollHeight)?true:false;this.moveTo(clamp[0],clamp[1]);if(this.features.resizable=="yes"&&oversize)this.resizeTo(clamp[2],clamp[3])};function debug(msg){document.getElementById('debug').value+=msg+"\n"}TinyMCE_Window.prototype.onMouseUp=function(e){mcWindows.action="none"};TinyMCE_Window.prototype.onFocus=function(e){var winRef=e.currentTarget;for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(typeof(win)=='function')continue;if(winRef.name==win.id+"_iframe"){win.focus();return}}};TinyMCE_Window.prototype.onMouseDown=function(e){var elm=mcWindows.isMSIE?this.wrapperFrame.event.srcElement:e.target;mcWindows.mouseDownScreenX=e.screenX;mcWindows.mouseDownScreenY=e.screenY;mcWindows.mouseDownLayerX=this.left;mcWindows.mouseDownLayerY=this.top;mcWindows.mouseDownWidth=parseInt(this.winElement.style.width);mcWindows.mouseDownHeight=parseInt(this.winElement.style.height);if(this.resizeElement!=null&&elm==this.resizeElement.firstChild)this.startResize(e);else this.startMove(e);mcWindows.cancelEvent(e)};var mcWindows=new TinyMCE_Windows();mcWindows.init({images_path:tinyMCE.baseURL+"/plugins/inlinepopups/images",css_file:tinyMCE.baseURL+"/plugins/inlinepopups/css/inlinepopup.css"});
\ No newline at end of file
diff --git a/tinyMCE/plugins/inlinepopups/editor_plugin_src.js b/tinyMCE/plugins/inlinepopups/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..41a61246a83a62c73d924ca176a44b49e0cac25a
--- /dev/null
+++ b/tinyMCE/plugins/inlinepopups/editor_plugin_src.js
@@ -0,0 +1,819 @@
+/**
+ * $Id: editor_plugin_src.js 268 2007-04-28 15:52:59Z spocke $
+ *
+ * Moxiecode DHTML Windows script.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+// Patch openWindow, closeWindow TinyMCE functions
+
+var TinyMCE_InlinePopupsPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Inline Popups',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	}
+};
+
+tinyMCE.addPlugin("inlinepopups", TinyMCE_InlinePopupsPlugin);
+
+// Patch openWindow, closeWindow TinyMCE functions
+
+TinyMCE_Engine.prototype.orgOpenWindow = TinyMCE_Engine.prototype.openWindow;
+TinyMCE_Engine.prototype.orgCloseWindow = TinyMCE_Engine.prototype.closeWindow;
+
+TinyMCE_Engine.prototype.openWindow = function(template, args) {
+	// Does the caller support inline
+	if (args['inline'] != "yes" || tinyMCE.isOpera || tinyMCE.getParam("plugins").indexOf('inlinepopups') == -1) {
+		mcWindows.selectedWindow = null;
+		args['mce_inside_iframe'] = false;
+		this.orgOpenWindow(template, args);
+		return;
+	}
+
+	var url, resizable, scrollbars;
+
+	args['mce_inside_iframe'] = true;
+	tinyMCE.windowArgs = args;
+
+	if (template['file'].charAt(0) != '/' && template['file'].indexOf('://') == -1)
+		url = tinyMCE.baseURL + "/themes/" + tinyMCE.getParam("theme") + "/" + template['file'];
+	else
+		url = template['file'];
+
+	if (!(width = parseInt(template['width'])))
+		width = 320;
+
+	if (!(height = parseInt(template['height'])))
+		height = 200;
+
+	if (!(minWidth = parseInt(template['minWidth'])))
+		minWidth = 100;
+
+	if (!(minHeight = parseInt(template['minHeight'])))
+		minHeight = 100;
+
+	resizable = (args && args['resizable']) ? args['resizable'] : "no";
+	scrollbars = (args && args['scrollbars']) ? args['scrollbars'] : "no";
+
+	height += 18;
+
+	// Replace all args as variables in URL
+	for (var name in args) {
+		if (typeof(args[name]) == 'function')
+			continue;
+
+		url = tinyMCE.replaceVar(url, name, escape(args[name]));
+	}
+
+	var elm = document.getElementById(this.selectedInstance.editorId + '_parent');
+
+	if (tinyMCE.hasPlugin('fullscreen') && this.selectedInstance.getData('fullscreen').enabled)
+		pos = { absLeft: 0, absTop: 0 };
+	else
+		pos = tinyMCE.getAbsPosition(elm);
+
+	// Center div in editor area
+	pos.absLeft += Math.round((elm.firstChild.clientWidth / 2) - (width / 2));
+	pos.absTop += Math.round((elm.firstChild.clientHeight / 2) - (height / 2));
+
+	mcWindows.open(url, mcWindows.idCounter++, "modal=yes,width=" + width+ ",height=" + height + ",resizable=" + resizable + ",scrollbars=" + scrollbars + ",statusbar=" + resizable + ",left=" + pos.absLeft + ",top=" + pos.absTop + ",minWidth=" + minWidth + ",minHeight=" + minHeight );
+};
+
+TinyMCE_Engine.prototype.closeWindow = function(win) {
+	var gotit = false, n, w;
+
+	for (n in mcWindows.windows) {
+		w = mcWindows.windows[n];
+
+		if (typeof(w) == 'function')
+			continue;
+
+		if (win.name == w.id + '_iframe') {
+			w.close();
+			gotit = true;
+		}
+	}
+
+	if (!gotit)
+		this.orgCloseWindow(win);
+
+	tinyMCE.selectedInstance.getWin().focus(); 
+};
+
+TinyMCE_Engine.prototype.setWindowTitle = function(win_ref, title) {
+	for (var n in mcWindows.windows) {
+		var win = mcWindows.windows[n];
+		if (typeof(win) == 'function')
+			continue;
+
+		if (win_ref.name == win.id + "_iframe")
+			window.frames[win.id + "_iframe"].document.getElementById(win.id + '_title').innerHTML = title;
+	}
+};
+
+// * * * * * TinyMCE_Windows classes below
+
+// Windows handler
+function TinyMCE_Windows() {
+	this.settings = new Array();
+	this.windows = new Array();
+	this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
+	this.isGecko = navigator.userAgent.indexOf('Gecko') != -1;
+	this.isSafari = navigator.userAgent.indexOf('Safari') != -1;
+	this.isMac = navigator.userAgent.indexOf('Mac') != -1;
+	this.isMSIE5_0 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5.0') != -1);
+	this.action = "none";
+	this.selectedWindow = null;
+	this.lastSelectedWindow = null;
+	this.zindex = 1001;
+	this.mouseDownScreenX = 0;
+	this.mouseDownScreenY = 0;
+	this.mouseDownLayerX = 0;
+	this.mouseDownLayerY = 0;
+	this.mouseDownWidth = 0;
+	this.mouseDownHeight = 0;
+	this.idCounter = 0;
+};
+
+TinyMCE_Windows.prototype.init = function(settings) {
+	this.settings = settings;
+
+	if (this.isMSIE)
+		this.addEvent(document, "mousemove", mcWindows.eventDispatcher);
+	else
+		this.addEvent(window, "mousemove", mcWindows.eventDispatcher);
+
+	this.addEvent(document, "mouseup", mcWindows.eventDispatcher);
+
+	this.addEvent(window, "resize", mcWindows.eventDispatcher);
+	this.addEvent(document, "scroll", mcWindows.eventDispatcher);
+
+	this.doc = document;
+};
+
+TinyMCE_Windows.prototype.getBounds = function() {
+	if (!this.bounds) {
+		var vp = tinyMCE.getViewPort(window);
+		var top, left, bottom, right, docEl = this.doc.documentElement;
+
+		top    = vp.top;
+		left   = vp.left;
+		bottom = vp.height + top - 2;
+		right  = vp.width  + left - 22; // TODO this number is platform dependant
+		// x1, y1, x2, y2
+		this.bounds = [left, top, right, bottom];
+	}
+	return this.bounds;
+};
+
+TinyMCE_Windows.prototype.clampBoxPosition = function(x, y, w, h, minW, minH) {
+	var bounds = this.getBounds();
+
+	x = Math.max(bounds[0], Math.min(bounds[2], x + w) - w);
+	y = Math.max(bounds[1], Math.min(bounds[3], y + h) - h);
+
+	return this.clampBoxSize(x, y, w, h, minW, minH);
+};
+
+TinyMCE_Windows.prototype.clampBoxSize = function(x, y, w, h, minW, minH) {
+	var bounds = this.getBounds();
+
+	return [
+		x, y,
+		Math.max(minW, Math.min(bounds[2], x + w) - x),
+		Math.max(minH, Math.min(bounds[3], y + h) - y)
+	];
+};
+
+TinyMCE_Windows.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;
+};
+
+TinyMCE_Windows.prototype.eventDispatcher = function(e) {
+	e = typeof(e) == "undefined" ? window.event : e;
+
+	if (mcWindows.selectedWindow == null)
+		return;
+
+	// Switch focus
+	if (mcWindows.isGecko && e.type == "mousedown") {
+		var elm = e.currentTarget;
+
+		for (var n in mcWindows.windows) {
+			var win = mcWindows.windows[n];
+
+			if (win.headElement == elm || win.resizeElement == elm) {
+				win.focus();
+				break;
+			}
+		}
+	}
+
+	switch (e.type) {
+		case "mousemove":
+			mcWindows.selectedWindow.onMouseMove(e);
+			break;
+
+		case "mouseup":
+			mcWindows.selectedWindow.onMouseUp(e);
+			break;
+
+		case "mousedown":
+			mcWindows.selectedWindow.onMouseDown(e);
+			break;
+
+		case "focus":
+			mcWindows.selectedWindow.onFocus(e);
+			break;
+		case "scroll":
+		case "resize":
+			if (mcWindows.clampUpdateTimeout)
+				clearTimeout(mcWindows.clampUpdateTimeout);
+			mcWindows.clampEventType = e.type;
+			mcWindows.clampUpdateTimeout =
+				setTimeout(function () {mcWindows.updateClamping()}, 100);
+			break;
+	}
+};
+
+TinyMCE_Windows.prototype.updateClamping = function () {
+	var clamp, oversize, etype = mcWindows.clampEventType;
+
+	this.bounds = null; // Recalc window bounds on resize/scroll
+	this.clampUpdateTimeout = null;
+
+	for (var n in this.windows) {
+		win = this.windows[n];
+		if (typeof(win) == 'function' || ! win.winElement) continue;
+
+		clamp = mcWindows.clampBoxPosition(
+			win.left, win.top,
+			win.winElement.scrollWidth,
+			win.winElement.scrollHeight,
+			win.features.minWidth,
+			win.features.minHeight
+		);
+		oversize = (
+			clamp[2] != win.winElement.scrollWidth ||
+			clamp[3] != win.winElement.scrollHeight
+		) ? true : false;
+
+		if (!oversize || win.features.resizable == "yes" || etype != "scroll")
+			win.moveTo(clamp[0], clamp[1]);
+		if (oversize && win.features.resizable == "yes")
+			win.resizeTo(clamp[2], clamp[3]);
+	}
+};
+
+TinyMCE_Windows.prototype.addEvent = function(obj, name, handler) {
+	if (this.isMSIE)
+		obj.attachEvent("on" + name, handler);
+	else
+		obj.addEventListener(name, handler, false);
+};
+
+TinyMCE_Windows.prototype.cancelEvent = function(e) {
+	if (this.isMSIE) {
+		e.returnValue = false;
+		e.cancelBubble = true;
+	} else
+		e.preventDefault();
+};
+
+TinyMCE_Windows.prototype.parseFeatures = function(opts) {
+	// Cleanup the options
+	opts = opts.toLowerCase();
+	opts = opts.replace(/;/g, ",");
+	opts = opts.replace(/[^0-9a-z=,]/g, "");
+
+	var optionChunks = opts.split(',');
+	var options = new Array();
+
+	options['left'] = "10";
+	options['top'] = "10";
+	options['width'] = "300";
+	options['height'] = "300";
+	options['minwidth'] = "100";
+	options['minheight'] = "100";
+	options['resizable'] = "yes";
+	options['minimizable'] = "yes";
+	options['maximizable'] = "yes";
+	options['close'] = "yes";
+	options['movable'] = "yes";
+	options['statusbar'] = "yes";
+	options['scrollbars'] = "auto";
+	options['modal'] = "no";
+
+	if (opts == "")
+		return options;
+
+	for (var i=0; i<optionChunks.length; i++) {
+		var parts = optionChunks[i].split('=');
+
+		if (parts.length == 2)
+			options[parts[0]] = parts[1];
+	}
+
+	options['left'] = parseInt(options['left']);
+	options['top'] = parseInt(options['top']);
+	options['width'] = parseInt(options['width']);
+	options['height'] = parseInt(options['height']);
+	options['minWidth'] = parseInt(options['minwidth']);
+	options['minHeight'] = parseInt(options['minheight']);
+
+	return options;
+};
+
+TinyMCE_Windows.prototype.open = function(url, name, features) {
+	this.lastSelectedWindow = this.selectedWindow;
+
+	var win = new TinyMCE_Window();
+	var winDiv, html = "", id;
+	var imgPath = this.getParam("images_path");
+
+	features = this.parseFeatures(features);
+
+	// Clamp specified dimensions
+	var clamp = mcWindows.clampBoxPosition(
+		features['left'], features['top'],
+		features['width'], features['height'],
+		features['minWidth'], features['minHeight']
+	);
+
+	features['left'] = clamp[0];
+	features['top'] = clamp[1];
+
+	if (features['resizable'] == "yes") {
+		features['width'] = clamp[2];
+		features['height'] = clamp[3];
+	}
+
+	// Create div
+	id = "mcWindow_" + name;
+	win.deltaHeight = 18;
+
+	if (features['statusbar'] == "yes") {
+		win.deltaHeight += 13;
+
+		if (this.isMSIE)
+			win.deltaHeight += 1;
+	}
+
+	width = parseInt(features['width']);
+	height = parseInt(features['height'])-win.deltaHeight;
+
+	if (this.isMSIE)
+		width -= 2;
+
+	// Setup first part of window
+	win.id = id;
+	win.url = url;
+	win.name = name;
+	win.features = features;
+	this.windows[name] = win;
+
+	iframeWidth = width;
+	iframeHeight = height;
+
+	// Create inner content
+	html += '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
+	html += '<html>';
+	html += '<head>';
+	html += '<title>Wrapper iframe</title>';
+	html += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
+	html += '<link href="' + this.getParam("css_file") + '" rel="stylesheet" type="text/css" />';
+	html += '</head>';
+	html += '<body onload="parent.mcWindows.onLoad(\'' + name + '\');">';
+
+	html += '<div id="' + id + '_container" class="mceWindow">';
+	html += '<div id="' + id + '_head" class="mceWindowHead" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">';
+	html += '  <div id="' + id + '_title" class="mceWindowTitle"';
+	html += '  onselectstart="return false;" unselectable="on" style="-moz-user-select: none !important;"></div>';
+	html += '    <div class="mceWindowHeadTools">';
+	html += '      <a href="javascript:parent.mcWindows.windows[\'' + name + '\'].close();" target="_self" onmousedown="return false;" class="mceWindowClose"><img border="0" src="' + imgPath + '/window_close.gif" /></a>';
+	if (features['resizable'] == "yes" && features['maximizable'] == "yes")
+		html += '      <a href="javascript:parent.mcWindows.windows[\'' + name + '\'].maximize();" target="_self" onmousedown="return false;" class="mceWindowMaximize"><img border="0" src="' + imgPath + '/window_maximize.gif" /></a>';
+	// html += '      <a href="javascript:mcWindows.windows[\'' + name + '\'].minimize();" target="_self" onmousedown="return false;" class="mceWindowMinimize"></a>';
+	html += '    </div>';
+	html += '</div><div id="' + id + '_body" class="mceWindowBody" style="width: ' + width + 'px; height: ' + height + 'px;">';
+	html += '<iframe id="' + id + '_iframe" name="' + id + '_iframe" frameborder="0" width="' + iframeWidth + '" height="' + iframeHeight + '" src="' + url + '" class="mceWindowBodyIframe" scrolling="' + features['scrollbars'] + '"></iframe></div>';
+
+	if (features['statusbar'] == "yes") {
+		html += '<div id="' + id + '_statusbar" class="mceWindowStatusbar" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">';
+
+		if (features['resizable'] == "yes") {
+			if (this.isGecko)
+				html += '<div id="' + id + '_resize" class="mceWindowResize"><div style="background-image: url(\'' + imgPath + '/window_resize.gif\'); width: 12px; height: 12px;"></div></div>';
+			else
+				html += '<div id="' + id + '_resize" class="mceWindowResize"><img onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();" border="0" src="' + imgPath + '/window_resize.gif" /></div>';
+		}
+
+		html += '</div>';
+	}
+
+	html += '</div>';
+
+	html += '</body>';
+	html += '</html>';
+
+	// Create iframe
+	this.createFloatingIFrame(id, features['left'], features['top'], features['width'], features['height'], html);
+};
+
+// Blocks the document events by placing a image over the whole document
+TinyMCE_Windows.prototype.setDocumentLock = function(state) {
+	var elm = document.getElementById('mcWindowEventBlocker');
+
+	if (state) {
+		if (elm == null) {
+			elm = document.createElement("div");
+
+			elm.id = "mcWindowEventBlocker";
+			elm.style.position = "absolute";
+			elm.style.left = "0";
+			elm.style.top = "0";
+
+			document.body.appendChild(elm);
+		}
+
+		elm.style.display = "none";
+
+		var imgPath = this.getParam("images_path");
+		var width = document.body.clientWidth;
+		var height = document.body.clientHeight;
+
+		elm.style.width = width;
+		elm.style.height = height;
+		elm.innerHTML = '<img src="' + imgPath + '/spacer.gif" width="' + width + '" height="' + height + '" />';
+
+		elm.style.zIndex = mcWindows.zindex-1;
+		elm.style.display = "block";
+	} else if (elm != null) {
+		if (mcWindows.windows.length == 0)
+			elm.parentNode.removeChild(elm);
+		else
+			elm.style.zIndex = mcWindows.zindex-1;
+	}
+};
+
+// Gets called when wrapper iframe is initialized
+TinyMCE_Windows.prototype.onLoad = function(name) {
+	var win = mcWindows.windows[name];
+	var id = "mcWindow_" + name;
+	var wrapperIframe = window.frames[id + "_iframe"].frames[0];
+	var wrapperDoc = window.frames[id + "_iframe"].document;
+	var doc = window.frames[id + "_iframe"].document;
+	var winDiv = document.getElementById("mcWindow_" + name + "_div");
+	var realIframe = window.frames[id + "_iframe"].frames[0];
+
+	// Set window data
+	win.id = "mcWindow_" + name;
+	win.winElement = winDiv;
+	win.bodyElement = doc.getElementById(id + '_body');
+	win.iframeElement = doc.getElementById(id + '_iframe');
+	win.headElement = doc.getElementById(id + '_head');
+	win.titleElement = doc.getElementById(id + '_title');
+	win.resizeElement = doc.getElementById(id + '_resize');
+	win.containerElement = doc.getElementById(id + '_container');
+	win.left = win.features['left'];
+	win.top = win.features['top'];
+	win.frame = window.frames[id + '_iframe'].frames[0];
+	win.wrapperFrame = window.frames[id + '_iframe'];
+	win.wrapperIFrameElement = document.getElementById(id + "_iframe");
+
+	// Add event handlers
+	mcWindows.addEvent(win.headElement, "mousedown", mcWindows.eventDispatcher);
+
+	if (win.resizeElement != null)
+		mcWindows.addEvent(win.resizeElement, "mousedown", mcWindows.eventDispatcher);
+
+	if (mcWindows.isMSIE) {
+		mcWindows.addEvent(realIframe.document, "mousemove", mcWindows.eventDispatcher);
+		mcWindows.addEvent(realIframe.document, "mouseup", mcWindows.eventDispatcher);
+	} else {
+		mcWindows.addEvent(realIframe, "mousemove", mcWindows.eventDispatcher);
+		mcWindows.addEvent(realIframe, "mouseup", mcWindows.eventDispatcher);
+		mcWindows.addEvent(realIframe, "focus", mcWindows.eventDispatcher);
+	}
+
+	for (var i=0; i<window.frames.length; i++) {
+		if (!window.frames[i]._hasMouseHandlers) {
+			if (mcWindows.isMSIE) {
+				mcWindows.addEvent(window.frames[i].document, "mousemove", mcWindows.eventDispatcher);
+				mcWindows.addEvent(window.frames[i].document, "mouseup", mcWindows.eventDispatcher);
+			} else {
+				mcWindows.addEvent(window.frames[i], "mousemove", mcWindows.eventDispatcher);
+				mcWindows.addEvent(window.frames[i], "mouseup", mcWindows.eventDispatcher);
+			}
+
+			window.frames[i]._hasMouseHandlers = true;
+		}
+	}
+
+	if (mcWindows.isMSIE) {
+		mcWindows.addEvent(win.frame.document, "mousemove", mcWindows.eventDispatcher);
+		mcWindows.addEvent(win.frame.document, "mouseup", mcWindows.eventDispatcher);
+	} else {
+		mcWindows.addEvent(win.frame, "mousemove", mcWindows.eventDispatcher);
+		mcWindows.addEvent(win.frame, "mouseup", mcWindows.eventDispatcher);
+		mcWindows.addEvent(win.frame, "focus", mcWindows.eventDispatcher);
+	}
+
+	// Dispatch open window event
+	var func = this.getParam("on_open_window", "");
+	if (func != "")
+		eval(func + "(win);");
+
+	win.focus();
+
+	if (win.features['modal'] == "yes")
+		mcWindows.setDocumentLock(true);
+};
+
+TinyMCE_Windows.prototype.createFloatingIFrame = function(id_prefix, left, top, width, height, html) {
+	var iframe = document.createElement("iframe");
+	var div = document.createElement("div"), doc;
+
+	width = parseInt(width);
+	height = parseInt(height)+1;
+
+	// Create wrapper div
+	div.setAttribute("id", id_prefix + "_div");
+	div.setAttribute("width", width);
+	div.setAttribute("height", (height));
+	div.style.position = "absolute";
+
+	div.style.left = left + "px";
+	div.style.top = top + "px";
+	div.style.width = width + "px";
+	div.style.height = (height) + "px";
+	div.style.backgroundColor = "white";
+	div.style.display = "none";
+
+	if (this.isGecko) {
+		iframeWidth = width + 2;
+		iframeHeight = height + 2;
+	} else {
+		iframeWidth = width;
+		iframeHeight = height + 1;
+	}
+
+	// Create iframe
+	iframe.setAttribute("id", id_prefix + "_iframe");
+	iframe.setAttribute("name", id_prefix + "_iframe");
+	iframe.setAttribute("border", "0");
+	iframe.setAttribute("frameBorder", "0");
+	iframe.setAttribute("marginWidth", "0");
+	iframe.setAttribute("marginHeight", "0");
+	iframe.setAttribute("leftMargin", "0");
+	iframe.setAttribute("topMargin", "0");
+	iframe.setAttribute("width", iframeWidth);
+	iframe.setAttribute("height", iframeHeight);
+	// iframe.setAttribute("src", "../jscripts/tiny_mce/blank.htm");
+	// iframe.setAttribute("allowtransparency", "false");
+	iframe.setAttribute("scrolling", "no");
+	iframe.style.width = iframeWidth + "px";
+	iframe.style.height = iframeHeight + "px";
+	iframe.style.backgroundColor = "white";
+	div.appendChild(iframe);
+
+	document.body.appendChild(div);
+
+	// Fixed MSIE 5.0 issue
+	div.innerHTML = div.innerHTML;
+
+	if (this.isSafari) {
+		// Give Safari some time to setup
+		window.setTimeout(function() {
+			var doc = window.frames[id_prefix + '_iframe'].document;
+			doc.open();
+			doc.write(html);
+			doc.close();
+		}, 10);
+	} else {
+		doc = window.frames[id_prefix + '_iframe'].window.document;
+		doc.open();
+		doc.write(html);
+		doc.close();
+	}
+
+	div.style.display = "block";
+
+	return div;
+};
+
+// Window instance
+function TinyMCE_Window() {
+};
+
+TinyMCE_Window.prototype.focus = function() {
+	if (this != mcWindows.selectedWindow) {
+		this.winElement.style.zIndex = ++mcWindows.zindex;
+		mcWindows.lastSelectedWindow = mcWindows.selectedWindow;
+		mcWindows.selectedWindow = this;
+	}
+};
+
+TinyMCE_Window.prototype.minimize = function() {
+};
+
+TinyMCE_Window.prototype.maximize = function() {
+	if (this.restoreSize) {
+		this.moveTo(this.restoreSize[0], this.restoreSize[1]);
+		this.resizeTo(this.restoreSize[2], this.restoreSize[3]);
+		this.updateClamping();
+		this.restoreSize = null;
+	} else {
+		var bounds = mcWindows.getBounds();
+		this.restoreSize = [
+			this.left, this.top,
+			this.winElement.scrollWidth,
+			this.winElement.scrollHeight
+		];
+		this.moveTo(bounds[0], bounds[1]);
+		this.resizeTo(
+			bounds[2] - bounds[0],
+			bounds[3] - bounds[1]
+		);
+	}
+};
+
+TinyMCE_Window.prototype.startResize = function() {
+	mcWindows.action = "resize";
+};
+
+TinyMCE_Window.prototype.startMove = function(e) {
+	mcWindows.action = "move";
+};
+
+TinyMCE_Window.prototype.close = function() {
+	if (this.frame && this.frame['tinyMCEPopup'])
+		this.frame['tinyMCEPopup'].restoreSelection();
+
+	if (mcWindows.lastSelectedWindow != null)
+		mcWindows.lastSelectedWindow.focus();
+
+	var mcWindowsNew = new Array();
+	for (var n in mcWindows.windows) {
+		var win = mcWindows.windows[n];
+		if (typeof(win) == 'function')
+			continue;
+
+		if (win.name != this.name)
+			mcWindowsNew[n] = win;
+	}
+
+	mcWindows.windows = mcWindowsNew;
+
+	// alert(mcWindows.doc.getElementById(this.id + "_iframe"));
+
+	var e = mcWindows.doc.getElementById(this.id + "_iframe");
+	e.parentNode.removeChild(e);
+
+	var e = mcWindows.doc.getElementById(this.id + "_div");
+	e.parentNode.removeChild(e);
+
+	mcWindows.setDocumentLock(false);
+};
+
+TinyMCE_Window.prototype.onMouseMove = function(e) {
+	var clamp;
+	// Calculate real X, Y
+	var dx = e.screenX - mcWindows.mouseDownScreenX;
+	var dy = e.screenY - mcWindows.mouseDownScreenY;
+
+	switch (mcWindows.action) {
+		case "resize":
+			clamp = mcWindows.clampBoxSize(
+				this.left, this.top,
+				mcWindows.mouseDownWidth + (e.screenX - mcWindows.mouseDownScreenX),
+				mcWindows.mouseDownHeight + (e.screenY - mcWindows.mouseDownScreenY),
+				this.features.minWidth, this.features.minHeight
+			);
+
+			this.resizeTo(clamp[2], clamp[3]);
+
+			mcWindows.cancelEvent(e);
+			break;
+
+		case "move":
+			this.left = mcWindows.mouseDownLayerX + (e.screenX - mcWindows.mouseDownScreenX);
+			this.top = mcWindows.mouseDownLayerY + (e.screenY - mcWindows.mouseDownScreenY);
+			this.updateClamping();
+
+			mcWindows.cancelEvent(e);
+			break;
+	}
+};
+
+TinyMCE_Window.prototype.moveTo = function (x, y) {
+	this.left = x;
+	this.top = y;
+
+	this.winElement.style.left = this.left + "px";
+	this.winElement.style.top = this.top + "px";
+};
+
+TinyMCE_Window.prototype.resizeTo = function (width, height) {
+	this.wrapperIFrameElement.style.width = (width+2) + 'px';
+	this.wrapperIFrameElement.style.height = (height+2) + 'px';
+	this.wrapperIFrameElement.width = width+2;
+	this.wrapperIFrameElement.height = height+2;
+	this.winElement.style.width = width + 'px';
+	this.winElement.style.height = height + 'px';
+
+	height = height - this.deltaHeight;
+
+	this.containerElement.style.width = width + 'px';
+	this.iframeElement.style.width = width + 'px';
+	this.iframeElement.style.height = height + 'px';
+	this.bodyElement.style.width = width + 'px';
+	this.bodyElement.style.height = height + 'px';
+	this.headElement.style.width = width + 'px';
+	//this.statusElement.style.width = width + 'px';
+};
+
+TinyMCE_Window.prototype.updateClamping = function () {
+	var clamp, oversize;
+
+	clamp = mcWindows.clampBoxPosition(
+		this.left, this.top,
+		this.winElement.scrollWidth,
+		this.winElement.scrollHeight,
+		this.features.minWidth, this.features.minHeight
+	);
+	oversize = (
+		clamp[2] != this.winElement.scrollWidth ||
+		clamp[3] != this.winElement.scrollHeight
+	) ? true : false;
+
+	this.moveTo(clamp[0], clamp[1]);
+	if (this.features.resizable == "yes" && oversize)
+		this.resizeTo(clamp[2], clamp[3]);
+};
+
+function debug(msg) {
+	document.getElementById('debug').value += msg + "\n";
+}
+
+TinyMCE_Window.prototype.onMouseUp = function(e) {
+	mcWindows.action = "none";
+};
+
+TinyMCE_Window.prototype.onFocus = function(e) {
+	// Gecko only handler
+	var winRef = e.currentTarget;
+
+	for (var n in mcWindows.windows) {
+		var win = mcWindows.windows[n];
+		if (typeof(win) == 'function')
+			continue;
+
+		if (winRef.name == win.id + "_iframe") {
+			win.focus();
+			return;
+		}
+	}
+};
+
+TinyMCE_Window.prototype.onMouseDown = function(e) {
+	var elm = mcWindows.isMSIE ? this.wrapperFrame.event.srcElement : e.target;
+
+	mcWindows.mouseDownScreenX = e.screenX;
+	mcWindows.mouseDownScreenY = e.screenY;
+	mcWindows.mouseDownLayerX = this.left;
+	mcWindows.mouseDownLayerY = this.top;
+	mcWindows.mouseDownWidth = parseInt(this.winElement.style.width);
+	mcWindows.mouseDownHeight = parseInt(this.winElement.style.height);
+
+	if (this.resizeElement != null && elm == this.resizeElement.firstChild)
+		this.startResize(e);
+	else
+		this.startMove(e);
+
+	mcWindows.cancelEvent(e);
+};
+
+// Global instance
+var mcWindows = new TinyMCE_Windows();
+
+// Initialize windows
+mcWindows.init({
+	images_path : tinyMCE.baseURL + "/plugins/inlinepopups/images",
+	css_file : tinyMCE.baseURL + "/plugins/inlinepopups/css/inlinepopup.css"
+});
diff --git a/tinyMCE/plugins/inlinepopups/images/spacer.gif b/tinyMCE/plugins/inlinepopups/images/spacer.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fc2560981ee1caca400e225e48d282106f907f2d
Binary files /dev/null and b/tinyMCE/plugins/inlinepopups/images/spacer.gif differ
diff --git a/tinyMCE/plugins/inlinepopups/images/window_close.gif b/tinyMCE/plugins/inlinepopups/images/window_close.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3469e5aea1d1594aded9b9fe41dbf66f7db66e5d
Binary files /dev/null and b/tinyMCE/plugins/inlinepopups/images/window_close.gif differ
diff --git a/tinyMCE/plugins/inlinepopups/images/window_maximize.gif b/tinyMCE/plugins/inlinepopups/images/window_maximize.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fcae73e907b68f2413f3e8b8682d3cd9a05454b1
Binary files /dev/null and b/tinyMCE/plugins/inlinepopups/images/window_maximize.gif differ
diff --git a/tinyMCE/plugins/inlinepopups/images/window_minimize.gif b/tinyMCE/plugins/inlinepopups/images/window_minimize.gif
new file mode 100644
index 0000000000000000000000000000000000000000..94f167a4dd150485a7530bdf5d2c9e4dd42f109a
Binary files /dev/null and b/tinyMCE/plugins/inlinepopups/images/window_minimize.gif differ
diff --git a/tinyMCE/plugins/inlinepopups/images/window_resize.gif b/tinyMCE/plugins/inlinepopups/images/window_resize.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6c402d0b40773a5c25c5d6b1821bd51636408e0b
Binary files /dev/null and b/tinyMCE/plugins/inlinepopups/images/window_resize.gif differ
diff --git a/tinyMCE/plugins/inlinepopups/jscripts/mcwindows.js b/tinyMCE/plugins/inlinepopups/jscripts/mcwindows.js
new file mode 100644
index 0000000000000000000000000000000000000000..325d293992843df05fff291c9d15753e7fb63c43
--- /dev/null
+++ b/tinyMCE/plugins/inlinepopups/jscripts/mcwindows.js
@@ -0,0 +1,453 @@
+/**
+ * $Id: mcwindows.js 18 2006-06-29 14:11:23Z spocke $
+ *
+ * Moxiecode DHTML Windows script.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
+ */
+
+// Windows handler
+function MCWindows() {
+	this.settings = new Array();
+	this.windows = new Array();
+	this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
+	this.isGecko = navigator.userAgent.indexOf('Gecko') != -1;
+	this.isSafari = navigator.userAgent.indexOf('Safari') != -1;
+	this.isMac = navigator.userAgent.indexOf('Mac') != -1;
+	this.isMSIE5_0 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5.0') != -1);
+	this.action = "none";
+	this.selectedWindow = null;
+	this.zindex = 100;
+	this.mouseDownScreenX = 0;
+	this.mouseDownScreenY = 0;
+	this.mouseDownLayerX = 0;
+	this.mouseDownLayerY = 0;
+	this.mouseDownWidth = 0;
+	this.mouseDownHeight = 0;
+};
+
+MCWindows.prototype.init = function(settings) {
+	this.settings = settings;
+
+	if (this.isMSIE)
+		this.addEvent(document, "mousemove", mcWindows.eventDispatcher);
+	else
+		this.addEvent(window, "mousemove", mcWindows.eventDispatcher);
+
+	this.addEvent(document, "mouseup", mcWindows.eventDispatcher);
+};
+
+MCWindows.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;
+};
+
+MCWindows.prototype.eventDispatcher = function(e) {
+	e = typeof(e) == "undefined" ? window.event : e;
+
+	if (mcWindows.selectedWindow == null)
+		return;
+
+	// Switch focus
+	if (mcWindows.isGecko && e.type == "mousedown") {
+		var elm = e.currentTarget;
+
+		for (var n in mcWindows.windows) {
+			var win = mcWindows.windows[n];
+			if (typeof(win) == 'function')
+				continue;
+
+			if (win.headElement == elm || win.resizeElement == elm) {
+				win.focus();
+				break;
+			}
+		}
+	}
+
+	switch (e.type) {
+		case "mousemove":
+			mcWindows.selectedWindow.onMouseMove(e);
+			break;
+
+		case "mouseup":
+			mcWindows.selectedWindow.onMouseUp(e);
+			break;
+
+		case "mousedown":
+			mcWindows.selectedWindow.onMouseDown(e);
+			break;
+
+		case "focus":
+			mcWindows.selectedWindow.onFocus(e);
+			break;
+	}
+}
+
+MCWindows.prototype.addEvent = function(obj, name, handler) {
+	if (this.isMSIE)
+		obj.attachEvent("on" + name, handler);
+	else
+		obj.addEventListener(name, handler, true);
+};
+
+MCWindows.prototype.cancelEvent = function(e) {
+	if (this.isMSIE) {
+		e.returnValue = false;
+		e.cancelBubble = true;
+	} else
+		e.preventDefault();
+};
+
+MCWindows.prototype.parseFeatures = function(opts) {
+	// Cleanup the options
+	opts = opts.toLowerCase();
+	opts = opts.replace(/;/g, ",");
+	opts = opts.replace(/[^0-9a-z=,]/g, "");
+
+	var optionChunks = opts.split(',');
+	var options = new Array();
+
+	options['left'] = 10;
+	options['top'] = 10;
+	options['width'] = 300;
+	options['height'] = 300;
+	options['resizable'] = true;
+	options['minimizable'] = true;
+	options['maximizable'] = true;
+	options['close'] = true;
+	options['movable'] = true;
+
+	if (opts == "")
+		return options;
+
+	for (var i=0; i<optionChunks.length; i++) {
+		var parts = optionChunks[i].split('=');
+
+		if (parts.length == 2)
+			options[parts[0]] = parts[1];
+	}
+
+	return options;
+};
+
+MCWindows.prototype.open = function(url, name, features) {
+	var win = new MCWindow();
+	var winDiv, html = "", id;
+
+	features = this.parseFeatures(features);
+
+	// Create div
+	id = "mcWindow_" + name;
+
+	width = parseInt(features['width']);
+	height = parseInt(features['height'])-12-19;
+
+	if (this.isMSIE)
+		width -= 2;
+
+	// Setup first part of window
+	win.id = id;
+	win.url = url;
+	win.name = name;
+	win.features = features;
+	this.windows[name] = win;
+
+	iframeWidth = width;
+	iframeHeight = height;
+
+	// Create inner content
+	html += '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
+	html += '<html>';
+	html += '<head>';
+	html += '<title>Wrapper iframe</title>';
+	html += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
+	html += '<link href="../jscripts/tiny_mce/themes/advanced/css/editor_ui.css" rel="stylesheet" type="text/css" />';
+	html += '</head>';
+	html += '<body onload="parent.mcWindows.onLoad(\'' + name + '\');">';
+
+	html += '<div id="' + id + '_container" class="mceWindow">';
+	html += '<div id="' + id + '_head" class="mceWindowHead" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">';
+	html += '  <div id="' + id + '_title" class="mceWindowTitle"';
+	html += '  onselectstart="return false;" unselectable="on" style="-moz-user-select: none !important;">No name window</div>';
+	html += '    <div class="mceWindowHeadTools">';
+	html += '      <a href="javascript:parent.mcWindows.windows[\'' + name + '\'].close();" onmousedown="return false;" class="mceWindowClose"><img border="0" src="../jscripts/tiny_mce/themes/advanced/images/window_close.gif" /></a>';
+//	html += '      <a href="javascript:mcWindows.windows[\'' + name + '\'].maximize();" onmousedown="return false;" class="mceWindowMaximize"></a>';
+//	html += '      <a href="javascript:mcWindows.windows[\'' + name + '\'].minimize();" onmousedown="return false;" class="mceWindowMinimize"></a>';
+	html += '    </div>';
+	html += '</div><div id="' + id + '_body" class="mceWindowBody" style="width: ' + width + 'px; height: ' + height + 'px;">';
+	html += '<iframe id="' + id + '_iframe" name="' + id + '_iframe" onfocus="parent.mcWindows.windows[\'' + name + '\'].focus();" frameborder="0" width="' + iframeWidth + '" height="' + iframeHeight + '" src="' + url + '" class="mceWindowBodyIframe"></iframe></div>';
+	html += '<div id="' + id + '_statusbar" class="mceWindowStatusbar" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">';
+	html += '<div id="' + id + '_resize" class="mceWindowResize"><img onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();" border="0" src="../jscripts/tiny_mce/themes/advanced/images/window_resize.gif" /></div>';
+	html += '</div>';
+	html += '</div>';
+
+	html += '</body>';
+	html += '</html>';
+
+	// Create iframe
+	this.createFloatingIFrame(id, features['left'], features['top'], features['width'], features['height'], html);
+};
+
+// Gets called when wrapper iframe is initialized
+MCWindows.prototype.onLoad = function(name) {
+	var win = mcWindows.windows[name];
+	var id = "mcWindow_" + name;
+	var wrapperIframe = window.frames[id + "_iframe"].frames[0];
+	var wrapperDoc = window.frames[id + "_iframe"].document;
+	var doc = window.frames[id + "_iframe"].document;
+	var winDiv = document.getElementById("mcWindow_" + name + "_div");
+	var realIframe = window.frames[id + "_iframe"].frames[0];
+
+	// Set window data
+	win.id = "mcWindow_" + name + "_iframe";
+	win.winElement = winDiv;
+	win.bodyElement = doc.getElementById(id + '_body');
+	win.iframeElement = doc.getElementById(id + '_iframe');
+	win.headElement = doc.getElementById(id + '_head');
+	win.titleElement = doc.getElementById(id + '_title');
+	win.resizeElement = doc.getElementById(id + '_resize');
+	win.containerElement = doc.getElementById(id + '_container');
+	win.left = win.features['left'];
+	win.top = win.features['top'];
+	win.frame = window.frames[id + '_iframe'].frames[0];
+	win.wrapperFrame = window.frames[id + '_iframe'];
+	win.wrapperIFrameElement = document.getElementById(id + "_iframe");
+
+	// Add event handlers
+	mcWindows.addEvent(win.headElement, "mousedown", mcWindows.eventDispatcher);
+	mcWindows.addEvent(win.resizeElement, "mousedown", mcWindows.eventDispatcher);
+
+	if (mcWindows.isMSIE) {
+		mcWindows.addEvent(realIframe.document, "mousemove", mcWindows.eventDispatcher);
+		mcWindows.addEvent(realIframe.document, "mouseup", mcWindows.eventDispatcher);
+	} else {
+		mcWindows.addEvent(realIframe, "mousemove", mcWindows.eventDispatcher);
+		mcWindows.addEvent(realIframe, "mouseup", mcWindows.eventDispatcher);
+		mcWindows.addEvent(realIframe, "focus", mcWindows.eventDispatcher);
+	}
+
+	for (var i=0; i<window.frames.length; i++) {
+		if (!window.frames[i]._hasMouseHandlers) {
+			if (mcWindows.isMSIE) {
+				mcWindows.addEvent(window.frames[i].document, "mousemove", mcWindows.eventDispatcher);
+				mcWindows.addEvent(window.frames[i].document, "mouseup", mcWindows.eventDispatcher);
+			} else {
+				mcWindows.addEvent(window.frames[i], "mousemove", mcWindows.eventDispatcher);
+				mcWindows.addEvent(window.frames[i], "mouseup", mcWindows.eventDispatcher);
+			}
+
+			window.frames[i]._hasMouseHandlers = true;
+		}
+	}
+
+	if (mcWindows.isMSIE) {
+		mcWindows.addEvent(win.frame.document, "mousemove", mcWindows.eventDispatcher);
+		mcWindows.addEvent(win.frame.document, "mouseup", mcWindows.eventDispatcher);
+	} else {
+		mcWindows.addEvent(win.frame, "mousemove", mcWindows.eventDispatcher);
+		mcWindows.addEvent(win.frame, "mouseup", mcWindows.eventDispatcher);
+		mcWindows.addEvent(win.frame, "focus", mcWindows.eventDispatcher);
+	}
+
+	this.selectedWindow = win;
+};
+
+MCWindows.prototype.createFloatingIFrame = function(id_prefix, left, top, width, height, html) {
+	var iframe = document.createElement("iframe");
+	var div = document.createElement("div");
+
+	width = parseInt(width);
+	height = parseInt(height)+1;
+
+	// Create wrapper div
+	div.setAttribute("id", id_prefix + "_div");
+	div.setAttribute("width", width);
+	div.setAttribute("height", (height));
+	div.style.position = "absolute";
+	div.style.left = left + "px";
+	div.style.top = top + "px";
+	div.style.width = width + "px";
+	div.style.height = (height) + "px";
+	div.style.backgroundColor = "white";
+	div.style.display = "none";
+
+	if (this.isGecko) {
+		iframeWidth = width + 2;
+		iframeHeight = height + 2;
+	} else {
+		iframeWidth = width;
+		iframeHeight = height + 1;
+	}
+
+	// Create iframe
+	iframe.setAttribute("id", id_prefix + "_iframe");
+	iframe.setAttribute("name", id_prefix + "_iframe");
+	iframe.setAttribute("border", "0");
+	iframe.setAttribute("frameBorder", "0");
+	iframe.setAttribute("marginWidth", "0");
+	iframe.setAttribute("marginHeight", "0");
+	iframe.setAttribute("leftMargin", "0");
+	iframe.setAttribute("topMargin", "0");
+	iframe.setAttribute("width", iframeWidth);
+	iframe.setAttribute("height", iframeHeight);
+//	iframe.setAttribute("src", "../jscripts/tiny_mce/blank.htm");
+	// iframe.setAttribute("allowtransparency", "false");
+	iframe.setAttribute("scrolling", "no");
+	iframe.style.width = iframeWidth + "px";
+	iframe.style.height = iframeHeight + "px";
+	iframe.style.backgroundColor = "white";
+	div.appendChild(iframe);
+
+	document.body.appendChild(div);
+
+	// Fixed MSIE 5.0 issue
+	div.innerHTML = div.innerHTML;
+
+	if (this.isSafari) {
+		// Give Safari some time to setup
+		window.setTimeout(function() {
+			doc = window.frames[id_prefix + '_iframe'].document;
+			doc.open();
+			doc.write(html);
+			doc.close();
+		}, 10);
+	} else {
+		doc = window.frames[id_prefix + '_iframe'].window.document
+		doc.open();
+		doc.write(html);
+		doc.close();
+	}
+
+	div.style.display = "block";
+
+	return div;
+};
+
+// Window instance
+function MCWindow() {
+};
+
+MCWindow.prototype.focus = function() {
+	this.winElement.style.zIndex = mcWindows.zindex++;
+	mcWindows.selectedWindow = this;
+};
+
+MCWindow.prototype.minimize = function() {
+};
+
+MCWindow.prototype.maximize = function() {
+	
+};
+
+MCWindow.prototype.startResize = function() {
+	mcWindows.action = "resize";
+};
+
+MCWindow.prototype.startMove = function(e) {
+	mcWindows.action = "move";
+};
+
+MCWindow.prototype.close = function() {
+	document.body.removeChild(this.winElement);
+	mcWindows.windows[this.name] = null;
+};
+
+MCWindow.prototype.onMouseMove = function(e) {
+	var scrollX = 0;//this.doc.body.scrollLeft;
+	var scrollY = 0;//this.doc.body.scrollTop;
+
+	// Calculate real X, Y
+	var dx = e.screenX - mcWindows.mouseDownScreenX;
+	var dy = e.screenY - mcWindows.mouseDownScreenY;
+
+	switch (mcWindows.action) {
+		case "resize":
+			width = mcWindows.mouseDownWidth + (e.screenX - mcWindows.mouseDownScreenX);
+			height = mcWindows.mouseDownHeight + (e.screenY - mcWindows.mouseDownScreenY);
+
+			width = width < 100 ? 100 : width;
+			height = height < 100 ? 100 : height;
+
+			this.wrapperIFrameElement.style.width = width+2;
+			this.wrapperIFrameElement.style.height = height+2;
+			this.wrapperIFrameElement.width = width+2;
+			this.wrapperIFrameElement.height = height+2;
+			this.winElement.style.width = width;
+			this.winElement.style.height = height;
+
+			height = height-12-19;
+
+			this.containerElement.style.width = width;
+
+			this.iframeElement.style.width = width;
+			this.iframeElement.style.height = height;
+			this.bodyElement.style.width = width;
+			this.bodyElement.style.height = height;
+			this.headElement.style.width = width;
+			//this.statusElement.style.width = width;
+
+			mcWindows.cancelEvent(e);
+			break;
+
+		case "move":
+			this.left = mcWindows.mouseDownLayerX + (e.screenX - mcWindows.mouseDownScreenX);
+			this.top = mcWindows.mouseDownLayerY + (e.screenY - mcWindows.mouseDownScreenY);
+			this.winElement.style.left = this.left + "px";
+			this.winElement.style.top = this.top + "px";
+
+			mcWindows.cancelEvent(e);
+			break;
+	}
+};
+
+MCWindow.prototype.onMouseUp = function(e) {
+	mcWindows.action = "none";
+};
+
+MCWindow.prototype.onFocus = function(e) {
+	// Gecko only handler
+	var winRef = e.currentTarget;
+
+	for (var n in mcWindows.windows) {
+		var win = mcWindows.windows[n];
+		if (typeof(win) == 'function')
+			continue;
+
+		if (winRef.name == win.id) {
+			win.focus();
+			return;
+		}
+	}
+};
+
+MCWindow.prototype.onMouseDown = function(e) {
+	var elm = mcWindows.isMSIE ? this.wrapperFrame.event.srcElement : e.target;
+
+	var scrollX = 0;//this.doc.body.scrollLeft;
+	var scrollY = 0;//this.doc.body.scrollTop;
+
+	mcWindows.mouseDownScreenX = e.screenX;
+	mcWindows.mouseDownScreenY = e.screenY;
+	mcWindows.mouseDownLayerX = this.left;
+	mcWindows.mouseDownLayerY = this.top;
+	mcWindows.mouseDownWidth = parseInt(this.winElement.style.width);
+	mcWindows.mouseDownHeight = parseInt(this.winElement.style.height);
+
+	if (elm == this.resizeElement.firstChild)
+		this.startResize(e);
+	else
+		this.startMove(e);
+
+	mcWindows.cancelEvent(e);
+};
+
+// Global instance
+var mcWindows = new MCWindows();
diff --git a/tinyMCE/plugins/inlinepopups/readme.txt b/tinyMCE/plugins/inlinepopups/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/tinyMCE/plugins/insertdatetime/editor_plugin.js b/tinyMCE/plugins/insertdatetime/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ad58e7b061c2be29805a45d904488ef7b32f6b8
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('insertdatetime');var TinyMCE_InsertDateTimePlugin={getInfo:function(){return{longname:'Insert date/time',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"insertdate":return tinyMCE.getButtonHTML(cn,'lang_insertdate_desc','{$pluginurl}/images/insertdate.gif','mceInsertDate');case"inserttime":return tinyMCE.getButtonHTML(cn,'lang_inserttime_desc','{$pluginurl}/images/inserttime.gif','mceInsertTime')}return""},execCommand:function(editor_id,element,command,user_interface,value){function addZeros(value,len){value=""+value;if(value.length<len){for(var i=0;i<(len-value.length);i++)value="0"+value}return value}function getDateTime(d,fmt){fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+tinyMCE.getLang("lang_inserttime_months_long")[d.getMonth()]);fmt=fmt.replace("%b",""+tinyMCE.getLang("lang_inserttime_months_short")[d.getMonth()]);fmt=fmt.replace("%A",""+tinyMCE.getLang("lang_inserttime_day_long")[d.getDay()]);fmt=fmt.replace("%a",""+tinyMCE.getLang("lang_inserttime_day_short")[d.getDay()]);fmt=fmt.replace("%%","%");return fmt}switch(command){case"mceInsertDate":tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,getDateTime(new Date(),tinyMCE.getParam("plugin_insertdate_dateFormat",tinyMCE.getLang('lang_insertdate_def_fmt'))));return true;case"mceInsertTime":tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,getDateTime(new Date(),tinyMCE.getParam("plugin_insertdate_timeFormat",tinyMCE.getLang('lang_inserttime_def_fmt'))));return true}return false}};tinyMCE.addPlugin("insertdatetime",TinyMCE_InsertDateTimePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/insertdatetime/editor_plugin_src.js b/tinyMCE/plugins/insertdatetime/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..7772ccef2084f595c71a5635e7b8a70e53aae6ae
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/editor_plugin_src.js
@@ -0,0 +1,90 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('insertdatetime');
+
+var TinyMCE_InsertDateTimePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Insert date/time',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	/**
+	 * Returns the HTML contents of the insertdate, inserttime controls.
+	 */
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "insertdate":
+				return tinyMCE.getButtonHTML(cn, 'lang_insertdate_desc', '{$pluginurl}/images/insertdate.gif', 'mceInsertDate');
+
+			case "inserttime":
+				return tinyMCE.getButtonHTML(cn, 'lang_inserttime_desc', '{$pluginurl}/images/inserttime.gif', 'mceInsertTime');
+		}
+
+		return "";
+	},
+
+	/**
+	 * Executes the mceInsertDate command.
+	 */
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		/* Adds zeros infront of value */
+		function addZeros(value, len) {
+			value = "" + value;
+
+			if (value.length < len) {
+				for (var i=0; i<(len-value.length); i++)
+					value = "0" + value;
+			}
+
+			return value;
+		}
+
+		function getDateTime(d, fmt) {
+			fmt = fmt.replace("%D", "%m/%d/%y");
+			fmt = fmt.replace("%r", "%I:%M:%S %p");
+			fmt = fmt.replace("%Y", "" + d.getFullYear());
+			fmt = fmt.replace("%y", "" + d.getYear());
+			fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
+			fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
+			fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
+			fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
+			fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
+			fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
+			fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
+			fmt = fmt.replace("%B", "" + tinyMCE.getLang("lang_inserttime_months_long")[d.getMonth()]);
+			fmt = fmt.replace("%b", "" + tinyMCE.getLang("lang_inserttime_months_short")[d.getMonth()]);
+			fmt = fmt.replace("%A", "" + tinyMCE.getLang("lang_inserttime_day_long")[d.getDay()]);
+			fmt = fmt.replace("%a", "" + tinyMCE.getLang("lang_inserttime_day_short")[d.getDay()]);
+			fmt = fmt.replace("%%", "%");
+
+			return fmt;
+		}
+
+		// Handle commands
+		switch (command) {
+			case "mceInsertDate":
+				tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_dateFormat", tinyMCE.getLang('lang_insertdate_def_fmt'))));
+				return true;
+
+			case "mceInsertTime":
+				tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_timeFormat", tinyMCE.getLang('lang_inserttime_def_fmt'))));
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	}
+};
+
+tinyMCE.addPlugin("insertdatetime", TinyMCE_InsertDateTimePlugin);
diff --git a/tinyMCE/plugins/insertdatetime/images/insertdate.gif b/tinyMCE/plugins/insertdatetime/images/insertdate.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8ad424d3d19b07b05a9a5e6828325dba602bf0ac
Binary files /dev/null and b/tinyMCE/plugins/insertdatetime/images/insertdate.gif differ
diff --git a/tinyMCE/plugins/insertdatetime/images/inserttime.gif b/tinyMCE/plugins/insertdatetime/images/inserttime.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6dad3b36d0a89c68b8410a2c11e00b077dc5ad8a
Binary files /dev/null and b/tinyMCE/plugins/insertdatetime/images/inserttime.gif differ
diff --git a/tinyMCE/plugins/insertdatetime/langs/ca.js b/tinyMCE/plugins/insertdatetime/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3ec02bf8a946d6a132081ad0829aa0b5d0fc972
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ca.js
@@ -0,0 +1,12 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Insert date',
+inserttime_desc : 'Insert time',
+inserttime_months_long : new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"),
+inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
+inserttime_day_long : new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"),
+inserttime_day_short : new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/cs.js b/tinyMCE/plugins/insertdatetime/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd099777ac37eac77008fb5b03354efd3faa4449
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/cs.js
@@ -0,0 +1,18 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.6 2006/01/11 14:25:49 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d.%m.%Y',
+inserttime_def_fmt : '%H:%M',
+insertdate_desc : 'Vložit datum',
+inserttime_desc : 'Vložit čas',
+inserttime_months_long : new Array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec'),
+inserttime_months_short : new Array('Led','Úno','Bře','Dub','Kvě','Črv','Čvc','Srp','Zář','Říj','Lis','Pro'),
+inserttime_day_long : new Array('Neděle','Pondělí','Úterý','Středa','Čtvrtek','Pátek','Sobota','Neděle'),
+inserttime_day_short : new Array('Ne','Po','Út','St','Čt','Pá','So','Ne')
+});
+
diff --git a/tinyMCE/plugins/insertdatetime/langs/cy.js b/tinyMCE/plugins/insertdatetime/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..81b8dd5a276bfcddbda9f4e9323f401e4671a566
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/cy.js
@@ -0,0 +1,12 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Mewnosod dyddiad',
+inserttime_desc : 'Mewnosod amser',
+inserttime_months_long : new Array("Ionawr", "Chwefror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorffennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"),
+inserttime_months_short : new Array("Ion", "Chwe", "Maw", "Ebr", "Mai", "Meh", "Gor", "Aws", "Med", "Hyd", "Tach", "Rhag"),
+inserttime_day_long : new Array("Dydd Sul", "Dydd Llun", "Dydd Mawrth", "Dydd Mercher", "Dydd Iau", "Dydd Gwener", "Dydd Sadwrn", "Dydd Sul"),
+inserttime_day_short : new Array("Sul", "Llun", "Maw", "Mer", "Iau", "Gwe", "Sad", "Sul")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/da.js b/tinyMCE/plugins/insertdatetime/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..acb29c3c37bcf77f617ff2dc64ad8d8adcc472f2
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/da.js
@@ -0,0 +1,12 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.:
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d-%m-%&Aring;',
+inserttime_def_fmt : '%T:%M:%S',
+insertdate_desc : 'Inds&aelig;t dato',
+inserttime_desc : 'Inds&aelig;t tid',
+inserttime_months_long : new Array("Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"),
+inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"),
+inserttime_day_long : new Array("S&oslash;ndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "L&oslash;rdag", "S&oslash;ndag"),
+inserttime_day_short : new Array("S&oslash;n", "Man", "Tir", "Ons", "Tor", "Fre", "L&oslash;r", "S&oslash;n")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/de.js b/tinyMCE/plugins/insertdatetime/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..80ce633d20d1e421590d99d747d88bb1b08b8eaf
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/de.js
@@ -0,0 +1,12 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d.%m.%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Datum einf&uuml;gen',
+inserttime_desc : 'Zeit einf&uuml;gen',
+inserttime_months_long : new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"),
+inserttime_months_short : new Array("Jan", "Feb", "M&auml;r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"),
+inserttime_day_long : new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"),
+inserttime_day_short : new Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/el.js b/tinyMCE/plugins/insertdatetime/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a0c0a1936450b31a52b7baaef16b25ab1a01f9e
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/el.js
@@ -0,0 +1,13 @@
+// Greek lang variables by Jacaranda Bill
+// Revised by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'ÅéóáãùãÞ çìåñïìçíßáò',
+inserttime_desc : 'ÅéóáãùãÞ þñáò',
+inserttime_months_long : new Array("ÉáíïõÜñéïò", "ÖåâñïõÜñéïò", "ÌÜñôéïò", "Áðñßëéïò", "ÌÜéïò", "Éïýíéïò", "Éïýëéïò", "Áýãïõóôïò", "ÓåðôÝìâñéïò", "Ïêôþâñéïò", "ÍïÝìâñéïò", "ÄåêÝìâñéïò"),
+inserttime_months_short : new Array("Éáí", "Öåâ", "Ìáñ", "Áðñ", "Ìáé", "Éíò", "Éëò", "Áõã", "Óåð", "Ïêô", "Íïå", "Äåê"),
+inserttime_day_long : new Array("ÊõñéáêÞ", "ÄåõôÝñá", "Ôñßôç", "ÔåôÜñôç", "ÐÝìðôç", "ÐáñáóêåõÞ", "ÓÜââáôï", "ÊõñéáêÞ"),
+inserttime_day_short : new Array("Êõñ", "Äåõ", "Ôñé", "Ôåô", "Ðåì", "Ðáñ", "Óáâ", "Êõñ")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/en.js b/tinyMCE/plugins/insertdatetime/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3ec02bf8a946d6a132081ad0829aa0b5d0fc972
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/en.js
@@ -0,0 +1,12 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Insert date',
+inserttime_desc : 'Insert time',
+inserttime_months_long : new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"),
+inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
+inserttime_day_long : new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"),
+inserttime_day_short : new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/es.js b/tinyMCE/plugins/insertdatetime/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..89a2bd70124c5d384ab86d4a943b4cfeba2bbb1f
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/es.js
@@ -0,0 +1,21 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d-%m-%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Insertar fecha',
+inserttime_desc : 'Insertar hora',
+inserttime_months_long : new Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"),
+inserttime_months_short : new Array("Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"),
+inserttime_day_long : new Array("Domingo", "Lunes", "Martes", "Mi&eacute;rcoles", "Jueves", "Viernes", "S&aacute;bado", "Domingo"),
+inserttime_day_short : new Array("Dom", "Lun", "Mar", "Mi&eacute;", "Jue", "Vie", "S&aacute;b", "Dom")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/fa.js b/tinyMCE/plugins/insertdatetime/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d89b73310797813f71e0657e5e2da83629a36fd
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/fa.js
@@ -0,0 +1,13 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+dir : 'rtl',
+insertdate_desc : '?????? ?????',
+inserttime_desc : '?????? ????'
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/fi.js b/tinyMCE/plugins/insertdatetime/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..3758c96fd54bd616f713634833417dab3ab704de
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/fi.js
@@ -0,0 +1,12 @@
+// FI lang variables by Tuomo Aura, Ateco.fi
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d.%m.%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Lis&auml;&auml; p&auml;iv&auml;m&auml;&auml;r&auml;',
+inserttime_desc : 'Lis&auml;&auml; kellonaika',
+inserttime_months_long : new Array("Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"),
+inserttime_months_short : new Array("Tammi", "Helmi", "Maalis", "Huhti", "Touko", "Kes&auml;", "Hein&auml;", "Elo", "Syys", "Loka", "Marras", "Joulu"),
+inserttime_day_long : new Array("Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"),
+inserttime_day_short : new Array("Su", "Ma", "Ti", "Ke", "To", "Pe", "La")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/fr.js b/tinyMCE/plugins/insertdatetime/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..bff2ffde201bb5afab88793745ca925029f93fa2
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/fr.js
@@ -0,0 +1,13 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d/%m/%Y',
+inserttime_def_fmt : '%Hh%M',
+insertdate_desc : 'Ins&eacute;rer la date',
+inserttime_desc : 'Ins&eacute;rer l\'heure',
+inserttime_months_long : new Array("Janvier", "F&eacute;vrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Ao&ucirc;t", "Septembre", "Octobre", "Novembre", "D&eacute;cembre"),
+inserttime_months_short : new Array("Jan", "F&eacute;v", "Mar", "Avr", "Mai", "Jun", "Jul", "Ao&ucirc;", "Sep", "Oct", "Nov", "D&eacute;c"),
+inserttime_day_long : new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"),
+inserttime_day_short : new Array("Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/fr_ca.js b/tinyMCE/plugins/insertdatetime/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..72a076c343e4ca203a86cb5d538758c75d6f1dac
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/fr_ca.js
@@ -0,0 +1,10 @@
+// Canadian French lang variables by Virtuelcom
+
+tinyMCE.addToLang('',{
+insertdate_desc : 'Insérer la date',
+inserttime_desc : 'Insérer l\'heure',
+inserttime_months_long : new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"),
+inserttime_months_short : new Array("Jan", "Fev", "Mar", "Avr", "Mai", "Juin", "Juil", "Aout", "Sep", "Oct", "Nov", "Dec"),
+inserttime_day_long : new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"),
+inserttime_day_short : new Array("Lun", "Mar", "Mer", "Jeu", "Thu", "Ven", "Sam", "Dim")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/he.js b/tinyMCE/plugins/insertdatetime/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..95663e604f8808df6a7aab6290fe0c115fb94e6f
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/he.js
@@ -0,0 +1,12 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'äëðñ úàøéê',
+inserttime_desc : 'äëðñ ùòä',
+inserttime_months_long : new Array("éðåàø", "ôáøåàø", "îøõ", "àôøéì", "îàé", "éåðé", "éåìé", "àåëåñè", "ñôèîáø", "àå÷èåáø", "ðåáîáø", "ãöîáø"),
+inserttime_months_short : new Array("éðå", "ôáø", "îøõ", "àôø", "îàé", "éåð", "éåì", "àåâ", "ñôè", "àå÷", "ðåá", "ãöî"),
+inserttime_day_long : new Array("éåí øàùåï", "éåí ùðé", "éåí ùìéùé", "éåí øáéòé", "éåí çîéùé", "éåí ùéùé", "éåí ùáú", "éåí øàùåï"),
+inserttime_day_short : new Array("à'", "á'", "â'", "ã'", "ä'", "å'", "ù'", "à'")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/hu.js b/tinyMCE/plugins/insertdatetime/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..52c909fd9564ecb1b862490cc87e6b2b7d1464bb
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/hu.js
@@ -0,0 +1,12 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Dátum beszúrása',
+inserttime_desc : 'Idõ beszúrása',
+inserttime_months_long : new Array("Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"),
+inserttime_months_short : new Array("Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sze", "Okt", "Nov", "Dec"),
+inserttime_day_long : new Array("Vasárnap", "Hétfõ", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat", "Vasárnap"),
+inserttime_day_short : new Array("Vas", "Hé", "Ke", "Sze", "Csü", "Pén", "Szo", "Vas")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/is.js b/tinyMCE/plugins/insertdatetime/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..c5439763286bbe53cff9b8d97a4a9601e969ba34
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/is.js
@@ -0,0 +1,12 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d. %m. %Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Setja inn dagsetningu',
+inserttime_desc : 'Setja inn t&iacute;ma',
+inserttime_months_long : new Array("Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"),
+inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"),
+inserttime_day_long : new Array("Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur", "Sunnudagur"),
+inserttime_day_short : new Array("Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", "Sun")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/it.js b/tinyMCE/plugins/insertdatetime/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..ace66dfa438666a81e40ae396951ddfa5d7aae09
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/it.js
@@ -0,0 +1,18 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d/%m/%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Inserisci data',
+inserttime_desc : 'Inserisci ora',
+inserttime_months_long : new Array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"),
+inserttime_months_short : new Array("Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"),
+inserttime_day_long : new Array("Domenica", "Luned&igrave;", "Marted&igrave;", "Mercoled&igrave;", "Gioved&igrave;", "Venerd&igrave;", "Sabato", "Domenica"),
+inserttime_day_short : new Array("Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/ja.js b/tinyMCE/plugins/insertdatetime/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b29b47c951a3126ab14787b1fc3dc3a153fa885
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ja.js
@@ -0,0 +1,12 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y/%m/%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '日付を挿入',
+inserttime_desc : '時刻を挿入',
+inserttime_months_long : new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"),
+inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
+inserttime_day_long : new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"),
+inserttime_day_short : new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/ja_euc-jp.js b/tinyMCE/plugins/insertdatetime/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..073591e8c8f890fbce3bf7d34d3f37a0ed19ed9d
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ja_euc-jp.js
@@ -0,0 +1,12 @@
+// Japanese euc lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'ÆüÉÕ¤òÁÞÆþ',
+inserttime_desc : '»þ´Ö¤òÁÞÆþ',
+inserttime_months_long : new Array("1·î", "2·î, "3·î", "4·î", "5·î, "6·î", "7·î", "8·î", "9·î", "10·î", "11·î", "12·î"),
+inserttime_months_short : new Array("1·î", "2·î, "3·î", "4·î", "5·î, "6·î", "7·î", "8·î", "9·î", "10·î", "11·î", "12·î"),
+inserttime_day_long : new Array("ÆüÍËÆü", "·îÍËÆü, "²ÐÍËÆü", "¿åÍËÆü", "ÌÚÍËÆü", "¶âÍËÆü", "ÅÚÍËÆü", "ÆüÍËÆü"),
+inserttime_day_short : new Array("Æü", "·î", "²Ð", "¿å", "ÌÚ", "¶â", "ÅÚ", "Æü")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/ja_shift_jis.js b/tinyMCE/plugins/insertdatetime/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..02d429c5ee0ced46b03e88f2e91b50417205299f
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ja_shift_jis.js
@@ -0,0 +1,12 @@
+// Japanese shift_jis lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '“ú•t‚ð‘}“ü',
+inserttime_desc : 'ŽžŠÔ‚ð‘}“ü',
+inserttime_months_long : new Array("1ŒŽ", "2ŒŽ, "3ŒŽ", "4ŒŽ", "5ŒŽ, "6ŒŽ", "7ŒŽ", "8ŒŽ", "9ŒŽ", "10ŒŽ", "11ŒŽ", "12ŒŽ"),
+inserttime_months_short : new Array("1ŒŽ", "2ŒŽ, "3ŒŽ", "4ŒŽ", "5ŒŽ, "6ŒŽ", "7ŒŽ", "8ŒŽ", "9ŒŽ", "10ŒŽ", "11ŒŽ", "12ŒŽ"),
+inserttime_day_long : new Array("“ú—j“ú", "ŒŽ—j“ú, "‰Î—j“ú", "…—j“ú", "–Ø—j“ú", "‹à—j“ú", "“y—j“ú", "“ú—j“ú"),
+inserttime_day_short : new Array("“ú", "ŒŽ", "‰Î", "…", "–Ø", "‹à", "“y", "“ú")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/ja_utf-8.js b/tinyMCE/plugins/insertdatetime/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..04a188ec7842491d022cc03d2759607cf32af089
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ja_utf-8.js
@@ -0,0 +1,12 @@
+// Japanese utf-8 lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '日付を挿入',
+inserttime_desc : '時間を挿入',
+inserttime_months_long : new Array("1月", "2月, "3月", "4月", "5月, "6月", "7月", "8月", "9月", "10月", "11月", "12月"),
+inserttime_months_short : new Array("1月", "2月, "3月", "4月", "5月, "6月", "7月", "8月", "9月", "10月", "11月", "12月"),
+inserttime_day_long : new Array("日曜日", "月曜日, "火曜日", "水曜日", "木曜日", "金曜日", "土曜日", "日曜日"),
+inserttime_day_short : new Array("日", "月", "火", "水", "木", "金", "土", "日")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/ko.js b/tinyMCE/plugins/insertdatetime/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..007f08cc6a2a7681d2f628af3356432342c81ddf
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ko.js
@@ -0,0 +1,12 @@
+// KO lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '³¯Â¥ ³&Ouml;±â',
+inserttime_desc : '½Ã°£ ³&Ouml;±â',
+inserttime_months_long : new Array("1¿ù", "2¿ù", "3¿ù", "4¿ù", "5¿ù", "6¿ù", "7¿ù", "8¿ù", "9¿ù", "10¿ù", "11¿ù", "12¿ù"),
+inserttime_months_short : new Array("1¿ù", "2¿ù", "3¿ù", "4¿ù", "5¿ù", "6¿ù", "7¿ù", "8¿ù", "9¿ù", "10¿ù", "11¿ù", "12¿ù"),
+inserttime_day_long : new Array("ÀÏ¿&auml;ÀÏ", "¿ù¿&auml;ÀÏ", "È­¿&auml;ÀÏ", "¼&ouml;¿&auml;ÀÏ", "¸ñ¿&auml;ÀÏ", "±Ý¿&auml;ÀÏ", "&Aring;&auml;¿&auml;ÀÏ", "ÀÏ¿&auml;ÀÏ"),
+inserttime_day_short : new Array("ÀÏ", "¿ù", "È­", "¼&ouml;", "¸ñ", "±Ý", "&Aring;&auml;", "ÀÏ")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/nb.js b/tinyMCE/plugins/insertdatetime/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..b52c4f9a4c7ae6f54cf978807542fdd5181bf043
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/nb.js
@@ -0,0 +1,12 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Lim inn dato',
+inserttime_desc : 'Lim inn tid',
+inserttime_months_long  : new Array("Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"),
+inserttime_months_short  : new Array("Jan","Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"),
+inserttime_day_long  : new Array("S&oslash;ndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "L&oslash;rdag", "S&oslash;ndag"),
+inserttime_day_short  : new Array("S&oslash;n", "Man", "Tir", "Ons", "Tor", "Fre", "L&oslash;r", "S&oslash;n")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/nl.js b/tinyMCE/plugins/insertdatetime/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..375ae4b1fd7ebf877530f68a7941dad40b2818a5
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/nl.js
@@ -0,0 +1,12 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d-%m-%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Datum invoegen',
+inserttime_desc : 'Tijd invoegen',
+inserttime_months_long : new Array("januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"),
+inserttime_months_short : new Array("jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "oct", "nov", "dec"),
+inserttime_day_long : new Array("zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag", "zondag"),
+inserttime_day_short : new Array("zo", "ma", "di", "wo", "do", "vr", "za", "zo")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/nn.js b/tinyMCE/plugins/insertdatetime/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..244e335dac044ee9dbd0b797ba8b15c9045c9c49
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/nn.js
@@ -0,0 +1,12 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Lim inn dato',
+inserttime_desc : 'Lim inn tid',
+inserttime_months_long  : new Array("Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"),
+inserttime_months_short  : new Array("Jan","Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"),
+inserttime_day_long  : new Array("Sundag", "Mandag", "Tysdag", "Onsdag", "Torsdag", "Fredag", "Laurdag", "Sundag"),
+inserttime_day_short  : new Array("Sun", "Man", "Tys", "Ons", "Tor", "Fre", "Laur", "Sun")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/pl.js b/tinyMCE/plugins/insertdatetime/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..1628381256eaa89564899b857bfcdaeb52ceeb72
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/pl.js
@@ -0,0 +1,15 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+// fixed by lemiel 14.11.2005
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Wstaw aktualnÄ… datÄ™',
+inserttime_desc : 'Wstaw aktualny czas',
+inserttime_months_long : new Array("Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "PaĽdziernik", "Listopad", "Grudzień"),
+inserttime_months_short : new Array("Sty", "Lut", "Mar", "Kwi", "Maj", "Czer", "Lip", "Sier", "Wrze", "PaĽ", "List", "Grudz"),
+inserttime_day_long : new Array("Niedziela", "Poniedziałek", "Wtorek", "środa", "Czwartek", "Piątek", "Sobota", "Niedziela"),
+inserttime_day_short : new Array("Nie", "Pon", "Wto", "śro", "Czw", "Pią", "Sob", "Nie")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/pt_br.js b/tinyMCE/plugins/insertdatetime/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..baa220c46d8c42e883067581fbf3d9ba6d66f470
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/pt_br.js
@@ -0,0 +1,20 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d/%m/%y',
+inserttime_def_fmt : '%H:%M:%S hs',
+insertdate_desc : 'Inserir data',
+inserttime_desc : 'Inserir hora',
+inserttime_months_long : new Array("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"),
+inserttime_months_short : new Array("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"),
+inserttime_day_long : new Array("Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado", "Domingo"),
+inserttime_day_short : new Array("Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab", "Dom")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/ro.js b/tinyMCE/plugins/insertdatetime/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..c9c48b69f44553a8c90605cb6cdba3231e369459
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ro.js
@@ -0,0 +1,12 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d-%m-%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Insereaz&#259; data',
+inserttime_desc : 'Insereaz&#259; ora',
+inserttime_months_long : new Array("Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"),
+inserttime_months_short : new Array("Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"),
+inserttime_day_long : new Array("Duminic&#259;", "Luni", "Mar&#355;i", "Miercuri", "Joi", "Vineri", "S&#226;mb&#259;t&#259;", "Duminic&#259;"),
+inserttime_day_short : new Array("Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "S&#226;m", "Dum")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/ru.js b/tinyMCE/plugins/insertdatetime/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..b2bffceb23cfbaa131bb45ceeeb6c675bb8a40cd
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ru.js
@@ -0,0 +1,12 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d %m %Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Вставить дату',
+inserttime_desc : 'Вставить время',
+inserttime_months_long : new Array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"),
+inserttime_months_short : new Array("янв", "фев", "март", "апр", "май", "июнь", "июль", "авг", "сент", "окт", "нбр", "дек"),
+inserttime_day_long : new Array("воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота", "воскресенье"),
+inserttime_day_short : new Array("вск", "пн", "вт", "ср", "чтв", "птн", "сб", "вск")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/ru_CP1251.js b/tinyMCE/plugins/insertdatetime/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..7459e2f8a0394466227d9e6a635c92a0b6347299
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ru_CP1251.js
@@ -0,0 +1,12 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d %m %Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Âñòàâèòü äàòó',
+inserttime_desc : 'Âñòàâèòü âðåìÿ',
+inserttime_months_long : new Array("ÿíâàðÿ", "ôåâðàëÿ", "ìàðòà", "àïðåëÿ", "ìàÿ", "èþíÿ", "èþëÿ", "àâãóñòà", "ñåíòÿáðÿ", "îêòÿáðÿ", "íîÿáðÿ", "äåêàáðÿ"),
+inserttime_months_short : new Array("ÿíâ", "ôåâ", "ìàðò", "àïð", "ìàé", "èþíü", "èþëü", "àâã", "ñåíò", "îêò", "íáð", "äåê"),
+inserttime_day_long : new Array("âîñêðåñåíüå", "ïîíåäåëüíèê", "âòîðíèê", "ñðåäà", "÷åòâåðã", "ïÿòíèöà", "ñóááîòà", "âîñêðåñåíüå"),
+inserttime_day_short : new Array("âñê", "ïí", "âò", "ñð", "÷òâ", "ïòí", "ñá", "âñê")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/ru_KOI8-R.js b/tinyMCE/plugins/insertdatetime/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..44ee7d62cfd408b3c0a825ecb1c068779cd04420
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/ru_KOI8-R.js
@@ -0,0 +1,12 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d %m %Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '÷ÓÔÁ×ÉÔØ ÄÁÔÕ',
+inserttime_desc : '÷ÓÔÁ×ÉÔØ ×ÒÅÍÑ',
+inserttime_months_long : new Array("ÑÎ×ÁÒÑ", "ÆÅ×ÒÁÌÑ", "ÍÁÒÔÁ", "ÁÐÒÅÌÑ", "ÍÁÑ", "ÉÀÎÑ", "ÉÀÌÑ", "Á×ÇÕÓÔÁ", "ÓÅÎÔÑÂÒÑ", "ÏËÔÑÂÒÑ", "ÎÏÑÂÒÑ", "ÄÅËÁÂÒÑ"),
+inserttime_months_short : new Array("ÑÎ×", "ÆÅ×", "ÍÁÒÔ", "ÁÐÒ", "ÍÁÊ", "ÉÀÎØ", "ÉÀÌØ", "Á×Ç", "ÓÅÎÔ", "ÏËÔ", "ÎÂÒ", "ÄÅË"),
+inserttime_day_long : new Array("×ÏÓËÒÅÓÅÎØÅ", "ÐÏÎÅÄÅÌØÎÉË", "×ÔÏÒÎÉË", "ÓÒÅÄÁ", "ÞÅÔ×ÅÒÇ", "ÐÑÔÎÉÃÁ", "ÓÕÂÂÏÔÁ", "×ÏÓËÒÅÓÅÎØÅ"),
+inserttime_day_short : new Array("×ÓË", "ÐÎ", "×Ô", "ÓÒ", "ÞÔ×", "ÐÔÎ", "ÓÂ", "×ÓË")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/si.js b/tinyMCE/plugins/insertdatetime/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..6dd8b9a1d20f67b29ad05d0f072c4cf58ccbef49
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/si.js
@@ -0,0 +1,12 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d.%m.%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Vstavi datum',
+inserttime_desc : 'Vstavi uro',
+inserttime_months_long : new Array("Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "August", "September", "Oktober", "November", "December"),
+inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"),
+inserttime_day_long : new Array("Nedelja", "Ponedeljek", "Torek", "Sreda", "&#268;etrtek", "Petek", "Sobota", "Nedelja"),
+inserttime_day_short : new Array("Ned", "Pon", "Tor", "Sre", "&#268;et", "Pet", "Sob", "Ned")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/sk.js b/tinyMCE/plugins/insertdatetime/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..6060b550265e2720ed052da1687549156a1f7aa4
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/sk.js
@@ -0,0 +1,20 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Vložiť dátum',
+inserttime_desc : 'Vložiť čas',
+inserttime_months_long : new Array('Január','Február','Marec','Apríl','Máj','Jún','Júl','August','September','Október','November','December'),
+inserttime_months_short : new Array('Jan','Feb','Mar','Apr','Máj','Jún','Júl','Aug','Sep','Okt','Nov','Dec'),
+inserttime_day_long : new Array('Nedeľa','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota','Nedeľa'),
+inserttime_day_short : new Array('Ne','Po','Ut','St','Å t','Pi','So','Ne')
+});
+
diff --git a/tinyMCE/plugins/insertdatetime/langs/sq.js b/tinyMCE/plugins/insertdatetime/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..d86a98ce50585c5ee7105a0228e5c3a9f3cae581
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/sq.js
@@ -0,0 +1,12 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d-%m-%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Nderfut daten',
+inserttime_desc : 'Nderfut oren',
+inserttime_months_long : new Array("Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nentor", "Dhjetor"),
+inserttime_months_short : new Array("Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Kor", "Gus", "Sht", "Tet", "Nen", "Dhj"),
+inserttime_day_long : new Array("E diel", "E hene", "E marte", "E merkure", "E enjte", "E Premter", "E shtune", "E diel"),
+inserttime_day_short : new Array("Die", "Hen", "Mar", "Mer", "Enj", "Pre", "Sht", "Die")
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/insertdatetime/langs/sr.js b/tinyMCE/plugins/insertdatetime/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc7d8e5882011eb98564cc5afbf7a9baa60344d5
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/sr.js
@@ -0,0 +1,12 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d.%m.%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Ubacivanje datuma',
+inserttime_desc : 'Ubacivanje vremena',
+inserttime_months_long : new Array("Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"),
+inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"),
+inserttime_day_long : new Array("Nedelja", "Ponedeljak", "Utorak", "Sreda", "ÄŒetvrtak", "Petak", "Subota", "Nedelja"),
+inserttime_day_short : new Array("Ned", "Pon", "Uto", "Sre", "ÄŒet", "Pet", "Sub", "Ned")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/sv.js b/tinyMCE/plugins/insertdatetime/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..39f0e8fa7c574c3ef3353aeaba7da9740f5ea180
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/sv.js
@@ -0,0 +1,12 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Klistra in datum',
+inserttime_desc : 'Klistra in tid',
+inserttime_months_long  : new Array("Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"),
+inserttime_months_short  : new Array("Jan","Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"),
+inserttime_day_long  : new Array("S&ouml;ndag", "M&aring;ndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "L&ouml;rdag", "S&ouml;ndag"),
+inserttime_day_short  : new Array("S&ouml;n", "M&aring;n", "Tis", "Ons", "Tor", "Fre", "L&ouml;r", "S&ouml;n")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/sv_utf8.js b/tinyMCE/plugins/insertdatetime/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..39f0e8fa7c574c3ef3353aeaba7da9740f5ea180
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/sv_utf8.js
@@ -0,0 +1,12 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Klistra in datum',
+inserttime_desc : 'Klistra in tid',
+inserttime_months_long  : new Array("Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"),
+inserttime_months_short  : new Array("Jan","Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"),
+inserttime_day_long  : new Array("S&ouml;ndag", "M&aring;ndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "L&ouml;rdag", "S&ouml;ndag"),
+inserttime_day_short  : new Array("S&ouml;n", "M&aring;n", "Tis", "Ons", "Tor", "Fre", "L&ouml;r", "S&ouml;n")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/tr.js b/tinyMCE/plugins/insertdatetime/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..11784ba4824eedabd6b08775ae5611270e6e9c89
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/tr.js
@@ -0,0 +1,12 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d-%m-%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Tarihi ekle',
+inserttime_desc : 'Zamaný ekle',
+inserttime_months_long : new Array("Ocak", "Þubat", "Mart", "Nisan", "Mayýs", "Haziran", "Temmuz", "Aðustos", "Eylül", "Ekim", "Kasým", "Aralýk"),
+inserttime_months_short : new Array("Ock", "Þub", "Mar", "Nis", "May", "Haz", "Tem", "Aðu", "Eyl", "Eki", "Kas", "Ara"),
+inserttime_day_long : new Array("Pazar", "Pazartesi", "Salý", "Çarþamba", "Perþembe", "Cuma", "Cumartesi", "Pazar"),
+inserttime_day_short : new Array("Paz", "Pzt", "Sal", "Çar", "Per", "Cum", "Cmt", "Paz")
+})
\ No newline at end of file
diff --git a/tinyMCE/plugins/insertdatetime/langs/uk.js b/tinyMCE/plugins/insertdatetime/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..203db993a4389fbc56f55657a4bd0419d7e6c574
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/uk.js
@@ -0,0 +1,12 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d %m %Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Вставити дату',
+inserttime_desc : 'Вставити час',
+inserttime_months_long : new Array("січня", "лютого", "березня", "квітня", "травня", "червня", "липня", "серпня", "вересня", "жовтня", "листопада", "грудня"),
+inserttime_months_short : new Array("січ", "лют", "бер", "квіт", "трав", "черв", "лип", "серп", "вер", "жовт", "лист", "груд"),
+inserttime_day_long : new Array("неділя", "понеділок", "вівторок", "середа", "четвер", "п'ятниця", "субота", "неділя"),
+inserttime_day_short : new Array("нд", "пн", "вт", "ср", "чт", "пт", "сб", "нд")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/uk_CP1251.js b/tinyMCE/plugins/insertdatetime/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d4360521ee02db0c15e8aeb6260f01b5643b1c4
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/uk_CP1251.js
@@ -0,0 +1,12 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d %m %Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Âñòàâèòè äàòó',
+inserttime_desc : 'Âñòàâèòè ÷àñ',
+inserttime_months_long : new Array("ñ³÷íÿ", "ëþòîãî", "áåðåçíÿ", "êâ³òíÿ", "òðàâíÿ", "÷åðâíÿ", "ëèïíÿ", "ñåðïíÿ", "âåðåñíÿ", "æîâòíÿ", "ëèñòîïàäà", "ãðóäíÿ"),
+inserttime_months_short : new Array("ñ³÷", "ëþò", "áåð", "êâ³ò", "òðàâ", "÷åðâ", "ëèï", "ñåðï", "âåð", "æîâò", "ëèñò", "ãðóä"),
+inserttime_day_long : new Array("íåä³ëÿ", "ïîíåä³ëîê", "â³âòîðîê", "ñåðåäà", "÷åòâåð", "ï'ÿòíèöÿ", "ñóáîòà", "íåä³ëÿ"),
+inserttime_day_short : new Array("íä", "ïí", "âò", "ñð", "÷ò", "ïò", "ñá", "íä")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/uk_KOI8-U.js b/tinyMCE/plugins/insertdatetime/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..20a7ec979abc16ba0d48098ef80ab7b949843c01
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/uk_KOI8-U.js
@@ -0,0 +1,12 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d %m %Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '÷ÓÔÁ×ÉÔÉ ÄÁÔÕ',
+inserttime_desc : '÷ÓÔÁ×ÉÔÉ ÞÁÓ',
+inserttime_months_long : new Array("Ó¦ÞÎÑ", "ÌÀÔÏÇÏ", "ÂÅÒÅÚÎÑ", "ËצÔÎÑ", "ÔÒÁ×ÎÑ", "ÞÅÒ×ÎÑ", "ÌÉÐÎÑ", "ÓÅÒÐÎÑ", "×ÅÒÅÓÎÑ", "ÖÏ×ÔÎÑ", "ÌÉÓÔÏÐÁÄÁ", "ÇÒÕÄÎÑ"),
+inserttime_months_short : new Array("Ó¦Þ", "ÌÀÔ", "ÂÅÒ", "ËצÔ", "ÔÒÁ×", "ÞÅÒ×", "ÌÉÐ", "ÓÅÒÐ", "×ÅÒ", "ÖÏ×Ô", "ÌÉÓÔ", "ÇÒÕÄ"),
+inserttime_day_long : new Array("ÎÅĦÌÑ", "ÐÏÎÅĦÌÏË", "צ×ÔÏÒÏË", "ÓÅÒÅÄÁ", "ÞÅÔ×ÅÒ", "Ð'ÑÔÎÉÃÑ", "ÓÕÂÏÔÁ", "ÎÅĦÌÑ"),
+inserttime_day_short : new Array("ÎÄ", "ÐÎ", "×Ô", "ÓÒ", "ÞÔ", "ÐÔ", "ÓÂ", "ÎÄ")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/vi.js b/tinyMCE/plugins/insertdatetime/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..6704350db8ce7baab6f1bc99d9461f71cc1052c2
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/vi.js
@@ -0,0 +1,12 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%d-%m-%Y',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Thêm ngày',
+inserttime_desc : 'Thêm thời gian',
+inserttime_months_long : new Array("Tháng Một", "Tháng Hai", "Tháng Ba", "Tháng Tư", "Tháng Năm", "Tháng Sáu", "Tháng Bảy", "Tháng Tám", "Tháng Chín", "Tháng Mười", "Tháng M.Một", "Tháng M.Hai"),
+inserttime_months_short : new Array("ThMột", "ThHai", "ThBa", "ThTư", "ThNăm", "ThSáu", "ThBảy", "ThTám", "ThChín", "ThMười", "ThM.Một", "ThM.Hai"),
+inserttime_day_long : new Array("Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy", "Chủ nhật"),
+inserttime_day_short : new Array("CN", "T2", "T3", "T4", "T5", "T6", "T7", "CN")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/zh_cn.js b/tinyMCE/plugins/insertdatetime/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..509a3ea7554d4e90265adaf8ab22fdb5e3ecd2a1
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/zh_cn.js
@@ -0,0 +1,13 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '²åÈ뵱ǰÈÕÆÚ',
+inserttime_desc : '²åÈ뵱ǰʱ¼ä',
+inserttime_months_long : new Array("Ò»Ô·Ý", "¶þÔ·Ý", "ÈýÔ·Ý", "ËÄÔ·Ý", "ÎåÔ·Ý", "ÁùÔ·Ý", "ÆßÔ·Ý", "°ËÔ·Ý", "¾ÅÔ·Ý", "ʮԷÝ", "ʮһÔ·Ý", "Ê®¶þÔ·Ý"),
+inserttime_months_short : new Array("Ò»ÔÂ", "¶þÔÂ", "ÈýÔÂ", "ËÄÔÂ", "ÎåÔÂ", "ÁùÔÂ", "ÆßÔÂ", "°ËÔÂ", "¾ÅÔÂ", "Ê®ÔÂ", "ʮһÔÂ", "Ê®¶þÔÂ"),
+inserttime_day_long : new Array("ÐÇÆÚÈÕ", "ÐÇÆÚÒ»", "ÐÇÆÚ¶þ", "ÐÇÆÚÈý", "ÐÇÆÚËÄ", "ÐÇÆÚÎå", "ÐÇÆÚÁù", "ÐÇÆÚÈÕ"),
+inserttime_day_short : new Array("ÐÇÆÚÈÕ", "ÐÇÆÚÒ»", "ÐÇÆÚ¶þ", "ÐÇÆÚÈý", "ÐÇÆÚËÄ", "ÐÇÆÚÎå", "ÐÇÆÚÁù", "ÐÇÆÚÈÕ")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/zh_cn_utf8.js b/tinyMCE/plugins/insertdatetime/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..68805dbc2e06e885f6e623ccc32759876f84c824
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/zh_cn_utf8.js
@@ -0,0 +1,13 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '插入当前日期',
+inserttime_desc : '插入当前时间',
+inserttime_months_long : new Array("一月份", "二月份", "三月份", "四月份", "五月份", "六月份", "七月份", "八月份", "九月份", "十月份", "十一月份", "十二月份"),
+inserttime_months_short : new Array("一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"),
+inserttime_day_long : new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"),
+inserttime_day_short : new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/zh_tw.js b/tinyMCE/plugins/insertdatetime/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..f9cd497a8daceb7d83f58a2a76339d352a8835c4
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/zh_tw.js
@@ -0,0 +1,13 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '´¡¤J¤é´Á',
+inserttime_desc : '´¡¤J®É¶¡',
+inserttime_months_long : new Array("¤@¤ë", "¤G¤ë", "¤T¤ë", "¥|¤ë", "¤­¤ë", "¤»¤ë", "¤C¤ë", "¤K¤ë", "¤E¤ë", "¤Q¤ë", "¤Q¤@¤ë", "¤Q¤G¤ë"),
+inserttime_months_short : new Array("¤@", "¤G", "¤T", "¥|", "¤­", "¤»", "¤C", "¤K", "¤E", "¤Q", "¤Q¤@", "¤Q¤G"),
+inserttime_day_long : new Array("¬P´Á¤é", "¬P´Á¤@", "¬P´Á¤G", "¬P´Á¤T", "¬P´Á¥|", "¬P´Á¤­", "¬P´Á¤»", "¬P´Á¤é"),
+inserttime_day_short : new Array("¤é", "¤@", "¤G", "¤T", "¥|", "¤­", "¤»", "¤é")
+});
diff --git a/tinyMCE/plugins/insertdatetime/langs/zh_tw_utf8.js b/tinyMCE/plugins/insertdatetime/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..df9af306ee6b261f0aac8c79f803f7dd7f774a7f
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/langs/zh_tw_utf8.js
@@ -0,0 +1,13 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y/%m/%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '插入日期',
+inserttime_desc : '插入時間',
+inserttime_months_long : new Array("一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"),
+inserttime_months_short : new Array("一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"),
+inserttime_day_long : new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"),
+inserttime_day_short : new Array("日", "一", "二", "三", "四", "五", "六", "日")
+});
diff --git a/tinyMCE/plugins/insertdatetime/readme.txt b/tinyMCE/plugins/insertdatetime/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/insertdatetime/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/layer/editor_plugin.js b/tinyMCE/plugins/layer/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..a40b42d8d1e036ded1718a19701d1278c8826feb
--- /dev/null
+++ b/tinyMCE/plugins/layer/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('layer');var TinyMCE_LayerPlugin={getInfo:function(){return{longname:'Layer',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(tinyMCE.isMSIE&&!tinyMCE.isOpera)inst.getDoc().execCommand('2D-Position')},handleEvent:function(e){var inst=tinyMCE.selectedInstance;var w=inst.getWin(),le=inst._lastStyleElm,e;if(tinyMCE.isGecko){e=this._getParentLayer(inst.getFocusElement());if(e){if(!inst._lastStyleElm){e.style.overflow='auto';inst._lastStyleElm=e}}else if(le){le=inst._lastStyleElm;le.style.width=le.scrollWidth+'px';le.style.height=le.scrollHeight+'px';le.style.overflow='';inst._lastStyleElm=null}}return true},handleVisualAid:function(el,deep,state,inst){var nl=inst.getDoc().getElementsByTagName("div"),i;for(i=0;i<nl.length;i++){if(new RegExp('absolute|relative|static','gi').test(nl[i].style.position)){if(state)tinyMCE.addCSSClass(nl[i],'mceVisualAid');else tinyMCE.removeCSSClass(nl[i],'mceVisualAid')}}},getControlHTML:function(cn){switch(cn){case"moveforward":return tinyMCE.getButtonHTML(cn,'lang_layer_forward_desc','{$pluginurl}/images/moveforward.gif','mceMoveForward',true);case"movebackward":return tinyMCE.getButtonHTML(cn,'lang_layer_backward_desc','{$pluginurl}/images/movebackward.gif','mceMoveBackward',true);case"absolute":return tinyMCE.getButtonHTML(cn,'lang_layer_absolute_desc','{$pluginurl}/images/absolute.gif','mceMakeAbsolute',true);case"insertlayer":return tinyMCE.getButtonHTML(cn,'lang_layer_insertlayer_desc','{$pluginurl}/images/insertlayer.gif','mceInsertLayer',true)}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceInsertLayer":this._insertLayer();return true;case"mceMoveForward":this._move(1);return true;case"mceMoveBackward":this._move(-1);return true;case"mceMakeAbsolute":this._toggleAbsolute();return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){var inst=tinyMCE.getInstanceById(editor_id);var le=this._getParentLayer(inst.getFocusElement());var p=tinyMCE.getParentElement(inst.getFocusElement(),'div,p,img');tinyMCE.switchClass(editor_id+'_absolute','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_moveforward','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_movebackward','mceButtonDisabled');if(p)tinyMCE.switchClass(editor_id+'_absolute','mceButtonNormal');if(le&&le.style.position.toLowerCase()=="absolute"){tinyMCE.switchClass(editor_id+'_absolute','mceButtonSelected');tinyMCE.switchClass(editor_id+'_moveforward','mceButtonNormal');tinyMCE.switchClass(editor_id+'_movebackward','mceButtonNormal')}},_move:function(d){var inst=tinyMCE.selectedInstance,i,z=new Array();var le=this._getParentLayer(inst.getFocusElement()),ci=-1,fi=-1;var nl=tinyMCE.selectNodes(inst.getBody(),function(n){return n.nodeType==1&&new RegExp('absolute|relative|static','gi').test(n.style.position)});for(i=0;i<nl.length;i++){z[i]=nl[i].style.zIndex?parseInt(nl[i].style.zIndex):0;if(ci<0&&nl[i]==le)ci=i}if(d<0){for(i=0;i<z.length;i++){if(z[i]<z[ci]){fi=i;break}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci]}else{if(z[ci]>0)nl[ci].style.zIndex=z[ci]-1}}else{for(i=0;i<z.length;i++){if(z[i]>z[ci]){fi=i;break}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci]}else nl[ci].style.zIndex=z[ci]+1}inst.repaint()},_getParentLayer:function(n){return tinyMCE.getParentNode(n,function(n){return n.nodeType==1&&new RegExp('absolute|relative|static','gi').test(n.style.position)})},_insertLayer:function(){var inst=tinyMCE.selectedInstance;var e=tinyMCE.getParentElement(inst.getFocusElement());var p=tinyMCE.getAbsPosition(e);var d=inst.getDoc();var ne=d.createElement('div');var h=inst.selection.getSelectedHTML();ne.style.position='absolute';ne.style.left=p.absLeft+'px';ne.style.top=(p.absTop>20?p.absTop:20)+'px';ne.style.width='100px';ne.style.height='100px';ne.className='mceVisualAid';if(!h)h=tinyMCE.getLang('lang_layer_content');ne.innerHTML=h;d.body.appendChild(ne)},_toggleAbsolute:function(){var inst=tinyMCE.selectedInstance;var le=this._getParentLayer(inst.getFocusElement());if(le==null)le=tinyMCE.getParentElement(inst.getFocusElement(),'div,p,img');if(le){if(le.style.position.toLowerCase()=="absolute"){le.style.position="";le.style.left="";le.style.top=""}else{le.style.position="absolute";if(le.style.left=="")le.style.left=20+'px';if(le.style.top=="")le.style.top=20+'px';if(le.style.width=="")le.style.width=le.width?(le.width+'px'):'100px';if(le.style.height=="")le.style.height=le.height?(le.height+'px'):'100px';tinyMCE.handleVisualAid(inst.getBody(),true,inst.visualAid,inst)}inst.repaint();tinyMCE.triggerNodeChange()}}};tinyMCE.addPlugin("layer",TinyMCE_LayerPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/layer/editor_plugin_src.js b/tinyMCE/plugins/layer/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..28feff2a2473f049803b7f7f0f3002e04428cf0d
--- /dev/null
+++ b/tinyMCE/plugins/layer/editor_plugin_src.js
@@ -0,0 +1,248 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('layer');
+
+var TinyMCE_LayerPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Layer',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		if (tinyMCE.isMSIE && !tinyMCE.isOpera)
+			inst.getDoc().execCommand('2D-Position');
+	},
+
+	handleEvent : function(e) {
+		var inst = tinyMCE.selectedInstance;
+		var w = inst.getWin(), le = inst._lastStyleElm, e;
+
+		if (tinyMCE.isGecko) {
+			e = this._getParentLayer(inst.getFocusElement());
+
+			if (e) {
+				if (!inst._lastStyleElm) {
+					e.style.overflow = 'auto';
+					inst._lastStyleElm = e;
+				}
+			} else if (le) {
+				le = inst._lastStyleElm;
+				le.style.width = le.scrollWidth + 'px';
+				le.style.height = le.scrollHeight + 'px';
+				le.style.overflow = '';
+				inst._lastStyleElm = null;
+			}
+		}
+
+		return true;
+	},
+
+	handleVisualAid : function(el, deep, state, inst) {
+		var nl = inst.getDoc().getElementsByTagName("div"), i;
+
+		for (i=0; i<nl.length; i++) {
+			if (new RegExp('absolute|relative|static', 'gi').test(nl[i].style.position)) {
+				if (state)
+					tinyMCE.addCSSClass(nl[i], 'mceVisualAid');
+				else
+					tinyMCE.removeCSSClass(nl[i], 'mceVisualAid');					
+			}
+		}
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "moveforward":
+				return tinyMCE.getButtonHTML(cn, 'lang_layer_forward_desc', '{$pluginurl}/images/moveforward.gif', 'mceMoveForward', true);
+
+			case "movebackward":
+				return tinyMCE.getButtonHTML(cn, 'lang_layer_backward_desc', '{$pluginurl}/images/movebackward.gif', 'mceMoveBackward', true);
+
+			case "absolute":
+				return tinyMCE.getButtonHTML(cn, 'lang_layer_absolute_desc', '{$pluginurl}/images/absolute.gif', 'mceMakeAbsolute', true);
+
+			case "insertlayer":
+				return tinyMCE.getButtonHTML(cn, 'lang_layer_insertlayer_desc', '{$pluginurl}/images/insertlayer.gif', 'mceInsertLayer', true);
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mceInsertLayer":
+				this._insertLayer();
+				return true;
+
+			case "mceMoveForward":
+				this._move(1);
+				return true;
+
+			case "mceMoveBackward":
+				this._move(-1);
+				return true;
+
+			case "mceMakeAbsolute":
+				this._toggleAbsolute();
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		var inst = tinyMCE.getInstanceById(editor_id);
+		var le = this._getParentLayer(inst.getFocusElement());
+		var p = tinyMCE.getParentElement(inst.getFocusElement(), 'div,p,img');
+
+		tinyMCE.switchClass(editor_id + '_absolute', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_moveforward', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_movebackward', 'mceButtonDisabled');
+
+		if (p)
+			tinyMCE.switchClass(editor_id + '_absolute', 'mceButtonNormal');
+
+		if (le && le.style.position.toLowerCase() == "absolute") {
+			tinyMCE.switchClass(editor_id + '_absolute', 'mceButtonSelected');
+			tinyMCE.switchClass(editor_id + '_moveforward', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_movebackward', 'mceButtonNormal');
+		}
+	},
+
+	// Private plugin specific methods
+
+	_move : function(d) {
+		var inst = tinyMCE.selectedInstance, i, z = new Array();
+		var le = this._getParentLayer(inst.getFocusElement()), ci = -1, fi = -1;
+		var nl = tinyMCE.selectNodes(inst.getBody(), function(n) {
+			return n.nodeType == 1 && new RegExp('absolute|relative|static', 'gi').test(n.style.position);
+		});
+
+		// Find z-indexes
+		for (i=0; i<nl.length; i++) {
+			z[i] = nl[i].style.zIndex ? parseInt(nl[i].style.zIndex) : 0;
+
+			if (ci < 0 && nl[i] == le)
+				ci = i;
+		}
+
+		if (d < 0) {
+			// Move back
+
+			// Try find a lower one
+			for (i=0; i<z.length; i++) {
+				if (z[i] < z[ci]) {
+					fi = i;
+					break;
+				}
+			}
+
+			if (fi > -1) {
+				nl[ci].style.zIndex = z[fi];
+				nl[fi].style.zIndex = z[ci];
+			} else {
+				if (z[ci] > 0)
+					nl[ci].style.zIndex = z[ci] - 1;
+			}
+		} else {
+			// Move forward
+
+			// Try find a higher one
+			for (i=0; i<z.length; i++) {
+				if (z[i] > z[ci]) {
+					fi = i;
+					break;
+				}
+			}
+
+			if (fi > -1) {
+				nl[ci].style.zIndex = z[fi];
+				nl[fi].style.zIndex = z[ci];
+			} else
+				nl[ci].style.zIndex = z[ci] + 1;
+		}
+
+		inst.repaint();
+	},
+
+	_getParentLayer : function(n) {
+		return tinyMCE.getParentNode(n, function(n) {
+			return n.nodeType == 1 && new RegExp('absolute|relative|static', 'gi').test(n.style.position);
+		});
+	},
+
+	_insertLayer : function() {
+		var inst = tinyMCE.selectedInstance;
+		var e = tinyMCE.getParentElement(inst.getFocusElement());
+		var p = tinyMCE.getAbsPosition(e);
+		var d = inst.getDoc();
+		var ne = d.createElement('div');
+		var h = inst.selection.getSelectedHTML();
+
+		// Move div
+		ne.style.position = 'absolute';
+		ne.style.left = p.absLeft + 'px';
+		ne.style.top = (p.absTop > 20 ? p.absTop : 20) + 'px';
+		ne.style.width = '100px';
+		ne.style.height = '100px';
+		ne.className = 'mceVisualAid';
+
+		if (!h)
+			h = tinyMCE.getLang('lang_layer_content');
+
+		ne.innerHTML = h;
+
+		// Add it
+		d.body.appendChild(ne);
+	},
+
+	_toggleAbsolute : function() {
+		var inst = tinyMCE.selectedInstance;
+		var le = this._getParentLayer(inst.getFocusElement());
+
+		if (le == null)
+			le = tinyMCE.getParentElement(inst.getFocusElement(), 'div,p,img');
+
+		if (le) {
+			if (le.style.position.toLowerCase() == "absolute") {
+				le.style.position = "";
+				le.style.left = "";
+				le.style.top = "";
+			} else {
+				le.style.position = "absolute";
+
+				if (le.style.left == "")
+					le.style.left = 20 + 'px';
+
+				if (le.style.top == "")
+					le.style.top = 20 + 'px';
+
+				if (le.style.width == "")
+					le.style.width = le.width ? (le.width + 'px') : '100px';
+
+				if (le.style.height == "")
+					le.style.height = le.height ? (le.height + 'px') : '100px';
+
+				tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+			}
+
+			inst.repaint();
+			tinyMCE.triggerNodeChange();
+		}
+	}
+};
+
+tinyMCE.addPlugin("layer", TinyMCE_LayerPlugin);
diff --git a/tinyMCE/plugins/layer/images/absolute.gif b/tinyMCE/plugins/layer/images/absolute.gif
new file mode 100644
index 0000000000000000000000000000000000000000..72cffddc3246c84e1e93ced3f36539b2c6b5a834
Binary files /dev/null and b/tinyMCE/plugins/layer/images/absolute.gif differ
diff --git a/tinyMCE/plugins/layer/images/backward.gif b/tinyMCE/plugins/layer/images/backward.gif
new file mode 100644
index 0000000000000000000000000000000000000000..466b1586561bb96767cd6bd4e40dc525ac9c642b
Binary files /dev/null and b/tinyMCE/plugins/layer/images/backward.gif differ
diff --git a/tinyMCE/plugins/layer/images/forward.gif b/tinyMCE/plugins/layer/images/forward.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e8b7a5a11f152a85f78f846a11567f88962823c0
Binary files /dev/null and b/tinyMCE/plugins/layer/images/forward.gif differ
diff --git a/tinyMCE/plugins/layer/images/insert_layer.gif b/tinyMCE/plugins/layer/images/insert_layer.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bc29af07663334e74e4ebe5b076302db2bc03ec2
Binary files /dev/null and b/tinyMCE/plugins/layer/images/insert_layer.gif differ
diff --git a/tinyMCE/plugins/layer/images/insertlayer.gif b/tinyMCE/plugins/layer/images/insertlayer.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bc29af07663334e74e4ebe5b076302db2bc03ec2
Binary files /dev/null and b/tinyMCE/plugins/layer/images/insertlayer.gif differ
diff --git a/tinyMCE/plugins/layer/images/movebackward.gif b/tinyMCE/plugins/layer/images/movebackward.gif
new file mode 100644
index 0000000000000000000000000000000000000000..466b1586561bb96767cd6bd4e40dc525ac9c642b
Binary files /dev/null and b/tinyMCE/plugins/layer/images/movebackward.gif differ
diff --git a/tinyMCE/plugins/layer/images/moveforward.gif b/tinyMCE/plugins/layer/images/moveforward.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e8b7a5a11f152a85f78f846a11567f88962823c0
Binary files /dev/null and b/tinyMCE/plugins/layer/images/moveforward.gif differ
diff --git a/tinyMCE/plugins/layer/langs/ca.js b/tinyMCE/plugins/layer/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ca.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/cs.js b/tinyMCE/plugins/layer/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/cs.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/cy.js b/tinyMCE/plugins/layer/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/cy.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/da.js b/tinyMCE/plugins/layer/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..120888408643f054f57711249e6153107a7ad2b2
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/da.js
@@ -0,0 +1,9 @@
+// DK lang variables - Transl.:John Dalsgaard, Bo Frederiksen - Corr.:
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Inds&aelig;t nyt lag',
+forward_desc : 'Flyt fremad',
+backward_desc : 'Flyt bagud',
+absolute_desc : 'Absolut positionering til/fra',
+content : 'Nyt lag...'
+});
diff --git a/tinyMCE/plugins/layer/langs/de.js b/tinyMCE/plugins/layer/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..b53a1d9aea14e11090ac44f2b29c802d2f43be0e
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/de.js
@@ -0,0 +1,9 @@
+// DE lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Neue Ebene einf&uuml;gen',
+forward_desc : 'Vorw&auml;rts schalten',
+backward_desc : 'R&uuml;ckw&auml;rts schalten',
+absolute_desc : 'Absolute Position schalten',
+content : 'Neue Ebene...'
+});
diff --git a/tinyMCE/plugins/layer/langs/el.js b/tinyMCE/plugins/layer/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..fda01aab5683ee2fbd3e31b4f592f5adbe23a730
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/el.js
@@ -0,0 +1,9 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'ÅéóáãùãÞ íÝoõ åðéðÝäïõ',
+forward_desc : 'ÌåôáöïñÜ åìðñüò',
+backward_desc : 'ÌåôáöïñÜ ðßóù',
+absolute_desc : 'ÁíôéóñïöÞ áðüëõôçò ôïðïèÝôçóçò',
+content : 'ÍÝï åðßðåäï...'
+});
diff --git a/tinyMCE/plugins/layer/langs/en.js b/tinyMCE/plugins/layer/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/en.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/es.js b/tinyMCE/plugins/layer/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..e85290252eff834a74a30ece82d1a3402a8dc077
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/es.js
@@ -0,0 +1,15 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insertar nueva capa',
+forward_desc : 'Adelante',
+backward_desc : 'Atr&aacute;s',
+absolute_desc : 'Posicionamiento absoluto',
+content : 'Nueva capa...'
+});
diff --git a/tinyMCE/plugins/layer/langs/fa.js b/tinyMCE/plugins/layer/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/fa.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/fi.js b/tinyMCE/plugins/layer/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..0332dc02211dede2274b08d98cc9b0f46e5666ab
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/fi.js
@@ -0,0 +1,9 @@
+// FI lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Lis&auml;&auml; uusi taso',
+forward_desc : 'Liiku eteenp&auml;in',
+backward_desc : 'Liiku taaksep&auml;in',
+absolute_desc : 'Kytke absoluuttinen asettelu p&auml;&auml;lle/pois',
+content : 'Uusi taso...'
+});
diff --git a/tinyMCE/plugins/layer/langs/fr.js b/tinyMCE/plugins/layer/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..9e854210b63b97b561f2a6cc03cec456ada336a1
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/fr.js
@@ -0,0 +1,10 @@
+// FR lang variables
+// Modified by shadow walker, last updated 2007-03-16
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Ins&eacute;rer un nouveau calque',
+forward_desc : 'Avancer',
+backward_desc : 'Reculer',
+absolute_desc : 'Passer en positionnement absolu',
+content : 'Nouveau calque...'
+});
diff --git a/tinyMCE/plugins/layer/langs/fr_ca.js b/tinyMCE/plugins/layer/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/fr_ca.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/he.js b/tinyMCE/plugins/layer/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/he.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/hu.js b/tinyMCE/plugins/layer/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/hu.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/is.js b/tinyMCE/plugins/layer/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/is.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/it.js b/tinyMCE/plugins/layer/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..0af25e8759b9638ab6c99c0d32b0f9e32df170f1
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/it.js
@@ -0,0 +1,15 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Inserisci nuovo layer',
+forward_desc : 'Sposta verso l\'alto',
+backward_desc : 'Sposta verso il basso',
+absolute_desc : 'Abilita o disabilita posizionamento assoluto',
+content : 'Nuovo livello...'
+});
diff --git a/tinyMCE/plugins/layer/langs/ja.js b/tinyMCE/plugins/layer/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..3bf17ab8df28c9f6daa683ca843f1ddbf1c5e9c3
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ja.js
@@ -0,0 +1,9 @@
+// JA lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : '新しいレイヤーの挿入',
+forward_desc : '前へ',
+backward_desc : '奥へ',
+absolute_desc : 'position属性の切り替え',
+content : '新規レイヤー'
+});
diff --git a/tinyMCE/plugins/layer/langs/ja_euc-jp.js b/tinyMCE/plugins/layer/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ja_euc-jp.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/ja_shift_jis.js b/tinyMCE/plugins/layer/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ja_shift_jis.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/ja_utf-8.js b/tinyMCE/plugins/layer/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ja_utf-8.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/ko.js b/tinyMCE/plugins/layer/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ko.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/nb.js b/tinyMCE/plugins/layer/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/nb.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/nl.js b/tinyMCE/plugins/layer/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/nl.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/nn.js b/tinyMCE/plugins/layer/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/nn.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/pl.js b/tinyMCE/plugins/layer/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/pl.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/pt_br.js b/tinyMCE/plugins/layer/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..c8e8f664e868a47d87e3ab960a5465ae3f83515f
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/pt_br.js
@@ -0,0 +1,16 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Inserir novo layer',
+forward_desc : 'Mover para frente',
+backward_desc : 'Mover para trás',
+absolute_desc : 'Alterar posição absoluta',
+content : 'Novo layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/ro.js b/tinyMCE/plugins/layer/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..5874dd209c2c44f019f10788757bc50b85494966
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ro.js
@@ -0,0 +1,9 @@
+// RO lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Inseeaz&#259; un nou strat',
+forward_desc : 'Mut&#259; &#238;nainte',
+backward_desc : 'Mut&#259; &#238;napoi',
+absolute_desc : 'Comut&#259; pozi&#355;ionarea absolut&#259;',
+content : 'Strat nou...'
+});
diff --git a/tinyMCE/plugins/layer/langs/ru.js b/tinyMCE/plugins/layer/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..ba5c8bca5a59a7db73b2727801db95540c84bfc9
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ru.js
@@ -0,0 +1,9 @@
+// RU  lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Вставить новый слой',
+forward_desc : 'Переместить вперед',
+backward_desc : 'Переместить назад',
+absolute_desc : 'Вкл / Выкл абсолютное позиционирование',
+content : 'Новый слой...'
+});
diff --git a/tinyMCE/plugins/layer/langs/ru_CP1251.js b/tinyMCE/plugins/layer/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..85908b9d2b24444ad6f9e6180464b26be4529c38
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ru_CP1251.js
@@ -0,0 +1,9 @@
+// RU  lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Âñòàâèòü íîâûé ñëîé',
+forward_desc : 'Ïåðåìåñòèòü âïåðåä',
+backward_desc : 'Ïåðåìåñòèòü íàçàä',
+absolute_desc : 'Âêë / Âûêë àáñîëþòíîå ïîçèöèîíèðîâàíèå',
+content : 'Íîâûé ñëîé...'
+});
diff --git a/tinyMCE/plugins/layer/langs/ru_KOI8-R.js b/tinyMCE/plugins/layer/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..f120ba0bacbe73857dd5316e46422a3b5d0e9f16
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/ru_KOI8-R.js
@@ -0,0 +1,9 @@
+// RU  lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : '÷ÓÔÁ×ÉÔØ ÎÏ×ÙÊ ÓÌÏÊ',
+forward_desc : 'ðÅÒÅÍÅÓÔÉÔØ ×ÐÅÒÅÄ',
+backward_desc : 'ðÅÒÅÍÅÓÔÉÔØ ÎÁÚÁÄ',
+absolute_desc : '÷ËÌ / ÷ÙËÌ ÁÂÓÏÌÀÔÎÏÅ ÐÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÅ',
+content : 'îÏ×ÙÊ ÓÌÏÊ...'
+});
diff --git a/tinyMCE/plugins/layer/langs/si.js b/tinyMCE/plugins/layer/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/si.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/sk.js b/tinyMCE/plugins/layer/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/sk.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/sq.js b/tinyMCE/plugins/layer/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..0a45de985b92a5f6ad2bc4461088db1fd1b0f63f
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/sq.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Nderfut nje shtrese',
+forward_desc : 'Leviz perpara',
+backward_desc : 'Leviz prapa',
+absolute_desc : 'Cakto pozicionimin absolut',
+content : 'Shtrese e re...'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/layer/langs/sr.js b/tinyMCE/plugins/layer/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/sr.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/sv.js b/tinyMCE/plugins/layer/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/sv.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/sv_utf8.js b/tinyMCE/plugins/layer/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/sv_utf8.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/tr.js b/tinyMCE/plugins/layer/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/tr.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/uk.js b/tinyMCE/plugins/layer/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..5f4a72e86f103cefd397cc3c3a5a98c51ff94305
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/uk.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Вставити новий шар',
+forward_desc : 'Перемістити вперед',
+backward_desc : 'Перемістити назад',
+absolute_desc : 'Вкл / Відкл абсолютне позиціонування',
+content : 'Новий шар...'
+});
diff --git a/tinyMCE/plugins/layer/langs/uk_CP1251.js b/tinyMCE/plugins/layer/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d8f8212e924588f7f5bd81239c253ee9f7f931b
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/uk_CP1251.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Âñòàâèòè íîâèé øàð',
+forward_desc : 'Ïåðåì³ñòèòè âïåðåä',
+backward_desc : 'Ïåðåì³ñòèòè íàçàä',
+absolute_desc : 'Âêë / ³äêë àáñîëþòíå ïîçèö³îíóâàííÿ',
+content : 'Íîâèé øàð...'
+});
diff --git a/tinyMCE/plugins/layer/langs/uk_KOI8-U.js b/tinyMCE/plugins/layer/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..23428ff7ce22c6986ae1112b7a5cc28920b14e5a
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/uk_KOI8-U.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : '÷ÓÔÁ×ÉÔÉ ÎÏ×ÉÊ ÛÁÒ',
+forward_desc : 'ðÅÒÅͦÓÔÉÔÉ ×ÐÅÒÅÄ',
+backward_desc : 'ðÅÒÅͦÓÔÉÔÉ ÎÁÚÁÄ',
+absolute_desc : '÷ËÌ / ÷¦ÄËÌ ÁÂÓÏÌÀÔÎÅ ÐÏÚÉæÏÎÕ×ÁÎÎÑ',
+content : 'îÏ×ÉÊ ÛÁÒ...'
+});
diff --git a/tinyMCE/plugins/layer/langs/vi.js b/tinyMCE/plugins/layer/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..34d2f1103063e280c0e5be78de3d20a0ba5cd09e
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/vi.js
@@ -0,0 +1,9 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Thêm một layer mới',
+forward_desc : 'Chuyển lên trước',
+backward_desc : 'Chuyển xuống sau',
+absolute_desc : 'Chuyển đổi xác định vị trí tuyệt đối',
+content : 'Layer má»›i...'
+});
diff --git a/tinyMCE/plugins/layer/langs/zh_cn.js b/tinyMCE/plugins/layer/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/zh_cn.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/zh_cn_utf8.js b/tinyMCE/plugins/layer/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/zh_cn_utf8.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/zh_tw.js b/tinyMCE/plugins/layer/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/zh_tw.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/langs/zh_tw_utf8.js b/tinyMCE/plugins/layer/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdd8c22b28ed70ee1e9c8d0bf400404fdcb4d075
--- /dev/null
+++ b/tinyMCE/plugins/layer/langs/zh_tw_utf8.js
@@ -0,0 +1,9 @@
+// UK lang variables
+
+tinyMCE.addToLang('layer',{
+insertlayer_desc : 'Insert new layer',
+forward_desc : 'Move forward',
+backward_desc : 'Move backward',
+absolute_desc : 'Toggle absolute positioning',
+content : 'New layer...'
+});
diff --git a/tinyMCE/plugins/layer/readme.txt b/tinyMCE/plugins/layer/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/layer/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/media/css/content.css b/tinyMCE/plugins/media/css/content.css
new file mode 100644
index 0000000000000000000000000000000000000000..1f667e63358b7378a44af6d2b98e10dac4a1f78b
--- /dev/null
+++ b/tinyMCE/plugins/media/css/content.css
@@ -0,0 +1,26 @@
+.mceItemFlash, .mceItemShockWave, .mceItemQuickTime, .mceItemWindowsMedia, .mceItemRealMedia {
+	border: 1px dotted #cc0000;
+	background-position: center;
+	background-repeat: no-repeat;
+	background-color: #ffffcc;
+}
+
+.mceItemShockWave {
+	background-image: url('../images/shockwave.gif');
+}
+
+.mceItemFlash {
+	background-image: url('../images/flash.gif');
+}
+
+.mceItemQuickTime {
+	background-image: url('../images/quicktime.gif');
+}
+
+.mceItemWindowsMedia {
+	background-image: url('../images/windowsmedia.gif');
+}
+
+.mceItemRealMedia {
+	background-image: url('../images/realmedia.gif');
+}
diff --git a/tinyMCE/plugins/media/css/media.css b/tinyMCE/plugins/media/css/media.css
new file mode 100644
index 0000000000000000000000000000000000000000..89c6bd5a055cdbf55727100dace8e41a9b95049c
--- /dev/null
+++ b/tinyMCE/plugins/media/css/media.css
@@ -0,0 +1,68 @@
+#id, #name, #hspace, #vspace, #class_name, #align {
+	width: 100px;
+}
+
+#hspace, #vspace {
+	width: 50px;
+}
+
+#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode {
+	width: 100px;
+}
+
+#flash_base, #flash_flashvars {
+	width: 240px;
+}
+
+#width, #height {
+	width: 40px;
+}
+
+#src, #media_type {
+	width: 250px;
+}
+
+#class {
+	width: 120px;
+}
+
+#prev {
+	margin: 0;
+	border: 1px solid black;
+	width: 99%;
+	height: 230px;
+	overflow: auto;
+}
+
+.panel_wrapper div.current {
+	height: 390px;
+	overflow: auto;
+}
+
+#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options {
+	display: none;
+}
+
+.mceAddSelectValue {
+	background-color: #DDDDDD;
+}
+
+#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume {
+	width: 70px;
+}
+
+#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume {
+	width: 70px;
+}
+
+#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks {
+	width: 70px;
+}
+
+#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle {
+	width: 90px;
+}
+
+#qt_qtsrc {
+	width: 200px;
+}
diff --git a/tinyMCE/plugins/media/editor_plugin.js b/tinyMCE/plugins/media/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..d43198656b9076f1973b73b808f45f4159ccc1b6
--- /dev/null
+++ b/tinyMCE/plugins/media/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('media');var TinyMCE_MediaPlugin={getInfo:function(){return{longname:'Media',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(inst.hasPlugin('flash')&&!tinyMCE.flashWarn){alert('Flash plugin is deprecated and should not be used together with the media plugin.');tinyMCE.flashWarn=true}if(!tinyMCE.settings['media_skip_plugin_css'])tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/media/css/content.css")},getControlHTML:function(cn){switch(cn){case"media":return tinyMCE.getButtonHTML(cn,'lang_media_desc','{$pluginurl}/images/media.gif','mceMedia')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceMedia":tinyMCE.openWindow({file:'../../plugins/media/media.htm',width:430+tinyMCE.getLang('lang_media_delta_width',0),height:470+tinyMCE.getLang('lang_media_delta_height',0)},{editor_id:editor_id,inline:"yes"});return true}return false},cleanup:function(type,content,inst){var nl,img,i,ne,d,s,ci;switch(type){case"insert_to_editor":img=tinyMCE.getParam("theme_href")+'/images/spacer.gif';content=content.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi,'<img class="mceItem$1" title="$2" src="'+img+'" />');content=content.replace(/<object([^>]*)>/gi,'<div class="mceItemObject" $1>');content=content.replace(/<embed([^>]*)>/gi,'<div class="mceItemObjectEmbed" $1>');content=content.replace(/<\/(object|embed)([^>]*)>/gi,'</div>');content=content.replace(/<param([^>]*)>/gi,'<div $1 class="mceItemParam"></div>');content=content.replace(new RegExp('\\/ class="mceItemParam"><\\/div>','gi'),'class="mceItemParam"></div>');break;case"insert_to_editor_dom":d=inst.getDoc();nl=content.getElementsByTagName("img");for(i=0;i<nl.length;i++){if(/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(nl[i].className)){nl[i].width=nl[i].title.replace(/.*width:[^0-9]?([0-9]+)%?.*/g,'$1');nl[i].height=nl[i].title.replace(/.*height:[^0-9]?([0-9]+)%?.*/g,'$1');}}nl=tinyMCE.selectElements(content,'DIV',function(n){return tinyMCE.hasCSSClass(n,'mceItemObject')});for(i=0;i<nl.length;i++){ci=tinyMCE.getAttrib(nl[i],"classid").toLowerCase().replace(/\s+/g,'');switch(ci){case'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemFlash',d,nl[i]),nl[i]);break;case'clsid:166b1bca-3f9c-11cf-8075-444553540000':nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemShockWave',d,nl[i]),nl[i]);break;case'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':case'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':case'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemWindowsMedia',d,nl[i]),nl[i]);break;case'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemQuickTime',d,nl[i]),nl[i]);break;case'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemRealMedia',d,nl[i]),nl[i]);break}}nl=tinyMCE.selectNodes(content,function(n){return n.className=='mceItemObjectEmbed'});for(i=0;i<nl.length;i++){switch(tinyMCE.getAttrib(nl[i],'type')){case'application/x-shockwave-flash':TinyMCE_MediaPlugin._createImgFromEmbed(nl[i],d,'mceItemFlash');break;case'application/x-director':TinyMCE_MediaPlugin._createImgFromEmbed(nl[i],d,'mceItemShockWave');break;case'application/x-mplayer2':TinyMCE_MediaPlugin._createImgFromEmbed(nl[i],d,'mceItemWindowsMedia');break;case'video/quicktime':TinyMCE_MediaPlugin._createImgFromEmbed(nl[i],d,'mceItemQuickTime');break;case'audio/x-pn-realaudio-plugin':TinyMCE_MediaPlugin._createImgFromEmbed(nl[i],d,'mceItemRealMedia');break}}break;case"get_from_editor":var startPos=-1,endPos,attribs,chunkBefore,chunkAfter,embedHTML,at,pl,cb,mt,ex;while((startPos=content.indexOf('<img',startPos+1))!=-1){endPos=content.indexOf('/>',startPos);attribs=TinyMCE_MediaPlugin._parseAttributes(content.substring(startPos+4,endPos));if(!/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(attribs['class']))continue;endPos+=2;at=attribs['title'];if(at){at=at.replace(/&(#39|apos);/g,"'");at=at.replace(/&#quot;/g,'"');try{pl=eval('x={'+at+'};')}catch(ex){pl={}}}if(!tinyMCE.getParam('media_use_script',false)){switch(attribs['class']){case'mceItemFlash':ci='d27cdb6e-ae6d-11cf-96b8-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='application/x-shockwave-flash';break;case'mceItemShockWave':ci='166B1BCA-3F9C-11CF-8075-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';mt='application/x-director';break;case'mceItemWindowsMedia':ci=tinyMCE.getParam('media_wmp6_compatible')?'05589FA1-C356-11CE-BF01-00AA0055595A':'6BF52A52-394A-11D3-B153-00C04F79FAA6';cb='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';mt='application/x-mplayer2';break;case'mceItemQuickTime':ci='02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';cb='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';mt='video/quicktime';break;case'mceItemRealMedia':ci='CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='audio/x-pn-realaudio-plugin';break}if(!tinyMCE.getParam("relative_urls"))pl.src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],pl.src);embedHTML=TinyMCE_MediaPlugin._getEmbed(ci,cb,mt,pl,attribs)}else{switch(attribs['class']){case'mceItemFlash':s='writeFlash';break;case'mceItemShockWave':s='writeShockWave';break;case'mceItemWindowsMedia':s='writeWindowsMedia';break;case'mceItemQuickTime':s='writeQuickTime';break;case'mceItemRealMedia':s='writeRealMedia';break}if(attribs.width)at=at.replace(/width:[^0-9]?[0-9]+%?[^0-9]?/g,"width:'"+attribs.width+"'");if(attribs.height)at=at.replace(/height:[^0-9]?[0-9]+%?[^0-9]?/g,"height:'"+attribs.height+"'");if(!tinyMCE.getParam("relative_urls")){pl.src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],pl.src);at=at.replace(new RegExp("src:'[^']*'","g"),"src:'"+pl.src+"'")}embedHTML='<script type="text/javascript">'+s+'({'+at+'});</script>'}chunkBefore=content.substring(0,startPos);chunkAfter=content.substring(endPos);content=chunkBefore+embedHTML+chunkAfter}break}return content},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="IMG"&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(node,'class'))){tinyMCE.switchClass(editor_id+'_media','mceButtonSelected');return true}}while((node=node.parentNode));tinyMCE.switchClass(editor_id+'_media','mceButtonNormal');return true},_createImgFromEmbed:function(n,d,cl){var ne,at,i,ti='',an;ne=d.createElement('img');ne.src=tinyMCE.getParam("theme_href")+'/images/spacer.gif';ne.width=tinyMCE.getAttrib(n,'width');ne.height=tinyMCE.getAttrib(n,'height');ne.className=cl;at=n.attributes;for(i=0;i<at.length;i++){if(at[i].specified&&at[i].nodeValue){an=at[i].nodeName.toLowerCase();if(an=='src')continue;if(an=='mce_src')an='src';if(an.indexOf('mce_')==-1&&!new RegExp('^(class|type)$').test(an))ti+=an.toLowerCase()+':\''+at[i].nodeValue+"',"}}ti=ti.length>0?ti.substring(0,ti.length-1):ti;ne.title=ti;n.parentNode.replaceChild(ne,n)},_createImg:function(cl,d,n){var i,nl,ti="",an,av,al=new Array();ne=d.createElement('img');ne.src=tinyMCE.getParam("theme_href")+'/images/spacer.gif';ne.width=tinyMCE.getAttrib(n,'width');ne.height=tinyMCE.getAttrib(n,'height');ne.className=cl;al.id=tinyMCE.getAttrib(n,'id');al.name=tinyMCE.getAttrib(n,'name');al.width=tinyMCE.getAttrib(n,'width');al.height=tinyMCE.getAttrib(n,'height');al.bgcolor=tinyMCE.getAttrib(n,'bgcolor');al.align=tinyMCE.getAttrib(n,'align');al.class_name=tinyMCE.getAttrib(n,'mce_class');nl=n.getElementsByTagName('div');for(i=0;i<nl.length;i++){av=tinyMCE.getAttrib(nl[i],'value');av=av.replace(new RegExp('\\\\','g'),'\\\\');av=av.replace(new RegExp('"','g'),'\\"');av=av.replace(new RegExp("'",'g'),"\\'");an=tinyMCE.getAttrib(nl[i],'name');al[an]=av}if(al.movie){al.src=al.movie;al.movie=null}for(an in al){if(al[an]!=null&&typeof(al[an])!="function"&&al[an]!='')ti+=an.toLowerCase()+':\''+al[an]+"',"}ti=ti.length>0?ti.substring(0,ti.length-1):ti;ne.title=ti;return ne},_getEmbed:function(cls,cb,mt,p,at){var h='',n;p.width=at.width?at.width:p.width;p.height=at.height?at.height:p.height;h+='<object classid="clsid:'+cls+'" codebase="'+cb+'"';h+=typeof(p.id)!="undefined"?' id="'+p.id+'"':'';h+=typeof(p.name)!="undefined"?' name="'+p.name+'"':'';h+=typeof(p.width)!="undefined"?' width="'+p.width+'"':'';h+=typeof(p.height)!="undefined"?' height="'+p.height+'"':'';h+=typeof(p.align)!="undefined"?' align="'+p.align+'"':'';h+='>';for(n in p){if(typeof(p[n])!="undefined"&&typeof(p[n])!="function"){h+='<param name="'+n+'" value="'+p[n]+'" />';if(n=='src'&&p[n].indexOf('://')!=-1&&mt=='application/x-mplayer2')h+='<param name="url" value="'+p[n]+'" />'}}h+='<embed type="'+mt+'"';for(n in p){if(typeof(p[n])=="function")continue;if(!(n=='url'&&mt=='application/x-mplayer2'))h+=' '+n+'="'+p[n]+'"'}h+='></embed></object>';return h},_parseAttributes:function(attribute_string){var attributeName="",endChr='"';var attributeValue="";var withInName;var withInValue;var attributes=new Array();var whiteSpaceRegExp=new RegExp('^[ \n\r\t]+','g');if(attribute_string==null||attribute_string.length<2)return null;withInName=withInValue=false;for(var i=0;i<attribute_string.length;i++){var chr=attribute_string.charAt(i);if((chr=='"'||chr=="'")&&!withInValue){withInValue=true;endChr=chr}else if(chr==endChr&&withInValue){withInValue=false;var pos=attributeName.lastIndexOf(' ');if(pos!=-1)attributeName=attributeName.substring(pos+1);attributes[attributeName.toLowerCase()]=attributeValue.substring(1);attributeName="";attributeValue=""}else if(!whiteSpaceRegExp.test(chr)&&!withInName&&!withInValue)withInName=true;if(chr=='='&&withInName)withInName=false;if(withInName)attributeName+=chr;if(withInValue)attributeValue+=chr}return attributes}};tinyMCE.addPlugin("media",TinyMCE_MediaPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/media/editor_plugin_src.js b/tinyMCE/plugins/media/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..4478ebb59eae86bce199a812255155029f90eda4
--- /dev/null
+++ b/tinyMCE/plugins/media/editor_plugin_src.js
@@ -0,0 +1,435 @@
+/**
+ * $Id: editor_plugin_src.js 275 2007-05-01 15:35:08Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('media');
+
+var TinyMCE_MediaPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Media',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		// Warn if user has flash plugin and media plugin at the same time
+		if (inst.hasPlugin('flash') && !tinyMCE.flashWarn) {
+			alert('Flash plugin is deprecated and should not be used together with the media plugin.');
+			tinyMCE.flashWarn = true;
+		}
+
+		if (!tinyMCE.settings['media_skip_plugin_css'])
+			tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/media/css/content.css");
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "media":
+				return tinyMCE.getButtonHTML(cn, 'lang_media_desc', '{$pluginurl}/images/media.gif', 'mceMedia');
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mceMedia":
+				tinyMCE.openWindow({
+						file : '../../plugins/media/media.htm',
+						width : 430 + tinyMCE.getLang('lang_media_delta_width', 0),
+						height : 470 + tinyMCE.getLang('lang_media_delta_height', 0)
+					}, {
+						editor_id : editor_id,
+						inline : "yes"
+				});
+
+				return true;
+	   }
+
+	   // Pass to next handler in chain
+	   return false;
+	},
+
+	cleanup : function(type, content, inst) {
+		var nl, img, i, ne, d, s, ci;
+
+		switch (type) {
+			case "insert_to_editor":
+				img = tinyMCE.getParam("theme_href") + '/images/spacer.gif';
+				content = content.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, '<img class="mceItem$1" title="$2" src="' + img + '" />');
+				content = content.replace(/<object([^>]*)>/gi, '<div class="mceItemObject" $1>');
+				content = content.replace(/<embed([^>]*)>/gi, '<div class="mceItemObjectEmbed" $1>');
+				content = content.replace(/<\/(object|embed)([^>]*)>/gi, '</div>');
+				content = content.replace(/<param([^>]*)>/gi, '<div $1 class="mceItemParam"></div>');
+				content = content.replace(new RegExp('\\/ class="mceItemParam"><\\/div>', 'gi'), 'class="mceItemParam"></div>');
+				break;
+
+			case "insert_to_editor_dom":
+				d = inst.getDoc();
+				nl = content.getElementsByTagName("img");
+				for (i=0; i<nl.length; i++) {
+					if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(nl[i].className)) {
+						nl[i].width = nl[i].title.replace(/.*width:[^0-9]?([0-9]+)%?.*/g, '$1');
+						nl[i].height = nl[i].title.replace(/.*height:[^0-9]?([0-9]+)%?.*/g, '$1');
+						//nl[i].align = nl[i].title.replace(/.*align:([a-z]+).*/gi, '$1');
+					}
+				}
+
+				nl = tinyMCE.selectElements(content, 'DIV', function (n) {return tinyMCE.hasCSSClass(n, 'mceItemObject');});
+				for (i=0; i<nl.length; i++) {
+					ci = tinyMCE.getAttrib(nl[i], "classid").toLowerCase().replace(/\s+/g, '');
+
+					switch (ci) {
+						case 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':
+							nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemFlash', d, nl[i]), nl[i]);
+							break;
+
+						case 'clsid:166b1bca-3f9c-11cf-8075-444553540000':
+							nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemShockWave', d, nl[i]), nl[i]);
+							break;
+
+						case 'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':
+						case 'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':
+						case 'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':
+							nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemWindowsMedia', d, nl[i]), nl[i]);
+							break;
+
+						case 'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':
+							nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemQuickTime', d, nl[i]), nl[i]);
+							break;
+
+						case 'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':
+							nl[i].parentNode.replaceChild(TinyMCE_MediaPlugin._createImg('mceItemRealMedia', d, nl[i]), nl[i]);
+							break;
+					}
+				}
+
+				// Handle embed (if any)
+				nl = tinyMCE.selectNodes(content, function (n) {return n.className == 'mceItemObjectEmbed';});
+				for (i=0; i<nl.length; i++) {
+					switch (tinyMCE.getAttrib(nl[i], 'type')) {
+						case 'application/x-shockwave-flash':
+							TinyMCE_MediaPlugin._createImgFromEmbed(nl[i], d, 'mceItemFlash');
+							break;
+
+						case 'application/x-director':
+							TinyMCE_MediaPlugin._createImgFromEmbed(nl[i], d, 'mceItemShockWave');
+							break;
+
+						case 'application/x-mplayer2':
+							TinyMCE_MediaPlugin._createImgFromEmbed(nl[i], d, 'mceItemWindowsMedia');
+							break;
+
+						case 'video/quicktime':
+							TinyMCE_MediaPlugin._createImgFromEmbed(nl[i], d, 'mceItemQuickTime');
+							break;
+
+						case 'audio/x-pn-realaudio-plugin':
+							TinyMCE_MediaPlugin._createImgFromEmbed(nl[i], d, 'mceItemRealMedia');
+							break;
+					}
+				}
+				break;
+
+			case "get_from_editor":
+				var startPos = -1, endPos, attribs, chunkBefore, chunkAfter, embedHTML, at, pl, cb, mt, ex;
+
+				while ((startPos = content.indexOf('<img', startPos+1)) != -1) {
+					endPos = content.indexOf('/>', startPos);
+					attribs = TinyMCE_MediaPlugin._parseAttributes(content.substring(startPos + 4, endPos));
+
+					// Is not flash, skip it
+					if (!/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(attribs['class']))
+						continue;
+
+					endPos += 2;
+
+					// Parse attributes
+					at = attribs['title'];
+					if (at) {
+						at = at.replace(/&(#39|apos);/g, "'");
+						at = at.replace(/&#quot;/g, '"');
+
+						try {
+							pl = eval('x={' + at + '};');
+						} catch (ex) {
+							pl = {};
+						}
+					}
+
+					// Use object/embed
+					if (!tinyMCE.getParam('media_use_script', false)) {
+						switch (attribs['class']) {
+							case 'mceItemFlash':
+								ci = 'd27cdb6e-ae6d-11cf-96b8-444553540000';
+								cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';
+								mt = 'application/x-shockwave-flash';
+								break;
+
+							case 'mceItemShockWave':
+								ci = '166B1BCA-3F9C-11CF-8075-444553540000';
+								cb = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';
+								mt = 'application/x-director';
+								break;
+
+							case 'mceItemWindowsMedia':
+								ci = tinyMCE.getParam('media_wmp6_compatible') ? '05589FA1-C356-11CE-BF01-00AA0055595A' : '6BF52A52-394A-11D3-B153-00C04F79FAA6';
+								cb = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
+								mt = 'application/x-mplayer2';
+								break;
+
+							case 'mceItemQuickTime':
+								ci = '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';
+								cb = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';
+								mt = 'video/quicktime';
+								break;
+
+							case 'mceItemRealMedia':
+								ci = 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';
+								cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';
+								mt = 'audio/x-pn-realaudio-plugin';
+								break;
+						}
+
+						// Force absolute URL
+						if (!tinyMCE.getParam("relative_urls"))
+							pl.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], pl.src);
+
+						embedHTML = TinyMCE_MediaPlugin._getEmbed(ci, cb, mt, pl, attribs);
+					} else {
+						// Use script version
+						switch (attribs['class']) {
+							case 'mceItemFlash':
+								s = 'writeFlash';
+								break;
+
+							case 'mceItemShockWave':
+								s = 'writeShockWave';
+								break;
+
+							case 'mceItemWindowsMedia':
+								s = 'writeWindowsMedia';
+								break;
+
+							case 'mceItemQuickTime':
+								s = 'writeQuickTime';
+								break;
+
+							case 'mceItemRealMedia':
+								s = 'writeRealMedia';
+								break;
+						}
+
+						if (attribs.width)
+							at = at.replace(/width:[^0-9]?[0-9]+%?[^0-9]?/g, "width:'" + attribs.width + "'");
+
+						if (attribs.height)
+							at = at.replace(/height:[^0-9]?[0-9]+%?[^0-9]?/g, "height:'" + attribs.height + "'");
+
+						// Force absolute URL
+						if (!tinyMCE.getParam("relative_urls")) {
+							pl.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], pl.src);
+							at = at.replace(new RegExp("src:'[^']*'", "g"), "src:'" + pl.src + "'");
+						}
+
+						embedHTML = '<script type="text/javascript">' + s + '({' + at + '});</script>';
+					}
+
+					// Insert embed/object chunk
+					chunkBefore = content.substring(0, startPos);
+					chunkAfter = content.substring(endPos);
+					content = chunkBefore + embedHTML + chunkAfter;
+				}
+				break;
+		}
+
+		return content;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		if (node == null)
+			return;
+
+		do {
+			if (node.nodeName == "IMG" && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(node, 'class'))) {
+				tinyMCE.switchClass(editor_id + '_media', 'mceButtonSelected');
+				return true;
+			}
+		} while ((node = node.parentNode));
+
+		tinyMCE.switchClass(editor_id + '_media', 'mceButtonNormal');
+
+		return true;
+	},
+
+	_createImgFromEmbed : function(n, d, cl) {
+		var ne, at, i, ti = '', an;
+
+		ne = d.createElement('img');
+		ne.src = tinyMCE.getParam("theme_href") + '/images/spacer.gif';
+		ne.width = tinyMCE.getAttrib(n, 'width');
+		ne.height = tinyMCE.getAttrib(n, 'height');
+		ne.className = cl;
+
+		at = n.attributes;
+		for (i=0; i<at.length; i++) {
+			if (at[i].specified && at[i].nodeValue) {
+				an = at[i].nodeName.toLowerCase();
+
+				if (an == 'src')
+					continue;
+
+				if (an == 'mce_src')
+					an = 'src';
+
+				if (an.indexOf('mce_') == -1 && !new RegExp('^(class|type)$').test(an))
+					ti += an.toLowerCase() + ':\'' + at[i].nodeValue + "',";
+			}
+		}
+
+		ti = ti.length > 0 ? ti.substring(0, ti.length - 1) : ti;
+		ne.title = ti;
+
+		n.parentNode.replaceChild(ne, n);
+	},
+
+	_createImg : function(cl, d, n) {
+		var i, nl, ti = "", an, av, al = new Array();
+
+		ne = d.createElement('img');
+		ne.src = tinyMCE.getParam("theme_href") + '/images/spacer.gif';
+		ne.width = tinyMCE.getAttrib(n, 'width');
+		ne.height = tinyMCE.getAttrib(n, 'height');
+		ne.className = cl;
+
+		al.id = tinyMCE.getAttrib(n, 'id');
+		al.name = tinyMCE.getAttrib(n, 'name');
+		al.width = tinyMCE.getAttrib(n, 'width');
+		al.height = tinyMCE.getAttrib(n, 'height');
+		al.bgcolor = tinyMCE.getAttrib(n, 'bgcolor');
+		al.align = tinyMCE.getAttrib(n, 'align');
+		al.class_name = tinyMCE.getAttrib(n, 'mce_class');
+
+		nl = n.getElementsByTagName('div');
+		for (i=0; i<nl.length; i++) {
+			av = tinyMCE.getAttrib(nl[i], 'value');
+			av = av.replace(new RegExp('\\\\', 'g'), '\\\\');
+			av = av.replace(new RegExp('"', 'g'), '\\"');
+			av = av.replace(new RegExp("'", 'g'), "\\'");
+			an = tinyMCE.getAttrib(nl[i], 'name');
+			al[an] = av;
+		}
+
+		if (al.movie) {
+			al.src = al.movie;
+			al.movie = null;
+		}
+
+		for (an in al) {
+			if (al[an] != null && typeof(al[an]) != "function" && al[an] != '')
+				ti += an.toLowerCase() + ':\'' + al[an] + "',";
+		}
+
+		ti = ti.length > 0 ? ti.substring(0, ti.length - 1) : ti;
+		ne.title = ti;
+
+		return ne;
+	},
+
+	_getEmbed : function(cls, cb, mt, p, at) {
+		var h = '', n;
+
+		p.width = at.width ? at.width : p.width;
+		p.height = at.height ? at.height : p.height;
+
+		h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
+		h += typeof(p.id) != "undefined" ? ' id="' + p.id + '"' : '';
+		h += typeof(p.name) != "undefined" ? ' name="' + p.name + '"' : '';
+		h += typeof(p.width) != "undefined" ? ' width="' + p.width + '"' : '';
+		h += typeof(p.height) != "undefined" ? ' height="' + p.height + '"' : '';
+		h += typeof(p.align) != "undefined" ? ' align="' + p.align + '"' : '';
+		h += '>';
+
+		for (n in p) {
+			if (typeof(p[n]) != "undefined" && typeof(p[n]) != "function") {
+				h += '<param name="' + n + '" value="' + p[n] + '" />';
+
+				// Add extra url parameter if it's an absolute URL on WMP
+				if (n == 'src' && p[n].indexOf('://') != -1 && mt == 'application/x-mplayer2')
+					h += '<param name="url" value="' + p[n] + '" />';
+			}
+		}
+
+		h += '<embed type="' + mt + '"';
+
+		for (n in p) {
+			if (typeof(p[n]) == "function")
+				continue;
+
+			// Skip url parameter for embed tag on WMP
+			if (!(n == 'url' && mt == 'application/x-mplayer2'))
+				h += ' ' + n + '="' + p[n] + '"';
+		}
+
+		h += '></embed></object>';
+
+		return h;
+	},
+
+	_parseAttributes : function(attribute_string) {
+		var attributeName = "", endChr = '"';
+		var attributeValue = "";
+		var withInName;
+		var withInValue;
+		var attributes = new Array();
+		var whiteSpaceRegExp = new RegExp('^[ \n\r\t]+', 'g');
+
+		if (attribute_string == null || attribute_string.length < 2)
+			return null;
+
+		withInName = withInValue = false;
+
+		for (var i=0; i<attribute_string.length; i++) {
+			var chr = attribute_string.charAt(i);
+
+			if ((chr == '"' || chr == "'") && !withInValue) {
+				withInValue = true;
+				endChr = chr;
+			} else if (chr == endChr && withInValue) {
+				withInValue = false;
+
+				var pos = attributeName.lastIndexOf(' ');
+				if (pos != -1)
+					attributeName = attributeName.substring(pos+1);
+
+				attributes[attributeName.toLowerCase()] = attributeValue.substring(1);
+
+				attributeName = "";
+				attributeValue = "";
+			} else if (!whiteSpaceRegExp.test(chr) && !withInName && !withInValue)
+				withInName = true;
+
+			if (chr == '=' && withInName)
+				withInName = false;
+
+			if (withInName)
+				attributeName += chr;
+
+			if (withInValue)
+				attributeValue += chr;
+		}
+
+		return attributes;
+	}
+};
+
+tinyMCE.addPlugin("media", TinyMCE_MediaPlugin);
diff --git a/tinyMCE/plugins/media/images/flash.gif b/tinyMCE/plugins/media/images/flash.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cb192e6ceda8d19ad8e7d08dd1cfde0aa72ead2a
Binary files /dev/null and b/tinyMCE/plugins/media/images/flash.gif differ
diff --git a/tinyMCE/plugins/media/images/media.gif b/tinyMCE/plugins/media/images/media.gif
new file mode 100644
index 0000000000000000000000000000000000000000..856df523715f17f0624e3fe96a2fd2f57078adac
Binary files /dev/null and b/tinyMCE/plugins/media/images/media.gif differ
diff --git a/tinyMCE/plugins/media/images/quicktime.gif b/tinyMCE/plugins/media/images/quicktime.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3b0499145b16138249f653a1a3f2c80230fb292c
Binary files /dev/null and b/tinyMCE/plugins/media/images/quicktime.gif differ
diff --git a/tinyMCE/plugins/media/images/realmedia.gif b/tinyMCE/plugins/media/images/realmedia.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fdfe0b9ac05869ae845fdd828eaad97cc0c69dbc
Binary files /dev/null and b/tinyMCE/plugins/media/images/realmedia.gif differ
diff --git a/tinyMCE/plugins/media/images/shockwave.gif b/tinyMCE/plugins/media/images/shockwave.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5f235dfc7363bd4957b5fe352e16a7eee9a38574
Binary files /dev/null and b/tinyMCE/plugins/media/images/shockwave.gif differ
diff --git a/tinyMCE/plugins/media/images/windowsmedia.gif b/tinyMCE/plugins/media/images/windowsmedia.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ab50f2d887a0843b116ef598e5a005e5601d18d0
Binary files /dev/null and b/tinyMCE/plugins/media/images/windowsmedia.gif differ
diff --git a/tinyMCE/plugins/media/jscripts/embed.js b/tinyMCE/plugins/media/jscripts/embed.js
new file mode 100644
index 0000000000000000000000000000000000000000..f8dc810527b43e3403bfbe1e147399a06dfdf5b5
--- /dev/null
+++ b/tinyMCE/plugins/media/jscripts/embed.js
@@ -0,0 +1,73 @@
+/**
+ * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
+ */
+
+function writeFlash(p) {
+	writeEmbed(
+		'D27CDB6E-AE6D-11cf-96B8-444553540000',
+		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+		'application/x-shockwave-flash',
+		p
+	);
+}
+
+function writeShockWave(p) {
+	writeEmbed(
+	'166B1BCA-3F9C-11CF-8075-444553540000',
+	'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
+	'application/x-director',
+		p
+	);
+}
+
+function writeQuickTime(p) {
+	writeEmbed(
+		'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
+		'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
+		'video/quicktime',
+		p
+	);
+}
+
+function writeRealMedia(p) {
+	writeEmbed(
+		'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
+		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+		'audio/x-pn-realaudio-plugin',
+		p
+	);
+}
+
+function writeWindowsMedia(p) {
+	p.url = p.src;
+	writeEmbed(
+		'6BF52A52-394A-11D3-B153-00C04F79FAA6',
+		'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
+		'application/x-mplayer2',
+		p
+	);
+}
+
+function writeEmbed(cls, cb, mt, p) {
+	var h = '', n;
+
+	h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
+	h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
+	h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
+	h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
+	h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
+	h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
+	h += '>';
+
+	for (n in p)
+		h += '<param name="' + n + '" value="' + p[n] + '">';
+
+	h += '<embed type="' + mt + '"';
+
+	for (n in p)
+		h += n + '="' + p[n] + '" ';
+
+	h += '></embed></object>';
+
+	document.write(h);
+}
diff --git a/tinyMCE/plugins/media/jscripts/media.js b/tinyMCE/plugins/media/jscripts/media.js
new file mode 100644
index 0000000000000000000000000000000000000000..691a8bdbd1ad445ba6aa0c489ae4d6dbbb9ba069
--- /dev/null
+++ b/tinyMCE/plugins/media/jscripts/media.js
@@ -0,0 +1,590 @@
+var oldWidth, oldHeight;
+var url = tinyMCE.getParam("media_external_list_url");
+if (url != null) {
+	// Fix relative
+	if (url.charAt(0) != '/' && url.indexOf('://') == -1)
+		url = tinyMCE.documentBasePath + "/" + url;
+
+	document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+function init() {
+	var pl = "", f, val;
+	var type = "flash", fe, i;
+
+	tinyMCEPopup.resizeToInnerSize();
+	f = document.forms[0]
+
+	fe = tinyMCE.selectedInstance.getFocusElement();
+	if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(fe, 'class'))) {
+		pl = "x={" + fe.title + "};";
+
+		switch (tinyMCE.getAttrib(fe, 'class')) {
+			case 'mceItemFlash':
+				type = 'flash';
+				break;
+
+			case 'mceItemShockWave':
+				type = 'shockwave';
+				break;
+
+			case 'mceItemWindowsMedia':
+				type = 'wmp';
+				break;
+
+			case 'mceItemQuickTime':
+				type = 'qt';
+				break;
+
+			case 'mceItemRealMedia':
+				type = 'rmp';
+				break;
+		}
+
+		document.forms[0].insert.value = tinyMCE.getLang('lang_update', 'Insert', true); 
+	}
+
+	document.getElementById('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');
+	document.getElementById('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','qt_qtsrc','media','media');
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+
+	var html = getMediaListHTML('filebrowser','src','media','media');
+	if (html == "")
+		document.getElementById("linklistrow").style.display = 'none';
+	else
+		document.getElementById("linklistcontainer").innerHTML = html;
+
+	// Resize some elements
+	if (isVisible('filebrowsercontainer'))
+		document.getElementById('src').style.width = '230px';
+
+	// Setup form
+	if (pl != "") {
+		pl = eval(pl);
+
+		switch (type) {
+			case "flash":
+				setBool(pl, 'flash', 'play');
+				setBool(pl, 'flash', 'loop');
+				setBool(pl, 'flash', 'menu');
+				setBool(pl, 'flash', 'swliveconnect');
+				setStr(pl, 'flash', 'quality');
+				setStr(pl, 'flash', 'scale');
+				setStr(pl, 'flash', 'salign');
+				setStr(pl, 'flash', 'wmode');
+				setStr(pl, 'flash', 'base');
+				setStr(pl, 'flash', 'flashvars');
+			break;
+
+			case "qt":
+				setBool(pl, 'qt', 'loop');
+				setBool(pl, 'qt', 'autoplay');
+				setBool(pl, 'qt', 'cache');
+				setBool(pl, 'qt', 'controller');
+				setBool(pl, 'qt', 'correction');
+				setBool(pl, 'qt', 'enablejavascript');
+				setBool(pl, 'qt', 'kioskmode');
+				setBool(pl, 'qt', 'autohref');
+				setBool(pl, 'qt', 'playeveryframe');
+				setBool(pl, 'qt', 'tarsetcache');
+				setStr(pl, 'qt', 'scale');
+				setStr(pl, 'qt', 'starttime');
+				setStr(pl, 'qt', 'endtime');
+				setStr(pl, 'qt', 'tarset');
+				setStr(pl, 'qt', 'qtsrcchokespeed');
+				setStr(pl, 'qt', 'volume');
+				setStr(pl, 'qt', 'qtsrc');
+			break;
+
+			case "shockwave":
+				setBool(pl, 'shockwave', 'sound');
+				setBool(pl, 'shockwave', 'progress');
+				setBool(pl, 'shockwave', 'autostart');
+				setBool(pl, 'shockwave', 'swliveconnect');
+				setStr(pl, 'shockwave', 'swvolume');
+				setStr(pl, 'shockwave', 'swstretchstyle');
+				setStr(pl, 'shockwave', 'swstretchhalign');
+				setStr(pl, 'shockwave', 'swstretchvalign');
+			break;
+
+			case "wmp":
+				setBool(pl, 'wmp', 'autostart');
+				setBool(pl, 'wmp', 'enabled');
+				setBool(pl, 'wmp', 'enablecontextmenu');
+				setBool(pl, 'wmp', 'fullscreen');
+				setBool(pl, 'wmp', 'invokeurls');
+				setBool(pl, 'wmp', 'mute');
+				setBool(pl, 'wmp', 'stretchtofit');
+				setBool(pl, 'wmp', 'windowlessvideo');
+				setStr(pl, 'wmp', 'balance');
+				setStr(pl, 'wmp', 'baseurl');
+				setStr(pl, 'wmp', 'captioningid');
+				setStr(pl, 'wmp', 'currentmarker');
+				setStr(pl, 'wmp', 'currentposition');
+				setStr(pl, 'wmp', 'defaultframe');
+				setStr(pl, 'wmp', 'playcount');
+				setStr(pl, 'wmp', 'rate');
+				setStr(pl, 'wmp', 'uimode');
+				setStr(pl, 'wmp', 'volume');
+			break;
+
+			case "rmp":
+				setBool(pl, 'rmp', 'autostart');
+				setBool(pl, 'rmp', 'loop');
+				setBool(pl, 'rmp', 'autogotourl');
+				setBool(pl, 'rmp', 'center');
+				setBool(pl, 'rmp', 'imagestatus');
+				setBool(pl, 'rmp', 'maintainaspect');
+				setBool(pl, 'rmp', 'nojava');
+				setBool(pl, 'rmp', 'prefetch');
+				setBool(pl, 'rmp', 'shuffle');
+				setStr(pl, 'rmp', 'console');
+				setStr(pl, 'rmp', 'controls');
+				setStr(pl, 'rmp', 'numloop');
+				setStr(pl, 'rmp', 'scriptcallbacks');
+			break;
+		}
+
+		setStr(pl, null, 'src');
+		setStr(pl, null, 'id');
+		setStr(pl, null, 'name');
+		setStr(pl, null, 'vspace');
+		setStr(pl, null, 'hspace');
+		setStr(pl, null, 'bgcolor');
+		setStr(pl, null, 'align');
+		setStr(pl, null, 'width');
+		setStr(pl, null, 'height');
+
+		if ((val = tinyMCE.getAttrib(fe, "width")) != "")
+			pl.width = f.width.value = val;
+
+		if ((val = tinyMCE.getAttrib(fe, "height")) != "")
+			pl.height = f.height.value = val;
+
+		oldWidth = pl.width ? parseInt(pl.width) : 0;
+		oldHeight = pl.height ? parseInt(pl.height) : 0;
+	} else
+		oldWidth = oldHeight = 0;
+
+	selectByValue(f, 'media_type', type);
+	changedType(type);
+	updateColor('bgcolor_pick', 'bgcolor');
+
+	TinyMCE_EditableSelects.init();
+	generatePreview();
+}
+
+function insertMedia() {
+	var fe, f = document.forms[0], h;
+
+	if (!AutoValidator.validate(f)) {
+		alert(tinyMCE.getLang('lang_invalid_data'));
+		return false;
+	}
+
+	f.width.value = f.width.value == "" ? 100 : f.width.value;
+	f.height.value = f.height.value == "" ? 100 : f.height.value;
+
+	fe = tinyMCE.selectedInstance.getFocusElement();
+	if (fe != null && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(fe, 'class'))) {
+		switch (f.media_type.options[f.media_type.selectedIndex].value) {
+			case "flash":
+				fe.className = "mceItemFlash";
+				break;
+
+			case "shockwave":
+				fe.className = "mceItemShockWave";
+				break;
+
+			case "qt":
+				fe.className = "mceItemQuickTime";
+				break;
+
+			case "wmp":
+				fe.className = "mceItemWindowsMedia";
+				break;
+
+			case "rmp":
+				fe.className = "mceItemRealMedia";
+				break;
+		}
+
+		if (fe.width != f.width.value || fe.height != f.height.height)
+			tinyMCE.selectedInstance.repaint();
+
+		fe.title = serializeParameters();
+		fe.width = f.width.value;
+		fe.height = f.height.value;
+		fe.style.width = f.width.value + (f.width.value.indexOf('%') == -1 ? 'px' : '');
+		fe.style.height = f.height.value + (f.height.value.indexOf('%') == -1 ? 'px' : '');
+		fe.align = f.align.options[f.align.selectedIndex].value;
+	} else {
+		h = '<img src="' + tinyMCE.getParam("theme_href") + '/images/spacer.gif"' ;
+
+		switch (f.media_type.options[f.media_type.selectedIndex].value) {
+			case "flash":
+				h += ' class="mceItemFlash"';
+				break;
+
+			case "shockwave":
+				h += ' class="mceItemShockWave"';
+				break;
+
+			case "qt":
+				h += ' class="mceItemQuickTime"';
+				break;
+
+			case "wmp":
+				h += ' class="mceItemWindowsMedia"';
+				break;
+
+			case "rmp":
+				h += ' class="mceItemRealMedia"';
+				break;
+		}
+
+		h += ' title="' + serializeParameters() + '"';
+		h += ' width="' + f.width.value + '"';
+		h += ' height="' + f.height.value + '"';
+		h += ' align="' + f.align.options[f.align.selectedIndex].value + '"';
+
+		h += ' />';
+
+		tinyMCE.selectedInstance.execCommand('mceInsertContent', false, h);
+	}
+
+	tinyMCEPopup.close();
+}
+
+function getMediaListHTML() {
+	if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {
+		var html = "";
+
+		html += '<select id="linklist" name="linklist" style="width: 250px" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.src.value=this.options[this.selectedIndex].value;">';
+		html += '<option value="">---</option>';
+
+		for (var i=0; i<tinyMCEMediaList.length; i++)
+			html += '<option value="' + tinyMCEMediaList[i][1] + '">' + tinyMCEMediaList[i][0] + '</option>';
+
+		html += '</select>';
+
+		return html;
+	}
+
+	return "";
+}
+
+function getType(v) {
+	var fo, i, c, el, x, f = document.forms[0];
+
+	fo = tinyMCE.getParam("media_types", "flash=swf;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';');
+
+	// YouTube
+	if (v.indexOf('http://www.youtube.com/watch?v=') == 0) {
+		f.width.value = '425';
+		f.height.value = '350';
+		f.src.value = 'http://www.youtube.com/v/' + v.substring('http://www.youtube.com/watch?v='.length);
+		return 'flash';
+	}
+
+	// Google video
+	if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) {
+		f.width.value = '425';
+		f.height.value = '326';
+		f.src.value = 'http://video.google.com/googleplayer.swf?docId=' + v.substring('http://video.google.com/videoplay?docid='.length) + '&hl=en';
+		return 'flash';
+	}
+
+	for (i=0; i<fo.length; i++) {
+		c = fo[i].split('=');
+
+		el = c[1].split(',');
+		for (x=0; x<el.length; x++)
+		if (v.indexOf('.' + el[x]) != -1)
+			return c[0];
+	}
+
+	return null;
+}
+
+function switchType(v) {
+	var t = getType(v), d = document, f = d.forms[0];
+
+	if (!t)
+		return;
+
+	selectByValue(d.forms[0], 'media_type', t);
+	changedType(t);
+
+	// Update qtsrc also
+	if (t == 'qt' && f.src.value.toLowerCase().indexOf('rtsp://') != -1) {
+		alert(tinyMCE.getLang("lang_media_qt_stream_warn"));
+
+		if (f.qt_qtsrc.value == '')
+			f.qt_qtsrc.value = f.src.value;
+	}
+}
+
+function changedType(t) {
+	var d = document;
+
+	d.getElementById('flash_options').style.display = 'none';
+	d.getElementById('qt_options').style.display = 'none';
+	d.getElementById('shockwave_options').style.display = 'none';
+	d.getElementById('wmp_options').style.display = 'none';
+	d.getElementById('rmp_options').style.display = 'none';
+	d.getElementById(t + '_options').style.display = 'block';
+}
+
+function serializeParameters() {
+	var d = document, f = d.forms[0], s = '';
+
+	switch (f.media_type.options[f.media_type.selectedIndex].value) {
+		case "flash":
+			s += getBool('flash', 'play', true);
+			s += getBool('flash', 'loop', true);
+			s += getBool('flash', 'menu', true);
+			s += getBool('flash', 'swliveconnect', false);
+			s += getStr('flash', 'quality');
+			s += getStr('flash', 'scale');
+			s += getStr('flash', 'salign');
+			s += getStr('flash', 'wmode');
+			s += getStr('flash', 'base');
+			s += getStr('flash', 'flashvars');
+		break;
+
+		case "qt":
+			s += getBool('qt', 'loop', false);
+			s += getBool('qt', 'autoplay', true);
+			s += getBool('qt', 'cache', false);
+			s += getBool('qt', 'controller', true);
+			s += getBool('qt', 'correction', false, 'none', 'full');
+			s += getBool('qt', 'enablejavascript', false);
+			s += getBool('qt', 'kioskmode', false);
+			s += getBool('qt', 'autohref', false);
+			s += getBool('qt', 'playeveryframe', false);
+			s += getBool('qt', 'targetcache', false);
+			s += getStr('qt', 'scale');
+			s += getStr('qt', 'starttime');
+			s += getStr('qt', 'endtime');
+			s += getStr('qt', 'target');
+			s += getStr('qt', 'qtsrcchokespeed');
+			s += getStr('qt', 'volume');
+			s += getStr('qt', 'qtsrc');
+		break;
+
+		case "shockwave":
+			s += getBool('shockwave', 'sound');
+			s += getBool('shockwave', 'progress');
+			s += getBool('shockwave', 'autostart');
+			s += getBool('shockwave', 'swliveconnect');
+			s += getStr('shockwave', 'swvolume');
+			s += getStr('shockwave', 'swstretchstyle');
+			s += getStr('shockwave', 'swstretchhalign');
+			s += getStr('shockwave', 'swstretchvalign');
+		break;
+
+		case "wmp":
+			s += getBool('wmp', 'autostart', true);
+			s += getBool('wmp', 'enabled', false);
+			s += getBool('wmp', 'enablecontextmenu', true);
+			s += getBool('wmp', 'fullscreen', false);
+			s += getBool('wmp', 'invokeurls', true);
+			s += getBool('wmp', 'mute', false);
+			s += getBool('wmp', 'stretchtofit', false);
+			s += getBool('wmp', 'windowlessvideo', false);
+			s += getStr('wmp', 'balance');
+			s += getStr('wmp', 'baseurl');
+			s += getStr('wmp', 'captioningid');
+			s += getStr('wmp', 'currentmarker');
+			s += getStr('wmp', 'currentposition');
+			s += getStr('wmp', 'defaultframe');
+			s += getStr('wmp', 'playcount');
+			s += getStr('wmp', 'rate');
+			s += getStr('wmp', 'uimode');
+			s += getStr('wmp', 'volume');
+		break;
+
+		case "rmp":
+			s += getBool('rmp', 'autostart', false);
+			s += getBool('rmp', 'loop', false);
+			s += getBool('rmp', 'autogotourl', true);
+			s += getBool('rmp', 'center', false);
+			s += getBool('rmp', 'imagestatus', true);
+			s += getBool('rmp', 'maintainaspect', false);
+			s += getBool('rmp', 'nojava', false);
+			s += getBool('rmp', 'prefetch', false);
+			s += getBool('rmp', 'shuffle', false);
+			s += getStr('rmp', 'console');
+			s += getStr('rmp', 'controls');
+			s += getStr('rmp', 'numloop');
+			s += getStr('rmp', 'scriptcallbacks');
+		break;
+	}
+
+	s += getStr(null, 'id');
+	s += getStr(null, 'name');
+	s += getStr(null, 'src');
+	s += getStr(null, 'align');
+	s += getStr(null, 'bgcolor');
+	s += getInt(null, 'vspace');
+	s += getInt(null, 'hspace');
+	s += getStr(null, 'width');
+	s += getStr(null, 'height');
+
+	s = s.length > 0 ? s.substring(0, s.length - 1) : s;
+
+	return s;
+}
+
+function setBool(pl, p, n) {
+	if (typeof(pl[n]) == "undefined")
+		return;
+
+	document.forms[0].elements[p + "_" + n].checked = pl[n];
+}
+
+function setStr(pl, p, n) {
+	var f = document.forms[0], e = f.elements[(p != null ? p + "_" : '') + n];
+
+	if (typeof(pl[n]) == "undefined")
+		return;
+
+	if (e.type == "text")
+		e.value = pl[n];
+	else
+		selectByValue(f, (p != null ? p + "_" : '') + n, pl[n]);
+}
+
+function getBool(p, n, d, tv, fv) {
+	var v = document.forms[0].elements[p + "_" + n].checked;
+
+	tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'";
+	fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'";
+
+	return (v == d) ? '' : n + (v ? ':' + tv + ',' : ':' + fv + ',');
+}
+
+function getStr(p, n, d) {
+	var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];
+	var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;
+
+	return ((n == d || v == '') ? '' : n + ":'" + jsEncode(v) + "',");
+}
+
+function getInt(p, n, d) {
+	var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];
+	var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;
+
+	return ((n == d || v == '') ? '' : n + ":" + v.replace(/[^0-9]+/g, '') + ",");
+}
+
+function jsEncode(s) {
+	s = s.replace(new RegExp('\\\\', 'g'), '\\\\');
+	s = s.replace(new RegExp('"', 'g'), '\\"');
+	s = s.replace(new RegExp("'", 'g'), "\\'");
+
+	return s;
+}
+
+function generatePreview(c) {
+	var f = document.forms[0], p = document.getElementById('prev'), h = '', cls, pl, n, type, codebase, wp, hp, nw, nh;
+
+	p.innerHTML = '<!-- x --->';
+
+	nw = parseInt(f.width.value);
+	nh = parseInt(f.height.value);
+
+	if (f.width.value != "" && f.height.value != "") {
+		if (f.constrain.checked) {
+			if (c == 'width' && oldWidth != 0) {
+				wp = nw / oldWidth;
+				nh = Math.round(wp * nh);
+				f.height.value = nh;
+			} else if (c == 'height' && oldHeight != 0) {
+				hp = nh / oldHeight;
+				nw = Math.round(hp * nw);
+				f.width.value = nw;
+			}
+		}
+	}
+
+	if (f.width.value != "")
+		oldWidth = nw;
+
+	if (f.height.value != "")
+		oldHeight = nh;
+
+	// After constrain
+	pl = serializeParameters();
+
+	switch (f.media_type.options[f.media_type.selectedIndex].value) {
+		case "flash":
+			cls = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
+			codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';
+			type = 'application/x-shockwave-flash';
+			break;
+
+		case "shockwave":
+			cls = 'clsid:166B1BCA-3F9C-11CF-8075-444553540000';
+			codebase = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';
+			type = 'application/x-director';
+			break;
+
+		case "qt":
+			cls = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';
+			codebase = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';
+			type = 'video/quicktime';
+			break;
+
+		case "wmp":
+			cls = tinyMCE.getParam('media_wmp6_compatible') ? 'clsid:05589FA1-C356-11CE-BF01-00AA0055595A' : 'clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6';
+			codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
+			type = 'application/x-mplayer2';
+			break;
+
+		case "rmp":
+			cls = 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';
+			codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
+			type = 'audio/x-pn-realaudio-plugin';
+			break;
+	}
+
+	if (pl == '') {
+		p.innerHTML = '';
+		return;
+	}
+
+	pl = eval('x={' + pl + '};');
+
+	if (!pl.src) {
+		p.innerHTML = '';
+		return;
+	}
+
+	pl.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], pl.src);
+	pl.width = !pl.width ? 100 : pl.width;
+	pl.height = !pl.height ? 100 : pl.height;
+	pl.id = !pl.id ? 'obj' : pl.id;
+	pl.name = !pl.name ? 'eobj' : pl.name;
+	pl.align = !pl.align ? '' : pl.align;
+
+	h += '<object classid="clsid:' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';
+
+	for (n in pl) {
+		h += '<param name="' + n + '" value="' + pl[n] + '">';
+
+		// Add extra url parameter if it's an absolute URL
+		if (n == 'src' && pl[n].indexOf('://') != -1)
+			h += '<param name="url" value="' + pl[n] + '" />';
+	}
+
+	h += '<embed type="' + type + '" ';
+
+	for (n in pl)
+		h += n + '="' + pl[n] + '" ';
+
+	h += '></embed></object>';
+
+	p.innerHTML = "<!-- x --->" + h;
+}
diff --git a/tinyMCE/plugins/media/langs/ca.js b/tinyMCE/plugins/media/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ca.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/cs.js b/tinyMCE/plugins/media/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/cs.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/cy.js b/tinyMCE/plugins/media/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/cy.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/da.js b/tinyMCE/plugins/media/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..25ee618e83f8c09c0f63874cdf568a8e923c4e82
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/da.js
@@ -0,0 +1,94 @@
+// DK lang variables - Transl.:Ronny Buelund - Corr.:
+
+tinyMCE.addToLang('media',{
+title : 'Inds&aelig;t / rediger indlejret medie',
+desc : 'Inds&aelig;t / rediger indlejret medie',
+general : 'Generelt',
+advanced : 'Avanceret',
+file : 'Fil',
+list : 'Liste',
+size : 'Dimensionser',
+preview : 'Forh&aring;ndsvisning',
+constrain_proportions : 'Bibehold proportioner',
+type : 'Type',
+id : 'Id',
+name : 'Navn',
+class_name : 'Klasse',
+vspace : 'V-afstand',
+hspace : 'H-afstand',
+play : 'Autoafspil',
+loop : 'Loop',
+menu : 'Vis menu',
+quality : 'Kvalitet',
+scale : 'Skaler',
+align : 'Juster',
+salign : 'SJuster',
+wmode : 'WMode',
+bgcolor : 'Baggrund',
+base : 'Base',
+flashvars : 'Flashvariabler',
+liveconnect : 'SWLiveForbind',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Skjult',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Afspil hver frame',
+targetcache : 'M&aring;l cache',
+correction : 'Ingen korrektion',
+enablejavascript : 'Aktiver JavaScript',
+starttime : 'Start tid',
+endtime : 'Slut time',
+href : 'Href',
+qtsrcchokespeed : 'Choker hastighed',
+target : 'M&aring;l',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Aktiveret',
+fullscreen : 'Fuldsk&aelig;rm',
+invokeurls : 'Anvend URLs',
+mute : 'Mute',
+stretchtofit : 'Str&aelig;k for at passe',
+windowlessvideo : 'Vinduel&oslash;s video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Overskifts id',
+currentmarker : 'Nuv&aelig;rende marker',
+currentposition : 'Nuv&aelig;rende position',
+defaultframe : 'Standard frame',
+playcount : 'Play t&aelig;ller',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash indstillinger',
+qt_options : 'Quicktime indstillinger',
+wmp_options : 'Windows media player indstillinger',
+rmp_options : 'Real media player indstillinger',
+shockwave_options : 'Shockwave indstillinger',
+autogotourl : 'Auto g&aring; til URL',
+center : 'Center',
+imagestatus : 'Billedestatus',
+maintainaspect : 'Bibehold aspekt',
+nojava : 'Ingen java',
+prefetch : 'Prehent',
+shuffle : 'Bland',
+console : 'Konsol',
+numloop : 'Antal loop',
+controls : 'Kontroller',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'St&aelig;k stil',
+swstretchhalign : 'Str&aelig;k H-juster',
+swstretchvalign : 'Str&aelig;k V-juster',
+sound : 'Lyd',
+progress : 'Fremgang',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamede rtsp ressourcer skal tilf&oslash;jes til feltet QT Src under tabben avanceret.\nDu b&oslash;r ogs&aring; tilf&oslash;je en ikke-streamet version til feltet Src..',
+align_top : 'Top',
+align_right : 'H&oslash;jre',
+align_bottom : 'Bund',
+align_left : 'Venstre',
+align_center : 'Center',
+align_top_left : 'Venstre top',
+align_top_right : 'H&oslash;jre top',
+align_bottom_left : 'Venstre bund',
+align_bottom_right : 'H&oslash;jre bund'
+});
diff --git a/tinyMCE/plugins/media/langs/de.js b/tinyMCE/plugins/media/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c170e6d1df42305571e1a32c5ed4a0bce246b43
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/de.js
@@ -0,0 +1,85 @@
+// DE lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Eingebettete Medien einf&uuml;gen / bearbeiten',
+desc : 'Eingebettete Medien einf&uuml;gen / bearbeiten',
+general : 'Allgemein',
+advanced : 'Erweitert',
+file : 'Datei',
+list : 'Liste',
+size : 'Abmessung',
+preview : 'Vorschau',
+constrain_proportions : 'Gr&ouml;&szlig;enverh&auml;ltnis erzwingen',
+type : 'Typ',
+id : 'Id',
+name : 'Name',
+class_name : 'Klasse',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Autom. abspielen',
+loop : 'Wiederholung',
+menu : 'Men&uuml; zeigen',
+quality : 'Qualit&auml;t',
+scale : 'Skalieren',
+align : 'Ausrichten',
+salign : 'SAlign',
+wmode : 'WModus',
+bgcolor : 'Hintergrund',
+base : 'Basis',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Versteckt',
+controller : 'Controller',
+kioskmode : 'Kiosk Modus',
+playeveryframe : 'Spiele jeden Frame',
+targetcache : 'Ziel Cache',
+correction : 'Keine Korrektur',
+enablejavascript : 'JavaScript eingeschaltet',
+starttime : 'Startzeit',
+endtime : 'Endzeit',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Ziel',
+volume : 'Lautst&auml;rke',
+autostart : 'Autom. Start',
+enabled : 'Eingeschaltet',
+fullscreen : 'Vollbildschirm',
+invokeurls : 'Aufgerufende URLs',
+mute : 'Stumm',
+stretchtofit : 'Ausdehnen',
+windowlessvideo : 'Fensterloses Video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Untertitel Id',
+currentmarker : 'Jetziger Marker',
+currentposition : 'Jetzige Position',
+defaultframe : 'Standard Bild',
+playcount : 'Spiel Z&auml;hler',
+rate : 'Rate',
+uimode : 'UI Modus',
+flash_options : 'Flash Optionen',
+qt_options : 'Quicktime Optionen',
+wmp_options : 'Windows Media Player Optionen',
+rmp_options : 'Real Media Player Optionen',
+shockwave_options : 'Shockwave Optionen',
+autogotourl : 'Autom. geh zu URL',
+center : 'Zentriert',
+imagestatus : 'Bildstatus',
+maintainaspect : 'Verh&auml;ltnis beibehalten',
+nojava : 'Kein Java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Konsole',
+numloop : 'Num Loops',
+controls : 'Kontrollen',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Style ausdehnen',
+swstretchhalign : 'H-Align ausdehnen',
+swstretchvalign : 'V-Align ausdehnen',
+sound : 'Sound',
+progress : 'Fortschritt',
+qtsrc : 'QT Quelle',
+qt_stream_warn : 'Streamed rtsp Ressourcen sollten unter dem QT Src Feld im Erweitert-Tab hinzugef&uuml;gt werden.\nSie sollten auch noch eine nicht gestreamete Version im SRC Feld eintragen...'
+});
diff --git a/tinyMCE/plugins/media/langs/el.js b/tinyMCE/plugins/media/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a5b5e21714c1b90b0ea04b8d270d0b09c7d7d96
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/el.js
@@ -0,0 +1,85 @@
+// Initial translation by Michael Makrigiannakis /
+
+tinyMCE.addToLang('media',{
+title : 'ÅéóáãùãÞ/Äéüñèùóç åíóùìáôùìÝíïõ media',
+desc : 'ÅéóáãùãÞ/Äéüñèùóç åíóùìáôùìÝíïõ media',
+general : 'ÃåíéêÜ',
+advanced : 'Ãéá ðñï÷ùñçìÝíïõò',
+file : 'Áñ÷åßï',
+list : 'Ëßóôá',
+size : 'ÄéáóôÜóåéò',
+preview : 'Ðñïåðéóêüðçóç',
+constrain_proportions : 'Ðåñéïñéóìüò áíáëïãßáò',
+type : 'Ôýðïò',
+id : 'Êùä.',
+name : '¼íïìá',
+class_name : 'ÊëÜóóç',
+vspace : 'ÊÜèåôïò ÷þñïò',
+hspace : 'Ïñéæüíôéïò ÷þñïò',
+play : 'åêêßíçóç',
+loop : 'ÁôÝñìïí',
+menu : 'Ìenu åìöÜíéóçò',
+quality : 'Ðïéüôçôá',
+scale : 'Êëßìáêá',
+align : 'Óôïß÷éóç',
+salign : 'S-Óôïé÷éóç',
+wmode : 'WMode',
+bgcolor : 'ÐáñáóêÞíéï',
+base : 'Base',
+flashvars : 'Flash ìåôáâëçôÝò',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Êñõöü',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play êÜèå frame',
+targetcache : 'Cache óôü÷ïõ',
+correction : '×ùñßò äéüñèùóç',
+enablejavascript : 'Åíåñãïðïßçóç JavaScript',
+starttime : '×ñüíïò Ýíáñîçò',
+endtime : '×ñüíïò ëÞîçò',
+href : 'Href',
+qtsrcchokespeed : 'Ìåßùóç ôá÷ýôçôáò',
+target : 'Óôü÷ïò',
+volume : '¸íôáóç',
+autostart : 'Áõôüìáôç åêêßíçóç',
+enabled : 'Åíåñãü',
+fullscreen : 'ÐëÞñçò ïèüíç',
+invokeurls : 'Óõìðåñßëçøç URLs',
+mute : 'Óßãáóç',
+stretchtofit : 'ÁëëáãÞ ìåãÝèïõò þóôå íá ôáéñéÜæåé',
+windowlessvideo : 'Windowless video',
+balance : 'Éóïññïðßá',
+baseurl : 'Base URL',
+captioningid : 'Captioning êùä.',
+currentmarker : 'ÔñÝ÷ùí marker',
+currentposition : 'ÔñÝ÷ïõóá èÝóç',
+defaultframe : 'ÐñïåðéëåãìÝíï frame',
+playcount : 'Play count',
+rate : 'Ñõèìüò',
+uimode : 'UI Mode',
+flash_options : 'ÐáñÜìåôñïé Flash',
+qt_options : 'ÐáñÜìåôñïé Quicktime',
+wmp_options : 'ÐáñÜìåôñïé Windows media player',
+rmp_options : 'ÐáñÜìåôñïé Real media player',
+shockwave_options : 'ÐáñÜìåôñïé Shockwave',
+autogotourl : 'Áõôüìáôï goto URL',
+center : 'ÊÝíôñï',
+imagestatus : 'ÊáôÜóôáóç åéêüíáò',
+maintainaspect : 'ÓõíôÞñçóç',
+nojava : '¼÷é java',
+prefetch : 'Ðñïöüñôùóç',
+shuffle : 'Ôõ÷áßá',
+console : 'Êïíóüëá',
+numloop : 'Áñéèìüò loops',
+controls : '¸ëåã÷ïé',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Óôõë ðáñáìüñöùóçò',
+swstretchhalign : 'Ïñéæüíôéá ðáñáìüñöùóç',
+swstretchvalign : 'ÊÜèåôç ðáñáìüñöùóç',
+sound : '¹÷ïò',
+progress : 'Ðñüïäïò',
+qtsrc : 'QT Src',
+qt_stream_warn : 'ÐçãÝò  rstp sreaming ðñÝðåé íá ðñïóôßèåíôáé óôï ðåäßï QT Src óôï tab ãéá ðñï÷ùñçìÝíïõò.\nÐñÝðåé åðßóçå íá ðñïóèÝóåôå ìéá ìç-steamed åêäï÷Þ óôï ðåäßï Src..'
+});
diff --git a/tinyMCE/plugins/media/langs/en.js b/tinyMCE/plugins/media/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..ced1967254408506da9bf38458736ee56e861df5
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/en.js
@@ -0,0 +1,94 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File/URL',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..',
+align_top : 'Top',
+align_right : 'Right',
+align_bottom : 'Bottom',
+align_left : 'Left',
+align_center : 'Center',
+align_top_left : 'Top left',
+align_top_right : 'Top right',
+align_bottom_left : 'Bottom left',
+align_bottom_right : 'Bottom right'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/media/langs/es.js b/tinyMCE/plugins/media/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/es.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/fa.js b/tinyMCE/plugins/media/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/fa.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/fi.js b/tinyMCE/plugins/media/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..5c11560e824dee6a05806dd1e0334cd4dd3236fb
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/fi.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Lis&auml;&auml; / muokkaa upotettua mediaa',
+desc : 'Lis&auml;&auml; / muokkaa upotettua mediaa',
+general : 'Yleiset',
+advanced : 'Edistyneet',
+file : 'Tiedosto',
+list : 'Lista',
+size : 'Koko',
+preview : 'Esikatselu',
+constrain_proportions : 'S&auml;ilyt&auml; kuvasuhde',
+type : 'Tyyppi',
+id : 'Id',
+name : 'Nimi',
+class_name : 'Luokka',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Toista automaattisesti',
+loop : 'Toista loputtomasti',
+menu : 'Näytä valikko',
+quality : 'Laatu',
+scale : 'Skaalaus',
+align : 'Asettelu',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Taustaväri',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Välimuisti',
+hidden : 'Piilotettu',
+controller : 'Controller',
+kioskmode : 'Kioski moodi',
+playeveryframe : 'Toista jokainen kuva',
+targetcache : 'Kohdevälimuisti',
+correction : 'Ei korjausta',
+enablejavascript : 'Salli JavaScript',
+starttime : 'Aloitusaika',
+endtime : 'Lopetusaika',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Kohde',
+volume : 'Äänen voimakkuus',
+autostart : 'Toista automaattisesti',
+enabled : 'Aktivoitu',
+fullscreen : 'Kokoruutu',
+invokeurls : 'Invoke URLs',
+mute : 'Mykistä',
+stretchtofit : 'Venytä sopivaksi',
+windowlessvideo : 'Ikkunaton video',
+balance : 'Balanssi',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Toiston lukumäärä',
+rate : 'Nopeus',
+uimode : 'UI Moodi',
+flash_options : 'Flash asetukset',
+qt_options : 'Quicktime asetukset',
+wmp_options : 'Windows media player asetukset',
+rmp_options : 'Real media player asetukset',
+shockwave_options : 'Shockwave asetukset',
+autogotourl : 'Auto goto URL',
+center : 'Keskitetty',
+imagestatus : 'Kuvan tila',
+maintainaspect : 'Säilytä kuvasuhde',
+nojava : 'Ei Javaa',
+prefetch : 'Prefetch',
+shuffle : 'Sekoitettu järjestys',
+console : 'Console',
+numloop : 'Toiston lukumäärä',
+controls : 'Kontrollit',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Ääni',
+progress : 'Edistyminen',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/fr.js b/tinyMCE/plugins/media/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..166cb09049567a61d8fce0fc4bf8b2b56a177d6f
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/fr.js
@@ -0,0 +1,95 @@
+// FR lang variables
+// Modified by shadow walker, last updated 2007-03-16, based on the work of Motte
+
+tinyMCE.addToLang('media',{
+title : 'Ins&eacute;rer / Editer des medias',
+desc : 'Ins&eacute;rer / Editer des medias',
+general : 'G&eacute;n&eacute;ral',
+advanced : 'Avancement',
+file : 'Fichier',
+list : 'Liste',
+size : 'Taille',
+preview : 'Pr&eacute;visualisation',
+constrain_proportions : 'Garder les proportions',
+type : 'Type',
+id : 'Id',
+name : 'Nom',
+class_name : 'Classe',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Lecture automatique',
+loop : 'R&eacute;p&eacute;ter',
+menu : 'Menu',
+quality : 'Qualit&eacute;',
+scale : 'Balance',
+align : 'Aligner',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Arri�e plan',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Cache',
+controller : 'Controleur',
+kioskmode : 'Mode Kioske',
+playeveryframe : 'Jouer chaque partie',
+targetcache : 'Cible cach&eacute;e',
+correction : 'Pas de corrections',
+enablejavascript : 'Permettre le JavaScript',
+starttime : 'D&eacute;but',
+endtime : 'Fin',
+href : 'Href',
+qtsrcchokespeed : 'Vitesse de d&eacute;roulement',
+target : 'Cible',
+volume : 'Volume',
+autostart : 'D&eacute;marrer automatiquement',
+enabled : 'Autoris&eacute;',
+fullscreen : 'Plein &eacute;cran',
+invokeurls : 'Invoke URLs',
+mute : 'Muet',
+stretchtofit : 'Redimensionner',
+windowlessvideo : 'Vid&eacute;o sans fen�re',
+balance : 'Balance',
+baseurl : 'URL de base',
+captioningid : 'Captioning id',
+currentmarker : 'Markeur actuel',
+currentposition : 'Position actuelle',
+defaultframe : 'Par d&eacute;faut',
+playcount : 'Nombre delecture',
+rate : 'Taux',
+uimode : 'Mode UI',
+flash_options : 'Options flash',
+qt_options : 'Options quicktime',
+wmp_options : 'Options windows media player',
+rmp_options : 'Options real media player',
+shockwave_options : 'Options shockwave',
+autogotourl : 'Auto goto URL',
+center : 'Centre',
+imagestatus : 'Statut de l\'image',
+maintainaspect : 'Maintenir l\'aspect',
+nojava : 'Pas de java',
+prefetch : 'Pr&eacute;-chargement',
+shuffle : 'Al&eacute;atoire',
+console : 'Console',
+numloop : 'Nombre de boucles',
+controls : 'Controles',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Son',
+progress : 'Avancement',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Les flux rtsp doivent �re ajout&eacute;s au champ QT Src dans l\'onglet avanc&eacute;.\nVous devriez ajouter une version sans flux au champ Src..',
+align_top : 'Haut',
+align_right : 'Droite',
+align_bottom : 'Bas',
+align_left : 'Gauche',
+align_center : 'Centrer',
+align_top_left : 'Haut gauche',
+align_top_right : 'Haut droit',
+align_bottom_left : 'Bas gauche',
+align_bottom_right : 'Bas droite'
+});
diff --git a/tinyMCE/plugins/media/langs/fr_ca.js b/tinyMCE/plugins/media/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/fr_ca.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/he.js b/tinyMCE/plugins/media/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/he.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/hu.js b/tinyMCE/plugins/media/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/hu.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/is.js b/tinyMCE/plugins/media/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/is.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/it.js b/tinyMCE/plugins/media/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4591fabe41323b1b46d1cb996b31377f3b707d9
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/it.js
@@ -0,0 +1,100 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('media',{
+title : 'Inserisci o modifica file multimediali',
+desc : 'Inserisci o modifica file multimediali',
+general : 'Generale',
+advanced : 'Avanzate',
+file : 'File',
+list : 'Lista',
+size : 'Dimensioni',
+preview : 'Anteprima',
+constrain_proportions : 'Mantieni proporzioni',
+type : 'Tipo',
+id : 'Id',
+name : 'Nome',
+class_name : 'Classe',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Riproduzione automatica',
+loop : 'Cicla',
+menu : 'Mostra menu',
+quality : 'Qualit&agrave;',
+scale : 'Scala',
+align : 'Allineamento',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Colore di sfondo',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Nascosto',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Mostra tutti i frame',
+targetcache : 'Target cache',
+correction : 'Nessuna correzione',
+enablejavascript : 'Abilita JavaScript',
+starttime : 'Tempo iniziale',
+endtime : 'Tempo finale',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Avvio automatico',
+enabled : 'Abilitato',
+fullscreen : 'Schermo intero',
+invokeurls : 'Invoca URL',
+mute : 'Muto',
+stretchtofit : 'Riempi',
+windowlessvideo : 'Video windowless',
+balance : 'Bilanciamento',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Marker corrente',
+currentposition : 'Posizione corrente',
+defaultframe : 'Frame di default',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'Modo UI',
+flash_options : 'Opzioni Flash',
+qt_options : 'Opzioni Quicktime',
+wmp_options : 'Opzioni Windows Media Player',
+rmp_options : 'Opzioni Real Media Player',
+shockwave_options : 'Opzioni Shockwave',
+autogotourl : 'Auto goto URL',
+center : 'Centra',
+imagestatus : 'Image status',
+maintainaspect : 'Maintieni aspetto',
+nojava : 'No Java',
+prefetch : 'Prefetch',
+shuffle : 'Casuale',
+console : 'Console',
+numloop : 'Num. ripetizioni',
+controls : 'Controlli',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Suono',
+progress : 'Progresso',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Le risorse &quot;Streamed RTSP&quot; devono essere aggiunte al campo &quot;QT Src&quot; nelle funzioni avanzate.\n&Egrave; meglio aggiungere anche una versione non in streaming nel campo Src.'
+align_top : 'In Alto',
+align_right : 'A destra',
+align_bottom : 'In basso',
+align_left : 'A sinistra',
+align_center : 'Al centro',
+align_top_left : 'In alto a sinistra',
+align_top_right : 'In alto a destra',
+align_bottom_left : 'In basso a sinistra',
+align_bottom_right : 'In basso a destra'
+});
diff --git a/tinyMCE/plugins/media/langs/ja.js b/tinyMCE/plugins/media/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..c8c96dcc1e32f8592aaee4acff6b91537cee4e35
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ja.js
@@ -0,0 +1,85 @@
+// JA lang variables
+
+tinyMCE.addToLang('media',{
+title : 'マルチメディアを挿入する',
+desc : 'マルティメディアの挿入',
+general : '全般',
+advanced : '詳細',
+file : 'ファイル',
+list : 'リスト',
+size : 'サイズ',
+preview : 'プレビュー',
+constrain_proportions : 'サイズの自動設定',
+type : '種類',
+id : 'ID',
+name : '名称',
+class_name : 'クラス',
+vspace : '垂直余白',
+hspace : '水平余白',
+play : '自動的に再生',
+loop : '繰り返し再生',
+menu : 'メニューを表示する',
+quality : '画質',
+scale : 'スケール',
+align : '配置',
+salign : 'ムービーの位置',
+wmode : 'WMode',
+bgcolor : '背景色',
+base : 'ベースURL',
+flashvars : 'Flash用変数',
+liveconnect : 'SWLive接続',
+autohref : '自動ソース',
+cache : 'キャッシュを有効にする',
+hidden : '隠しパラメタ',
+controller : 'コントローラー',
+kioskmode : 'キオスクモード',
+playeveryframe : 'すべてのフレームを表示',
+targetcache : 'ターゲット・キャッシュ',
+correction : '確認をしない',
+enablejavascript : 'JavaScriptを有効にする',
+starttime : '開始位置',
+endtime : '終了位置',
+href : 'ソース',
+qtsrcchokespeed : '再生速度',
+target : 'ターゲット',
+volume : '音量',
+autostart : '自動的に開始する',
+enabled : '有効',
+fullscreen : 'フルスクリーン',
+invokeurls : '関連URL',
+mute : 'ミュート',
+stretchtofit : '画面サイズを合わせる',
+windowlessvideo : 'ウィンドウ枠を表示しない',
+balance : 'バランス',
+baseurl : 'ベース',
+captioningid : 'キャプションID',
+currentmarker : '現在地マーカー',
+currentposition : '現在地',
+defaultframe : '標準フレーム数',
+playcount : '再生回数',
+rate : '再生レート',
+uimode : 'UIモード',
+flash_options : 'Flashオプション',
+qt_options : 'Quicktimeオプション',
+wmp_options : 'Windows media playerオプション',
+rmp_options : 'Real media playerオプション',
+shockwave_options : 'Shockwaveオプション',
+autogotourl : '終了後に自動的に移動するURL',
+center : 'センタリング',
+imagestatus : 'イメージ',
+maintainaspect : 'アスペクトの調整',
+nojava : 'Javaを使用しない',
+prefetch : '事前にローディングする',
+shuffle : 'シャッフル再生',
+console : 'コンソール',
+numloop : '繰り返し回数',
+controls : 'コントロール',
+scriptcallbacks : 'Scriptコールバック',
+swstretchstyle : '縮小・拡大',
+swstretchhalign : '水平方向',
+swstretchvalign : '垂直方向',
+sound : 'サウンド',
+progress : '読み込み中...',
+qtsrc : 'Quicktimeソース',
+qt_stream_warn : 'rtspプロトコルのストリーム形式は詳細タブでQuicktimeソースを指定してください。\nストリーム形式でない場合はソースの項目に入力してください。'
+});
diff --git a/tinyMCE/plugins/media/langs/ja_euc-jp.js b/tinyMCE/plugins/media/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ja_euc-jp.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/ja_shift_jis.js b/tinyMCE/plugins/media/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ja_shift_jis.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/ja_utf-8.js b/tinyMCE/plugins/media/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ja_utf-8.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/ko.js b/tinyMCE/plugins/media/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ko.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/nb.js b/tinyMCE/plugins/media/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/nb.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/nl.js b/tinyMCE/plugins/media/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..e40d24aef40ac2a2d5e4aae1025cb535ee19e3d4
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/nl.js
@@ -0,0 +1,86 @@
+// NL lang variables
+// Door Coen Warmer
+
+tinyMCE.addToLang('media',{
+title : 'Invoegen / bewerken video',
+desc : 'Invoegen / bewerken video',
+general : 'Algemeen',
+advanced : 'Geavanceerd',
+file : 'Bestand',
+list : 'Lijst',
+size : 'Verhoudingen',
+preview : 'Voorbeeld',
+constrain_proportions : 'Leg hoogte-breedte verhoudingen vast',
+type : 'Type',
+id : 'Id',
+name : 'Naam',
+class_name : 'Class',
+vspace : 'Verticale ruimte',
+hspace : 'Horizontale ruimte',
+play : 'Automatisch Afspelen',
+loop : 'Herhalen',
+menu : 'Menu weergeven',
+quality : 'Kwaliteit',
+scale : 'Schaal',
+align : 'Uitlijnen',
+salign : 'Uitlijnen',
+wmode : 'WMode',
+bgcolor : 'Achtergrond kleur',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Verborgen',
+controller : 'Controller',
+kioskmode : 'Kiosk modus',
+playeveryframe : 'Speel elk frame',
+targetcache : 'Target cache',
+correction : 'Geen correctie',
+enablejavascript : 'JavaScript inschakelen',
+starttime : 'Starttijd',
+endtime : 'Eindtijd',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Doel',
+volume : 'Volume',
+autostart : 'Automatisch starten',
+enabled : 'Ingeschakeld',
+fullscreen : 'Volledig scherm',
+invokeurls : 'Invoke URLs',
+mute : 'Stil',
+stretchtofit : 'Uitrekken tot maximale grootte',
+windowlessvideo : 'Video zonder venster',
+balance : 'Balance',
+baseurl : 'Basis URL',
+captioningid : 'Captioning id',
+currentmarker : 'Huidige marker',
+currentposition : 'Huidige positie',
+defaultframe : 'Standaard frame',
+playcount : 'Afspeel teller',
+rate : 'Rate',
+uimode : 'UI Modus',
+flash_options : 'Flash options',
+qt_options : 'Quicktime opties',
+wmp_options : 'Windows media player opties',
+rmp_options : 'Real media player opties',
+shockwave_options : 'Shockwave opties',
+autogotourl : 'Automatisch naar Goto-URL gaan',
+center : 'Centreren',
+imagestatus : 'Beeld status',
+maintainaspect : 'Behoud verhoudingen',
+nojava : 'Geen Java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Hoeveel loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch stijl',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Geluid',
+progress : 'Voortgang',
+qtsrc : 'Quicktime Bron',
+qt_stream_warn : 'Gestreamde RTSP bronnen moeten toegevoegd worden aan het Quicktime Bron veld onder het tabblad Geavanceerd.\nHet wordt aangeraden ook een niet streamende versie toe te voegen aan het Bron veld.'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/media/langs/nn.js b/tinyMCE/plugins/media/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/nn.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/pl.js b/tinyMCE/plugins/media/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/pl.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/pt_br.js b/tinyMCE/plugins/media/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd37c55078c21562c187282a1d0b5d1f7f3241be
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/pt_br.js
@@ -0,0 +1,101 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('media',{
+title : 'Inserir/editar mídia incorporada',
+desc : 'Inserir/editar mídia incorporada',
+general : 'Geral',
+advanced : 'Avançado',
+file : 'Arquivo',
+list : 'Lista',
+size : 'Dimensões',
+preview : 'Preview',
+constrain_proportions : 'Confinar proporções',
+type : 'Tipo',
+id : 'ID',
+name : 'Nome',
+class_name : 'Classe',
+vspace : 'Espaço-V',
+hspace : 'Espaço-H',
+play : 'Tocar automaticamente',
+loop : 'Loop',
+menu : 'Mostrar menu',
+quality : 'Qualidade',
+scale : 'Escala',
+align : 'Alinhamento',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Fundo',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Escondido',
+controller : 'Controlador',
+kioskmode : 'Modo Kiosk',
+playeveryframe : 'Tocar cada frame',
+targetcache : 'Destino do cache',
+correction : 'Sem correção',
+enablejavascript : 'Ativar JavaScript',
+starttime : 'Tempo de início',
+endtime : 'Tempo de fim',
+href : 'Href',
+qtsrcchokespeed : 'Velocidade do bloqueador',
+target : 'Destino',
+volume : 'Volume',
+autostart : 'Início automático',
+enabled : 'Ativado',
+fullscreen : 'Tela Cheia',
+invokeurls : 'Chamar URLs',
+mute : 'Silencioso',
+stretchtofit : 'Esticar para caber',
+windowlessvideo : 'Vídeo em janela',
+balance : 'Balanço',
+baseurl : 'URL Base',
+captioningid : 'ID de identificação',
+currentmarker : 'Marcador atual',
+currentposition : 'Posição atual',
+defaultframe : 'Frame padrão',
+playcount : 'Contador',
+rate : 'Taxa',
+uimode : 'Modo UI',
+flash_options : 'Opções do Flash',
+qt_options : 'Opções do Quicktime',
+wmp_options : 'Opções do Windows media player',
+rmp_options : 'Opções do Real media player',
+shockwave_options : 'Opções do Shockwave',
+autogotourl : 'Ir automaticamente para URL',
+center : 'Centro',
+imagestatus : 'Status da imagem',
+maintainaspect : 'Manter aspecto',
+nojava : 'Sem java',
+prefetch : 'Leitura inicial',
+shuffle : 'Aleatório',
+console : 'Console',
+numloop : 'Número de loops',
+controls : 'Controles',
+scriptcallbacks : 'Script de retorno',
+swstretchstyle : 'Estilo para o Stretch',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Som',
+progress : 'Progresso',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Os recursos do Streamed rtsp podem ser adicionado ao campo QT Src na aba avançada.\nVocê pode também adicionar uma versão não streamer ao comapo Src.',
+align_top : 'Acima',
+align_right : 'Direita',
+align_bottom : 'Abaixo',
+align_left : 'Esquerda',
+align_center : 'Centro',
+align_top_left : 'Acima esquerda',
+align_top_right : 'Acima direita',
+align_bottom_left : 'Abaixo esquerda',
+align_bottom_right : 'Abaixo direita'
+});
diff --git a/tinyMCE/plugins/media/langs/ro.js b/tinyMCE/plugins/media/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ro.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/ru.js b/tinyMCE/plugins/media/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..46d3fa4c4d8a5e616ea1f3bbce7fb76dea0b94d1
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ru.js
@@ -0,0 +1,94 @@
+// RU lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Вставить / редактировать медиа',
+desc : 'Вставить / редактировать медиа',
+general : 'Основной',
+advanced : 'Дополнительный',
+file : 'Файл',
+list : 'Список',
+size : 'Размеры',
+preview : 'Предпросмотр',
+constrain_proportions : 'Поддерживать пропорции',
+type : 'Тип',
+id : 'Id',
+name : 'Имя',
+class_name : 'Класс',
+vspace : 'V-Отступ',
+hspace : 'H-Отступ',
+play : 'Авто проигрывание',
+loop : 'Цикл',
+menu : 'Показать меню',
+quality : 'Качество',
+scale : 'Масштаб',
+align : 'Выравнивание',
+salign : 'S-Выравнивание',
+wmode : 'W-Режим',
+bgcolor : 'Фон',
+base : 'База',
+flashvars : 'Переменные флеш',
+liveconnect : 'SWLiveConnect',
+autohref : 'Авто Ссылка',
+cache : 'Кеш',
+hidden : 'Скрытый',
+controller : 'Контроллер',
+kioskmode : 'Режим Kiosk',
+playeveryframe : 'Проигрывать каждый кадр',
+targetcache : 'Целевой кеш',
+correction : 'No correction',
+enablejavascript : 'Включить JavaScript',
+starttime : 'Время начала',
+endtime : 'Время окончания',
+href : 'Ссылка',
+qtsrcchokespeed : 'Уменьшить скорость',
+target : 'Цель',
+volume : 'Громкость',
+autostart : 'Авто запуск',
+enabled : 'Включено',
+fullscreen : 'Полный экран',
+invokeurls : 'Активизировать ссылки',
+mute : 'Тишина',
+stretchtofit : 'Растянуть до вхождения',
+windowlessvideo : 'Безоконное видео',
+balance : 'Баланс',
+baseurl : 'Базовая ссылка',
+captioningid : 'Id ввода субтитров',
+currentmarker : 'Текущая отметка',
+currentposition : 'Текущая позиция',
+defaultframe : 'Кадр по умолчанию',
+playcount : 'Счетчик',
+rate : 'Частота',
+uimode : 'UI режим',
+flash_options : 'Опции Флеш',
+qt_options : 'Опции Quicktime',
+wmp_options : 'Опции проигрывателя Windows media',
+rmp_options : 'Опции проигрывателя Real media',
+shockwave_options : 'Опции Shockwave',
+autogotourl : 'Авто переход по ссылке',
+center : 'Центр',
+imagestatus : 'Статус изображения',
+maintainaspect : 'Поддерживать аспект',
+nojava : 'Без java',
+prefetch : 'Упреждение',
+shuffle : 'Перемешать',
+console : 'Консоль',
+numloop : 'Количество циклов',
+controls : 'Управления',
+scriptcallbacks : 'Обратный вызов скрипта',
+swstretchstyle : 'Стиль растяжения',
+swstretchhalign : 'H-Выравнивание растяжения',
+swstretchvalign : 'V-Выравнивание растяжения',
+sound : 'Звук',
+progress : 'Прогресс',
+qtsrc : 'QT Исх',
+qt_stream_warn : 'Потоковые rtsp ресурсы должны быть добавлены в поле QT Исх в дополнительную графу.\nВы также должны добавить не потоковую версию в поле Исх..',
+align_top : 'Вверх',
+align_right : 'Вправо',
+align_bottom : 'Вниз',
+align_left : 'Влево',
+align_center : 'В центр',
+align_top_left : 'Влево - вверх',
+align_top_right : 'Вправо - вверх',
+align_bottom_left : 'Влево - вниз',
+align_bottom_right : 'Вправо - вниз'
+});
diff --git a/tinyMCE/plugins/media/langs/ru_CP1251.js b/tinyMCE/plugins/media/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..17322d3a1d97502f4c57185df60e02d0f7ae5b08
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ru_CP1251.js
@@ -0,0 +1,94 @@
+// RU lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Âñòàâèòü / ðåäàêòèðîâàòü ìåäèà',
+desc : 'Âñòàâèòü / ðåäàêòèðîâàòü ìåäèà',
+general : 'Îñíîâíîé',
+advanced : 'Äîïîëíèòåëüíûé',
+file : 'Ôàéë',
+list : 'Ñïèñîê',
+size : 'Ðàçìåðû',
+preview : 'Ïðåäïðîñìîòð',
+constrain_proportions : 'Ïîääåðæèâàòü ïðîïîðöèè',
+type : 'Òèï',
+id : 'Id',
+name : 'Èìÿ',
+class_name : 'Êëàññ',
+vspace : 'V-Îòñòóï',
+hspace : 'H-Îòñòóï',
+play : 'Àâòî ïðîèãðûâàíèå',
+loop : 'Öèêë',
+menu : 'Ïîêàçàòü ìåíþ',
+quality : 'Êà÷åñòâî',
+scale : 'Ìàñøòàá',
+align : 'Âûðàâíèâàíèå',
+salign : 'S-Âûðàâíèâàíèå',
+wmode : 'W-Ðåæèì',
+bgcolor : 'Ôîí',
+base : 'Áàçà',
+flashvars : 'Ïåðåìåííûå ôëåø',
+liveconnect : 'SWLiveConnect',
+autohref : 'Àâòî Ññûëêà',
+cache : 'Êåø',
+hidden : 'Ñêðûòûé',
+controller : 'Êîíòðîëëåð',
+kioskmode : 'Ðåæèì Kiosk',
+playeveryframe : 'Ïðîèãðûâàòü êàæäûé êàäð',
+targetcache : 'Öåëåâîé êåø',
+correction : 'No correction',
+enablejavascript : 'Âêëþ÷èòü JavaScript',
+starttime : 'Âðåìÿ íà÷àëà',
+endtime : 'Âðåìÿ îêîí÷àíèÿ',
+href : 'Ññûëêà',
+qtsrcchokespeed : 'Óìåíüøèòü ñêîðîñòü',
+target : 'Öåëü',
+volume : 'Ãðîìêîñòü',
+autostart : 'Àâòî çàïóñê',
+enabled : 'Âêëþ÷åíî',
+fullscreen : 'Ïîëíûé ýêðàí',
+invokeurls : 'Àêòèâèçèðîâàòü ññûëêè',
+mute : 'Òèøèíà',
+stretchtofit : 'Ðàñòÿíóòü äî âõîæäåíèÿ',
+windowlessvideo : 'Áåçîêîííîå âèäåî',
+balance : 'Áàëàíñ',
+baseurl : 'Áàçîâàÿ ññûëêà',
+captioningid : 'Id ââîäà ñóáòèòðîâ',
+currentmarker : 'Òåêóùàÿ îòìåòêà',
+currentposition : 'Òåêóùàÿ ïîçèöèÿ',
+defaultframe : 'Êàäð ïî óìîë÷àíèþ',
+playcount : 'Ñ÷åò÷èê',
+rate : '×àñòîòà',
+uimode : 'UI ðåæèì',
+flash_options : 'Îïöèè Ôëåø',
+qt_options : 'Îïöèè Quicktime',
+wmp_options : 'Îïöèè ïðîèãðûâàòåëÿ Windows media',
+rmp_options : 'Îïöèè ïðîèãðûâàòåëÿ Real media',
+shockwave_options : 'Îïöèè Shockwave',
+autogotourl : 'Àâòî ïåðåõîä ïî ññûëêå',
+center : 'Öåíòð',
+imagestatus : 'Ñòàòóñ èçîáðàæåíèÿ',
+maintainaspect : 'Ïîääåðæèâàòü àñïåêò',
+nojava : 'Áåç java',
+prefetch : 'Óïðåæäåíèå',
+shuffle : 'Ïåðåìåøàòü',
+console : 'Êîíñîëü',
+numloop : 'Êîëè÷åñòâî öèêëîâ',
+controls : 'Óïðàâëåíèÿ',
+scriptcallbacks : 'Îáðàòíûé âûçîâ ñêðèïòà',
+swstretchstyle : 'Ñòèëü ðàñòÿæåíèÿ',
+swstretchhalign : 'H-Âûðàâíèâàíèå ðàñòÿæåíèÿ',
+swstretchvalign : 'V-Âûðàâíèâàíèå ðàñòÿæåíèÿ',
+sound : 'Çâóê',
+progress : 'Ïðîãðåññ',
+qtsrc : 'QT Èñõ',
+qt_stream_warn : 'Ïîòîêîâûå rtsp ðåñóðñû äîëæíû áûòü äîáàâëåíû â ïîëå QT Èñõ â äîïîëíèòåëüíóþ ãðàôó.\nÂû òàêæå äîëæíû äîáàâèòü íå ïîòîêîâóþ âåðñèþ â ïîëå Èñõ..',
+align_top : 'Ââåðõ',
+align_right : 'Âïðàâî',
+align_bottom : 'Âíèç',
+align_left : 'Âëåâî',
+align_center : 'Â öåíòð',
+align_top_left : 'Âëåâî - ââåðõ',
+align_top_right : 'Âïðàâî - ââåðõ',
+align_bottom_left : 'Âëåâî - âíèç',
+align_bottom_right : 'Âïðàâî - âíèç'
+});
diff --git a/tinyMCE/plugins/media/langs/ru_KOI8-R.js b/tinyMCE/plugins/media/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..ec210cf970773d79edf7e93e2a11820723fb26f3
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/ru_KOI8-R.js
@@ -0,0 +1,94 @@
+// RU lang variables
+
+tinyMCE.addToLang('media',{
+title : '÷ÓÔÁ×ÉÔØ / ÒÅÄÁËÔÉÒÏ×ÁÔØ ÍÅÄÉÁ',
+desc : '÷ÓÔÁ×ÉÔØ / ÒÅÄÁËÔÉÒÏ×ÁÔØ ÍÅÄÉÁ',
+general : 'ïÓÎÏ×ÎÏÊ',
+advanced : 'äÏÐÏÌÎÉÔÅÌØÎÙÊ',
+file : 'æÁÊÌ',
+list : 'óÐÉÓÏË',
+size : 'òÁÚÍÅÒÙ',
+preview : 'ðÒÅÄÐÒÏÓÍÏÔÒ',
+constrain_proportions : 'ðÏÄÄÅÒÖÉ×ÁÔØ ÐÒÏÐÏÒÃÉÉ',
+type : 'ôÉÐ',
+id : 'Id',
+name : 'éÍÑ',
+class_name : 'ëÌÁÓÓ',
+vspace : 'V-ïÔÓÔÕÐ',
+hspace : 'H-ïÔÓÔÕÐ',
+play : 'á×ÔÏ ÐÒÏÉÇÒÙ×ÁÎÉÅ',
+loop : 'ãÉËÌ',
+menu : 'ðÏËÁÚÁÔØ ÍÅÎÀ',
+quality : 'ëÁÞÅÓÔ×Ï',
+scale : 'íÁÓÛÔÁÂ',
+align : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ',
+salign : 'S-÷ÙÒÁ×ÎÉ×ÁÎÉÅ',
+wmode : 'W-òÅÖÉÍ',
+bgcolor : 'æÏÎ',
+base : 'âÁÚÁ',
+flashvars : 'ðÅÒÅÍÅÎÎÙÅ ÆÌÅÛ',
+liveconnect : 'SWLiveConnect',
+autohref : 'á×ÔÏ óÓÙÌËÁ',
+cache : 'ëÅÛ',
+hidden : 'óËÒÙÔÙÊ',
+controller : 'ëÏÎÔÒÏÌÌÅÒ',
+kioskmode : 'òÅÖÉÍ Kiosk',
+playeveryframe : 'ðÒÏÉÇÒÙ×ÁÔØ ËÁÖÄÙÊ ËÁÄÒ',
+targetcache : 'ãÅÌÅ×ÏÊ ËÅÛ',
+correction : 'No correction',
+enablejavascript : '÷ËÌÀÞÉÔØ JavaScript',
+starttime : '÷ÒÅÍÑ ÎÁÞÁÌÁ',
+endtime : '÷ÒÅÍÑ ÏËÏÎÞÁÎÉÑ',
+href : 'óÓÙÌËÁ',
+qtsrcchokespeed : 'õÍÅÎØÛÉÔØ ÓËÏÒÏÓÔØ',
+target : 'ãÅÌØ',
+volume : 'çÒÏÍËÏÓÔØ',
+autostart : 'á×ÔÏ ÚÁÐÕÓË',
+enabled : '÷ËÌÀÞÅÎÏ',
+fullscreen : 'ðÏÌÎÙÊ ÜËÒÁÎ',
+invokeurls : 'áËÔÉ×ÉÚÉÒÏ×ÁÔØ ÓÓÙÌËÉ',
+mute : 'ôÉÛÉÎÁ',
+stretchtofit : 'òÁÓÔÑÎÕÔØ ÄÏ ×ÈÏÖÄÅÎÉÑ',
+windowlessvideo : 'âÅÚÏËÏÎÎÏÅ ×ÉÄÅÏ',
+balance : 'âÁÌÁÎÓ',
+baseurl : 'âÁÚÏ×ÁÑ ÓÓÙÌËÁ',
+captioningid : 'Id ××ÏÄÁ ÓÕÂÔÉÔÒÏ×',
+currentmarker : 'ôÅËÕÝÁÑ ÏÔÍÅÔËÁ',
+currentposition : 'ôÅËÕÝÁÑ ÐÏÚÉÃÉÑ',
+defaultframe : 'ëÁÄÒ ÐÏ ÕÍÏÌÞÁÎÉÀ',
+playcount : 'óÞÅÔÞÉË',
+rate : 'þÁÓÔÏÔÁ',
+uimode : 'UI ÒÅÖÉÍ',
+flash_options : 'ïÐÃÉÉ æÌÅÛ',
+qt_options : 'ïÐÃÉÉ Quicktime',
+wmp_options : 'ïÐÃÉÉ ÐÒÏÉÇÒÙ×ÁÔÅÌÑ Windows media',
+rmp_options : 'ïÐÃÉÉ ÐÒÏÉÇÒÙ×ÁÔÅÌÑ Real media',
+shockwave_options : 'ïÐÃÉÉ Shockwave',
+autogotourl : 'á×ÔÏ ÐÅÒÅÈÏÄ ÐÏ ÓÓÙÌËÅ',
+center : 'ãÅÎÔÒ',
+imagestatus : 'óÔÁÔÕÓ ÉÚÏÂÒÁÖÅÎÉÑ',
+maintainaspect : 'ðÏÄÄÅÒÖÉ×ÁÔØ ÁÓÐÅËÔ',
+nojava : 'âÅÚ java',
+prefetch : 'õÐÒÅÖÄÅÎÉÅ',
+shuffle : 'ðÅÒÅÍÅÛÁÔØ',
+console : 'ëÏÎÓÏÌØ',
+numloop : 'ëÏÌÉÞÅÓÔ×Ï ÃÉËÌÏ×',
+controls : 'õÐÒÁ×ÌÅÎÉÑ',
+scriptcallbacks : 'ïÂÒÁÔÎÙÊ ×ÙÚÏ× ÓËÒÉÐÔÁ',
+swstretchstyle : 'óÔÉÌØ ÒÁÓÔÑÖÅÎÉÑ',
+swstretchhalign : 'H-÷ÙÒÁ×ÎÉ×ÁÎÉÅ ÒÁÓÔÑÖÅÎÉÑ',
+swstretchvalign : 'V-÷ÙÒÁ×ÎÉ×ÁÎÉÅ ÒÁÓÔÑÖÅÎÉÑ',
+sound : 'ú×ÕË',
+progress : 'ðÒÏÇÒÅÓÓ',
+qtsrc : 'QT éÓÈ',
+qt_stream_warn : 'ðÏÔÏËÏ×ÙÅ rtsp ÒÅÓÕÒÓÙ ÄÏÌÖÎÙ ÂÙÔØ ÄÏÂÁ×ÌÅÎÙ × ÐÏÌÅ QT éÓÈ × ÄÏÐÏÌÎÉÔÅÌØÎÕÀ ÇÒÁÆÕ.\n÷Ù ÔÁËÖÅ ÄÏÌÖÎÙ ÄÏÂÁ×ÉÔØ ÎÅ ÐÏÔÏËÏ×ÕÀ ×ÅÒÓÉÀ × ÐÏÌÅ éÓÈ..',
+align_top : '÷×ÅÒÈ',
+align_right : '÷ÐÒÁ×Ï',
+align_bottom : '÷ÎÉÚ',
+align_left : '÷ÌÅ×Ï',
+align_center : '÷ ÃÅÎÔÒ',
+align_top_left : '÷ÌÅ×Ï - ××ÅÒÈ',
+align_top_right : '÷ÐÒÁ×Ï - ××ÅÒÈ',
+align_bottom_left : '÷ÌÅ×Ï - ×ÎÉÚ',
+align_bottom_right : '÷ÐÒÁ×Ï - ×ÎÉÚ'
+});
diff --git a/tinyMCE/plugins/media/langs/si.js b/tinyMCE/plugins/media/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/si.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/sk.js b/tinyMCE/plugins/media/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/sk.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/sq.js b/tinyMCE/plugins/media/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/sq.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/sr.js b/tinyMCE/plugins/media/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/sr.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/sv.js b/tinyMCE/plugins/media/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/sv.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/sv_utf8.js b/tinyMCE/plugins/media/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/sv_utf8.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/tr.js b/tinyMCE/plugins/media/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/tr.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/uk.js b/tinyMCE/plugins/media/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..d3e03724925b599027c2d2cb9c91f87b79a8e264
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/uk.js
@@ -0,0 +1,94 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Вставити / редагувати медіа',
+desc : 'Вставити / редагувати медіа',
+general : 'Основний',
+advanced : 'Додатковий',
+file : 'Файл',
+list : 'Список',
+size : 'Розміри',
+preview : 'Попередній перегляд',
+constrain_proportions : 'Підтримувати пропорції',
+type : 'Тип',
+id : 'Id',
+name : 'Ім\'я',
+class_name : 'Клас',
+vspace : 'V-Отступ',
+hspace : 'H-Отступ',
+play : 'Авто програвання',
+loop : 'Цикл',
+menu : 'Показати меню',
+quality : 'Якість',
+scale : 'Масштаб',
+align : 'Вирівнювання',
+salign : 'S-Вирівнювання',
+wmode : 'W-Режим',
+bgcolor : 'Фон',
+base : 'База',
+flashvars : 'Перемінні флеш',
+liveconnect : 'SWLiveConnect',
+autohref : 'Авто Посилання',
+cache : 'Кеш',
+hidden : 'Прихований',
+controller : 'Контролер',
+kioskmode : 'Режим Kiosk',
+playeveryframe : 'Програвати кожен кадр',
+targetcache : 'Цільовий кеш',
+correction : 'No correction',
+enablejavascript : 'Включити JavaScript',
+starttime : 'Час початку',
+endtime : 'Час закінчення',
+href : 'Посилання',
+qtsrcchokespeed : 'Зменшити швидкість',
+target : 'Ціль',
+volume : 'Гучність',
+autostart : 'Авто запуск',
+enabled : 'Включено',
+fullscreen : 'Повний екран',
+invokeurls : 'Активізувати посилання',
+mute : 'Тиша',
+stretchtofit : 'Розтягнути до входження',
+windowlessvideo : 'Безвіконне відео',
+balance : 'Баланс',
+baseurl : 'Базове посилання',
+captioningid : 'Id введення субтитрів',
+currentmarker : 'Поточна позначка',
+currentposition : 'Поточна позиція',
+defaultframe : 'Кадр за умовчанням',
+playcount : 'Лічильник',
+rate : 'Частота',
+uimode : 'UI режим',
+flash_options : 'Опції Флеш',
+qt_options : 'Опції Quicktime',
+wmp_options : 'Опції програвача Windows media',
+rmp_options : 'Опції програвача Real media',
+shockwave_options : 'Опції Shockwave',
+autogotourl : 'Авто перехід за посиланням',
+center : 'Центр',
+imagestatus : 'Статус зображення',
+maintainaspect : 'Підтримувати аспект',
+nojava : 'Без java',
+prefetch : 'Випередження',
+shuffle : 'Перемішати',
+console : 'Консоль',
+numloop : 'Кількість циклів',
+controls : 'Управління',
+scriptcallbacks : 'Зворотний виклик скрипта',
+swstretchstyle : 'Стиль розтягування',
+swstretchhalign : 'H-Вирівнювання розтягування',
+swstretchvalign : 'V-Вирівнювання розтягування',
+sound : 'Звук',
+progress : 'Прогрес',
+qtsrc : 'QT Джерело',
+qt_stream_warn : 'Потокові rtsp ресурси мають бути додані до поля QT Джерело в додаткову закладку.\nВам також слід додати непотокову версію до поля Джерело.',
+align_top : 'Вгору',
+align_right : 'Вправо',
+align_bottom : 'Вниз',
+align_left : 'Вліво',
+align_center : 'До центру',
+align_top_left : 'Вліво - вгору',
+align_top_right : 'Вправо - вгору',
+align_bottom_left : 'Вліво - вниз',
+align_bottom_right : 'Вправо - вниз'
+});
diff --git a/tinyMCE/plugins/media/langs/uk_CP1251.js b/tinyMCE/plugins/media/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..be64afe24034e49433d0489343ddbf085ef10a98
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/uk_CP1251.js
@@ -0,0 +1,94 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Âñòàâèòè / ðåäàãóâàòè ìåä³à',
+desc : 'Âñòàâèòè / ðåäàãóâàòè ìåä³à',
+general : 'Îñíîâíèé',
+advanced : 'Äîäàòêîâèé',
+file : 'Ôàéë',
+list : 'Ñïèñîê',
+size : 'Ðîçì³ðè',
+preview : 'Ïîïåðåäí³é ïåðåãëÿä',
+constrain_proportions : 'ϳäòðèìóâàòè ïðîïîðö³¿',
+type : 'Òèï',
+id : 'Id',
+name : '²ì\'ÿ',
+class_name : 'Êëàñ',
+vspace : 'V-Îòñòóï',
+hspace : 'H-Îòñòóï',
+play : 'Àâòî ïðîãðàâàííÿ',
+loop : 'Öèêë',
+menu : 'Ïîêàçàòè ìåíþ',
+quality : 'ßê³ñòü',
+scale : 'Ìàñøòàá',
+align : 'Âèð³âíþâàííÿ',
+salign : 'S-Âèð³âíþâàííÿ',
+wmode : 'W-Ðåæèì',
+bgcolor : 'Ôîí',
+base : 'Áàçà',
+flashvars : 'Ïåðåì³íí³ ôëåø',
+liveconnect : 'SWLiveConnect',
+autohref : 'Àâòî Ïîñèëàííÿ',
+cache : 'Êåø',
+hidden : 'Ïðèõîâàíèé',
+controller : 'Êîíòðîëåð',
+kioskmode : 'Ðåæèì Kiosk',
+playeveryframe : 'Ïðîãðàâàòè êîæåí êàäð',
+targetcache : 'Ö³ëüîâèé êåø',
+correction : 'No correction',
+enablejavascript : 'Âêëþ÷èòè JavaScript',
+starttime : '×àñ ïî÷àòêó',
+endtime : '×àñ çàê³í÷åííÿ',
+href : 'Ïîñèëàííÿ',
+qtsrcchokespeed : 'Çìåíøèòè øâèäê³ñòü',
+target : 'Ö³ëü',
+volume : 'Ãó÷í³ñòü',
+autostart : 'Àâòî çàïóñê',
+enabled : 'Âêëþ÷åíî',
+fullscreen : 'Ïîâíèé åêðàí',
+invokeurls : 'Àêòèâ³çóâàòè ïîñèëàííÿ',
+mute : 'Òèøà',
+stretchtofit : 'Ðîçòÿãíóòè äî âõîäæåííÿ',
+windowlessvideo : 'Áåçâ³êîííå â³äåî',
+balance : 'Áàëàíñ',
+baseurl : 'Áàçîâå ïîñèëàííÿ',
+captioningid : 'Id ââåäåííÿ ñóáòèòð³â',
+currentmarker : 'Ïîòî÷íà ïîçíà÷êà',
+currentposition : 'Ïîòî÷íà ïîçèö³ÿ',
+defaultframe : 'Êàäð çà óìîâ÷àííÿì',
+playcount : '˳÷èëüíèê',
+rate : '×àñòîòà',
+uimode : 'UI ðåæèì',
+flash_options : 'Îïö³¿ Ôëåø',
+qt_options : 'Îïö³¿ Quicktime',
+wmp_options : 'Îïö³¿ ïðîãðàâà÷à Windows media',
+rmp_options : 'Îïö³¿ ïðîãðàâà÷à Real media',
+shockwave_options : 'Îïö³¿ Shockwave',
+autogotourl : 'Àâòî ïåðåõ³ä çà ïîñèëàííÿì',
+center : 'Öåíòð',
+imagestatus : 'Ñòàòóñ çîáðàæåííÿ',
+maintainaspect : 'ϳäòðèìóâàòè àñïåêò',
+nojava : 'Áåç java',
+prefetch : 'Âèïåðåäæåííÿ',
+shuffle : 'Ïåðåì³øàòè',
+console : 'Êîíñîëü',
+numloop : 'ʳëüê³ñòü öèêë³â',
+controls : 'Óïðàâë³ííÿ',
+scriptcallbacks : 'Çâîðîòíèé âèêëèê ñêðèïòà',
+swstretchstyle : 'Ñòèëü ðîçòÿãóâàííÿ',
+swstretchhalign : 'H-Âèð³âíþâàííÿ ðîçòÿãóâàííÿ',
+swstretchvalign : 'V-Âèð³âíþâàííÿ ðîçòÿãóâàííÿ',
+sound : 'Çâóê',
+progress : 'Ïðîãðåñ',
+qtsrc : 'QT Äæåðåëî',
+qt_stream_warn : 'Ïîòîêîâ³ rtsp ðåñóðñè ìàþòü áóòè äîäàí³ äî ïîëÿ QT Äæåðåëî â äîäàòêîâó çàêëàäêó.\nÂàì òàêîæ ñë³ä äîäàòè íåïîòîêîâó âåðñ³þ äî ïîëÿ Äæåðåëî.',
+align_top : 'Âãîðó',
+align_right : 'Âïðàâî',
+align_bottom : 'Âíèç',
+align_left : 'Âë³âî',
+align_center : 'Äî öåíòðó',
+align_top_left : 'Âë³âî - âãîðó',
+align_top_right : 'Âïðàâî - âãîðó',
+align_bottom_left : 'Âë³âî - âíèç',
+align_bottom_right : 'Âïðàâî - âíèç'
+});
diff --git a/tinyMCE/plugins/media/langs/uk_KOI8-U.js b/tinyMCE/plugins/media/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..faf91b4ca51009f0d7712408cedbdd673f963d40
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/uk_KOI8-U.js
@@ -0,0 +1,94 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : '÷ÓÔÁ×ÉÔÉ / ÒÅÄÁÇÕ×ÁÔÉ ÍÅĦÁ',
+desc : '÷ÓÔÁ×ÉÔÉ / ÒÅÄÁÇÕ×ÁÔÉ ÍÅĦÁ',
+general : 'ïÓÎÏ×ÎÉÊ',
+advanced : 'äÏÄÁÔËÏ×ÉÊ',
+file : 'æÁÊÌ',
+list : 'óÐÉÓÏË',
+size : 'òÏÚͦÒÉ',
+preview : 'ðÏÐÅÒÅÄÎ¦Ê ÐÅÒÅÇÌÑÄ',
+constrain_proportions : 'ð¦ÄÔÒÉÍÕ×ÁÔÉ ÐÒÏÐÏÒæ§',
+type : 'ôÉÐ',
+id : 'Id',
+name : '¶Í\'Ñ',
+class_name : 'ëÌÁÓ',
+vspace : 'V-ïÔÓÔÕÐ',
+hspace : 'H-ïÔÓÔÕÐ',
+play : 'á×ÔÏ ÐÒÏÇÒÁ×ÁÎÎÑ',
+loop : 'ãÉËÌ',
+menu : 'ðÏËÁÚÁÔÉ ÍÅÎÀ',
+quality : 'ñ˦ÓÔØ',
+scale : 'íÁÓÛÔÁÂ',
+align : '÷ÉÒ¦×ÎÀ×ÁÎÎÑ',
+salign : 'S-÷ÉÒ¦×ÎÀ×ÁÎÎÑ',
+wmode : 'W-òÅÖÉÍ',
+bgcolor : 'æÏÎ',
+base : 'âÁÚÁ',
+flashvars : 'ðÅÒÅͦÎΦ ÆÌÅÛ',
+liveconnect : 'SWLiveConnect',
+autohref : 'á×ÔÏ ðÏÓÉÌÁÎÎÑ',
+cache : 'ëÅÛ',
+hidden : 'ðÒÉÈÏ×ÁÎÉÊ',
+controller : 'ëÏÎÔÒÏÌÅÒ',
+kioskmode : 'òÅÖÉÍ Kiosk',
+playeveryframe : 'ðÒÏÇÒÁ×ÁÔÉ ËÏÖÅÎ ËÁÄÒ',
+targetcache : 'ã¦ÌØÏ×ÉÊ ËÅÛ',
+correction : 'No correction',
+enablejavascript : '÷ËÌÀÞÉÔÉ JavaScript',
+starttime : 'þÁÓ ÐÏÞÁÔËÕ',
+endtime : 'þÁÓ ÚÁ˦ÎÞÅÎÎÑ',
+href : 'ðÏÓÉÌÁÎÎÑ',
+qtsrcchokespeed : 'úÍÅÎÛÉÔÉ Û×ÉÄ˦ÓÔØ',
+target : 'ã¦ÌØ',
+volume : 'çÕÞΦÓÔØ',
+autostart : 'á×ÔÏ ÚÁÐÕÓË',
+enabled : '÷ËÌÀÞÅÎÏ',
+fullscreen : 'ðÏ×ÎÉÊ ÅËÒÁÎ',
+invokeurls : 'áËÔÉצÚÕ×ÁÔÉ ÐÏÓÉÌÁÎÎÑ',
+mute : 'ôÉÛÁ',
+stretchtofit : 'òÏÚÔÑÇÎÕÔÉ ÄÏ ×ÈÏÄÖÅÎÎÑ',
+windowlessvideo : 'âÅÚצËÏÎΊצÄÅÏ',
+balance : 'âÁÌÁÎÓ',
+baseurl : 'âÁÚÏ×Å ÐÏÓÉÌÁÎÎÑ',
+captioningid : 'Id ××ÅÄÅÎÎÑ ÓÕÂÔÉÔÒ¦×',
+currentmarker : 'ðÏÔÏÞÎÁ ÐÏÚÎÁÞËÁ',
+currentposition : 'ðÏÔÏÞÎÁ ÐÏÚÉæÑ',
+defaultframe : 'ëÁÄÒ ÚÁ ÕÍÏ×ÞÁÎÎÑÍ',
+playcount : 'ì¦ÞÉÌØÎÉË',
+rate : 'þÁÓÔÏÔÁ',
+uimode : 'UI ÒÅÖÉÍ',
+flash_options : 'ïÐæ§ æÌÅÛ',
+qt_options : 'ïÐæ§ Quicktime',
+wmp_options : 'ïÐæ§ ÐÒÏÇÒÁ×ÁÞÁ Windows media',
+rmp_options : 'ïÐæ§ ÐÒÏÇÒÁ×ÁÞÁ Real media',
+shockwave_options : 'ïÐæ§ Shockwave',
+autogotourl : 'á×ÔÏ ÐÅÒÅÈ¦Ä ÚÁ ÐÏÓÉÌÁÎÎÑÍ',
+center : 'ãÅÎÔÒ',
+imagestatus : 'óÔÁÔÕÓ ÚÏÂÒÁÖÅÎÎÑ',
+maintainaspect : 'ð¦ÄÔÒÉÍÕ×ÁÔÉ ÁÓÐÅËÔ',
+nojava : 'âÅÚ java',
+prefetch : '÷ÉÐÅÒÅÄÖÅÎÎÑ',
+shuffle : 'ðÅÒÅͦÛÁÔÉ',
+console : 'ëÏÎÓÏÌØ',
+numloop : 'ë¦ÌØË¦ÓÔØ ÃÉË̦×',
+controls : 'õÐÒÁ×̦ÎÎÑ',
+scriptcallbacks : 'ú×ÏÒÏÔÎÉÊ ×ÉËÌÉË ÓËÒÉÐÔÁ',
+swstretchstyle : 'óÔÉÌØ ÒÏÚÔÑÇÕ×ÁÎÎÑ',
+swstretchhalign : 'H-÷ÉÒ¦×ÎÀ×ÁÎÎÑ ÒÏÚÔÑÇÕ×ÁÎÎÑ',
+swstretchvalign : 'V-÷ÉÒ¦×ÎÀ×ÁÎÎÑ ÒÏÚÔÑÇÕ×ÁÎÎÑ',
+sound : 'ú×ÕË',
+progress : 'ðÒÏÇÒÅÓ',
+qtsrc : 'QT äÖÅÒÅÌÏ',
+qt_stream_warn : 'ðÏÔÏËÏצ rtsp ÒÅÓÕÒÓÉ ÍÁÀÔØ ÂÕÔÉ ÄÏÄÁΦ ÄÏ ÐÏÌÑ QT äÖÅÒÅÌÏ × ÄÏÄÁÔËÏ×Õ ÚÁËÌÁÄËÕ.\n÷ÁÍ ÔÁËÏÖ ÓÌ¦Ä ÄÏÄÁÔÉ ÎÅÐÏÔÏËÏ×Õ ×ÅÒÓ¦À ÄÏ ÐÏÌÑ äÖÅÒÅÌÏ.',
+align_top : '÷ÇÏÒÕ',
+align_right : '÷ÐÒÁ×Ï',
+align_bottom : '÷ÎÉÚ',
+align_left : '÷̦×Ï',
+align_center : 'äÏ ÃÅÎÔÒÕ',
+align_top_left : '÷̦×Ï - ×ÇÏÒÕ',
+align_top_right : '÷ÐÒÁ×Ï - ×ÇÏÒÕ',
+align_bottom_left : '÷̦×Ï - ×ÎÉÚ',
+align_bottom_right : '÷ÐÒÁ×Ï - ×ÎÉÚ'
+});
diff --git a/tinyMCE/plugins/media/langs/vi.js b/tinyMCE/plugins/media/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/vi.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/zh_cn.js b/tinyMCE/plugins/media/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/zh_cn.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/zh_cn_utf8.js b/tinyMCE/plugins/media/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/zh_cn_utf8.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/zh_tw.js b/tinyMCE/plugins/media/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/zh_tw.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/langs/zh_tw_utf8.js b/tinyMCE/plugins/media/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cbfae654f49d2316762e8066ef90bfeee0c8b31
--- /dev/null
+++ b/tinyMCE/plugins/media/langs/zh_tw_utf8.js
@@ -0,0 +1,85 @@
+// UK lang variables
+
+tinyMCE.addToLang('media',{
+title : 'Insert / edit embedded media',
+desc : 'Insert / edit embedded media',
+general : 'General',
+advanced : 'Advanced',
+file : 'File',
+list : 'List',
+size : 'Dimensions',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+type : 'Type',
+id : 'Id',
+name : 'Name',
+class_name : 'Class',
+vspace : 'V-Space',
+hspace : 'H-Space',
+play : 'Auto play',
+loop : 'Loop',
+menu : 'Show menu',
+quality : 'Quality',
+scale : 'Scale',
+align : 'Align',
+salign : 'SAlign',
+wmode : 'WMode',
+bgcolor : 'Background',
+base : 'Base',
+flashvars : 'Flashvars',
+liveconnect : 'SWLiveConnect',
+autohref : 'AutoHREF',
+cache : 'Cache',
+hidden : 'Hidden',
+controller : 'Controller',
+kioskmode : 'Kiosk mode',
+playeveryframe : 'Play every frame',
+targetcache : 'Target cache',
+correction : 'No correction',
+enablejavascript : 'Enable JavaScript',
+starttime : 'Start time',
+endtime : 'End time',
+href : 'Href',
+qtsrcchokespeed : 'Choke speed',
+target : 'Target',
+volume : 'Volume',
+autostart : 'Auto start',
+enabled : 'Enabled',
+fullscreen : 'Fullscreen',
+invokeurls : 'Invoke URLs',
+mute : 'Mute',
+stretchtofit : 'Stretch to fit',
+windowlessvideo : 'Windowless video',
+balance : 'Balance',
+baseurl : 'Base URL',
+captioningid : 'Captioning id',
+currentmarker : 'Current marker',
+currentposition : 'Current position',
+defaultframe : 'Default frame',
+playcount : 'Play count',
+rate : 'Rate',
+uimode : 'UI Mode',
+flash_options : 'Flash options',
+qt_options : 'Quicktime options',
+wmp_options : 'Windows media player options',
+rmp_options : 'Real media player options',
+shockwave_options : 'Shockwave options',
+autogotourl : 'Auto goto URL',
+center : 'Center',
+imagestatus : 'Image status',
+maintainaspect : 'Maintain aspect',
+nojava : 'No java',
+prefetch : 'Prefetch',
+shuffle : 'Shuffle',
+console : 'Console',
+numloop : 'Num loops',
+controls : 'Controls',
+scriptcallbacks : 'Script callbacks',
+swstretchstyle : 'Stretch style',
+swstretchhalign : 'Stretch H-Align',
+swstretchvalign : 'Stretch V-Align',
+sound : 'Sound',
+progress : 'Progress',
+qtsrc : 'QT Src',
+qt_stream_warn : 'Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..'
+});
diff --git a/tinyMCE/plugins/media/media.htm b/tinyMCE/plugins/media/media.htm
new file mode 100644
index 0000000000000000000000000000000000000000..97b7cdca541334714402841a460826578c1d4453
--- /dev/null
+++ b/tinyMCE/plugins/media/media.htm
@@ -0,0 +1,723 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_media_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/media.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/validate.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<link href="css/media.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+    <form onsubmit="insertMedia();return false;" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');generatePreview();" onmousedown="return false;">{$lang_media_general}</a></span></li>
+				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_media_advanced}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{$lang_media_general}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+							<tr>
+								<td><label for="media_type">{$lang_media_type}</label></td>
+								<td>
+									<select id="media_type" name="media_type" onchange="changedType(this.value);generatePreview();">
+										<option value="flash">Flash</option>
+										<option value="qt">Quicktime</option>
+										<option value="shockwave">Shockware</option>
+										<option value="wmp">Windows Media</option>
+										<option value="rmp">Real Media</option>
+									</select>
+								</td>
+							</tr>
+							<tr>
+							<td><label for="src">{$lang_media_file}</label></td>
+							  <td>
+									<table border="0" cellspacing="0" cellpadding="0">
+									  <tr>
+										<td><input id="src" name="src" type="text" value="" onchange="switchType(this.value);generatePreview();" /></td>
+										<td id="filebrowsercontainer">&nbsp;</td>
+									  </tr>
+									</table>
+								</td>
+							</tr>
+							<tr id="linklistrow">
+								<td><label for="linklist">{$lang_media_list}</label></td>
+								<td id="linklistcontainer">&nbsp;</td>
+							</tr>
+							<tr>
+								<td><label for="width">{$lang_media_size}</label></td>
+								<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="text" id="width" name="width" value="" class="size" onchange="generatePreview('width');" /> x <input type="text" id="height" name="height" value="" class="size"  onchange="generatePreview('height');" /></td>
+										<td>&nbsp;&nbsp;<input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>
+										<td><label id="constrainlabel" for="constrain">{$lang_media_constrain_proportions}</label></td>
+									</tr>
+								</table>
+							</tr>
+					</table>
+				</fieldset>
+
+				<fieldset>
+					<legend>{$lang_media_preview}</legend>
+					<div id="prev"></div>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_media_advanced}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0" width="100%">
+						<tr>
+							<td><label for="id">{$lang_media_id}</label></td>
+							<td><input type="text" id="id" name="id" onchange="generatePreview();" /></td>
+							<td><label for="name">{$lang_media_name}</label></td>
+							<td><input type="text" id="name" name="name" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="align">{$lang_media_align}</label></td>
+							<td>
+								<select id="align" name="align" onchange="generatePreview();">
+									<option value="">{$lang_not_set}</option> 
+									<option value="top">{$lang_media_align_top}</option>
+									<option value="right">{$lang_media_align_right}</option>
+									<option value="bottom">{$lang_media_align_bottom}</option>
+									<option value="left">{$lang_media_align_left}</option>
+								</select>
+							</td>
+
+							<td><label for="bgcolor">{$lang_media_bgcolor}</label></td>
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');generatePreview();" /></td>
+										<td id="bgcolor_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="vspace">{$lang_media_vspace}</label></td>
+							<td><input type="text" id="vspace" name="vspace" class="number" onchange="generatePreview();" /></td>
+							<td><label for="hspace">{$lang_media_hspace}</label></td>
+							<td><input type="text" id="hspace" name="hspace" class="number" onchange="generatePreview();" /></td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="flash_options">
+					<legend>{$lang_media_flash_options}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td><label for="flash_quality">{$lang_media_quality}</label></td>
+							<td>
+								<select id="flash_quality" name="flash_quality" onchange="generatePreview();">
+									<option value="">{$lang_not_set}</option> 
+									<option value="high">high</option>
+									<option value="low">low</option>
+									<option value="autolow">autolow</option>
+									<option value="autohigh">autohigh</option>
+									<option value="best">best</option>
+								</select>
+							</td>
+
+							<td><label for="flash_scale">{$lang_media_scale}</label></td>
+							<td>
+								<select id="flash_scale" name="flash_scale" onchange="generatePreview();">
+									<option value="">{$lang_not_set}</option> 
+									<option value="showall">showall</option>
+									<option value="noborder">noborder</option>
+									<option value="exactfit">exactfit</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="flash_wmode">{$lang_media_wmode}</label></td>
+							<td>
+								<select id="flash_wmode" name="flash_wmode" onchange="generatePreview();">
+									<option value="">{$lang_not_set}</option> 
+									<option value="window">window</option>
+									<option value="opaque">opaque</option>
+									<option value="transparent">transparent</option>
+								</select>
+							</td>
+
+							<td><label for="flash_salign">{$lang_media_salign}</label></td>
+							<td>
+								<select id="flash_salign" name="flash_salign" onchange="generatePreview();">
+									<option value="">{$lang_not_set}</option> 
+									<option value="l">{$lang_media_align_left}</option>
+									<option value="t">{$lang_media_align_top}</option>
+									<option value="r">{$lang_media_align_right}</option>
+									<option value="b">{$lang_media_align_bottom}</option>
+									<option value="tl">{$lang_media_align_top_left}</option>
+									<option value="tr">{$lang_media_align_top_right}</option>
+									<option value="bl">{$lang_media_align_bottom_left}</option>
+									<option value="br">{$lang_media_align_bottom_right}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="flash_play" name="flash_play" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="flash_play">{$lang_media_play}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="flash_loop" name="flash_loop" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="flash_loop">{$lang_media_loop}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="flash_menu" name="flash_menu" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="flash_menu">{$lang_media_menu}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="flash_swliveconnect" name="flash_swliveconnect" onchange="generatePreview();" /></td>
+										<td><label for="flash_swliveconnect">{$lang_media_liveconnect}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+
+					<table>
+						<tr>
+							<td><label for="flash_base">{$lang_media_base}</label></td>
+							<td><input type="text" id="flash_base" name="flash_base" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="flash_flashvars">{$lang_media_flashvars}</label></td>
+							<td><input type="text" id="flash_flashvars" name="flash_flashvars" onchange="generatePreview();" /></td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="qt_options">
+					<legend>{$lang_media_qt_options}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_loop" name="qt_loop" onchange="generatePreview();" /></td>
+										<td><label for="qt_loop">{$lang_media_loop}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_autoplay" name="qt_autoplay" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="qt_autoplay">{$lang_media_play}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_cache" name="qt_cache" onchange="generatePreview();" /></td>
+										<td><label for="qt_cache">{$lang_media_cache}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_controller" name="qt_controller" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="qt_controller">{$lang_media_controller}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_correction" name="qt_correction" onchange="generatePreview();" /></td>
+										<td><label for="qt_correction">{$lang_media_correction}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_enablejavascript" name="qt_enablejavascript" onchange="generatePreview();" /></td>
+										<td><label for="qt_enablejavascript">{$lang_media_enablejavascript}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_kioskmode" name="qt_kioskmode" onchange="generatePreview();" /></td>
+										<td><label for="qt_kioskmode">{$lang_media_kioskmode}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_autohref" name="qt_autohref" onchange="generatePreview();" /></td>
+										<td><label for="qt_autohref">{$lang_media_autohref}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_playeveryframe" name="qt_playeveryframe" onchange="generatePreview();" /></td>
+										<td><label for="qt_playeveryframe">{$lang_media_playeveryframe}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="qt_targetcache" name="qt_targetcache" onchange="generatePreview();" /></td>
+										<td><label for="qt_targetcache">{$lang_media_targetcache}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="qt_scale">{$lang_media_scale}</label></td>
+							<td><select id="qt_scale" name="qt_scale" class="mceEditableSelect" onchange="generatePreview();">
+									<option value="">{$lang_not_set}</option> 
+									<option value="tofit">tofit</option>
+									<option value="aspect">aspect</option>
+								</select>
+							</td>
+
+							<td colspan="2">&nbsp;</td>
+						</tr>
+
+						<tr>
+							<td><label for="qt_starttime">{$lang_media_starttime}</label></td>
+							<td><input type="text" id="qt_starttime" name="qt_starttime" onchange="generatePreview();" /></td>
+
+							<td><label for="qt_endtime">{$lang_media_endtime}</label></td>
+							<td><input type="text" id="qt_endtime" name="qt_endtime" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="qt_target">{$lang_media_target}</label></td>
+							<td><input type="text" id="qt_target" name="qt_target" onchange="generatePreview();" /></td>
+
+							<td><label for="qt_href">{$lang_media_href}</label></td>
+							<td><input type="text" id="qt_href" name="qt_href" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="qt_qtsrcchokespeed">{$lang_media_qtsrcchokespeed}</label></td>
+							<td><input type="text" id="qt_qtsrcchokespeed" name="qt_qtsrcchokespeed" onchange="generatePreview();" /></td>
+
+							<td><label for="qt_volume">{$lang_media_volume}</label></td>
+							<td><input type="text" id="qt_volume" name="qt_volume" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="qt_qtsrc">{$lang_media_qtsrc}</label></td>
+							<td colspan="4">
+							<table border="0" cellspacing="0" cellpadding="0">
+								  <tr>
+									<td><input type="text" id="qt_qtsrc" name="qt_qtsrc" onchange="generatePreview();" /></td>
+									<td id="qtsrcfilebrowsercontainer">&nbsp;</td>
+								  </tr>
+							</table>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="wmp_options">
+					<legend>{$lang_media_wmp_options}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="wmp_autostart" name="wmp_autostart" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="wmp_autostart">{$lang_media_autostart}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="wmp_enabled" name="wmp_enabled" onchange="generatePreview();" /></td>
+										<td><label for="wmp_enabled">{$lang_media_enabled}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="wmp_enablecontextmenu" name="wmp_enablecontextmenu" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="wmp_enablecontextmenu">{$lang_media_menu}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="wmp_fullscreen" name="wmp_fullscreen" onchange="generatePreview();" /></td>
+										<td><label for="wmp_fullscreen">{$lang_media_fullscreen}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="wmp_invokeurls" name="wmp_invokeurls" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="wmp_invokeurls">{$lang_media_invokeurls}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="wmp_mute" name="wmp_mute" onchange="generatePreview();" /></td>
+										<td><label for="wmp_mute">{$lang_media_mute}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="wmp_stretchtofit" name="wmp_stretchtofit" onchange="generatePreview();" /></td>
+										<td><label for="wmp_stretchtofit">{$lang_media_stretchtofit}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="wmp_windowlessvideo" name="wmp_windowlessvideo" onchange="generatePreview();" /></td>
+										<td><label for="wmp_windowlessvideo">{$lang_media_windowlessvideo}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="wmp_balance">{$lang_media_balance}</label></td>
+							<td><input type="text" id="wmp_balance" name="wmp_balance" onchange="generatePreview();" /></td>
+
+							<td><label for="wmp_baseurl">{$lang_media_baseurl}</label></td>
+							<td><input type="text" id="wmp_baseurl" name="wmp_baseurl" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="wmp_captioningid">{$lang_media_captioningid}</label></td>
+							<td><input type="text" id="wmp_captioningid" name="wmp_captioningid" onchange="generatePreview();" /></td>
+
+							<td><label for="wmp_currentmarker">{$lang_media_currentmarker}</label></td>
+							<td><input type="text" id="wmp_currentmarker" name="wmp_currentmarker" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="wmp_currentposition">{$lang_media_currentposition}</label></td>
+							<td><input type="text" id="wmp_currentposition" name="wmp_currentposition" onchange="generatePreview();" /></td>
+
+							<td><label for="wmp_defaultframe">{$lang_media_defaultframe}</label></td>
+							<td><input type="text" id="wmp_defaultframe" name="wmp_defaultframe" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="wmp_playcount">{$lang_media_playcount}</label></td>
+							<td><input type="text" id="wmp_playcount" name="wmp_playcount" onchange="generatePreview();" /></td>
+
+							<td><label for="wmp_rate">{$lang_media_rate}</label></td>
+							<td><input type="text" id="wmp_rate" name="wmp_rate" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="wmp_uimode">{$lang_media_uimode}</label></td>
+							<td><input type="text" id="wmp_uimode" name="wmp_uimode" onchange="generatePreview();" /></td>
+
+							<td><label for="wmp_volume">{$lang_media_volume}</label></td>
+							<td><input type="text" id="wmp_volume" name="wmp_volume" onchange="generatePreview();" /></td>
+						</tr>
+
+					</table>
+				</fieldset>
+
+				<fieldset id="rmp_options">
+					<legend>{$lang_media_rmp_options}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="rmp_autostart" name="rmp_autostart" onchange="generatePreview();" /></td>
+										<td><label for="rmp_autostart">{$lang_media_autostart}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="rmp_loop" name="rmp_loop" onchange="generatePreview();" /></td>
+										<td><label for="rmp_loop">{$lang_media_loop}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="rmp_autogotourl" name="rmp_autogotourl" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="rmp_autogotourl">{$lang_media_autogotourl}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="rmp_center" name="rmp_center" onchange="generatePreview();" /></td>
+										<td><label for="rmp_center">{$lang_media_center}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="rmp_imagestatus" name="rmp_imagestatus" checked="checked" onchange="generatePreview();" /></td>
+										<td><label for="rmp_imagestatus">{$lang_media_imagestatus}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="rmp_maintainaspect" name="rmp_maintainaspect" onchange="generatePreview();" /></td>
+										<td><label for="rmp_maintainaspect">{$lang_media_maintainaspect}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="rmp_nojava" name="rmp_nojava" onchange="generatePreview();" /></td>
+										<td><label for="rmp_nojava">{$lang_media_nojava}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="rmp_prefetch" name="rmp_prefetch" onchange="generatePreview();" /></td>
+										<td><label for="rmp_prefetch">{$lang_media_prefetch}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="rmp_shuffle" name="rmp_shuffle" onchange="generatePreview();" /></td>
+										<td><label for="rmp_shuffle">{$lang_media_shuffle}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								&nbsp;
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="rmp_console">{$lang_media_console}</label></td>
+							<td><input type="text" id="rmp_console" name="rmp_console" onchange="generatePreview();" /></td>
+
+							<td><label for="rmp_controls">{$lang_media_controls}</label></td>
+							<td><input type="text" id="rmp_controls" name="rmp_controls" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="rmp_numloop">{$lang_media_numloop}</label></td>
+							<td><input type="text" id="rmp_numloop" name="rmp_numloop" onchange="generatePreview();" /></td>
+
+							<td><label for="rmp_scriptcallbacks">{$lang_media_scriptcallbacks}</label></td>
+							<td><input type="text" id="rmp_scriptcallbacks" name="rmp_scriptcallbacks" onchange="generatePreview();" /></td>
+						</tr>
+					</table>
+				</fieldset>
+
+				<fieldset id="shockwave_options">
+					<legend>{$lang_media_shockwave_options}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td><label for="shockwave_swstretchstyle">{$lang_media_swstretchstyle}</label></td>
+							<td>
+								<select id="shockwave_swstretchstyle" name="shockwave_swstretchstyle" onchange="generatePreview();">
+									<option value="none">{$lang_not_set}</option>
+									<option value="meet">Meet</option>
+									<option value="fill">Fill</option>
+									<option value="stage">Stage</option>
+								</select>
+							</td>
+
+							<td><label for="shockwave_swvolume">{$lang_media_volume}</label></td>
+							<td><input type="text" id="shockwave_swvolume" name="shockwave_swvolume" onchange="generatePreview();" /></td>
+						</tr>
+
+						<tr>
+							<td><label for="shockwave_swstretchhalign">{$lang_media_swstretchhalign}</label></td>
+							<td>
+								<select id="shockwave_swstretchhalign" name="shockwave_swstretchhalign" onchange="generatePreview();">
+									<option value="none">{$lang_not_set}</option>
+									<option value="left">{$lang_media_align_left}</option>
+									<option value="center">{$lang_media_align_center}</option>
+									<option value="right">{$lang_media_align_right}</option>
+								</select>
+							</td>
+
+							<td><label for="shockwave_swstretchvalign">{$lang_media_swstretchvalign}</label></td>
+							<td>
+								<select id="shockwave_swstretchvalign" name="shockwave_swstretchvalign" onchange="generatePreview();">
+									<option value="none">{$lang_not_set}</option>
+									<option value="meet">Meet</option>
+									<option value="fill">Fill</option>
+									<option value="stage">Stage</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="shockwave_autostart" name="shockwave_autostart" onchange="generatePreview();" checked="checked" /></td>
+										<td><label for="shockwave_autostart">{$lang_media_autostart}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="shockwave_sound" name="shockwave_sound" onchange="generatePreview();" checked="checked" /></td>
+										<td><label for="shockwave_sound">{$lang_media_sound}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+
+
+						<tr>
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="shockwave_swliveconnect" name="shockwave_swliveconnect" onchange="generatePreview();" /></td>
+										<td><label for="shockwave_swliveconnect">{$lang_media_liveconnect}</label></td>
+									</tr>
+								</table>
+							</td>
+
+							<td colspan="2">
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input type="checkbox" class="checkbox" id="shockwave_progress" name="shockwave_progress" onchange="generatePreview();" checked="checked" /></td>
+										<td><label for="shockwave_progress">{$lang_media_progress}</label></td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div style="float: left">
+				<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertMedia();" />
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+	</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/nonbreaking/editor_plugin.js b/tinyMCE/plugins/nonbreaking/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..5b1279720aa052267e14b59fea40e14e18070076
--- /dev/null
+++ b/tinyMCE/plugins/nonbreaking/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('nonbreaking');var TinyMCE_NonBreakingPlugin={getInfo:function(){return{longname:'Nonbreaking space',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"nonbreaking":return tinyMCE.getButtonHTML(cn,'lang_nonbreaking_desc','{$pluginurl}/images/nonbreaking.gif','mceNonBreaking',false)}return""},execCommand:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id),h;switch(command){case"mceNonBreaking":h=(inst.visualChars&&inst.visualChars.state)?'<span class="mceItemHiddenVisualChar">&middot;</span>':'&nbsp;';tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,h);return true}return false},handleEvent:function(e){var inst,h;if(!tinyMCE.isOpera&&e.type=='keydown'&&e.keyCode==9&&tinyMCE.getParam('nonbreaking_force_tab',false)){inst=tinyMCE.selectedInstance;h=(inst.visualChars&&inst.visualChars.state)?'<span class="mceItemHiddenVisualChar">&middot;&middot;&middot;</span>':'&nbsp;&nbsp;&nbsp;';tinyMCE.execInstanceCommand(inst.editorId,'mceInsertContent',false,h);tinyMCE.cancelEvent(e);return false}return true}};tinyMCE.addPlugin("nonbreaking",TinyMCE_NonBreakingPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/nonbreaking/editor_plugin_src.js b/tinyMCE/plugins/nonbreaking/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..73d547855f4ccbf5da779894edb0ee5ec8105d1b
--- /dev/null
+++ b/tinyMCE/plugins/nonbreaking/editor_plugin_src.js
@@ -0,0 +1,62 @@
+/**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('nonbreaking');
+
+var TinyMCE_NonBreakingPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Nonbreaking space',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "nonbreaking":
+				return tinyMCE.getButtonHTML(cn, 'lang_nonbreaking_desc', '{$pluginurl}/images/nonbreaking.gif', 'mceNonBreaking', false);
+		}
+
+		return "";
+	},
+
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		var inst = tinyMCE.getInstanceById(editor_id), h;
+
+		switch (command) {
+			case "mceNonBreaking":
+				h = (inst.visualChars && inst.visualChars.state) ? '<span class="mceItemHiddenVisualChar">&middot;</span>' : '&nbsp;';
+				tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, h);
+				return true;
+		}
+
+		return false;
+	},
+
+	handleEvent : function(e) {
+		var inst, h;
+
+		if (!tinyMCE.isOpera && e.type == 'keydown' && e.keyCode == 9 && tinyMCE.getParam('nonbreaking_force_tab', false)) {
+			inst = tinyMCE.selectedInstance;
+
+			h = (inst.visualChars && inst.visualChars.state) ? '<span class="mceItemHiddenVisualChar">&middot;&middot;&middot;</span>' : '&nbsp;&nbsp;&nbsp;';
+			tinyMCE.execInstanceCommand(inst.editorId, 'mceInsertContent', false, h);
+
+			tinyMCE.cancelEvent(e);
+			return false;
+		}
+
+		return true;
+	}
+};
+
+tinyMCE.addPlugin("nonbreaking", TinyMCE_NonBreakingPlugin);
diff --git a/tinyMCE/plugins/nonbreaking/images/nonbreaking.gif b/tinyMCE/plugins/nonbreaking/images/nonbreaking.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a731fc91acc2ddcb8a6ecec7ef1698654d766298
Binary files /dev/null and b/tinyMCE/plugins/nonbreaking/images/nonbreaking.gif differ
diff --git a/tinyMCE/plugins/nonbreaking/langs/en.js b/tinyMCE/plugins/nonbreaking/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd49a646c5bfda59e5562753b6c90580b9ef4a30
--- /dev/null
+++ b/tinyMCE/plugins/nonbreaking/langs/en.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('nonbreaking',{
+desc : 'Insert non-breaking space character'
+});
diff --git a/tinyMCE/plugins/noneditable/css/noneditable.css b/tinyMCE/plugins/noneditable/css/noneditable.css
new file mode 100644
index 0000000000000000000000000000000000000000..be0ab65a290614e21bc5d42337f1669e14769a7f
--- /dev/null
+++ b/tinyMCE/plugins/noneditable/css/noneditable.css
@@ -0,0 +1,9 @@
+/* This is the CSS file for the noneditable elements plugin */
+
+.mceEditable {
+	/*border: 1px dotted #0000cc;*/
+}
+
+.mceNonEditable {
+	/*border: 1px dotted #cc0000;*/
+}
diff --git a/tinyMCE/plugins/noneditable/editor_plugin.js b/tinyMCE/plugins/noneditable/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..6060981a656585861d233ae61872a339911a1fcb
--- /dev/null
+++ b/tinyMCE/plugins/noneditable/editor_plugin.js
@@ -0,0 +1 @@
+var TinyMCE_NonEditablePlugin={getInfo:function(){return{longname:'Non editable elements',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/noneditable/css/noneditable.css");if(tinyMCE.isMSIE5_0)tinyMCE.settings['plugins']=tinyMCE.settings['plugins'].replace(/noneditable/gi,'Noneditable')},handleEvent:function(e){return this._moveSelection(e,tinyMCE.selectedInstance)},cleanup:function(type,content,inst){switch(type){case"insert_to_editor_dom":var nodes,i,editClass,nonEditClass,editable,elm;if(tinyMCE.isGecko)return content;nodes=tinyMCE.getNodeTree(content,[],1);editClass=tinyMCE.getParam("noneditable_editable_class","mceEditable");nonEditClass=tinyMCE.getParam("noneditable_noneditable_class","mceNonEditable");for(i=0;i<nodes.length;i++){elm=nodes[i];editable=tinyMCE.getAttrib(elm,"contenteditable");if(new RegExp("true|false","gi").test(editable))TinyMCE_NonEditablePlugin._setEditable(elm,editable=="true");if(tinyMCE.isIE){if(tinyMCE.hasCSSClass(elm,editClass))elm.contentEditable=true;if(tinyMCE.hasCSSClass(elm,nonEditClass))elm.contentEditable=false}}break;case"insert_to_editor":var editClass=tinyMCE.getParam("noneditable_editable_class","mceEditable");var nonEditClass=tinyMCE.getParam("noneditable_noneditable_class","mceNonEditable");content=content.replace(/mceItemEditable/g,editClass);content=content.replace(/mceItemNonEditable/g,nonEditClass);if(tinyMCE.isIE&&(content.indexOf(editClass)!=-1||content.indexOf(nonEditClass)!=-1)){content=content.replace(new RegExp("class=\"(.+)("+editClass+")\"","gi"),'class="$1$2" contenteditable="true"');content=content.replace(new RegExp("class=\"(.+)("+nonEditClass+")\"","gi"),'class="$1$2" contenteditable="false"');content=content.replace(new RegExp("class=\"("+editClass+")([^\"]*)\"","gi"),'class="$1$2" contenteditable="true"');content=content.replace(new RegExp("class=\"("+nonEditClass+")([^\"]*)\"","gi"),'class="$1$2" contenteditable="false"');content=content.replace(new RegExp("class=\"(.+)("+editClass+")([^\"]*)\"","gi"),'class="$1$2$3" contenteditable="true"');content=content.replace(new RegExp("class=\"(.+)("+nonEditClass+")([^\"]*)\"","gi"),'class="$1$2$3" contenteditable="false"')}break;case"get_from_editor_dom":if(tinyMCE.isGecko)return content;if(tinyMCE.getParam("noneditable_leave_contenteditable",false)){var nodes=tinyMCE.getNodeTree(content,new Array(),1);for(var i=0;i<nodes.length;i++)nodes[i].removeAttribute("contenteditable")}break}return content},_moveSelection:function(e,inst){var s,r,sc,ec,el,c=tinyMCE.getParam('noneditable_editable_class','mceNonEditable');if(!inst)return true;if(tinyMCE.isGecko){s=inst.selection.getSel();r=s.getRangeAt(0);sc=tinyMCE.getParentNode(r.startContainer,function(n){return tinyMCE.hasCSSClass(n,c)});ec=tinyMCE.getParentNode(r.endContainer,function(n){return tinyMCE.hasCSSClass(n,c)});sc&&r.setStartBefore(sc);ec&&r.setEndAfter(ec);if(sc||ec){if(e.type=='keypress'&&e.keyCode==39){el=sc||ec;}s.removeAllRanges();s.addRange(r);return tinyMCE.cancelEvent(e)}}return true},_setEditable:function(elm,state){var editClass=tinyMCE.getParam("noneditable_editable_class","mceEditable");var nonEditClass=tinyMCE.getParam("noneditable_noneditable_class","mceNonEditable");var className=elm.className?elm.className:"";if(className.indexOf(editClass)!=-1||className.indexOf(nonEditClass)!=-1)return;if((className=tinyMCE.getAttrib(elm,"class"))!="")className+=" ";className+=state?editClass:nonEditClass;elm.setAttribute("class",className);elm.className=className}};tinyMCE.addPlugin("noneditable",TinyMCE_NonEditablePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/noneditable/editor_plugin_src.js b/tinyMCE/plugins/noneditable/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..df3000c5c87c15c73efbf50816944773c783484e
--- /dev/null
+++ b/tinyMCE/plugins/noneditable/editor_plugin_src.js
@@ -0,0 +1,153 @@
+/**
+ * $Id: editor_plugin_src.js 205 2007-02-12 18:58:29Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+var TinyMCE_NonEditablePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Non editable elements',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/noneditable/css/noneditable.css");
+
+		// Ugly hack
+		if (tinyMCE.isMSIE5_0)
+			tinyMCE.settings['plugins'] = tinyMCE.settings['plugins'].replace(/noneditable/gi, 'Noneditable');
+	},
+
+	handleEvent : function(e) {
+		return this._moveSelection(e, tinyMCE.selectedInstance);
+	},
+
+	cleanup : function(type, content, inst) {
+		switch (type) {
+			case "insert_to_editor_dom":
+				var nodes, i, editClass, nonEditClass, editable, elm;
+
+				// Pass through Gecko
+				if (tinyMCE.isGecko)
+					return content;
+
+				nodes = tinyMCE.getNodeTree(content, [], 1);
+
+				editClass = tinyMCE.getParam("noneditable_editable_class", "mceEditable");
+				nonEditClass = tinyMCE.getParam("noneditable_noneditable_class", "mceNonEditable");
+
+				for (i=0; i<nodes.length; i++) {
+					elm = nodes[i];
+
+					// Convert contenteditable to classes
+					editable = tinyMCE.getAttrib(elm, "contenteditable");
+					if (new RegExp("true|false","gi").test(editable))
+						TinyMCE_NonEditablePlugin._setEditable(elm, editable == "true");
+
+					if (tinyMCE.isIE) {
+						if (tinyMCE.hasCSSClass(elm, editClass))
+							elm.contentEditable = true;
+
+						if (tinyMCE.hasCSSClass(elm, nonEditClass))
+							elm.contentEditable = false;
+					}
+				}
+
+				break;
+
+			case "insert_to_editor":
+				var editClass = tinyMCE.getParam("noneditable_editable_class", "mceEditable");
+				var nonEditClass = tinyMCE.getParam("noneditable_noneditable_class", "mceNonEditable");
+
+				// Replace mceItem to new school
+				content = content.replace(/mceItemEditable/g, editClass);
+				content = content.replace(/mceItemNonEditable/g, nonEditClass);
+
+				if (tinyMCE.isIE && (content.indexOf(editClass) != -1 || content.indexOf(nonEditClass) != -1)) {
+					content = content.replace(new RegExp("class=\"(.+)(" + editClass + ")\"", "gi"), 'class="$1$2" contenteditable="true"');
+					content = content.replace(new RegExp("class=\"(.+)(" + nonEditClass + ")\"", "gi"), 'class="$1$2" contenteditable="false"');
+					content = content.replace(new RegExp("class=\"(" + editClass + ")([^\"]*)\"", "gi"), 'class="$1$2" contenteditable="true"');
+					content = content.replace(new RegExp("class=\"(" + nonEditClass + ")([^\"]*)\"", "gi"), 'class="$1$2" contenteditable="false"');
+					content = content.replace(new RegExp("class=\"(.+)(" + editClass + ")([^\"]*)\"", "gi"), 'class="$1$2$3" contenteditable="true"');
+					content = content.replace(new RegExp("class=\"(.+)(" + nonEditClass + ")([^\"]*)\"", "gi"), 'class="$1$2$3" contenteditable="false"');
+				}
+
+				break;
+
+			case "get_from_editor_dom":
+				// Pass through Gecko
+				if (tinyMCE.isGecko)
+					return content;
+
+				if (tinyMCE.getParam("noneditable_leave_contenteditable", false)) {
+					var nodes = tinyMCE.getNodeTree(content, new Array(), 1);
+
+					for (var i=0; i<nodes.length; i++)
+						nodes[i].removeAttribute("contenteditable");
+				}
+
+				break;
+		}
+
+		return content;
+	},
+
+	_moveSelection : function(e, inst) {
+		var s, r, sc, ec, el, c = tinyMCE.getParam('noneditable_editable_class', 'mceNonEditable');
+
+		if (!inst)
+			return true;
+
+		// Always select whole element
+		if (tinyMCE.isGecko) {
+			s = inst.selection.getSel();
+			r = s.getRangeAt(0);
+			sc = tinyMCE.getParentNode(r.startContainer, function (n) {return tinyMCE.hasCSSClass(n, c);});
+			ec = tinyMCE.getParentNode(r.endContainer, function (n) {return tinyMCE.hasCSSClass(n, c);});
+
+			sc && r.setStartBefore(sc);
+			ec && r.setEndAfter(ec);
+
+			if (sc || ec) {
+				if (e.type == 'keypress' && e.keyCode == 39) {
+					el = sc || ec;
+
+					// Try!!
+				}
+
+				s.removeAllRanges();
+				s.addRange(r);
+
+				return tinyMCE.cancelEvent(e);
+			}
+		}
+
+		return true;
+	},
+
+	_setEditable : function(elm, state) {
+		var editClass = tinyMCE.getParam("noneditable_editable_class", "mceEditable");
+		var nonEditClass = tinyMCE.getParam("noneditable_noneditable_class", "mceNonEditable");
+
+		var className = elm.className ? elm.className : "";
+
+		if (className.indexOf(editClass) != -1 || className.indexOf(nonEditClass) != -1)
+			return;
+
+		if ((className = tinyMCE.getAttrib(elm, "class")) != "")
+			className += " ";
+
+		className += state ? editClass : nonEditClass;
+
+		elm.setAttribute("class", className);
+		elm.className = className;
+	}
+};
+
+tinyMCE.addPlugin("noneditable", TinyMCE_NonEditablePlugin);
diff --git a/tinyMCE/plugins/noneditable/readme.txt b/tinyMCE/plugins/noneditable/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/noneditable/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/paste/blank.htm b/tinyMCE/plugins/paste/blank.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1ddf8291e9e5c0f6056de814370a2b4b5be027e7
--- /dev/null
+++ b/tinyMCE/plugins/paste/blank.htm
@@ -0,0 +1,19 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>blank_page</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+	<script language="javascript">
+		function init() {
+			document.body.contentEditable = true;
+			document.designMode = 'on';
+			parent.initIframe(document);
+			window.focus();
+		}
+	</script>
+	<link href="css/blank.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body onload="init();">
+
+</body>
+</html>
diff --git a/tinyMCE/plugins/paste/css/blank.css b/tinyMCE/plugins/paste/css/blank.css
new file mode 100644
index 0000000000000000000000000000000000000000..eca411a4226a6260e250a8675e43fdea08b6bddd
--- /dev/null
+++ b/tinyMCE/plugins/paste/css/blank.css
@@ -0,0 +1,13 @@
+body {
+	background-color: #FFFFFF;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+	scrollbar-3dlight-color: #F0F0EE;
+	scrollbar-arrow-color: #676662;
+	scrollbar-base-color: #F0F0EE;
+	scrollbar-darkshadow-color: #DDDDDD;
+	scrollbar-face-color: #E0E0DD;
+	scrollbar-highlight-color: #F0F0EE;
+	scrollbar-shadow-color: #F0F0EE;
+	scrollbar-track-color: #F5F5F5;
+}
diff --git a/tinyMCE/plugins/paste/css/pasteword.css b/tinyMCE/plugins/paste/css/pasteword.css
new file mode 100644
index 0000000000000000000000000000000000000000..b3be6270bbb14290a3f97210e26098dfe62fce36
--- /dev/null
+++ b/tinyMCE/plugins/paste/css/pasteword.css
@@ -0,0 +1,3 @@
+.sourceIframe {
+	border: 1px solid #808080;
+}
diff --git a/tinyMCE/plugins/paste/editor_plugin.js b/tinyMCE/plugins/paste/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed901bbd5f0ecaebbefdc28324f2e2e4be62cf06
--- /dev/null
+++ b/tinyMCE/plugins/paste/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('paste');var TinyMCE_PastePlugin={getInfo:function(){return{longname:'Paste text/word',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(tinyMCE.isMSIE&&tinyMCE.getParam("paste_auto_cleanup_on_paste",false))tinyMCE.addEvent(inst.getBody(),"paste",TinyMCE_PastePlugin._handlePasteEvent)},handleEvent:function(e){if(!tinyMCE.isRealIE&&tinyMCE.getParam("paste_auto_cleanup_on_paste",false)&&e.ctrlKey&&e.keyCode==86&&e.type=="keydown"){window.setTimeout('tinyMCE.selectedInstance.execCommand("mcePasteText",true)',1);return tinyMCE.cancelEvent(e)}return true},getControlHTML:function(cn){switch(cn){case"pastetext":return tinyMCE.getButtonHTML(cn,'lang_paste_text_desc','{$pluginurl}/images/pastetext.gif','mcePasteText',true);case"pasteword":return tinyMCE.getButtonHTML(cn,'lang_paste_word_desc','{$pluginurl}/images/pasteword.gif','mcePasteWord',true);case"selectall":return tinyMCE.getButtonHTML(cn,'lang_selectall_desc','{$pluginurl}/images/selectall.gif','mceSelectAll',true)}return''},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mcePasteText":if(user_interface){if((tinyMCE.isMSIE&&!tinyMCE.isOpera)&&!tinyMCE.getParam('paste_use_dialog',false))TinyMCE_PastePlugin._insertText(clipboardData.getData("Text"),true);else{var template=new Array();template['file']='../../plugins/paste/pastetext.htm';template['width']=450;template['height']=400;var plain_text="";tinyMCE.openWindow(template,{editor_id:editor_id,plain_text:plain_text,resizable:"yes",scrollbars:"no",inline:"yes",mceDo:'insert'})}}else TinyMCE_PastePlugin._insertText(value['html'],value['linebreaks']);return true;case"mcePasteWord":if(user_interface){if((tinyMCE.isMSIE&&!tinyMCE.isOpera)&&!tinyMCE.getParam('paste_use_dialog',false)){TinyMCE_PastePlugin._insertWordContent(TinyMCE_PastePlugin._clipboardHTML())}else{var template=new Array();template['file']='../../plugins/paste/pasteword.htm';template['width']=450;template['height']=400;var plain_text="";tinyMCE.openWindow(template,{editor_id:editor_id,plain_text:plain_text,resizable:"yes",scrollbars:"no",inline:"yes",mceDo:'insert'})}}else TinyMCE_PastePlugin._insertWordContent(value);return true;case"mceSelectAll":tinyMCE.execInstanceCommand(editor_id,'selectall');return true}return false},_handlePasteEvent:function(e){switch(e.type){case"paste":var html=TinyMCE_PastePlugin._clipboardHTML();var r,inst=tinyMCE.selectedInstance;if(inst&&(r=inst.getRng())&&r.text.length>0)tinyMCE.execCommand('delete');if(html&&html.length>0)tinyMCE.execCommand('mcePasteWord',false,html);tinyMCE.cancelEvent(e);return false}return true},_insertText:function(content,bLinebreaks){if(content&&content.length>0){if(bLinebreaks){if(tinyMCE.getParam("paste_create_paragraphs",true)){var rl=tinyMCE.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);content=tinyMCE.regexpReplace(content,"\r\n\r\n","</p><p>","gi");content=tinyMCE.regexpReplace(content,"\r\r","</p><p>","gi");content=tinyMCE.regexpReplace(content,"\n\n","</p><p>","gi");if((pos=content.indexOf('</p><p>'))!=-1){tinyMCE.execCommand("Delete");var node=tinyMCE.selectedInstance.getFocusElement();var breakElms=new Array();do{if(node.nodeType==1){if(node.nodeName=="TD"||node.nodeName=="BODY")break;breakElms[breakElms.length]=node}}while(node=node.parentNode);var before="",after="</p>";before+=content.substring(0,pos);for(var i=0;i<breakElms.length;i++){before+="</"+breakElms[i].nodeName+">";after+="<"+breakElms[(breakElms.length-1)-i].nodeName+">"}before+="<p>";content=before+content.substring(pos+7)+after}}if(tinyMCE.getParam("paste_create_linebreaks",true)){content=tinyMCE.regexpReplace(content,"\r\n","<br />","gi");content=tinyMCE.regexpReplace(content,"\r","<br />","gi");content=tinyMCE.regexpReplace(content,"\n","<br />","gi")}}tinyMCE.execCommand("mceInsertRawHTML",false,content)}},_insertWordContent:function(content){if(content&&content.length>0){var bull=String.fromCharCode(8226);var middot=String.fromCharCode(183);var cb;if((cb=tinyMCE.getParam("paste_insert_word_content_callback",""))!="")content=eval(cb+"('before', content)");var rl=tinyMCE.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);if(tinyMCE.getParam("paste_convert_headers_to_strong",false)){content=content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>','gi'),'<p><b>$1</b></p>')}content=content.replace(new RegExp('tab-stops: list [0-9]+.0pt">','gi'),'">'+"--list--");content=content.replace(new RegExp(bull+"(.*?)<BR>","gi"),"<p>"+middot+"$1</p>");content=content.replace(new RegExp('<SPAN style="mso-list: Ignore">','gi'),"<span>"+bull);content=content.replace(/<o:p><\/o:p>/gi,"");content=content.replace(new RegExp('<br style="page-break-before: always;.*>','gi'),'-- page break --');content=content.replace(new RegExp('<(!--)([^>]*)(--)>','g'),"");if(tinyMCE.getParam("paste_remove_spans",true))content=content.replace(/<\/?span[^>]*>/gi,"");if(tinyMCE.getParam("paste_remove_styles",true))content=content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)','gi'),"<$1$3");content=content.replace(/<\/?font[^>]*>/gi,"");switch(tinyMCE.getParam("paste_strip_class_attributes","all")){case"all":content=content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3");break;case"mso":content=content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)','gi'),"<$1$3");break}content=content.replace(new RegExp('href="?'+TinyMCE_PastePlugin._reEscape(""+document.location)+'','gi'),'href="'+tinyMCE.settings['document_base_url']);content=content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");content=content.replace(/<\\?\?xml[^>]*>/gi,"");content=content.replace(/<\/?\w+:[^>]*>/gi,"");content=content.replace(/-- page break --\s*<p>&nbsp;<\/p>/gi,"");content=content.replace(/-- page break --/gi,"");if(!tinyMCE.settings['force_p_newlines']){content=content.replace('','','gi');content=content.replace('</p>','<br /><br />','gi')}if(!tinyMCE.isMSIE&&!tinyMCE.settings['force_p_newlines']){content=content.replace(/<\/?p[^>]*>/gi,"")}content=content.replace(/<\/?div[^>]*>/gi,"");if(tinyMCE.getParam("paste_convert_middot_lists",true)){var div=document.createElement("div");div.innerHTML=content;var className=tinyMCE.getParam("paste_unindented_list_class","unIndentedList");while(TinyMCE_PastePlugin._convertMiddots(div,"--list--"));while(TinyMCE_PastePlugin._convertMiddots(div,middot,className));while(TinyMCE_PastePlugin._convertMiddots(div,bull));content=div.innerHTML}if(tinyMCE.getParam("paste_convert_headers_to_strong",false)){content=content.replace(/<h[1-6]>&nbsp;<\/h[1-6]>/gi,'<p>&nbsp;&nbsp;</p>');content=content.replace(/<h[1-6]>/gi,'<p><b>');content=content.replace(/<\/h[1-6]>/gi,'</b></p>');content=content.replace(/<b>&nbsp;<\/b>/gi,'<b>&nbsp;&nbsp;</b>');content=content.replace(/^(&nbsp;)*/gi,'')}content=content.replace(/--list--/gi,"");if((cb=tinyMCE.getParam("paste_insert_word_content_callback",""))!="")content=eval(cb+"('after', content)");tinyMCE.execCommand("mceInsertContent",false,content);if(tinyMCE.getParam('paste_force_cleanup_wordpaste',true))window.setTimeout('tinyMCE.execCommand("mceCleanup");',1);}},_reEscape:function(s){var l="?.\\*[](){}+^$:";var o="";for(var i=0;i<s.length;i++){var c=s.charAt(i);if(l.indexOf(c)!=-1)o+='\\'+c;else o+=c}return o},_convertMiddots:function(div,search,class_name){var mdot=String.fromCharCode(183);var bull=String.fromCharCode(8226);var nodes=div.getElementsByTagName("p");var prevul;for(var i=0;i<nodes.length;i++){var p=nodes[i];if(p.innerHTML.indexOf(search)==0){var ul=document.createElement("ul");if(class_name)ul.className=class_name;var li=document.createElement("li");li.innerHTML=p.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--|&nbsp;',"gi"),'');ul.appendChild(li);var np=p.nextSibling;while(np){if(np.nodeType==3&&new RegExp('^\\s$','m').test(np.nodeValue)){np=np.nextSibling;continue}if(search==mdot){if(np.nodeType==1&&new RegExp('^o(\\s+|&nbsp;)').test(np.innerHTML)){if(!prevul){prevul=ul;ul=document.createElement("ul");prevul.appendChild(ul)}np.innerHTML=np.innerHTML.replace(/^o/,'')}else{if(prevul){ul=prevul;prevul=null}if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break}}else{if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break}var cp=np.nextSibling;var li=document.createElement("li");li.innerHTML=np.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--|&nbsp;',"gi"),'');np.parentNode.removeChild(np);ul.appendChild(li);np=cp}p.parentNode.replaceChild(ul,p);return true}}return false},_clipboardHTML:function(){var div=document.getElementById('_TinyMCE_clipboardHTML');if(!div){var div=document.createElement('DIV');div.id='_TinyMCE_clipboardHTML';with(div.style){visibility='hidden';overflow='hidden';position='absolute';width=1;height=1}document.body.appendChild(div)}div.innerHTML='';var rng=document.body.createTextRange();rng.moveToElementText(div);rng.execCommand('Paste');var html=div.innerHTML;div.innerHTML='';return html}};tinyMCE.addPlugin("paste",TinyMCE_PastePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/paste/editor_plugin_src.js b/tinyMCE/plugins/paste/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..4704e69199ddd268a42f53d38f2869829b45923f
--- /dev/null
+++ b/tinyMCE/plugins/paste/editor_plugin_src.js
@@ -0,0 +1,395 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */ 
+tinyMCE.importPluginLanguagePack('paste');
+
+var TinyMCE_PastePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Paste text/word',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		if (tinyMCE.isMSIE && tinyMCE.getParam("paste_auto_cleanup_on_paste", false))
+			tinyMCE.addEvent(inst.getBody(), "paste", TinyMCE_PastePlugin._handlePasteEvent);
+	},
+
+	handleEvent : function(e) {
+		// Force paste dialog if non IE browser
+		if (!tinyMCE.isRealIE && tinyMCE.getParam("paste_auto_cleanup_on_paste", false) && e.ctrlKey && e.keyCode == 86 && e.type == "keydown") {
+			window.setTimeout('tinyMCE.selectedInstance.execCommand("mcePasteText",true)', 1);
+			return tinyMCE.cancelEvent(e);
+		}
+
+		return true;
+	},
+
+	getControlHTML : function(cn) { 
+		switch (cn) { 
+			case "pastetext":
+				return tinyMCE.getButtonHTML(cn, 'lang_paste_text_desc', '{$pluginurl}/images/pastetext.gif', 'mcePasteText', true);
+
+			case "pasteword":
+				return tinyMCE.getButtonHTML(cn, 'lang_paste_word_desc', '{$pluginurl}/images/pasteword.gif', 'mcePasteWord', true);
+
+			case "selectall":
+				return tinyMCE.getButtonHTML(cn, 'lang_selectall_desc', '{$pluginurl}/images/selectall.gif', 'mceSelectAll', true);
+		} 
+
+		return ''; 
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) { 
+		switch (command) { 
+			case "mcePasteText": 
+				if (user_interface) {
+					if ((tinyMCE.isMSIE && !tinyMCE.isOpera) && !tinyMCE.getParam('paste_use_dialog', false))
+						TinyMCE_PastePlugin._insertText(clipboardData.getData("Text"), true); 
+					else { 
+						var template = new Array(); 
+						template['file']	= '../../plugins/paste/pastetext.htm'; // Relative to theme 
+						template['width']  = 450; 
+						template['height'] = 400; 
+						var plain_text = ""; 
+						tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", inline : "yes", mceDo : 'insert'}); 
+					}
+				} else
+					TinyMCE_PastePlugin._insertText(value['html'], value['linebreaks']);
+
+				return true;
+
+			case "mcePasteWord": 
+				if (user_interface) {
+					if ((tinyMCE.isMSIE && !tinyMCE.isOpera) && !tinyMCE.getParam('paste_use_dialog', false)) {
+						TinyMCE_PastePlugin._insertWordContent(TinyMCE_PastePlugin._clipboardHTML());
+					} else { 
+						var template = new Array(); 
+						template['file']	= '../../plugins/paste/pasteword.htm'; // Relative to theme 
+						template['width']  = 450; 
+						template['height'] = 400; 
+						var plain_text = ""; 
+						tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", inline : "yes", mceDo : 'insert'});
+					}
+				} else
+					TinyMCE_PastePlugin._insertWordContent(value);
+
+				return true;
+
+			case "mceSelectAll":
+				tinyMCE.execInstanceCommand(editor_id, 'selectall'); 
+				return true; 
+
+		} 
+
+		// Pass to next handler in chain 
+		return false; 
+	},
+
+	// Private plugin internal methods
+
+	_handlePasteEvent : function(e) {
+		switch (e.type) {
+			case "paste":
+				var html = TinyMCE_PastePlugin._clipboardHTML();
+				var r, inst = tinyMCE.selectedInstance;
+
+				// Removes italic, strong etc, the if was needed due to bug #1437114
+				if (inst && (r = inst.getRng()) && r.text.length > 0)
+					tinyMCE.execCommand('delete');
+
+				if (html && html.length > 0)
+					tinyMCE.execCommand('mcePasteWord', false, html);
+
+				tinyMCE.cancelEvent(e);
+				return false;
+		}
+
+		return true;
+	},
+
+	_insertText : function(content, bLinebreaks) { 
+		if (content && content.length > 0) {
+			if (bLinebreaks) { 
+				// Special paragraph treatment 
+				if (tinyMCE.getParam("paste_create_paragraphs", true)) {
+					var rl = tinyMCE.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
+					for (var i=0; i<rl.length; i+=2)
+						content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
+
+					content = tinyMCE.regexpReplace(content, "\r\n\r\n", "</p><p>", "gi"); 
+					content = tinyMCE.regexpReplace(content, "\r\r", "</p><p>", "gi"); 
+					content = tinyMCE.regexpReplace(content, "\n\n", "</p><p>", "gi"); 
+
+					// Has paragraphs 
+					if ((pos = content.indexOf('</p><p>')) != -1) { 
+						tinyMCE.execCommand("Delete"); 
+
+						var node = tinyMCE.selectedInstance.getFocusElement(); 
+
+						// Get list of elements to break 
+						var breakElms = new Array(); 
+
+						do { 
+							if (node.nodeType == 1) { 
+								// Don't break tables and break at body 
+								if (node.nodeName == "TD" || node.nodeName == "BODY") 
+									break; 
+		
+								breakElms[breakElms.length] = node; 
+							} 
+						} while(node = node.parentNode); 
+
+						var before = "", after = "</p>"; 
+						before += content.substring(0, pos); 
+
+						for (var i=0; i<breakElms.length; i++) { 
+							before += "</" + breakElms[i].nodeName + ">"; 
+							after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">"; 
+						} 
+
+						before += "<p>"; 
+						content = before + content.substring(pos+7) + after; 
+					} 
+				} 
+
+				if (tinyMCE.getParam("paste_create_linebreaks", true)) {
+					content = tinyMCE.regexpReplace(content, "\r\n", "<br />", "gi"); 
+					content = tinyMCE.regexpReplace(content, "\r", "<br />", "gi"); 
+					content = tinyMCE.regexpReplace(content, "\n", "<br />", "gi"); 
+				}
+			} 
+		
+			tinyMCE.execCommand("mceInsertRawHTML", false, content); 
+		}
+	},
+
+	_insertWordContent : function(content) { 
+		if (content && content.length > 0) {
+			// Cleanup Word content
+			var bull = String.fromCharCode(8226);
+			var middot = String.fromCharCode(183);
+			var cb;
+
+			if ((cb = tinyMCE.getParam("paste_insert_word_content_callback", "")) != "")
+				content = eval(cb + "('before', content)");
+
+			var rl = tinyMCE.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');
+			for (var i=0; i<rl.length; i+=2)
+				content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);
+
+			if (tinyMCE.getParam("paste_convert_headers_to_strong", false)) {
+				content = content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>', 'gi'), '<p><b>$1</b></p>');
+			}
+
+			content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--");
+			content = content.replace(new RegExp(bull + "(.*?)<BR>", "gi"), "<p>" + middot + "$1</p>");
+			content = content.replace(new RegExp('<SPAN style="mso-list: Ignore">', 'gi'), "<span>" + bull); // Covert to bull list
+			content = content.replace(/<o:p><\/o:p>/gi, "");
+			content = content.replace(new RegExp('<br style="page-break-before: always;.*>', 'gi'), '-- page break --'); // Replace pagebreaks
+			content = content.replace(new RegExp('<(!--)([^>]*)(--)>', 'g'), "");  // Word comments
+
+			if (tinyMCE.getParam("paste_remove_spans", true))
+				content = content.replace(/<\/?span[^>]*>/gi, "");
+
+			if (tinyMCE.getParam("paste_remove_styles", true))
+				content = content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3");
+
+			content = content.replace(/<\/?font[^>]*>/gi, "");
+
+			// Strips class attributes.
+			switch (tinyMCE.getParam("paste_strip_class_attributes", "all")) {
+				case "all":
+					content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");
+					break;
+
+				case "mso":
+					content = content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)', 'gi'), "<$1$3");
+					break;
+			}
+
+			content = content.replace(new RegExp('href="?' + TinyMCE_PastePlugin._reEscape("" + document.location) + '', 'gi'), 'href="' + tinyMCE.settings['document_base_url']);
+			content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");
+			content = content.replace(/<\\?\?xml[^>]*>/gi, "");
+			content = content.replace(/<\/?\w+:[^>]*>/gi, "");
+			content = content.replace(/-- page break --\s*<p>&nbsp;<\/p>/gi, ""); // Remove pagebreaks
+			content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks
+
+	//		content = content.replace(/\/?&nbsp;*/gi, ""); &nbsp;
+	//		content = content.replace(/<p>&nbsp;<\/p>/gi, '');
+
+			if (!tinyMCE.settings['force_p_newlines']) {
+				content = content.replace('', '' ,'gi');
+				content = content.replace('</p>', '<br /><br />' ,'gi');
+			}
+
+			if (!tinyMCE.isMSIE && !tinyMCE.settings['force_p_newlines']) {
+				content = content.replace(/<\/?p[^>]*>/gi, "");
+			}
+
+			content = content.replace(/<\/?div[^>]*>/gi, "");
+
+			// Convert all middlot lists to UL lists
+			if (tinyMCE.getParam("paste_convert_middot_lists", true)) {
+				var div = document.createElement("div");
+				div.innerHTML = content;
+
+				// Convert all middot paragraphs to li elements
+				var className = tinyMCE.getParam("paste_unindented_list_class", "unIndentedList");
+
+				while (TinyMCE_PastePlugin._convertMiddots(div, "--list--")) ; // bull
+				while (TinyMCE_PastePlugin._convertMiddots(div, middot, className)) ; // Middot
+				while (TinyMCE_PastePlugin._convertMiddots(div, bull)) ; // bull
+
+				content = div.innerHTML;
+			}
+
+			// Replace all headers with strong and fix some other issues
+			if (tinyMCE.getParam("paste_convert_headers_to_strong", false)) {
+				content = content.replace(/<h[1-6]>&nbsp;<\/h[1-6]>/gi, '<p>&nbsp;&nbsp;</p>');
+				content = content.replace(/<h[1-6]>/gi, '<p><b>');
+				content = content.replace(/<\/h[1-6]>/gi, '</b></p>');
+				content = content.replace(/<b>&nbsp;<\/b>/gi, '<b>&nbsp;&nbsp;</b>');
+				content = content.replace(/^(&nbsp;)*/gi, '');
+			}
+
+			content = content.replace(/--list--/gi, ""); // Remove --list--
+
+			if ((cb = tinyMCE.getParam("paste_insert_word_content_callback", "")) != "")
+				content = eval(cb + "('after', content)");
+
+			// Insert cleaned content
+			tinyMCE.execCommand("mceInsertContent", false, content);
+
+			if (tinyMCE.getParam('paste_force_cleanup_wordpaste', true))
+				window.setTimeout('tinyMCE.execCommand("mceCleanup");', 1); // Do normal cleanup detached from this thread
+		}
+	},
+
+	_reEscape : function(s) {
+		var l = "?.\\*[](){}+^$:";
+		var o = "";
+
+		for (var i=0; i<s.length; i++) {
+			var c = s.charAt(i);
+
+			if (l.indexOf(c) != -1)
+				o += '\\' + c;
+			else
+				o += c;
+		}
+
+		return o;
+	},
+
+	_convertMiddots : function(div, search, class_name) {
+		var mdot = String.fromCharCode(183);
+		var bull = String.fromCharCode(8226);
+
+		var nodes = div.getElementsByTagName("p");
+		var prevul;
+		for (var i=0; i<nodes.length; i++) {
+			var p = nodes[i];
+
+			// Is middot
+			if (p.innerHTML.indexOf(search) == 0) {
+				var ul = document.createElement("ul");
+
+				if (class_name)
+					ul.className = class_name;
+
+				// Add the first one
+				var li = document.createElement("li");
+				li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&nbsp;', "gi"), '');
+				ul.appendChild(li);
+
+				// Add the rest
+				var np = p.nextSibling;
+				while (np) {
+			        // If the node is whitespace, then
+			        // ignore it and continue on.
+			        if (np.nodeType == 3 && new RegExp('^\\s$', 'm').test(np.nodeValue)) {
+			                np = np.nextSibling;
+			                continue;
+			        }
+
+					if (search == mdot) {
+					        if (np.nodeType == 1 && new RegExp('^o(\\s+|&nbsp;)').test(np.innerHTML)) {
+					                // Second level of nesting
+					                if (!prevul) {
+					                        prevul = ul;
+					                        ul = document.createElement("ul");
+					                        prevul.appendChild(ul);
+					                }
+					                np.innerHTML = np.innerHTML.replace(/^o/, '');
+					        } else {
+					                // Pop the stack if we're going back up to the first level
+					                if (prevul) {
+					                        ul = prevul;
+					                        prevul = null;
+					                }
+					                // Not element or middot paragraph
+					                if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
+					                        break;
+					        }
+					} else {
+					        // Not element or middot paragraph
+					        if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)
+					                break;
+				        }
+
+					var cp = np.nextSibling;
+					var li = document.createElement("li");
+					li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--|&nbsp;', "gi"), '');
+					np.parentNode.removeChild(np);
+					ul.appendChild(li);
+					np = cp;
+				}
+
+				p.parentNode.replaceChild(ul, p);
+
+				return true;
+			}
+		}
+
+		return false;
+	},
+
+	_clipboardHTML : function() {
+		var div = document.getElementById('_TinyMCE_clipboardHTML');
+
+		if (!div) {
+			var div = document.createElement('DIV');
+			div.id = '_TinyMCE_clipboardHTML';
+
+			with (div.style) {
+				visibility = 'hidden';
+				overflow = 'hidden';
+				position = 'absolute';
+				width = 1;
+				height = 1;
+			}
+
+			document.body.appendChild(div);
+		}
+
+		div.innerHTML = '';
+		var rng = document.body.createTextRange();
+		rng.moveToElementText(div);
+		rng.execCommand('Paste');
+		var html = div.innerHTML;
+		div.innerHTML = '';
+		return html;
+	}
+};
+
+tinyMCE.addPlugin("paste", TinyMCE_PastePlugin);
diff --git a/tinyMCE/plugins/paste/images/pastetext.gif b/tinyMCE/plugins/paste/images/pastetext.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e381cc617ae1ef48a4e532f7b83b883d082c9e42
Binary files /dev/null and b/tinyMCE/plugins/paste/images/pastetext.gif differ
diff --git a/tinyMCE/plugins/paste/images/pasteword.gif b/tinyMCE/plugins/paste/images/pasteword.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0ccb008fe1626e9097f356b3dc1f801e21f7f7ae
Binary files /dev/null and b/tinyMCE/plugins/paste/images/pasteword.gif differ
diff --git a/tinyMCE/plugins/paste/images/selectall.gif b/tinyMCE/plugins/paste/images/selectall.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c4f9901e26be9e0a85d144b82dfbfdb38939dbfa
Binary files /dev/null and b/tinyMCE/plugins/paste/images/selectall.gif differ
diff --git a/tinyMCE/plugins/paste/jscripts/pastetext.js b/tinyMCE/plugins/paste/jscripts/pastetext.js
new file mode 100644
index 0000000000000000000000000000000000000000..4c07691cf2ed3d2b8444df7b102e07ac6ef4e07e
--- /dev/null
+++ b/tinyMCE/plugins/paste/jscripts/pastetext.js
@@ -0,0 +1,38 @@
+function saveContent() {
+	if (document.forms[0].htmlSource.value == '') {
+		tinyMCEPopup.close();
+		return false;
+	}
+
+	tinyMCEPopup.execCommand('mcePasteText', false, {
+		html : document.forms[0].htmlSource.value,
+		linebreaks : document.forms[0].linebreaks.checked
+	});
+
+	tinyMCEPopup.close();
+}
+
+function onLoadInit() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	// Remove Gecko spellchecking
+	if (tinyMCE.isGecko)
+		document.body.spellcheck = tinyMCE.getParam("gecko_spellcheck");
+
+	resizeInputs();
+}
+
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+
+function resizeInputs() {
+	if (!tinyMCE.isMSIE) {
+		wHeight = self.innerHeight-80;
+		wWidth = self.innerWidth-17;
+	} else {
+		wHeight = document.body.clientHeight-80;
+		wWidth = document.body.clientWidth-17;
+	}
+
+	document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';
+	document.forms[0].htmlSource.style.width  = Math.abs(wWidth) + 'px';
+}
diff --git a/tinyMCE/plugins/paste/jscripts/pasteword.js b/tinyMCE/plugins/paste/jscripts/pasteword.js
new file mode 100644
index 0000000000000000000000000000000000000000..b243a108094a85a4168f015204cecc6a7f01949f
--- /dev/null
+++ b/tinyMCE/plugins/paste/jscripts/pasteword.js
@@ -0,0 +1,52 @@
+function saveContent() {
+	var html = document.getElementById("frmData").contentWindow.document.body.innerHTML;
+
+	if (html == ''){
+		tinyMCEPopup.close();
+		return false;
+	}
+
+	tinyMCEPopup.execCommand('mcePasteWord', false, html);
+	tinyMCEPopup.close();
+}
+
+function onLoadInit() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	// Fix for endless reloading in FF
+	window.setTimeout('createIFrame();', 10);
+}
+
+function createIFrame() {
+	document.getElementById('iframecontainer').innerHTML = '<iframe id="frmData" name="frmData" class="sourceIframe" src="blank.htm" height="280" width="400" frameborder="0" style="background-color:#FFFFFF; width:100%;" dir="ltr" wrap="soft"></iframe>';
+}
+
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+
+function initIframe(doc) {
+	var dir = tinyMCE.selectedInstance.settings['directionality'];
+
+	doc.body.dir = dir;
+
+	// Remove Gecko spellchecking
+	if (tinyMCE.isGecko)
+		doc.body.spellcheck = tinyMCE.getParam("gecko_spellcheck");
+
+	resizeInputs();
+}
+
+function resizeInputs() {
+	if (!tinyMCE.isMSIE) {
+		wHeight = self.innerHeight - 80;
+		wWidth = self.innerWidth - 18;
+	} else {
+		wHeight = document.body.clientHeight - 80;
+		wWidth = document.body.clientWidth - 18;
+	}
+
+	var elm = document.getElementById('frmData');
+	if (elm) {
+		elm.style.height = Math.abs(wHeight) + 'px';
+		elm.style.width  = Math.abs(wWidth) + 'px';
+	}
+}
diff --git a/tinyMCE/plugins/paste/langs/ca.js b/tinyMCE/plugins/paste/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..d32906e7b49a411f71dc85f3da3bf3b7dd1fb582
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ca.js
@@ -0,0 +1,10 @@
+// CA lang variables by Marc Folch
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Enganxa com a text sense format',
+paste_text_title : 'Utilitza la combinaci&oacute; de tecles CTRL+V per enganxar un text.',
+paste_text_linebreaks : 'Mant&eacute; els salts de l&iacute;nia',
+paste_word_desc : 'Enganxa amb format (des del Word)',
+paste_word_title : 'Utilitza la combinaci&oacute; de tecles CTRL+V per enganxar un text.',
+selectall_desc : 'Selecciona-ho tot'
+});
diff --git a/tinyMCE/plugins/paste/langs/cs.js b/tinyMCE/plugins/paste/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..6769dec38936fd6429c8e3407b1a8c081471ec81
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/cs.js
@@ -0,0 +1,16 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.5 2006/01/11 14:25:49 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Vložit neformátovaný text',
+paste_text_title : 'Použij CTRL + V na klávesnici pro vložení textu do okna.',
+paste_text_linebreaks : 'Nechej přerušení řádků',
+paste_word_desc : 'Vložit text z aplikace Word',
+paste_word_title : 'Použij CTRL + V na klávesnici pro vložení textu do okna.',
+selectall_desc : 'Označit vše'
+});
+
diff --git a/tinyMCE/plugins/paste/langs/cy.js b/tinyMCE/plugins/paste/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4f6f52419bbd30bba0dcbf83f923156cf866832
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/cy.js
@@ -0,0 +1,10 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Gludo fel Testun Plaen',
+paste_text_title : 'Defnyddia CTRL+V ar dy fysellfwrdd i ludo\'r testun i fewn i\'r ffenest.',
+paste_text_linebreaks : 'Cadw toriadau llinell',
+paste_word_desc : 'Gludo o Word',
+paste_word_title : 'Defnyddia CTRL+V ar dy fysellfwrdd i ludo\'r testun i fewn i\'r ffenest.',
+selectall_desc : 'Dewis Popeth'
+});
diff --git a/tinyMCE/plugins/paste/langs/da.js b/tinyMCE/plugins/paste/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..a3ab149c7b94f35a4a8c268d60ddcac05964d9b1
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/da.js
@@ -0,0 +1,10 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.:
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Inds&aelig;t som ren tekst',
+paste_text_title : 'Brug CTRL+V p&aring; tastaturet for at inds&aelig;tte teksten i vinduet.',
+paste_text_linebreaks : 'Behold linjebrud',
+paste_word_desc : 'Inds&aelig;t fra Word',
+paste_word_title : 'Brug CTRL+V p&aring; tastaturet for at inds&aelig;tte teksten i vinduet.',
+selectall_desc : 'V&aelig;lg alt'
+});
diff --git a/tinyMCE/plugins/paste/langs/de.js b/tinyMCE/plugins/paste/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..2021702a727ea46a31a5d3c19bad75e852d340e2
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/de.js
@@ -0,0 +1,10 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Als unformatierten Text einf&uuml;gen',
+paste_text_title : 'Benutzen Sie Strg+V/Apfel-V auf Ihrer Tastatur, um Text in das Fenster einzuf&uuml;gen.',
+paste_text_linebreaks : 'Zeilenumbr&uuml;che beibehalten',
+paste_word_desc : 'Word-Text einf&uuml;gen',
+paste_word_title : 'Benutzen Sie Strg+V/Apfel-V auf Ihrer Tastatur, um Text in das Fenster einzuf&uuml;gen.',
+selectall_desc : 'Alles ausw&auml;hlen'
+});
diff --git a/tinyMCE/plugins/paste/langs/el.js b/tinyMCE/plugins/paste/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..e4d6e44efc5fe8d51bd3510abf510a53b7b0f730
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/el.js
@@ -0,0 +1,10 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Åðéêüëëçóç ùò áðëü êåßìåíï',
+paste_text_title : 'ÐáôÞóôå CTRL+V ãéá íá åðéêïëëÞóåôå ôï êåßìåíï óôï ðáñÜèõñï.',
+paste_text_linebreaks : 'ÄéáôÞñçóç áëëáãþí ãñáììÞò',
+paste_word_desc : 'Åðéêüëëçóç áðü Word',
+paste_word_title : 'ÐáôÞóôå CTRL+V ãéá íá åðéêïëëÞóåôå ôï êåßìåíï óôï ðáñÜèõñï.',
+selectall_desc : 'ÅðéëïãÞ ¼ëùí'
+});
diff --git a/tinyMCE/plugins/paste/langs/en.js b/tinyMCE/plugins/paste/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..b125d51195aaa93e3b23db9537098bed077911a8
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/en.js
@@ -0,0 +1,10 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Paste as Plain Text',
+paste_text_title : 'Use CTRL+V on your keyboard to paste the text into the window.',
+paste_text_linebreaks : 'Keep linebreaks',
+paste_word_desc : 'Paste from Word',
+paste_word_title : 'Use CTRL+V on your keyboard to paste the text into the window.',
+selectall_desc : 'Select All'
+});
diff --git a/tinyMCE/plugins/paste/langs/es.js b/tinyMCE/plugins/paste/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f5acf40bdb98f61420b1c9ff737cb23d39782a7
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/es.js
@@ -0,0 +1,12 @@
+// ES lang variables by Alvaro Velasco and Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>
+// Last Updated : October 2005
+// TinyMCE Version : 2.0RC3
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Pegar como texto plano',
+paste_text_title : 'Use CTRL+V para pegar el texto en la ventana.',
+paste_text_linebreaks : 'Mantener saltos de linea',
+paste_word_desc : 'Pegar desde Word',
+paste_word_title : 'Use CTRL+V para pegar el texto en la ventana.',
+selectall_desc : 'Seleccionar todo'
+});
diff --git a/tinyMCE/plugins/paste/langs/fa.js b/tinyMCE/plugins/paste/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..b125d51195aaa93e3b23db9537098bed077911a8
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/fa.js
@@ -0,0 +1,10 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Paste as Plain Text',
+paste_text_title : 'Use CTRL+V on your keyboard to paste the text into the window.',
+paste_text_linebreaks : 'Keep linebreaks',
+paste_word_desc : 'Paste from Word',
+paste_word_title : 'Use CTRL+V on your keyboard to paste the text into the window.',
+selectall_desc : 'Select All'
+});
diff --git a/tinyMCE/plugins/paste/langs/fi.js b/tinyMCE/plugins/paste/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..49c373ecab4a6ebf299e63f273ab7c82e72016d5
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/fi.js
@@ -0,0 +1,10 @@
+// FI lang variables by Tuomo Aura, Ateco.fi
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Liit&auml; tavallisena tekstin&auml;',
+paste_text_title : 'Paina CTRL+V liitt&auml;&auml;ksesi leikkaamasi/kopioimasi tekstin ikkunaan.',
+paste_text_linebreaks : 'S&auml;ilyt&auml; rivinvaihdot',
+paste_word_desc : 'Liit&auml; Wordista',
+paste_word_title : 'Paina CTRL+V liitt&auml;&auml;ksesi leikkaamasi/kopioimasi tekstin ikkunaan.',
+selectall_desc : 'Valitse kaikki'
+});
diff --git a/tinyMCE/plugins/paste/langs/fr.js b/tinyMCE/plugins/paste/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..3f68c0cd9bdb7e079844e2b244cd1afcb0f663b7
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/fr.js
@@ -0,0 +1,11 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Coller comme du texte',
+paste_text_title : 'Faites CTRL+V pour coller le texte dans la fen&ecirc;tre.',
+paste_text_linebreaks : 'Conserver les retours &agrave; la ligne',
+paste_word_desc : 'Coller depuis Word',
+paste_word_title : 'Faites CTRL+V pour coller le texte dans la fen&ecirc;tre.',
+selectall_desc : 'S&eacute;lectionner tout'
+});
diff --git a/tinyMCE/plugins/paste/langs/fr_ca.js b/tinyMCE/plugins/paste/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..14d611d9ed1f7bbf43e151d003ca8c35cda8505f
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/fr_ca.js
@@ -0,0 +1,10 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Coller texte seulement',
+paste_text_title : 'Utilisez CTRL+V sur votre clavier pour coller le texte dans la fenêtre.',
+paste_text_linebreaks : 'Garder les sauts de ligne',
+paste_word_desc : 'Coller à partir de Word',
+paste_word_title : 'Utilisez CTRL+V sur votre clavier pour coller le texte dans la fenêtre.',
+selectall_desc : 'Selectionner tout'
+});
diff --git a/tinyMCE/plugins/paste/langs/he.js b/tinyMCE/plugins/paste/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..d660e43f2f6cad210e54b5ffc0f25f2343dba4b3
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/he.js
@@ -0,0 +1,10 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'äãá÷ ëè÷ñè øâéì',
+paste_text_title : 'äùúîù á-CTRL+V ùòì äî÷ìãú ùìê ëãé ìäãáé÷ àú äè÷ñè ìçìåï.',
+paste_text_linebreaks : 'ùîåø òì îòáøé ùåøä',
+paste_word_desc : 'äãá÷ î-Word',
+paste_word_title : 'äùúîù á-CTRL+V ùòì äî÷ìãú ùìê ëãé ìäãáé÷ àú äè÷ñè ìçìåï.',
+selectall_desc : 'áçø äëì'
+});
diff --git a/tinyMCE/plugins/paste/langs/hu.js b/tinyMCE/plugins/paste/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..09d6f825daf905f361c482036364414a27bc3e86
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/hu.js
@@ -0,0 +1,10 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Beillesztés sima szövegként',
+paste_text_title : 'Használd a CTRL+V -t a billentyûzeten a szöveg beillesztéséhez az ablakba.',
+paste_text_linebreaks : 'Keep linebreaks',
+paste_word_desc : 'Beillesztés Word-bõl',
+paste_word_title : 'Használd a CTRL+V -t a billentyûzeten a szöveg beillesztéséhez az ablakba.',
+selectall_desc : 'Mindet kijelöl'
+});
diff --git a/tinyMCE/plugins/paste/langs/is.js b/tinyMCE/plugins/paste/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..28c540399d26b25831f384c5e475974fae9e09e7
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/is.js
@@ -0,0 +1,10 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Skeyta texta eing&ouml;ngu',
+paste_text_title : 'Notaðu CTRL+V á lyklaborðinu til að skeyta textanum í gluggann.',
+paste_text_linebreaks : 'Halda l&iacute;nubilum',
+paste_word_desc : 'Skeyta &uacute;r Word',
+paste_word_title : 'Notaðu CTRL+V á lyklaborðinu til að skeyta textanum í gluggann.',
+selectall_desc : 'Velja allt'
+});
diff --git a/tinyMCE/plugins/paste/langs/it.js b/tinyMCE/plugins/paste/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..5509a8025ea192d4c35177f7604c757a08e17e42
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/it.js
@@ -0,0 +1,16 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Incolla come testo non formattato',
+paste_text_title : 'Usa CTRL+V per incollare.',
+paste_text_linebreaks : 'Mantieni interruzioni di riga',
+paste_word_desc : 'Incolla da Word',
+paste_word_title : 'Usa CTRL+V per incollare.',
+selectall_desc : 'Seleziona tutto'
+});
diff --git a/tinyMCE/plugins/paste/langs/ja.js b/tinyMCE/plugins/paste/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..e08319cd0448c0eb5959bb1b66c399fcbefcabf9
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ja.js
@@ -0,0 +1,10 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'テキストとして貼り付け',
+paste_text_title : 'キーボードからCTRL+Vを押下してテキストを貼り付けます。',
+paste_text_linebreaks : '改行を保持したまま',
+paste_word_desc : 'Word文書として貼り付け',
+paste_word_title : 'キーボードからCTRL+Vを押下してテキストを貼り付けます。',
+selectall_desc : 'すべて選択する'
+});
diff --git a/tinyMCE/plugins/paste/langs/ja_euc-jp.js b/tinyMCE/plugins/paste/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3ad273213bec21f779f8977202b98d967bb6daa
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ja_euc-jp.js
@@ -0,0 +1,10 @@
+// Japanese euc variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : '½ñ¼°¤Ê¤·¤ÇޤêÉÕ¤±',
+paste_text_title : 'ޤêÉÕ¤±¤Î¤¿¤á¤Ë¡¢CTRL+V ¤ò²¡¤¹',
+paste_text_linebreaks : '¹Ô¤òÊݸ',
+paste_word_desc : '¥ï¡¼¥É¤«¤éޤêÉÕ¤±',
+paste_word_title : 'ޤêÉÕ¤±¤Î¤¿¤á¤Ë¡¢CTRL+V ¤ò²¡¤¹',
+selectall_desc : '¤¹¤Ù¤ÆÁªÂò'
+});
diff --git a/tinyMCE/plugins/paste/langs/ja_shift_jis.js b/tinyMCE/plugins/paste/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..932cefc6e9e1839feb301529677ad3ca6d88b2f5
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ja_shift_jis.js
@@ -0,0 +1,10 @@
+// Japanese shift_jis variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : '‘Ž®‚È‚µ‚Å“\‚è•t‚¯',
+paste_text_title : '“\‚è•t‚¯‚Ì‚½‚߂ɁACTRL+V ‚ð‰Ÿ‚·',
+paste_text_linebreaks : 's‚ð•Û‘¶',
+paste_word_desc : 'ƒ[ƒh‚©‚ç“\‚è•t‚¯',
+paste_word_title : '“\‚è•t‚¯‚Ì‚½‚߂ɁACTRL+V ‚ð‰Ÿ‚·',
+selectall_desc : '‚·‚ׂđI‘ð'
+});
diff --git a/tinyMCE/plugins/paste/langs/ja_utf-8.js b/tinyMCE/plugins/paste/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d12b7da564156439a873bd532044f4a8debcb7f
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ja_utf-8.js
@@ -0,0 +1,10 @@
+// Japanese utf-8 variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : '書式なしで貼り付け',
+paste_text_title : '貼り付けのために、CTRL+V を押す',
+paste_text_linebreaks : '行を保存',
+paste_word_desc : 'ワードから貼り付け',
+paste_word_title : '貼り付けのために、CTRL+V を押す',
+selectall_desc : 'すべて選択'
+});
diff --git a/tinyMCE/plugins/paste/langs/ko.js b/tinyMCE/plugins/paste/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..b125d51195aaa93e3b23db9537098bed077911a8
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ko.js
@@ -0,0 +1,10 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Paste as Plain Text',
+paste_text_title : 'Use CTRL+V on your keyboard to paste the text into the window.',
+paste_text_linebreaks : 'Keep linebreaks',
+paste_word_desc : 'Paste from Word',
+paste_word_title : 'Use CTRL+V on your keyboard to paste the text into the window.',
+selectall_desc : 'Select All'
+});
diff --git a/tinyMCE/plugins/paste/langs/nb.js b/tinyMCE/plugins/paste/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..446aeae0f3f8938e779b65792eb7b914fd1db056
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/nb.js
@@ -0,0 +1,10 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Lim inn som vanlig tekst',
+paste_text_title : 'Bruk CTRL+V p&aring; tastaturet ditt for &aring; lime inn i dette vinduet.',
+paste_text_linebreaks : 'Spar linjebrudd',
+paste_word_desc : 'Lim inn fra Office (Word)',
+paste_word_title : 'Bruk CTRL+V p&aring; tastaturet ditt for &aring; lime inn i dette vinduet.',
+selectall_desc : 'Velg alt'
+});
diff --git a/tinyMCE/plugins/paste/langs/nl.js b/tinyMCE/plugins/paste/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..642e0122a6b0be9340e96651e5bd82123bb66b20
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/nl.js
@@ -0,0 +1,10 @@
+// NL lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Plakken als platte tekst',
+paste_text_title : 'Gebruik CTRL+V op uw toetsenbord om de tekst in het venster te plakken.',
+paste_text_linebreaks : 'Behoud regeleinden',
+paste_word_desc : 'Plakken uit Word',
+paste_word_title : 'Gebruik CTRL+V op uw toetsenbord om de tekst in het venster te plakken.',
+selectall_desc : 'Alles selecteren'
+});
diff --git a/tinyMCE/plugins/paste/langs/nn.js b/tinyMCE/plugins/paste/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..9084597ef4ea4392835c09b369043317120911f7
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/nn.js
@@ -0,0 +1,10 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Lim inn som vanleg tekst',
+paste_text_title : 'Bruk CTRL+V p&aring; tastaturet ditt for &aring; lime inn i dette vindauget.',
+paste_text_linebreaks : 'Spar linjebrudd',
+paste_word_desc : 'Lim inn frå Office (Word)',
+paste_word_title : 'Bruk CTRL+V p&aring; tastaturet ditt for &aring; lime inn i dette vindauget.',
+selectall_desc : 'Velg alt'
+});
diff --git a/tinyMCE/plugins/paste/langs/pl.js b/tinyMCE/plugins/paste/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..63aed27059a0b413f2e1bc96845f91300559c239
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/pl.js
@@ -0,0 +1,12 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Wklej jako czysty tekst',
+paste_text_title : 'Użyj CTRL+V na klawiaturze, aby wkleić tekst do okna.',
+paste_text_linebreaks : 'Zachowaj łamanie linii',
+paste_word_desc : 'Wklej z Worda',
+paste_word_title : 'Użyj CTRL+V na klawiaturze, aby wkleić tekst do okna.',
+selectall_desc : 'Zaznacz wszystko'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/paste/langs/pt_br.js b/tinyMCE/plugins/paste/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..f9504f29665719ae2c522b61020d38265e51fe05
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/pt_br.js
@@ -0,0 +1,18 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+paste_text_desc : 'Colar um texto simples',
+paste_text_title : 'Use CTRL+V no seu teclado para colar o texto dentro da janela.',
+paste_text_linebreaks : 'Manter quebras de linha',
+paste_word_desc : 'Colar do Word',
+paste_word_title : 'Use CTRL+V no seu teclado para colar o texto dentro da janela.',
+selectall_desc : 'Selecionar tudo'
+});
diff --git a/tinyMCE/plugins/paste/langs/ro.js b/tinyMCE/plugins/paste/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..440eba705826946cfe5216399cbfc5d1b2c779f3
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ro.js
@@ -0,0 +1,10 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Lipe&#351;te ca text simplu',
+paste_text_title : 'Folose&#351;te CTRL+V de pe tastatur&#259; pentru a lipi text &#238;n fereastr&#259;.',
+paste_text_linebreaks : 'P&#259;streaz&#259; spa&#355;ierea r&#226;ndurilor',
+paste_word_desc : 'Lipe&#351;te din Word',
+paste_word_title : 'Folose&#351;te CTRL+V de pe tastatur&#259; pentru a lipi text &#238;n fereastr&#259;.',
+selectall_desc : 'Selecteaz&#259; tot'
+});
diff --git a/tinyMCE/plugins/paste/langs/ru.js b/tinyMCE/plugins/paste/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..36108f59e86f4ae34c156c036850661f0d502d25
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ru.js
@@ -0,0 +1,10 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Вставить как простой текст',
+paste_text_title : 'Используйте CTRL+V для вставки текста в окошко.',
+paste_text_linebreaks : 'Сохранить переносы строк',
+paste_word_desc : 'Вставить из Word',
+paste_word_title : 'Используйте CTRL+V для вставки текста в окошко.',
+selectall_desc : 'Выделить всё'
+});
diff --git a/tinyMCE/plugins/paste/langs/ru_CP1251.js b/tinyMCE/plugins/paste/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..1cb5efac1c4e6a34d3b0ee49e8928693e095a534
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ru_CP1251.js
@@ -0,0 +1,10 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Âñòàâèòü êàê ïðîñòîé òåêñò',
+paste_text_title : 'Èñïîëüçóéòå CTRL+V äëÿ âñòàâêè òåêñòà â îêîøêî.',
+paste_text_linebreaks : 'Ñîõðàíèòü ïåðåíîñû ñòðîê',
+paste_word_desc : 'Âñòàâèòü èç Word',
+paste_word_title : 'Èñïîëüçóéòå CTRL+V äëÿ âñòàâêè òåêñòà â îêîøêî.',
+selectall_desc : 'Âûäåëèòü âñ¸'
+});
diff --git a/tinyMCE/plugins/paste/langs/ru_KOI8-R.js b/tinyMCE/plugins/paste/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a8bacc488e6d214daaaa59f5b1fde2b6eb942bc
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/ru_KOI8-R.js
@@ -0,0 +1,10 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : '÷ÓÔÁ×ÉÔØ ËÁË ÐÒÏÓÔÏÊ ÔÅËÓÔ',
+paste_text_title : 'éÓÐÏÌØÚÕÊÔÅ CTRL+V ÄÌÑ ×ÓÔÁ×ËÉ ÔÅËÓÔÁ × ÏËÏÛËÏ.',
+paste_text_linebreaks : 'óÏÈÒÁÎÉÔØ ÐÅÒÅÎÏÓÙ ÓÔÒÏË',
+paste_word_desc : '÷ÓÔÁ×ÉÔØ ÉÚ Word',
+paste_word_title : 'éÓÐÏÌØÚÕÊÔÅ CTRL+V ÄÌÑ ×ÓÔÁ×ËÉ ÔÅËÓÔÁ × ÏËÏÛËÏ.',
+selectall_desc : '÷ÙÄÅÌÉÔØ ×Ó£'
+});
diff --git a/tinyMCE/plugins/paste/langs/si.js b/tinyMCE/plugins/paste/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..60d54245cc8fad6f4e1d57dd06c163329598cc9c
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/si.js
@@ -0,0 +1,10 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Prilepi kot navadno besedilo',
+paste_text_title : 'Uporabite CTRL+V na va&#353;i tipkovnici, da prilepite besedilo v okno.',
+paste_text_linebreaks : 'Obdr&#382;i prelome vrstic',
+paste_word_desc : 'Prilepi iz Word-a',
+paste_word_title : 'Uporabite CTRL+V na va&#353;i tipkovnici, da prilepite besedilo v okno.',
+selectall_desc : 'Ozna&#269;i vse'
+});
diff --git a/tinyMCE/plugins/paste/langs/sk.js b/tinyMCE/plugins/paste/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..a92ee19a0bcff2a71ff5f818668d3f0fd6875a10
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/sk.js
@@ -0,0 +1,18 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Vložiť neformatovaný text',
+paste_text_title : 'Použi CTRL + V na klávesnici pre vloženie textu do okna.',
+paste_text_linebreaks : 'Nechaj prerušenie riadkov',
+paste_word_desc : 'Vložiť text s aplikáce Word',
+paste_word_title : 'Použi CTRL + V na klávesnici pre vloženie textu do okna.',
+selectall_desc : 'Označiť všetko'
+});
+
diff --git a/tinyMCE/plugins/paste/langs/sq.js b/tinyMCE/plugins/paste/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ac04b0a0e8106eafbdcfb326611792c23fd8b54
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/sq.js
@@ -0,0 +1,10 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Kopjo si Text te paster',
+paste_text_title : 'Perdor CTRL+V ne tastjere per te kopjuar tekstin ne dritare.',
+paste_text_linebreaks : 'Ruaj thyerjet e linjave',
+paste_word_desc : 'Kopjo nga MS Word',
+paste_word_title : 'UPerdor CTRL+V ne tastjere per te kopjuar tekstin ne dritare.',
+selectall_desc : 'Zgjidh te gjithe'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/paste/langs/sr.js b/tinyMCE/plugins/paste/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..e3aba4d997dda611158d946e1169867f983df0c8
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/sr.js
@@ -0,0 +1,10 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Zalepite kao običan tekst',
+paste_text_title : 'Koristite CTRL+V na tastaturi da bi zalepili tekst u prozor.',
+paste_text_linebreaks : 'Zadržavanje preseka linija',
+paste_word_desc : 'Kopiranje iz Worda',
+paste_word_title : 'Koristite CTRL+V  na tastaturi da bi zalepili tekst u prozor.',
+selectall_desc : 'Selektovanje svega'
+});
diff --git a/tinyMCE/plugins/paste/langs/sv.js b/tinyMCE/plugins/paste/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d5375cef98bc2415bee7ddf1a5fcac0991b3622
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/sv.js
@@ -0,0 +1,10 @@
+// SV lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Klistra in som vanlig text',
+paste_text_title : 'Använd CTRL+V på ditt tangentbord för att klistra in i detta fönster.',
+paste_text_linebreaks : 'Spara radbrytningar',
+paste_word_desc : 'Klistra in från Word',
+paste_word_title : 'Använd CTRL+V på ditt tangentbord för att klistra in i detta fönster.',
+selectall_desc : 'Markera allt'
+});
diff --git a/tinyMCE/plugins/paste/langs/sv_utf8.js b/tinyMCE/plugins/paste/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd5ce7c3e4726507989a3306421d11655b671424
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/sv_utf8.js
@@ -0,0 +1,10 @@
+// SV lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Klistra in som vanlig text',
+paste_text_title : 'Använd CTRL+V på ditt tangentbord för att klistra in i detta fönster.',
+paste_text_linebreaks : 'Spara radbrytningar',
+paste_word_desc : 'Klistra in från Word',
+paste_word_title : 'Använd CTRL+V på ditt tangentbord för att klistra in i detta fönster.',
+selectall_desc : 'Markera allt'
+});
diff --git a/tinyMCE/plugins/paste/langs/tr.js b/tinyMCE/plugins/paste/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e880a5bc9703c6fde92c50f10de86e7c8353d97
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/tr.js
@@ -0,0 +1,10 @@
+// Tr lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Düz metin olarak yapýþtýr',
+paste_text_title : 'Yapýþtýrmak için klavyenizden CTRL+V kullanýn.',
+paste_text_linebreaks : 'Satýr sonlarýný koru',
+paste_word_desc : 'Word\'den yapýþtýr',
+paste_word_title : 'Yapýþtýrmak için klavyenizden CTRL+V kullanýn.',
+selectall_desc : 'Tümünü seç'
+});
diff --git a/tinyMCE/plugins/paste/langs/uk.js b/tinyMCE/plugins/paste/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..9228134329c070adebe57e2e7df98c6084a56c87
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/uk.js
@@ -0,0 +1,10 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Вставити як простий текст',
+paste_text_title : 'Використовуйте CTRL+V для вставки тексту в віконце.',
+paste_text_linebreaks : 'Зберегти перенесення рядків',
+paste_word_desc : 'Вставити з Word',
+paste_word_title : 'Використовуйте CTRL+V для вставки тексту в віконце.',
+selectall_desc : 'Виділити все'
+});
diff --git a/tinyMCE/plugins/paste/langs/uk_CP1251.js b/tinyMCE/plugins/paste/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..d21eb9c63b9aa77892b43f83c17caa470ce73b35
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/uk_CP1251.js
@@ -0,0 +1,10 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Âñòàâèòè ÿê ïðîñòèé òåêñò',
+paste_text_title : 'Âèêîðèñòîâóéòå CTRL+V äëÿ âñòàâêè òåêñòó â â³êîíöå.',
+paste_text_linebreaks : 'Çáåðåãòè ïåðåíåñåííÿ ðÿäê³â',
+paste_word_desc : 'Âñòàâèòè ç Word',
+paste_word_title : 'Âèêîðèñòîâóéòå CTRL+V äëÿ âñòàâêè òåêñòó â â³êîíöå.',
+selectall_desc : 'Âèä³ëèòè âñå'
+});
diff --git a/tinyMCE/plugins/paste/langs/uk_KOI8-U.js b/tinyMCE/plugins/paste/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..e8bb8bb0c6627e43e06fcbe7d9590f96e9f080bf
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/uk_KOI8-U.js
@@ -0,0 +1,10 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : '÷ÓÔÁ×ÉÔÉ ÑË ÐÒÏÓÔÉÊ ÔÅËÓÔ',
+paste_text_title : '÷ÉËÏÒÉÓÔÏ×ÕÊÔÅ CTRL+V ÄÌÑ ×ÓÔÁ×ËÉ ÔÅËÓÔÕ × ×¦ËÏÎÃÅ.',
+paste_text_linebreaks : 'úÂÅÒÅÇÔÉ ÐÅÒÅÎÅÓÅÎÎÑ ÒÑÄ˦×',
+paste_word_desc : '÷ÓÔÁ×ÉÔÉ Ú Word',
+paste_word_title : '÷ÉËÏÒÉÓÔÏ×ÕÊÔÅ CTRL+V ÄÌÑ ×ÓÔÁ×ËÉ ÔÅËÓÔÕ × ×¦ËÏÎÃÅ.',
+selectall_desc : '÷ÉĦÌÉÔÉ ×ÓÅ'
+});
diff --git a/tinyMCE/plugins/paste/langs/vi.js b/tinyMCE/plugins/paste/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c67387f45d415bb692e2e70b18e570797d818a6
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/vi.js
@@ -0,0 +1,10 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Dán như văn bản đơn giản',
+paste_text_title : 'Sử dụng tổ hợp phím CTRL+V để dán văn bản vào cửa sổ.',
+paste_text_linebreaks : 'Giữ các ký tự xuống dòng',
+paste_word_desc : 'Dán từ Word',
+paste_word_title : 'Sử dụng tổ hợp phím CTRL+V để dán văn bản vào cửa sổ.',
+selectall_desc : 'Chọn toàn bộ'
+});
diff --git a/tinyMCE/plugins/paste/langs/zh_cn.js b/tinyMCE/plugins/paste/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..518ee1fb299251b5d48b7186d6448273586fc959
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/zh_cn.js
@@ -0,0 +1,11 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+paste_text_desc : '×÷Ϊ´¿Îı¾Õ³Ìù',
+paste_text_title : 'ʹÓÿì½Ý¼ü CTRL+V ½«Îı¾±¾Õ³Ìùµ½ÒÔÏ´°¿ÚÖÐ',
+paste_text_linebreaks : '±£Áô»»Ðзû',
+paste_word_desc : '´ÓWordÕ³Ìù',
+paste_word_title : 'ʹÓÿì½Ý¼ü CTRL+V ½«Îı¾Õ³Ìùµ½ÒÔÏ´°¿Ú',
+selectall_desc : 'ȫѡ'
+});
diff --git a/tinyMCE/plugins/paste/langs/zh_cn_utf8.js b/tinyMCE/plugins/paste/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..64368c326ace8a6915e7ce1b941f9a39167235f3
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/zh_cn_utf8.js
@@ -0,0 +1,11 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+paste_text_desc : '作为纯文本粘贴',
+paste_text_title : '使用快捷键 CTRL+V 将文本本粘贴到以下窗口中',
+paste_text_linebreaks : '保留换行符',
+paste_word_desc : '从Word粘贴',
+paste_word_title : '使用快捷键 CTRL+V 将文本粘贴到以下窗口',
+selectall_desc : '全选'
+});
diff --git a/tinyMCE/plugins/paste/langs/zh_tw.js b/tinyMCE/plugins/paste/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..ecbcc7be18fc608686eee338eecc2f7a15adff03
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/zh_tw.js
@@ -0,0 +1,11 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+paste_text_desc : '±Ä¯Â¤å¦r¼Ò¦¡¶K¤W',
+paste_text_title : '¨Ï¥ÎÁä½L¤Wªº CTRL+V ²Õ¦XÁä±N¤å¦r¶K¤J§@·~°Ï¤¤',
+paste_text_linebreaks : '«O¯d´«¦æ²Å¸¹',
+paste_word_desc : '¦Û Word ¤ºÂà¶K',
+paste_word_title : '¨Ï¥ÎÁä½L¤Wªº CTRL+V ²Õ¦XÁä±N¤å¦r¶K¤J§@·~°Ï¤¤',
+selectall_desc : '¥þ¿ï'
+});
diff --git a/tinyMCE/plugins/paste/langs/zh_tw_utf8.js b/tinyMCE/plugins/paste/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..04b60d514c2fbc5eb9036ba480eba45cddb3b507
--- /dev/null
+++ b/tinyMCE/plugins/paste/langs/zh_tw_utf8.js
@@ -0,0 +1,11 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+paste_text_desc : '採純文字模式貼上',
+paste_text_title : '使用鍵盤上的 CTRL+V 組合鍵將文字貼入作業區中',
+paste_text_linebreaks : '保留換行符號',
+paste_word_desc : '自 Word 內轉貼',
+paste_word_title : '使用鍵盤上的 CTRL+V 組合鍵將文字貼入作業區中',
+selectall_desc : '全選'
+});
diff --git a/tinyMCE/plugins/paste/pastetext.htm b/tinyMCE/plugins/paste/pastetext.htm
new file mode 100644
index 0000000000000000000000000000000000000000..63ff0007be689819a71ffa063640722c7becbdd5
--- /dev/null
+++ b/tinyMCE/plugins/paste/pastetext.htm
@@ -0,0 +1,34 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_paste_text_desc}</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/pastetext.js"></script>
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('onLoadInit();');" onresize="resizeInputs();" style="display: none">
+<form name="source" onsubmit="saveContent();">
+	<div style="float: left" class="title">{$lang_paste_text_desc}</div>
+
+	<div style="float: right">
+		<input type="checkbox" name="linebreaks" id="linebreaks" class="wordWrapCode" checked="checked" /><label for="linebreaks">{$lang_paste_text_linebreaks}</label>
+	</div>
+
+	<br style="clear: both" />
+
+	<div>{$lang_paste_text_title}</div>
+
+	<textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft"></textarea>
+
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" name="insert" value="{$lang_insert}" onclick="saveContent();" id="insert" />
+		</div>
+
+		<div style="float: right">
+			<input type="button" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
+		</div>
+	</div>
+</form>
+</body> 
+</html>
\ No newline at end of file
diff --git a/tinyMCE/plugins/paste/pasteword.htm b/tinyMCE/plugins/paste/pasteword.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7acc7f78f6a05a233cf6b025012d599e506b3e04
--- /dev/null
+++ b/tinyMCE/plugins/paste/pasteword.htm
@@ -0,0 +1,29 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+	<title>{$lang_paste_word_desc}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/pasteword.js"></script>
+	<link href="css/pasteword.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('onLoadInit();');" onresize="resizeInputs();" style="display: none">
+	<form name="source" onsubmit="saveContent();" action="#">
+		<div class="title">{$lang_paste_word_desc}</div>
+
+		<div>{$lang_paste_word_title}</div>
+
+		<div id="iframecontainer"></div>
+
+		<div class="mceActionPanel">
+			<div style="float: left">
+				<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="saveContent();" />
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+	</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/paste/readme.txt b/tinyMCE/plugins/paste/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/paste/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/preview/editor_plugin.js b/tinyMCE/plugins/preview/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..5409610e1a6043565a7f73b52baea60957f9e432
--- /dev/null
+++ b/tinyMCE/plugins/preview/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('preview');var TinyMCE_PreviewPlugin={getInfo:function(){return{longname:'Preview',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"preview":return tinyMCE.getButtonHTML(cn,'lang_preview_desc','{$pluginurl}/images/preview.gif','mcePreview')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mcePreview":var previewPage=tinyMCE.getParam("plugin_preview_pageurl",null);var previewWidth=tinyMCE.getParam("plugin_preview_width","550");var previewHeight=tinyMCE.getParam("plugin_preview_height","600");if(previewPage){var template=new Array();template['file']=previewPage;template['width']=previewWidth;template['height']=previewHeight;tinyMCE.openWindow(template,{editor_id:editor_id,resizable:"yes",scrollbars:"yes",inline:"yes",content:tinyMCE.getContent(),content_css:tinyMCE.getParam("content_css")})}else{var win=window.open("","mcePreview","menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width="+previewWidth+",height="+previewHeight);var html="",i;var c=tinyMCE.getContent();var pos=c.indexOf('<body'),pos2,css=tinyMCE.getParam("content_css").split(',');if(pos!=-1){pos=c.indexOf('>',pos);pos2=c.lastIndexOf('</body>');c=c.substring(pos+1,pos2)}html+=tinyMCE.getParam('doctype');html+='<html xmlns="http://www.w3.org/1999/xhtml">';html+='<head>';html+='<title>'+tinyMCE.getLang('lang_preview_desc')+'</title>';html+='<base href="'+tinyMCE.settings['base_href']+'" />';html+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';for(i=0;i<css.length;i++)html+='<link href="'+css[i]+'" rel="stylesheet" type="text/css" />';html+='<script type="text/javascript">';html+='window.opener.TinyMCE_PreviewPlugin._setDoc(document);';html+='window.opener.TinyMCE_PreviewPlugin._setWin(window);';html+='writeFlash = window.opener.TinyMCE_PreviewPlugin._writeFlash;';html+='writeShockWave = window.opener.TinyMCE_PreviewPlugin._writeShockWave;';html+='writeQuickTime = window.opener.TinyMCE_PreviewPlugin._writeQuickTime;';html+='writeRealMedia = window.opener.TinyMCE_PreviewPlugin._writeRealMedia;';html+='writeWindowsMedia = window.opener.TinyMCE_PreviewPlugin._writeWindowsMedia;';html+='writeEmbed = window.opener.TinyMCE_PreviewPlugin._writeEmbed;';html+='</script>';html+='</head>';html+='<body dir="'+tinyMCE.getParam("directionality")+'" onload="window.opener.TinyMCE_PreviewPlugin._onLoad();">';html+=c;html+='</body>';html+='</html>';win.document.write(html);win.document.close()}return true}return false},_setDoc:function(d){TinyMCE_PreviewPlugin._doc=d;d._embeds=new Array()},_setWin:function(d){TinyMCE_PreviewPlugin._win=d},_onLoad:function(){var nl,i,el=new Array(),d=TinyMCE_PreviewPlugin._doc,sv,ne;nl=d.getElementsByTagName("script");for(i=0;i<nl.length;i++){sv=tinyMCE.isMSIE?nl[i].innerHTML:nl[i].firstChild.nodeValue;if(new RegExp('write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\\(.*','g').test(sv))el[el.length]=nl[i]}for(i=0;i<el.length;i++){ne=d.createElement("div");ne.innerHTML=d._embeds[i];el[i].parentNode.insertBefore(ne.firstChild,el[i])}},_writeFlash:function(p){p.src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],p.src);TinyMCE_PreviewPlugin._writeEmbed('D27CDB6E-AE6D-11cf-96B8-444553540000','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0','application/x-shockwave-flash',p)},_writeShockWave:function(p){p.src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],p.src);TinyMCE_PreviewPlugin._writeEmbed('166B1BCA-3F9C-11CF-8075-444553540000','http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0','application/x-director',p)},_writeQuickTime:function(p){p.src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],p.src);TinyMCE_PreviewPlugin._writeEmbed('02BF25D5-8C17-4B23-BC80-D3488ABDDC6B','http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0','video/quicktime',p)},_writeRealMedia:function(p){p.src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],p.src);TinyMCE_PreviewPlugin._writeEmbed('CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0','audio/x-pn-realaudio-plugin',p)},_writeWindowsMedia:function(p){p.src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],p.src);p.url=p.src;TinyMCE_PreviewPlugin._writeEmbed('6BF52A52-394A-11D3-B153-00C04F79FAA6','http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701','application/x-mplayer2',p)},_writeEmbed:function(cls,cb,mt,p){var h='',n,d=TinyMCE_PreviewPlugin._doc,ne,c;h+='<object classid="clsid:'+cls+'" codebase="'+cb+'"';h+=typeof(p.id)!="undefined"?'id="'+p.id+'"':'';h+=typeof(p.name)!="undefined"?'name="'+p.name+'"':'';h+=typeof(p.width)!="undefined"?'width="'+p.width+'"':'';h+=typeof(p.height)!="undefined"?'height="'+p.height+'"':'';h+=typeof(p.align)!="undefined"?'align="'+p.align+'"':'';h+='>';for(n in p)h+='<param name="'+n+'" value="'+p[n]+'">';h+='<embed type="'+mt+'"';for(n in p)h+=n+'="'+p[n]+'" ';h+='></embed></object>';d._embeds[d._embeds.length]=h}};tinyMCE.addPlugin("preview",TinyMCE_PreviewPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/preview/editor_plugin_src.js b/tinyMCE/plugins/preview/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..449e226e79c3e6dc1ee7a5a734bdf3a78a8e2f35
--- /dev/null
+++ b/tinyMCE/plugins/preview/editor_plugin_src.js
@@ -0,0 +1,205 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('preview');
+
+var TinyMCE_PreviewPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Preview',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	/**
+	 * Returns the HTML contents of the preview control.
+	 */
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "preview":
+				return tinyMCE.getButtonHTML(cn, 'lang_preview_desc', '{$pluginurl}/images/preview.gif', 'mcePreview');
+		}
+
+		return "";
+	},
+
+	/**
+	 * Executes the mcePreview command.
+	 */
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mcePreview":
+				var previewPage = tinyMCE.getParam("plugin_preview_pageurl", null);
+				var previewWidth = tinyMCE.getParam("plugin_preview_width", "550");
+				var previewHeight = tinyMCE.getParam("plugin_preview_height", "600");
+
+				// Use a custom preview page
+				if (previewPage) {
+					var template = new Array();
+
+					template['file'] = previewPage;
+					template['width'] = previewWidth;
+					template['height'] = previewHeight;
+
+					tinyMCE.openWindow(template, {editor_id : editor_id, resizable : "yes", scrollbars : "yes", inline : "yes", content : tinyMCE.getContent(), content_css : tinyMCE.getParam("content_css")});
+				} else {
+					var win = window.open("", "mcePreview", "menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width=" + previewWidth + ",height="  + previewHeight);
+					var html = "", i;
+					var c = tinyMCE.getContent();
+					var pos = c.indexOf('<body'), pos2, css = tinyMCE.getParam("content_css").split(',');
+
+					if (pos != -1) {
+						pos = c.indexOf('>', pos);
+						pos2 = c.lastIndexOf('</body>');
+						c = c.substring(pos + 1, pos2);
+					}
+
+					html += tinyMCE.getParam('doctype');
+					html += '<html xmlns="http://www.w3.org/1999/xhtml">';
+					html += '<head>';
+					html += '<title>' + tinyMCE.getLang('lang_preview_desc') + '</title>';
+					html += '<base href="' + tinyMCE.settings['base_href'] + '" />';
+					html += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
+
+					for (i=0; i<css.length; i++)
+						html += '<link href="' + css[i] + '" rel="stylesheet" type="text/css" />';
+
+					html += '<script type="text/javascript">';
+					html += 'window.opener.TinyMCE_PreviewPlugin._setDoc(document);';
+					html += 'window.opener.TinyMCE_PreviewPlugin._setWin(window);';
+					html += 'writeFlash = window.opener.TinyMCE_PreviewPlugin._writeFlash;';
+					html += 'writeShockWave = window.opener.TinyMCE_PreviewPlugin._writeShockWave;';
+					html += 'writeQuickTime = window.opener.TinyMCE_PreviewPlugin._writeQuickTime;';
+					html += 'writeRealMedia = window.opener.TinyMCE_PreviewPlugin._writeRealMedia;';
+					html += 'writeWindowsMedia = window.opener.TinyMCE_PreviewPlugin._writeWindowsMedia;';
+					html += 'writeEmbed = window.opener.TinyMCE_PreviewPlugin._writeEmbed;';
+					html += '</script>';
+					html += '</head>';
+					html += '<body dir="' + tinyMCE.getParam("directionality") + '" onload="window.opener.TinyMCE_PreviewPlugin._onLoad();">';
+					html += c;
+					html += '</body>';
+					html += '</html>';
+
+					win.document.write(html);
+					win.document.close();
+				}
+
+				return true;
+		}
+
+		return false;
+	},
+
+	_setDoc : function(d) {
+		TinyMCE_PreviewPlugin._doc = d;
+		d._embeds = new Array();
+	},
+
+	_setWin : function(d) {
+		TinyMCE_PreviewPlugin._win = d;
+	},
+
+	_onLoad : function() {
+		var nl, i, el = new Array(), d = TinyMCE_PreviewPlugin._doc, sv, ne;
+
+		nl = d.getElementsByTagName("script");
+		for (i=0; i<nl.length; i++) {
+			sv = tinyMCE.isMSIE ? nl[i].innerHTML : nl[i].firstChild.nodeValue;
+
+			if (new RegExp('write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\\(.*', 'g').test(sv))
+				el[el.length] = nl[i];
+		}
+
+		for (i=0; i<el.length; i++) {
+			ne = d.createElement("div");
+			ne.innerHTML = d._embeds[i];
+			el[i].parentNode.insertBefore(ne.firstChild, el[i]);
+		}
+	},
+
+	_writeFlash : function(p) {
+		p.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], p.src);
+		TinyMCE_PreviewPlugin._writeEmbed(
+			'D27CDB6E-AE6D-11cf-96B8-444553540000',
+			'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+			'application/x-shockwave-flash',
+			p
+		);
+	},
+
+	_writeShockWave : function(p) {
+		p.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], p.src);
+		TinyMCE_PreviewPlugin._writeEmbed(
+			'166B1BCA-3F9C-11CF-8075-444553540000',
+			'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
+			'application/x-director',
+			p
+		);
+	},
+
+	_writeQuickTime : function(p) {
+		p.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], p.src);
+		TinyMCE_PreviewPlugin._writeEmbed(
+			'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
+			'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
+			'video/quicktime',
+			p
+		);
+	},
+
+	_writeRealMedia : function(p) {
+		p.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], p.src);
+		TinyMCE_PreviewPlugin._writeEmbed(
+			'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
+			'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+			'audio/x-pn-realaudio-plugin',
+			p
+		);
+	},
+
+	_writeWindowsMedia : function(p) {
+		p.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], p.src);
+		p.url = p.src;
+		TinyMCE_PreviewPlugin._writeEmbed(
+			'6BF52A52-394A-11D3-B153-00C04F79FAA6',
+			'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
+			'application/x-mplayer2',
+			p
+		);
+	},
+
+	_writeEmbed : function(cls, cb, mt, p) {
+		var h = '', n, d = TinyMCE_PreviewPlugin._doc, ne, c;
+
+		h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
+		h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
+		h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
+		h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
+		h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
+		h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
+		h += '>';
+
+		for (n in p)
+			h += '<param name="' + n + '" value="' + p[n] + '">';
+
+		h += '<embed type="' + mt + '"';
+
+		for (n in p)
+			h += n + '="' + p[n] + '" ';
+
+		h += '></embed></object>';
+
+		d._embeds[d._embeds.length] = h;
+	}
+};
+
+tinyMCE.addPlugin("preview", TinyMCE_PreviewPlugin);
diff --git a/tinyMCE/plugins/preview/example.html b/tinyMCE/plugins/preview/example.html
new file mode 100644
index 0000000000000000000000000000000000000000..d02eb7379ce5729bedb46697786ccb439afb49fb
--- /dev/null
+++ b/tinyMCE/plugins/preview/example.html
@@ -0,0 +1,14 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script language="javascript" src="../../tiny_mce_popup.js"></script>
+<script type="text/javascript" src="jscripts/embed.js"></script>
+<title>Example of a custom preview page</title>
+<link href="{$content_css}" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+Editor contents: <br />
+{$content}
+
+</body>
+</html>
diff --git a/tinyMCE/plugins/preview/images/preview.gif b/tinyMCE/plugins/preview/images/preview.gif
new file mode 100644
index 0000000000000000000000000000000000000000..318936eaac98edd0d40334abcd2f7c1c10abaec9
Binary files /dev/null and b/tinyMCE/plugins/preview/images/preview.gif differ
diff --git a/tinyMCE/plugins/preview/jscripts/embed.js b/tinyMCE/plugins/preview/jscripts/embed.js
new file mode 100644
index 0000000000000000000000000000000000000000..f8dc810527b43e3403bfbe1e147399a06dfdf5b5
--- /dev/null
+++ b/tinyMCE/plugins/preview/jscripts/embed.js
@@ -0,0 +1,73 @@
+/**
+ * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
+ */
+
+function writeFlash(p) {
+	writeEmbed(
+		'D27CDB6E-AE6D-11cf-96B8-444553540000',
+		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+		'application/x-shockwave-flash',
+		p
+	);
+}
+
+function writeShockWave(p) {
+	writeEmbed(
+	'166B1BCA-3F9C-11CF-8075-444553540000',
+	'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
+	'application/x-director',
+		p
+	);
+}
+
+function writeQuickTime(p) {
+	writeEmbed(
+		'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
+		'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
+		'video/quicktime',
+		p
+	);
+}
+
+function writeRealMedia(p) {
+	writeEmbed(
+		'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
+		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+		'audio/x-pn-realaudio-plugin',
+		p
+	);
+}
+
+function writeWindowsMedia(p) {
+	p.url = p.src;
+	writeEmbed(
+		'6BF52A52-394A-11D3-B153-00C04F79FAA6',
+		'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
+		'application/x-mplayer2',
+		p
+	);
+}
+
+function writeEmbed(cls, cb, mt, p) {
+	var h = '', n;
+
+	h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
+	h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
+	h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
+	h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
+	h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
+	h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
+	h += '>';
+
+	for (n in p)
+		h += '<param name="' + n + '" value="' + p[n] + '">';
+
+	h += '<embed type="' + mt + '"';
+
+	for (n in p)
+		h += n + '="' + p[n] + '" ';
+
+	h += '></embed></object>';
+
+	document.write(h);
+}
diff --git a/tinyMCE/plugins/preview/langs/ca.js b/tinyMCE/plugins/preview/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..b68b6751dfa13161ddea479b7e3f1ca6d71383b8
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ca.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Preview'
+});
diff --git a/tinyMCE/plugins/preview/langs/cs.js b/tinyMCE/plugins/preview/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..c852107c919d78253b0784922a8a3d3d0f896ad2
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/cs.js
@@ -0,0 +1,11 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.5 2006/01/11 14:25:49 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+preview_desc : 'Náhled'
+});
+
diff --git a/tinyMCE/plugins/preview/langs/cy.js b/tinyMCE/plugins/preview/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..01d4201d5926d204a1e1d94272ba34c2160f9d82
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/cy.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Rhagolwg'
+});
diff --git a/tinyMCE/plugins/preview/langs/da.js b/tinyMCE/plugins/preview/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..ba36e8d885e88bd495ae5c193afe8ea72f25e5cf
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/da.js
@@ -0,0 +1,5 @@
+// DK lang variables - Transl.:Jan Moelgaard - Corr.: Ronny Buelund
+
+tinyMCE.addToLang('',{
+preview_desc : 'Forh&aring;ndsvisning'
+});
diff --git a/tinyMCE/plugins/preview/langs/de.js b/tinyMCE/plugins/preview/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..c8bc6b12b54d17fe1260b391a119bc28f32f708a
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/de.js
@@ -0,0 +1,5 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Vorschau'
+});
diff --git a/tinyMCE/plugins/preview/langs/el.js b/tinyMCE/plugins/preview/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..cbfc7745713b16d56705626606c22b2c2dae0389
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/el.js
@@ -0,0 +1,5 @@
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+preview_desc : 'Ðñïåðéóêüðçóç éóôïóåëßäáò'
+});
diff --git a/tinyMCE/plugins/preview/langs/en.js b/tinyMCE/plugins/preview/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..b68b6751dfa13161ddea479b7e3f1ca6d71383b8
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/en.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Preview'
+});
diff --git a/tinyMCE/plugins/preview/langs/es.js b/tinyMCE/plugins/preview/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..a305521b4b54d221ac22549bb52ca73b1573ac96
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/es.js
@@ -0,0 +1,7 @@
+// ES lang variables by Alvaro Velasco and Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>
+// Last Updated : October 2005
+// TinyMCE Version : 2.0RC3
+
+tinyMCE.addToLang('',{
+preview_desc : 'Vista previa'
+});
diff --git a/tinyMCE/plugins/preview/langs/fa.js b/tinyMCE/plugins/preview/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9a9658109f3c5e3f287c153d35ba28c55ff6e29
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/fa.js
@@ -0,0 +1,10 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+preview_desc : '??? ?????'
+});
diff --git a/tinyMCE/plugins/preview/langs/fi.js b/tinyMCE/plugins/preview/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..146f13a1c72fa357da766fed9c79fb8158cc1b59
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/fi.js
@@ -0,0 +1,5 @@
+// FI lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Esikatselu'
+});
diff --git a/tinyMCE/plugins/preview/langs/fr.js b/tinyMCE/plugins/preview/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..1a215938bcb65b2c7101cbcff3cb759f4529fa0e
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/fr.js
@@ -0,0 +1,6 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+preview_desc : 'Pr&eacute;visualisation'
+});
diff --git a/tinyMCE/plugins/preview/langs/fr_ca.js b/tinyMCE/plugins/preview/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f687d696d3622737c5fe96965ce4d0472d480d5
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/fr_ca.js
@@ -0,0 +1,5 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+preview_desc : 'Prévisualisation'
+});
diff --git a/tinyMCE/plugins/preview/langs/he.js b/tinyMCE/plugins/preview/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..6fd7262dc22bff71893e2125b3f216e160d9bcb0
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/he.js
@@ -0,0 +1,5 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+preview_desc : 'úöåâä î÷ãéîä'
+});
diff --git a/tinyMCE/plugins/preview/langs/hu.js b/tinyMCE/plugins/preview/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..94e83b9c6b140c330ec32502508ac9887172f81d
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/hu.js
@@ -0,0 +1,5 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Elõnézet'
+});
diff --git a/tinyMCE/plugins/preview/langs/is.js b/tinyMCE/plugins/preview/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..d20b485b2dc47f6103e21018f329a292be992ec1
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/is.js
@@ -0,0 +1,5 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+preview_desc : 'Forsko&eth;a'
+});
diff --git a/tinyMCE/plugins/preview/langs/it.js b/tinyMCE/plugins/preview/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..939feb7bdf2c99d7f22eeb6a7b63720638d106aa
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/it.js
@@ -0,0 +1,11 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+preview_desc : 'Anteprima'
+});
diff --git a/tinyMCE/plugins/preview/langs/ja.js b/tinyMCE/plugins/preview/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c1ed41387fd7472f6bf0ec1c233f422a10c6839
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ja.js
@@ -0,0 +1,5 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'プレビュー'
+});
diff --git a/tinyMCE/plugins/preview/langs/ja_euc-jp.js b/tinyMCE/plugins/preview/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..dbf4a2d19dfe69c5d1632c25e5d593e311603872
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ja_euc-jp.js
@@ -0,0 +1,5 @@
+// ÆüËܸì euc lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : '¥×¥ì¥Ó¥å¡¼'
+});
diff --git a/tinyMCE/plugins/preview/langs/ja_shift_jis.js b/tinyMCE/plugins/preview/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..a328cd59520895aeaf546177cc3ac111f80e24da
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ja_shift_jis.js
@@ -0,0 +1,5 @@
+// “ú–{Œê shift_jis lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'ƒvƒŒƒrƒ…['
+});
diff --git a/tinyMCE/plugins/preview/langs/ja_utf-8.js b/tinyMCE/plugins/preview/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..8adc816162b3628cff346f27959728046f14f2bc
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ja_utf-8.js
@@ -0,0 +1,5 @@
+// 日本語 utf-8 lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'プレビュー'
+});
diff --git a/tinyMCE/plugins/preview/langs/ko.js b/tinyMCE/plugins/preview/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..2759a082a1fbc7fe6530c7264bd1592e585787af
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ko.js
@@ -0,0 +1,5 @@
+// KO lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : '¹Ì¸®º¸±â'
+});
diff --git a/tinyMCE/plugins/preview/langs/nb.js b/tinyMCE/plugins/preview/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..231f1ba30a4efa90258e38274129bfbef5bbac3b
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/nb.js
@@ -0,0 +1,5 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+preview_desc : 'Forh&aring;ndsvisning'
+});
diff --git a/tinyMCE/plugins/preview/langs/nl.js b/tinyMCE/plugins/preview/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..ec66d32a16566411e44118cb90f9555f7331e200
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/nl.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Voorbeeld'
+});
diff --git a/tinyMCE/plugins/preview/langs/nn.js b/tinyMCE/plugins/preview/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..e273a271ab2ec0d95c812b73130750f74a3a5bdd
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/nn.js
@@ -0,0 +1,5 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+preview_desc : 'Forh&aring;ndsvisning'
+});
diff --git a/tinyMCE/plugins/preview/langs/pl.js b/tinyMCE/plugins/preview/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..c1f87e30244339337b5a3ffa20e9341f592e15a0
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/pl.js
@@ -0,0 +1,7 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.musion.prv.pl
+
+tinyMCE.addToLang('',{
+preview_desc : 'PodglÄ…d'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/preview/langs/pt_br.js b/tinyMCE/plugins/preview/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..0b1c755b8597be86a9e704f81ebfd897ac131680
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/pt_br.js
@@ -0,0 +1,13 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+preview_desc : 'Visualizar'
+});
diff --git a/tinyMCE/plugins/preview/langs/ro.js b/tinyMCE/plugins/preview/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf15bfd6fb4890d2683f3fea7a9b51428c2a667e
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ro.js
@@ -0,0 +1,5 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Previzualizare'
+});
diff --git a/tinyMCE/plugins/preview/langs/ru.js b/tinyMCE/plugins/preview/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..4471e3b492d6b3ab99f315032a2dba9dcd1836a5
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ru.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Предварительный просмотр'
+});
diff --git a/tinyMCE/plugins/preview/langs/ru_CP1251.js b/tinyMCE/plugins/preview/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..d3a77658213b52c21eefe641a7e23c3958efec53
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ru_CP1251.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Ïðåäâàðèòåëüíûé ïðîñìîòð'
+});
diff --git a/tinyMCE/plugins/preview/langs/ru_KOI8-R.js b/tinyMCE/plugins/preview/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..f99bacd2137d351740b580bcd10ed5c86eb12e34
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/ru_KOI8-R.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'ðÒÅÄ×ÁÒÉÔÅÌØÎÙÊ ÐÒÏÓÍÏÔÒ'
+});
diff --git a/tinyMCE/plugins/preview/langs/si.js b/tinyMCE/plugins/preview/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..83b2fe3e3776bc7e0a98a4ab6189e01781d332d4
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/si.js
@@ -0,0 +1,5 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+preview_desc : 'Predogled'
+});
diff --git a/tinyMCE/plugins/preview/langs/sk.js b/tinyMCE/plugins/preview/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..7a1971f40525cdb77d68fbaf703ce0fae775dde9
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/sk.js
@@ -0,0 +1,13 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+preview_desc : 'Náhľad'
+});
+
diff --git a/tinyMCE/plugins/preview/langs/sq.js b/tinyMCE/plugins/preview/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..411c19066f300be8c3e664baadbf077a4f200018
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/sq.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Parashiko'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/preview/langs/sr.js b/tinyMCE/plugins/preview/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..06b3ddfd07843eebf0d19a4934f0d1bcab535c47
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/sr.js
@@ -0,0 +1,5 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Pregled'
+});
diff --git a/tinyMCE/plugins/preview/langs/sv.js b/tinyMCE/plugins/preview/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..cb2bbf87e4e5aaf26ae27601abf5b4956127e4ba
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/sv.js
@@ -0,0 +1,5 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'F&ouml;rhandsgranska'
+});
diff --git a/tinyMCE/plugins/preview/langs/sv_utf8.js b/tinyMCE/plugins/preview/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..cb2bbf87e4e5aaf26ae27601abf5b4956127e4ba
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/sv_utf8.js
@@ -0,0 +1,5 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'F&ouml;rhandsgranska'
+});
diff --git a/tinyMCE/plugins/preview/langs/tr.js b/tinyMCE/plugins/preview/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f31557b0d91f32918d10cf76597f97975ec67d0
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/tr.js
@@ -0,0 +1,5 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Önizleme'
+});
diff --git a/tinyMCE/plugins/preview/langs/uk.js b/tinyMCE/plugins/preview/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..61e4d78d1ce5b01054c058a5614422f0fd5eec5b
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/uk.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Попередній перегляд'
+});
diff --git a/tinyMCE/plugins/preview/langs/uk_CP1251.js b/tinyMCE/plugins/preview/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..a99d21bb9ae0579434ec3da8132c774796a6c85e
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/uk_CP1251.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Ïîïåðåäí³é ïåðåãëÿä'
+});
diff --git a/tinyMCE/plugins/preview/langs/uk_KOI8-U.js b/tinyMCE/plugins/preview/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..aa397fef34fafee3db22afc22b2ba6af357394c6
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/uk_KOI8-U.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'ðÏÐÅÒÅÄÎ¦Ê ÐÅÒÅÇÌÑÄ'
+});
diff --git a/tinyMCE/plugins/preview/langs/vi.js b/tinyMCE/plugins/preview/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..f2eb9497368df3ea099e5b9f6c76b82a0e3b0a6b
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/vi.js
@@ -0,0 +1,5 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+preview_desc : 'Xem trước'
+});
diff --git a/tinyMCE/plugins/preview/langs/zh_cn.js b/tinyMCE/plugins/preview/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff49c409122d1667164d5474a2b3eb5dc7d834a0
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/zh_cn.js
@@ -0,0 +1,6 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+preview_desc : 'Ô¤ÀÀ'
+});
diff --git a/tinyMCE/plugins/preview/langs/zh_cn_utf8.js b/tinyMCE/plugins/preview/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..c17e032dff1cb98596b5c0757dc3f55fe5b3bbf0
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/zh_cn_utf8.js
@@ -0,0 +1,6 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+preview_desc : '预览'
+});
diff --git a/tinyMCE/plugins/preview/langs/zh_tw.js b/tinyMCE/plugins/preview/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..f15e5515fe05f76cebe20ba7b518a4a574e73e71
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/zh_tw.js
@@ -0,0 +1,6 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+preview_desc : '¹wÄý'
+});
diff --git a/tinyMCE/plugins/preview/langs/zh_tw_utf8.js b/tinyMCE/plugins/preview/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..9d5e7378ada88491f2caba8a91f00e2ce93307e2
--- /dev/null
+++ b/tinyMCE/plugins/preview/langs/zh_tw_utf8.js
@@ -0,0 +1,6 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+preview_desc : '預覽'
+});
diff --git a/tinyMCE/plugins/preview/readme.txt b/tinyMCE/plugins/preview/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/preview/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/print/editor_plugin.js b/tinyMCE/plugins/print/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..79241feb29c0613fcad1066d750c133eb1a290aa
--- /dev/null
+++ b/tinyMCE/plugins/print/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('print');var TinyMCE_PrintPlugin={getInfo:function(){return{longname:'Print',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"print":return tinyMCE.getButtonHTML(cn,'lang_print_desc','{$pluginurl}/images/print.gif','mcePrint')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mcePrint":tinyMCE.getInstanceById(editor_id).contentWindow.print();return true}return false}};tinyMCE.addPlugin("print",TinyMCE_PrintPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/print/editor_plugin_src.js b/tinyMCE/plugins/print/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..9478a51f3ecc0454c7c8e10c4d2b2d150e09c53d
--- /dev/null
+++ b/tinyMCE/plugins/print/editor_plugin_src.js
@@ -0,0 +1,47 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import theme	specific language pack */
+tinyMCE.importPluginLanguagePack('print');
+
+var TinyMCE_PrintPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Print',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	getControlHTML : function(cn)	{
+		switch (cn) {
+			case "print":
+				return tinyMCE.getButtonHTML(cn, 'lang_print_desc', '{$pluginurl}/images/print.gif', 'mcePrint');
+		}
+
+		return "";
+	},
+
+	/**
+	 * Executes	the	search/replace commands.
+	 */
+	execCommand : function(editor_id, element, command,	user_interface,	value) {
+		// Handle commands
+		switch (command) {
+			case "mcePrint":
+				tinyMCE.getInstanceById(editor_id).contentWindow.print();
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	}
+};
+
+tinyMCE.addPlugin("print", TinyMCE_PrintPlugin);
diff --git a/tinyMCE/plugins/print/images/print.gif b/tinyMCE/plugins/print/images/print.gif
new file mode 100644
index 0000000000000000000000000000000000000000..72104d177b7fb10164fe2dcd5c11833af420ed0d
Binary files /dev/null and b/tinyMCE/plugins/print/images/print.gif differ
diff --git a/tinyMCE/plugins/print/langs/ca.js b/tinyMCE/plugins/print/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..6407cdb849a0f7555beb8f367a2c33ebe28fe62a
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ca.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Print'
+});
diff --git a/tinyMCE/plugins/print/langs/cs.js b/tinyMCE/plugins/print/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..8365e71265ae632f9b4c2facb2b63921b94fb37a
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/cs.js
@@ -0,0 +1,11 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.4 2005/10/18 13:59:43 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+print_desc : 'Tisk'
+});
+
diff --git a/tinyMCE/plugins/print/langs/cy.js b/tinyMCE/plugins/print/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..ea0a8d0d44f6e980a3568f654539c81bd8868f17
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/cy.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Argraffu'
+});
diff --git a/tinyMCE/plugins/print/langs/da.js b/tinyMCE/plugins/print/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..b5c9b95cd154e85dbec6a1ba28418a801356c378
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/da.js
@@ -0,0 +1,5 @@
+// DK lang variables - Transl.:Jan Moelgaard - Corr.:
+
+tinyMCE.addToLang('',{
+print_desc : 'Udskriv'
+});
diff --git a/tinyMCE/plugins/print/langs/de.js b/tinyMCE/plugins/print/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..959bdf5a67f122c078215d5d16372e4e18d72950
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/de.js
@@ -0,0 +1,5 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Drucken'
+});
diff --git a/tinyMCE/plugins/print/langs/el.js b/tinyMCE/plugins/print/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..60855ce84e5c4035fe8435ad3e8035db45fe3275
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/el.js
@@ -0,0 +1,5 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+print_desc : 'Åêôýðùóç'
+});
diff --git a/tinyMCE/plugins/print/langs/en.js b/tinyMCE/plugins/print/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..6407cdb849a0f7555beb8f367a2c33ebe28fe62a
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/en.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Print'
+});
diff --git a/tinyMCE/plugins/print/langs/es.js b/tinyMCE/plugins/print/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..273784eaac66fc1e0d961eb855e5ca083ee6bfe9
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/es.js
@@ -0,0 +1,7 @@
+// ES lang variables by Alvaro Velasco and Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>
+// Last Updated : October 2005
+// TinyMCE Version : 2.0RC3
+
+tinyMCE.addToLang('',{
+print_desc : 'Imprimir'
+});
diff --git a/tinyMCE/plugins/print/langs/fa.js b/tinyMCE/plugins/print/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..81e6df0154a78beb962f29f641c4ac80098e54f4
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/fa.js
@@ -0,0 +1,10 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+print_desc : '???'
+});
diff --git a/tinyMCE/plugins/print/langs/fi.js b/tinyMCE/plugins/print/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..e97d9abaeab87261e78287c574d90ee4598a468a
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/fi.js
@@ -0,0 +1,5 @@
+// FI lang variables by Tuomo Aura, Ateco.fi
+
+tinyMCE.addToLang('',{
+print_desc : 'Tulosta'
+});
diff --git a/tinyMCE/plugins/print/langs/fr.js b/tinyMCE/plugins/print/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..8286abb29f060c104f873f2b611b97b1ed3e968d
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/fr.js
@@ -0,0 +1,6 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+print_desc : 'Imprimer'
+});
diff --git a/tinyMCE/plugins/print/langs/fr_ca.js b/tinyMCE/plugins/print/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..c98cc74ffe5f8c2cc6b585a62c3c52b94f3860db
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/fr_ca.js
@@ -0,0 +1,5 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+print_desc : 'Imprimer'
+});
diff --git a/tinyMCE/plugins/print/langs/he.js b/tinyMCE/plugins/print/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..de55f38f5fa7629e2c44dd3317a8da96bf058e5e
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/he.js
@@ -0,0 +1,5 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+print_desc : 'äãôñ'
+});
diff --git a/tinyMCE/plugins/print/langs/hu.js b/tinyMCE/plugins/print/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e1ec6a295f59a142d51e51e8b4ee7fb565ff688
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/hu.js
@@ -0,0 +1,5 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Nyomtatás'
+});
diff --git a/tinyMCE/plugins/print/langs/is.js b/tinyMCE/plugins/print/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..df67cae8102a8204a4d18c73a8a2ca647627ae42
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/is.js
@@ -0,0 +1,5 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+print_desc : 'Prenta'
+});
diff --git a/tinyMCE/plugins/print/langs/it.js b/tinyMCE/plugins/print/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..3fcb704bcf271ffe291279eed01bc4ef2d09d894
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/it.js
@@ -0,0 +1,11 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+print_desc : 'Stampa'
+});
diff --git a/tinyMCE/plugins/print/langs/ja.js b/tinyMCE/plugins/print/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..0144cf5d8a73edf66848c9d7afd88b92eb20b48b
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ja.js
@@ -0,0 +1,5 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+print_desc : '印刷'
+});
diff --git a/tinyMCE/plugins/print/langs/ja_euc-jp.js b/tinyMCE/plugins/print/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..a5df7532a0ee6a5cd433be0aea4a3b4266c74bfb
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ja_euc-jp.js
@@ -0,0 +1,5 @@
+// Japanese euc variables
+
+tinyMCE.addToLang('',{
+print_desc : '°õºþ'
+});
diff --git a/tinyMCE/plugins/print/langs/ja_shift_jis.js b/tinyMCE/plugins/print/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4ecfa9087fadb27ca691d9667a1fbce13986872
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ja_shift_jis.js
@@ -0,0 +1,5 @@
+// Japanese shift-jis variables
+
+tinyMCE.addToLang('',{
+print_desc : 'ˆóü'
+});
diff --git a/tinyMCE/plugins/print/langs/ja_utf-8.js b/tinyMCE/plugins/print/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..a3c1eb1ca112a280ea165b8349aaf7f3294e2882
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ja_utf-8.js
@@ -0,0 +1,5 @@
+// Japanese utf-8 variables
+
+tinyMCE.addToLang('',{
+print_desc : '印刷'
+});
diff --git a/tinyMCE/plugins/print/langs/ko.js b/tinyMCE/plugins/print/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..6407cdb849a0f7555beb8f367a2c33ebe28fe62a
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ko.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Print'
+});
diff --git a/tinyMCE/plugins/print/langs/nb.js b/tinyMCE/plugins/print/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..e2dba3bd87058be71423f5eb4346953d9b2a7f82
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/nb.js
@@ -0,0 +1,5 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+print_desc : 'Skriv ut'
+});
diff --git a/tinyMCE/plugins/print/langs/nl.js b/tinyMCE/plugins/print/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b120259b891475dd2358c0dbe7664319d51d399
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/nl.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Afdrukken'
+});
diff --git a/tinyMCE/plugins/print/langs/nn.js b/tinyMCE/plugins/print/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..4e2fdec2e0f1e3f4dec0fa736303d9b580749b1b
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/nn.js
@@ -0,0 +1,5 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+print_desc : 'Skriv ut'
+});
diff --git a/tinyMCE/plugins/print/langs/pl.js b/tinyMCE/plugins/print/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..d13f09ce58b73e38a68846cbfd8797cddb570e39
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/pl.js
@@ -0,0 +1,5 @@
+// PL lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Drukuj'
+});
diff --git a/tinyMCE/plugins/print/langs/pt_br.js b/tinyMCE/plugins/print/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..c12cb1d70803d0f05d267b020d6837c45ae2b6c2
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/pt_br.js
@@ -0,0 +1,13 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+print_desc : 'Imprimir'
+});
diff --git a/tinyMCE/plugins/print/langs/ro.js b/tinyMCE/plugins/print/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..036a684cee1bf84b7ab3bb15c930eca18a2a1d60
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ro.js
@@ -0,0 +1,5 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Tip&#259;re&#351;te'
+});
diff --git a/tinyMCE/plugins/print/langs/ru.js b/tinyMCE/plugins/print/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..829d445b248430ffe4146be9b381e9dcb8a40999
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ru.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Распечатать'
+});
diff --git a/tinyMCE/plugins/print/langs/ru_CP1251.js b/tinyMCE/plugins/print/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..350e4f30a441ff7ff17b1a78fc7b0fbc5048b737
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ru_CP1251.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Ðàñïå÷àòàòü'
+});
diff --git a/tinyMCE/plugins/print/langs/ru_KOI8-R.js b/tinyMCE/plugins/print/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..02437677f0c2d1d130955ad2fc982547d7420185
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/ru_KOI8-R.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'òÁÓÐÅÞÁÔÁÔØ'
+});
diff --git a/tinyMCE/plugins/print/langs/si.js b/tinyMCE/plugins/print/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..b971cdaf14136f0144d2a66eae209c3a9bf02f83
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/si.js
@@ -0,0 +1,5 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+print_desc : 'Natisni'
+});
diff --git a/tinyMCE/plugins/print/langs/sk.js b/tinyMCE/plugins/print/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..9954763279c25d18a3ede6e945fe085b1df29779
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/sk.js
@@ -0,0 +1,13 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+print_desc : 'Tlač'
+});
+
diff --git a/tinyMCE/plugins/print/langs/sq.js b/tinyMCE/plugins/print/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..1019f0f734fd39dfde6b5bee571c211b23999eaa
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/sq.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Shtyp'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/print/langs/sr.js b/tinyMCE/plugins/print/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..40a5f6650947b014c5fda9ba3b19f1deb8a25e06
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/sr.js
@@ -0,0 +1,5 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Å tampanje'
+});
diff --git a/tinyMCE/plugins/print/langs/sv.js b/tinyMCE/plugins/print/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..34484379e220af31b9be95dfa0bc42d7c2c0f71e
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/sv.js
@@ -0,0 +1,5 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Skriv ut'
+});
diff --git a/tinyMCE/plugins/print/langs/sv_utf8.js b/tinyMCE/plugins/print/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..34484379e220af31b9be95dfa0bc42d7c2c0f71e
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/sv_utf8.js
@@ -0,0 +1,5 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Skriv ut'
+});
diff --git a/tinyMCE/plugins/print/langs/tr.js b/tinyMCE/plugins/print/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..970ab03ac243c6a7fb5bb2d383323cf32e2148c9
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/tr.js
@@ -0,0 +1,5 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Yazdýr'
+});
diff --git a/tinyMCE/plugins/print/langs/uk.js b/tinyMCE/plugins/print/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..4732aa50f029a018c29719ae862ed3f6209961d4
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/uk.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Роздрукувати'
+});
diff --git a/tinyMCE/plugins/print/langs/uk_CP1251.js b/tinyMCE/plugins/print/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..313dcf43aeecf3de48858309cce341c55c78d286
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/uk_CP1251.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Ðîçäðóêóâàòè'
+});
diff --git a/tinyMCE/plugins/print/langs/uk_KOI8-U.js b/tinyMCE/plugins/print/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..d708aefdf975d7b1d13c7463dd2ad16b48c577e1
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/uk_KOI8-U.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'òÏÚÄÒÕËÕ×ÁÔÉ'
+});
diff --git a/tinyMCE/plugins/print/langs/vi.js b/tinyMCE/plugins/print/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4072c6dcb05a35b43fcad9d4ca17ca5d217b091
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/vi.js
@@ -0,0 +1,5 @@
+// Vietnamese lang variables - Ðỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+print_desc : 'In'
+});
diff --git a/tinyMCE/plugins/print/langs/zh_cn.js b/tinyMCE/plugins/print/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..c0a7aba56956caba99a0e82147bc1e6ad69dca70
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/zh_cn.js
@@ -0,0 +1,6 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+print_desc : '´òÓ¡'
+});
diff --git a/tinyMCE/plugins/print/langs/zh_cn_utf8.js b/tinyMCE/plugins/print/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..14707b3d83f8741cc829266708242cf36e604801
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/zh_cn_utf8.js
@@ -0,0 +1,6 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+print_desc : '打印'
+});
diff --git a/tinyMCE/plugins/print/langs/zh_tw.js b/tinyMCE/plugins/print/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..6dc26a60dd2146f2c06c0525c63cd50a312f7bc0
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/zh_tw.js
@@ -0,0 +1,6 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+print_desc : '¦C¦L'
+});
diff --git a/tinyMCE/plugins/print/langs/zh_tw_utf8.js b/tinyMCE/plugins/print/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..c0615a738345d12fea161af04ff2afc81adcb873
--- /dev/null
+++ b/tinyMCE/plugins/print/langs/zh_tw_utf8.js
@@ -0,0 +1,6 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+print_desc : '列印'
+});
diff --git a/tinyMCE/plugins/print/readme.txt b/tinyMCE/plugins/print/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/print/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/readme.txt b/tinyMCE/plugins/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9192b26a5a0c1e198a3027082a2da00b512e01cc
--- /dev/null
+++ b/tinyMCE/plugins/readme.txt
@@ -0,0 +1 @@
+This is the location you place TinyMCE plugins.
diff --git a/tinyMCE/plugins/save/editor_plugin.js b/tinyMCE/plugins/save/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd23dab18659cf8a72c472dabe93c3c48a77ac25
--- /dev/null
+++ b/tinyMCE/plugins/save/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('save');var TinyMCE_SavePlugin={getInfo:function(){return{longname:'Save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){inst.addShortcut('ctrl','s','lang_save_desc','mceSave')},getControlHTML:function(cn){switch(cn){case"save":return tinyMCE.getButtonHTML(cn,'lang_save_desc','{$pluginurl}/images/save.gif','mceSave');case"cancel":return tinyMCE.getButtonHTML(cn,'lang_cancel_desc','{$pluginurl}/images/cancel.gif','mceCancel')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceSave":return this._save(editor_id,element,command,user_interface,value);case"mceCancel":return this._cancel(editor_id,element,command,user_interface,value)}return false},_save:function(editor_id,element,command,user_interface,value){var inst,formObj,os,i,elementId;if(tinyMCE.getParam("fullscreen_is_enabled"))return true;inst=tinyMCE.selectedInstance;formObj=inst.formElement.form;if(tinyMCE.getParam("save_enablewhendirty")&&!inst.isDirty())return true;if(formObj){tinyMCE.triggerSave();if((os=tinyMCE.getParam("save_onsavecallback"))){if(eval(os+'(inst);')){inst.startContent=tinyMCE.trim(inst.getBody().innerHTML);tinyMCE.triggerNodeChange(false,true)}return true}for(i=0;i<formObj.elements.length;i++){elementId=formObj.elements[i].name?formObj.elements[i].name:formObj.elements[i].id;if(elementId.indexOf('mce_editor_')==0)formObj.elements[i].disabled=true}inst.isNotDirty=true;if(formObj.onsubmit==null||formObj.onsubmit()!=false)inst.formElement.form.submit();tinyMCE.triggerNodeChange(false,true)}else alert("Error: No form element found.");return true},_cancel:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id),os,h=tinyMCE.trim(inst.startContent);if((os=tinyMCE.getParam("save_oncancelcallback"))){if(eval(os+'(inst);'))return true}inst.setHTML(h);inst.undoRedo.undoLevels=[];inst.undoRedo.add({content:h});inst.undoRedo.undoIndex=0;inst.undoRedo.typingUndoIndex=-1;tinyMCE.triggerNodeChange(false,true);return true},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){var inst;if(tinyMCE.getParam("fullscreen_is_enabled")){tinyMCE.switchClass(editor_id+'_save','mceButtonDisabled');return true}if(tinyMCE.getParam("save_enablewhendirty")){inst=tinyMCE.getInstanceById(editor_id);if(inst.isDirty()){tinyMCE.switchClass(editor_id+'_save','mceButtonNormal');return true}tinyMCE.switchClass(editor_id+'_save','mceButtonDisabled')}return true}};tinyMCE.addPlugin("save",TinyMCE_SavePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/save/editor_plugin_src.js b/tinyMCE/plugins/save/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ad469a40ddb4e8594bc0fc9e799a65c4045f58f
--- /dev/null
+++ b/tinyMCE/plugins/save/editor_plugin_src.js
@@ -0,0 +1,152 @@
+/**
+ * $Id: editor_plugin_src.js 251 2007-04-10 20:16:15Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('save');
+
+var TinyMCE_SavePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Save',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		inst.addShortcut('ctrl', 's', 'lang_save_desc', 'mceSave');
+	},
+
+	/**
+	 * Returns the HTML contents of the save control.
+	 */
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "save":
+				return tinyMCE.getButtonHTML(cn, 'lang_save_desc', '{$pluginurl}/images/save.gif', 'mceSave');
+
+			case "cancel":
+				return tinyMCE.getButtonHTML(cn, 'lang_cancel_desc', '{$pluginurl}/images/cancel.gif', 'mceCancel');
+		}
+
+		return "";
+	},
+
+	/**
+	 * Executes the save command.
+	 */
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mceSave":
+				return this._save(editor_id, element, command, user_interface, value);
+
+			case "mceCancel":
+				return this._cancel(editor_id, element, command, user_interface, value);
+		}
+
+		// Pass to next handler in chain
+		return false;
+	},
+
+	_save : function(editor_id, element, command, user_interface, value) {
+		var inst, formObj, os, i, elementId;
+
+		if (tinyMCE.getParam("fullscreen_is_enabled"))
+			return true;
+
+		inst = tinyMCE.selectedInstance;
+		formObj = inst.formElement.form;
+
+		if (tinyMCE.getParam("save_enablewhendirty") && !inst.isDirty())
+			return true;
+
+		if (formObj) {
+			tinyMCE.triggerSave();
+
+			// Use callback instead
+			if ((os = tinyMCE.getParam("save_onsavecallback"))) {
+				if (eval(os + '(inst);')) {
+					inst.startContent = tinyMCE.trim(inst.getBody().innerHTML);
+					/*inst.undoLevels = new Array();
+					inst.undoIndex = 0;
+					inst.typingUndoIndex = -1;
+					inst.undoRedo = true;
+					inst.undoLevels[inst.undoLevels.length] = inst.startContent;*/
+					tinyMCE.triggerNodeChange(false, true);
+				}
+
+				return true;
+			}
+
+			// Disable all UI form elements that TinyMCE created
+			for (i=0; i<formObj.elements.length; i++) {
+				elementId = formObj.elements[i].name ? formObj.elements[i].name : formObj.elements[i].id;
+
+				if (elementId.indexOf('mce_editor_') == 0)
+					formObj.elements[i].disabled = true;
+			}
+
+			inst.isNotDirty = true;
+
+			if (formObj.onsubmit == null || formObj.onsubmit() != false)
+				inst.formElement.form.submit();
+
+			tinyMCE.triggerNodeChange(false, true);
+		} else
+			alert("Error: No form element found.");
+
+		return true;
+	},
+
+	_cancel : function(editor_id, element, command, user_interface, value) {
+		var inst = tinyMCE.getInstanceById(editor_id), os, h = tinyMCE.trim(inst.startContent);
+
+		// Use callback instead
+		if ((os = tinyMCE.getParam("save_oncancelcallback"))) {
+			if (eval(os + '(inst);'))
+				return true;
+		}
+
+		inst.setHTML(h);
+
+		inst.undoRedo.undoLevels = [];
+		inst.undoRedo.add({ content : h });
+		inst.undoRedo.undoIndex = 0;
+		inst.undoRedo.typingUndoIndex = -1;
+
+		tinyMCE.triggerNodeChange(false, true);
+
+		return true;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		var inst;
+
+		if (tinyMCE.getParam("fullscreen_is_enabled")) {
+			tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');
+			return true;
+		}
+
+		if (tinyMCE.getParam("save_enablewhendirty")) {
+			inst = tinyMCE.getInstanceById(editor_id);
+
+			if (inst.isDirty()) {
+				tinyMCE.switchClass(editor_id + '_save', 'mceButtonNormal');
+				return true;
+			}
+
+			tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');
+		}
+
+		return true;
+	}
+};
+
+tinyMCE.addPlugin("save", TinyMCE_SavePlugin);
diff --git a/tinyMCE/plugins/save/images/cancel.gif b/tinyMCE/plugins/save/images/cancel.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ad190ef26f45cb7f53d906078c8e9420ccdbef47
Binary files /dev/null and b/tinyMCE/plugins/save/images/cancel.gif differ
diff --git a/tinyMCE/plugins/save/images/save.gif b/tinyMCE/plugins/save/images/save.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2777bebfe7c66ae969f4580f0fd3ba37b9383a72
Binary files /dev/null and b/tinyMCE/plugins/save/images/save.gif differ
diff --git a/tinyMCE/plugins/save/langs/ca.js b/tinyMCE/plugins/save/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..2c56b4b88226f5b72b55abe01bd740a91d59304b
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ca.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Save'
+});
diff --git a/tinyMCE/plugins/save/langs/cs.js b/tinyMCE/plugins/save/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..581d6f975b8f697f647a8530e616140cbae74781
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/cs.js
@@ -0,0 +1,11 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.5 2006/01/11 14:25:49 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+save_desc : 'Uložit'
+});
+
diff --git a/tinyMCE/plugins/save/langs/cy.js b/tinyMCE/plugins/save/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..9bb3cdcce669f4355de67ef0a21cf8958c54e2e4
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/cy.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Cadw'
+});
diff --git a/tinyMCE/plugins/save/langs/da.js b/tinyMCE/plugins/save/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..f166df9596741911ada764107355f88c28ce2bae
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/da.js
@@ -0,0 +1,5 @@
+// DK lang variables - Transl.:Jan Moelgaard - Corr.:
+
+tinyMCE.addToLang('',{
+save_desc : 'Gem'
+});
diff --git a/tinyMCE/plugins/save/langs/de.js b/tinyMCE/plugins/save/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c071d25e38b8e18ca160a480a206ed43917cd6e
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/de.js
@@ -0,0 +1,5 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Speichern'
+});
diff --git a/tinyMCE/plugins/save/langs/el.js b/tinyMCE/plugins/save/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..9fade400cd47ae9a84a811609bfc6c04c418d7a4
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/el.js
@@ -0,0 +1,5 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+save_desc : 'ÁðïèÞêåõóç'
+});
diff --git a/tinyMCE/plugins/save/langs/en.js b/tinyMCE/plugins/save/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..7793088705d9a0ce03f242be987df5ca07c6ed88
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/en.js
@@ -0,0 +1,6 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Save',
+cancel_desc : 'Cancel all changes'
+});
diff --git a/tinyMCE/plugins/save/langs/es.js b/tinyMCE/plugins/save/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..42d76af042671d77773dec941943342d5ac49995
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/es.js
@@ -0,0 +1,7 @@
+// ES lang variables by Alvaro Velasco and Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>
+// Last Updated : October 2005
+// TinyMCE Version : 2.0RC3
+
+tinyMCE.addToLang('',{
+save_desc : 'Salvar'
+});
diff --git a/tinyMCE/plugins/save/langs/fa.js b/tinyMCE/plugins/save/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..e99e4362af010e2f45f9686fa346321afc2e7893
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/fa.js
@@ -0,0 +1,11 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+save_desc : '???'
+});
+ 
\ No newline at end of file
diff --git a/tinyMCE/plugins/save/langs/fi.js b/tinyMCE/plugins/save/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..fbffbe3ef315fd3996d2fa6bbe0aabb6ac5222a6
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/fi.js
@@ -0,0 +1,5 @@
+// FI lang variables by Tuomo Aura, Ateco.fi
+
+tinyMCE.addToLang('',{
+save_desc : 'Tallenna'
+});
diff --git a/tinyMCE/plugins/save/langs/fr.js b/tinyMCE/plugins/save/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..80eb3698f25bfa9c2680106adc27c31bfa188392
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/fr.js
@@ -0,0 +1,6 @@
+// FR lang variables
+// Modified by Motte, last updated 2006-03-23
+
+tinyMCE.addToLang('',{
+save_desc : 'Enregistrer'
+});
diff --git a/tinyMCE/plugins/save/langs/fr_ca.js b/tinyMCE/plugins/save/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d6e912a9efc2bd5a505e20a2c8c53074445b459
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/fr_ca.js
@@ -0,0 +1,6 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+save_desc : 'Enregistrer'
+});
+, 
\ No newline at end of file
diff --git a/tinyMCE/plugins/save/langs/he.js b/tinyMCE/plugins/save/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..fb08bb8f9d16ea6e8818e5bc2db256b44e05767f
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/he.js
@@ -0,0 +1,5 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+save_desc : 'ùîåø'
+});
diff --git a/tinyMCE/plugins/save/langs/hu.js b/tinyMCE/plugins/save/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..54b152a6ec389a3d995ddd708fffb5dd51183ffc
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/hu.js
@@ -0,0 +1,5 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Mentés'
+});
diff --git a/tinyMCE/plugins/save/langs/is.js b/tinyMCE/plugins/save/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..21ae8ce27b5bdcc25efb3f5f50437ffc9dcde4d0
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/is.js
@@ -0,0 +1,5 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+save_desc : 'Vista'
+});
diff --git a/tinyMCE/plugins/save/langs/it.js b/tinyMCE/plugins/save/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..6a6d46a54278c56facdc0db4159d089af0cfd0e8
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/it.js
@@ -0,0 +1,11 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+save_desc : 'Salva'
+});
diff --git a/tinyMCE/plugins/save/langs/ja.js b/tinyMCE/plugins/save/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..946eaf708c8dc8d9d81f4fac19f9fe0d247bafb1
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ja.js
@@ -0,0 +1,5 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+save_desc : '保存(フォームの送信)'
+});
diff --git a/tinyMCE/plugins/save/langs/ja_euc-jp.js b/tinyMCE/plugins/save/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2a018f409dc1576e62e0dfadee886812cf303a2
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ja_euc-jp.js
@@ -0,0 +1,5 @@
+// Japanese euc lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Êݸ'
+});
diff --git a/tinyMCE/plugins/save/langs/ja_shift_jis.js b/tinyMCE/plugins/save/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..61dcb54774a24539399c4b22107f1adf41440f5d
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ja_shift_jis.js
@@ -0,0 +1,5 @@
+// Japanese shift-jis lang variables
+
+tinyMCE.addToLang('',{
+save_desc : '•Û‘¶'
+});
diff --git a/tinyMCE/plugins/save/langs/ja_utf-8.js b/tinyMCE/plugins/save/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..d49cb40b411fbbe4f6f689ee1cf37a36bf9da22a
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ja_utf-8.js
@@ -0,0 +1,5 @@
+// Japanese utf-8 lang variables
+
+tinyMCE.addToLang('',{
+save_desc : '保存'
+});
diff --git a/tinyMCE/plugins/save/langs/ko.js b/tinyMCE/plugins/save/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..2c56b4b88226f5b72b55abe01bd740a91d59304b
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ko.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Save'
+});
diff --git a/tinyMCE/plugins/save/langs/nb.js b/tinyMCE/plugins/save/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..c599d94a3ebd9d587bdcfca898d998c4384948ae
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/nb.js
@@ -0,0 +1,5 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('save',{
+desc : 'Lagre'
+});
diff --git a/tinyMCE/plugins/save/langs/nl.js b/tinyMCE/plugins/save/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..7368988f449a07a3f21ada5fd78e06857812ac9c
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/nl.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Opslaan'
+});
diff --git a/tinyMCE/plugins/save/langs/nn.js b/tinyMCE/plugins/save/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6bc7ecf5b45b662465b4cd5ba23c2ebba5091fd
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/nn.js
@@ -0,0 +1,5 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('save',{
+desc : 'Lagre'
+});
diff --git a/tinyMCE/plugins/save/langs/pl.js b/tinyMCE/plugins/save/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..96c1a7fc440206b46c7feb0af7d5d621f40aa1bb
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/pl.js
@@ -0,0 +1,5 @@
+// PL lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Zachowaj'
+});
diff --git a/tinyMCE/plugins/save/langs/pt_br.js b/tinyMCE/plugins/save/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6895bfa937527ccd4da341e455e893e6bddea47
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/pt_br.js
@@ -0,0 +1,13 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+save_desc : 'Salvar'
+});
diff --git a/tinyMCE/plugins/save/langs/ro.js b/tinyMCE/plugins/save/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..53423aaecf26bd85ab7c9eb91a52d2cd4227c161
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ro.js
@@ -0,0 +1,5 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Salveaz&#259;'
+});
diff --git a/tinyMCE/plugins/save/langs/ru.js b/tinyMCE/plugins/save/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..726b3535a75b299a782b7b2c304d8029bcb8c1e8
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ru.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Сохранить'
+});
diff --git a/tinyMCE/plugins/save/langs/ru_CP1251.js b/tinyMCE/plugins/save/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..e4564fc796e58b2c00c364bd2c2bd1bd42110c9c
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ru_CP1251.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Ñîõðàíèòü'
+});
diff --git a/tinyMCE/plugins/save/langs/ru_KOI8-R.js b/tinyMCE/plugins/save/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..4e754b7a48da7155b90187c31aac6f0da2f8dc4a
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/ru_KOI8-R.js
@@ -0,0 +1,5 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'óÏÈÒÁÎÉÔØ'
+});
diff --git a/tinyMCE/plugins/save/langs/si.js b/tinyMCE/plugins/save/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..b29e7e30384483aa1ea3c8989be265d9b2cd59b1
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/si.js
@@ -0,0 +1,5 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+save_desc : 'Shrani'
+});
diff --git a/tinyMCE/plugins/save/langs/sk.js b/tinyMCE/plugins/save/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..7218863a40bc376565ec256a7cb2cc433b816578
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/sk.js
@@ -0,0 +1,13 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+save_desc : 'Uložiť'
+});
+
diff --git a/tinyMCE/plugins/save/langs/sq.js b/tinyMCE/plugins/save/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c91d521449fb7020a6368a9915ca3b44f0db4a6
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/sq.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Ruaj'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/save/langs/sr.js b/tinyMCE/plugins/save/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..d8c3a132c28e1b1ca3f28cdf45289721abbbc9a9
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/sr.js
@@ -0,0 +1,5 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Snimanje'
+});
diff --git a/tinyMCE/plugins/save/langs/sv.js b/tinyMCE/plugins/save/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..3ddfb1f799063588bcfd3aa5a5d73747eb7d4000
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/sv.js
@@ -0,0 +1,5 @@
+// SV lang variables
+
+tinyMCE.addToLang('save',{
+desc : 'Spara'
+});
diff --git a/tinyMCE/plugins/save/langs/sv_utf8.js b/tinyMCE/plugins/save/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..3ddfb1f799063588bcfd3aa5a5d73747eb7d4000
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/sv_utf8.js
@@ -0,0 +1,5 @@
+// SV lang variables
+
+tinyMCE.addToLang('save',{
+desc : 'Spara'
+});
diff --git a/tinyMCE/plugins/save/langs/tr.js b/tinyMCE/plugins/save/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..2765636dc95fb295b068fa184ea44f8763f8d539
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/tr.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Kaydet'
+});
diff --git a/tinyMCE/plugins/save/langs/uk.js b/tinyMCE/plugins/save/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..9999a015dae7fc0d5b8a1a68ab28396c2341165e
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/uk.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Зберегти'
+});
diff --git a/tinyMCE/plugins/save/langs/uk_CP1251.js b/tinyMCE/plugins/save/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..5b5869ecdfeda10658bc04b8e0ecc7315b3add7f
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/uk_CP1251.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Çáåðåãòè'
+});
diff --git a/tinyMCE/plugins/save/langs/uk_KOI8-U.js b/tinyMCE/plugins/save/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..b7a21baf703809e950609b9b1c61345197dd3da6
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/uk_KOI8-U.js
@@ -0,0 +1,5 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'úÂÅÒÅÇÔÉ'
+});
diff --git a/tinyMCE/plugins/save/langs/vi.js b/tinyMCE/plugins/save/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..38f00201accb29e33561cf4a224eccbffe3930d3
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/vi.js
@@ -0,0 +1,5 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+save_desc : 'Ghi lại'
+});
diff --git a/tinyMCE/plugins/save/langs/zh_cn.js b/tinyMCE/plugins/save/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..e173d59035ee330a0737bce5d2226e31e38674cf
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/zh_cn.js
@@ -0,0 +1,7 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+save_desc : '±£´æ'
+});
+ 
\ No newline at end of file
diff --git a/tinyMCE/plugins/save/langs/zh_cn_utf8.js b/tinyMCE/plugins/save/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..0ad99afa5c09c5d1c6f457ac2d3d558f0a703732
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/zh_cn_utf8.js
@@ -0,0 +1,7 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+save_desc : '保存'
+});
+ 
\ No newline at end of file
diff --git a/tinyMCE/plugins/save/langs/zh_tw.js b/tinyMCE/plugins/save/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..e7d9594a2ca46b15a418deff9f43b3d563153b88
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/zh_tw.js
@@ -0,0 +1,6 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+save_desc : '¦sÀÉ'
+});
diff --git a/tinyMCE/plugins/save/langs/zh_tw_utf8.js b/tinyMCE/plugins/save/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..7a692a7c328fe11b6434a9edc5dfd4ff02fcc93e
--- /dev/null
+++ b/tinyMCE/plugins/save/langs/zh_tw_utf8.js
@@ -0,0 +1,6 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+save_desc : '存檔'
+});
diff --git a/tinyMCE/plugins/save/readme.txt b/tinyMCE/plugins/save/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/save/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/searchreplace/css/searchreplace.css b/tinyMCE/plugins/searchreplace/css/searchreplace.css
new file mode 100644
index 0000000000000000000000000000000000000000..4c7bd13c40d7ee99fcb65b3fca12b06b3f0a0d2c
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/css/searchreplace.css
@@ -0,0 +1,20 @@
+/* stylesheet for advsearchreplace plugin*/
+
+.panel_wrapper { height: 85px; }
+.panel_wrapper div.current { height: 85px; }
+
+/* MS IE only styles */
+* html .panel_wrapper { height: 100px; }
+* html .panel_wrapper div.current { height: 100px; }
+
+#replaceBtn, #replaceAllBtn {
+	padding-bottom: 2px;
+	font-weight: bold;
+	width: 90px;
+	height: 21px;
+	border: 0;
+	cursor: pointer;
+}
+
+#replaceBtn { background: url(../images/replace_button_bg.gif); }
+#replaceAllBtn { background: url(../images/replace_all_button_bg.gif); }
diff --git a/tinyMCE/plugins/searchreplace/editor_plugin.js b/tinyMCE/plugins/searchreplace/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..959e9cc5c0b6d2fef60189a513a9c9739a2b59fc
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('searchreplace');var TinyMCE_SearchReplacePlugin={getInfo:function(){return{longname:'Search/Replace',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){inst.addShortcut('ctrl','f','lang_searchreplace_search_desc','mceSearch',true);},getControlHTML:function(cn){switch(cn){case"search":return tinyMCE.getButtonHTML(cn,'lang_searchreplace_search_desc','{$pluginurl}/images/search.gif','mceSearch',true);case"replace":return tinyMCE.getButtonHTML(cn,'lang_searchreplace_replace_desc','{$pluginurl}/images/replace.gif','mceSearchReplace',true)}return""},execCommand:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id),selectedText=inst.selection.getSelectedText(),rng;function defValue(key,default_value){value[key]=typeof(value[key])=="undefined"?default_value:value[key]}function replaceSel(search_str,str,back){if(!inst.selection.isCollapsed()){if(tinyMCE.isRealIE)inst.selection.getRng().duplicate().pasteHTML(str);else inst.execCommand('mceInsertContent',false,str)}}if(!value)value=[];defValue("editor_id",editor_id);defValue("searchstring",selectedText);defValue("replacestring",null);defValue("replacemode","none");defValue("casesensitive",false);defValue("backwards",false);defValue("wrap",false);defValue("wholeword",false);defValue("inline","yes");defValue("resizable","no");switch(command){case"mceSearch":if(user_interface){var template=new Array();template['file']='../../plugins/searchreplace/searchreplace.htm';template['width']=380;template['height']=155+(tinyMCE.isNS7?20:0)+(tinyMCE.isMSIE?15:0);template['width']+=tinyMCE.getLang('lang_searchreplace_delta_width',0);template['height']+=tinyMCE.getLang('lang_searchreplace_delta_height',0);inst.selection.collapse(true);tinyMCE.openWindow(template,value)}else{var win=tinyMCE.getInstanceById(editor_id).contentWindow;var doc=tinyMCE.getInstanceById(editor_id).contentWindow.document;var body=tinyMCE.getInstanceById(editor_id).contentWindow.document.body;var awin=value.win,found;if(body.innerHTML==""){awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));return true}if(value['replacemode']=="current"){replaceSel(value['string'],value['replacestring'],value['backwards']);value['replacemode']="none";}inst.selection.collapse(value['backwards']);if(tinyMCE.isMSIE){var rng=inst.selection.getRng();var flags=0;if(value['wholeword'])flags=flags|2;if(value['casesensitive'])flags=flags|4;if(!rng.findText){awin.alert('This operation is currently not supported by this browser.');return true}if(value['replacemode']=="all"){found=false;while(rng.findText(value['string'],value['backwards']?-1:1,flags)){found=true;rng.scrollIntoView();rng.select();replaceSel(value['string'],value['replacestring'],value['backwards'])}if(found)awin.alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));else awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));return true}if(rng.findText(value['string'],value['backwards']?-1:1,flags)){rng.scrollIntoView();rng.select()}else awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'))}else{if(value['replacemode']=="all"){found=false;while(win.find(value['string'],value['casesensitive'],value['backwards'],value['wrap'],value['wholeword'],false,false)){found=true;replaceSel(value['string'],value['replacestring'],value['backwards'])}if(found)awin.alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));else awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));return true}if(!win.find(value['string'],value['casesensitive'],value['backwards'],value['wrap'],value['wholeword'],false,false))awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'))}}return true;case"mceSearchReplace":value['replacestring']="";tinyMCE.execInstanceCommand(editor_id,'mceSearch',user_interface,value,false);return true}return false}};tinyMCE.addPlugin("searchreplace",TinyMCE_SearchReplacePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/searchreplace/editor_plugin_src.js b/tinyMCE/plugins/searchreplace/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd2f3a85c55b4a3b1b5dc27cc4423b4883c0d653
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/editor_plugin_src.js
@@ -0,0 +1,173 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+tinyMCE.importPluginLanguagePack('searchreplace');
+
+var TinyMCE_SearchReplacePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Search/Replace',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function (inst) {
+		inst.addShortcut('ctrl', 'f', 'lang_searchreplace_search_desc', 'mceSearch', true);
+		// No CTRL+R for "replace" because browsers will reload page instead of executing plugin
+	},
+
+	getControlHTML : function (cn) {
+		switch (cn) {
+			case "search" :
+				return tinyMCE.getButtonHTML(cn, 'lang_searchreplace_search_desc', '{$pluginurl}/images/search.gif','mceSearch', true);
+
+			case "replace" :
+				return tinyMCE.getButtonHTML(cn, 'lang_searchreplace_replace_desc', '{$pluginurl}/images/replace.gif', 'mceSearchReplace', true);
+		}
+
+		return "";
+	},
+
+	execCommand : function (editor_id, element, command, user_interface, value) {
+		var inst = tinyMCE.getInstanceById(editor_id), selectedText = inst.selection.getSelectedText(), rng;
+
+		function defValue(key, default_value) {
+			value[key] = typeof(value[key]) == "undefined" ? default_value : value[key];
+		}
+
+		function replaceSel(search_str, str, back) {
+			if (!inst.selection.isCollapsed()) {
+				if (tinyMCE.isRealIE)
+					inst.selection.getRng().duplicate().pasteHTML(str); // Needs to be duplicated due to selection bug in IE
+				else
+					inst.execCommand('mceInsertContent', false, str);
+			}
+		}
+
+		if (!value)
+			value = [];
+
+		defValue("editor_id", editor_id);
+		defValue("searchstring", selectedText);
+		defValue("replacestring", null);
+		defValue("replacemode", "none");
+		defValue("casesensitive", false);
+		defValue("backwards", false);
+		defValue("wrap", false);
+		defValue("wholeword", false);
+		defValue("inline", "yes");
+		defValue("resizable", "no");
+
+		switch (command) {
+			case "mceSearch" :
+				if (user_interface) {
+					var template = new Array();
+
+					template['file'] = '../../plugins/searchreplace/searchreplace.htm';
+					template['width'] = 380;
+					template['height'] = 155 + (tinyMCE.isNS7 ? 20 : 0) + (tinyMCE.isMSIE ? 15 : 0);
+					template['width'] += tinyMCE.getLang('lang_searchreplace_delta_width', 0);
+					template['height'] += tinyMCE.getLang('lang_searchreplace_delta_height', 0);
+
+					inst.selection.collapse(true);
+
+					tinyMCE.openWindow(template, value);
+				} else {
+					var win = tinyMCE.getInstanceById(editor_id).contentWindow;
+					var doc = tinyMCE.getInstanceById(editor_id).contentWindow.document;
+					var body = tinyMCE.getInstanceById(editor_id).contentWindow.document.body;
+					var awin = value.win, found;
+
+					if (body.innerHTML == "") {
+						awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+						return true;
+					}
+
+					if (value['replacemode'] == "current") {
+						replaceSel(value['string'], value['replacestring'], value['backwards']);
+						value['replacemode'] = "none";
+						//tinyMCE.execInstanceCommand(editor_id, 'mceSearch', user_interface, value);
+						//return true;
+					}
+
+					inst.selection.collapse(value['backwards']);
+
+					if (tinyMCE.isMSIE) {
+						var rng = inst.selection.getRng();
+						var flags = 0;
+						if (value['wholeword'])
+							flags = flags | 2;
+
+						if (value['casesensitive'])
+							flags = flags | 4;
+
+						if (!rng.findText) {
+							awin.alert('This operation is currently not supported by this browser.');
+							return true;
+						}
+
+						if (value['replacemode'] == "all") {
+							found = false;
+
+							while (rng.findText(value['string'], value['backwards'] ? -1 : 1, flags)) {
+								found = true;
+								rng.scrollIntoView();
+								rng.select();
+								replaceSel(value['string'], value['replacestring'], value['backwards']);
+							}
+
+							if (found)
+								awin.alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));
+							else
+								awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+
+							return true;
+						}
+
+						if (rng.findText(value['string'], value['backwards'] ? -1 : 1, flags)) {
+							rng.scrollIntoView();
+							rng.select();
+						} else
+							awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+					} else {
+						if (value['replacemode'] == "all") {
+							found = false;
+
+							while (win.find(value['string'], value['casesensitive'], value['backwards'], value['wrap'], value['wholeword'], false, false)) {
+								found = true;
+								replaceSel(value['string'], value['replacestring'], value['backwards']);
+							}
+
+							if (found)
+								awin.alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));
+							else
+								awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+
+							return true;
+						}
+
+						if (!win.find(value['string'], value['casesensitive'], value['backwards'], value['wrap'], value['wholeword'], false, false))
+							awin.alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+					}
+				}
+
+				return true;
+
+			case "mceSearchReplace" :
+				value['replacestring'] = "";
+				tinyMCE.execInstanceCommand(editor_id, 'mceSearch', user_interface, value, false);
+				return true;
+		}
+
+		return false;
+	}
+};
+
+tinyMCE.addPlugin("searchreplace", TinyMCE_SearchReplacePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/searchreplace/images/replace.gif b/tinyMCE/plugins/searchreplace/images/replace.gif
new file mode 100644
index 0000000000000000000000000000000000000000..784c73e2a9bb6cf369146a5ea6b1300262376eed
Binary files /dev/null and b/tinyMCE/plugins/searchreplace/images/replace.gif differ
diff --git a/tinyMCE/plugins/searchreplace/images/replace_all_button_bg.gif b/tinyMCE/plugins/searchreplace/images/replace_all_button_bg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..123fa5bf5fffa279025bc77e260840705d6c0ca7
Binary files /dev/null and b/tinyMCE/plugins/searchreplace/images/replace_all_button_bg.gif differ
diff --git a/tinyMCE/plugins/searchreplace/images/replace_button_bg.gif b/tinyMCE/plugins/searchreplace/images/replace_button_bg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cc2c56e61177a614580b61e367fab32c2da31320
Binary files /dev/null and b/tinyMCE/plugins/searchreplace/images/replace_button_bg.gif differ
diff --git a/tinyMCE/plugins/searchreplace/images/search.gif b/tinyMCE/plugins/searchreplace/images/search.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cfe76b5d5b06afde765a8f9559c7b2c3fb0d2bf0
Binary files /dev/null and b/tinyMCE/plugins/searchreplace/images/search.gif differ
diff --git a/tinyMCE/plugins/searchreplace/jscripts/searchreplace.js b/tinyMCE/plugins/searchreplace/jscripts/searchreplace.js
new file mode 100644
index 0000000000000000000000000000000000000000..ac6cdf6fc24f70a21880d1abe453936df320d45a
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/jscripts/searchreplace.js
@@ -0,0 +1,86 @@
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	// start with appropiate tab
+	var task = (tinyMCE.getWindowArg("replacestring") != null) ? "replace" : "search";
+	mcTabs.displayTab(task + '_tab', task +'_panel');
+	manageReplaceButtons();
+	
+	var formObj = document.forms[0];
+
+	formObj[task + "_panel_searchstring"].value = tinyMCE.getWindowArg("searchstring");
+	formObj["replace_panel_replacestring"].value = (tinyMCE.getWindowArg("replacestring") != null) ? tinyMCE.getWindowArg("replacestring") : "";
+	formObj[task + "_panel_casesensitivebox"].checked = tinyMCE.getWindowArg("casesensitive");
+	formObj[task + "_panel_backwardsu"].checked = tinyMCE.getWindowArg("backwards");
+	formObj[task + "_panel_backwardsd"].checked = !tinyMCE.getWindowArg("backwards");
+}
+
+function searchNext(replacemode) {
+	// "search" or "replace" mode of operation?
+	var task = (document.getElementById("search_tab").className == "current") ? "search" : "replace";
+
+	var formObj = document.forms[0];
+
+	if (task == "replace") {
+		// Whats the point?
+		if (formObj[task + "_panel_searchstring"].value == "" || formObj[task + "_panel_searchstring"].value == formObj[task + "_panel_replacestring"].value)
+			return false;
+	}
+
+	// Do search
+	tinyMCEPopup.execCommand('mceSearch', false, { 
+		string : formObj[task + "_panel_searchstring"].value,
+		replacestring : formObj["replace_panel_replacestring"].value,
+		replacemode : replacemode,
+		casesensitive : formObj[task + "_panel_casesensitivebox"].checked,
+		backwards : formObj[task + "_panel_backwardsu"].checked,
+		win : window
+		}, false);
+
+	window.focus();
+
+	return false;
+}
+
+function cancelAction() {
+	tinyMCEPopup.close();
+}
+
+function manageReplaceButtons() {
+	// "search" or "replace" mode of operation?
+	var task = (document.getElementById("search_tab").className == "current") ? "search" : "replace";
+	document.getElementById("replace_buttons").style.visibility = (task == "replace") ? "visible" : "hidden";
+}
+
+function copyValues(link) {
+	// check if tab is already active
+	var tab = link;
+	while (tab.tagName && tab.tagName.toLowerCase() != "li") tab = tab.parentNode;
+	if (tab.className) return false; // tab is already active -> no need to copy any values!
+
+	// copy values from one panel to the other (if they exist there)
+	var from_panel_name = tab.id.match(/^search/i) ? "replace_panel" : "search_panel";
+	var to_panel_name = (from_panel_name == "search_panel") ? "replace_panel" : "search_panel";
+
+	// find all elements with IDs to copy their values
+	var elms = document.getElementById(from_panel_name).getElementsByTagName("*");
+	for (var i = 0; i < elms.length; i++) {
+		if (elms[i].id && elms[i].id != "") {
+			var checked = "undefined";
+			if (elms[i].type.toLowerCase() == "checkbox" || elms[i].type.toLowerCase() == "radio")
+				checked = elms[i].checked;
+
+			// copy values if element exists in other panel
+			var to_elm_name = to_panel_name + elms[i].id.substring(from_panel_name.length, elms[i].id.length);
+			var to_elm = document.getElementById(to_elm_name);
+			if (to_elm) {
+				if (checked != "undefined")
+					to_elm.checked = checked;
+				else
+					to_elm.value = elms[i].value;
+			}
+		}
+	}
+
+	return false;
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/searchreplace/langs/ca.js b/tinyMCE/plugins/searchreplace/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..06c81e9723f159e9ac40756fb998289eb11e8f9b
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ca.js
@@ -0,0 +1,21 @@
+// CA lang variables by Marc Folch
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Cerca',
+searchreplace_searchnext_desc : 'Cerca altra vegada',
+searchreplace_replace_desc : 'Cerca/Reempla&ccedil;a',
+searchreplace_notfound : 'La cerca ha finalitzat i l\'expressio no s\'ha trobat.',
+searchreplace_search_title : 'Cerca',
+searchreplace_replace_title : 'Cerca/Reempla&ccedil;a',
+searchreplace_allreplaced : 'S\'han reempla&ccedil;at totes les ocurr&egrave;ncies de l\'expressi&oacute;.',
+searchreplace_findwhat : 'Cerca',
+searchreplace_replacewith : 'Reempla&ccedil;a amb',
+searchreplace_direction : 'Direcci&oacute;',
+searchreplace_up : 'Enrera',
+searchreplace_down : 'Endavant',
+searchreplace_case : 'Distingeix Maj&uacute;scules/min&uacute;scules',
+searchreplace_findnext : 'Seg&uuml;ent',
+searchreplace_replace : 'Reempla&ccedil;a',
+searchreplace_replaceall : 'Tot',
+searchreplace_cancel : 'Cancel&middot;la'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/cs.js b/tinyMCE/plugins/searchreplace/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..21047bbf7e9cf624781bfb13482fe393bcbfa19f
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/cs.js
@@ -0,0 +1,27 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.5 2006/01/11 14:25:49 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Najdi',
+searchreplace_searchnext_desc : 'Najdi znova',
+searchreplace_replace_desc : 'Najdi/Nahradit',
+searchreplace_notfound : 'Vyhledávaní ukončeno. Řetězec nemusel být nalezen.',
+searchreplace_search_title : 'Najdi',
+searchreplace_replace_title : 'Najdi/Nahradit',
+searchreplace_allreplaced : 'Všechny výskyty řetězce byly změněny.',
+searchreplace_findwhat : 'Najít',
+searchreplace_replacewith : 'Nahradit',
+searchreplace_direction : 'Směr',
+searchreplace_up : 'Nahoru',
+searchreplace_down : 'Dolů',
+searchreplace_case : 'Přesná shoda',
+searchreplace_findnext : 'Najdi&nbsp;další',
+searchreplace_replace : 'Nahradit',
+searchreplace_replaceall : 'Nahradit&nbsp;vše',
+searchreplace_cancel : 'Zrušit'
+});
+
diff --git a/tinyMCE/plugins/searchreplace/langs/cy.js b/tinyMCE/plugins/searchreplace/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..05ba531dfd6be52cb98f9d620d5ca808d49535f8
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/cy.js
@@ -0,0 +1,22 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Canfod',
+searchreplace_searchnext_desc : 'Canfod eto',
+searchreplace_replace_desc : 'Canfod/Cyfnewid',
+searchreplace_notfound : 'Cwblhauwyd y chwilio. Methwyd dod o hyd i\'r testun canfod.',
+searchreplace_search_title : 'Canfod',
+searchreplace_replace_title : 'Canfod/Cyfnewid',
+searchreplace_allreplaced : 'Cyfnewidiwyd holl achosion y testun chwilio.',
+searchreplace_findwhat : 'Canfod beth',
+searchreplace_replacewith : 'Cyfnewid gyda',
+searchreplace_direction : 'Cyfeiriad',
+searchreplace_up : 'Fyny',
+searchreplace_down : 'Lawr',
+searchreplace_case : 'Maint llythrennau\'n bwysig',
+searchreplace_findnext : 'Canfod&nbsp;nesaf',
+searchreplace_replace : 'Cyfnewid',
+searchreplace_replaceall : 'Cyfnewid&nbsp;popeth',
+searchreplace_cancel : 'Diddymu',
+searchreplace_replace_delta_width : 75
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/da.js b/tinyMCE/plugins/searchreplace/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..e3260ca1a7c1e8031db0a51b302886eabae80cdf
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/da.js
@@ -0,0 +1,21 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.:
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'S&oslash;g',
+searchreplace_searchnext_desc : 'S&oslash;g igen',
+searchreplace_replace_desc : 'S&oslash;g og erstat',
+searchreplace_notfound : 'Søgningen er f&aelig;rdig.\nS&oslash;geudtrykket kunne ikke findes.',
+searchreplace_search_title : 'S&oslash;g',
+searchreplace_replace_title : 'S&oslash;g og erstat',
+searchreplace_allreplaced : 'Alle forekomster af s&oslash;geudtrykket blev erstattet.',
+searchreplace_findwhat : 'S&oslash;g efter',
+searchreplace_replacewith : 'Erstat det med',
+searchreplace_direction : 'Retning',
+searchreplace_up : 'Op',
+searchreplace_down : 'Ned',
+searchreplace_case : 'Skelne mellem store og sm&aring; bogstaver',
+searchreplace_findnext : 'S&oslash;g efter&nbsp;n&aelig;ste',
+searchreplace_replace : 'Erstat',
+searchreplace_replaceall : 'Erstat&nbsp;alle',
+searchreplace_cancel : 'Fortryd'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/de.js b/tinyMCE/plugins/searchreplace/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..379b177691f483f833feb8cbf660ae0280d17c7f
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/de.js
@@ -0,0 +1,22 @@
+// DE lang variables 
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Suchen',
+searchreplace_searchnext_desc : 'Erneut suchen',
+searchreplace_replace_desc : 'Suchen/Ersetzen',
+searchreplace_notfound : 'Die Suche wurde abgeschlossen. Das Suchwort wurde nicht gefunden.',
+searchreplace_search_title : 'Suchen',
+searchreplace_replace_title : 'Suchen/Ersetzen',
+searchreplace_allreplaced : 'Die Suche wurde abgeschlossen. Alle Vorkommen wurden ersetzt.',
+searchreplace_findwhat : 'Suchen nach',
+searchreplace_replacewith : 'Ersetzen durch',
+searchreplace_direction : 'Suchrichtung',
+searchreplace_up : 'R&uuml;ckw&auml;rts',
+searchreplace_down : 'Vorw&auml;rts',
+searchreplace_case : 'Gro&szlig;-/Kleinschreibung beachten',
+searchreplace_findnext : 'Weitersuchen',
+searchreplace_replace : 'Ersetzen',
+searchreplace_replaceall : 'Alle ersetzen',
+searchreplace_cancel : 'Abbrechen',
+searchreplace_replace_delta_width : 50
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/el.js b/tinyMCE/plugins/searchreplace/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..24af32d0416e3618499c4fcdc938b54933dc4c70
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/el.js
@@ -0,0 +1,21 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'ÁíáæÞôçóç',
+searchreplace_searchnext_desc : 'ÁíáæÞôçóç îáíÜ',
+searchreplace_replace_desc : 'ÁíáæÞôçóç/ÁíôéêáôÜóôáóç',
+searchreplace_notfound : 'Ç áíáæÞôçóç ïëïêëçñþèçêå. Ôï êåßìåíï äå âñÝèçêå.',
+searchreplace_search_title : 'ÁíáæÞôçóç',
+searchreplace_replace_title : 'ÁíáæÞôçóç/ÁíôéêáôÜóôáóç',
+searchreplace_allreplaced : 'Ôï áëöáñéèìçôéêü áíôéêáôÜóôáèçêå ðáíôïý.',
+searchreplace_findwhat : 'ÁíáæÞôçóç ãéá',
+searchreplace_replacewith : 'ÁíôéêáôÜóôáóç ìå',
+searchreplace_direction : 'Êáôåýèõíóç',
+searchreplace_up : 'ÐÜíù',
+searchreplace_down : 'ÊÜôù',
+searchreplace_case : 'Ôáßñéáóìá Êåöáëáßá / ÌéêñÜ',
+searchreplace_findnext : 'ÁíáæÞôçóç&nbsp;åðüìåíï',
+searchreplace_replace : 'ÁíôéêáôÜóôáóç',
+searchreplace_replaceall : 'ÁíôéêáôÜóôáóç&nbsp;üëùí',
+searchreplace_cancel : 'Áêýñùóç'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/en.js b/tinyMCE/plugins/searchreplace/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..32af8282e4caf82df3d1f4483bde2bc945cf2db0
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/en.js
@@ -0,0 +1,21 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Find',
+searchreplace_searchnext_desc : 'Find again',
+searchreplace_replace_desc : 'Find/Replace',
+searchreplace_notfound : 'The search has been completed. The search string could not be found.',
+searchreplace_search_title : 'Find',
+searchreplace_replace_title : 'Find/Replace',
+searchreplace_allreplaced : 'All occurrences of the search string were replaced.',
+searchreplace_findwhat : 'Find what',
+searchreplace_replacewith : 'Replace with',
+searchreplace_direction : 'Direction',
+searchreplace_up : 'Up',
+searchreplace_down : 'Down',
+searchreplace_case : 'Match case',
+searchreplace_findnext : 'Find&nbsp;next',
+searchreplace_replace : 'Replace',
+searchreplace_replaceall : 'Replace&nbsp;all',
+searchreplace_cancel : 'Cancel'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/es.js b/tinyMCE/plugins/searchreplace/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..47e82a3c31ea010107765960c1a9805fd368eb4d
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/es.js
@@ -0,0 +1,31 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Buscar',
+searchreplace_searchnext_desc : 'Buscar de nuevo',
+searchreplace_replace_desc : 'Buscar/Replazar',
+searchreplace_notfound : 'La b&uacute;squeda ha terminado. No se ha encontrado el elemento buscado.',
+searchreplace_search_title : 'Buscar',
+searchreplace_replace_title : 'Buscar/Replazar',
+searchreplace_allreplaced : 'Todas las ocurrencias del elemento buscado han sido remplazadas.',
+searchreplace_findwhat : 'Buscar',
+searchreplace_replacewith : 'Replazar con',
+searchreplace_direction : 'Direcci&oacute;n',
+searchreplace_up : 'Arriba',
+searchreplace_down : 'Abajo',
+searchreplace_case : 'B&uacute;squeda exacta (may&uacute;sculas y min&uacute;sculas)',
+searchreplace_findnext : 'Buscar siguiente',
+searchreplace_replace : 'Replazar',
+searchreplace_replaceall : 'Replazar todo',
+searchreplace_cancel : 'Cancelar',
+searchreplace_replace_delta_width : 70
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/fa.js b/tinyMCE/plugins/searchreplace/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..4aa5cc852a34f0f4c0ecc82ca882d9997f46f283
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/fa.js
@@ -0,0 +1,26 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+searchreplace_search_desc : '?????',
+searchreplace_searchnext_desc : '?????? ????',
+searchreplace_replace_desc : '?????/????????',
+searchreplace_notfound : '????? ????? ????. ??? ????? ???? ???.',
+searchreplace_search_title : '?????',
+searchreplace_replace_title : '?????/????????',
+searchreplace_allreplaced : '??? ????? ??????? ?????.',
+searchreplace_findwhat : '????? ?? ?????',
+searchreplace_replacewith : '???????? ??',
+searchreplace_direction : '??? ?????',
+searchreplace_up : '?? ??? ????',
+searchreplace_down : '?? ??? ?????',
+searchreplace_case : '????? ???? ???? ? ????',
+searchreplace_findnext : '????-????',
+searchreplace_replace : '???????-??',
+searchreplace_replaceall : '????????-???',
+searchreplace_cancel : '??????'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/fi.js b/tinyMCE/plugins/searchreplace/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..2462e3e3bf4ae210d7ddc4ae9c80d2307029654c
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/fi.js
@@ -0,0 +1,21 @@
+// FI lang variables by Tuomo Aura, Ateco.fi
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Etsi',
+searchreplace_searchnext_desc : 'Etsi uudelleen',
+searchreplace_replace_desc : 'Etsi/Korvaa',
+searchreplace_notfound : 'Haku on p&auml;&auml;ttynyt. Haettua merkkijonoa ei l&ouml;ytynyt.',
+searchreplace_search_title : 'Etsi',
+searchreplace_replace_title : 'Etsi/Korvaa',
+searchreplace_allreplaced : 'Kaikki esiintyneet hakutermit korvattiin.',
+searchreplace_findwhat : 'Etsitt&auml;v&auml;',
+searchreplace_replacewith : 'Korvaava',
+searchreplace_direction : 'Suunta',
+searchreplace_up : 'Yl&ouml;s',
+searchreplace_down : 'Alas',
+searchreplace_case : 'Sama kirjainkoko',
+searchreplace_findnext : 'Etsi&nbsp;seuraava',
+searchreplace_replace : 'Korvaa',
+searchreplace_replaceall : 'Korvaa&nbsp;kaikki',
+searchreplace_cancel : 'Peruuta'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/fr.js b/tinyMCE/plugins/searchreplace/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..2069741883b79d8f6fe7a49f3dfa7c4ecf0c75e2
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/fr.js
@@ -0,0 +1,22 @@
+// FR lang variables
+// Modified by keyko-web.net, last updated 2007-03-08, based on the work of Motte
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Rechercher',
+searchreplace_searchnext_desc : 'Rechercher suivant',
+searchreplace_replace_desc : 'Rechercher/Remplacer',
+searchreplace_notfound : 'Recherche compl&eacute;t&eacute;e. La fin du document a &eacute;t&eacute; atteinte.',
+searchreplace_search_title : 'Rechercher',
+searchreplace_replace_title : 'Rechercher/Remplacer',
+searchreplace_allreplaced : 'Action termin&eacute;e avec succ&egrave;s. Les remplacements\nont &eacute;t&eacute; faits dans l\'ensemble du document.',
+searchreplace_findwhat : 'Trouver le mot',
+searchreplace_replacewith : 'Remplacer par',
+searchreplace_direction : 'Direction',
+searchreplace_up : 'Vers le haut',
+searchreplace_down : 'Vers le bas',
+searchreplace_case : 'Respecter la casse',
+searchreplace_findnext : 'Suivant',
+searchreplace_replace : 'Remplacer',
+searchreplace_replaceall : 'Remplacer tout',
+searchreplace_cancel : 'Annuler'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/fr_ca.js b/tinyMCE/plugins/searchreplace/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..09485ca09c3b1cf59262cc05b8759664ed96918a
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/fr_ca.js
@@ -0,0 +1,21 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Chercher',
+searchreplace_searchnext_desc : 'Chercher suivant',
+searchreplace_replace_desc : 'Chercher/Remplacer',
+searchreplace_notfound : 'La recherche est terminée.  Aucune occurence trouvée.',
+searchreplace_search_title : 'Chercher',
+searchreplace_replace_title : 'Chercher/Remplacer',
+searchreplace_allreplaced : 'Toutes les occurences ont été remplacées.',
+searchreplace_findwhat : 'Chercher quoi',
+searchreplace_replacewith : 'Remplacer par',
+searchreplace_direction : 'Direction',
+searchreplace_up : 'Monter',
+searchreplace_down : 'Descendre',
+searchreplace_case : 'Sensible à la case',
+searchreplace_findnext : 'Chercher&nbsp,suivant',
+searchreplace_replace : 'Remplacer',
+searchreplace_replaceall : 'Remplacer&nbsp,tous',
+searchreplace_cancel : 'Annuler'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/he.js b/tinyMCE/plugins/searchreplace/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..fdac48d0e9fe5c03af9b39bad3c674c3c0bbb5dc
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/he.js
@@ -0,0 +1,21 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'çôù',
+searchreplace_searchnext_desc : 'çôù ùåá',
+searchreplace_replace_desc : 'çôù/äçìó',
+searchreplace_notfound : 'äçéôåù äåùìí. îçøåæú äçéôåù ìà ðîöàä.',
+searchreplace_search_title : 'çôù',
+searchreplace_replace_title : 'çôù/äçìó',
+searchreplace_allreplaced : 'îçøåæú äçéôåù äåçìôä áëì î÷åí áå äéà ðîöàä.',
+searchreplace_findwhat : 'îä ìçôù',
+searchreplace_replacewith : 'ìäçìéó á-',
+searchreplace_direction : 'ëéååï',
+searchreplace_up : 'ìîòìä',
+searchreplace_down : 'ìîèä',
+searchreplace_case : 'äúàí âåãì àåúéåú',
+searchreplace_findnext : 'îöà&nbsp;àú&nbsp;äáà',
+searchreplace_replace : 'äçìó',
+searchreplace_replaceall : 'äçìó&nbsp;äëì',
+searchreplace_cancel : 'áèì'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/hu.js b/tinyMCE/plugins/searchreplace/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..0b4690d7a57812bb4531561d49f3bcf6417b02b1
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/hu.js
@@ -0,0 +1,21 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Keresés',
+searchreplace_searchnext_desc : 'Újra keresés',
+searchreplace_replace_desc : 'Keres/Cserél',
+searchreplace_notfound : 'A keresés elkészült. A keresési szöveg nem található.',
+searchreplace_search_title : 'Keres',
+searchreplace_replace_title : 'Keres/Cserél',
+searchreplace_allreplaced : 'A kereséséi szöveg minden elõfordulása cserélve lett.',
+searchreplace_findwhat : 'Mit keres',
+searchreplace_replacewith : 'Mire cserél',
+searchreplace_direction : 'Hatókör',
+searchreplace_up : 'Fel',
+searchreplace_down : 'Le',
+searchreplace_case : 'Teljes szó',
+searchreplace_findnext : 'Következõt&nbsp;keres',
+searchreplace_replace : 'Cserél',
+searchreplace_replaceall : 'Mindent&nbsp;cserél',
+searchreplace_cancel : 'Mégse'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/is.js b/tinyMCE/plugins/searchreplace/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7ab672417f5382763b8891e0333461b57e6e48d
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/is.js
@@ -0,0 +1,22 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Finna',
+searchreplace_searchnext_desc : 'Finna aftur',
+searchreplace_replace_desc : 'Finna/skipta',
+searchreplace_notfound : 'Leit er lokið. Leitarorð fannst ekki.',
+searchreplace_search_title : 'Finna',
+searchreplace_replace_title : 'Finna/skipta',
+searchreplace_allreplaced : 'Skipt var um öll tilvik.',
+searchreplace_findwhat : 'Finna hvar',
+searchreplace_replacewith : 'Skipta &uacute;t fyrir ',
+searchreplace_direction : '&Aacute;tt',
+searchreplace_up : 'Upp',
+searchreplace_down : 'Ni&eth;ur',
+searchreplace_case : 'Passa h&aacute;-/l&aacute;gstafi',
+searchreplace_findnext : 'Finna&nbsp;n&aelig;st',
+searchreplace_replace : 'Skipta',
+searchreplace_replaceall : 'Skipta&nbsp;&ouml;llum',
+searchreplace_cancel : 'H&aelig;tta vi&eth;',
+searchreplace_replace_delta_width : 30
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/it.js b/tinyMCE/plugins/searchreplace/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..85be76ef441ab73af7e9479aa7f4c63a579f5026
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/it.js
@@ -0,0 +1,27 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Cerca',
+searchreplace_searchnext_desc : 'Trova successivo',
+searchreplace_replace_desc : 'Cerca e sostituisci',
+searchreplace_notfound : 'La ricerca &egrave; stata completata. Il testo cercato non &egrave; stato trovato',
+searchreplace_search_title : 'Cerca',
+searchreplace_replace_title : 'Cerca e sostituisci',
+searchreplace_allreplaced : 'Tutte le occorrenze trovate sono state sostituite',
+searchreplace_findwhat : 'Cosa cercare',
+searchreplace_replacewith : 'Sostituire con',
+searchreplace_direction : 'Direzione',
+searchreplace_up : 'Su',
+searchreplace_down : 'Gi&ugrave;',
+searchreplace_case : 'Maiuscole/minuscole',
+searchreplace_findnext : 'Cerca&nbsp;successivo',
+searchreplace_replace : 'Sostituisci',
+searchreplace_replaceall : 'Sostituisci&nbsp;tutto',
+searchreplace_cancel : 'Annulla'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/ja.js b/tinyMCE/plugins/searchreplace/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..ecdeb981f1104c7013ba5dffcb2c969d4dc34f8a
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ja.js
@@ -0,0 +1,21 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : '検索',
+searchreplace_searchnext_desc : '再建策',
+searchreplace_replace_desc : '検索/置換',
+searchreplace_notfound : '検索が終了しました。検索文字列は見つかりませんでした。',
+searchreplace_search_title : '検索',
+searchreplace_replace_title : '検索/置換',
+searchreplace_allreplaced : 'すべての検索文字列を置換しました。',
+searchreplace_findwhat : '検索文字列',
+searchreplace_replacewith : '置換文字列',
+searchreplace_direction : '検索の方向',
+searchreplace_up : '上へ',
+searchreplace_down : '下へ',
+searchreplace_case : '大文字/小文字を区別する',
+searchreplace_findnext : '次を検索',
+searchreplace_replace : '置換',
+searchreplace_replaceall : '全て置換',
+searchreplace_cancel : 'キャンセル'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/ja_euc-jp.js b/tinyMCE/plugins/searchreplace/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..e7175a4ba07c5135e351156f353cbd3067ee6061
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ja_euc-jp.js
@@ -0,0 +1,21 @@
+// ÆüËܸì euc lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : '¸¡º÷',
+searchreplace_searchnext_desc : '¼¡¤ò¸¡º÷',
+searchreplace_replace_desc : 'ÃÖ´¹',
+searchreplace_notfound : '¸¡º÷¤ò½ªÎ»¤Çʸ»úÎó¤ò¸«¤Ä¤«¤ì¤Ê¤«¤Ã¤¿¡£',
+searchreplace_search_title : '¸¡º÷',
+searchreplace_replace_title : 'ÃÖ´¹',
+searchreplace_allreplaced : '¤¹¤Ù¤Æ¤òÃÖ´¹¤¨¤¿',
+searchreplace_findwhat : '¸¡º÷¤¹¤ëʸ»úÎó',
+searchreplace_replacewith : 'ÃÖ´¹¸å¤Îʸ»úÎó',
+searchreplace_direction : '¸þ¤­',
+searchreplace_up : '¾å',
+searchreplace_down : '²¼',
+searchreplace_case : 'Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊÌ',
+searchreplace_findnext : '¼¡¤ò¸¡º÷',
+searchreplace_replace : 'ÃÖ´¹',
+searchreplace_replaceall : '¤¹¤Ù¤ÆÃÖ´¹',
+searchreplace_cancel : '¥­¥ã¥ó¥»¥ë'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/ja_shift_jis.js b/tinyMCE/plugins/searchreplace/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ea7d8ba87d2c431d563ca123d7d9d1dced0acc9
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ja_shift_jis.js
@@ -0,0 +1,21 @@
+// “ú–{Œê shift-jis lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'ŒŸõ',
+searchreplace_searchnext_desc : 'ŽŸ‚ðŒŸõ',
+searchreplace_replace_desc : '’uŠ·',
+searchreplace_notfound : 'ŒŸõ‚ðI—¹‚Å•¶Žš—ñ‚ðŒ©‚Â‚©‚ê‚È‚©‚Á‚½B',
+searchreplace_search_title : 'ŒŸõ',
+searchreplace_replace_title : '’uŠ·',
+searchreplace_allreplaced : '‚·‚ׂĂð’uŠ·‚¦‚½',
+searchreplace_findwhat : 'ŒŸõ‚·‚é•¶Žš—ñ',
+searchreplace_replacewith : '’uŠ·Œã‚Ì•¶Žš—ñ',
+searchreplace_direction : 'Œü‚«',
+searchreplace_up : 'ã',
+searchreplace_down : '‰º',
+searchreplace_case : '‘å•¶Žš‚Ə¬•¶Žš‚ð‹æ•Ê',
+searchreplace_findnext : 'ŽŸ‚ðŒŸõ',
+searchreplace_replace : '’uŠ·',
+searchreplace_replaceall : '‚·‚ׂĒuŠ·',
+searchreplace_cancel : 'ƒLƒƒƒ“ƒZƒ‹'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/ja_utf-8.js b/tinyMCE/plugins/searchreplace/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..3636a8b0232e8ef16f9d473904fbe2e6d0d1fd74
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ja_utf-8.js
@@ -0,0 +1,21 @@
+// 日本語 utf-8 lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : '検索',
+searchreplace_searchnext_desc : '次を検索',
+searchreplace_replace_desc : '置換',
+searchreplace_notfound : '検索を終了で文字列を見つかれなかった。',
+searchreplace_search_title : '検索',
+searchreplace_replace_title : '置換',
+searchreplace_allreplaced : 'すべてを置換えた',
+searchreplace_findwhat : '検索する文字列',
+searchreplace_replacewith : '置換後の文字列',
+searchreplace_direction : '向き',
+searchreplace_up : '上',
+searchreplace_down : '下',
+searchreplace_case : '大文字と小文字を区別',
+searchreplace_findnext : '次を検索',
+searchreplace_replace : '置換',
+searchreplace_replaceall : 'すべて置換',
+searchreplace_cancel : 'キャンセル'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/ko.js b/tinyMCE/plugins/searchreplace/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..32af8282e4caf82df3d1f4483bde2bc945cf2db0
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ko.js
@@ -0,0 +1,21 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Find',
+searchreplace_searchnext_desc : 'Find again',
+searchreplace_replace_desc : 'Find/Replace',
+searchreplace_notfound : 'The search has been completed. The search string could not be found.',
+searchreplace_search_title : 'Find',
+searchreplace_replace_title : 'Find/Replace',
+searchreplace_allreplaced : 'All occurrences of the search string were replaced.',
+searchreplace_findwhat : 'Find what',
+searchreplace_replacewith : 'Replace with',
+searchreplace_direction : 'Direction',
+searchreplace_up : 'Up',
+searchreplace_down : 'Down',
+searchreplace_case : 'Match case',
+searchreplace_findnext : 'Find&nbsp;next',
+searchreplace_replace : 'Replace',
+searchreplace_replaceall : 'Replace&nbsp;all',
+searchreplace_cancel : 'Cancel'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/nb.js b/tinyMCE/plugins/searchreplace/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..91109471d51e6a50bfcb27e52d40b7e536bd23f4
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/nb.js
@@ -0,0 +1,21 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'S&oslash;k',
+searchreplace_searchnext_desc : 'S&oslash;k igjen',
+searchreplace_replace_desc : 'S&oslash;k/Erstatt',
+searchreplace_notfound : 'S&oslash;kingen avsluttet. Fant ikke s&oslash;kestrengen.',
+searchreplace_search_title : 'S&oslash;k',
+searchreplace_replace_title : 'S&oslash;k/Erstatt',
+searchreplace_allreplaced : 'Alle treff p&aring; s&oslash;kestrengen erstattes',
+searchreplace_findwhat : 'S&oslash;k p&aring;',
+searchreplace_replacewith : 'Erstatt med',
+searchreplace_direction : 'S&oslash;keretning',
+searchreplace_up : 'Oppover',
+searchreplace_down : 'Nedover',
+searchreplace_case : 'Skill mellom store og sm&aring; tegn',
+searchreplace_findnext : 'Neste s&oslash;k',
+searchreplace_replace : 'Erstatt',
+searchreplace_replaceall : 'Erstatt alle',
+searchreplace_cancel : 'Avbryt'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/nl.js b/tinyMCE/plugins/searchreplace/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..b3fe537609c236a5d2d0752ebf98bd5092b20b7e
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/nl.js
@@ -0,0 +1,21 @@
+// NL lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Zoeken',
+searchreplace_searchnext_desc : 'Opnieuw zoeken',
+searchreplace_replace_desc : 'Zoeken/Vervangen',
+searchreplace_notfound : 'Het doorzoeken van document is voltooid. De gezochte tekst is niet gevonden.',
+searchreplace_search_title : 'Zoeken',
+searchreplace_replace_title : 'Zoeken/Vervangen',
+searchreplace_allreplaced : 'Alle zoekargumenten werden vervangen.',
+searchreplace_findwhat : 'Zoeken naar',
+searchreplace_replacewith : 'Vervangen door',
+searchreplace_direction : 'Richting',
+searchreplace_up : 'Omhoog',
+searchreplace_down : 'Omlaag',
+searchreplace_case : 'Identieke hoofdletters/kleine letters',
+searchreplace_findnext : 'Volgende zoeken',
+searchreplace_replace : 'Vervangen',
+searchreplace_replaceall : 'Alles&nbsp;vervangen',
+searchreplace_cancel : 'Annuleren'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/nn.js b/tinyMCE/plugins/searchreplace/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..626e940ac860ecfbc79a9fd805ba8e86c6f121cb
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/nn.js
@@ -0,0 +1,21 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'S&oslash;k',
+searchreplace_searchnext_desc : 'S&oslash;k igjen',
+searchreplace_replace_desc : 'S&oslash;k/Erstatt',
+searchreplace_notfound : 'S&oslash;kingen avsluttet. Fant ikkje s&oslash;kestrengen.',
+searchreplace_search_title : 'S&oslash;k',
+searchreplace_replace_title : 'S&oslash;k/Erstatt',
+searchreplace_allreplaced : 'Alle treff p&aring; s&oslash;kestrengen erstattes',
+searchreplace_findwhat : 'S&oslash;k p&aring;',
+searchreplace_replacewith : 'Erstatt med',
+searchreplace_direction : 'S&oslash;keretning',
+searchreplace_up : 'Oppover',
+searchreplace_down : 'Nedover',
+searchreplace_case : 'Skill mellom store og sm&aring; tegn',
+searchreplace_findnext : 'Neste s&oslash;k',
+searchreplace_replace : 'Erstatt',
+searchreplace_replaceall : 'Erstatt alle',
+searchreplace_cancel : 'Avbryt'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/pl.js b/tinyMCE/plugins/searchreplace/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..b4f1153f5988757d1080018adb547fb885c96fa0
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/pl.js
@@ -0,0 +1,23 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'ZnajdĽ',
+searchreplace_searchnext_desc : 'ZnajdĽ ponownie',
+searchreplace_replace_desc : 'ZnajdĽ/Zastąp',
+searchreplace_notfound : 'Ukończono wyszukiwanie. Poszukiwana fraza nie została odnaleziona.',
+searchreplace_search_title : 'ZnajdĽ',
+searchreplace_replace_title : 'ZnajdĽ/Zastąp',
+searchreplace_allreplaced : 'Wszystkie wystąpienia poszukiwanej frazy zostały zastąpione. ',
+searchreplace_findwhat : 'ZnajdĽ',
+searchreplace_replacewith : 'ZastÄ…p',
+searchreplace_direction : 'Kierunek',
+searchreplace_up : 'Do góry',
+searchreplace_down : 'Do dołu',
+searchreplace_case : 'Wielkość liter',
+searchreplace_findnext : 'ZnajdĽ&nbsp;następny',
+searchreplace_replace : 'ZastÄ…p',
+searchreplace_replaceall : 'ZastÄ…p&nbsp;wszystkie',
+searchreplace_cancel : 'WyjdĽ'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/searchreplace/langs/pt_br.js b/tinyMCE/plugins/searchreplace/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..cae8fc2b53584f43dd1db89163e695d00b61fd8e
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/pt_br.js
@@ -0,0 +1,29 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Procurar',
+searchreplace_searchnext_desc : 'Procurar novamente',
+searchreplace_replace_desc : 'Procurar/substituir',
+searchreplace_notfound : 'A procura foi concluída. A expressão procurada não foi encontrada.',
+searchreplace_search_title : 'Procurar',
+searchreplace_replace_title : 'Procurar/substituir',
+searchreplace_allreplaced : 'Todas as ocorrências encontradas foram substituídas.',
+searchreplace_findwhat : 'Procurar por',
+searchreplace_replacewith : 'Substituir com',
+searchreplace_direction : 'Direção',
+searchreplace_up : 'Acima',
+searchreplace_down : 'Abaixo',
+searchreplace_case : 'Procurar exatamente',
+searchreplace_findnext : 'Procurar/próx',
+searchreplace_replace : 'Substituir',
+searchreplace_replaceall : 'Subst&nbsp;tudo',
+searchreplace_cancel : 'Cancelar'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/ro.js b/tinyMCE/plugins/searchreplace/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..bb03672045f5d15d3a0acc719f0b026e04ced69d
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ro.js
@@ -0,0 +1,21 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'G&#259;se&#351;te',
+searchreplace_searchnext_desc : 'G&#259;se&#351;te din nou',
+searchreplace_replace_desc : 'G&#259;se&#351;te/&#206;nlocuie&#351;te',
+searchreplace_notfound : 'C&#259;utarea s-a &#238;ncheiat. Termenul c&#259;utat nu a putut fi g&#259;sit.',
+searchreplace_search_title : 'G&#259;se&#351;te',
+searchreplace_replace_title : 'G&#259;se&#351;te/&#206;nlocuie&#351;te',
+searchreplace_allreplaced : 'Toate prezen&#355;ele &#351;irului c&#259;tat au fost &#238;nlocuite.',
+searchreplace_findwhat : 'G&#259;se&#351;te ce',
+searchreplace_replacewith : '&#206;nlocuie&#351;te cu',
+searchreplace_direction : 'Direc&#355;ia',
+searchreplace_up : 'Sus',
+searchreplace_down : 'Jos',
+searchreplace_case : 'Respect&#259; minuscule/majuscule',
+searchreplace_findnext : 'G&#259;se&#351;te&nbsp;&#238;n&nbsp;continuare',
+searchreplace_replace : '&#206;nlocuie&#351;te',
+searchreplace_replaceall : '&#206;nlocuie&#351;te&nbsp;tot',
+searchreplace_cancel : 'Anuleaz&#259;'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/ru.js b/tinyMCE/plugins/searchreplace/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..6405808dc5e800ff1f0d02234da5bcb4b210cde5
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ru.js
@@ -0,0 +1,21 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Найти',
+searchreplace_searchnext_desc : 'Найти опять',
+searchreplace_replace_desc : 'Найти / Заменить',
+searchreplace_notfound : 'Поиск завершён. Искомое выражение не найдено.',
+searchreplace_search_title : 'Найти',
+searchreplace_replace_title : 'Найти / Заменить',
+searchreplace_allreplaced : 'Замена была выполнена во всех случаях совпадения искомого выражения.',
+searchreplace_findwhat : 'Найти что',
+searchreplace_replacewith : 'Заменить чем',
+searchreplace_direction : 'Направление',
+searchreplace_up : 'Вверх',
+searchreplace_down : 'Вниз',
+searchreplace_case : 'С учётом регистра',
+searchreplace_findnext : 'Найти&nbsp;следующее',
+searchreplace_replace : 'Заменить',
+searchreplace_replaceall : 'Заменить&nbsp;везде',
+searchreplace_cancel : 'Отменить'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/ru_CP1251.js b/tinyMCE/plugins/searchreplace/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c285d9ac6bff67990615d6852aacb6c5f126d1b
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ru_CP1251.js
@@ -0,0 +1,21 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Íàéòè',
+searchreplace_searchnext_desc : 'Íàéòè îïÿòü',
+searchreplace_replace_desc : 'Íàéòè / Çàìåíèòü',
+searchreplace_notfound : 'Ïîèñê çàâåðø¸í. Èñêîìîå âûðàæåíèå íå íàéäåíî.',
+searchreplace_search_title : 'Íàéòè',
+searchreplace_replace_title : 'Íàéòè / Çàìåíèòü',
+searchreplace_allreplaced : 'Çàìåíà áûëà âûïîëíåíà âî âñåõ ñëó÷àÿõ ñîâïàäåíèÿ èñêîìîãî âûðàæåíèÿ.',
+searchreplace_findwhat : 'Íàéòè ÷òî',
+searchreplace_replacewith : 'Çàìåíèòü ÷åì',
+searchreplace_direction : 'Íàïðàâëåíèå',
+searchreplace_up : 'Ââåðõ',
+searchreplace_down : 'Âíèç',
+searchreplace_case : 'Ñ ó÷¸òîì ðåãèñòðà',
+searchreplace_findnext : 'Íàéòè&nbsp;ñëåäóþùåå',
+searchreplace_replace : 'Çàìåíèòü',
+searchreplace_replaceall : 'Çàìåíèòü&nbsp;âåçäå',
+searchreplace_cancel : 'Îòìåíèòü'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/ru_KOI8-R.js b/tinyMCE/plugins/searchreplace/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..caa42fe78b084aa27c9598e2aebb78a5e925f764
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/ru_KOI8-R.js
@@ -0,0 +1,21 @@
+// RU lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'îÁÊÔÉ',
+searchreplace_searchnext_desc : 'îÁÊÔÉ ÏÐÑÔØ',
+searchreplace_replace_desc : 'îÁÊÔÉ / úÁÍÅÎÉÔØ',
+searchreplace_notfound : 'ðÏÉÓË ÚÁ×ÅÒÛ£Î. éÓËÏÍÏÅ ×ÙÒÁÖÅÎÉÅ ÎÅ ÎÁÊÄÅÎÏ.',
+searchreplace_search_title : 'îÁÊÔÉ',
+searchreplace_replace_title : 'îÁÊÔÉ / úÁÍÅÎÉÔØ',
+searchreplace_allreplaced : 'úÁÍÅÎÁ ÂÙÌÁ ×ÙÐÏÌÎÅÎÁ ×Ï ×ÓÅÈ ÓÌÕÞÁÑÈ ÓÏ×ÐÁÄÅÎÉÑ ÉÓËÏÍÏÇÏ ×ÙÒÁÖÅÎÉÑ.',
+searchreplace_findwhat : 'îÁÊÔÉ ÞÔÏ',
+searchreplace_replacewith : 'úÁÍÅÎÉÔØ ÞÅÍ',
+searchreplace_direction : 'îÁÐÒÁ×ÌÅÎÉÅ',
+searchreplace_up : '÷×ÅÒÈ',
+searchreplace_down : '÷ÎÉÚ',
+searchreplace_case : 'ó ÕÞ£ÔÏÍ ÒÅÇÉÓÔÒÁ',
+searchreplace_findnext : 'îÁÊÔÉ&nbsp;ÓÌÅÄÕÀÝÅÅ',
+searchreplace_replace : 'úÁÍÅÎÉÔØ',
+searchreplace_replaceall : 'úÁÍÅÎÉÔØ&nbsp;×ÅÚÄÅ',
+searchreplace_cancel : 'ïÔÍÅÎÉÔØ'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/si.js b/tinyMCE/plugins/searchreplace/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..76f090dbf5edfc28b4059d8174a281a209ead1b4
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/si.js
@@ -0,0 +1,21 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Najdi',
+searchreplace_searchnext_desc : 'Ponovno najdi',
+searchreplace_replace_desc : 'Najdi/zamenjaj',
+searchreplace_notfound : 'Iskanje je bilo zaklju&#269;eno. Ne najdem iskanega zaporedja',
+searchreplace_search_title : 'Najdi',
+searchreplace_replace_title : 'Najdi/zamenjaj',
+searchreplace_allreplaced : 'Vse pojavitve iskanega zaporedja so bile zamenjane.',
+searchreplace_findwhat : 'Najdi',
+searchreplace_replacewith : 'Zamenjaj z',
+searchreplace_direction : 'Smer',
+searchreplace_up : 'Gor',
+searchreplace_down : 'Dol',
+searchreplace_case : 'Upo&#353;tevaj velike/male &#269;rke',
+searchreplace_findnext : 'Najdi nasledno pojavitev',
+searchreplace_replace : 'Zamenjaj',
+searchreplace_replaceall : 'Zamenjaj vse',
+searchreplace_cancel : 'Prekli&#269;i'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/sk.js b/tinyMCE/plugins/searchreplace/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..87ade05cef1125df2be358dbfd5a659288c476bd
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/sk.js
@@ -0,0 +1,29 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Nájdi',
+searchreplace_searchnext_desc : 'Nájdi znova',
+searchreplace_replace_desc : 'Nájdi/Nahradiť',
+searchreplace_notfound : 'Vyhľadávanie ukončené. Reťazec nemusel byť nájdený.',
+searchreplace_search_title : 'Nájdi',
+searchreplace_replace_title : 'Nájdi/Nahradiť',
+searchreplace_allreplaced : 'Všetky výskyty reťazca boly zmenené.',
+searchreplace_findwhat : 'Nájsť',
+searchreplace_replacewith : 'Nahradiť',
+searchreplace_direction : 'Smer',
+searchreplace_up : 'Nahor',
+searchreplace_down : 'Dole',
+searchreplace_case : 'Presná shoda',
+searchreplace_findnext : 'Nájdi&nbsp;ďalší',
+searchreplace_replace : 'Nahradiť',
+searchreplace_replaceall : 'Nahradiť&nbsp;všetko',
+searchreplace_cancel : 'Zrušiť'
+});
+
diff --git a/tinyMCE/plugins/searchreplace/langs/sq.js b/tinyMCE/plugins/searchreplace/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..368328d01cc4d7b3fe049e6590591b27d2e14d1a
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/sq.js
@@ -0,0 +1,21 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Gjej',
+searchreplace_searchnext_desc : 'Gjej edhe njehere',
+searchreplace_replace_desc : 'Gjej/Shkembe',
+searchreplace_notfound : 'Kerkimi mbaroi. Teksti i kerkuar nuk u gjet.',
+searchreplace_search_title : 'Gjej',
+searchreplace_replace_title : 'Gjej/Shkembe',
+searchreplace_allreplaced : 'Te gjithat rastet e kerkimit u shkembyen.',
+searchreplace_findwhat : 'Gjej çfare',
+searchreplace_replacewith : 'Shkembe me',
+searchreplace_direction : 'drejtimi',
+searchreplace_up : 'Lart',
+searchreplace_down : 'Poshte',
+searchreplace_case : 'Pershtat e madhe, e vogel',
+searchreplace_findnext : 'Gjej&nbsp;tjetrin',
+searchreplace_replace : 'Shkembe',
+searchreplace_replaceall : 'Shkembe&nbsp;te gjitha',
+searchreplace_cancel : 'Kthehu'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/searchreplace/langs/sr.js b/tinyMCE/plugins/searchreplace/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..350940dbb12702a63109fbd20ede799742ea061d
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/sr.js
@@ -0,0 +1,21 @@
+// SR lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Pronađite',
+searchreplace_searchnext_desc : 'Pronađite ponovo',
+searchreplace_replace_desc : 'Pronađite/Zamenite',
+searchreplace_notfound : 'Pretraga je završena. Ništa nije nađeno.',
+searchreplace_search_title : 'Pronađite',
+searchreplace_replace_title : 'Pronađite/Zamenite',
+searchreplace_allreplaced : 'Sva pojavljivanja zadatog stringa su zamenjena.',
+searchreplace_findwhat : 'Pronađite šta',
+searchreplace_replacewith : 'zamenite sa',
+searchreplace_direction : 'Pravac',
+searchreplace_up : 'Gore',
+searchreplace_down : 'Dole',
+searchreplace_case : 'Obraćanje pažnje na velika i mala slova',
+searchreplace_findnext : 'Nadjite&nbsp;sledeći',
+searchreplace_replace : 'Zameni',
+searchreplace_replaceall : 'Zamenite&nbsp;sve',
+searchreplace_cancel : 'Nazad'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/sv.js b/tinyMCE/plugins/searchreplace/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..0a29e5d805f6b1d7585f7a996f812aad2b2c9856
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/sv.js
@@ -0,0 +1,21 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Sök',
+searchreplace_searchnext_desc : 'Sök igen',
+searchreplace_replace_desc : 'Sök/Ersätt',
+searchreplace_notfound : 'Sökningen är slutförd. Söksträngen kunde inte hittas.',
+searchreplace_search_title : 'Sök',
+searchreplace_replace_title : 'Sök/Ersätt',
+searchreplace_allreplaced : 'Alla träffar på söksträngen ersattes',
+searchreplace_findwhat : 'Sök på',
+searchreplace_replacewith : 'Ersätt med',
+searchreplace_direction : 'Sökriktning',
+searchreplace_up : 'Uppåt',
+searchreplace_down : 'Neråt',
+searchreplace_case : 'Matcha gemener/VERSALER',
+searchreplace_findnext : 'Sök&nbsp;nästa',
+searchreplace_replace : 'Ersätt',
+searchreplace_replaceall : 'Ersätt&nbsp;alla',
+searchreplace_cancel : 'Avbryt'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/sv_utf8.js b/tinyMCE/plugins/searchreplace/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a8fbe1b35ef0341afba377cc2472c5b7c7c671b
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/sv_utf8.js
@@ -0,0 +1,21 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Sök',
+searchreplace_searchnext_desc : 'Sök igen',
+searchreplace_replace_desc : 'Sök/Ersätt',
+searchreplace_notfound : 'Sökningen är slutförd. Söksträngen kunde inte hittas.',
+searchreplace_search_title : 'Sök',
+searchreplace_replace_title : 'Sök/Ersätt',
+searchreplace_allreplaced : 'Alla träffar på söksträngen ersattes',
+searchreplace_findwhat : 'Sök på',
+searchreplace_replacewith : 'Ersätt med',
+searchreplace_direction : 'Sökriktning',
+searchreplace_up : 'Uppåt',
+searchreplace_down : 'Neråt',
+searchreplace_case : 'Matcha gemener/VERSALER',
+searchreplace_findnext : 'Sök&nbsp;nästa',
+searchreplace_replace : 'Ersätt',
+searchreplace_replaceall : 'Ersätt&nbsp;alla',
+searchreplace_cancel : 'Avbryt'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/tr.js b/tinyMCE/plugins/searchreplace/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..37cade6e83aa5318518c458e7325ad475e4574fc
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/tr.js
@@ -0,0 +1,21 @@
+// TR lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Ara',
+searchreplace_searchnext_desc : 'Tekrar ara',
+searchreplace_replace_desc : 'Bul/Deðiþtir',
+searchreplace_notfound : 'Arama tamamlandý. Aradýðýnýz sözcük bulunamadý.',
+searchreplace_search_title : 'Ara',
+searchreplace_replace_title : 'Bul/Deðiþtir',
+searchreplace_allreplaced : 'Tüm bulunan sözcükler deðiþtirildi.',
+searchreplace_findwhat : 'Ara',
+searchreplace_replacewith : 'ile deðiþtir',
+searchreplace_direction : 'Arama yönü',
+searchreplace_up : 'Yukarý',
+searchreplace_down : 'Aðaðý',
+searchreplace_case : 'Büyük/küçük harf duyarlý',
+searchreplace_findnext : 'Ara&nbsp;Ýleri',
+searchreplace_replace : 'Deðiþtir',
+searchreplace_replaceall : 'Hepsini&nbsp;deðiþtir',
+searchreplace_cancel : 'Ýptal'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/uk.js b/tinyMCE/plugins/searchreplace/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..0ffb6a706fcecd5c75820705b1752b934775b497
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/uk.js
@@ -0,0 +1,21 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Знайти',
+searchreplace_searchnext_desc : 'Знайти знову',
+searchreplace_replace_desc : 'Знайти / Замінити',
+searchreplace_notfound : 'Пошук завершений. Даний вираз не знайдено.',
+searchreplace_search_title : 'Знайти',
+searchreplace_replace_title : 'Знайти / Замінити',
+searchreplace_allreplaced : 'Заміну було виконано скрізь.',
+searchreplace_findwhat : 'Знайти що',
+searchreplace_replacewith : 'Замінити чим',
+searchreplace_direction : 'Напрямок',
+searchreplace_up : 'Вгору',
+searchreplace_down : 'Донизу',
+searchreplace_case : 'З урахуванням регістру',
+searchreplace_findnext : 'Знайти&nbsp;наступне',
+searchreplace_replace : 'Замінити',
+searchreplace_replaceall : 'Замінити&nbsp;скрізь',
+searchreplace_cancel : 'Скасувати'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/uk_CP1251.js b/tinyMCE/plugins/searchreplace/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..970819d8499e6e240d551849ace52456b5cd6242
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/uk_CP1251.js
@@ -0,0 +1,21 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Çíàéòè',
+searchreplace_searchnext_desc : 'Çíàéòè çíîâó',
+searchreplace_replace_desc : 'Çíàéòè / Çàì³íèòè',
+searchreplace_notfound : 'Ïîøóê çàâåðøåíèé. Äàíèé âèðàç íå çíàéäåíî.',
+searchreplace_search_title : 'Çíàéòè',
+searchreplace_replace_title : 'Çíàéòè / Çàì³íèòè',
+searchreplace_allreplaced : 'Çàì³íó áóëî âèêîíàíî ñêð³çü.',
+searchreplace_findwhat : 'Çíàéòè ùî',
+searchreplace_replacewith : 'Çàì³íèòè ÷èì',
+searchreplace_direction : 'Íàïðÿìîê',
+searchreplace_up : 'Âãîðó',
+searchreplace_down : 'Äîíèçó',
+searchreplace_case : 'Ç óðàõóâàííÿì ðåã³ñòðó',
+searchreplace_findnext : 'Çíàéòè&nbsp;íàñòóïíå',
+searchreplace_replace : 'Çàì³íèòè',
+searchreplace_replaceall : 'Çàì³íèòè&nbsp;ñêð³çü',
+searchreplace_cancel : 'Ñêàñóâàòè'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/uk_KOI8-U.js b/tinyMCE/plugins/searchreplace/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..915b5c7bf030420e075a15cd7fc7154d602ba4f4
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/uk_KOI8-U.js
@@ -0,0 +1,21 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'úÎÁÊÔÉ',
+searchreplace_searchnext_desc : 'úÎÁÊÔÉ ÚÎÏ×Õ',
+searchreplace_replace_desc : 'úÎÁÊÔÉ / úÁͦÎÉÔÉ',
+searchreplace_notfound : 'ðÏÛÕË ÚÁ×ÅÒÛÅÎÉÊ. äÁÎÉÊ ×ÉÒÁÚ ÎÅ ÚÎÁÊÄÅÎÏ.',
+searchreplace_search_title : 'úÎÁÊÔÉ',
+searchreplace_replace_title : 'úÎÁÊÔÉ / úÁͦÎÉÔÉ',
+searchreplace_allreplaced : 'úÁͦÎÕ ÂÕÌÏ ×ÉËÏÎÁÎÏ ÓËÒ¦ÚØ.',
+searchreplace_findwhat : 'úÎÁÊÔÉ ÝÏ',
+searchreplace_replacewith : 'úÁͦÎÉÔÉ ÞÉÍ',
+searchreplace_direction : 'îÁÐÒÑÍÏË',
+searchreplace_up : '÷ÇÏÒÕ',
+searchreplace_down : 'äÏÎÉÚÕ',
+searchreplace_case : 'ú ÕÒÁÈÕ×ÁÎÎÑÍ ÒÅǦÓÔÒÕ',
+searchreplace_findnext : 'úÎÁÊÔÉ&nbsp;ÎÁÓÔÕÐÎÅ',
+searchreplace_replace : 'úÁͦÎÉÔÉ',
+searchreplace_replaceall : 'úÁͦÎÉÔÉ&nbsp;ÓËÒ¦ÚØ',
+searchreplace_cancel : 'óËÁÓÕ×ÁÔÉ'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/vi.js b/tinyMCE/plugins/searchreplace/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..c22d960dff70a3ea6c813aafccf9255691bf936b
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/vi.js
@@ -0,0 +1,21 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Tìm',
+searchreplace_searchnext_desc : 'Tìm tiếp',
+searchreplace_replace_desc : 'Tìm/Thay thế',
+searchreplace_notfound : 'Hoàn thành tìm kiếm. Không tìm thấy.',
+searchreplace_search_title : 'Tìm',
+searchreplace_replace_title : 'Tìm/Thay thế',
+searchreplace_allreplaced : 'Đã thay thế hết.',
+searchreplace_findwhat : 'Tìm gì',
+searchreplace_replacewith : 'Thay thế bằng',
+searchreplace_direction : 'Hướng',
+searchreplace_up : 'Lên',
+searchreplace_down : 'Xuống',
+searchreplace_case : 'Phân biệt chữ hoa chữ thường',
+searchreplace_findnext : 'Tìm&nbsp;tiếp',
+searchreplace_replace : 'Thay&nbsp;thế',
+searchreplace_replaceall : 'Thay&nbsp;tất&nbsp;cả',
+searchreplace_cancel : 'Hủy&nbsp;bỏ'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/zh_cn.js b/tinyMCE/plugins/searchreplace/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..57386790fe59a7cf5e21d0a203ddaf146bf575b5
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/zh_cn.js
@@ -0,0 +1,22 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : '²éÕÒ',
+searchreplace_searchnext_desc : 'ÔٴβéÕÒ',
+searchreplace_replace_desc : '²éÕÒ/Ìæ»»',
+searchreplace_notfound : 'ËÑË÷Íê±Ï£¬Ã»ÓÐÕÒµ½Òª²éÕÒµÄ×Ö·û´®¡£',
+searchreplace_search_title : '²éÕÒ',
+searchreplace_replace_title : '²éÕÒ/Ìæ»»',
+searchreplace_allreplaced : 'ËùÓзûºÏÌõ¼þµÄ×Ö·û´®ÒÑÌæ»»Íê±Ï¡£',
+searchreplace_findwhat : '²éÕÒ',
+searchreplace_replacewith : 'Ìæ»»Îª',
+searchreplace_direction : '·½Ïò',
+searchreplace_up : 'ÏòÉÏ',
+searchreplace_down : 'ÏòÏÂ',
+searchreplace_case : 'Æ¥Åä´óСд',
+searchreplace_findnext : '²éÕÒÏÂÒ»¸ö',
+searchreplace_replace : 'Ìæ»»',
+searchreplace_replaceall : 'È«²¿Ìæ»»',
+searchreplace_cancel : 'È¡Ïû'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/zh_cn_utf8.js b/tinyMCE/plugins/searchreplace/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee5eec4f2a9eccd2d97513a36b68c52533b75116
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/zh_cn_utf8.js
@@ -0,0 +1,22 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : '查找',
+searchreplace_searchnext_desc : '再次查找',
+searchreplace_replace_desc : '查找/替换',
+searchreplace_notfound : '搜索完毕,没有找到要查找的字符串。',
+searchreplace_search_title : '查找',
+searchreplace_replace_title : '查找/替换',
+searchreplace_allreplaced : '所有符合条件的字符串已替换完毕。',
+searchreplace_findwhat : '查找',
+searchreplace_replacewith : '替换为',
+searchreplace_direction : '方向',
+searchreplace_up : '向上',
+searchreplace_down : '向下',
+searchreplace_case : '匹配大小写',
+searchreplace_findnext : '查找下一个',
+searchreplace_replace : '替换',
+searchreplace_replaceall : '全部替换',
+searchreplace_cancel : '取消'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/zh_tw.js b/tinyMCE/plugins/searchreplace/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..2820463045a81acd2dc9b08b048197ceb689cb2a
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/zh_tw.js
@@ -0,0 +1,22 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : '¬d¸ß',
+searchreplace_searchnext_desc : '¦A¦¸¬d¸ß',
+searchreplace_replace_desc : '¬d¸ß©Î´À´«',
+searchreplace_notfound : '¤w§¹¦¨¬d¸ß¡C¨S§ä¨ì«ü©wªº¦r¦ê¡C',
+searchreplace_search_title : '¬d¸ß',
+searchreplace_replace_title : '¬d¸ß©Î´À´«',
+searchreplace_allreplaced : '©Ò¦³§ä¨ìªº¦r¦ê¤w§¹¦¨´À´«',
+searchreplace_findwhat : '§ä¤°»ò',
+searchreplace_replacewith : '´À´«¦¨',
+searchreplace_direction : '¤è¦V',
+searchreplace_up : '©¹¤W',
+searchreplace_down : '¦V¤U',
+searchreplace_case : '¬Û²Åµ²ªG',
+searchreplace_findnext : '¬d¸ß¤U­Ó',
+searchreplace_replace : '´À´«',
+searchreplace_replaceall : '¥þ³¡´À´«',
+searchreplace_cancel : '¨ú®ø'
+});
diff --git a/tinyMCE/plugins/searchreplace/langs/zh_tw_utf8.js b/tinyMCE/plugins/searchreplace/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..91376f359b649b5c22988ef2dc12e2a481d9ac33
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/langs/zh_tw_utf8.js
@@ -0,0 +1,22 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : '查詢',
+searchreplace_searchnext_desc : '再次查詢',
+searchreplace_replace_desc : '查詢或替換',
+searchreplace_notfound : '已完成查詢。沒找到指定的字串。',
+searchreplace_search_title : '查詢',
+searchreplace_replace_title : '查詢或替換',
+searchreplace_allreplaced : '所有找到的字串已完成替換',
+searchreplace_findwhat : '找什麼',
+searchreplace_replacewith : '替換成',
+searchreplace_direction : '方向',
+searchreplace_up : '往上',
+searchreplace_down : '向下',
+searchreplace_case : '相符結果',
+searchreplace_findnext : '查詢下個',
+searchreplace_replace : '替換',
+searchreplace_replaceall : '全部替換',
+searchreplace_cancel : '取消'
+});
diff --git a/tinyMCE/plugins/searchreplace/readme.txt b/tinyMCE/plugins/searchreplace/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/searchreplace/searchreplace.htm b/tinyMCE/plugins/searchreplace/searchreplace.htm
new file mode 100644
index 0000000000000000000000000000000000000000..192e0cbc66f57e5932da1425e5093b576b80a85b
--- /dev/null
+++ b/tinyMCE/plugins/searchreplace/searchreplace.htm
@@ -0,0 +1,107 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_searchreplace_replace_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/searchreplace.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/searchreplace.css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none; margin: 4px;">
+<form onsubmit="return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="search_tab"><span><a href="javascript:mcTabs.displayTab('search_tab','search_panel');manageReplaceButtons();" onmousedown="return copyValues(this);">{$lang_searchreplace_search_desc}</a></span></li>
+			<li id="replace_tab"><span><a href="javascript:mcTabs.displayTab('replace_tab','replace_panel');manageReplaceButtons();" onmousedown="return copyValues(this);">{$lang_searchreplace_replace}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+
+		<div id="search_panel" class="panel">
+			<table border="0" cellspacing="0" cellpadding="2">
+				<tr>
+					<td><label for="search_panel_searchstring">{$lang_searchreplace_findwhat}</label></td>
+					<td><input type="text" id="search_panel_searchstring" name="search_panel_searchstring" style="width: 200px" /></td>
+				</tr>
+				<tr>
+					<td colspan="2">
+						<table border="0" cellspacing="0" cellpadding="0" class="direction">
+							<tr>
+								<td><label>{$lang_searchreplace_direction}</label></td>
+								<td><input id="search_panel_backwardsu" name="search_panel_backwards" class="radio" type="radio" /></td>
+								<td><label for="search_panel_backwardsu">{$lang_searchreplace_up}</label></td>
+								<td><input id="search_panel_backwardsd" name="search_panel_backwards" class="radio" type="radio" /></td>
+								<td><label for="search_panel_backwardsd">{$lang_searchreplace_down}</label></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr>
+					<td colspan="2">
+						<table border="0" cellspacing="0" cellpadding="0">
+							<tr>
+								<td><input id="search_panel_casesensitivebox" name="search_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>
+								<td><label for="search_panel_casesensitivebox">{$lang_searchreplace_case}</label></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</div>
+
+		<div id="replace_panel" class="panel">
+			<table border="0" cellspacing="0" cellpadding="2">
+				<tr>
+					<td><label for="replace_panel_searchstring">{$lang_searchreplace_findwhat}</label></td>
+					<td><input type="text" id="replace_panel_searchstring" name="replace_panel_searchstring" style="width: 200px" /></td>
+				</tr>
+				<tr>
+					<td><label for="replace_panel_replacestring">{$lang_searchreplace_replacewith}</label></td>
+					<td><input type="text" id="replace_panel_replacestring" name="replace_panel_replacestring" style="width: 200px" /></td>
+				</tr>
+				<tr>
+					<td colspan="2">
+						<table border="0" cellspacing="0" cellpadding="0" class="direction">
+							<tr>
+								<td><label>{$lang_searchreplace_direction}</label></td>
+								<td><input id="replace_panel_backwardsu" name="replace_panel_backwards" class="radio" type="radio" /></td>
+								<td><label for="replace_panel_backwardsu">{$lang_searchreplace_up}</label></td>
+								<td><input id="replace_panel_backwardsd" name="replace_panel_backwards" class="radio" type="radio" /></td>
+								<td><label for="replace_panel_backwardsd">{$lang_searchreplace_down}</label></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr>
+					<td colspan="2">
+						<table border="0" cellspacing="0" cellpadding="0">
+							<tr>
+								<td><input id="replace_panel_casesensitivebox" name="replace_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>
+								<td><label for="replace_panel_casesensitivebox">{$lang_searchreplace_case}</label></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</div>
+
+	</div>
+
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_searchreplace_findnext}" onclick="searchNext('none');" />
+			<span id="replace_buttons">
+				<input type="button" id="replaceBtn" name="replaceBtn" value="{$lang_searchreplace_replace}" onclick="searchNext('current');" />
+				<input type="button" id="replaceAllBtn" name="replaceAllBtn" value="{$lang_searchreplace_replaceall}" onclick="searchNext('all');;" />
+			</span>
+		</div>
+
+		<div style="float: right">	
+			<input type="button" id="cancel" name="cancel" value="{$lang_searchreplace_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/spellchecker/changelog b/tinyMCE/plugins/spellchecker/changelog
new file mode 100644
index 0000000000000000000000000000000000000000..166907ba38e2f8b92ba60cf0a2bc25f07d8eae9f
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/changelog
@@ -0,0 +1,28 @@
+Version 1.0.5 (2007-05-28)
+	Fixed issue where FF was crashing if you hide a element. Workaround for FF bug.
+Version 1.0.4 (2007-04-23)
+	Fixed so that it's easier to debug. Invalid server responses is displayed.
+	Fixed bug where CURL could have SSL but not fsockopen.
+	Fixed bug where magic quotes wasn't handled correctly.
+	Fixed encoding bug of ' characters.
+Version 1.0.3.1 (2007-01-10)
+	Added fix for Gecko browsers starting to produce spans instead of strong/em etc after a spellcheck.
+Version 1.0.3 (2007-01-09)
+	Fixed bug where spellchecker was stealing focus in explorer.
+	Fixed bug where IE produced two words on a spellcheck after chars inside the word was removed.
+	Fixed so that curl isn't required for the Google speller class if you use PHP 4.3.0+.
+	Fixed issue with version not being displayed in about dialog.
+	Fixed bug where focus on windows where lost if they executed a cleanup.
+	Fixed typo on the spellchecker_report_misspellings option, added missing s.
+	Fixed issue with progress dialog not being presented correctly. Contributed by Mike Engelhart.
+Version 1.0.2 (2006-08-02)
+	Added new spellchecker_report_mispellings option, contributed by Jeremy B.
+	Fixed various regexp bugs and issues. Some where contributed by Jeremy B.
+	Fixed the Google speller class so it uses curl, patch contributed by Yuriy Kramar.
+	Fixed encoding issues with language specific characters, patch contributed by codepit.
+	Fixed bug where the spellchecker wasn't working in MSIE if the editor was placed in a P tag.
+Version 1.0.1 (2006-05-05)
+	Since sourceforge has a serious bug when it comes to replacing files with the same name this release was necessary.
+	Goggle spellchecker class was added.
+Version 1.0 (2006-05-03)
+	Official first release.
diff --git a/tinyMCE/plugins/spellchecker/classes/TinyGoogleSpell.class.php b/tinyMCE/plugins/spellchecker/classes/TinyGoogleSpell.class.php
new file mode 100644
index 0000000000000000000000000000000000000000..9e6ddbd94fae09434d0d76ad943dde0ba5e2d4e2
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/classes/TinyGoogleSpell.class.php
@@ -0,0 +1,126 @@
+<?php
+/* *
+ * Tiny Spelling Interface for TinyMCE Spell Checking.
+ *
+ * Copyright © 2006 Moxiecode Systems AB
+ */
+
+class TinyGoogleSpell {
+	var $lang;
+
+	function TinyGoogleSpell(&$config, $lang, $mode, $spelling, $jargon, $encoding) {
+		$this->lang = $lang;
+	}
+
+	// Returns array with bad words or false if failed.
+	function checkWords($word_array) {
+		$words = array();
+		$wordstr = implode(' ', $word_array);
+
+		$matches = $this->_getMatches($wordstr);
+
+		for ($i=0; $i<count($matches); $i++)
+			$words[] = $this->unhtmlentities(mb_substr($wordstr, $matches[$i][1], $matches[$i][2], "UTF-8"));
+
+		return $words;
+	}
+
+	function unhtmlentities($string) {
+		$string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
+		$string = preg_replace('~&#([0-9]+);~e', 'chr(\\1)', $string);
+
+		$trans_tbl = get_html_translation_table(HTML_ENTITIES);
+		$trans_tbl = array_flip($trans_tbl);
+
+		return strtr($string, $trans_tbl);
+	}
+
+	// Returns array with suggestions or false if failed.
+	function getSuggestion($word) {
+		$sug = array();
+
+		$matches = $this->_getMatches($word);
+
+		if (count($matches) > 0)
+			$sug = explode("\t", utf8_encode($this->unhtmlentities($matches[0][4])));
+
+		return $sug;
+	}
+
+	function _xmlChars($string) {
+	   $trans = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES);
+	
+	   foreach ($trans as $k => $v)
+			$trans[$k] = "&#".ord($k).";";
+
+	   return strtr($string, $trans);
+	}
+
+	function _getMatches($word_list) {
+        $server = "www.google.com";
+        $port = 443;
+        $path = "/tbproxy/spell?lang=" . $this->lang . "&hl=en";
+        $host = "www.google.com";
+        $url = "https://" . $server;
+
+		// Setup XML request
+		$xml = '<?xml version="1.0" encoding="utf-8" ?><spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><text>' . $word_list . '</text></spellrequest>';
+
+        $header  = "POST ".$path." HTTP/1.0 \r\n";
+        $header .= "MIME-Version: 1.0 \r\n";
+        $header .= "Content-type: application/PTI26 \r\n";
+        $header .= "Content-length: ".strlen($xml)." \r\n";
+        $header .= "Content-transfer-encoding: text \r\n";
+        $header .= "Request-number: 1 \r\n";
+        $header .= "Document-type: Request \r\n";
+        $header .= "Interface-Version: Test 1.4 \r\n";
+        $header .= "Connection: close \r\n\r\n";
+        $header .= $xml;
+		//$this->_debugData($xml);
+
+		// Use curl if it exists
+		if (function_exists('curl_init')) {
+			// Use curl
+			$ch = curl_init();
+			curl_setopt($ch, CURLOPT_URL,$url);
+			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+			curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
+			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
+			$xml = curl_exec($ch);
+			curl_close($ch);
+		} else {
+			// Use raw sockets
+			$fp = fsockopen("ssl://" . $server, $port, $errno, $errstr, 30);
+			if ($fp) {
+				// Send request
+				fwrite($fp, $header);
+
+				// Read response
+				$xml = "";
+				while (!feof($fp))
+					$xml .= fgets($fp, 128);
+
+				fclose($fp);
+			} else
+				echo "Could not open SSL connection to google.";
+		}
+
+		//$this->_debugData($xml);
+
+		// Grab and parse content
+		preg_match_all('/<c o="([^"]*)" l="([^"]*)" s="([^"]*)">([^<]*)<\/c>/', $xml, $matches, PREG_SET_ORDER);
+
+		return $matches;
+	}
+
+	function _debugData($data) {
+		$fh = @fopen("debug.log", 'a+');
+		@fwrite($fh, $data);
+		@fclose($fh);
+	}
+}
+
+// Setup classname, should be the same as the name of the spellchecker class
+$spellCheckerConfig['class'] = "TinyGoogleSpell";
+
+?>
diff --git a/tinyMCE/plugins/spellchecker/classes/TinyPspell.class.php b/tinyMCE/plugins/spellchecker/classes/TinyPspell.class.php
new file mode 100644
index 0000000000000000000000000000000000000000..dfea14cbb86be3d2f50c7d93815dd1f205e80495
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/classes/TinyPspell.class.php
@@ -0,0 +1,64 @@
+<?php
+/* * 
+ * Tiny Spelling Interface for TinyMCE Spell Checking.
+ *
+ * Copyright © 2006 Moxiecode Systems AB
+ *
+ */
+
+class TinyPSpell {
+	var $lang;
+	var $mode;
+	var $string;
+	var $plink;
+	var $errorMsg;
+
+	var $jargon;
+	var $spelling;
+	var $encoding;
+
+	function TinyPSpell(&$config, $lang, $mode, $spelling, $jargon, $encoding) {
+		$this->lang = $lang;
+		$this->mode = $mode;
+		$this->plink = false;
+		$this->errorMsg = array();
+
+		if (!function_exists("pspell_new")) {
+			$this->errorMsg[] = "PSpell not found.";
+			return;
+		}
+
+		$this->plink = pspell_new($this->lang, $this->spelling, $this->jargon, $this->encoding, $this->mode);
+	}
+
+	// Returns array with bad words or false if failed.
+	function checkWords($wordArray) {
+		if (!$this->plink) {
+			$this->errorMsg[] = "No PSpell link found for checkWords.";
+			return array();
+		}
+
+		$wordError = array();
+		foreach($wordArray as $word) {
+			if(!pspell_check($this->plink, trim($word)))
+				$wordError[] = $word;
+		}
+
+		return $wordError;
+	}
+
+	// Returns array with suggestions or false if failed.
+	function getSuggestion($word) {
+		if (!$this->plink) {
+			$this->errorMsg[] = "No PSpell link found for getSuggestion.";
+			return array();
+		}
+
+		return pspell_suggest($this->plink, $word);
+	}
+}
+
+// Setup classname, should be the same as the name of the spellchecker class
+$spellCheckerConfig['class'] = "TinyPspell";
+
+?>
\ No newline at end of file
diff --git a/tinyMCE/plugins/spellchecker/classes/TinyPspellShell.class.php b/tinyMCE/plugins/spellchecker/classes/TinyPspellShell.class.php
new file mode 100644
index 0000000000000000000000000000000000000000..d0c03e01c81427f389f4a44932b6618bc24918f3
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/classes/TinyPspellShell.class.php
@@ -0,0 +1,121 @@
+<?php
+/* * 
+ * Tiny Spelling Interface for TinyMCE Spell Checking.
+ *
+ * Copyright © 2006 Moxiecode Systems AB
+ *
+ */
+
+
+class TinyPspellShell {
+	var $lang;
+	var $mode;
+	var $string;
+	var $error;
+	var $errorMsg;
+
+	var $cmd;
+	var $tmpfile;
+
+	var $jargon;
+	var $spelling;
+	var $encoding;
+
+	function TinyPspellShell(&$config, $lang, $mode, $spelling, $jargon, $encoding) {
+		$this->lang = $lang;
+		$this->mode = $mode;
+		$this->error = false;
+		$this->errorMsg = array();
+
+		$this->tmpfile = tempnam($config['tinypspellshell.tmp'], "tinyspell");
+
+		if(preg_match("#win#i",php_uname()))
+            $this->cmd = $config['tinypspellshell.aspell'] . " -a --lang=". $this->lang." --encoding=utf-8 -H < $this->tmpfile 2>&1";
+        else
+            $this->cmd = "cat ". $this->tmpfile ." | " . $config['tinypspellshell.aspell'] . " -a --encoding=utf-8 -H --lang=". $this->lang;
+	}
+
+	// Returns array with bad words or false if failed.
+	function checkWords($wordArray) {
+		if ($fh = fopen($this->tmpfile, "w")) {
+			fwrite($fh, "!\n");
+			foreach($wordArray as $key => $value)
+				fwrite($fh, "^" . $value . "\n");
+			fclose($fh);
+		} else {
+			$this->errorMsg[] = "PSpell not found.";
+			return array();
+		}
+
+		$data = shell_exec($this->cmd);
+        @unlink($this->tmpfile);
+		
+		$returnData = array();
+		$dataArr = preg_split("/\n/", $data, -1, PREG_SPLIT_NO_EMPTY);
+
+		foreach($dataArr as $dstr) {
+			$matches = array();
+
+			// Skip this line.
+			if (strpos($dstr, "@") === 0)
+				continue;
+
+			preg_match("/\& (.*) .* .*: .*/i", $dstr, $matches);
+
+			if (!empty($matches[1]))
+				$returnData[] = $matches[1];
+		}
+
+		return $returnData;
+	}
+
+	// Returns array with suggestions or false if failed.
+	function getSuggestion($word) {
+        if (function_exists("mb_convert_encoding"))
+            $word = mb_convert_encoding($word, "ISO-8859-1", mb_detect_encoding($word, "UTF-8"));
+        else
+            $word = utf8_encode($word);
+
+		if ($fh = fopen($this->tmpfile, "w")) {
+			fwrite($fh, "!\n");
+			fwrite($fh, "^$word\n");
+			fclose($fh);
+		} else
+			die("Error opening tmp file.");
+
+		$data = shell_exec($this->cmd);
+
+        @unlink($this->tmpfile);
+
+		$returnData = array();
+		$dataArr = preg_split("/\n/", $data, -1, PREG_SPLIT_NO_EMPTY);
+
+		foreach($dataArr as $dstr) {
+			$matches = array();
+
+			// Skip this line.
+			if (strpos($dstr, "@") === 0)
+				continue;
+
+			preg_match("/\& .* .* .*: (.*)/i", $dstr, $matches);
+
+			if (!empty($matches[1])) {
+				// For some reason, the exec version seems to add commas?
+				$returnData[] = str_replace(",", "", $matches[1]);
+			}
+		}
+		return $returnData;
+	}
+
+	function _debugData($data) {
+		$fh = @fopen("debug.log", 'a+');
+		@fwrite($fh, $data);
+		@fclose($fh);
+	}
+
+}
+
+// Setup classname, should be the same as the name of the spellchecker class
+$spellCheckerConfig['class'] = "TinyPspellShell";
+
+?>
\ No newline at end of file
diff --git a/tinyMCE/plugins/spellchecker/config.php b/tinyMCE/plugins/spellchecker/config.php
new file mode 100644
index 0000000000000000000000000000000000000000..6bc05ec499d42970f8a92a07b229df8690f1e2a1
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/config.php
@@ -0,0 +1,24 @@
+<?php
+	$spellCheckerConfig = array();
+
+	// Spellchecker class use
+	// require_once("classes/TinyPspellShell.class.php"); // Command line pspell
+	require_once("classes/TinyGoogleSpell.class.php"); // Google web service
+	// require_once("classes/TinyPspell.class.php"); // Internal PHP version
+
+	// General settings
+	$spellCheckerConfig['enabled'] = false;
+
+	// Default settings
+	$spellCheckerConfig['default.language'] = 'en';
+	$spellCheckerConfig['default.mode'] = PSPELL_FAST;
+
+	// Normaly not required to configure
+	$spellCheckerConfig['default.spelling'] = "";
+	$spellCheckerConfig['default.jargon'] = "";
+	$spellCheckerConfig['default.encoding'] = "";
+
+	// Pspell shell specific settings
+	$spellCheckerConfig['tinypspellshell.aspell'] = '/usr/bin/aspell';
+	$spellCheckerConfig['tinypspellshell.tmp'] = '/tmp';
+?>
diff --git a/tinyMCE/plugins/spellchecker/css/content.css b/tinyMCE/plugins/spellchecker/css/content.css
new file mode 100644
index 0000000000000000000000000000000000000000..c56a4538a790b45e0e2497da3cee28e5962a77c1
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/css/content.css
@@ -0,0 +1,4 @@
+.mceItemHiddenSpellWord {
+	background: url('../images/wline.gif') repeat-x bottom left;
+	cursor: default;
+}
diff --git a/tinyMCE/plugins/spellchecker/css/spellchecker.css b/tinyMCE/plugins/spellchecker/css/spellchecker.css
new file mode 100644
index 0000000000000000000000000000000000000000..f2c6ac74de03b335fa1611c5517c7fbc9758532b
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/css/spellchecker.css
@@ -0,0 +1,35 @@
+.mceMsgBox {
+	border: 1px solid gray;
+	padding: 8px;
+}
+
+.mceMsgBox span {
+	vertical-align: top;
+	color: #555555;
+}
+
+/* Misc */
+
+.mceBlockBox {
+	display: none;
+	position: absolute;
+	left: 0;
+	top: 0;
+	z-index: 100;
+	filter:progid:DXImageTransform.Microsoft.Alpha(style=0, opacity=60);
+	-moz-opacity:0.6;
+	opacity: 0.6;
+	background-color: white;
+}
+
+.mceMsgBox {
+	display: none;
+	z-index: 101;
+	position: absolute;
+	left: 0;
+	top: 0;
+	font-family: Arial, Verdana, Tahoma, Helvetica;
+	font-weight: bold;
+	font-size: 11px;
+	background-color: #FFF;
+}
diff --git a/tinyMCE/plugins/spellchecker/editor_plugin.js b/tinyMCE/plugins/spellchecker/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..3924c8fdd819a1005044e740067f937f2985b2d4
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('spellchecker','en,fr,sv,nn,nb');var TinyMCE_SpellCheckerPlugin={_contextMenu:new TinyMCE_Menu(),_menu:new TinyMCE_Menu(),_counter:0,_ajaxPage:'/tinyspell.php',getInfo:function(){return{longname:'Spellchecker PHP',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',version:"1.0.5"};},handleEvent:function(e){var elm=tinyMCE.isMSIE?e.srcElement:e.target;var inst=tinyMCE.selectedInstance,args='';var self=TinyMCE_SpellCheckerPlugin;var cm=self._contextMenu;var p,p2,x,y,sx,sy,h,elm;if((e.type=="click"||e.type=="contextmenu")&&elm){do{if(tinyMCE.getAttrib(elm,'class')=="mceItemHiddenSpellWord"){inst.spellCheckerElm=elm;args+='id='+inst.editorId+"|"+(++self._counter);args+='&cmd=suggest&check='+encodeURIComponent(elm.innerHTML);args+='&lang='+escape(inst.spellCheckerLang);elm=inst.spellCheckerElm;p=tinyMCE.getAbsPosition(inst.iframeElement);p2=tinyMCE.getAbsPosition(elm);h=parseInt(elm.offsetHeight);sx=inst.getBody().scrollLeft;sy=inst.getBody().scrollTop;x=p.absLeft+p2.absLeft-sx;y=p.absTop+p2.absTop-sy+h;cm.clear();cm.addTitle(tinyMCE.getLang('lang_spellchecker_wait','',true));cm.show();cm.moveTo(x,y);inst.selection.selectNode(elm,false,false);self._sendAjax(self.baseURL+self._ajaxPage,self._ajaxResponse,'post',args);tinyMCE.cancelEvent(e);return false;}}while((elm=elm.parentNode));}return true;},initInstance:function(inst){var self=TinyMCE_SpellCheckerPlugin,m=self._menu,cm=self._contextMenu,e;tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/spellchecker/css/content.css");if(!tinyMCE.hasMenu('spellcheckercontextmenu')){tinyMCE.importCSS(document,tinyMCE.baseURL+"/plugins/spellchecker/css/spellchecker.css");cm.init({drop_menu:false});tinyMCE.addMenu('spellcheckercontextmenu',cm);}if(!tinyMCE.hasMenu('spellcheckermenu')){m.init({});tinyMCE.addMenu('spellcheckermenu',m);}inst.spellCheckerLang='en';self._buildSettingsMenu(inst,null);e=self._getBlockBoxLayer(inst).create('div','mceBlockBox',document.getElementById(inst.editorId+'_parent'));self._getMsgBoxLayer(inst).create('div','mceMsgBox',document.getElementById(inst.editorId+'_parent'));},_getMsgBoxLayer:function(inst){if(!inst.spellCheckerMsgBoxL)inst.spellCheckerMsgBoxL=new TinyMCE_Layer(inst.editorId+'_spellcheckerMsgBox',false);return inst.spellCheckerMsgBoxL;},_getBlockBoxLayer:function(inst){if(!inst.spellCheckerBoxL)inst.spellCheckerBoxL=new TinyMCE_Layer(inst.editorId+'_spellcheckerBlockBox',false);return inst.spellCheckerBoxL;},_buildSettingsMenu:function(inst,lang){var i,ar=tinyMCE.getParam('spellchecker_languages','+English=en').split(','),p;var self=TinyMCE_SpellCheckerPlugin,m=self._menu,c;m.clear();m.addTitle(tinyMCE.getLang('lang_spellchecker_langs','',true));for(i=0;i<ar.length;i++){if(ar[i]!=''){p=ar[i].split('=');c='mceMenuCheckItem';if(p[0].charAt(0)=='+'){p[0]=p[0].substring(1);if(lang==null){c='mceMenuSelectedItem';inst.spellCheckerLang=p[1];}}if(lang==p[1])c='mceMenuSelectedItem';m.add({text:p[0],js:"tinyMCE.execInstanceCommand('"+inst.editorId+"','mceSpellCheckerSetLang',false,'"+p[1]+"');",class_name:c});}}},setupContent:function(editor_id,body,doc){TinyMCE_SpellCheckerPlugin._removeWords(doc,null,true);},getControlHTML:function(cn){switch(cn){case"spellchecker":return TinyMCE_SpellCheckerPlugin._getMenuButtonHTML(cn,'lang_spellchecker_desc','{$pluginurl}/images/spellchecker.gif','lang_spellchecker_desc','mceSpellCheckerMenu','mceSpellCheck');}return"";},_getMenuButtonHTML:function(id,lang,img,mlang,mid,cmd,ui,val){var h='',m,x;cmd='tinyMCE.hideMenus();tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+cmd+'\'';if(typeof(ui)!="undefined"&&ui!=null)cmd+=','+ui;if(typeof(val)!="undefined"&&val!=null)cmd+=",'"+val+"'";cmd+=');';if(tinyMCE.getParam('button_tile_map')&&(!tinyMCE.isMSIE||tinyMCE.isOpera)&&(m=tinyMCE.buttonMap[id])!=null&&(tinyMCE.getParam("language")=="en"||img.indexOf('$lang')==-1)){x=0-(m*20)==0?'0':0-(m*20);h+='<a id="{$editor_id}_'+id+'" href="javascript:'+cmd+'" onclick="'+cmd+'return false;" onmousedown="return false;" class="mceTiledButton mceButtonNormal" target="_self">';h+='<img src="{$themeurl}/images/spacer.gif" style="background-position: '+x+'px 0" title="{$'+lang+'}" />';h+='<img src="{$themeurl}/images/button_menu.gif" title="{$'+lang+'}" class="mceMenuButton" onclick="'+mcmd+'return false;" />';h+='</a>';}else{if(tinyMCE.isMSIE&&!tinyMCE.isOpera)h+='<span id="{$editor_id}_'+id+'" class="mceMenuButton" onmouseover="tinyMCE.plugins.spellchecker._menuButtonEvent(\'over\',this);" onmouseout="tinyMCE.plugins.spellchecker._menuButtonEvent(\'out\',this);">';else h+='<span id="{$editor_id}_'+id+'" class="mceMenuButton">';h+='<a href="javascript:'+cmd+'" onclick="'+cmd+'return false;" onmousedown="return false;" class="mceMenuButtonNormal" target="_self">';h+='<img src="'+img+'" title="{$'+lang+'}" /></a>';h+='<a href="#" onclick="tinyMCE.plugins.spellchecker._toggleMenu(\'{$editor_id}\',\''+mid+'\');return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$'+lang+'}" class="mceMenuButton" />';h+='</a></span>';}return h;},_menuButtonEvent:function(e,o){var t=this;window.setTimeout(function(){t._menuButtonEvent2(e,o);},1);},_menuButtonEvent2:function(e,o){if(o.className=='mceMenuButtonFocus')return;if(e=='over')o.className=o.className+' mceMenuHover';else o.className=o.className.replace(/\s.*$/,'');},_toggleMenu:function(editor_id,id){var self=TinyMCE_SpellCheckerPlugin;var e=document.getElementById(editor_id+'_spellchecker');var inst=tinyMCE.getInstanceById(editor_id);if(self._menu.isVisible()){tinyMCE.hideMenus();return;}tinyMCE.lastMenuBtnClass=e.className.replace(/\s.*$/,'');tinyMCE.switchClass(editor_id+'_spellchecker','mceMenuButtonFocus');self._menu.moveRelativeTo(e,'bl');self._menu.moveBy(tinyMCE.isMSIE&&!tinyMCE.isOpera?0:1,-1);if(tinyMCE.isOpera)self._menu.moveBy(0,-2);self._onMenuEvent(inst,self._menu,'show');self._menu.show();tinyMCE.lastSelectedMenuBtn=editor_id+'_spellchecker';},_onMenuEvent:function(inst,m,n){TinyMCE_SpellCheckerPlugin._buildSettingsMenu(inst,inst.spellCheckerLang);},execCommand:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id),self=TinyMCE_SpellCheckerPlugin,args='',co,bb,mb,nl,i,e,mbs;switch(command){case"mceSpellCheck":if(!inst.spellcheckerOn){inst.spellCheckerBookmark=inst.selection.getBookmark();if(tinyMCE.isRealIE)tinyMCE.setInnerHTML(inst.getBody(),inst.getBody().innerHTML);args+='id='+inst.editorId+"|"+(++self._counter);args+='&cmd=spell&check='+encodeURIComponent(self._getWordList(inst.getBody())).replace(/\'/g,'%27');args+='&lang='+escape(inst.spellCheckerLang);co=document.getElementById(inst.editorId+'_parent').firstChild;bb=self._getBlockBoxLayer(inst);bb.moveRelativeTo(co,'tl');bb.resizeTo(co.offsetWidth,co.offsetHeight);bb.show();mb=self._getMsgBoxLayer(inst);e=mb.getElement();if(e.childNodes[0])e.removeChild(e.childNodes[0]);mbs=document.createElement("span");mbs.innerHTML='<span>'+tinyMCE.getLang('lang_spellchecker_swait','',true)+'</span>';e.appendChild(mbs);mb.show();mb.moveRelativeTo(co,'cc');if(tinyMCE.isMSIE&&!tinyMCE.isOpera){nl=co.getElementsByTagName('select');for(i=0;i<nl.length;i++)nl[i].disabled=true;}inst.spellcheckerOn=true;tinyMCE.switchClass(editor_id+'_spellchecker','mceMenuButtonSelected');self._sendAjax(self.baseURL+self._ajaxPage,self._ajaxResponse,'post',args);}else{self._removeWords(inst.getDoc());inst.spellcheckerOn=false;tinyMCE.switchClass(editor_id+'_spellchecker','mceMenuButton');}return true;case"mceSpellCheckReplace":if(inst.spellCheckerElm)tinyMCE.setOuterHTML(inst.spellCheckerElm,value);self._checkDone(inst);self._contextMenu.hide();self._menu.hide();return true;case"mceSpellCheckIgnore":if(inst.spellCheckerElm)self._removeWord(inst.spellCheckerElm);self._checkDone(inst);self._contextMenu.hide();self._menu.hide();return true;case"mceSpellCheckIgnoreAll":if(inst.spellCheckerElm)self._removeWords(inst.getDoc(),inst.spellCheckerElm.innerHTML);self._checkDone(inst);self._contextMenu.hide();self._menu.hide();return true;case"mceSpellCheckerSetLang":tinyMCE.hideMenus();inst.spellCheckerLang=value;self._removeWords(inst.getDoc());inst.spellcheckerOn=false;tinyMCE.switchClass(editor_id+'_spellchecker','mceMenuButton');return true;}return false;},cleanup:function(type,content,inst){switch(type){case"get_from_editor_dom":TinyMCE_SpellCheckerPlugin._removeWords(content,null,true);inst.spellcheckerOn=false;break;}return content;},_displayUI:function(inst){var self=TinyMCE_SpellCheckerPlugin;var bb=self._getBlockBoxLayer(inst);var mb=self._getMsgBoxLayer(inst);var nl,i;var co=document.getElementById(inst.editorId+'_parent').firstChild;if(tinyMCE.isMSIE&&!tinyMCE.isOpera){nl=co.getElementsByTagName('select');for(i=0;i<nl.length;i++)nl[i].disabled=false;}bb.hide();mb.hide();},_ajaxResponse:function(xml,text){var el=xml?xml.documentElement:null;var inst=tinyMCE.selectedInstance,self=TinyMCE_SpellCheckerPlugin;var cmd=el?el.getAttribute("cmd"):null,err,id=el?el.getAttribute("id"):null;if(id)inst=tinyMCE.getInstanceById(id.substring(0,id.indexOf('|')));if(tinyMCE.isGecko)window.focus();self._displayUI(inst);if(tinyMCE.isGecko){inst.getWin().focus();inst.selection.moveToBookmark(inst.spellCheckerBookmark);}if(cmd=="suggest"&&id!=inst.editorId+"|"+self._counter)return;if(!el){text=''+text;if(text.length>500)text=text.substring(500);inst.spellcheckerOn=false;tinyMCE.switchClass(inst.editorId+'_spellchecker','mceMenuButton');alert("Could not execute AJAX call, server didn't return valid a XML.\nResponse: "+text);return;}err=el.getAttribute("error");if(err=="true"){inst.spellcheckerOn=false;tinyMCE.switchClass(inst.editorId+'_spellchecker','mceMenuButton');alert(el.getAttribute("msg"));return;}switch(cmd){case"spell":if(xml.documentElement.firstChild){self._markWords(inst.getDoc(),inst.getBody(),decodeURIComponent(el.firstChild.nodeValue).split('+'));inst.selection.moveToBookmark(inst.spellCheckerBookmark);if(tinyMCE.getParam('spellchecker_report_misspellings',false))alert(tinyMCE.getLang('lang_spellchecker_mpell_found','',true,{words:self._countWords(inst)}));}else alert(tinyMCE.getLang('lang_spellchecker_no_mpell','',true));self._checkDone(inst);inst.useCSS=false;break;case"suggest":self._buildMenu(el.firstChild?decodeURIComponent(el.firstChild.nodeValue).split('+'):null,10);self._contextMenu.show();break;}},_getWordSeparators:function(){var i,re='',ch=tinyMCE.getParam('spellchecker_word_separator_chars','\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}\u201d\u201c');for(i=0;i<ch.length;i++)re+='\\'+ch.charAt(i);return re;},_getWordList:function(n){var i,x,s,nv='',nl=tinyMCE.getNodeTree(n,[],3),wl=[];var re=TinyMCE_SpellCheckerPlugin._getWordSeparators();for(i=0;i<nl.length;i++){if(!new RegExp('/SCRIPT|STYLE/').test(nl[i].parentNode.nodeName))nv+=nl[i].nodeValue+" ";}nv=nv.replace(new RegExp('([0-9]|['+re+'])','g'),' ');nv=tinyMCE.trim(nv.replace(/(\s+)/g,' '));nl=nv.split(/\s+/);for(i=0;i<nl.length;i++){s=false;for(x=0;x<wl.length;x++){if(wl[x]==nl[i]){s=true;break;}}if(!s&&nl[i].length>0)wl[wl.length]=nl[i];}return wl.join(' ');},_removeWords:function(doc,word,cleanup){var i,c,nl=doc.getElementsByTagName("span");var self=TinyMCE_SpellCheckerPlugin;var inst=tinyMCE.selectedInstance,b=inst?inst.selection.getBookmark():null;word=typeof(word)=='undefined'?null:word;for(i=nl.length-1;i>=0;i--){c=tinyMCE.getAttrib(nl[i],'class');if((c=='mceItemHiddenSpellWord'||c=='mceItemHidden')&&(word==null||nl[i].innerHTML==word))self._removeWord(nl[i]);}if(b&&!cleanup)inst.selection.moveToBookmark(b);},_checkDone:function(inst){var self=TinyMCE_SpellCheckerPlugin;var w=self._countWords(inst);if(w==0){self._removeWords(inst.getDoc());inst.spellcheckerOn=false;tinyMCE.switchClass(inst.editorId+'_spellchecker','mceMenuButton');}},_countWords:function(inst){var i,w=0,nl=inst.getDoc().getElementsByTagName("span"),c;var self=TinyMCE_SpellCheckerPlugin;for(i=nl.length-1;i>=0;i--){c=tinyMCE.getAttrib(nl[i],'class');if(c=='mceItemHiddenSpellWord')w++;}return w;},_removeWord:function(e){if(e!=null)tinyMCE.setOuterHTML(e,e.innerHTML);},_markWords:function(doc,n,wl){var i,nv,nn,nl=tinyMCE.getNodeTree(n,new Array(),3);var r1,r2,r3,r4,r5,w='';var re=TinyMCE_SpellCheckerPlugin._getWordSeparators();for(i=0;i<wl.length;i++){if(wl[i].length>0)w+=wl[i]+((i==wl.length-1)?'':'|');}for(i=0;i<nl.length;i++){nv=nl[i].nodeValue;r1=new RegExp('(['+re+'])('+w+')(['+re+'])','g');r2=new RegExp('^('+w+')','g');r3=new RegExp('('+w+')(['+re+']?)$','g');r4=new RegExp('^('+w+')(['+re+']?)$','g');r5=new RegExp('('+w+')(['+re+'])','g');if(r1.test(nv)||r2.test(nv)||r3.test(nv)||r4.test(nv)){nv=tinyMCE.xmlEncode(nv).replace('&#39;',"'");nv=nv.replace(r5,'<span class="mceItemHiddenSpellWord">$1</span>$2');nv=nv.replace(r3,'<span class="mceItemHiddenSpellWord">$1</span>$2');nn=doc.createElement('span');nn.className="mceItemHidden";nn.innerHTML=nv;nl[i].parentNode.replaceChild(nn,nl[i]);}}},_buildMenu:function(sg,max){var i,self=TinyMCE_SpellCheckerPlugin,cm=self._contextMenu;cm.clear();if(sg!=null){cm.addTitle(tinyMCE.getLang('lang_spellchecker_sug','',true));for(i=0;i<sg.length&&i<max;i++)cm.addItem(sg[i],'tinyMCE.execCommand("mceSpellCheckReplace",false,"'+sg[i]+'");');cm.addSeparator();}else cm.addTitle(tinyMCE.getLang('lang_spellchecker_no_sug','',true));cm.addItem(tinyMCE.getLang('lang_spellchecker_ignore_word','',true),'tinyMCE.execCommand(\'mceSpellCheckIgnore\');');cm.addItem(tinyMCE.getLang('lang_spellchecker_ignore_words','',true),'tinyMCE.execCommand(\'mceSpellCheckIgnoreAll\');');cm.update();},_getAjaxHTTP:function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest();}}},_sendAjax:function(u,f,m,a){var x=TinyMCE_SpellCheckerPlugin._getAjaxHTTP();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseXML,x.responseText);};if(m=='post')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a);}};tinyMCE.addPlugin('spellchecker',TinyMCE_SpellCheckerPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/spellchecker/editor_plugin_src.js b/tinyMCE/plugins/spellchecker/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d53b9e3ffb47d640dcf143ae7cfcc374944b024
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/editor_plugin_src.js
@@ -0,0 +1,630 @@
+/**
+ * $Id: editor_plugin_src.js 289 2007-05-28 09:12:16Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ */
+
+tinyMCE.importPluginLanguagePack('spellchecker', 'en,fr,sv,nn,nb');
+
+// Plucin static class
+var TinyMCE_SpellCheckerPlugin = {
+	_contextMenu : new TinyMCE_Menu(),
+	_menu : new TinyMCE_Menu(),
+	_counter : 0,
+	_ajaxPage : '/tinyspell.php',
+
+	getInfo : function() {
+		return {
+			longname : 'Spellchecker PHP',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',
+			version : "1.0.5"
+		};
+	},
+
+	handleEvent : function(e) {
+		var elm = tinyMCE.isMSIE ? e.srcElement : e.target;
+		var inst = tinyMCE.selectedInstance, args = '';
+		var self = TinyMCE_SpellCheckerPlugin;
+		var cm = self._contextMenu;
+		var p, p2, x, y, sx, sy, h, elm;
+
+		// Handle click on word
+		if ((e.type == "click" || e.type == "contextmenu") && elm) {
+			do {
+				if (tinyMCE.getAttrib(elm, 'class') == "mceItemHiddenSpellWord") {
+					inst.spellCheckerElm = elm;
+
+					// Setup arguments
+					args += 'id=' + inst.editorId + "|" + (++self._counter);
+					args += '&cmd=suggest&check=' + encodeURIComponent(elm.innerHTML);
+					args += '&lang=' + escape(inst.spellCheckerLang);
+
+					elm = inst.spellCheckerElm;
+					p = tinyMCE.getAbsPosition(inst.iframeElement);
+					p2 = tinyMCE.getAbsPosition(elm);
+					h = parseInt(elm.offsetHeight);
+					sx = inst.getBody().scrollLeft;
+					sy = inst.getBody().scrollTop;
+					x = p.absLeft + p2.absLeft - sx;
+					y = p.absTop + p2.absTop - sy + h;
+
+					cm.clear();
+					cm.addTitle(tinyMCE.getLang('lang_spellchecker_wait', '', true));
+					cm.show();
+					cm.moveTo(x, y);
+
+					inst.selection.selectNode(elm, false, false);
+
+					self._sendAjax(self.baseURL + self._ajaxPage, self._ajaxResponse, 'post', args);
+
+					tinyMCE.cancelEvent(e);
+					return false;
+				}
+			} while ((elm = elm.parentNode));
+		}
+
+		return true;
+	},
+
+	initInstance : function(inst) {
+		var self = TinyMCE_SpellCheckerPlugin, m = self._menu, cm = self._contextMenu, e;
+
+		tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/spellchecker/css/content.css");
+
+		if (!tinyMCE.hasMenu('spellcheckercontextmenu')) {
+			tinyMCE.importCSS(document, tinyMCE.baseURL + "/plugins/spellchecker/css/spellchecker.css");
+
+			cm.init({drop_menu : false});
+			tinyMCE.addMenu('spellcheckercontextmenu', cm);
+		}
+
+		if (!tinyMCE.hasMenu('spellcheckermenu')) {
+			m.init({});
+			tinyMCE.addMenu('spellcheckermenu', m);
+		}
+
+        inst.spellCheckerLang = 'en';
+		self._buildSettingsMenu(inst, null);
+
+		e = self._getBlockBoxLayer(inst).create('div', 'mceBlockBox', document.getElementById(inst.editorId + '_parent'));
+		self._getMsgBoxLayer(inst).create('div', 'mceMsgBox', document.getElementById(inst.editorId + '_parent'));
+	},
+
+	_getMsgBoxLayer : function(inst) {
+		if (!inst.spellCheckerMsgBoxL)
+			inst.spellCheckerMsgBoxL = new TinyMCE_Layer(inst.editorId + '_spellcheckerMsgBox', false);
+
+		return inst.spellCheckerMsgBoxL;
+	},
+
+	_getBlockBoxLayer : function(inst) {
+		if (!inst.spellCheckerBoxL)
+			inst.spellCheckerBoxL = new TinyMCE_Layer(inst.editorId + '_spellcheckerBlockBox', false);
+
+		return inst.spellCheckerBoxL;
+	},
+
+	_buildSettingsMenu : function(inst, lang) {
+		var i, ar = tinyMCE.getParam('spellchecker_languages', '+English=en').split(','), p;
+		var self = TinyMCE_SpellCheckerPlugin, m = self._menu, c;
+
+		m.clear();
+		m.addTitle(tinyMCE.getLang('lang_spellchecker_langs', '', true));
+
+		for (i=0; i<ar.length; i++) {
+			if (ar[i] != '') {
+				p = ar[i].split('=');
+				c = 'mceMenuCheckItem';
+
+				if (p[0].charAt(0) == '+') {
+					p[0] = p[0].substring(1);
+
+					if (lang == null) {
+						c = 'mceMenuSelectedItem';
+						inst.spellCheckerLang = p[1];
+					}
+				}
+
+				if (lang == p[1])
+					c = 'mceMenuSelectedItem';
+
+				m.add({text : p[0], js : "tinyMCE.execInstanceCommand('" + inst.editorId + "','mceSpellCheckerSetLang',false,'" + p[1] + "');", class_name : c});
+			}
+		}
+	},
+
+	setupContent : function(editor_id, body, doc) {
+		TinyMCE_SpellCheckerPlugin._removeWords(doc, null, true);
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "spellchecker":
+				return TinyMCE_SpellCheckerPlugin._getMenuButtonHTML(cn, 'lang_spellchecker_desc', '{$pluginurl}/images/spellchecker.gif', 'lang_spellchecker_desc', 'mceSpellCheckerMenu', 'mceSpellCheck');
+		}
+
+		return "";
+	},
+
+	/**
+	 * Returns the HTML code for a normal button control.
+	 *
+	 * @param {string} id Button control id, this will be the suffix for the element id, the prefix is the editor id.
+	 * @param {string} lang Language variable key name to insert as the title/alt of the button image.
+	 * @param {string} img Image URL to insert, {$themeurl} and {$pluginurl} will be replaced.
+	 * @param {string} mlang Language variable key name to insert as the title/alt of the menu button image.
+	 * @param {string} mid Menu by id to display when the menu button is pressed.
+	 * @param {string} cmd Command to execute when the user clicks the button.
+	 * @param {string} ui Optional user interface boolean for command.
+	 * @param {string} val Optional value for command.
+	 * @return HTML code for a normal button based in input information.
+	 * @type string
+	 */
+	_getMenuButtonHTML : function(id, lang, img, mlang, mid, cmd, ui, val) {
+		var h = '', m, x;
+
+		cmd = 'tinyMCE.hideMenus();tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + '\'';
+
+		if (typeof(ui) != "undefined" && ui != null)
+			cmd += ',' + ui;
+
+		if (typeof(val) != "undefined" && val != null)
+			cmd += ",'" + val + "'";
+
+		cmd += ');';
+
+		// Use tilemaps when enabled and found and never in MSIE since it loads the tile each time from cache if cahce is disabled
+		if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isMSIE || tinyMCE.isOpera) && (m = tinyMCE.buttonMap[id]) != null && (tinyMCE.getParam("language") == "en" || img.indexOf('$lang') == -1)) {
+			// Tiled button
+			x = 0 - (m * 20) == 0 ? '0' : 0 - (m * 20);
+			h += '<a id="{$editor_id}_' + id + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" class="mceTiledButton mceButtonNormal" target="_self">';
+			h += '<img src="{$themeurl}/images/spacer.gif" style="background-position: ' + x + 'px 0" title="{$' + lang + '}" />';
+			h += '<img src="{$themeurl}/images/button_menu.gif" title="{$' + lang + '}" class="mceMenuButton" onclick="' + mcmd + 'return false;" />';
+			h += '</a>';
+		} else {
+			if (tinyMCE.isMSIE && !tinyMCE.isOpera)
+				h += '<span id="{$editor_id}_' + id + '" class="mceMenuButton" onmouseover="tinyMCE.plugins.spellchecker._menuButtonEvent(\'over\',this);" onmouseout="tinyMCE.plugins.spellchecker._menuButtonEvent(\'out\',this);">';
+			else
+				h += '<span id="{$editor_id}_' + id + '" class="mceMenuButton">';
+
+			h += '<a href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" class="mceMenuButtonNormal" target="_self">';
+			h += '<img src="' + img + '" title="{$' + lang + '}" /></a>';
+			h += '<a href="#" onclick="tinyMCE.plugins.spellchecker._toggleMenu(\'{$editor_id}\',\'' + mid + '\');return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$' + lang + '}" class="mceMenuButton" />';
+			h += '</a></span>';
+		}
+
+		return h;
+	},
+
+	_menuButtonEvent : function(e, o) {
+		var t = this;
+
+		// Give IE some time since it's buggy!! :(
+		window.setTimeout(function() {
+			t._menuButtonEvent2(e, o);
+		}, 1);
+	},
+
+	_menuButtonEvent2 : function(e, o) {
+		if (o.className == 'mceMenuButtonFocus')
+			return;
+
+		if (e == 'over')
+			o.className = o.className + ' mceMenuHover';
+		else
+			o.className = o.className.replace(/\s.*$/, '');
+	},
+
+	_toggleMenu : function(editor_id, id) {
+		var self = TinyMCE_SpellCheckerPlugin;
+		var e = document.getElementById(editor_id + '_spellchecker');
+		var inst = tinyMCE.getInstanceById(editor_id);
+
+		if (self._menu.isVisible()) {
+			tinyMCE.hideMenus();
+			return;
+		}
+
+		tinyMCE.lastMenuBtnClass = e.className.replace(/\s.*$/, '');
+		tinyMCE.switchClass(editor_id + '_spellchecker', 'mceMenuButtonFocus');
+
+		self._menu.moveRelativeTo(e, 'bl');
+		self._menu.moveBy(tinyMCE.isMSIE && !tinyMCE.isOpera ? 0 : 1, -1);
+
+		if (tinyMCE.isOpera)
+			self._menu.moveBy(0, -2);
+
+        self._onMenuEvent(inst, self._menu, 'show');
+
+		self._menu.show();
+
+		tinyMCE.lastSelectedMenuBtn = editor_id + '_spellchecker';
+	},
+
+	_onMenuEvent : function(inst, m, n) {
+		TinyMCE_SpellCheckerPlugin._buildSettingsMenu(inst, inst.spellCheckerLang);
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		var inst = tinyMCE.getInstanceById(editor_id), self = TinyMCE_SpellCheckerPlugin, args = '', co, bb, mb, nl, i, e, mbs;
+
+		// Handle commands
+		switch (command) {
+			case "mceSpellCheck":
+				if (!inst.spellcheckerOn) {
+					inst.spellCheckerBookmark = inst.selection.getBookmark();
+
+					// Fix for IE bug: #1610184
+					if (tinyMCE.isRealIE)
+						tinyMCE.setInnerHTML(inst.getBody(), inst.getBody().innerHTML);
+
+					// Setup arguments
+					args += 'id=' + inst.editorId + "|" + (++self._counter);
+					args += '&cmd=spell&check=' + encodeURIComponent(self._getWordList(inst.getBody())).replace(/\'/g, '%27');
+					args += '&lang=' + escape(inst.spellCheckerLang);
+
+					co = document.getElementById(inst.editorId + '_parent').firstChild;
+					bb = self._getBlockBoxLayer(inst);
+					bb.moveRelativeTo(co, 'tl');
+					bb.resizeTo(co.offsetWidth, co.offsetHeight);
+					bb.show();
+
+					// Setup message box
+					mb = self._getMsgBoxLayer(inst);
+					e = mb.getElement();
+
+					if (e.childNodes[0])
+						e.removeChild(e.childNodes[0]);
+
+					mbs = document.createElement("span");
+					mbs.innerHTML = '<span>' + tinyMCE.getLang('lang_spellchecker_swait', '', true) + '</span>';
+					e.appendChild(mbs);
+
+					mb.show();
+					mb.moveRelativeTo(co, 'cc');
+
+					if (tinyMCE.isMSIE && !tinyMCE.isOpera) {
+						nl = co.getElementsByTagName('select');
+						for (i=0; i<nl.length; i++)
+							nl[i].disabled = true;
+					}
+
+					inst.spellcheckerOn = true;
+					tinyMCE.switchClass(editor_id + '_spellchecker', 'mceMenuButtonSelected');
+
+					self._sendAjax(self.baseURL + self._ajaxPage, self._ajaxResponse, 'post', args);
+				} else {
+					self._removeWords(inst.getDoc());
+					inst.spellcheckerOn = false;
+					tinyMCE.switchClass(editor_id + '_spellchecker', 'mceMenuButton');
+				}
+
+				return true;
+
+			case "mceSpellCheckReplace":
+				if (inst.spellCheckerElm)
+					tinyMCE.setOuterHTML(inst.spellCheckerElm, value);
+
+				self._checkDone(inst);
+				self._contextMenu.hide();
+				self._menu.hide();
+
+				return true;
+
+			case "mceSpellCheckIgnore":
+				if (inst.spellCheckerElm)
+					self._removeWord(inst.spellCheckerElm);
+
+				self._checkDone(inst);
+				self._contextMenu.hide();
+				self._menu.hide();
+				return true;
+
+			case "mceSpellCheckIgnoreAll":
+				if (inst.spellCheckerElm)
+					self._removeWords(inst.getDoc(), inst.spellCheckerElm.innerHTML);
+
+				self._checkDone(inst);
+				self._contextMenu.hide();
+				self._menu.hide();
+				return true;
+
+			case "mceSpellCheckerSetLang":
+				tinyMCE.hideMenus();
+				inst.spellCheckerLang = value;
+				self._removeWords(inst.getDoc());
+				inst.spellcheckerOn = false;
+				tinyMCE.switchClass(editor_id + '_spellchecker', 'mceMenuButton');
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	},
+
+	cleanup : function(type, content, inst) {
+		switch (type) {
+			case "get_from_editor_dom":
+				TinyMCE_SpellCheckerPlugin._removeWords(content, null, true);
+				inst.spellcheckerOn = false;
+				break;
+		}
+
+		return content;
+	},
+
+	// Private plugin specific methods
+
+	_displayUI : function(inst) {
+		var self = TinyMCE_SpellCheckerPlugin;
+		var bb = self._getBlockBoxLayer(inst);
+		var mb = self._getMsgBoxLayer(inst);
+		var nl, i;
+		var co = document.getElementById(inst.editorId + '_parent').firstChild;
+
+		if (tinyMCE.isMSIE && !tinyMCE.isOpera) {
+			nl = co.getElementsByTagName('select');
+			for (i=0; i<nl.length; i++)
+				nl[i].disabled = false;
+		}
+
+		bb.hide();
+
+		// Boom, crash in FF if focus isn't else were
+		// el.style.display='none' on a opacity element seems to crash it
+		mb.hide();
+	},
+
+	_ajaxResponse : function(xml, text) {
+		var el = xml ? xml.documentElement : null;
+		var inst = tinyMCE.selectedInstance, self = TinyMCE_SpellCheckerPlugin;
+		var cmd = el ? el.getAttribute("cmd") : null, err, id = el ? el.getAttribute("id") : null;
+
+		if (id)
+			inst = tinyMCE.getInstanceById(id.substring(0, id.indexOf('|')));
+
+		// Workaround for crash in Gecko
+		if (tinyMCE.isGecko)
+			window.focus();
+
+		self._displayUI(inst);
+
+		// Restore the selection again
+		if (tinyMCE.isGecko) {
+			inst.getWin().focus();
+			inst.selection.moveToBookmark(inst.spellCheckerBookmark);
+		}
+
+		// Ignore suggestions for other ajax responses
+		if (cmd == "suggest" && id != inst.editorId + "|" + self._counter)
+			return;
+
+		if (!el) {
+			text = '' + text;
+
+			if (text.length > 500)
+				text = text.substring(500);
+
+			inst.spellcheckerOn = false;
+			tinyMCE.switchClass(inst.editorId + '_spellchecker', 'mceMenuButton');
+			alert("Could not execute AJAX call, server didn't return valid a XML.\nResponse: " + text);
+			return;
+		}
+
+		err = el.getAttribute("error");
+
+		if (err == "true") {
+			inst.spellcheckerOn = false;
+			tinyMCE.switchClass(inst.editorId + '_spellchecker', 'mceMenuButton');
+			alert(el.getAttribute("msg"));
+			return;
+		}
+
+		switch (cmd) {
+			case "spell":
+				if (xml.documentElement.firstChild) {
+					self._markWords(inst.getDoc(), inst.getBody(), decodeURIComponent(el.firstChild.nodeValue).split('+'));
+					inst.selection.moveToBookmark(inst.spellCheckerBookmark);
+
+					if(tinyMCE.getParam('spellchecker_report_misspellings', false))
+						alert(tinyMCE.getLang('lang_spellchecker_mpell_found', '', true, {words : self._countWords(inst)}));
+				} else
+					alert(tinyMCE.getLang('lang_spellchecker_no_mpell', '', true));
+
+				self._checkDone(inst);
+
+				// Odd stuff FF removed useCSS, disable state for it
+				inst.useCSS = false;
+
+				break;
+
+			case "suggest":
+				self._buildMenu(el.firstChild ? decodeURIComponent(el.firstChild.nodeValue).split('+') : null, 10);
+				self._contextMenu.show();
+				break;
+		}
+	},
+
+	_getWordSeparators : function() {
+		var i, re = '', ch = tinyMCE.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');
+
+		for (i=0; i<ch.length; i++)
+			re += '\\' + ch.charAt(i);
+
+		return re;
+	},
+
+	_getWordList : function(n) {
+		var i, x, s, nv = '', nl = tinyMCE.getNodeTree(n, [], 3), wl = [];
+		var re = TinyMCE_SpellCheckerPlugin._getWordSeparators();
+
+		for (i=0; i<nl.length; i++) {
+			if (!new RegExp('/SCRIPT|STYLE/').test(nl[i].parentNode.nodeName))
+				nv += nl[i].nodeValue + " ";
+		}
+
+		nv = nv.replace(new RegExp('([0-9]|[' + re + '])', 'g'), ' ');
+		nv = tinyMCE.trim(nv.replace(/(\s+)/g, ' '));
+
+		nl = nv.split(/\s+/);
+		for (i=0; i<nl.length; i++) {
+			s = false;
+			for (x=0; x<wl.length; x++) {
+				if (wl[x] == nl[i]) {
+					s = true;
+					break;
+				}
+			}
+
+			if (!s && nl[i].length > 0)
+				wl[wl.length] = nl[i];
+		}
+
+		return wl.join(' ');
+	},
+
+	_removeWords : function(doc, word, cleanup) {
+		var i, c, nl = doc.getElementsByTagName("span");
+		var self = TinyMCE_SpellCheckerPlugin;
+		var inst = tinyMCE.selectedInstance, b = inst ? inst.selection.getBookmark() : null;
+
+		word = typeof(word) == 'undefined' ? null : word;
+
+		for (i=nl.length-1; i>=0; i--) {
+			c = tinyMCE.getAttrib(nl[i], 'class');
+
+			if ((c == 'mceItemHiddenSpellWord' || c == 'mceItemHidden') && (word == null || nl[i].innerHTML == word))
+				self._removeWord(nl[i]);
+		}
+
+		if (b && !cleanup)
+			inst.selection.moveToBookmark(b);
+	},
+
+	_checkDone : function(inst) {
+		var self = TinyMCE_SpellCheckerPlugin;
+		var w = self._countWords(inst);
+
+		if (w == 0) {
+			self._removeWords(inst.getDoc());
+			inst.spellcheckerOn = false;
+			tinyMCE.switchClass(inst.editorId + '_spellchecker', 'mceMenuButton');
+		}
+	},
+
+	_countWords : function(inst) {
+		var i, w = 0, nl = inst.getDoc().getElementsByTagName("span"), c;
+		var self = TinyMCE_SpellCheckerPlugin;
+
+		for (i=nl.length-1; i>=0; i--) {
+			c = tinyMCE.getAttrib(nl[i], 'class');
+
+			if (c == 'mceItemHiddenSpellWord')
+				w++;
+		}
+
+		return w;
+	},
+
+	_removeWord : function(e) {
+		if (e != null)
+			tinyMCE.setOuterHTML(e, e.innerHTML);
+	},
+
+	_markWords : function(doc, n, wl) {
+		var i, nv, nn, nl = tinyMCE.getNodeTree(n, new Array(), 3);
+		var r1, r2, r3, r4, r5, w = '';
+		var re = TinyMCE_SpellCheckerPlugin._getWordSeparators();
+
+		for (i=0; i<wl.length; i++) {
+			if (wl[i].length > 0)
+				w += wl[i] + ((i == wl.length-1) ? '' : '|');
+		}
+
+		for (i=0; i<nl.length; i++) {
+			nv = nl[i].nodeValue;
+
+			r1 = new RegExp('([' + re + '])(' + w + ')([' + re + '])', 'g');
+			r2 = new RegExp('^(' + w + ')', 'g');
+			r3 = new RegExp('(' + w + ')([' + re + ']?)$', 'g');
+			r4 = new RegExp('^(' + w + ')([' + re + ']?)$', 'g');
+			r5 = new RegExp('(' + w + ')([' + re + '])', 'g');
+
+			if (r1.test(nv) || r2.test(nv) || r3.test(nv) || r4.test(nv)) {
+				nv = tinyMCE.xmlEncode(nv).replace('&#39;', "'");
+				nv = nv.replace(r5, '<span class="mceItemHiddenSpellWord">$1</span>$2');
+				nv = nv.replace(r3, '<span class="mceItemHiddenSpellWord">$1</span>$2');
+
+				nn = doc.createElement('span');
+				nn.className = "mceItemHidden";
+				nn.innerHTML = nv;
+
+				// Remove old text node
+				nl[i].parentNode.replaceChild(nn, nl[i]);
+			}
+		}
+	},
+
+	_buildMenu : function(sg, max) {
+		var i, self = TinyMCE_SpellCheckerPlugin, cm = self._contextMenu;
+
+		cm.clear();
+
+		if (sg != null) {
+			cm.addTitle(tinyMCE.getLang('lang_spellchecker_sug', '', true));
+
+			for (i=0; i<sg.length && i<max; i++)
+				cm.addItem(sg[i], 'tinyMCE.execCommand("mceSpellCheckReplace",false,"' + sg[i] + '");');
+
+			cm.addSeparator();
+		} else
+			cm.addTitle(tinyMCE.getLang('lang_spellchecker_no_sug', '', true));
+
+		cm.addItem(tinyMCE.getLang('lang_spellchecker_ignore_word', '', true), 'tinyMCE.execCommand(\'mceSpellCheckIgnore\');');
+		cm.addItem(tinyMCE.getLang('lang_spellchecker_ignore_words', '', true), 'tinyMCE.execCommand(\'mceSpellCheckIgnoreAll\');');
+
+		cm.update();
+	},
+
+	_getAjaxHTTP : function() {
+		try {
+			return new ActiveXObject('Msxml2.XMLHTTP')
+		} catch (e) {
+			try {
+				return new ActiveXObject('Microsoft.XMLHTTP')
+			} catch (e) {
+				return new XMLHttpRequest();
+			}
+		}
+	},
+
+	/**
+	 * Perform AJAX call.
+	 *
+	 * @param {string} u URL of AJAX service.
+	 * @param {function} f Function to call when response arrives.
+	 * @param {string} m Request method post or get.
+	 * @param {Array} a Array with arguments to send.
+	 */
+	_sendAjax : function(u, f, m, a) {
+		var x = TinyMCE_SpellCheckerPlugin._getAjaxHTTP();
+
+		x.open(m, u, true);
+
+		x.onreadystatechange = function() {
+			if (x.readyState == 4)
+				f(x.responseXML, x.responseText);
+		};
+
+		if (m == 'post')
+			x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
+
+		x.send(a);
+	}
+};
+
+// Register plugin
+tinyMCE.addPlugin('spellchecker', TinyMCE_SpellCheckerPlugin);
diff --git a/tinyMCE/plugins/spellchecker/images/spellchecker.gif b/tinyMCE/plugins/spellchecker/images/spellchecker.gif
new file mode 100644
index 0000000000000000000000000000000000000000..294a9d2ef53a459ed38f2ec884795e1e01cf14a7
Binary files /dev/null and b/tinyMCE/plugins/spellchecker/images/spellchecker.gif differ
diff --git a/tinyMCE/plugins/spellchecker/images/wline.gif b/tinyMCE/plugins/spellchecker/images/wline.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7d0a4dbca03cc13177a359a5f175dda819fdf464
Binary files /dev/null and b/tinyMCE/plugins/spellchecker/images/wline.gif differ
diff --git a/tinyMCE/plugins/spellchecker/langs/ca.js b/tinyMCE/plugins/spellchecker/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ca.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/cs.js b/tinyMCE/plugins/spellchecker/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/cs.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/cy.js b/tinyMCE/plugins/spellchecker/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/cy.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/da.js b/tinyMCE/plugins/spellchecker/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..11a0900ae5608d5b122eb9cadfdedb31ff1eb090
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/da.js
@@ -0,0 +1,14 @@
+// DK lang variables - Transl.:John Dalsgaard, Bo Frederiksen - Corr.:
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Stavekontrol til/fra',
+	menu : 'Stavekontrol indstillinger',
+	ignore_word : 'Ignorer ord',
+	ignore_words : 'Ignorer alle',
+	langs : 'Sprog',
+	wait : 'Vent et &oslash;jeblik...',
+	swait : 'Udf&oslash;rer stavekontrol, vent et &oslash;jeblik...',
+	sug : 'Forslag',
+	no_sug : 'Ingen forslag',
+	no_mpell : 'Ingen stavefejl fundet.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/de.js b/tinyMCE/plugins/spellchecker/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..c730d5869e0705a5220adf2b2758854b4e795d16
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/de.js
@@ -0,0 +1,14 @@
+// DE lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Rechtschreibprüfung ein-/ausschalten',
+	menu : 'Einstellungen der Rechtschreibprüfung',
+	ignore_word : 'Wort ingorieren',
+	ignore_words : 'Alle ignorieren',
+	langs : 'Sprachen',
+	wait : 'Bitte warten...',
+	swait : 'Rechtschreibprüfung, bitte warten...',
+	sug : 'Vorschläge',
+	no_sug : 'Keine Vorschläge',
+	no_mpell : 'Keinen Rechtschreibfehler gefunden.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/el.js b/tinyMCE/plugins/spellchecker/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..46704a62cb8daa309f9e4678337f04a9238e0035
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/el.js
@@ -0,0 +1,14 @@
+// Initial translation by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'ÁíôéóôñïöÞ ïñèïãñáöéóôÞ',
+	menu : 'Ñõèìßóåéò ïñèïãñáöéóôÞ',
+	ignore_word : 'Áãíüçóå ôç ëÝîç',
+	ignore_words : 'ÁãíüçóÝ ôåò üëåò',
+	langs : 'Ãëþóóåò',
+	wait : 'Ðáñáêáëþ ðåñéìÝíåôå...',
+	swait : 'Åëåã÷ïò ïñèïãñáößáò, ðáñáêáëþ ðåñéìÝíåôå...',
+	sug : 'ÐñïôÜóåéò',
+	no_sug : 'Êáìßá ðñüôáóç',
+	no_mpell : 'ÊáíÝíá ëÜèïò.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/en.js b/tinyMCE/plugins/spellchecker/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..02fdac564d8027d3b0decbadb5c264036951a592
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/en.js
@@ -0,0 +1,15 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.',
+	mpell_found : 'Found {$words} misspellings.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/es.js b/tinyMCE/plugins/spellchecker/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/es.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/fa.js b/tinyMCE/plugins/spellchecker/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/fa.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/fi.js b/tinyMCE/plugins/spellchecker/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/fi.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/fr.js b/tinyMCE/plugins/spellchecker/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..c8323a8a088a695d9932760494676aa37d34361a
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/fr.js
@@ -0,0 +1,16 @@
+// FR lang variables
+// Modified by shadow walker, last updated 2007-03-16, based on the work of Motte
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Correcteur orthographique',
+	menu : 'Options du correcteur',
+	ignore_word : 'Ignorer le mot',
+	ignore_words : 'Tout ignorer',
+	langs : 'Langues',
+	wait : 'Veuillez patienter...',
+	swait : 'Contr&ocirc;le de l\'orthographe, veuillez patienter...',
+	sug : 'Suggestions',
+	no_sug : 'Pas de suggestions',
+	no_mpell : 'Aucune erreur d&eacute;tect&eacute;.',
+	mpell_found : 'Trouver {$words} erreur(s).'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/fr_ca.js b/tinyMCE/plugins/spellchecker/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/fr_ca.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/he.js b/tinyMCE/plugins/spellchecker/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/he.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/hu.js b/tinyMCE/plugins/spellchecker/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/hu.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/is.js b/tinyMCE/plugins/spellchecker/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/is.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/it.js b/tinyMCE/plugins/spellchecker/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..1475b42a2349e8f9a480e18a3599ecc28b91318e
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/it.js
@@ -0,0 +1,20 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Oct. 17th, 2006
+ * TinyMCE Version : 2.0.7
+ */
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Abilita o disabilita il correttore ortografico',
+	menu : 'Impostazioni del correttore ortografico',
+	ignore_word : 'Ignora parola',
+	ignore_words : 'Ignora tutto',
+	langs : 'Lingue',
+	wait : 'Attendere...',
+	swait : 'Controllo in corso, attendere...',
+	sug : 'Suggerimenti',
+	no_sug : 'Nessun suggerimento',
+	no_mpell : 'Nessun errore trovato.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/ja.js b/tinyMCE/plugins/spellchecker/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ja.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/ja_euc-jp.js b/tinyMCE/plugins/spellchecker/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ja_euc-jp.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/ja_shift_jis.js b/tinyMCE/plugins/spellchecker/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ja_shift_jis.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/ja_utf-8.js b/tinyMCE/plugins/spellchecker/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ja_utf-8.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/ko.js b/tinyMCE/plugins/spellchecker/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ko.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/nb.js b/tinyMCE/plugins/spellchecker/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f009c6cb2b8441c7db2880f773ca1f0b00cabc3
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/nb.js
@@ -0,0 +1,17 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Stavekontroll',
+	menu : 'Oppsett stavekontroll',
+	ignore_word : 'Ignorer ordet',
+	ignore_words : 'Ignorer alt',
+	langs : 'Spr&aring;k',
+	wait : 'Vennligst vent...',
+	swait : 'Stavekontroll p&aring;g&aring;r, vennligst vent...',
+	sug : 'Forslag',
+	no_sug : 'Ingen forslag',
+	no_mpell : 'Ingen stavefeil funnet.'
+});
+
+
+
diff --git a/tinyMCE/plugins/spellchecker/langs/nl.js b/tinyMCE/plugins/spellchecker/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..03d5e218dc2ada924a2cbdf0b02325f92d350133
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/nl.js
@@ -0,0 +1,14 @@
+// NL lang variables

+

+tinyMCE.addToLang('spellchecker',{

+	desc : 'Spelling checker aan/uit',

+	menu : 'Spelling checker instellingen',

+	ignore_word : 'Negeer woord',

+	ignore_words : 'Negeer alles',

+	langs : 'Talen',

+	wait : 'Moment...',

+	swait : 'bezig met controleren, moment...',

+	sug : 'Suggesties',

+	no_sug : 'Geen suggesties',

+	no_mpell : 'Geen spelfouten gevonden.'

+});

diff --git a/tinyMCE/plugins/spellchecker/langs/nn.js b/tinyMCE/plugins/spellchecker/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..76904135ef2decc881d3ee794d68b78d69831917
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/nn.js
@@ -0,0 +1,17 @@
+// nb = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Stavekontroll',
+	menu : 'Oppsett stavekontroll',
+	ignore_word : 'Ignorer ordet',
+	ignore_words : 'Ignorer alt',
+	langs : 'Spr&aring;k',
+	wait : 'Vennligst vent...',
+	swait : 'Stavekontroll p&aring;g&aring;r, vennligst vent...',
+	sug : 'Forslag',
+	no_sug : 'Ingen forslag',
+	no_mpell : 'Ingen stavefeil funnet.'
+});
+
+
+
diff --git a/tinyMCE/plugins/spellchecker/langs/pl.js b/tinyMCE/plugins/spellchecker/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/pl.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/pt_br.js b/tinyMCE/plugins/spellchecker/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e55c63419597f261f69e0d4d69017d4ecd887dd
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/pt_br.js
@@ -0,0 +1,21 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Verificação ortográfica',
+	menu : 'Configuração do verif. ortográfico',
+	ignore_word : 'Ignorar palavra',
+	ignore_words : 'Ignorar todas',
+	langs : 'Idiomas',
+	wait : 'Por favor, aguarde...',
+	swait : 'Verificando ortografia, aguarde...',
+	sug : 'Sugestões',
+	no_sug : 'Sem sugestões',
+	no_mpell : 'Nenhum erro ortográfico encontrado.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/ro.js b/tinyMCE/plugins/spellchecker/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..69e5e9bebb0b696bf81fcb98818c669bb78e07e1
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ro.js
@@ -0,0 +1,14 @@
+// RO lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Comut&#259; verificatorul ortografic',
+	menu : 'Set&#259;ri verificator ortograific',
+	ignore_word : 'Ignor&#259; cuv&#226;ntul',
+	ignore_words : 'Ignor&#259; tot',
+	langs : 'Limbi',
+	wait : 'Te rog a&#351;teapt&#259;...',
+	swait : 'Verificare &#238;n curs. Te rog a&#351;teapt&#259;...',
+	sug : 'Sugestii',
+	no_sug : 'Nici o sugestie',
+	no_mpell : 'Nu am g&#259;sit gre&#259;eli de ortografie.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/ru.js b/tinyMCE/plugins/spellchecker/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..a5799f3fea04630c1f07b83e33ba8302b9267cb0
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ru.js
@@ -0,0 +1,15 @@
+// RU lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Вкл / Выкл проверку правописания',
+	menu : 'Свойства проверки правописания',
+	ignore_word : 'Игнорировать слово',
+	ignore_words : 'Игнорировать все',
+	langs : 'Языки',
+	wait : 'Пожалуйста подождите...',
+	swait : 'Проверка правописания, пожалуйста подождите...',
+	sug : 'Варианты',
+	no_sug : 'Нет вариантов',
+	no_mpell : 'Ошибок не найдено.',
+        mpell_found : 'Найдено ошибок: {$words}'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/ru_CP1251.js b/tinyMCE/plugins/spellchecker/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..bdb00152f8fa67d2edffac6f3332b5b0ebf7c557
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ru_CP1251.js
@@ -0,0 +1,15 @@
+// RU lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Âêë / Âûêë ïðîâåðêó ïðàâîïèñàíèÿ',
+	menu : 'Ñâîéñòâà ïðîâåðêè ïðàâîïèñàíèÿ',
+	ignore_word : 'Èãíîðèðîâàòü ñëîâî',
+	ignore_words : 'Èãíîðèðîâàòü âñå',
+	langs : 'ßçûêè',
+	wait : 'Ïîæàëóéñòà ïîäîæäèòå...',
+	swait : 'Ïðîâåðêà ïðàâîïèñàíèÿ, ïîæàëóéñòà ïîäîæäèòå...',
+	sug : 'Âàðèàíòû',
+	no_sug : 'Íåò âàðèàíòîâ',
+	no_mpell : 'Îøèáîê íå íàéäåíî.',
+        mpell_found : 'Íàéäåíî îøèáîê: {$words}'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/ru_KOI8-R.js b/tinyMCE/plugins/spellchecker/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..a67a05fc210397a80574fc8e1e6e2b8860b677d1
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/ru_KOI8-R.js
@@ -0,0 +1,15 @@
+// RU lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : '÷ËÌ / ÷ÙËÌ ÐÒÏ×ÅÒËÕ ÐÒÁ×ÏÐÉÓÁÎÉÑ',
+	menu : 'ó×ÏÊÓÔ×Á ÐÒÏ×ÅÒËÉ ÐÒÁ×ÏÐÉÓÁÎÉÑ',
+	ignore_word : 'éÇÎÏÒÉÒÏ×ÁÔØ ÓÌÏ×Ï',
+	ignore_words : 'éÇÎÏÒÉÒÏ×ÁÔØ ×ÓÅ',
+	langs : 'ñÚÙËÉ',
+	wait : 'ðÏÖÁÌÕÊÓÔÁ ÐÏÄÏÖÄÉÔÅ...',
+	swait : 'ðÒÏ×ÅÒËÁ ÐÒÁ×ÏÐÉÓÁÎÉÑ, ÐÏÖÁÌÕÊÓÔÁ ÐÏÄÏÖÄÉÔÅ...',
+	sug : '÷ÁÒÉÁÎÔÙ',
+	no_sug : 'îÅÔ ×ÁÒÉÁÎÔÏ×',
+	no_mpell : 'ïÛÉÂÏË ÎÅ ÎÁÊÄÅÎÏ.',
+        mpell_found : 'îÁÊÄÅÎÏ ÏÛÉÂÏË: {$words}'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/si.js b/tinyMCE/plugins/spellchecker/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/si.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/sk.js b/tinyMCE/plugins/spellchecker/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/sk.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/sq.js b/tinyMCE/plugins/spellchecker/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/sq.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/sr.js b/tinyMCE/plugins/spellchecker/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/sr.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/sv.js b/tinyMCE/plugins/spellchecker/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..dbc16acbcaf28b61765196f7c8d9db1f92d93efc
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/sv.js
@@ -0,0 +1,14 @@
+// SV lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Sl&aring; av/p&aring; r&auml;ttstavning',
+	menu : 'R&auml;ttstavnings inst&auml;llningar',
+	ignore_word : 'Ignorera ord',
+	ignore_words : 'Ignorera alla',
+	langs : 'Spr&aring;k',
+	wait : 'Vad god v&auml;nta...',
+	swait : 'Stavningskontroll utf&ouml;rs, vad god v&auml;nta...',
+	sug : 'F&ouml;rslag',
+	no_sug : 'Inga f&ouml;rslag',
+	no_mpell : 'Inga felstavningar kunde hittas.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/sv_utf8.js b/tinyMCE/plugins/spellchecker/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..dbc16acbcaf28b61765196f7c8d9db1f92d93efc
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/sv_utf8.js
@@ -0,0 +1,14 @@
+// SV lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Sl&aring; av/p&aring; r&auml;ttstavning',
+	menu : 'R&auml;ttstavnings inst&auml;llningar',
+	ignore_word : 'Ignorera ord',
+	ignore_words : 'Ignorera alla',
+	langs : 'Spr&aring;k',
+	wait : 'Vad god v&auml;nta...',
+	swait : 'Stavningskontroll utf&ouml;rs, vad god v&auml;nta...',
+	sug : 'F&ouml;rslag',
+	no_sug : 'Inga f&ouml;rslag',
+	no_mpell : 'Inga felstavningar kunde hittas.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/tr.js b/tinyMCE/plugins/spellchecker/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/tr.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/uk.js b/tinyMCE/plugins/spellchecker/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..1348a5a3aa17f63e9ad2ee308243dcb4bb3fda2c
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/uk.js
@@ -0,0 +1,15 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Вкл / Відкл перевірку правопису',
+	menu : 'Властивості перевірки правопису',
+	ignore_word : 'Ігнорувати слово',
+	ignore_words : 'Ігнорувати все',
+	langs : 'Мови',
+	wait : 'Будь ласка зачекайте...',
+	swait : 'Перевірка правопису, будь ласка зачекайте...',
+	sug : 'Варіанти',
+	no_sug : 'Нема варіантів',
+	no_mpell : 'Помилок не знайдено.',
+        mpell_found : 'Знайдено помилок: {$words}'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/uk_CP1251.js b/tinyMCE/plugins/spellchecker/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..e083a98364699618c9095f98f4fca352fdd82dca
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/uk_CP1251.js
@@ -0,0 +1,15 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Âêë / ³äêë ïåðåâ³ðêó ïðàâîïèñó',
+	menu : 'Âëàñòèâîñò³ ïåðåâ³ðêè ïðàâîïèñó',
+	ignore_word : '²ãíîðóâàòè ñëîâî',
+	ignore_words : '²ãíîðóâàòè âñå',
+	langs : 'Ìîâè',
+	wait : 'Áóäü ëàñêà çà÷åêàéòå...',
+	swait : 'Ïåðåâ³ðêà ïðàâîïèñó, áóäü ëàñêà çà÷åêàéòå...',
+	sug : 'Âàð³àíòè',
+	no_sug : 'Íåìà âàð³àíò³â',
+	no_mpell : 'Ïîìèëîê íå çíàéäåíî.',
+        mpell_found : 'Çíàéäåíî ïîìèëîê: {$words}'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/uk_KOI8-U.js b/tinyMCE/plugins/spellchecker/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..caaa0f9536290c202c33a75620b1b5e6167eeaf8
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/uk_KOI8-U.js
@@ -0,0 +1,15 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : '÷ËÌ / ÷¦ÄËÌ ÐÅÒÅצÒËÕ ÐÒÁ×ÏÐÉÓÕ',
+	menu : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÐÅÒÅצÒËÉ ÐÒÁ×ÏÐÉÓÕ',
+	ignore_word : '¶ÇÎÏÒÕ×ÁÔÉ ÓÌÏ×Ï',
+	ignore_words : '¶ÇÎÏÒÕ×ÁÔÉ ×ÓÅ',
+	langs : 'íÏ×É',
+	wait : 'âÕÄØ ÌÁÓËÁ ÚÁÞÅËÁÊÔÅ...',
+	swait : 'ðÅÒÅצÒËÁ ÐÒÁ×ÏÐÉÓÕ, ÂÕÄØ ÌÁÓËÁ ÚÁÞÅËÁÊÔÅ...',
+	sug : '÷ÁÒ¦ÁÎÔÉ',
+	no_sug : 'îÅÍÁ ×ÁÒ¦ÁÎÔ¦×',
+	no_mpell : 'ðÏÍÉÌÏË ÎÅ ÚÎÁÊÄÅÎÏ.',
+        mpell_found : 'úÎÁÊÄÅÎÏ ÐÏÍÉÌÏË: {$words}'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/vi.js b/tinyMCE/plugins/spellchecker/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/vi.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/zh_cn.js b/tinyMCE/plugins/spellchecker/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/zh_cn.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/zh_cn_utf8.js b/tinyMCE/plugins/spellchecker/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/zh_cn_utf8.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/zh_tw.js b/tinyMCE/plugins/spellchecker/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/zh_tw.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/langs/zh_tw_utf8.js b/tinyMCE/plugins/spellchecker/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..f40b202f8da995628846facc8d596e97f92fd7d9
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/langs/zh_tw_utf8.js
@@ -0,0 +1,14 @@
+// UK lang variables
+
+tinyMCE.addToLang('spellchecker',{
+	desc : 'Toggle spellchecker',
+	menu : 'Spellchecker settings',
+	ignore_word : 'Ignore word',
+	ignore_words : 'Ignore all',
+	langs : 'Languages',
+	wait : 'Please wait...',
+	swait : 'Spellchecking, please wait...',
+	sug : 'Suggestions',
+	no_sug : 'No suggestions',
+	no_mpell : 'No misspellings found.'
+});
diff --git a/tinyMCE/plugins/spellchecker/tinyspell.php b/tinyMCE/plugins/spellchecker/tinyspell.php
new file mode 100644
index 0000000000000000000000000000000000000000..a1efe78b611e5a1cd4213d62f83ccdfe2a2abce7
--- /dev/null
+++ b/tinyMCE/plugins/spellchecker/tinyspell.php
@@ -0,0 +1,169 @@
+<?php
+/**
+ * $RCSfile: tinyspell.php,v $
+ * $Revision: 1.1 $
+ * $Date: 2006/03/14 17:33:47 $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ */
+
+	// Ignore the Notice errors for now.
+	error_reporting(E_ALL ^ E_NOTICE);
+
+	require_once("config.php");
+
+	$id = sanitize($_POST['id'], "loose");
+
+	if (!$spellCheckerConfig['enabled']) {
+		header('Content-type: text/xml; charset=utf-8');
+		echo '<?xml version="1.0" encoding="utf-8" ?><res id="' . $id . '" error="true" msg="You must enable the spellchecker by modifying the config.php file." />';
+		die;
+	}
+
+	// Basic config
+	$defaultLanguage = $spellCheckerConfig['default.language'];
+	$defaultMode = $spellCheckerConfig['default.mode'];
+
+	// Normaly not required to configure
+	$defaultSpelling = $spellCheckerConfig['default.spelling'];
+	$defaultJargon = $spellCheckerConfig['default.jargon'];
+	$defaultEncoding = $spellCheckerConfig['default.encoding'];
+	$outputType = "xml"; // Do not change
+
+	// Get input parameters.
+
+	$check = urldecode(getRequestParam('check'));
+	$cmd = sanitize(getRequestParam('cmd'));
+	$lang = sanitize(getRequestParam('lang'), "strict");
+	$mode = sanitize(getRequestParam('mode'), "strict");
+	$spelling = sanitize(getRequestParam('spelling'), "strict");
+	$jargon = sanitize(getRequestParam('jargon'), "strict");
+	$encoding = sanitize(getRequestParam('encoding'), "strict");
+	$sg = sanitize(getRequestParam('sg'), "bool");
+	$words = array();
+
+	$validRequest = true;
+
+	if (empty($check))
+		$validRequest = false;
+
+	if (empty($lang))
+		$lang = $defaultLanguage;
+
+	if (empty($mode))
+		$mode = $defaultMode;
+
+	if (empty($spelling))
+		$spelling = $defaultSpelling;
+
+	if (empty($jargon))
+		$jargon = $defaultJargon;
+
+	if (empty($encoding))
+		$encoding = $defaultEncoding;
+
+	function sanitize($str, $type="strict") {
+		switch ($type) {
+			case "strict":
+				$str = preg_replace("/[^a-zA-Z0-9_\-]/i", "", $str);
+			break;
+
+			case "loose":
+				$str = preg_replace("/</i", "&gt;", $str);
+				$str = preg_replace("/>/i", "&lt;", $str);
+			break;
+
+			case "bool":
+				if ($str == "true" || $str == true)
+					$str = true;
+				else
+					$str = false;
+			break;
+		}
+
+		return $str;
+	}
+
+	function getRequestParam($name, $default_value = false) {
+		if (!isset($_REQUEST[$name]))
+			return $default_value;
+
+		if (!isset($_GLOBALS['magic_quotes_gpc']))
+			$_GLOBALS['magic_quotes_gpc'] = ini_get("magic_quotes_gpc");
+
+		if (isset($_GLOBALS['magic_quotes_gpc'])) {
+			if (is_array($_REQUEST[$name])) {
+				$newarray = array();
+
+				foreach($_REQUEST[$name] as $name => $value)
+					$newarray[stripslashes($name)] = stripslashes($value);
+
+				return $newarray;
+			}
+			return stripslashes($_REQUEST[$name]);
+		}
+
+		return $_REQUEST[$name];
+	}
+
+	$result = array();
+	$tinyspell = new $spellCheckerConfig['class']($spellCheckerConfig, $lang, $mode, $spelling, $jargon, $encoding);
+
+	if (count($tinyspell->errorMsg) == 0) {
+		switch($cmd) {
+			case "spell":
+				// Space for non-exec version and \n for the exec version.
+				$words = preg_split("/ |\n/", $check, -1, PREG_SPLIT_NO_EMPTY);
+				$result = $tinyspell->checkWords($words);
+			break;
+	
+			case "suggest":
+				$result = $tinyspell->getSuggestion($check);
+			break;
+
+			default:
+				// Just use this for now.
+				$tinyspell->errorMsg[] = "No command.";
+				$outputType = $outputType . "error";
+			break;
+		}
+	} else
+		$outputType = $outputType . "error";
+
+	if (!$result)
+		$result = array();
+
+	// Output data
+	switch($outputType) {
+		case "xml":
+			header('Content-type: text/xml; charset=utf-8');
+			$body  = '<?xml version="1.0" encoding="utf-8" ?>';
+			$body .= "\n";
+			
+			if (count($result) == 0)
+				$body .= '<res id="' . $id . '" cmd="'. $cmd .'" />';
+			else
+				$body .= '<res id="' . $id . '" cmd="'. $cmd .'">'. urlencode(implode(" ", $result)) .'</res>';
+
+			echo $body;
+		break;
+
+		case "xmlerror";
+			header('Content-type: text/xml; charset=utf-8');
+			$body  = '<?xml version="1.0" encoding="utf-8" ?>';
+			$body .= "\n";
+			$body .= '<res id="' . $id . '" cmd="'. $cmd .'" error="true" msg="'. implode(" ", $tinyspell->errorMsg) .'" />';
+			echo $body;
+		break;
+
+		case "html":
+			var_dump($result);
+		break;
+
+		case "htmlerror":
+			echo "Error";
+		break;
+	}
+
+?>
diff --git a/tinyMCE/plugins/style/css/props.css b/tinyMCE/plugins/style/css/props.css
new file mode 100644
index 0000000000000000000000000000000000000000..b159b5f82dc75357fb6db8153c685ad065227ee6
--- /dev/null
+++ b/tinyMCE/plugins/style/css/props.css
@@ -0,0 +1,62 @@
+#text_font {
+	width: 250px;
+}
+
+#text_size {
+	width: 70px;
+}
+
+.mceAddSelectValue {
+	background-color: #DDDDDD;
+}
+
+select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {
+	width: 70px;
+}
+
+#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {
+	width: 70px;
+}
+
+#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {
+	width: 70px;
+}
+
+#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {
+	width: 70px;
+}
+
+.panel_wrapper div.current {
+	padding-top: 10px;
+	height: 230px;
+}
+
+.delim {
+	border-left: 1px solid gray;
+}
+
+.tdelim {
+	border-bottom: 1px solid gray;	
+}
+
+#block_display {
+	width: 145px;
+}
+
+#list_type {
+	width: 115px;
+}
+
+.disabled {
+	background-color: #EEEEEE;
+}
+
+#apply {
+	font-weight: bold;
+	width: 78px;
+	height: 21px;
+	border: 0;
+	background-image: url('../images/apply_button_bg.gif');
+	cursor: pointer;
+}
+
diff --git a/tinyMCE/plugins/style/editor_plugin.js b/tinyMCE/plugins/style/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..89f5b07e1a44fd5d7d70aa68492760ad987712d0
--- /dev/null
+++ b/tinyMCE/plugins/style/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('style');var TinyMCE_StylePlugin={getInfo:function(){return{longname:'Style',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"styleprops":return tinyMCE.getButtonHTML(cn,'lang_style_styleinfo_desc','{$pluginurl}/images/styleprops.gif','mceStyleProps',true)}return""},execCommand:function(editor_id,element,command,user_interface,value){var e,inst;switch(command){case"mceStyleProps":TinyMCE_StylePlugin._styleProps();return true;case"mceSetElementStyle":inst=tinyMCE.getInstanceById(editor_id);e=inst.selection.getFocusElement();if(e){e.style.cssText=value;inst.repaint()}return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node.nodeName=='BODY')tinyMCE.switchClass(editor_id+'_styleprops','mceButtonDisabled');else tinyMCE.switchClass(editor_id+'_styleprops','mceButtonNormal')},_styleProps:function(){var e=tinyMCE.selectedInstance.selection.getFocusElement();if(!e||e.nodeName=='BODY')return;tinyMCE.openWindow({file:'../../plugins/style/props.htm',width:480+tinyMCE.getLang('lang_style_props_delta_width',0),height:320+tinyMCE.getLang('lang_style_props_delta_height',0)},{editor_id:tinyMCE.selectedInstance.editorId,inline:"yes",style_text:e.style.cssText})}};tinyMCE.addPlugin("style",TinyMCE_StylePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/style/editor_plugin_src.js b/tinyMCE/plugins/style/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..4fa8aaaadc39b880dbebcf1bd6a1ef1efe3da604
--- /dev/null
+++ b/tinyMCE/plugins/style/editor_plugin_src.js
@@ -0,0 +1,83 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('style');
+
+var TinyMCE_StylePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Style',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "styleprops":
+				return tinyMCE.getButtonHTML(cn, 'lang_style_styleinfo_desc', '{$pluginurl}/images/styleprops.gif', 'mceStyleProps', true);
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		var e, inst;
+
+		// Handle commands
+		switch (command) {
+			case "mceStyleProps":
+				TinyMCE_StylePlugin._styleProps();
+				return true;
+
+			case "mceSetElementStyle":
+				inst = tinyMCE.getInstanceById(editor_id);
+				e = inst.selection.getFocusElement();
+
+				if (e) {
+					e.style.cssText = value;
+					inst.repaint();
+				}
+
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		if (node.nodeName == 'BODY')
+			tinyMCE.switchClass(editor_id + '_styleprops', 'mceButtonDisabled');
+		else
+			tinyMCE.switchClass(editor_id + '_styleprops', 'mceButtonNormal');
+	},
+
+	// Private plugin specific methods
+
+	_styleProps : function() {
+		var e = tinyMCE.selectedInstance.selection.getFocusElement();
+
+		if (!e || e.nodeName == 'BODY')
+			return;
+
+		tinyMCE.openWindow({
+			file : '../../plugins/style/props.htm',
+			width : 480 + tinyMCE.getLang('lang_style_props_delta_width', 0),
+			height : 320 + tinyMCE.getLang('lang_style_props_delta_height', 0)
+		}, {
+			editor_id : tinyMCE.selectedInstance.editorId,
+			inline : "yes",
+			style_text : e.style.cssText
+		});
+	}
+};
+
+tinyMCE.addPlugin("style", TinyMCE_StylePlugin);
diff --git a/tinyMCE/plugins/style/images/apply_button_bg.gif b/tinyMCE/plugins/style/images/apply_button_bg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..979e868abb3562f59ac89b3d24bbd47b7aeab075
Binary files /dev/null and b/tinyMCE/plugins/style/images/apply_button_bg.gif differ
diff --git a/tinyMCE/plugins/style/images/style_info.gif b/tinyMCE/plugins/style/images/style_info.gif
new file mode 100644
index 0000000000000000000000000000000000000000..41f227125bd3218788d800f664ff50a1bd9e9934
Binary files /dev/null and b/tinyMCE/plugins/style/images/style_info.gif differ
diff --git a/tinyMCE/plugins/style/images/styleprops.gif b/tinyMCE/plugins/style/images/styleprops.gif
new file mode 100644
index 0000000000000000000000000000000000000000..41f227125bd3218788d800f664ff50a1bd9e9934
Binary files /dev/null and b/tinyMCE/plugins/style/images/styleprops.gif differ
diff --git a/tinyMCE/plugins/style/jscripts/props.js b/tinyMCE/plugins/style/jscripts/props.js
new file mode 100644
index 0000000000000000000000000000000000000000..c9883d742b6440260cdb833b110e501778873a74
--- /dev/null
+++ b/tinyMCE/plugins/style/jscripts/props.js
@@ -0,0 +1,633 @@
+var defaultFonts = "" + 
+	"Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" + 
+	"Times New Roman, Times, serif=Times New Roman, Times, serif;" + 
+	"Courier New, Courier, mono=Courier New, Courier, mono;" + 
+	"Times New Roman, Times, serif=Times New Roman, Times, serif;" + 
+	"Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" + 
+	"Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" + 
+	"Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif";
+
+var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger";
+var defaultMeasurement = "+pixels=px;points=pt;in;cm;mm;picas;ems;exs;%";
+var defaultSpacingMeasurement = "pixels=px;points=pt;in;cm;mm;picas;+ems;exs;%";
+var defaultIndentMeasurement = "pixels=px;+points=pt;in;cm;mm;picas;ems;exs;%";
+var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";
+var defaultTextStyle = "normal;italic;oblique";
+var defaultVariant = "normal;small-caps";
+var defaultLineHeight = "normal";
+var defaultAttachment = "fixed;scroll";
+var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y";
+var defaultPosH = "left;center;right";
+var defaultPosV = "top;center;bottom";
+var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom";
+var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none";
+var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset";
+var defaultBorderWidth = "thin;medium;thick";
+var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none";
+
+function init() {
+	var ce = document.getElementById('container'), h;
+
+	ce.style.cssText = tinyMCEPopup.getWindowArg('style_text');
+
+	h = getBrowserHTML('background_image_browser','background_image','image','advimage');
+	document.getElementById("background_image_browser").innerHTML = h;
+
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color');
+	document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color');
+	document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top');
+	document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right');
+	document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom');
+	document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left');
+
+	fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true);
+	fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true);
+	fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true);
+	fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true);
+	fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true);
+	fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true);
+	fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true);
+	fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true);
+	fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true);
+
+	fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true);
+	fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true);
+
+	fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true);
+	fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true);
+	fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true);
+	fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true);
+	fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true);
+	fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true);
+	fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true);
+	fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true);
+	fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true);
+
+	fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true);
+	fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true);
+	fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true);
+	fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true);
+	fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true);
+	fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true);
+
+	fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true);
+	fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true);
+	fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true);
+	fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true);
+
+	fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true);
+	fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true);
+
+	fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true);
+	fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true);
+
+	fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true);
+
+	fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true);
+
+	fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true);
+	fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true);
+
+	TinyMCE_EditableSelects.init();
+	setupFormData();
+	showDisabledControls();
+}
+
+function setupFormData() {
+	var ce = document.getElementById('container'), f = document.forms[0], s, b, i;
+
+	// Setup text fields
+
+	selectByValue(f, 'text_font', ce.style.fontFamily, true, true);
+	selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true);
+	selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize));
+	selectByValue(f, 'text_weight', ce.style.fontWeight, true, true);
+	selectByValue(f, 'text_style', ce.style.fontStyle, true, true);
+	selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true);
+	selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight));
+	selectByValue(f, 'text_case', ce.style.textTransform, true, true);
+	selectByValue(f, 'text_variant', ce.style.fontVariant, true, true);
+	f.text_color.value = ce.style.color;
+	updateColor('text_color_pick', 'text_color');
+	f.text_underline.checked = inStr(ce.style.textDecoration, 'underline');
+	f.text_overline.checked = inStr(ce.style.textDecoration, 'overline');
+	f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through');
+	f.text_blink.checked = inStr(ce.style.textDecoration, 'blink');
+
+	// Setup background fields
+
+	f.background_color.value = ce.style.backgroundColor;
+	updateColor('background_color_pick', 'background_color');
+	f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+	selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true);
+	selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true);
+	selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true);
+	selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0)));
+	selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true);
+	selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1)));
+
+	// Setup block fields
+
+	selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true);
+	selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing));
+	selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true);
+	selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing));
+	selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true);
+	selectByValue(f, 'block_text_align', ce.style.textAlign, true, true);
+	f.block_text_indent.value = getNum(ce.style.textIndent);
+	selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent));
+	selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true);
+	selectByValue(f, 'block_display', ce.style.display, true, true);
+
+	// Setup box fields
+
+	f.box_width.value = getNum(ce.style.width);
+	selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width));
+
+	f.box_height.value = getNum(ce.style.height);
+	selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height));
+
+	if (tinyMCE.isGecko)
+		selectByValue(f, 'box_float', ce.style.cssFloat, true, true);
+	else
+		selectByValue(f, 'box_float', ce.style.styleFloat, true, true);
+
+	selectByValue(f, 'box_clear', ce.style.clear, true, true);
+
+	setupBox(f, ce, 'box_padding', 'padding', '');
+	setupBox(f, ce, 'box_margin', 'margin', '');
+
+	// Setup border fields
+
+	setupBox(f, ce, 'border_style', 'border', 'Style');
+	setupBox(f, ce, 'border_width', 'border', 'Width');
+	setupBox(f, ce, 'border_color', 'border', 'Color');
+
+	updateColor('border_color_top_pick', 'border_color_top');
+	updateColor('border_color_right_pick', 'border_color_right');
+	updateColor('border_color_bottom_pick', 'border_color_bottom');
+	updateColor('border_color_left_pick', 'border_color_left');
+
+	// Setup list fields
+
+	selectByValue(f, 'list_type', ce.style.listStyleType, true, true);
+	selectByValue(f, 'list_position', ce.style.listStylePosition, true, true);
+	f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+
+	// Setup box fields
+
+	selectByValue(f, 'positioning_type', ce.style.position, true, true);
+	selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true);
+	selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true);
+	f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : "";
+
+	f.positioning_width.value = getNum(ce.style.width);
+	selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width));
+
+	f.positioning_height.value = getNum(ce.style.height);
+	selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));
+
+	setupBox(f, ce, 'positioning_placement', '', '', new Array('top', 'right', 'bottom', 'left'));
+
+	s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1");
+	s = s.replace(/,/g, ' ');
+
+	if (!hasEqualValues(new Array(getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)))) {
+		f.positioning_clip_top.value = getNum(getVal(s, 0));
+		selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
+		f.positioning_clip_right.value = getNum(getVal(s, 1));
+		selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1)));
+		f.positioning_clip_bottom.value = getNum(getVal(s, 2));
+		selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2)));
+		f.positioning_clip_left.value = getNum(getVal(s, 3));
+		selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3)));
+	} else {
+		f.positioning_clip_top.value = getNum(getVal(s, 0));
+		selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
+		f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value;
+	}
+
+//	setupBox(f, ce, '', 'border', 'Color');
+}
+
+function getMeasurement(s) {
+	return s.replace(/^([0-9]+)(.*)$/, "$2");
+}
+
+function getNum(s) {
+	if (new RegExp('^[0-9]+[a-z%]+$', 'gi').test(s))
+		return s.replace(/[^0-9]/g, '');
+
+	return s;
+}
+
+function inStr(s, n) {
+	return new RegExp(n, 'gi').test(s);
+}
+
+function getVal(s, i) {
+	var a = tinyMCE.explode(' ', s);
+
+	if (a.length > 1)
+		return a[i];
+
+	return "";
+}
+
+function setValue(f, n, v) {
+	if (f.elements[n].type == "text")
+		f.elements[n].value = v;
+	else
+		selectByValue(f, n, v, true, true);
+}
+
+function setupBox(f, ce, fp, pr, sf, b) {
+	if (typeof(b) == "undefined")
+		b = new Array('Top', 'Right', 'Bottom', 'Left');
+
+	if (isSame(ce, pr, sf, b)) {
+		f.elements[fp + "_same"].checked = true;
+
+		setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
+		f.elements[fp + "_top"].disabled = false;
+
+		f.elements[fp + "_right"].value = "";
+		f.elements[fp + "_right"].disabled = true;
+		f.elements[fp + "_bottom"].value = "";
+		f.elements[fp + "_bottom"].disabled = true;
+		f.elements[fp + "_left"].value = "";
+		f.elements[fp + "_left"].disabled = true;
+
+		if (f.elements[fp + "_top_measurement"]) {
+			selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
+			f.elements[fp + "_left_measurement"].disabled = true;
+			f.elements[fp + "_bottom_measurement"].disabled = true;
+			f.elements[fp + "_right_measurement"].disabled = true;
+		}
+	} else {
+		f.elements[fp + "_same"].checked = false;
+
+		setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
+		f.elements[fp + "_top"].disabled = false;
+
+		setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf]));
+		f.elements[fp + "_right"].disabled = false;
+
+		setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf]));
+		f.elements[fp + "_bottom"].disabled = false;
+
+		setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf]));
+		f.elements[fp + "_left"].disabled = false;
+
+		if (f.elements[fp + "_top_measurement"]) {
+			selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
+			selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf]));
+			selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf]));
+			selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf]));
+			f.elements[fp + "_left_measurement"].disabled = false;
+			f.elements[fp + "_bottom_measurement"].disabled = false;
+			f.elements[fp + "_right_measurement"].disabled = false;
+		}
+	}
+}
+
+function isSame(e, pr, sf, b) {
+	var a = new Array(), i, x;
+
+	if (typeof(b) == "undefined")
+		b = new Array('Top', 'Right', 'Bottom', 'Left');
+
+	if (typeof(sf) == "undefined" || sf == null)
+		sf = "";
+
+	a[0] = e.style[pr + b[0] + sf];
+	a[1] = e.style[pr + b[1] + sf];
+	a[2] = e.style[pr + b[2] + sf];
+	a[3] = e.style[pr + b[3] + sf];
+
+	for (i=0; i<a.length; i++) {
+		if (a[i] == null)
+			return false;
+
+		for (x=0; x<a.length; x++) {
+			if (a[x] != a[i])
+				return false;
+		}
+	}
+
+	return true;
+};
+
+function hasEqualValues(a) {
+	var i, x;
+
+	for (i=0; i<a.length; i++) {
+		if (a[i] == null)
+			return false;
+
+		for (x=0; x<a.length; x++) {
+			if (a[x] != a[i])
+				return false;
+		}
+	}
+
+	return true;
+}
+
+function applyAction() {
+	var ce = document.getElementById('container');
+
+	generateCSS();
+
+	tinyMCEPopup.execCommand('mceSetElementStyle', false, tinyMCE.serializeStyle(tinyMCE.parseStyle(ce.style.cssText)));
+}
+
+function updateAction() {
+	applyAction();
+	tinyMCEPopup.close();
+}
+
+function generateCSS() {
+	var ce = document.getElementById('container'), f = document.forms[0], num = new RegExp('[0-9]+', 'g'), s, t;
+
+	ce.style.cssText = "";
+
+	// Build text styles
+	ce.style.fontFamily = f.text_font.value;
+	ce.style.fontSize = f.text_size.value + (isNum(f.text_size.value) ? f.text_size_measurement.value : "");
+	ce.style.fontStyle = f.text_style.value;
+	ce.style.lineHeight = f.text_lineheight.value + (isNum(f.text_lineheight.value) ? f.text_lineheight_measurement.value : "");
+	ce.style.textTransform = f.text_case.value;
+	ce.style.fontWeight = f.text_weight.value;
+	ce.style.fontVariant = f.text_variant.value;
+	ce.style.color = f.text_color.value;
+
+	s = "";
+	s += f.text_underline.checked ? " underline" : "";
+	s += f.text_overline.checked ? " overline" : "";
+	s += f.text_linethrough.checked ? " line-through" : "";
+	s += f.text_blink.checked ? " blink" : "";
+	s = s.length > 0 ? s.substring(1) : s;
+
+	if (f.text_none.checked)
+		s = "none";
+
+	ce.style.textDecoration = s;
+
+	// Build background styles
+
+	ce.style.backgroundColor = f.background_color.value;
+	ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : "";
+	ce.style.backgroundRepeat = f.background_repeat.value;
+	ce.style.backgroundAttachment = f.background_attachment.value;
+
+	if (f.background_hpos.value != "") {
+		s = "";
+		s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " ";
+		s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : "");
+		ce.style.backgroundPosition = s;
+	}
+
+	// Build block styles
+
+	ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : "");
+	ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : "");
+	ce.style.verticalAlign = f.block_vertical_alignment.value;
+	ce.style.textAlign = f.block_text_align.value;
+	ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : "");
+	ce.style.whiteSpace = f.block_whitespace.value;
+	ce.style.display = f.block_display.value;
+
+	// Build box styles
+
+	ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : "");
+	ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : "");
+	ce.style.styleFloat = f.box_float.value;
+
+	if (tinyMCE.isGecko)
+		ce.style.cssFloat = f.box_float.value;
+
+	ce.style.clear = f.box_clear.value;
+
+	if (!f.box_padding_same.checked) {
+		ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");
+		ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : "");
+		ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : "");
+		ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : "");
+	} else
+		ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");		
+
+	if (!f.box_margin_same.checked) {
+		ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");
+		ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : "");
+		ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : "");
+		ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : "");
+	} else
+		ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");		
+
+	// Build border styles
+
+	if (!f.border_style_same.checked) {
+		ce.style.borderTopStyle = f.border_style_top.value;
+		ce.style.borderRightStyle = f.border_style_right.value;
+		ce.style.borderBottomStyle = f.border_style_bottom.value;
+		ce.style.borderLeftStyle = f.border_style_left.value;
+	} else
+		ce.style.borderStyle = f.border_style_top.value;
+
+	if (!f.border_width_same.checked) {
+		ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");
+		ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : "");
+		ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : "");
+		ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : "");
+	} else
+		ce.style.borderWidth = f.border_width_top.value;
+
+	if (!f.border_color_same.checked) {
+		ce.style.borderTopColor = f.border_color_top.value;
+		ce.style.borderRightColor = f.border_color_right.value;
+		ce.style.borderBottomColor = f.border_color_bottom.value;
+		ce.style.borderLeftColor = f.border_color_left.value;
+	} else
+		ce.style.borderColor = f.border_color_top.value;
+
+	// Build list styles
+
+	ce.style.listStyleType = f.list_type.value;
+	ce.style.listStylePosition = f.list_position.value;
+	ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : "";
+
+	// Build positioning styles
+
+	ce.style.position = f.positioning_type.value;
+	ce.style.visibility = f.positioning_visibility.value;
+
+	if (ce.style.width == "")
+		ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : "");
+
+	if (ce.style.height == "")
+		ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : "");
+
+	ce.style.zIndex = f.positioning_zindex.value;
+	ce.style.overflow = f.positioning_overflow.value;
+
+	if (!f.positioning_placement_same.checked) {
+		ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
+		ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : "");
+		ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : "");
+		ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : "");
+	} else {
+		s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
+		ce.style.top = s;
+		ce.style.right = s;
+		ce.style.bottom = s;
+		ce.style.left = s;
+	}
+
+	if (!f.positioning_clip_same.checked) {
+		s = "rect(";
+		s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " ";
+		s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " ";
+		s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " ";
+		s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto");
+		s += ")";
+
+		if (s != "rect(auto auto auto auto)")
+			ce.style.clip = s;
+	} else {
+		s = "rect(";
+		t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto";
+		s += t + " ";
+		s += t + " ";
+		s += t + " ";
+		s += t + ")";
+
+		if (s != "rect(auto auto auto auto)")
+			ce.style.clip = s;
+	}
+
+	ce.style.cssText = tinyMCE.serializeStyle(tinyMCE.parseStyle(ce.style.cssText));
+}
+
+function isNum(s) {
+	return new RegExp('[0-9]+', 'g').test(s);
+}
+
+function showDisabledControls() {
+	var f = document.forms, i, a;
+
+	for (i=0; i<f.length; i++) {
+		for (a=0; a<f[i].elements.length; a++) {
+			if (f[i].elements[a].disabled)
+				tinyMCE.addCSSClass(f[i].elements[a], "disabled");
+			else
+				tinyMCE.removeCSSClass(f[i].elements[a], "disabled");
+		}
+	}
+}
+
+function fillSelect(f, s, param, dval, sep, em) {
+	var i, ar, p, se;
+
+	f = document.forms[f];
+	sep = typeof(sep) == "undefined" ? ";" : sep;
+
+	if (em)
+		addSelectValue(f, s, "", "");
+
+	ar = tinyMCE.getParam(param, dval).split(sep);
+	for (i=0; i<ar.length; i++) {
+		se = false;
+
+		if (ar[i].charAt(0) == '+') {
+			ar[i] = ar[i].substring(1);
+			se = true;
+		}
+
+		p = ar[i].split('=');
+
+		if (p.length > 1) {
+			addSelectValue(f, s, p[0], p[1]);
+
+			if (se)
+				selectByValue(f, s, p[1]);
+		} else {
+			addSelectValue(f, s, p[0], p[0]);
+
+			if (se)
+				selectByValue(f, s, p[0]);
+		}
+	}
+}
+
+function toggleSame(ce, pre) {
+	var el = document.forms[0].elements, i;
+
+	if (ce.checked) {
+		el[pre + "_top"].disabled = false;
+		el[pre + "_right"].disabled = true;
+		el[pre + "_bottom"].disabled = true;
+		el[pre + "_left"].disabled = true;
+
+		if (el[pre + "_top_measurement"]) {
+			el[pre + "_top_measurement"].disabled = false;
+			el[pre + "_right_measurement"].disabled = true;
+			el[pre + "_bottom_measurement"].disabled = true;
+			el[pre + "_left_measurement"].disabled = true;
+		}
+	} else {
+		el[pre + "_top"].disabled = false;
+		el[pre + "_right"].disabled = false;
+		el[pre + "_bottom"].disabled = false;
+		el[pre + "_left"].disabled = false;
+
+		if (el[pre + "_top_measurement"]) {
+			el[pre + "_top_measurement"].disabled = false;
+			el[pre + "_right_measurement"].disabled = false;
+			el[pre + "_bottom_measurement"].disabled = false;
+			el[pre + "_left_measurement"].disabled = false;
+		}
+	}
+
+	showDisabledControls();
+}
+
+function synch(fr, to) {
+	var f = document.forms[0];
+
+	f.elements[to].value = f.elements[fr].value;
+
+	if (f.elements[fr + "_measurement"])
+		selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value);
+}
diff --git a/tinyMCE/plugins/style/langs/ca.js b/tinyMCE/plugins/style/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ca.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/cs.js b/tinyMCE/plugins/style/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/cs.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/cy.js b/tinyMCE/plugins/style/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/cy.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/da.js b/tinyMCE/plugins/style/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..e2a989ceaa7769b60c2c07a5077c863fcc772919
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/da.js
@@ -0,0 +1,66 @@
+// DK lang variables - Transl.:John Dalsgaard, Bo Frederiksen, Ronny Buelund - Corr.:
+
+tinyMCE.addToLang('style',{
+title : 'Rediger CSS Style',
+styleinfo_desc : 'Rediger CSS Style',
+apply : 'Anvend',
+text_tab : 'Tekst',
+background_tab : 'Baggrund',
+block_tab : 'Blok',
+box_tab : 'Boks',
+border_tab : 'Ramme',
+list_tab : 'Liste',
+positioning_tab : 'Positionering',
+text_props : 'Tekst',
+text_font : 'Skrifttype',
+text_size : 'St&oslash;rrelse',
+text_weight : 'V&aelig;gtning',
+text_style : 'Stil',
+text_variant : 'Variant',
+text_lineheight : 'Linje h&oslash;jde',
+text_case : 'Store-sm&aring;',
+text_color : 'Farve',
+text_decoration : 'Dekoration',
+text_overline : 'Overstreg',
+text_underline : 'Understreg',
+text_striketrough : 'Gennemstreg',
+text_blink : 'blink',
+text_none : 'ingen',
+background_color : 'Baggrundsfarve',
+background_image : 'Baggrundsbillede',
+background_repeat : 'Gentag',
+background_attachment : 'Vedh&aelig;ftning',
+background_hpos : 'Vandret position',
+background_vpos : 'Lodret position',
+block_wordspacing : 'Ord afstand',
+block_letterspacing : 'Tegn afstand',
+block_vertical_alignment : 'Vertikal justering',
+block_text_align : 'Tekstjustering',
+block_text_indent : 'Tekstindrykning',
+block_whitespace : 'Hvid afstand',
+block_display : 'Display',
+box_width : 'Bredde',
+box_height : 'H&oslash;jde',
+box_float : 'Flyd',
+box_clear : 'Ryd',
+padding : 'Fyld',
+same : 'Ens for alle',
+top : 'Top',
+right : 'H&oslash;jre',
+bottom : 'Bund',
+left : 'Venstre',
+margin : 'Margin',
+style : 'Stil',
+width : 'Bredde',
+height : 'H&oslash;jde',
+color : 'Farve',
+list_type : 'Type',
+bullet_image : 'Punkttegnsbillede',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Synlighed',
+zindex : 'Z-indeks',
+overflow : 'Overl&oslash;b',
+placement : 'Placering',
+clip : 'Klip'
+});
diff --git a/tinyMCE/plugins/style/langs/de.js b/tinyMCE/plugins/style/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..7a9318fa53f013e7c38dd9e8c2e971e94f5f10bf
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/de.js
@@ -0,0 +1,66 @@
+// DE lang variables
+
+tinyMCE.addToLang('style',{
+title : 'CSS Stil bearbeiten',
+styleinfo_desc : 'CSS Stil bearbeiten',
+apply : 'Anwenden',
+text_tab : 'Text',
+background_tab : 'Hintergrund',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Rahmen',
+list_tab : 'Liste',
+positioning_tab : 'Positionierung',
+text_props : 'Text',
+text_font : 'Schriftart',
+text_size : 'Gr&ouml;&szlig;e',
+text_weight : 'Dicke',
+text_style : 'Stil',
+text_variant : 'Variante',
+text_lineheight : 'Linienh&ouml;he',
+text_case : 'Gro&szlig;-/Kleinbuchstaben',
+text_color : 'Farbe',
+text_decoration : 'Dekoration',
+text_overline : 'Oberlinie',
+text_underline : 'Unterstrichen',
+text_striketrough : 'Durchgestrichen',
+text_blink : 'blinken',
+text_none : 'nichts',
+background_color : 'Hintergrundfarbe',
+background_image : 'Hintergrundfoto',
+background_repeat : 'Wiederholen',
+background_attachment : 'Anhang',
+background_hpos : 'Horizontale Position',
+background_vpos : 'Vertikale Position',
+block_wordspacing : 'Wortabstand',
+block_letterspacing : 'Zeichenabstand',
+block_vertical_alignment : 'Vertikale Ausrichtung',
+block_text_align : 'Horizontale Ausrichtung',
+block_text_indent : 'Texteinr&uuml;ckung',
+block_whitespace : 'Textumbruch',
+block_display : 'Anzeigeart',
+box_width : 'Breite',
+box_height : 'H&ouml;he',
+box_float : 'Text umflie&szlig;en',
+box_clear : 'Text umflie&szlig;en beenden',
+padding : 'Innenabstand',
+same : 'Das gleiche f&uuml;r alle',
+top : 'Oben',
+right : 'Rechts',
+bottom : 'Unten',
+left : 'Links',
+margin : 'Aussenabstand',
+style : 'Stil',
+width : 'Breite',
+height : 'H&ouml;he',
+color : 'Farbe',
+list_type : 'Listentyp',
+bullet_image : 'Grafik',
+position : 'Position',
+positioning_type : 'Typ',
+visibility : 'Sichtbarkeit',
+zindex : 'Z-index',
+overflow : '&Uuml;berfluss',
+placement : 'Plazierung',
+clip : 'Abschneiden'
+});
diff --git a/tinyMCE/plugins/style/langs/el.js b/tinyMCE/plugins/style/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/el.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/en.js b/tinyMCE/plugins/style/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/en.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/es.js b/tinyMCE/plugins/style/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..21a247590a604b712ed03365e6cdb1210e436797
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/es.js
@@ -0,0 +1,66 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('style',{
+title : 'Editar estilo CSS',
+styleinfo_desc : 'Editar estilo CSS',
+text_tab : 'Texto',
+background_tab : 'Fondo',
+block_tab : 'Bloque',
+box_tab : 'Cuadro',
+border_tab : 'Borde',
+list_tab : 'Lista',
+positioning_tab : 'Posicionamiento',
+text_props : 'Texto',
+text_font : 'Fuente',
+text_size : 'Tama&ntilde;o',
+text_weight : 'Peso',
+text_style : 'Estilo',
+text_variant : 'Variante',
+text_lineheight : 'Altura de l&iacute;nea',
+text_case : 'Caso',
+text_color : 'Color',
+text_decoration : 'Decoraci&oacute;n',
+background_color : 'Color de fondo',
+background_image : 'Imagen de fondo',
+background_repeat : 'Repetir',
+background_attachment : 'Agregado',
+background_hpos : 'Posici&oacute;n horizontal',
+background_vpos : 'Posici&oacute;n vertical',
+block_wordspacing : 'Espaciado de palabras',
+block_letterspacing : 'Espaciado de letras',
+block_vertical_alignment : 'Alineaci&oacute;n vertical',
+block_text_align : 'Alineaci&oacute;n del texto',
+block_text_indent : 'Indentaci&oacute;n del texto',
+block_whitespace : 'Espacio',
+block_display : 'Mostrar',
+box_width : 'Ancho',
+box_height : 'Alto',
+box_float : 'Flotante',
+box_clear : 'Borrar',
+padding : 'Espaciado',
+same : 'Igual para todo',
+top : 'Arriba',
+right : 'Derecha',
+bottom : 'Abajo',
+left : 'Izquierda',
+margin : 'Margen',
+style : 'Estilo',
+width : 'Ancho',
+height : 'Alto',
+color : 'Color',
+list_type : 'Tipo',
+bullet_image : 'Imagen de vi&ntilde;eta',
+position : 'Posici&oacute;n',
+positioning_type : 'Tipo',
+visibility : 'Visibilidad',
+zindex : 'Z-index',
+overflow : 'Desbordamiento',
+placement : 'Emplazamiento',
+clip : 'Recortar'
+});
diff --git a/tinyMCE/plugins/style/langs/fa.js b/tinyMCE/plugins/style/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/fa.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/fi.js b/tinyMCE/plugins/style/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..b4ddf80ad49e47e68c7605ae4c5dbdd49d465ccf
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/fi.js
@@ -0,0 +1,66 @@
+// FI lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Muokkaa CSS tyyli&auml;',
+styleinfo_desc : 'Muokkaa CSS tyyli&auml;',
+apply : 'P&auml;ivit&auml;',
+text_tab : 'Teksti',
+background_tab : 'Tausta',
+block_tab : 'Lohko',
+box_tab : 'Laatikko',
+border_tab : 'Reunaviiva',
+list_tab : 'Lista',
+positioning_tab : 'Asettelu',
+text_props : 'Teksti',
+text_font : 'Kirjasin',
+text_size : 'Koko',
+text_weight : 'Lihavointi',
+text_style : 'Tyyli',
+text_variant : 'Variantti',
+text_lineheight : 'Rivikorkeus',
+text_case : 'Isot/pienet kirjaimet',
+text_color : 'V&auml;ri',
+text_decoration : 'Koristelu',
+text_overline : 'ylleviivaus',
+text_underline : 'alleviivaus',
+text_striketrough : 'yliviivaus',
+text_blink : 'vilkkuva',
+text_none : 'ei mit&auml;&auml;n',
+background_color : 'Taustav&auml;ri',
+background_image : 'Taustakuva',
+background_repeat : 'Toisto',
+background_attachment : 'Kiinnitys',
+background_hpos : 'Vaakasijoitus',
+background_vpos : 'Pystysijoitus',
+block_wordspacing : 'Sanav&auml;litys',
+block_letterspacing : 'Kirjainv&auml;litys',
+block_vertical_alignment : 'Pystyasettelu',
+block_text_align : 'Tekstin tasaus',
+block_text_indent : 'Tekstin sisennys',
+block_whitespace : 'Rivitys',
+block_display : 'N&auml;ytt&ouml;tapa',
+box_width : 'Leveys',
+box_height : 'Korkeus',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'T&auml;yte',
+same : 'Sama kaikille',
+top : 'Yl&auml;',
+right : 'Oikea',
+bottom : 'Ala',
+left : 'Vasen',
+margin : 'Marginaali',
+style : 'Tyyli',
+width : 'Leveys',
+height : 'Korkeus',
+color : 'V&auml;ri',
+list_type : 'Tyyppi',
+bullet_image : 'Luettelokuva',
+position : 'Paikka',
+positioning_type : 'Tyyppi',
+visibility : 'N&auml;kyvyys',
+zindex : 'Z-indeksi',
+overflow : 'Overflow',
+placement : 'Asettelu',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/fr.js b/tinyMCE/plugins/style/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..db25cc55c93e2a60dbf1e53eaff5d4a93bea023c
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/fr.js
@@ -0,0 +1,67 @@
+// FR lang variables
+// Modified by keyko-web.net, last updated 2007-03-08
+
+tinyMCE.addToLang('style',{
+title : 'Edtiteur de style CSS',
+styleinfo_desc : 'Edtiteur de style CSS',
+apply : 'Appliquer',
+text_tab : 'Texte',
+background_tab : 'Arri&egrave;re-plan',
+block_tab : 'Bloc',
+box_tab : 'Boite',
+border_tab : 'Bord',
+list_tab : 'Liste',
+positioning_tab : 'Positionnement',
+text_props : 'Texte',
+text_font : 'Police',
+text_size : 'Taille',
+text_weight : 'Poids',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Hauteur de ligne',
+text_case : 'Casse',
+text_color : 'Couleur',
+text_decoration : 'D&eacute;coration',
+text_overline : 'surlign&eacute;',
+text_underline : 'soulign&eacute;',
+text_striketrough : 'barr&eacute;',
+text_blink : 'clignotant',
+text_none : 'aucun',
+background_color : 'Couleur d\'arri&egrave;re-plan',
+background_image : 'Image d\'arri&egrave;re-plan',
+background_repeat : 'R&eacute;p&eacute;ter',
+background_attachment : 'Attacher',
+background_hpos : 'Position horizontale',
+background_vpos : 'Position verticale',
+block_wordspacing : 'Espace entre les mots',
+block_letterspacing : 'Espace entre les lettres',
+block_vertical_alignment : 'Aligenement vertical',
+block_text_align : 'Aligement du texte',
+block_text_indent : 'Indentation du texte',
+block_whitespace : 'Espace',
+block_display : 'Afficher',
+box_width : 'Largeur',
+box_height : 'Hauteur',
+box_float : 'Float',
+box_clear : 'Effacer',
+padding : 'Padding',
+same : 'Identique pour tous',
+top : 'Haut',
+right : 'Droite',
+bottom : 'Bas',
+left : 'Gauche',
+margin : 'Marge',
+style : 'Style',
+width : 'Largeur',
+height : 'Hauteur',
+color : 'Couleur',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibilit&eacute;',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/fr_ca.js b/tinyMCE/plugins/style/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/fr_ca.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/he.js b/tinyMCE/plugins/style/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/he.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/hu.js b/tinyMCE/plugins/style/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/hu.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/is.js b/tinyMCE/plugins/style/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/is.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/it.js b/tinyMCE/plugins/style/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..9ebf111d2eadffbbd9f6e9ef7db5245b673995b0
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/it.js
@@ -0,0 +1,72 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('style',{
+title : 'Modifica stile CSS',
+styleinfo_desc : 'Modifica stile CSS',
+apply : 'Applica',
+text_tab : 'Testo',
+background_tab : 'Sfondo',
+block_tab : 'Blocco',
+box_tab : 'Box',
+border_tab : 'Bordo',
+list_tab : 'Lista',
+positioning_tab : 'Posizionamento',
+text_props : 'Testo',
+text_font : 'Font',
+text_size : 'Dimensione',
+text_weight : 'Peso',
+text_style : 'Stile',
+text_variant : 'Variante',
+text_lineheight : 'Altezza linea',
+text_case : 'Caso',
+text_color : 'Colore',
+text_decoration : 'Decorazione',
+text_overline : 'Linea sopra',
+text_underline : 'Sottolinea',
+text_striketrough : 'Linea sovrapposta',
+text_blink : 'Lampeggia',
+text_none : 'Nessuno',
+background_color : 'Colore di sfondo',
+background_image : 'Immagine di sfondo',
+background_repeat : 'Ripeti',
+background_attachment : 'Ancoraggio',
+background_hpos : 'Posizione orizzontale',
+background_vpos : 'Posizione verticale',
+block_wordspacing : 'Spaziatura parole',
+block_letterspacing : 'Spaziatura lettere',
+block_vertical_alignment : 'Allineamento verticale',
+block_text_align : 'Allineamento del testo',
+block_text_indent : 'Indentazione del testo',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Larghezza',
+box_height : 'Altezza',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Spaziatura interna',
+same : 'Uguale per tutti',
+top : 'Alto',
+right : 'Destra',
+bottom : 'Basso',
+left : 'Sinistra',
+margin : 'Margine esterno',
+style : 'Stile',
+width : 'Larghezza',
+height : 'Altezza',
+color : 'Colore',
+list_type : 'Tipo',
+bullet_image : 'Immagine punto elenco',
+position : 'Posizionamento',
+positioning_type : 'Tipo',
+visibility : 'Visibilit&agrave;',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Piazzamento',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/ja.js b/tinyMCE/plugins/style/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..5cc9cc4d244fb4d7aa0c51318090d4556a9c8d4b
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ja.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'スタイルの編集',
+styleinfo_desc : 'スタイルの編集',
+apply : '適用',
+text_tab : 'テキスト',
+background_tab : '背景',
+block_tab : 'ブロック',
+box_tab : 'ボックス',
+border_tab : 'ボーダー',
+list_tab : 'リスト',
+positioning_tab : 'ポジション',
+text_props : 'テキスト',
+text_font : 'font-family',
+text_size : 'font-size',
+text_weight : 'font-weight',
+text_style : 'font-style',
+text_variant : 'font-variant',
+text_lineheight : 'line-height',
+text_case : 'text-transform',
+text_color : 'color',
+text_decoration : 'text-decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'line-through',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'background-color',
+background_image : 'background-image',
+background_repeat : 'background-repeat',
+background_attachment : 'background-attachment',
+background_hpos : 'background-position(水平方向)',
+background_vpos : 'background-position(垂直方向)',
+block_wordspacing : 'word-spacing',
+block_letterspacing : 'letter-spacing',
+block_vertical_alignment : 'vertical-align',
+block_text_align : 'text-align',
+block_text_indent : 'text-indent',
+block_whitespace : 'white-space',
+block_display : 'display',
+box_width : 'width',
+box_height : 'height',
+box_float : 'float',
+box_clear : 'clear',
+padding : 'padding',
+same : 'すべて同じ',
+top : '上',
+right : '右',
+bottom : '下',
+left : 'å·¦',
+margin : 'margin',
+style : 'style',
+width : 'width',
+height : 'height',
+color : 'color',
+list_type : 'list-style-type',
+bullet_image : 'list-style-image',
+position : 'list-style-position',
+positioning_type : 'position',
+visibility : 'visibility',
+zindex : 'z-index',
+overflow : 'overflow',
+placement : 'placement',
+clip : 'clip'
+});
diff --git a/tinyMCE/plugins/style/langs/ja_euc-jp.js b/tinyMCE/plugins/style/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ja_euc-jp.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/ja_shift_jis.js b/tinyMCE/plugins/style/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ja_shift_jis.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/ja_utf-8.js b/tinyMCE/plugins/style/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ja_utf-8.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/ko.js b/tinyMCE/plugins/style/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ko.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/nb.js b/tinyMCE/plugins/style/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/nb.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/nl.js b/tinyMCE/plugins/style/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/nl.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/nn.js b/tinyMCE/plugins/style/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/nn.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/pl.js b/tinyMCE/plugins/style/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/pl.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/pt_br.js b/tinyMCE/plugins/style/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..87bf1fdd0c7959bd12e7934059104e9f98d9b9c4
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/pt_br.js
@@ -0,0 +1,73 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('style',{
+title : 'Editar folha de estilo CSS',
+styleinfo_desc : 'Editar estilo CSS',
+apply : 'Aplicar',
+text_tab : 'Texto',
+background_tab : 'Fundo',
+block_tab : 'Bloco',
+box_tab : 'Caixa',
+border_tab : 'Borda',
+list_tab : 'Lista',
+positioning_tab : 'Posicionamento',
+text_props : 'Texto',
+text_font : 'Fonte',
+text_size : 'Tamanho',
+text_weight : 'Largura',
+text_style : 'Estilo',
+text_variant : 'Variação',
+text_lineheight : 'Altura da linha',
+text_case : 'Caso',
+text_color : 'Cor',
+text_decoration : 'Decoração',
+text_overline : 'Sobrescrito',
+text_underline : 'Subscrito',
+text_striketrough : 'Tachado',
+text_blink : 'Piscante',
+text_none : 'nenhum',
+background_color : 'Cor do fundo',
+background_image : 'Fundo da imagem',
+background_repeat : 'Repetir',
+background_attachment : 'Anexo',
+background_hpos : 'Posição horizontal',
+background_vpos : 'Posição vertical',
+block_wordspacing : 'Espaçamento de palavras',
+block_letterspacing : 'Espaçamento de letras',
+block_vertical_alignment : 'Alinhamento vertical',
+block_text_align : 'Alinhamento do texto',
+block_text_indent : 'Identação do texto',
+block_whitespace : 'Espaços em branco',
+block_display : 'Visualização',
+box_width : 'Largura',
+box_height : 'Altura',
+box_float : 'Flutuante',
+box_clear : 'Limpar',
+padding : 'Espaçamento',
+same : 'Igual para todos',
+top : 'Superior',
+right : 'Direita',
+bottom : 'Inferior',
+left : 'Esquerda',
+margin : 'Margem',
+style : 'Estilo',
+width : 'Largura',
+height : 'Altura',
+color : 'Cor',
+list_type : 'Tipo',
+bullet_image : 'Imagem tipo Bullet',
+position : 'Posicionamento',
+positioning_type : 'Tipo',
+visibility : 'Visibilidade',
+zindex : 'Z-index',
+overflow : 'Sobrescrever',
+placement : 'Localização',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/ro.js b/tinyMCE/plugins/style/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..014a6b07d9bf3eb36b788409d8977c836fe9e03b
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ro.js
@@ -0,0 +1,66 @@
+// RO lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Editare stil CSS',
+styleinfo_desc : 'Editare stil CSS',
+apply : 'Aplic&#259;',
+text_tab : 'Text',
+background_tab : 'Fundal',
+block_tab : 'Bloc',
+box_tab : 'Cutie',
+border_tab : 'Chenar',
+list_tab : 'List&#259;',
+positioning_tab : 'Pozi&#355;ionare',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Dimensiune',
+text_weight : 'Greutate',
+text_style : 'Stil',
+text_variant : 'Variant&#259;',
+text_lineheight : '&#206;n&#259;l&#355;ime linie',
+text_case : 'Minuscule/majuscule',
+text_color : 'Culoare',
+text_decoration : 'Decora&#255;ie',
+text_overline : 't&#259;iat',
+text_underline : 'subliniat',
+text_striketrough : 't&#259;iat',
+text_blink : 'clipe&#351;te',
+text_none : 'nimic',
+background_color : 'Culoare fundal',
+background_image : 'Imagine fundal',
+background_repeat : 'Repet&#259;',
+background_attachment : 'Ata&#351;ament',
+background_hpos : 'Pozi&#255;ia pa orizontal&#259;',
+background_vpos : 'Pozi&#355;ia pe vertical&#259;',
+block_wordspacing : 'Spa&#355;ierea cuvintelor',
+block_letterspacing : 'Spa&#355;erea literelor',
+block_vertical_alignment : 'Aliniere vertical&#259;',
+block_text_align : 'Aliniere text',
+block_text_indent : 'Indentare text',
+block_whitespace : 'Spa&#355;iu alb',
+block_display : 'Afi&#351;are',
+box_width : 'L&#259;&#355;ime',
+box_height : '&#206;n&#259;l&#355;ime',
+box_float : 'Plutitor',
+box_clear : 'Curat',
+padding : 'Umplere (padding)',
+same : 'La fel peste tot',
+top : 'Sus',
+right : 'Dreapta',
+bottom : 'Jos',
+left : 'St&#226;nga',
+margin : 'Margine',
+style : 'Stil',
+width : 'L&#259;&#355;ime',
+height : '&#206;n&#259;l&#355;ime',
+color : 'Culoare',
+list_type : 'Tip',
+bullet_image : 'Imagine bullet',
+position : 'Pozi&#355;ia',
+positioning_type : 'Tip',
+visibility : 'Vizibilitate',
+zindex : 'Z-index',
+overflow : 'Dep&#259;&#351;ire (overflow)',
+placement : 'Plasare',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/ru.js b/tinyMCE/plugins/style/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..40676fa5244ad46ddde6bb707b2e17d5cfc4c70d
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ru.js
@@ -0,0 +1,66 @@
+// RU lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Редактировать CSS Стиль',
+styleinfo_desc : 'Редактировать CSS Стиль',
+apply : 'Принять',
+text_tab : 'Текст',
+background_tab : 'Фон',
+block_tab : 'Блок',
+box_tab : 'Бокс',
+border_tab : 'Граница',
+list_tab : 'Список',
+positioning_tab : 'Позиционирование',
+text_props : 'Текст',
+text_font : 'Шрифт',
+text_size : 'Размер',
+text_weight : 'Ширина',
+text_style : 'Стиль',
+text_variant : 'Вариант',
+text_lineheight : 'Высота строки',
+text_case : 'Регистр',
+text_color : 'Цвет',
+text_decoration : 'Оформление',
+text_overline : 'Надчеркивание',
+text_underline : 'Подчеркивание',
+text_striketrough : 'Зачеркивание',
+text_blink : 'Мерцание',
+text_none : 'нет',
+background_color : 'Цвет фона',
+background_image : 'Фоновое изображение',
+background_repeat : 'Повторить',
+background_attachment : 'Прокрутка фонового изображения',
+background_hpos : 'Горизонтальная позиция',
+background_vpos : 'Вертикальная позиция',
+block_wordspacing : 'Расстояние между словами',
+block_letterspacing : 'Расстояние между буквами',
+block_vertical_alignment : 'Выравнивание по вертикали',
+block_text_align : 'Выравнивание текста',
+block_text_indent : 'Отступ первой строки',
+block_whitespace : 'Пробелы',
+block_display : 'Отображение',
+box_width : 'Ширина',
+box_height : 'Высота',
+box_float : 'Выравнивание с обтеканием',
+box_clear : 'Запрет обтекания',
+padding : 'Поля',
+same : 'Тоже для остальных',
+top : 'Верх',
+right : 'Право',
+bottom : 'Низ',
+left : 'Лево',
+margin : 'Отступ',
+style : 'Стиль',
+width : 'Ширина',
+height : 'Высота',
+color : 'Цвет',
+list_type : 'Тип',
+bullet_image : 'Маркер абзаца',
+position : 'Позиция',
+positioning_type : 'Тип',
+visibility : 'Видимость',
+zindex : 'Наложение',
+overflow : 'Переполнение',
+placement : 'Размещение',
+clip : 'Позиционирование'
+});
diff --git a/tinyMCE/plugins/style/langs/ru_CP1251.js b/tinyMCE/plugins/style/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..9d85cc02dcccb1c6fe6dae9a5138156fb1aa51f9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ru_CP1251.js
@@ -0,0 +1,66 @@
+// RU lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Ðåäàêòèðîâàòü CSS Ñòèëü',
+styleinfo_desc : 'Ðåäàêòèðîâàòü CSS Ñòèëü',
+apply : 'Ïðèíÿòü',
+text_tab : 'Òåêñò',
+background_tab : 'Ôîí',
+block_tab : 'Áëîê',
+box_tab : 'Áîêñ',
+border_tab : 'Ãðàíèöà',
+list_tab : 'Ñïèñîê',
+positioning_tab : 'Ïîçèöèîíèðîâàíèå',
+text_props : 'Òåêñò',
+text_font : 'Øðèôò',
+text_size : 'Ðàçìåð',
+text_weight : 'Øèðèíà',
+text_style : 'Ñòèëü',
+text_variant : 'Âàðèàíò',
+text_lineheight : 'Âûñîòà ñòðîêè',
+text_case : 'Ðåãèñòð',
+text_color : 'Öâåò',
+text_decoration : 'Îôîðìëåíèå',
+text_overline : 'Íàä÷åðêèâàíèå',
+text_underline : 'Ïîä÷åðêèâàíèå',
+text_striketrough : 'Çà÷åðêèâàíèå',
+text_blink : 'Ìåðöàíèå',
+text_none : 'íåò',
+background_color : 'Öâåò ôîíà',
+background_image : 'Ôîíîâîå èçîáðàæåíèå',
+background_repeat : 'Ïîâòîðèòü',
+background_attachment : 'Ïðîêðóòêà ôîíîâîãî èçîáðàæåíèÿ',
+background_hpos : 'Ãîðèçîíòàëüíàÿ ïîçèöèÿ',
+background_vpos : 'Âåðòèêàëüíàÿ ïîçèöèÿ',
+block_wordspacing : 'Ðàññòîÿíèå ìåæäó ñëîâàìè',
+block_letterspacing : 'Ðàññòîÿíèå ìåæäó áóêâàìè',
+block_vertical_alignment : 'Âûðàâíèâàíèå ïî âåðòèêàëè',
+block_text_align : 'Âûðàâíèâàíèå òåêñòà',
+block_text_indent : 'Îòñòóï ïåðâîé ñòðîêè',
+block_whitespace : 'Ïðîáåëû',
+block_display : 'Îòîáðàæåíèå',
+box_width : 'Øèðèíà',
+box_height : 'Âûñîòà',
+box_float : 'Âûðàâíèâàíèå ñ îáòåêàíèåì',
+box_clear : 'Çàïðåò îáòåêàíèÿ',
+padding : 'Ïîëÿ',
+same : 'Òîæå äëÿ îñòàëüíûõ',
+top : 'Âåðõ',
+right : 'Ïðàâî',
+bottom : 'Íèç',
+left : 'Ëåâî',
+margin : 'Îòñòóï',
+style : 'Ñòèëü',
+width : 'Øèðèíà',
+height : 'Âûñîòà',
+color : 'Öâåò',
+list_type : 'Òèï',
+bullet_image : 'Ìàðêåð àáçàöà',
+position : 'Ïîçèöèÿ',
+positioning_type : 'Òèï',
+visibility : 'Âèäèìîñòü',
+zindex : 'Íàëîæåíèå',
+overflow : 'Ïåðåïîëíåíèå',
+placement : 'Ðàçìåùåíèå',
+clip : 'Ïîçèöèîíèðîâàíèå'
+});
diff --git a/tinyMCE/plugins/style/langs/ru_KOI8-R.js b/tinyMCE/plugins/style/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..07c5b1bb9360c9185ab42f3a9574b27abc751cb4
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/ru_KOI8-R.js
@@ -0,0 +1,66 @@
+// RU lang variables
+
+tinyMCE.addToLang('style',{
+title : 'òÅÄÁËÔÉÒÏ×ÁÔØ CSS óÔÉÌØ',
+styleinfo_desc : 'òÅÄÁËÔÉÒÏ×ÁÔØ CSS óÔÉÌØ',
+apply : 'ðÒÉÎÑÔØ',
+text_tab : 'ôÅËÓÔ',
+background_tab : 'æÏÎ',
+block_tab : 'âÌÏË',
+box_tab : 'âÏËÓ',
+border_tab : 'çÒÁÎÉÃÁ',
+list_tab : 'óÐÉÓÏË',
+positioning_tab : 'ðÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÅ',
+text_props : 'ôÅËÓÔ',
+text_font : 'ûÒÉÆÔ',
+text_size : 'òÁÚÍÅÒ',
+text_weight : 'ûÉÒÉÎÁ',
+text_style : 'óÔÉÌØ',
+text_variant : '÷ÁÒÉÁÎÔ',
+text_lineheight : '÷ÙÓÏÔÁ ÓÔÒÏËÉ',
+text_case : 'òÅÇÉÓÔÒ',
+text_color : 'ã×ÅÔ',
+text_decoration : 'ïÆÏÒÍÌÅÎÉÅ',
+text_overline : 'îÁÄÞÅÒËÉ×ÁÎÉÅ',
+text_underline : 'ðÏÄÞÅÒËÉ×ÁÎÉÅ',
+text_striketrough : 'úÁÞÅÒËÉ×ÁÎÉÅ',
+text_blink : 'íÅÒÃÁÎÉÅ',
+text_none : 'ÎÅÔ',
+background_color : 'ã×ÅÔ ÆÏÎÁ',
+background_image : 'æÏÎÏ×ÏÅ ÉÚÏÂÒÁÖÅÎÉÅ',
+background_repeat : 'ðÏ×ÔÏÒÉÔØ',
+background_attachment : 'ðÒÏËÒÕÔËÁ ÆÏÎÏ×ÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ',
+background_hpos : 'çÏÒÉÚÏÎÔÁÌØÎÁÑ ÐÏÚÉÃÉÑ',
+background_vpos : '÷ÅÒÔÉËÁÌØÎÁÑ ÐÏÚÉÃÉÑ',
+block_wordspacing : 'òÁÓÓÔÏÑÎÉÅ ÍÅÖÄÕ ÓÌÏ×ÁÍÉ',
+block_letterspacing : 'òÁÓÓÔÏÑÎÉÅ ÍÅÖÄÕ ÂÕË×ÁÍÉ',
+block_vertical_alignment : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ ÐÏ ×ÅÒÔÉËÁÌÉ',
+block_text_align : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ ÔÅËÓÔÁ',
+block_text_indent : 'ïÔÓÔÕÐ ÐÅÒ×ÏÊ ÓÔÒÏËÉ',
+block_whitespace : 'ðÒÏÂÅÌÙ',
+block_display : 'ïÔÏÂÒÁÖÅÎÉÅ',
+box_width : 'ûÉÒÉÎÁ',
+box_height : '÷ÙÓÏÔÁ',
+box_float : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ Ó ÏÂÔÅËÁÎÉÅÍ',
+box_clear : 'úÁÐÒÅÔ ÏÂÔÅËÁÎÉÑ',
+padding : 'ðÏÌÑ',
+same : 'ôÏÖÅ ÄÌÑ ÏÓÔÁÌØÎÙÈ',
+top : '÷ÅÒÈ',
+right : 'ðÒÁ×Ï',
+bottom : 'îÉÚ',
+left : 'ìÅ×Ï',
+margin : 'ïÔÓÔÕÐ',
+style : 'óÔÉÌØ',
+width : 'ûÉÒÉÎÁ',
+height : '÷ÙÓÏÔÁ',
+color : 'ã×ÅÔ',
+list_type : 'ôÉÐ',
+bullet_image : 'íÁÒËÅÒ ÁÂÚÁÃÁ',
+position : 'ðÏÚÉÃÉÑ',
+positioning_type : 'ôÉÐ',
+visibility : '÷ÉÄÉÍÏÓÔØ',
+zindex : 'îÁÌÏÖÅÎÉÅ',
+overflow : 'ðÅÒÅÐÏÌÎÅÎÉÅ',
+placement : 'òÁÚÍÅÝÅÎÉÅ',
+clip : 'ðÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÅ'
+});
diff --git a/tinyMCE/plugins/style/langs/si.js b/tinyMCE/plugins/style/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/si.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/sk.js b/tinyMCE/plugins/style/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/sk.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/sq.js b/tinyMCE/plugins/style/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..1609830ec1e1ea43518ebaa13c9e79ef30267a13
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/sq.js
@@ -0,0 +1,60 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Ndrysho stilin CSS',
+styleinfo_desc : 'Ndrysho stilin CSS',
+text_tab : 'Teksti',
+background_tab : 'Sfondi',
+block_tab : 'Blloku',
+box_tab : 'Kutia',
+border_tab : 'Kufiri',
+list_tab : 'Lista',
+positioning_tab : 'Pozicionimi',
+text_props : 'Teksti',
+text_font : 'Fonti',
+text_size : 'Madhesia',
+text_weight : 'Tipi',
+text_style : 'Stili',
+text_variant : 'Varianti',
+text_lineheight : 'Trashesia e linjes',
+text_case : 'E madhe/vogel',
+text_color : 'Ngjyra',
+text_decoration : 'Dekorimi',
+background_color : 'Ngjyra e sfondit',
+background_image : 'Imazhi ne sfond',
+background_repeat : 'Perserit',
+background_attachment : 'Bashkangjitur',
+background_hpos : 'Pozicioni horizontal',
+background_vpos : 'Pozicioni vertikal',
+block_wordspacing : 'Hapesira e fjaleve',
+block_letterspacing : 'Hapesira e germave',
+block_vertical_alignment : 'Dreitimi vertikal',
+block_text_align : 'Drejtimi i tekstit',
+block_text_indent : 'Hapesira e tekstit',
+block_whitespace : 'Hpaseira e bardhe',
+block_display : 'Pamja',
+box_width : 'Gjersia',
+box_height : 'Lartesia',
+box_float : 'Noto',
+box_clear : 'Bosh',
+padding : 'Vend bosh',
+same : 'Te gjithe njesoj',
+top : 'Siper',
+right : 'Djathtas',
+bottom : 'Poshte',
+left : 'Majtas',
+margin : 'Buzet',
+style : 'Stili',
+width : 'Gjeresia',
+height : 'Lartesia',
+color : 'Ngjyra',
+list_type : 'Tipi',
+bullet_image : 'Imazhi i pikes',
+position : 'Pozicioni',
+positioning_type : 'Tipi',
+visibility : 'Dukshmeria',
+zindex : 'Indeksi-Z',
+overflow : 'Mbiderdhje',
+placement : 'Vendosja',
+clip : 'Klipi'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/style/langs/sr.js b/tinyMCE/plugins/style/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/sr.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/sv.js b/tinyMCE/plugins/style/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/sv.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/sv_utf8.js b/tinyMCE/plugins/style/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/sv_utf8.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/tr.js b/tinyMCE/plugins/style/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/tr.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/uk.js b/tinyMCE/plugins/style/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5cfe1bd179e25e596fd6c9b19185c372ea4ff8b
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/uk.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Редагувати CSS Стиль',
+styleinfo_desc : 'Редагувати CSS Стиль',
+apply : 'Прийняти',
+text_tab : 'Текст',
+background_tab : 'Фон',
+block_tab : 'Блок',
+box_tab : 'Бокс',
+border_tab : 'Край',
+list_tab : 'Список',
+positioning_tab : 'Позиціонування',
+text_props : 'Текст',
+text_font : 'Шрифт',
+text_size : 'Розмір',
+text_weight : 'Ширина',
+text_style : 'Стиль',
+text_variant : 'Варіант',
+text_lineheight : 'Висота рядка',
+text_case : 'Регістр',
+text_color : 'Колір',
+text_decoration : 'Оформлення',
+text_overline : 'Надкреслення',
+text_underline : 'Підкреслення',
+text_striketrough : 'Перекреслення',
+text_blink : 'Мерехтіння',
+text_none : 'немає',
+background_color : 'Колір фону',
+background_image : 'Фонове зображення',
+background_repeat : 'Повторити',
+background_attachment : 'Прокручування фонового зображення',
+background_hpos : 'Горизонтальна позиція',
+background_vpos : 'Вертикальна позиція',
+block_wordspacing : 'Відстань між словами',
+block_letterspacing : 'Відстань між літерами',
+block_vertical_alignment : 'Вирівнювання за вертикаллю',
+block_text_align : 'Вирівнювання тексту',
+block_text_indent : 'Відступ першого рядка',
+block_whitespace : 'Пробіли',
+block_display : 'Відображення',
+box_width : 'Ширина',
+box_height : 'Висота',
+box_float : 'Вирівнювання з обтіканням',
+box_clear : 'Заборона обтікання',
+padding : 'Поля',
+same : 'Те ж для інших',
+top : 'Зверху',
+right : 'Справа',
+bottom : 'Знизу',
+left : 'Зліва',
+margin : 'Відступ',
+style : 'Стиль',
+width : 'Ширина',
+height : 'Висота',
+color : 'Колір',
+list_type : 'Тип',
+bullet_image : 'Маркер абзацу',
+position : 'Позиція',
+positioning_type : 'Тип',
+visibility : 'Видимість',
+zindex : 'Накладення',
+overflow : 'Переповнення',
+placement : 'Розміщення',
+clip : 'Позиціонування'
+});
diff --git a/tinyMCE/plugins/style/langs/uk_CP1251.js b/tinyMCE/plugins/style/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..7260e473a457b1bfa416690646453f51f1d546ec
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/uk_CP1251.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Ðåäàãóâàòè CSS Ñòèëü',
+styleinfo_desc : 'Ðåäàãóâàòè CSS Ñòèëü',
+apply : 'Ïðèéíÿòè',
+text_tab : 'Òåêñò',
+background_tab : 'Ôîí',
+block_tab : 'Áëîê',
+box_tab : 'Áîêñ',
+border_tab : 'Êðàé',
+list_tab : 'Ñïèñîê',
+positioning_tab : 'Ïîçèö³îíóâàííÿ',
+text_props : 'Òåêñò',
+text_font : 'Øðèôò',
+text_size : 'Ðîçì³ð',
+text_weight : 'Øèðèíà',
+text_style : 'Ñòèëü',
+text_variant : 'Âàð³àíò',
+text_lineheight : 'Âèñîòà ðÿäêà',
+text_case : 'Ðåã³ñòð',
+text_color : 'Êîë³ð',
+text_decoration : 'Îôîðìëåííÿ',
+text_overline : 'Íàäêðåñëåííÿ',
+text_underline : 'ϳäêðåñëåííÿ',
+text_striketrough : 'Ïåðåêðåñëåííÿ',
+text_blink : 'Ìåðåõò³ííÿ',
+text_none : 'íåìàº',
+background_color : 'Êîë³ð ôîíó',
+background_image : 'Ôîíîâå çîáðàæåííÿ',
+background_repeat : 'Ïîâòîðèòè',
+background_attachment : 'Ïðîêðó÷óâàííÿ ôîíîâîãî çîáðàæåííÿ',
+background_hpos : 'Ãîðèçîíòàëüíà ïîçèö³ÿ',
+background_vpos : 'Âåðòèêàëüíà ïîçèö³ÿ',
+block_wordspacing : '³äñòàíü ì³æ ñëîâàìè',
+block_letterspacing : '³äñòàíü ì³æ ë³òåðàìè',
+block_vertical_alignment : 'Âèð³âíþâàííÿ çà âåðòèêàëëþ',
+block_text_align : 'Âèð³âíþâàííÿ òåêñòó',
+block_text_indent : '³äñòóï ïåðøîãî ðÿäêà',
+block_whitespace : 'Ïðîá³ëè',
+block_display : '³äîáðàæåííÿ',
+box_width : 'Øèðèíà',
+box_height : 'Âèñîòà',
+box_float : 'Âèð³âíþâàííÿ ç îáò³êàííÿì',
+box_clear : 'Çàáîðîíà îáò³êàííÿ',
+padding : 'Ïîëÿ',
+same : 'Òå æ äëÿ ³íøèõ',
+top : 'Çâåðõó',
+right : 'Ñïðàâà',
+bottom : 'Çíèçó',
+left : 'Çë³âà',
+margin : '³äñòóï',
+style : 'Ñòèëü',
+width : 'Øèðèíà',
+height : 'Âèñîòà',
+color : 'Êîë³ð',
+list_type : 'Òèï',
+bullet_image : 'Ìàðêåð àáçàöó',
+position : 'Ïîçèö³ÿ',
+positioning_type : 'Òèï',
+visibility : 'Âèäèì³ñòü',
+zindex : 'Íàêëàäåííÿ',
+overflow : 'Ïåðåïîâíåííÿ',
+placement : 'Ðîçì³ùåííÿ',
+clip : 'Ïîçèö³îíóâàííÿ'
+});
diff --git a/tinyMCE/plugins/style/langs/uk_KOI8-U.js b/tinyMCE/plugins/style/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b273e643594747c8c64ac03381f7bbcc11a916f
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/uk_KOI8-U.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'òÅÄÁÇÕ×ÁÔÉ CSS óÔÉÌØ',
+styleinfo_desc : 'òÅÄÁÇÕ×ÁÔÉ CSS óÔÉÌØ',
+apply : 'ðÒÉÊÎÑÔÉ',
+text_tab : 'ôÅËÓÔ',
+background_tab : 'æÏÎ',
+block_tab : 'âÌÏË',
+box_tab : 'âÏËÓ',
+border_tab : 'ëÒÁÊ',
+list_tab : 'óÐÉÓÏË',
+positioning_tab : 'ðÏÚÉæÏÎÕ×ÁÎÎÑ',
+text_props : 'ôÅËÓÔ',
+text_font : 'ûÒÉÆÔ',
+text_size : 'òÏÚͦÒ',
+text_weight : 'ûÉÒÉÎÁ',
+text_style : 'óÔÉÌØ',
+text_variant : '÷ÁÒ¦ÁÎÔ',
+text_lineheight : '÷ÉÓÏÔÁ ÒÑÄËÁ',
+text_case : 'òÅǦÓÔÒ',
+text_color : 'ëÏ̦Ò',
+text_decoration : 'ïÆÏÒÍÌÅÎÎÑ',
+text_overline : 'îÁÄËÒÅÓÌÅÎÎÑ',
+text_underline : 'ð¦ÄËÒÅÓÌÅÎÎÑ',
+text_striketrough : 'ðÅÒÅËÒÅÓÌÅÎÎÑ',
+text_blink : 'íÅÒÅÈÔ¦ÎÎÑ',
+text_none : 'ÎÅÍÁ¤',
+background_color : 'ëÏÌ¦Ò ÆÏÎÕ',
+background_image : 'æÏÎÏ×Å ÚÏÂÒÁÖÅÎÎÑ',
+background_repeat : 'ðÏ×ÔÏÒÉÔÉ',
+background_attachment : 'ðÒÏËÒÕÞÕ×ÁÎÎÑ ÆÏÎÏ×ÏÇÏ ÚÏÂÒÁÖÅÎÎÑ',
+background_hpos : 'çÏÒÉÚÏÎÔÁÌØÎÁ ÐÏÚÉæÑ',
+background_vpos : '÷ÅÒÔÉËÁÌØÎÁ ÐÏÚÉæÑ',
+block_wordspacing : '÷¦ÄÓÔÁÎØ Í¦Ö ÓÌÏ×ÁÍÉ',
+block_letterspacing : '÷¦ÄÓÔÁÎØ Í¦Ö Ì¦ÔÅÒÁÍÉ',
+block_vertical_alignment : '÷ÉÒ¦×ÎÀ×ÁÎÎÑ ÚÁ ×ÅÒÔÉËÁÌÌÀ',
+block_text_align : '÷ÉÒ¦×ÎÀ×ÁÎÎÑ ÔÅËÓÔÕ',
+block_text_indent : '÷¦ÄÓÔÕÐ ÐÅÒÛÏÇÏ ÒÑÄËÁ',
+block_whitespace : 'ðÒϦÌÉ',
+block_display : '÷¦ÄÏÂÒÁÖÅÎÎÑ',
+box_width : 'ûÉÒÉÎÁ',
+box_height : '÷ÉÓÏÔÁ',
+box_float : '÷ÉÒ¦×ÎÀ×ÁÎÎÑ Ú ÏÂÔ¦ËÁÎÎÑÍ',
+box_clear : 'úÁÂÏÒÏÎÁ ÏÂÔ¦ËÁÎÎÑ',
+padding : 'ðÏÌÑ',
+same : 'ôÅ Ö ÄÌÑ ¦ÎÛÉÈ',
+top : 'ú×ÅÒÈÕ',
+right : 'óÐÒÁ×Á',
+bottom : 'úÎÉÚÕ',
+left : 'ú̦×Á',
+margin : '÷¦ÄÓÔÕÐ',
+style : 'óÔÉÌØ',
+width : 'ûÉÒÉÎÁ',
+height : '÷ÉÓÏÔÁ',
+color : 'ëÏ̦Ò',
+list_type : 'ôÉÐ',
+bullet_image : 'íÁÒËÅÒ ÁÂÚÁÃÕ',
+position : 'ðÏÚÉæÑ',
+positioning_type : 'ôÉÐ',
+visibility : '÷ÉÄÉͦÓÔØ',
+zindex : 'îÁËÌÁÄÅÎÎÑ',
+overflow : 'ðÅÒÅÐÏ×ÎÅÎÎÑ',
+placement : 'òÏÚͦÝÅÎÎÑ',
+clip : 'ðÏÚÉæÏÎÕ×ÁÎÎÑ'
+});
diff --git a/tinyMCE/plugins/style/langs/vi.js b/tinyMCE/plugins/style/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..1394366a78cacc576cc1663d1601ecbacb30fbe5
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/vi.js
@@ -0,0 +1,66 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('style',{
+title : 'Sửa phong cách - CSS',
+styleinfo_desc : 'Sửa phong cách - CSS',
+apply : 'Áp dụng',
+text_tab : 'Chữ',
+background_tab : 'Nền',
+block_tab : 'Khối',
+box_tab : 'Há»™p',
+border_tab : 'Khung bao quanh',
+list_tab : 'Danh sách',
+positioning_tab : 'Vị trí',
+text_props : 'Chữ',
+text_font : 'Font',
+text_size : 'Cỡ',
+text_weight : 'Độ đậm',
+text_style : 'Kiểu',
+text_variant : 'Variant',
+text_lineheight : 'Khoảng cách dòng',
+text_case : 'Case',
+text_color : 'Màu',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'gạch chân',
+text_striketrough : 'gạch ngang qua',
+text_blink : 'nhấp nháy',
+text_none : 'không có gì',
+background_color : 'Màu nền',
+background_image : 'Ảnh nền',
+background_repeat : 'Lặp lại',
+background_attachment : 'Đính kèm',
+background_hpos : 'Vị trí nằm ngang',
+background_vpos : 'Vị trí nằm dọc',
+block_wordspacing : 'Khoảng cách từ',
+block_letterspacing : 'Khoảng cách chữ',
+block_vertical_alignment : 'Căn lề chiều dọc',
+block_text_align : 'Căn lề chữ',
+block_text_indent : 'Thụt lề chữ',
+block_whitespace : 'Khoảng trắng',
+block_display : 'Hiển thị',
+box_width : 'Chiều rộng',
+box_height : 'Chiều cao',
+box_float : 'LÆ¡ lá»­ng',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Áp dụng cho tất cả',
+top : 'Trên',
+right : 'Phải',
+bottom : 'Dưới',
+left : 'Trái',
+margin : 'Lề',
+style : 'Kiểu',
+width : 'Độ rộng',
+height : 'Chiều cao',
+color : 'Màu',
+list_type : 'Kiểu',
+bullet_image : 'Ảnh danh sách',
+position : 'Vị trí',
+positioning_type : 'Kiểu',
+visibility : 'Nhìn thấy được',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Vị trí',
+clip : 'Cắt'
+});
diff --git a/tinyMCE/plugins/style/langs/zh_cn.js b/tinyMCE/plugins/style/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/zh_cn.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/zh_cn_utf8.js b/tinyMCE/plugins/style/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/zh_cn_utf8.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/zh_tw.js b/tinyMCE/plugins/style/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/zh_tw.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/langs/zh_tw_utf8.js b/tinyMCE/plugins/style/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bed70f72bd4d7a2e0907982fdbedb4e4990a7d9
--- /dev/null
+++ b/tinyMCE/plugins/style/langs/zh_tw_utf8.js
@@ -0,0 +1,66 @@
+// UK lang variables
+
+tinyMCE.addToLang('style',{
+title : 'Edit CSS Style',
+styleinfo_desc : 'Edit CSS Style',
+apply : 'Apply',
+text_tab : 'Text',
+background_tab : 'Background',
+block_tab : 'Block',
+box_tab : 'Box',
+border_tab : 'Border',
+list_tab : 'List',
+positioning_tab : 'Positioning',
+text_props : 'Text',
+text_font : 'Font',
+text_size : 'Size',
+text_weight : 'Weight',
+text_style : 'Style',
+text_variant : 'Variant',
+text_lineheight : 'Line height',
+text_case : 'Case',
+text_color : 'Color',
+text_decoration : 'Decoration',
+text_overline : 'overline',
+text_underline : 'underline',
+text_striketrough : 'strikethrough',
+text_blink : 'blink',
+text_none : 'none',
+background_color : 'Background color',
+background_image : 'Background image',
+background_repeat : 'Repeat',
+background_attachment : 'Attachment',
+background_hpos : 'Horizontal position',
+background_vpos : 'Vertical position',
+block_wordspacing : 'Word spacing',
+block_letterspacing : 'Letter spacing',
+block_vertical_alignment : 'Vertical alignment',
+block_text_align : 'Text align',
+block_text_indent : 'Text indent',
+block_whitespace : 'Whitespace',
+block_display : 'Display',
+box_width : 'Width',
+box_height : 'Height',
+box_float : 'Float',
+box_clear : 'Clear',
+padding : 'Padding',
+same : 'Same for all',
+top : 'Top',
+right : 'Right',
+bottom : 'Bottom',
+left : 'Left',
+margin : 'Margin',
+style : 'Style',
+width : 'Width',
+height : 'Height',
+color : 'Color',
+list_type : 'Type',
+bullet_image : 'Bullet image',
+position : 'Position',
+positioning_type : 'Type',
+visibility : 'Visibility',
+zindex : 'Z-index',
+overflow : 'Overflow',
+placement : 'Placement',
+clip : 'Clip'
+});
diff --git a/tinyMCE/plugins/style/props.htm b/tinyMCE/plugins/style/props.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8bbd3db1ecacb8d8540f4dcf5b30f5bedab917d4
--- /dev/null
+++ b/tinyMCE/plugins/style/props.htm
@@ -0,0 +1,729 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_style_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/props.js"></script>
+	<link href="css/props.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+
+<body id="styleprops" onLoad="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onSubmit="updateAction();return false;" action="#">
+<div class="tabs">
+	<ul>
+		<li id="text_tab" class="current"><span><a href="javascript:mcTabs.displayTab('text_tab','text_panel');" onMouseDown="return false;">{$lang_style_text_tab}</a></span></li>
+		<li id="background_tab"><span><a href="javascript:mcTabs.displayTab('background_tab','background_panel');" onMouseDown="return false;">{$lang_style_background_tab}</a></span></li>
+		<li id="block_tab"><span><a href="javascript:mcTabs.displayTab('block_tab','block_panel');" onMouseDown="return false;">{$lang_style_block_tab}</a></span></li>
+		<li id="box_tab"><span><a href="javascript:mcTabs.displayTab('box_tab','box_panel');" onMouseDown="return false;">{$lang_style_box_tab}</a></span></li>
+		<li id="border_tab"><span><a href="javascript:mcTabs.displayTab('border_tab','border_panel');" onMouseDown="return false;">{$lang_style_border_tab}</a></span></li>
+		<li id="list_tab"><span><a href="javascript:mcTabs.displayTab('list_tab','list_panel');" onMouseDown="return false;">{$lang_style_list_tab}</a></span></li>
+		<li id="positioning_tab"><span><a href="javascript:mcTabs.displayTab('positioning_tab','positioning_panel');" onMouseDown="return false;">{$lang_style_positioning_tab}</a></span></li>
+	</ul>
+</div>
+
+<div class="panel_wrapper">
+<div id="text_panel" class="panel current">
+	<table border="0" width="100%">
+		<tr>
+			<td><label for="text_font">{$lang_style_text_font}</label></td>
+			<td colspan="3">
+				<select id="text_font" name="text_font" class="mceEditableSelect" onChange="alert(this.options[this.selectedIndex].value);"></select>
+			</td>
+		</tr>
+		<tr>
+			<td><label for="text_size">{$lang_style_text_size}</label></td>
+			<td>
+				<table border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><select id="text_size" name="text_size" class="mceEditableSelect"></select></td>
+						<td>&nbsp;</td>
+      <td><select id="text_size_measurement" name="text_size_measurement"></select></td>
+					</tr>
+				</table>
+			</td>
+			<td><label for="text_weight">{$lang_style_text_weight}</label></td>
+			<td>
+				<select id="text_weight" name="text_weight"></select>
+			</td>
+		</tr>
+		<tr>
+			<td><label for="text_style">{$lang_style_text_style}</label></td>
+			<td>
+				<select id="text_style" name="text_style" class="mceEditableSelect"></select>
+			</td>
+			<td><label for="text_variant">{$lang_style_text_variant}</label></td>
+			<td>
+				<select id="text_variant" name="text_variant"></select>
+			</td>
+		</tr>
+		<tr>
+			<td><label for="text_lineheight">{$lang_style_text_lineheight}</label></td>
+			<td>
+				<table border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td>
+							<select id="text_lineheight" name="text_lineheight" class="mceEditableSelect"></select>
+						</td>
+						<td>&nbsp;</td>
+      <td><select id="text_lineheight_measurement" name="text_lineheight_measurement"></select></td>
+					</tr>
+				</table>
+			</td>
+			<td><label for="text_case">{$lang_style_text_case}</label></td>
+			<td>
+				<select id="text_case" name="text_case"></select>
+			</td>
+		</tr>
+		<tr>
+			<td><label for="text_color">{$lang_style_text_color}</label></td>
+			<td colspan="2">
+				<table border="0" cellpadding="0" cellspacing="0">
+					<tr>
+						<td><input id="text_color" name="text_color" type="text" value="" size="9" onChange="updateColor('text_color_pick','text_color');" /></td>
+						<td id="text_color_pickcontainer">&nbsp;</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr>
+			<td valign="top" style="vertical-align: top; padding-top: 3px;">{$lang_style_text_decoration}</td>
+			<td colspan="2">
+				<table border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><input id="text_underline" name="text_underline" class="checkbox" type="checkbox" /></td>
+						<td><label for="text_underline">{$lang_style_text_underline}</label></td>
+					</tr>
+					<tr>
+						<td><input id="text_overline" name="text_overline" class="checkbox" type="checkbox" /></td>
+						<td><label for="text_overline">{$lang_style_text_overline}</label></td>
+					</tr>
+					<tr>
+						<td><input id="text_linethrough" name="text_linethrough" class="checkbox" type="checkbox" /></td>
+						<td><label for="text_linethrough">{$lang_style_text_striketrough}</label></td>
+					</tr>
+					<tr>
+						<td><input id="text_blink" name="text_blink" class="checkbox" type="checkbox" /></td>
+						<td><label for="text_blink">{$lang_style_text_blink}</label></td>
+					</tr>
+					<tr>
+						<td><input id="text_none" name="text_none" class="checkbox" type="checkbox" /></td>
+						<td><label for="text_none">{$lang_style_text_none}</label></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</div>
+
+<div id="background_panel" class="panel">
+	<table border="0">
+		<tr>
+			<td><label for="background_color">{$lang_style_background_color}</label></td>
+			<td>
+				<table border="0" cellpadding="0" cellspacing="0">
+					<tr>
+						<td><input id="background_color" name="background_color" type="text" value="" size="9" onChange="updateColor('background_color_pick','background_color');" /></td>
+						<td id="background_color_pickcontainer">&nbsp;</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+
+		<tr>
+			<td><label for="background_image">{$lang_style_background_image}</label></td>
+			<td><table border="0" cellspacing="0" cellpadding="0">
+				<tr> 
+				  <td><input id="background_image" name="background_image" type="text" /></td> 
+				  <td id="background_image_browser">&nbsp;</td>
+				</tr>
+				</table>
+			</td>
+		</tr>
+
+		<tr>
+			<td><label for="background_repeat">{$lang_style_background_repeat}</label></td>
+			<td><select id="background_repeat" name="background_repeat" class="mceEditableSelect"></select></td>
+		</tr>
+
+		<tr>
+			<td><label for="background_attachment">{$lang_style_background_attachment}</label></td>
+			<td><select id="background_attachment" name="background_attachment" class="mceEditableSelect"></select></td>
+		</tr>
+
+		<tr>
+			<td><label for="background_hpos">{$lang_style_background_hpos}</label></td>
+			<td>
+				<table border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><select id="background_hpos" name="background_hpos" class="mceEditableSelect"></select></td>
+						<td>&nbsp;</td>
+      <td><select id="background_hpos_measurement" name="background_hpos_measurement"></select></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+
+		<tr>
+			<td><label for="background_vpos">{$lang_style_background_vpos}</label></td>
+			<td>
+				<table border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><select id="background_vpos" name="background_vpos" class="mceEditableSelect"></select></td>
+						<td>&nbsp;</td>
+      <td><select id="background_vpos_measurement" name="background_vpos_measurement"></select></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</div>
+
+<div id="block_panel" class="panel">
+	<table border="0">
+		<tr>
+			<td><label for="block_wordspacing">{$lang_style_block_wordspacing}</label></td>
+			<td>
+				<table border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><select id="block_wordspacing" name="block_wordspacing" class="mceEditableSelect"></select></td>
+						<td>&nbsp;</td>
+      <td><select id="block_wordspacing_measurement" name="block_wordspacing_measurement"></select></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+
+		<tr>
+			<td><label for="block_letterspacing">{$lang_style_block_letterspacing}</label></td>
+			<td>
+				<table border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><select id="block_letterspacing" name="block_letterspacing" class="mceEditableSelect"></select></td>
+						<td>&nbsp;</td>
+      <td><select id="block_letterspacing_measurement" name="block_letterspacing_measurement"></select></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+
+		<tr>
+			<td><label for="block_vertical_alignment">{$lang_style_block_vertical_alignment}</label></td>
+			<td><select id="block_vertical_alignment" name="block_vertical_alignment" class="mceEditableSelect"></select></td>
+		</tr>
+
+		<tr>
+			<td><label for="block_text_align">{$lang_style_block_text_align}</label></td>
+			<td><select id="block_text_align" name="block_text_align" class="mceEditableSelect"></select></td>
+		</tr>
+
+		<tr>
+			<td><label for="block_text_indent">{$lang_style_block_text_indent}</label></td>
+			<td>
+				<table border="0" cellspacing="0" cellpadding="0">
+					<tr>
+						<td><input type="text" id="block_text_indent" name="block_text_indent" /></td>
+						<td>&nbsp;</td>
+      <td><select id="block_text_indent_measurement" name="block_text_indent_measurement"></select></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+
+		<tr>
+			<td><label for="block_whitespace">{$lang_style_block_whitespace}</label></td>
+			<td><select id="block_whitespace" name="block_whitespace" class="mceEditableSelect"></select></td>
+		</tr>
+
+		<tr>
+			<td><label for="block_display">{$lang_style_block_display}</label></td>
+			<td><select id="block_display" name="block_display" class="mceEditableSelect"></select></td>
+		</tr>
+	</table>
+</div>
+
+<div id="box_panel" class="panel">
+<table border="0">
+	<tr>
+		<td><label for="box_width">{$lang_style_box_width}</label></td>
+		<td>
+			<table border="0" cellspacing="0" cellpadding="0">
+				<tr>
+					<td><input type="text" id="box_width" name="box_width" class="mceEditableSelect" onChange="synch('box_width','positioning_width');" /></td>
+					<td>&nbsp;</td>
+     <td><select id="box_width_measurement" name="box_width_measurement"></select></td>
+				</tr>
+			</table>
+		</td>
+		<td>&nbsp;&nbsp;&nbsp;<label for="box_float">{$lang_style_box_float}</label></td>
+		<td><select id="box_float" name="box_float" class="mceEditableSelect"></select></td>
+	</tr>
+
+	<tr>
+		<td><label for="box_height">{$lang_style_box_height}</label></td>
+		<td>
+			<table border="0" cellspacing="0" cellpadding="0">
+				<tr>
+					<td><input type="text" id="box_height" name="box_height" class="mceEditableSelect" onChange="synch('box_height','positioning_height');" /></td>
+					<td>&nbsp;</td>
+     <td><select id="box_height_measurement" name="box_height_measurement"></select></td>
+				</tr>
+			</table>
+		</td>
+		<td>&nbsp;&nbsp;&nbsp;<label for="box_clear">{$lang_style_box_clear}</label></td>
+		<td><select id="box_clear" name="box_clear" class="mceEditableSelect"></select></td>
+	</tr>
+</table>
+<div style="float: left; width: 49%">
+	<fieldset>
+		<legend>{$lang_style_padding}</legend>
+
+		<table border="0">
+			<tr>
+				<td>&nbsp;</td>
+				<td><input type="checkbox" id="box_padding_same" name="box_padding_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_padding');" /> <label for="box_padding_same">{$lang_style_same}</label></td>
+			</tr>
+			<tr>
+				<td><label for="box_padding_top">{$lang_style_top}</label></td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_padding_top" name="box_padding_top" class="mceEditableSelect" /></td>
+							<td>&nbsp;</td>
+       <td><select id="box_padding_top_measurement" name="box_padding_top_measurement"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_padding_right">{$lang_style_right}</label></td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_padding_right" name="box_padding_right" class="mceEditableSelect" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="box_padding_right_measurement" name="box_padding_right_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_padding_bottom">{$lang_style_bottom}</label></td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_padding_bottom" name="box_padding_bottom" class="mceEditableSelect" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="box_padding_bottom_measurement" name="box_padding_bottom_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_padding_left">{$lang_style_left}</label></td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_padding_left" name="box_padding_left" class="mceEditableSelect" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="box_padding_left_measurement" name="box_padding_left_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+
+<div style="float: right; width: 49%">
+	<fieldset>
+		<legend>{$lang_style_margin}</legend>
+
+		<table border="0">
+			<tr>
+				<td>&nbsp;</td>
+				<td><input type="checkbox" id="box_margin_same" name="box_margin_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_margin');" /> <label for="box_margin_same">{$lang_style_same}</label></td>
+			</tr>
+			<tr>
+				<td><label for="box_margin_top">{$lang_style_top}</label></td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_margin_top" name="box_margin_top" class="mceEditableSelect" /></td>
+							<td>&nbsp;</td>
+       <td><select id="box_margin_top_measurement" name="box_margin_top_measurement"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_margin_right">{$lang_style_right}</label></td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_margin_right" name="box_margin_right" class="mceEditableSelect" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="box_margin_right_measurement" name="box_margin_right_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_margin_bottom">{$lang_style_bottom}</label></td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_margin_bottom" name="box_margin_bottom" class="mceEditableSelect" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="box_margin_bottom_measurement" name="box_margin_bottom_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td><label for="box_margin_left">{$lang_style_left}</label></td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="box_margin_left" name="box_margin_left" class="mceEditableSelect" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="box_margin_left_measurement" name="box_margin_left_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+<br style="clear: both" />
+</div>
+
+<div id="border_panel" class="panel">
+<table border="0" cellspacing="0" cellpadding="0" width="100%">
+<tr>
+	<td class="tdelim">&nbsp;</td>
+	<td class="tdelim delim">&nbsp;</td>
+	<td class="tdelim">{$lang_style_style}</td>
+	<td class="tdelim delim">&nbsp;</td>
+	<td class="tdelim">{$lang_style_width}</td>
+	<td class="tdelim delim">&nbsp;</td>
+	<td class="tdelim">{$lang_style_color}</td>
+</tr>
+
+<tr>
+	<td>&nbsp;</td>
+	<td class="delim">&nbsp;</td>
+	<td><input type="checkbox" id="border_style_same" name="border_style_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_style');" /> <label for="border_style_same">{$lang_style_same}</label></td>
+	<td class="delim">&nbsp;</td>
+	<td><input type="checkbox" id="border_width_same" name="border_width_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_width');" /> <label for="border_width_same">{$lang_style_same}</label></td>
+	<td class="delim">&nbsp;</td>
+	<td><input type="checkbox" id="border_color_same" name="border_color_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_color');" /> <label for="border_color_same">{$lang_style_same}</label></td>
+</tr>
+
+<tr>
+	<td>{$lang_style_top}</td>
+	<td class="delim">&nbsp;</td>
+	<td><select id="border_style_top" name="border_style_top" class="mceEditableSelect"></select></td>
+	<td class="delim">&nbsp;</td>
+	<td>
+		<table border="0" cellspacing="0" cellpadding="0">
+			<tr>
+				<td><select id="border_width_top" name="border_width_top" class="mceEditableSelect"></select></td>
+				<td>&nbsp;</td>
+    <td><select id="border_width_top_measurement" name="border_width_top_measurement"></select></td>
+			</tr>
+		</table>
+	</td>
+	<td class="delim">&nbsp;</td>
+	<td>
+		<table border="0" cellpadding="0" cellspacing="0">
+			<tr>
+				<td><input id="border_color_top" name="border_color_top" type="text" value="" size="9" onChange="updateColor('border_color_top_pick','border_color_top');" /></td>
+				<td id="border_color_top_pickcontainer">&nbsp;</td>
+			</tr>
+		</table>
+	</td>
+</tr>
+
+<tr>
+	<td>{$lang_style_right}</td>
+	<td class="delim">&nbsp;</td>
+	<td><select id="border_style_right" name="border_style_right" class="mceEditableSelect" disabled="disabled"></select></td>
+	<td class="delim">&nbsp;</td>
+	<td>
+		<table border="0" cellspacing="0" cellpadding="0">
+			<tr>
+				<td><select id="border_width_right" name="border_width_right" class="mceEditableSelect" disabled="disabled"></select></td>
+				<td>&nbsp;</td>
+    <td><select id="border_width_right_measurement" name="border_width_right_measurement" disabled="disabled"></select></td>
+			</tr>
+		</table>
+	</td>
+	<td class="delim">&nbsp;</td>
+	<td>
+		<table border="0" cellpadding="0" cellspacing="0">
+			<tr>
+				<td><input id="border_color_right" name="border_color_right" type="text" value="" size="9" onChange="updateColor('border_color_right_pick','border_color_right');" disabled="disabled" /></td>
+				<td id="border_color_right_pickcontainer">&nbsp;</td>
+			</tr>
+		</table>
+	</td>
+</tr>
+
+<tr>
+	<td>{$lang_style_bottom}</td>
+	<td class="delim">&nbsp;</td>
+	<td><select id="border_style_bottom" name="border_style_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
+	<td class="delim">&nbsp;</td>
+	<td>
+		<table border="0" cellspacing="0" cellpadding="0">
+			<tr>
+				<td><select id="border_width_bottom" name="border_width_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
+				<td>&nbsp;</td>
+    <td><select id="border_width_bottom_measurement" name="border_width_bottom_measurement" disabled="disabled"></select></td>
+			</tr>
+		</table>
+	</td>
+	<td class="delim">&nbsp;</td>
+	<td>
+		<table border="0" cellpadding="0" cellspacing="0">
+			<tr>
+				<td><input id="border_color_bottom" name="border_color_bottom" type="text" value="" size="9" onChange="updateColor('border_color_bottom_pick','border_color_bottom');" disabled="disabled" /></td>
+				<td id="border_color_bottom_pickcontainer">&nbsp;</td>
+			</tr>
+		</table>
+	</td>
+</tr>
+
+<tr>
+	<td>{$lang_style_left}</td>
+	<td class="delim">&nbsp;</td>
+	<td><select id="border_style_left" name="border_style_left" class="mceEditableSelect" disabled="disabled"></select></td>
+	<td class="delim">&nbsp;</td>
+	<td>
+		<table border="0" cellspacing="0" cellpadding="0">
+			<tr>
+				<td><select id="border_width_left" name="border_width_left" class="mceEditableSelect" disabled="disabled"></select></td>
+				<td>&nbsp;</td>
+    <td><select id="border_width_left_measurement" name="border_width_left_measurement" disabled="disabled"></select></td>
+			</tr>
+		</table>
+	</td>
+	<td class="delim">&nbsp;</td>
+	<td>
+		<table border="0" cellpadding="0" cellspacing="0">
+			<tr>
+				<td><input id="border_color_left" name="border_color_left" type="text" value="" size="9" onChange="updateColor('border_color_left_pick','border_color_left');" disabled="disabled" /></td>
+				<td id="border_color_left_pickcontainer">&nbsp;</td>
+			</tr>
+		</table>
+	</td>
+</tr>
+</table>
+</div>
+
+<div id="list_panel" class="panel">
+	<table border="0">
+		<tr>
+			<td><label for="list_type">{$lang_style_list_type}</label></td>
+			<td><select id="list_type" name="list_type" class="mceEditableSelect"></select></td>
+		</tr>
+
+		<tr>
+			<td><label for="list_bullet_image">{$lang_style_bullet_image}</label></td>
+			<td><input id="list_bullet_image" name="list_bullet_image" type="text" /></td>
+		</tr>
+
+		<tr>
+			<td><label for="list_position">{$lang_style_position}</label></td>
+			<td><select id="list_position" name="list_position" class="mceEditableSelect"></select></td>
+		</tr>
+	</table>
+</div>
+
+<div id="positioning_panel" class="panel">
+<table border="0">
+	<tr>
+		<td><label for="positioning_type">{$lang_style_positioning_type}</label></td>
+		<td><select id="positioning_type" name="positioning_type" class="mceEditableSelect"></select></td>
+		<td>&nbsp;&nbsp;&nbsp;<label for="positioning_visibility">{$lang_style_visibility}</label></td>
+		<td><select id="positioning_visibility" name="positioning_visibility" class="mceEditableSelect"></select></td>
+	</tr>
+
+	<tr>
+		<td><label for="positioning_width">{$lang_style_width}</label></td>
+		<td>
+			<table border="0" cellspacing="0" cellpadding="0">
+				<tr>
+					<td><input type="text" id="positioning_width" name="positioning_width" onChange="synch('positioning_width','box_width');" /></td>
+					<td>&nbsp;</td>
+     <td><select id="positioning_width_measurement" name="positioning_width_measurement"></select></td>
+				</tr>
+			</table>
+		</td>
+		<td>&nbsp;&nbsp;&nbsp;<label for="positioning_zindex">{$lang_style_zindex}</label></td>
+		<td><input type="text" id="positioning_zindex" name="positioning_zindex" /></td>
+	</tr>
+
+	<tr>
+		<td><label for="positioning_height">{$lang_style_height}</label></td>
+		<td>
+			<table border="0" cellspacing="0" cellpadding="0">
+				<tr>
+					<td><input type="text" id="positioning_height" name="positioning_height" onChange="synch('positioning_height','box_height');" /></td>
+					<td>&nbsp;</td>
+     <td><select id="positioning_height_measurement" name="positioning_height_measurement"></select></td>
+				</tr>
+			</table>
+		</td>
+		<td>&nbsp;&nbsp;&nbsp;<label for="positioning_overflow">{$lang_style_overflow}</label></td>
+		<td><select id="positioning_overflow" name="positioning_overflow" class="mceEditableSelect"></select></td>
+	</tr>
+</table>
+
+<div style="float: left; width: 49%">
+	<fieldset>
+		<legend>{$lang_style_placement}</legend>
+
+		<table border="0">
+			<tr>
+				<td>&nbsp;</td>
+				<td><input type="checkbox" id="positioning_placement_same" name="positioning_placement_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_placement');" /> <label for="positioning_placement_same">{$lang_style_same}</label></td>
+			</tr>
+			<tr>
+				<td>{$lang_style_top}</td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_placement_top" name="positioning_placement_top" /></td>
+							<td>&nbsp;</td>
+       <td><select id="positioning_placement_top_measurement" name="positioning_placement_top_measurement"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{$lang_style_right}</td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_placement_right" name="positioning_placement_right" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="positioning_placement_right_measurement" name="positioning_placement_right_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{$lang_style_bottom}</td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_placement_bottom" name="positioning_placement_bottom" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="positioning_placement_bottom_measurement" name="positioning_placement_bottom_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{$lang_style_left}</td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_placement_left" name="positioning_placement_left" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="positioning_placement_left_measurement" name="positioning_placement_left_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+
+<div style="float: right; width: 49%">
+	<fieldset>
+		<legend>{$lang_style_clip}</legend>
+
+		<table border="0">
+			<tr>
+				<td>&nbsp;</td>
+				<td><input type="checkbox" id="positioning_clip_same" name="positioning_clip_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_clip');" /> <label for="positioning_clip_same">{$lang_style_same}</label></td>
+			</tr>
+			<tr>
+				<td>{$lang_style_top}</td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_clip_top" name="positioning_clip_top" /></td>
+							<td>&nbsp;</td>
+       <td><select id="positioning_clip_top_measurement" name="positioning_clip_top_measurement"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{$lang_style_right}</td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_clip_right" name="positioning_clip_right" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="positioning_clip_right_measurement" name="positioning_clip_right_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{$lang_style_bottom}</td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_clip_bottom" name="positioning_clip_bottom" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="positioning_clip_bottom_measurement" name="positioning_clip_bottom_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>{$lang_style_left}</td>
+				<td>
+					<table border="0" cellspacing="0" cellpadding="0">
+						<tr>
+							<td><input type="text" id="positioning_clip_left" name="positioning_clip_left" disabled="disabled" /></td>
+							<td>&nbsp;</td>
+       <td><select id="positioning_clip_left_measurement" name="positioning_clip_left_measurement" disabled="disabled"></select></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</fieldset>
+</div>
+<br style="clear: both" />
+</div>
+</div>
+
+<div class="mceActionPanel">
+	<div style="float: left">
+		<div style="float: left"><input type="button" id="insert" name="insert" value="{$lang_update}" onClick="updateAction();" /></div>
+
+		<div style="float: left">&nbsp;<input type="button" id="apply" name="apply" value="{$lang_style_apply}" onClick="applyAction();" class="updateButton" /></div>
+		<br style="clear: both" />
+	</div>
+
+	<div style="float: right">
+		<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onClick="tinyMCEPopup.close();" />
+	</div>
+</div>
+</form>
+
+<div style="display: none">
+	<div id="container"></div>
+</div>
+</body>
+</html>
diff --git a/tinyMCE/plugins/style/readme.txt b/tinyMCE/plugins/style/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/style/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/table/cell.htm b/tinyMCE/plugins/table/cell.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7171d4faa6167aaab3d2ffb589e7fffcd03dc588
--- /dev/null
+++ b/tinyMCE/plugins/table/cell.htm
@@ -0,0 +1,182 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_table_cell_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/cell.js"></script>
+	<link href="css/cell.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body id="tablecell" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+	<form onsubmit="updateAction();return false;" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_table_general_tab}</a></span></li>
+				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_table_advanced_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{$lang_table_general_props}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td><label for="align">{$lang_table_align}</label></td>
+							<td>
+								<select id="align" name="align">
+									<option value="">{$lang_not_set}</option>
+									<option value="center">{$lang_table_align_middle}</option>
+									<option value="left">{$lang_table_align_left}</option>
+									<option value="right">{$lang_table_align_right}</option>
+								</select>
+							</td>
+		
+							<td><label for="celltype">{$lang_table_cell_type}</label></td>
+							<td>
+								<select id="celltype" name="celltype">
+									<option value="td">{$lang_table_td}</option>
+									<option value="th">{$lang_table_th}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="valign">{$lang_table_valign}</label></td>
+							<td>
+								<select id="valign" name="valign">
+									<option value="">{$lang_not_set}</option>
+									<option value="top">{$lang_table_align_top}</option>
+									<option value="middle">{$lang_table_align_middle}</option>
+									<option value="bottom">{$lang_table_align_bottom}</option>
+								</select>
+							</td>
+
+							<td><label for="scope">{$lang_table_scope}</label></td>
+							<td>
+								<select id="scope" name="scope">
+									<option value="">{$lang_not_set}</option>
+									<option value="col">{$lang_table_col}</option>
+									<option value="row">{$lang_table_row}</option>
+									<option value="rowgroup">{$lang_table_rowgroup}</option>
+									<option value="colgroup">{$lang_table_colgroup}</option>
+								</select>
+							</td>
+
+						</tr>
+
+						<tr>
+							<td><label for="width">{$lang_table_width}</label></td>
+							<td><input id="width" name="width" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
+
+							<td><label for="height">{$lang_table_height}</label></td>
+							<td><input id="height" name="height" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
+						</tr>
+
+						<tr id="styleSelectRow">
+							<td><label for="class">{$lang_class_name}</label></td>
+							<td colspan="3">
+								<select id="class" name="class">
+									<option value="" selected="selected">{$lang_not_set}</option>
+								</select>
+							</td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_table_advanced_props}</legend>
+
+					<table border="0" cellpadding="0" cellspacing="4">
+						<tr>
+							<td class="column1"><label for="id">{$lang_table_id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> 
+						</tr>
+
+						<tr>
+							<td><label for="style">{$lang_table_style}</label></td>
+							<td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="dir">{$lang_table_langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir" style="width: 200px"> 
+										<option value="">{$lang_not_set}</option> 
+										<option value="ltr">{$lang_table_ltr}</option> 
+										<option value="rtl">{$lang_table_rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="lang">{$lang_table_langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" style="width: 200px" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="backgroundimage">{$lang_table_bgimage}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>
+										<td id="backgroundimagebrowsercontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="bordercolor">{$lang_table_bordercolor}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>
+										<td id="bordercolor_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="bgcolor">{$lang_table_bgcolor}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
+										<td id="bgcolor_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div>
+				<select id="action" name="action">
+					<option value="cell">{$lang_table_cell_cell}</option>
+					<option value="row">{$lang_table_cell_row}</option>
+					<option value="all">{$lang_table_cell_all}</option>
+				</select>
+			</div>
+
+			<div style="float: left">
+				<div><input type="button" id="insert" name="insert" value="{$lang_update}" onclick="updateAction();" /></div>
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+	</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/table/css/cell.css b/tinyMCE/plugins/table/css/cell.css
new file mode 100644
index 0000000000000000000000000000000000000000..a067ecdfedbc8a1140bec2ec0d3b2c24e6ceb8fc
--- /dev/null
+++ b/tinyMCE/plugins/table/css/cell.css
@@ -0,0 +1,17 @@
+/* CSS file for cell dialog in the table plugin */
+
+.panel_wrapper div.current {
+	height: 200px;
+}
+
+.advfield {
+	width: 200px;
+}
+
+#action {
+	margin-bottom: 3px;
+}
+
+#class {
+	width: 150px;
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/table/css/row.css b/tinyMCE/plugins/table/css/row.css
new file mode 100644
index 0000000000000000000000000000000000000000..1f7755dafa8eb34a1604c80fa4a92a7626b8bc2b
--- /dev/null
+++ b/tinyMCE/plugins/table/css/row.css
@@ -0,0 +1,25 @@
+/* CSS file for row dialog in the table plugin */
+
+.panel_wrapper div.current {
+	height: 200px;
+}
+
+.advfield {
+	width: 200px;
+}
+
+#action {
+	margin-bottom: 3px;
+}
+
+#rowtype,#align,#valign,#class,#height {
+	width: 150px;
+}
+
+#height {
+	width: 50px;	
+}
+
+.col2 {
+	padding-left: 20px;
+}
diff --git a/tinyMCE/plugins/table/css/table.css b/tinyMCE/plugins/table/css/table.css
new file mode 100644
index 0000000000000000000000000000000000000000..804f766eed669449c56f6218aef6ee2f68e72399
--- /dev/null
+++ b/tinyMCE/plugins/table/css/table.css
@@ -0,0 +1,13 @@
+/* CSS file for table dialog in the table plugin */
+
+.panel_wrapper div.current {
+	height: 220px;
+}
+
+.advfield {
+	width: 200px;
+}
+
+#class {
+	width: 150px;
+}
diff --git a/tinyMCE/plugins/table/editor_plugin.js b/tinyMCE/plugins/table/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f308f868e60719368cee9ac84f17c9825863b1a
--- /dev/null
+++ b/tinyMCE/plugins/table/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('table');var TinyMCE_TablePlugin={getInfo:function(){return{longname:'Tables',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(tinyMCE.isGecko){var doc=inst.getDoc();tinyMCE.addEvent(doc,"mouseup",TinyMCE_TablePlugin._mouseDownHandler)}inst.tableRowClipboard=null},getControlHTML:function(control_name){var controls=new Array(['table','table.gif','lang_table_desc','mceInsertTable',true],['delete_table','table_delete.gif','lang_table_del','mceTableDelete'],['delete_col','table_delete_col.gif','lang_table_delete_col_desc','mceTableDeleteCol'],['delete_row','table_delete_row.gif','lang_table_delete_row_desc','mceTableDeleteRow'],['col_after','table_insert_col_after.gif','lang_table_col_after_desc','mceTableInsertColAfter'],['col_before','table_insert_col_before.gif','lang_table_col_before_desc','mceTableInsertColBefore'],['row_after','table_insert_row_after.gif','lang_table_row_after_desc','mceTableInsertRowAfter'],['row_before','table_insert_row_before.gif','lang_table_row_before_desc','mceTableInsertRowBefore'],['row_props','table_row_props.gif','lang_table_row_desc','mceTableRowProps',true],['cell_props','table_cell_props.gif','lang_table_cell_desc','mceTableCellProps',true],['split_cells','table_split_cells.gif','lang_table_split_cells_desc','mceTableSplitCells',true],['merge_cells','table_merge_cells.gif','lang_table_merge_cells_desc','mceTableMergeCells',true]);for(var i=0;i<controls.length;i++){var but=controls[i];var cmd='tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+but[3]+'\', '+(but.length>4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+');return false;';if(but[0]==control_name)return tinyMCE.getButtonHTML(control_name,but[2],'{$pluginurl}/images/'+but[1],but[3],(but.length>4?but[4]:false))}if(control_name=="tablecontrols"){var html="";html+=tinyMCE.getControlHTML("table");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_props");html+=tinyMCE.getControlHTML("cell_props");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_before");html+=tinyMCE.getControlHTML("row_after");html+=tinyMCE.getControlHTML("delete_row");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("col_before");html+=tinyMCE.getControlHTML("col_after");html+=tinyMCE.getControlHTML("delete_col");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("split_cells");html+=tinyMCE.getControlHTML("merge_cells");return html}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceInsertTable":case"mceTableRowProps":case"mceTableCellProps":case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":case"mceTableDelete":var inst=tinyMCE.getInstanceById(editor_id);inst.execCommand('mceBeginUndoLevel');TinyMCE_TablePlugin._doExecCommand(editor_id,element,command,user_interface,value);inst.execCommand('mceEndUndoLevel');return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){var colspan="1",rowspan="1",tdElm;var inst=tinyMCE.getInstanceById(editor_id);tinyMCE.switchClass(editor_id+'_table','mceButtonNormal');tinyMCE.switchClass(editor_id+'_delete_table','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_row_props','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_cell_props','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_row_before','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_row_after','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_delete_row','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_col_before','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_col_after','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_delete_col','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_split_cells','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_merge_cells','mceButtonDisabled');if(tdElm=tinyMCE.getParentElement(node,"td,th")){tinyMCE.switchClass(editor_id+'_cell_props','mceButtonSelected');tinyMCE.switchClass(editor_id+'_delete_table','mceButtonNormal');tinyMCE.switchClass(editor_id+'_row_before','mceButtonNormal');tinyMCE.switchClass(editor_id+'_row_after','mceButtonNormal');tinyMCE.switchClass(editor_id+'_delete_row','mceButtonNormal');tinyMCE.switchClass(editor_id+'_col_before','mceButtonNormal');tinyMCE.switchClass(editor_id+'_col_after','mceButtonNormal');tinyMCE.switchClass(editor_id+'_delete_col','mceButtonNormal');colspan=tinyMCE.getAttrib(tdElm,"colspan");rowspan=tinyMCE.getAttrib(tdElm,"rowspan");colspan=colspan==""?"1":colspan;rowspan=rowspan==""?"1":rowspan;if(colspan!="1"||rowspan!="1")tinyMCE.switchClass(editor_id+'_split_cells','mceButtonNormal')}if(tinyMCE.getParentElement(node,"tr"))tinyMCE.switchClass(editor_id+'_row_props','mceButtonSelected');if(tinyMCE.getParentElement(node,"table")){tinyMCE.switchClass(editor_id+'_table','mceButtonSelected');tinyMCE.switchClass(editor_id+'_merge_cells','mceButtonNormal')}},_mouseDownHandler:function(e){var elm=tinyMCE.isMSIE?event.srcElement:e.target;var focusElm=tinyMCE.selectedInstance.getFocusElement();if(elm.nodeName=="BODY"&&(focusElm.nodeName=="TD"||focusElm.nodeName=="TH"||(focusElm.parentNode&&focusElm.parentNode.nodeName=="TD")||(focusElm.parentNode&&focusElm.parentNode.nodeName=="TH"))){window.setTimeout(function(){var tableElm=tinyMCE.getParentElement(focusElm,"table");tinyMCE.handleVisualAid(tableElm,true,tinyMCE.settings['visual'],tinyMCE.selectedInstance)},10)}},_doExecCommand:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id);var focusElm=inst.getFocusElement();var trElm=tinyMCE.getParentElement(focusElm,"tr");var tdElm=tinyMCE.getParentElement(focusElm,"td,th");var tableElm=tinyMCE.getParentElement(focusElm,"table");var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute("border"):"";if(trElm&&tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i<ar.length;i++){if(ar[i].length>0&&inArray(ar[i],v))return true;if(ar[i]==v)return true}return false}function makeTD(){var newTD=doc.createElement("td");newTD.innerHTML="&nbsp;"}function getColRowSpan(td){var colspan=tinyMCE.getAttrib(td,"colspan");var rowspan=tinyMCE.getAttrib(td,"rowspan");colspan=colspan==""?1:parseInt(colspan);rowspan=rowspan==""?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan}}function getCellPos(grid,td){var x,y;for(y=0;y<grid.length;y++){for(x=0;x<grid[y].length;x++){if(grid[y][x]==td)return{cellindex:x,rowindex:y}}}return null}function getCell(grid,row,col){if(grid[row]&&grid[row][col])return grid[row][col];return null}function getTableGrid(table){var grid=new Array(),rows=table.rows,x,y,td,sd,xstart,x2,y2;for(y=0;y<rows.length;y++){for(x=0;x<rows[y].cells.length;x++){td=rows[y].cells[x];sd=getColRowSpan(td);for(xstart=x;grid[y]&&grid[y][xstart];xstart++);for(y2=y;y2<y+sd['rowspan'];y2++){if(!grid[y2])grid[y2]=new Array();for(x2=xstart;x2<xstart+sd['colspan'];x2++)grid[y2][x2]=td}}}return grid}function trimRow(table,tr,td,new_tr){var grid=getTableGrid(table),cpos=getCellPos(grid,td);var cells,lastElm;if(new_tr.cells.length!=tr.childNodes.length){cells=tr.childNodes;lastElm=null;for(var x=0;td=getCell(grid,cpos.rowindex,x);x++){var remove=true;var sd=getColRowSpan(td);if(inArray(cells,td)){new_tr.childNodes[x]._delete=true}else if((lastElm==null||td!=lastElm)&&sd.colspan>1){for(var i=x;i<x+td.colSpan;i++)new_tr.childNodes[i]._delete=true}if((lastElm==null||td!=lastElm)&&sd.rowspan>1)td.rowSpan=sd.rowspan+1;lastElm=td}deleteMarked(tableElm)}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node}return null}function nextElm(node,names){var namesAr=names.split(',');while((node=node.nextSibling)!=null){for(var i=0;i<namesAr.length;i++){if(node.nodeName.toLowerCase()==namesAr[i].toLowerCase())return node}}return null}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,"TR");if(tr._delete){tr.parentNode.removeChild(tr);continue}var td=tr.cells[0];if(td.cells>1){do{var nexttd=nextElm(td,"TD,TH");if(td._delete)td.parentNode.removeChild(td)}while((td=nexttd)!=null)}}while((tr=next)!=null)}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i<rowspan&&trNext;i++){var newTD=doc.createElement("td");newTD.innerHTML="&nbsp;";if(tinyMCE.isMSIE)trNext.insertBefore(newTD,trNext.cells(td_elm.cellIndex));else trNext.insertBefore(newTD,trNext.cells[td_elm.cellIndex]);trNext=nextElm(trNext,"TR")}}function copyRow(doc,table,tr){var grid=getTableGrid(table);var newTR=tr.cloneNode(false);var cpos=getCellPos(grid,tr.cells[0]);var lastCell=null;var tableBorder=tinyMCE.getAttrib(table,"border");var tdElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){var newTD=null;if(lastCell!=tdElm){for(var i=0;i<tr.cells.length;i++){if(tdElm==tr.cells[i]){newTD=tdElm.cloneNode(true);break}}}if(newTD==null){newTD=doc.createElement("td");newTD.innerHTML="&nbsp;"}newTD.colSpan=1;newTD.rowSpan=1;newTR.appendChild(newTD);lastCell=tdElm}return newTR}switch(command){case"mceTableRowProps":if(trElm==null)return true;if(user_interface){var template=new Array();template['file']='../../plugins/table/row.htm';template['width']=380;template['height']=295;template['width']+=tinyMCE.getLang('lang_table_rowprops_delta_width',0);template['height']+=tinyMCE.getLang('lang_table_rowprops_delta_height',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,inline:"yes"})}return true;case"mceTableCellProps":if(tdElm==null)return true;if(user_interface){var template=new Array();template['file']='../../plugins/table/cell.htm';template['width']=380;template['height']=295;template['width']+=tinyMCE.getLang('lang_table_cellprops_delta_width',0);template['height']+=tinyMCE.getLang('lang_table_cellprops_delta_height',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,inline:"yes"})}return true;case"mceInsertTable":if(user_interface){var template=new Array();template['file']='../../plugins/table/table.htm';template['width']=380;template['height']=295;template['width']+=tinyMCE.getLang('lang_table_table_delta_width',0);template['height']+=tinyMCE.getLang('lang_table_table_delta_height',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,inline:"yes",action:value})}return true;case"mceTableDelete":var table=tinyMCE.getParentElement(inst.getFocusElement(),"table");if(table){table.parentNode.removeChild(table);inst.repaint()}return true;case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":if(!tableElm)return true;if(trElm&&tableElm!=trElm.parentNode)tableElm=trElm.parentNode;if(tableElm&&trElm){switch(command){case"mceTableCutRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);inst.execCommand("mceTableDeleteRow");break;case"mceTableCopyRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);break;case"mceTablePasteRowBefore":if(!trElm||!tdElm)return true;var newTR=inst.tableRowClipboard.cloneNode(true);var prevTR=prevElm(trElm,"TR");if(prevTR!=null)trimRow(tableElm,prevTR,prevTR.cells[0],newTR);trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTablePasteRowAfter":if(!trElm||!tdElm)return true;var nextTR=nextElm(trElm,"TR");var newTR=inst.tableRowClipboard.cloneNode(true);trimRow(tableElm,trElm,tdElm,newTR);if(nextTR==null)trElm.parentNode.appendChild(newTR);else nextTR.parentNode.insertBefore(newTR,nextTR);break;case"mceTableInsertRowBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");newTD.innerHTML="&nbsp;";newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD)}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm}}trElm.parentNode.insertBefore(newTR,trElm);grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex+1,cpos.cellindex),tinyMCE.isGecko,true);break;case"mceTableInsertRowAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");newTD.innerHTML="&nbsp;";newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD)}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm}}if(newTR.hasChildNodes()){var nextTR=nextElm(trElm,"TR");if(nextTR)nextTR.parentNode.insertBefore(newTR,nextTR);else tableElm.appendChild(newTR)}grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex,cpos.cellindex),tinyMCE.isGecko,true);break;case"mceTableDeleteRow":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);if(grid.length==1){tableElm=tinyMCE.getParentElement(tableElm,"table");tableElm.parentNode.removeChild(tableElm);return true}var cells=trElm.cells;var nextTR=nextElm(trElm,"TR");for(var x=0;x<cells.length;x++){if(cells[x].rowSpan>1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD)}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan>1){tdElm.rowSpan=sd.rowspan-1}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true}lastTDElm=tdElm}}deleteMarked(tableElm);cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex,0),tinyMCE.isGecko,true);break;case"mceTableInsertColBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);newTD.innerHTML="&nbsp;";newTD.rowSpan=tdElm.rowSpan;tdElm.parentNode.insertBefore(newTD,tdElm)}else tdElm.colSpan++;lastTDElm=tdElm}}grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex,cpos.cellindex+1),tinyMCE.isGecko,true);break;case"mceTableInsertColAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);newTD.innerHTML="&nbsp;";newTD.rowSpan=tdElm.rowSpan;var nextTD=nextElm(tdElm,"TD,TH");if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD)}else tdElm.colSpan++;lastTDElm=tdElm}}grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex,cpos.cellindex),tinyMCE.isGecko,true);break;case"mceTableDeleteCol":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if(grid.length>1&&grid[0].length<=1){tableElm=tinyMCE.getParentElement(tableElm,"table");tableElm.parentNode.removeChild(tableElm);return true}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']>1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm)}lastTDElm=tdElm}}cpos.cellindex--;if(cpos.cellindex<0)cpos.cellindex=0;grid=getTableGrid(tableElm);inst.selection.selectNode(getCell(grid,cpos.rowindex,0),tinyMCE.isGecko,true);break;case"mceTableSplitCells":if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata["colspan"];var rowspan=spandata["rowspan"];if(colspan>1||rowspan>1){tdElm.colSpan=1;for(var i=1;i<colspan;i++){var newTD=doc.createElement("td");newTD.innerHTML="&nbsp;";trElm.insertBefore(newTD,nextElm(tdElm,"TD,TH"));if(rowspan>1)addRows(newTD,trElm,rowspan)}addRows(tdElm,trElm,rowspan)}tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");break;case"mceTableMergeCells":var rows=new Array();var sel=inst.getSel();var grid=getTableGrid(tableElm);if(tinyMCE.isMSIE||sel.rangeCount==1){if(user_interface){var template=new Array();var sp=getColRowSpan(tdElm);template['file']='../../plugins/table/merge_cells.htm';template['width']=250;template['height']=105+(tinyMCE.isNS7?25:0);template['width']+=tinyMCE.getLang('lang_table_merge_cells_delta_width',0);template['height']+=tinyMCE.getLang('lang_table_merge_cells_delta_height',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,inline:"yes",action:"update",numcols:sp.colspan,numrows:sp.rowspan});return true}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((""+numRows)=="NaN")numRows=1;if((""+numCols)=="NaN")numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y<grid.length;y++){var rowCells=new Array();for(var x=cpos.cellindex;x<grid[y].length;x++){var td=getCell(grid,y,x);if(td&&!inArray(rows,td)&&!inArray(rowCells,td)){var cp=getCellPos(grid,td);if(cp.cellindex<cpos.cellindex+numCols&&cp.rowindex<cpos.rowindex+numRows)rowCells[rowCells.length]=td}}if(rowCells.length>0)rows[rows.length]=rowCells}}}else{var cells=new Array();var sel=inst.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount<2)return true;for(var i=0;i<sel.rangeCount;i++){var rng=sel.getRangeAt(i);var tdElm=rng.startContainer.childNodes[rng.startOffset];if(!tdElm)break;if(tdElm.nodeName=="TD")cells[cells.length]=tdElm}var tRows=tableElm.rows;for(var y=0;y<tRows.length;y++){var rowCells=new Array();for(var x=0;x<tRows[y].cells.length;x++){var td=tRows[y].cells[x];for(var i=0;i<cells.length;i++){if(td==cells[i]){rowCells[rowCells.length]=td}}}if(rowCells.length>0)rows[rows.length]=rowCells}var curRow=new Array();var lastTR=null;for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){grid[y][x]._selected=false;for(var i=0;i<cells.length;i++){if(grid[y][x]==cells[i]){if(x1==-1){x1=x;y1=y}x2=x;y2=y;grid[y][x]._selected=true}}}}for(var y=y1;y<=y2;y++){for(var x=x1;x<=x2;x++){if(!grid[y][x]._selected){alert("Invalid selection for merge.");return true}}}}var rowSpan=1,colSpan=1;var lastRowSpan=-1;for(var y=0;y<rows.length;y++){var rowColSpan=0;for(var x=0;x<rows[y].length;x++){var sd=getColRowSpan(rows[y][x]);rowColSpan+=sd['colspan'];if(lastRowSpan!=-1&&sd['rowspan']!=lastRowSpan){alert("Invalid selection for merge.");return true}lastRowSpan=sd['rowspan']}if(rowColSpan>colSpan)colSpan=rowColSpan;lastRowSpan=-1}var lastColSpan=-1;for(var x=0;x<rows[0].length;x++){var colRowSpan=0;for(var y=0;y<rows.length;y++){var sd=getColRowSpan(rows[y][x]);colRowSpan+=sd['rowspan'];if(lastColSpan!=-1&&sd['colspan']!=lastColSpan){alert("Invalid selection for merge.");return true}lastColSpan=sd['colspan']}if(colRowSpan>rowSpan)rowSpan=colRowSpan;lastColSpan=-1}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].length;x++){var html=rows[y][x].innerHTML;var chk=tinyMCE.regexpReplace(html,"[ \t\r\n]","");if(chk!="<br/>"&&chk!="<br>"&&chk!="&nbsp;"&&(x+y>0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&&!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&&cellElm.rowSpan>1)cellElm.rowSpan--;lastCell=cellElm}if(tdElm.rowSpan>1)tdElm.rowSpan--}}}}break}tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");tinyMCE.handleVisualAid(tableElm,true,tinyMCE.settings['visual'],tinyMCE.selectedInstance);tinyMCE.triggerNodeChange();inst.repaint()}return true}return false}};tinyMCE.addPlugin("table",TinyMCE_TablePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/table/editor_plugin_src.js b/tinyMCE/plugins/table/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..75aaa4deca39fde0d08c9e49c63ce59eec6428f0
--- /dev/null
+++ b/tinyMCE/plugins/table/editor_plugin_src.js
@@ -0,0 +1,1073 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('table');
+
+var TinyMCE_TablePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Tables',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		if (tinyMCE.isGecko) {
+			var doc = inst.getDoc();
+			tinyMCE.addEvent(doc, "mouseup", TinyMCE_TablePlugin._mouseDownHandler);
+		}
+
+		inst.tableRowClipboard = null;
+	},
+
+	/**
+	 * Returns the HTML contents of the table control.
+	 */
+	getControlHTML : function(control_name) {
+		var controls = new Array(
+			['table', 'table.gif', 'lang_table_desc', 'mceInsertTable', true],
+			['delete_table', 'table_delete.gif', 'lang_table_del', 'mceTableDelete'],
+			['delete_col', 'table_delete_col.gif', 'lang_table_delete_col_desc', 'mceTableDeleteCol'],
+			['delete_row', 'table_delete_row.gif', 'lang_table_delete_row_desc', 'mceTableDeleteRow'],
+			['col_after', 'table_insert_col_after.gif', 'lang_table_col_after_desc', 'mceTableInsertColAfter'],
+			['col_before', 'table_insert_col_before.gif', 'lang_table_col_before_desc', 'mceTableInsertColBefore'],
+			['row_after', 'table_insert_row_after.gif', 'lang_table_row_after_desc', 'mceTableInsertRowAfter'],
+			['row_before', 'table_insert_row_before.gif', 'lang_table_row_before_desc', 'mceTableInsertRowBefore'],
+			['row_props', 'table_row_props.gif', 'lang_table_row_desc', 'mceTableRowProps', true],
+			['cell_props', 'table_cell_props.gif', 'lang_table_cell_desc', 'mceTableCellProps', true],
+			['split_cells', 'table_split_cells.gif', 'lang_table_split_cells_desc', 'mceTableSplitCells', true],
+			['merge_cells', 'table_merge_cells.gif', 'lang_table_merge_cells_desc', 'mceTableMergeCells', true]);
+
+		// Render table control
+		for (var i=0; i<controls.length; i++) {
+			var but = controls[i];
+			var cmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + but[3] + '\', ' + (but.length > 4 ? but[4] : false) + (but.length > 5 ? ', \'' + but[5] + '\'' : '') + ');return false;';
+
+			if (but[0] == control_name)
+				return tinyMCE.getButtonHTML(control_name, but[2], '{$pluginurl}/images/'+ but[1], but[3], (but.length > 4 ? but[4] : false));
+		}
+
+		// Special tablecontrols
+		if (control_name == "tablecontrols") {
+			var html = "";
+
+			html += tinyMCE.getControlHTML("table");
+			html += tinyMCE.getControlHTML("separator");
+			html += tinyMCE.getControlHTML("row_props");
+			html += tinyMCE.getControlHTML("cell_props");
+			html += tinyMCE.getControlHTML("separator");
+			html += tinyMCE.getControlHTML("row_before");
+			html += tinyMCE.getControlHTML("row_after");
+			html += tinyMCE.getControlHTML("delete_row");
+			html += tinyMCE.getControlHTML("separator");
+			html += tinyMCE.getControlHTML("col_before");
+			html += tinyMCE.getControlHTML("col_after");
+			html += tinyMCE.getControlHTML("delete_col");
+			html += tinyMCE.getControlHTML("separator");
+			html += tinyMCE.getControlHTML("split_cells");
+			html += tinyMCE.getControlHTML("merge_cells");
+
+			return html;
+		}
+
+		return "";
+	},
+
+	/**
+	 * Executes the table commands.
+	 */
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Is table command
+		switch (command) {
+			case "mceInsertTable":
+			case "mceTableRowProps":
+			case "mceTableCellProps":
+			case "mceTableSplitCells":
+			case "mceTableMergeCells":
+			case "mceTableInsertRowBefore":
+			case "mceTableInsertRowAfter":
+			case "mceTableDeleteRow":
+			case "mceTableInsertColBefore":
+			case "mceTableInsertColAfter":
+			case "mceTableDeleteCol":
+			case "mceTableCutRow":
+			case "mceTableCopyRow":
+			case "mceTablePasteRowBefore":
+			case "mceTablePasteRowAfter":
+			case "mceTableDelete":
+				var inst = tinyMCE.getInstanceById(editor_id);
+
+				inst.execCommand('mceBeginUndoLevel');
+				TinyMCE_TablePlugin._doExecCommand(editor_id, element, command, user_interface, value);
+				inst.execCommand('mceEndUndoLevel');
+
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		var colspan = "1", rowspan = "1", tdElm;
+
+		var inst = tinyMCE.getInstanceById(editor_id);
+
+		// Reset table controls
+		tinyMCE.switchClass(editor_id + '_table', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_delete_table', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_row_props', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_cell_props', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_row_before', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_row_after', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_delete_row', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_col_before', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_col_after', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_delete_col', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_split_cells', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_merge_cells', 'mceButtonDisabled');
+
+		// Within a td element
+		if (tdElm = tinyMCE.getParentElement(node, "td,th")) {
+			tinyMCE.switchClass(editor_id + '_cell_props', 'mceButtonSelected');
+			tinyMCE.switchClass(editor_id + '_delete_table', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_row_before', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_row_after', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_delete_row', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_col_before', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_col_after', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_delete_col', 'mceButtonNormal');
+
+			colspan = tinyMCE.getAttrib(tdElm, "colspan");
+			rowspan = tinyMCE.getAttrib(tdElm, "rowspan");
+
+			colspan = colspan == "" ? "1" : colspan;
+			rowspan = rowspan == "" ? "1" : rowspan;
+
+			if (colspan != "1" || rowspan != "1")
+				tinyMCE.switchClass(editor_id + '_split_cells', 'mceButtonNormal');
+		}
+
+		// Within a tr element
+		if (tinyMCE.getParentElement(node, "tr"))
+			tinyMCE.switchClass(editor_id + '_row_props', 'mceButtonSelected');
+
+		// Within table
+		if (tinyMCE.getParentElement(node, "table")) {
+			tinyMCE.switchClass(editor_id + '_table', 'mceButtonSelected');
+			tinyMCE.switchClass(editor_id + '_merge_cells', 'mceButtonNormal');
+		}
+	},
+
+	// Private plugin internal methods
+
+	_mouseDownHandler : function(e) {
+		var elm = tinyMCE.isMSIE ? event.srcElement : e.target;
+		var focusElm = tinyMCE.selectedInstance.getFocusElement();
+
+		// If press on special Mozilla create TD/TR thingie
+		if (elm.nodeName == "BODY" && (focusElm.nodeName == "TD" || focusElm.nodeName == "TH" || (focusElm.parentNode && focusElm.parentNode.nodeName == "TD") ||(focusElm.parentNode && focusElm.parentNode.nodeName == "TH") )) {
+			window.setTimeout(function() {
+				var tableElm = tinyMCE.getParentElement(focusElm, "table");
+				tinyMCE.handleVisualAid(tableElm, true, tinyMCE.settings['visual'], tinyMCE.selectedInstance);
+			}, 10);
+		}
+	},
+
+	/**
+	 * Executes the table commands.
+	 */
+	_doExecCommand : function(editor_id, element, command, user_interface, value) {
+		var inst = tinyMCE.getInstanceById(editor_id);
+		var focusElm = inst.getFocusElement();
+		var trElm = tinyMCE.getParentElement(focusElm, "tr");
+		var tdElm = tinyMCE.getParentElement(focusElm, "td,th");
+		var tableElm = tinyMCE.getParentElement(focusElm, "table");
+		var doc = inst.contentWindow.document;
+		var tableBorder = tableElm ? tableElm.getAttribute("border") : "";
+
+		// Get first TD if no TD found
+		if (trElm && tdElm == null)
+			tdElm = trElm.cells[0];
+
+		// ------- Inner functions ---------
+		function inArray(ar, v) {
+			for (var i=0; i<ar.length; i++) {
+				// Is array
+				if (ar[i].length > 0 && inArray(ar[i], v))
+					return true;
+
+				// Found value
+				if (ar[i] == v)
+					return true;
+			}
+
+			return false;
+		}
+
+		function makeTD() {
+			var newTD = doc.createElement("td");
+			newTD.innerHTML = "&nbsp;";
+		}
+
+		function getColRowSpan(td) {
+			var colspan = tinyMCE.getAttrib(td, "colspan");
+			var rowspan = tinyMCE.getAttrib(td, "rowspan");
+
+			colspan = colspan == "" ? 1 : parseInt(colspan);
+			rowspan = rowspan == "" ? 1 : parseInt(rowspan);
+
+			return {colspan : colspan, rowspan : rowspan};
+		}
+
+		function getCellPos(grid, td) {
+			var x, y;
+
+			for (y=0; y<grid.length; y++) {
+				for (x=0; x<grid[y].length; x++) {
+					if (grid[y][x] == td)
+						return {cellindex : x, rowindex : y};
+				}
+			}
+
+			return null;
+		}
+
+		function getCell(grid, row, col) {
+			if (grid[row] && grid[row][col])
+				return grid[row][col];
+
+			return null;
+		}
+
+		function getTableGrid(table) {
+			var grid = new Array(), rows = table.rows, x, y, td, sd, xstart, x2, y2;
+
+			for (y=0; y<rows.length; y++) {
+				for (x=0; x<rows[y].cells.length; x++) {
+					td = rows[y].cells[x];
+					sd = getColRowSpan(td);
+
+					// All ready filled
+					for (xstart = x; grid[y] && grid[y][xstart]; xstart++) ;
+
+					// Fill box
+					for (y2=y; y2<y+sd['rowspan']; y2++) {
+						if (!grid[y2])
+							grid[y2] = new Array();
+
+						for (x2=xstart; x2<xstart+sd['colspan']; x2++)
+							grid[y2][x2] = td;
+					}
+				}
+			}
+
+			return grid;
+		}
+
+		function trimRow(table, tr, td, new_tr) {
+			var grid = getTableGrid(table), cpos = getCellPos(grid, td);
+			var cells, lastElm;
+
+			// Time to crop away some
+			if (new_tr.cells.length != tr.childNodes.length) {
+				cells = tr.childNodes;
+				lastElm = null;
+
+				for (var x=0; td = getCell(grid, cpos.rowindex, x); x++) {
+					var remove = true;
+					var sd = getColRowSpan(td);
+
+					// Remove due to rowspan
+					if (inArray(cells, td)) {
+						new_tr.childNodes[x]._delete = true;
+					} else if ((lastElm == null || td != lastElm) && sd.colspan > 1) { // Remove due to colspan
+						for (var i=x; i<x+td.colSpan; i++)
+							new_tr.childNodes[i]._delete = true;
+					}
+
+					if ((lastElm == null || td != lastElm) && sd.rowspan > 1)
+						td.rowSpan = sd.rowspan + 1;
+
+					lastElm = td;
+				}
+
+				deleteMarked(tableElm);
+			}
+		}
+
+		function prevElm(node, name) {
+			while ((node = node.previousSibling) != null) {
+				if (node.nodeName == name)
+					return node;
+			}
+
+			return null;
+		}
+
+		function nextElm(node, names) {
+			var namesAr = names.split(',');
+
+			while ((node = node.nextSibling) != null) {
+				for (var i=0; i<namesAr.length; i++) {
+					if (node.nodeName.toLowerCase() == namesAr[i].toLowerCase() )
+						return node;
+				}
+			}
+
+			return null;
+		}
+
+		function deleteMarked(tbl) {
+			if (tbl.rows == 0)
+				return;
+
+			var tr = tbl.rows[0];
+			do {
+				var next = nextElm(tr, "TR");
+
+				// Delete row
+				if (tr._delete) {
+					tr.parentNode.removeChild(tr);
+					continue;
+				}
+
+				// Delete cells
+				var td = tr.cells[0];
+				if (td.cells > 1) {
+					do {
+						var nexttd = nextElm(td, "TD,TH");
+
+						if (td._delete)
+							td.parentNode.removeChild(td);
+					} while ((td = nexttd) != null);
+				}
+			} while ((tr = next) != null);
+		}
+
+		function addRows(td_elm, tr_elm, rowspan) {
+			// Add rows
+			td_elm.rowSpan = 1;
+			var trNext = nextElm(tr_elm, "TR");
+			for (var i=1; i<rowspan && trNext; i++) {
+				var newTD = doc.createElement("td");
+				newTD.innerHTML = "&nbsp;";
+
+				if (tinyMCE.isMSIE)
+					trNext.insertBefore(newTD, trNext.cells(td_elm.cellIndex));
+				else
+					trNext.insertBefore(newTD, trNext.cells[td_elm.cellIndex]);
+
+				trNext = nextElm(trNext, "TR");
+			}
+		}
+
+		function copyRow(doc, table, tr) {
+			var grid = getTableGrid(table);
+			var newTR = tr.cloneNode(false);
+			var cpos = getCellPos(grid, tr.cells[0]);
+			var lastCell = null;
+			var tableBorder = tinyMCE.getAttrib(table, "border");
+			var tdElm = null;
+
+			for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {
+				var newTD = null;
+
+				if (lastCell != tdElm) {
+					for (var i=0; i<tr.cells.length; i++) {
+						if (tdElm == tr.cells[i]) {
+							newTD = tdElm.cloneNode(true);
+							break;
+						}
+					}
+				}
+
+				if (newTD == null) {
+					newTD = doc.createElement("td");
+					newTD.innerHTML = "&nbsp;";
+				}
+
+				// Reset col/row span
+				newTD.colSpan = 1;
+				newTD.rowSpan = 1;
+
+				newTR.appendChild(newTD);
+
+				lastCell = tdElm;
+			}
+
+			return newTR;
+		}
+
+		// ---- Commands -----
+
+		// Handle commands
+		switch (command) {
+			case "mceTableRowProps":
+				if (trElm == null)
+					return true;
+
+				if (user_interface) {
+					// Setup template
+					var template = new Array();
+
+					template['file'] = '../../plugins/table/row.htm';
+					template['width'] = 380;
+					template['height'] = 295;
+
+					// Language specific width and height addons
+					template['width'] += tinyMCE.getLang('lang_table_rowprops_delta_width', 0);
+					template['height'] += tinyMCE.getLang('lang_table_rowprops_delta_height', 0);
+
+					// Open window
+					tinyMCE.openWindow(template, {editor_id : inst.editorId, inline : "yes"});
+				}
+
+				return true;
+
+			case "mceTableCellProps":
+				if (tdElm == null)
+					return true;
+
+				if (user_interface) {
+					// Setup template
+					var template = new Array();
+
+					template['file'] = '../../plugins/table/cell.htm';
+					template['width'] = 380;
+					template['height'] = 295;
+
+					// Language specific width and height addons
+					template['width'] += tinyMCE.getLang('lang_table_cellprops_delta_width', 0);
+					template['height'] += tinyMCE.getLang('lang_table_cellprops_delta_height', 0);
+
+					// Open window
+					tinyMCE.openWindow(template, {editor_id : inst.editorId, inline : "yes"});
+				}
+
+				return true;
+
+			case "mceInsertTable":
+				if (user_interface) {
+					// Setup template
+					var template = new Array();
+
+					template['file'] = '../../plugins/table/table.htm';
+					template['width'] = 380;
+					template['height'] = 295;
+
+					// Language specific width and height addons
+					template['width'] += tinyMCE.getLang('lang_table_table_delta_width', 0);
+					template['height'] += tinyMCE.getLang('lang_table_table_delta_height', 0);
+
+					// Open window
+					tinyMCE.openWindow(template, {editor_id : inst.editorId, inline : "yes", action : value});
+				}
+
+				return true;
+
+			case "mceTableDelete":
+				var table = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+				if (table) {
+					table.parentNode.removeChild(table);
+					inst.repaint();
+				}
+				return true;
+
+			case "mceTableSplitCells":
+			case "mceTableMergeCells":
+			case "mceTableInsertRowBefore":
+			case "mceTableInsertRowAfter":
+			case "mceTableDeleteRow":
+			case "mceTableInsertColBefore":
+			case "mceTableInsertColAfter":
+			case "mceTableDeleteCol":
+			case "mceTableCutRow":
+			case "mceTableCopyRow":
+			case "mceTablePasteRowBefore":
+			case "mceTablePasteRowAfter":
+				// No table just return (invalid command)
+				if (!tableElm)
+					return true;
+
+				// Table has a tbody use that reference
+				// Changed logic by ApTest 2005.07.12 (www.aptest.com)
+				// Now lookk at the focused element and take its parentNode.  That will be a tbody or a table.
+				if (trElm && tableElm != trElm.parentNode)
+					tableElm = trElm.parentNode;
+
+				if (tableElm && trElm) {
+					switch (command) {
+						case "mceTableCutRow":
+							if (!trElm || !tdElm)
+								return true;
+
+							inst.tableRowClipboard = copyRow(doc, tableElm, trElm);
+							inst.execCommand("mceTableDeleteRow");
+							break;
+
+						case "mceTableCopyRow":
+							if (!trElm || !tdElm)
+								return true;
+
+							inst.tableRowClipboard = copyRow(doc, tableElm, trElm);
+							break;
+
+						case "mceTablePasteRowBefore":
+							if (!trElm || !tdElm)
+								return true;
+
+							var newTR = inst.tableRowClipboard.cloneNode(true);
+
+							var prevTR = prevElm(trElm, "TR");
+							if (prevTR != null)
+								trimRow(tableElm, prevTR, prevTR.cells[0], newTR);
+
+							trElm.parentNode.insertBefore(newTR, trElm);
+							break;
+
+						case "mceTablePasteRowAfter":
+							if (!trElm || !tdElm)
+								return true;
+							
+							var nextTR = nextElm(trElm, "TR");
+							var newTR = inst.tableRowClipboard.cloneNode(true);
+
+							trimRow(tableElm, trElm, tdElm, newTR);
+
+							if (nextTR == null)
+								trElm.parentNode.appendChild(newTR);
+							else
+								nextTR.parentNode.insertBefore(newTR, nextTR);
+
+							break;
+
+						case "mceTableInsertRowBefore":
+							if (!trElm || !tdElm)
+								return true;
+
+							var grid = getTableGrid(tableElm);
+							var cpos = getCellPos(grid, tdElm);
+							var newTR = doc.createElement("tr");
+							var lastTDElm = null;
+
+							cpos.rowindex--;
+							if (cpos.rowindex < 0)
+								cpos.rowindex = 0;
+
+							// Create cells
+							for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {
+								if (tdElm != lastTDElm) {
+									var sd = getColRowSpan(tdElm);
+
+									if (sd['rowspan'] == 1) {
+										var newTD = doc.createElement("td");
+
+										newTD.innerHTML = "&nbsp;";
+										newTD.colSpan = tdElm.colSpan;
+
+										newTR.appendChild(newTD);
+									} else
+										tdElm.rowSpan = sd['rowspan'] + 1;
+
+									lastTDElm = tdElm;
+								}
+							}
+
+							trElm.parentNode.insertBefore(newTR, trElm);
+
+							grid = getTableGrid(tableElm);
+							inst.selection.selectNode(getCell(grid, cpos.rowindex + 1, cpos.cellindex), tinyMCE.isGecko, true); // Only collape on gecko
+						break;
+
+						case "mceTableInsertRowAfter":
+							if (!trElm || !tdElm)
+								return true;
+
+							var grid = getTableGrid(tableElm);
+							var cpos = getCellPos(grid, tdElm);
+							var newTR = doc.createElement("tr");
+							var lastTDElm = null;
+
+							// Create cells
+							for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {
+								if (tdElm != lastTDElm) {
+									var sd = getColRowSpan(tdElm);
+
+									if (sd['rowspan'] == 1) {
+										var newTD = doc.createElement("td");
+
+										newTD.innerHTML = "&nbsp;";
+										newTD.colSpan = tdElm.colSpan;
+
+										newTR.appendChild(newTD);
+									} else
+										tdElm.rowSpan = sd['rowspan'] + 1;
+
+									lastTDElm = tdElm;
+								}
+							}
+
+							if (newTR.hasChildNodes()) {
+								var nextTR = nextElm(trElm, "TR");
+								if (nextTR)
+									nextTR.parentNode.insertBefore(newTR, nextTR);
+								else
+									tableElm.appendChild(newTR);
+							}
+
+							grid = getTableGrid(tableElm);
+							inst.selection.selectNode(getCell(grid, cpos.rowindex, cpos.cellindex), tinyMCE.isGecko, true); // Only collape on gecko
+						break;
+
+						case "mceTableDeleteRow":
+							if (!trElm || !tdElm)
+								return true;
+
+							var grid = getTableGrid(tableElm);
+							var cpos = getCellPos(grid, tdElm);
+
+							// Only one row, remove whole table
+							if (grid.length == 1) {
+								tableElm = tinyMCE.getParentElement(tableElm, "table"); // Look for table instead of tbody
+								tableElm.parentNode.removeChild(tableElm);
+								return true;
+							}
+
+							// Move down row spanned cells
+							var cells = trElm.cells;
+							var nextTR = nextElm(trElm, "TR");
+							for (var x=0; x<cells.length; x++) {
+								if (cells[x].rowSpan > 1) {
+									var newTD = cells[x].cloneNode(true);
+									var sd = getColRowSpan(cells[x]);
+
+									newTD.rowSpan = sd.rowspan - 1;
+
+									var nextTD = nextTR.cells[x];
+
+									if (nextTD == null)
+										nextTR.appendChild(newTD);
+									else
+										nextTR.insertBefore(newTD, nextTD);
+								}
+							}
+
+							// Delete cells
+							var lastTDElm = null;
+							for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {
+								if (tdElm != lastTDElm) {
+									var sd = getColRowSpan(tdElm);
+
+									if (sd.rowspan > 1) {
+										tdElm.rowSpan = sd.rowspan - 1;
+									} else {
+										trElm = tdElm.parentNode;
+
+										if (trElm.parentNode)
+											trElm._delete = true;
+									}
+
+									lastTDElm = tdElm;
+								}
+							}
+
+							deleteMarked(tableElm);
+
+							cpos.rowindex--;
+							if (cpos.rowindex < 0)
+								cpos.rowindex = 0;
+
+							// Recalculate grid and select
+							grid = getTableGrid(tableElm);
+							inst.selection.selectNode(getCell(grid, cpos.rowindex, 0), tinyMCE.isGecko, true); // Only collape on gecko
+						break;
+
+						case "mceTableInsertColBefore":
+							if (!trElm || !tdElm)
+								return true;
+
+							var grid = getTableGrid(tableElm);
+							var cpos = getCellPos(grid, tdElm);
+							var lastTDElm = null;
+
+							for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {
+								if (tdElm != lastTDElm) {
+									var sd = getColRowSpan(tdElm);
+
+									if (sd['colspan'] == 1) {
+										var newTD = doc.createElement(tdElm.nodeName);
+
+										newTD.innerHTML = "&nbsp;";
+										newTD.rowSpan = tdElm.rowSpan;
+
+										tdElm.parentNode.insertBefore(newTD, tdElm);
+									} else
+										tdElm.colSpan++;
+
+									lastTDElm = tdElm;
+								}
+							}
+
+							grid = getTableGrid(tableElm);
+							inst.selection.selectNode(getCell(grid, cpos.rowindex, cpos.cellindex + 1), tinyMCE.isGecko, true); // Only collape on gecko
+						break;
+
+						case "mceTableInsertColAfter":
+							if (!trElm || !tdElm)
+								return true;
+
+							var grid = getTableGrid(tableElm);
+							var cpos = getCellPos(grid, tdElm);
+							var lastTDElm = null;
+
+							for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {
+								if (tdElm != lastTDElm) {
+									var sd = getColRowSpan(tdElm);
+
+									if (sd['colspan'] == 1) {
+										var newTD = doc.createElement(tdElm.nodeName);
+
+										newTD.innerHTML = "&nbsp;";
+										newTD.rowSpan = tdElm.rowSpan;
+
+										var nextTD = nextElm(tdElm, "TD,TH");
+										if (nextTD == null)
+											tdElm.parentNode.appendChild(newTD);
+										else
+											nextTD.parentNode.insertBefore(newTD, nextTD);
+									} else
+										tdElm.colSpan++;
+
+									lastTDElm = tdElm;
+								}
+							}
+
+							grid = getTableGrid(tableElm);
+							inst.selection.selectNode(getCell(grid, cpos.rowindex, cpos.cellindex), tinyMCE.isGecko, true); // Only collape on gecko
+						break;
+
+						case "mceTableDeleteCol":
+							if (!trElm || !tdElm)
+								return true;
+
+							var grid = getTableGrid(tableElm);
+							var cpos = getCellPos(grid, tdElm);
+							var lastTDElm = null;
+
+							// Only one col, remove whole table
+							if (grid.length > 1 && grid[0].length <= 1) {
+								tableElm = tinyMCE.getParentElement(tableElm, "table"); // Look for table instead of tbody
+								tableElm.parentNode.removeChild(tableElm);
+								return true;
+							}
+
+							// Delete cells
+							for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {
+								if (tdElm != lastTDElm) {
+									var sd = getColRowSpan(tdElm);
+
+									if (sd['colspan'] > 1)
+										tdElm.colSpan = sd['colspan'] - 1;
+									else {
+										if (tdElm.parentNode)
+											tdElm.parentNode.removeChild(tdElm);
+									}
+
+									lastTDElm = tdElm;
+								}
+							}
+
+							cpos.cellindex--;
+							if (cpos.cellindex < 0)
+								cpos.cellindex = 0;
+
+							// Recalculate grid and select
+							grid = getTableGrid(tableElm);
+							inst.selection.selectNode(getCell(grid, cpos.rowindex, 0), tinyMCE.isGecko, true); // Only collape on gecko
+						break;
+
+					case "mceTableSplitCells":
+						if (!trElm || !tdElm)
+							return true;
+
+						var spandata = getColRowSpan(tdElm);
+
+						var colspan = spandata["colspan"];
+						var rowspan = spandata["rowspan"];
+
+						// Needs splitting
+						if (colspan > 1 || rowspan > 1) {
+							// Generate cols
+							tdElm.colSpan = 1;
+							for (var i=1; i<colspan; i++) {
+								var newTD = doc.createElement("td");
+
+								newTD.innerHTML = "&nbsp;";
+
+								trElm.insertBefore(newTD, nextElm(tdElm, "TD,TH"));
+
+								if (rowspan > 1)
+									addRows(newTD, trElm, rowspan);
+							}
+
+							addRows(tdElm, trElm, rowspan);
+						}
+
+						// Apply visual aids
+						tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+						break;
+
+					case "mceTableMergeCells":
+						var rows = new Array();
+						var sel = inst.getSel();
+						var grid = getTableGrid(tableElm);
+
+						if (tinyMCE.isMSIE || sel.rangeCount == 1) {
+							if (user_interface) {
+								// Setup template
+								var template = new Array();
+								var sp = getColRowSpan(tdElm);
+
+								template['file'] = '../../plugins/table/merge_cells.htm';
+								template['width'] = 250;
+								template['height'] = 105 + (tinyMCE.isNS7 ? 25 : 0);
+
+								// Language specific width and height addons
+								template['width'] += tinyMCE.getLang('lang_table_merge_cells_delta_width', 0);
+								template['height'] += tinyMCE.getLang('lang_table_merge_cells_delta_height', 0);
+
+								// Open window
+								tinyMCE.openWindow(template, {editor_id : inst.editorId, inline : "yes", action : "update", numcols : sp.colspan, numrows : sp.rowspan});
+
+								return true;
+							} else {
+								var numRows = parseInt(value['numrows']);
+								var numCols = parseInt(value['numcols']);
+								var cpos = getCellPos(grid, tdElm);
+
+								if (("" + numRows) == "NaN")
+									numRows = 1;
+
+								if (("" + numCols) == "NaN")
+									numCols = 1;
+
+								// Get rows and cells
+								var tRows = tableElm.rows;
+								for (var y=cpos.rowindex; y<grid.length; y++) {
+									var rowCells = new Array();
+
+									for (var x=cpos.cellindex; x<grid[y].length; x++) {
+										var td = getCell(grid, y, x);
+
+										if (td && !inArray(rows, td) && !inArray(rowCells, td)) {
+											var cp = getCellPos(grid, td);
+
+											// Within range
+											if (cp.cellindex < cpos.cellindex+numCols && cp.rowindex < cpos.rowindex+numRows)
+												rowCells[rowCells.length] = td;
+										}
+									}
+
+									if (rowCells.length > 0)
+										rows[rows.length] = rowCells;
+								}
+
+								//return true;
+							}
+						} else {
+							var cells = new Array();
+							var sel = inst.getSel();
+							var lastTR = null;
+							var curRow = null;
+							var x1 = -1, y1 = -1, x2, y2;
+
+							// Only one cell selected, whats the point?
+							if (sel.rangeCount < 2)
+								return true;
+
+							// Get all selected cells
+							for (var i=0; i<sel.rangeCount; i++) {
+								var rng = sel.getRangeAt(i);
+								var tdElm = rng.startContainer.childNodes[rng.startOffset];
+
+								if (!tdElm)
+									break;
+
+								if (tdElm.nodeName == "TD")
+									cells[cells.length] = tdElm;
+							}
+
+							// Get rows and cells
+							var tRows = tableElm.rows;
+							for (var y=0; y<tRows.length; y++) {
+								var rowCells = new Array();
+
+								for (var x=0; x<tRows[y].cells.length; x++) {
+									var td = tRows[y].cells[x];
+
+									for (var i=0; i<cells.length; i++) {
+										if (td == cells[i]) {
+											rowCells[rowCells.length] = td;
+										}
+									}
+								}
+
+								if (rowCells.length > 0)
+									rows[rows.length] = rowCells;
+							}
+
+							// Find selected cells in grid and box
+							var curRow = new Array();
+							var lastTR = null;
+							for (var y=0; y<grid.length; y++) {
+								for (var x=0; x<grid[y].length; x++) {
+									grid[y][x]._selected = false;
+
+									for (var i=0; i<cells.length; i++) {
+										if (grid[y][x] == cells[i]) {
+											// Get start pos
+											if (x1 == -1) {
+												x1 = x;
+												y1 = y;
+											}
+
+											// Get end pos
+											x2 = x;
+											y2 = y;
+
+											grid[y][x]._selected = true;
+										}
+									}
+								}
+							}
+
+							// Is there gaps, if so deny
+							for (var y=y1; y<=y2; y++) {
+								for (var x=x1; x<=x2; x++) {
+									if (!grid[y][x]._selected) {
+										alert("Invalid selection for merge.");
+										return true;
+									}
+								}
+							}
+						}
+
+						// Validate selection and get total rowspan and colspan
+						var rowSpan = 1, colSpan = 1;
+
+						// Validate horizontal and get total colspan
+						var lastRowSpan = -1;
+						for (var y=0; y<rows.length; y++) {
+							var rowColSpan = 0;
+
+							for (var x=0; x<rows[y].length; x++) {
+								var sd = getColRowSpan(rows[y][x]);
+
+								rowColSpan += sd['colspan'];
+
+								if (lastRowSpan != -1 && sd['rowspan'] != lastRowSpan) {
+									alert("Invalid selection for merge.");
+									return true;
+								}
+
+								lastRowSpan = sd['rowspan'];
+							}
+
+							if (rowColSpan > colSpan)
+								colSpan = rowColSpan;
+
+							lastRowSpan = -1;
+						}
+
+						// Validate vertical and get total rowspan
+						var lastColSpan = -1;
+						for (var x=0; x<rows[0].length; x++) {
+							var colRowSpan = 0;
+
+							for (var y=0; y<rows.length; y++) {
+								var sd = getColRowSpan(rows[y][x]);
+
+								colRowSpan += sd['rowspan'];
+
+								if (lastColSpan != -1 && sd['colspan'] != lastColSpan) {
+									alert("Invalid selection for merge.");
+									return true;
+								}
+
+								lastColSpan = sd['colspan'];
+							}
+
+							if (colRowSpan > rowSpan)
+								rowSpan = colRowSpan;
+
+							lastColSpan = -1;
+						}
+
+						// Setup td
+						tdElm = rows[0][0];
+						tdElm.rowSpan = rowSpan;
+						tdElm.colSpan = colSpan;
+
+						// Merge cells
+						for (var y=0; y<rows.length; y++) {
+							for (var x=0; x<rows[y].length; x++) {
+								var html = rows[y][x].innerHTML;
+								var chk = tinyMCE.regexpReplace(html, "[ \t\r\n]", "");
+
+								if (chk != "<br/>" && chk != "<br>" && chk != "&nbsp;" && (x+y > 0))
+									tdElm.innerHTML += html;
+
+								// Not current cell
+								if (rows[y][x] != tdElm && !rows[y][x]._deleted) {
+									var cpos = getCellPos(grid, rows[y][x]);
+									var tr = rows[y][x].parentNode;
+
+									tr.removeChild(rows[y][x]);
+									rows[y][x]._deleted = true;
+
+									// Empty TR, remove it
+									if (!tr.hasChildNodes()) {
+										tr.parentNode.removeChild(tr);
+
+										var lastCell = null;
+										for (var x=0; cellElm = getCell(grid, cpos.rowindex, x); x++) {
+											if (cellElm != lastCell && cellElm.rowSpan > 1)
+												cellElm.rowSpan--;
+
+											lastCell = cellElm;
+										}
+
+										if (tdElm.rowSpan > 1)
+											tdElm.rowSpan--;
+									}
+								}
+							}
+						}
+
+						break;
+					}
+
+					tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+					tinyMCE.handleVisualAid(tableElm, true, tinyMCE.settings['visual'], tinyMCE.selectedInstance);
+					tinyMCE.triggerNodeChange();
+					inst.repaint();
+				}
+
+			return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	}
+};
+
+tinyMCE.addPlugin("table", TinyMCE_TablePlugin);
diff --git a/tinyMCE/plugins/table/images/buttons.gif b/tinyMCE/plugins/table/images/buttons.gif
new file mode 100644
index 0000000000000000000000000000000000000000..56a7396b8816d949443f4ac7a8f29752fd0393c8
Binary files /dev/null and b/tinyMCE/plugins/table/images/buttons.gif differ
diff --git a/tinyMCE/plugins/table/images/table.gif b/tinyMCE/plugins/table/images/table.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2911830c3cd9cfb588114b40205ac316ded37716
Binary files /dev/null and b/tinyMCE/plugins/table/images/table.gif differ
diff --git a/tinyMCE/plugins/table/images/table_cell_props.gif b/tinyMCE/plugins/table/images/table_cell_props.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bee7ed652f83476471ca0c0cfa5f2b72c6f98fc8
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_cell_props.gif differ
diff --git a/tinyMCE/plugins/table/images/table_delete.gif b/tinyMCE/plugins/table/images/table_delete.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2a00e6ad66aa907381ff742dfcb6aa2e2ec3df17
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_delete.gif differ
diff --git a/tinyMCE/plugins/table/images/table_delete_col.gif b/tinyMCE/plugins/table/images/table_delete_col.gif
new file mode 100644
index 0000000000000000000000000000000000000000..260aa04ca6327d5ca75460fe4c2a07499711724b
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_delete_col.gif differ
diff --git a/tinyMCE/plugins/table/images/table_delete_row.gif b/tinyMCE/plugins/table/images/table_delete_row.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2fb5f2bab92ba1a48608fd0cde4ee7010e244596
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_delete_row.gif differ
diff --git a/tinyMCE/plugins/table/images/table_insert_col_after.gif b/tinyMCE/plugins/table/images/table_insert_col_after.gif
new file mode 100644
index 0000000000000000000000000000000000000000..85058080ca85586d2631be5402beca3ab5809500
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_insert_col_after.gif differ
diff --git a/tinyMCE/plugins/table/images/table_insert_col_before.gif b/tinyMCE/plugins/table/images/table_insert_col_before.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b669d4fa6dfe3b72422f1b69d438a904babbcbea
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_insert_col_before.gif differ
diff --git a/tinyMCE/plugins/table/images/table_insert_row_after.gif b/tinyMCE/plugins/table/images/table_insert_row_after.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b9c14466138007454958671320914d9a7d8a6db5
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_insert_row_after.gif differ
diff --git a/tinyMCE/plugins/table/images/table_insert_row_before.gif b/tinyMCE/plugins/table/images/table_insert_row_before.gif
new file mode 100644
index 0000000000000000000000000000000000000000..157d3736547dfb4d581103523b332d531760eeee
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_insert_row_before.gif differ
diff --git a/tinyMCE/plugins/table/images/table_merge_cells.gif b/tinyMCE/plugins/table/images/table_merge_cells.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6834e611ed1998265dc5bb4d7139ed49026fa4e2
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_merge_cells.gif differ
diff --git a/tinyMCE/plugins/table/images/table_row_props.gif b/tinyMCE/plugins/table/images/table_row_props.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e5c7cc37aaded685d68a6f1d0f5f204415258489
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_row_props.gif differ
diff --git a/tinyMCE/plugins/table/images/table_split_cells.gif b/tinyMCE/plugins/table/images/table_split_cells.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8ccb1b5f89d35619c9fe7a81957305c93f3ed8fc
Binary files /dev/null and b/tinyMCE/plugins/table/images/table_split_cells.gif differ
diff --git a/tinyMCE/plugins/table/jscripts/cell.js b/tinyMCE/plugins/table/jscripts/cell.js
new file mode 100644
index 0000000000000000000000000000000000000000..436eaad1711c6e423e0d92401b3f784177678cce
--- /dev/null
+++ b/tinyMCE/plugins/table/jscripts/cell.js
@@ -0,0 +1,249 @@
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
+
+	var inst = tinyMCE.selectedInstance;
+	var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(tinyMCE.getAttrib(tdElm, "style"));
+
+	// Get table cell data
+	var celltype = tdElm.nodeName.toLowerCase();
+	var align = tinyMCE.getAttrib(tdElm, 'align');
+	var valign = tinyMCE.getAttrib(tdElm, 'valign');
+	var width = trimSize(getStyle(tdElm, 'width', 'width'));
+	var height = trimSize(getStyle(tdElm, 'height', 'height'));
+	var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
+	var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
+	var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm, 'class'), false);
+	var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
+	var id = tinyMCE.getAttrib(tdElm, 'id');
+	var lang = tinyMCE.getAttrib(tdElm, 'lang');
+	var dir = tinyMCE.getAttrib(tdElm, 'dir');
+	var scope = tinyMCE.getAttrib(tdElm, 'scope');
+
+	// Setup form
+	addClassesToList('class', 'table_cell_styles');
+	formObj.bordercolor.value = bordercolor;
+	formObj.bgcolor.value = bgcolor;
+	formObj.backgroundimage.value = backgroundimage;
+	formObj.width.value = width;
+	formObj.height.value = height;
+	formObj.id.value = id;
+	formObj.lang.value = lang;
+	formObj.style.value = tinyMCE.serializeStyle(st);
+	selectByValue(formObj, 'align', align);
+	selectByValue(formObj, 'valign', valign);
+	selectByValue(formObj, 'class', className);
+	selectByValue(formObj, 'celltype', celltype);
+	selectByValue(formObj, 'dir', dir);
+	selectByValue(formObj, 'scope', scope);
+
+	// Resize some elements
+	if (isVisible('backgroundimagebrowser'))
+		document.getElementById('backgroundimage').style.width = '180px';
+
+	updateColor('bordercolor_pick', 'bordercolor');
+	updateColor('bgcolor_pick', 'bgcolor');
+}
+
+function updateAction() {
+	tinyMCEPopup.restoreSelection();
+
+	var inst = tinyMCE.selectedInstance;
+	var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
+	var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
+	var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+	var formObj = document.forms[0];
+
+	inst.execCommand('mceBeginUndoLevel');
+
+	switch (getSelectValue(formObj, 'action')) {
+		case "cell":
+			var celltype = getSelectValue(formObj, 'celltype');
+			var scope = getSelectValue(formObj, 'scope');
+
+			if (tinyMCE.getParam("accessibility_warnings")) {
+				if (celltype == "th" && scope == "")
+					var answer = confirm(tinyMCE.getLang('lang_table_missing_scope', '', true));
+				else
+					var answer = true;
+
+				if (!answer)
+					return;
+			}
+
+			updateCell(tdElm);
+			break;
+
+		case "row":
+			var cell = trElm.firstChild;
+
+			if (cell.nodeName != "TD" && cell.nodeName != "TH")
+				cell = nextCell(cell);
+
+			do {
+				cell = updateCell(cell, true);
+			} while ((cell = nextCell(cell)) != null);
+
+			break;
+
+		case "all":
+			var rows = tableElm.getElementsByTagName("tr");
+
+			for (var i=0; i<rows.length; i++) {
+				var cell = rows[i].firstChild;
+
+				if (cell.nodeName != "TD" && cell.nodeName != "TH")
+					cell = nextCell(cell);
+
+				do {
+					cell = updateCell(cell, true);
+				} while ((cell = nextCell(cell)) != null);
+			}
+
+			break;
+	}
+
+	tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+	tinyMCE.triggerNodeChange();
+	inst.execCommand('mceEndUndoLevel');
+	tinyMCEPopup.close();
+}
+
+function nextCell(elm) {
+	while ((elm = elm.nextSibling) != null) {
+		if (elm.nodeName == "TD" || elm.nodeName == "TH")
+			return elm;
+	}
+
+	return null;
+}
+
+function updateCell(td, skip_id) {
+	var inst = tinyMCE.selectedInstance;
+	var formObj = document.forms[0];
+	var curCellType = td.nodeName.toLowerCase();
+	var celltype = getSelectValue(formObj, 'celltype');
+	var doc = inst.getDoc();
+
+	if (!skip_id)
+		td.setAttribute('id', formObj.id.value);
+
+	td.setAttribute('align', formObj.align.value);
+	td.setAttribute('vAlign', formObj.valign.value);
+	td.setAttribute('lang', formObj.lang.value);
+	td.setAttribute('dir', getSelectValue(formObj, 'dir'));
+	td.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
+	td.setAttribute('scope', formObj.scope.value);
+	tinyMCE.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
+
+	// Clear deprecated attributes
+	tinyMCE.setAttrib(td, 'width', '');
+	tinyMCE.setAttrib(td, 'height', '');
+	tinyMCE.setAttrib(td, 'bgColor', '');
+	tinyMCE.setAttrib(td, 'borderColor', '');
+	tinyMCE.setAttrib(td, 'background', '');
+
+	// Set styles
+	td.style.width = getCSSSize(formObj.width.value);
+	td.style.height = getCSSSize(formObj.height.value);
+	if (formObj.bordercolor.value != "") {
+		td.style.borderColor = formObj.bordercolor.value;
+		td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
+		td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
+	} else
+		td.style.borderColor = '';
+
+	td.style.backgroundColor = formObj.bgcolor.value;
+
+	if (formObj.backgroundimage.value != "")
+		td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
+	else
+		td.style.backgroundImage = '';
+
+	if (curCellType != celltype) {
+		// changing to a different node type
+		var newCell = doc.createElement(celltype);
+
+		for (var c=0; c<td.childNodes.length; c++)
+			newCell.appendChild(td.childNodes[c].cloneNode(1));
+
+		for (var a=0; a<td.attributes.length; a++) {
+			var attr = td.attributes[a];
+			newCell.setAttribute(attr.name, attr.value);
+		}
+
+		td.parentNode.replaceChild(newCell, td);
+		td = newCell;
+	}
+
+	return td;
+}
+
+function changedBackgroundImage() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedSize() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	var width = formObj.width.value;
+	if (width != "")
+		st['width'] = getCSSSize(width);
+	else
+		st['width'] = "";
+
+	var height = formObj.height.value;
+	if (height != "")
+		st['height'] = getCSSSize(height);
+	else
+		st['height'] = "";
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedColor() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	st['background-color'] = formObj.bgcolor.value;
+	st['border-color'] = formObj.bordercolor.value;
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedStyle() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	if (st['background-image'])
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+	else
+		formObj.backgroundimage.value = '';
+
+	if (st['width'])
+		formObj.width.value = trimSize(st['width']);
+
+	if (st['height'])
+		formObj.height.value = trimSize(st['height']);
+
+	if (st['background-color']) {
+		formObj.bgcolor.value = st['background-color'];
+		updateColor('bgcolor_pick','bgcolor');
+	}
+
+	if (st['border-color']) {
+		formObj.bordercolor.value = st['border-color'];
+		updateColor('bordercolor_pick','bordercolor');
+	}
+}
diff --git a/tinyMCE/plugins/table/jscripts/merge_cells.js b/tinyMCE/plugins/table/jscripts/merge_cells.js
new file mode 100644
index 0000000000000000000000000000000000000000..06cbb275d4fd90683f9c254fccbd1d15bacd4484
--- /dev/null
+++ b/tinyMCE/plugins/table/jscripts/merge_cells.js
@@ -0,0 +1,24 @@
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	var formObj = document.forms[0];
+
+	formObj.numcols.value = tinyMCE.getWindowArg('numcols', 1);
+	formObj.numrows.value = tinyMCE.getWindowArg('numrows', 1);
+}
+
+function mergeCells() {
+	var args = new Array();
+	var formObj = document.forms[0];
+
+	if (!AutoValidator.validate(formObj)) {
+		alert(tinyMCE.getLang('lang_invalid_data'));
+		return false;
+	}
+
+	args["numcols"] = formObj.numcols.value;
+	args["numrows"] = formObj.numrows.value;
+
+	tinyMCEPopup.execCommand("mceTableMergeCells", false, args);
+	tinyMCEPopup.close();
+}
diff --git a/tinyMCE/plugins/table/jscripts/row.js b/tinyMCE/plugins/table/jscripts/row.js
new file mode 100644
index 0000000000000000000000000000000000000000..395ddf028179f2a8c20b318228e0fa9ac8906957
--- /dev/null
+++ b/tinyMCE/plugins/table/jscripts/row.js
@@ -0,0 +1,200 @@
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+
+	var inst = tinyMCE.selectedInstance;
+	var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(tinyMCE.getAttrib(trElm, "style"));
+
+	// Get table row data
+	var rowtype = trElm.parentNode.nodeName.toLowerCase();
+	var align = tinyMCE.getAttrib(trElm, 'align');
+	var valign = tinyMCE.getAttrib(trElm, 'valign');
+	var height = trimSize(getStyle(trElm, 'height', 'height'));
+	var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(trElm, 'class'), false);
+	var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));
+	var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
+	var id = tinyMCE.getAttrib(trElm, 'id');
+	var lang = tinyMCE.getAttrib(trElm, 'lang');
+	var dir = tinyMCE.getAttrib(trElm, 'dir');
+
+	// Setup form
+	addClassesToList('class', 'table_row_styles');
+	formObj.bgcolor.value = bgcolor;
+	formObj.backgroundimage.value = backgroundimage;
+	formObj.height.value = height;
+	formObj.id.value = id;
+	formObj.lang.value = lang;
+	formObj.style.value = tinyMCE.serializeStyle(st);
+	selectByValue(formObj, 'align', align);
+	selectByValue(formObj, 'valign', valign);
+	selectByValue(formObj, 'class', className);
+	selectByValue(formObj, 'rowtype', rowtype);
+	selectByValue(formObj, 'dir', dir);
+
+	// Resize some elements
+	if (isVisible('backgroundimagebrowser'))
+		document.getElementById('backgroundimage').style.width = '180px';
+
+	updateColor('bgcolor_pick', 'bgcolor');
+}
+
+function updateAction() {
+	tinyMCEPopup.restoreSelection();
+
+	var inst = tinyMCE.selectedInstance;
+	var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
+	var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+	var formObj = document.forms[0];
+	var action = getSelectValue(formObj, 'action');
+
+	inst.execCommand('mceBeginUndoLevel');
+
+	switch (action) {
+		case "row":
+			updateRow(trElm);
+			break;
+
+		case "all":
+			var rows = tableElm.getElementsByTagName("tr");
+
+			for (var i=0; i<rows.length; i++)
+				updateRow(rows[i], true);
+
+			break;
+
+		case "odd":
+		case "even":
+			var rows = tableElm.getElementsByTagName("tr");
+
+			for (var i=0; i<rows.length; i++) {
+				if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
+					updateRow(rows[i], true, true);
+			}
+
+			break;
+	}
+
+	tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+	tinyMCE.triggerNodeChange();
+	inst.execCommand('mceEndUndoLevel');
+	tinyMCEPopup.close();
+}
+
+function updateRow(tr_elm, skip_id, skip_parent) {
+	var inst = tinyMCE.selectedInstance;
+	var formObj = document.forms[0];
+	var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
+	var rowtype = getSelectValue(formObj, 'rowtype');
+	var doc = inst.getDoc();
+
+	// Update row element
+	if (!skip_id)
+		tr_elm.setAttribute('id', formObj.id.value);
+
+	tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));
+	tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));
+	tr_elm.setAttribute('lang', formObj.lang.value);
+	tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));
+	tr_elm.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
+	tinyMCE.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
+
+	// Clear deprecated attributes
+	tr_elm.setAttribute('background', '');
+	tr_elm.setAttribute('bgColor', '');
+	tr_elm.setAttribute('height', '');
+
+	// Set styles
+	tr_elm.style.height = getCSSSize(formObj.height.value);
+	tr_elm.style.backgroundColor = formObj.bgcolor.value;
+
+	if (formObj.backgroundimage.value != "")
+		tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
+	else
+		tr_elm.style.backgroundImage = '';
+
+	// Setup new rowtype
+	if (curRowType != rowtype && !skip_parent) {
+		// first, clone the node we are working on
+		var newRow = tr_elm.cloneNode(1);
+
+		// next, find the parent of its new destination (creating it if necessary)
+		var theTable = tinyMCE.getParentElement(tr_elm, "table");
+		var dest = rowtype;
+		var newParent = null;
+		for (var i = 0; i < theTable.childNodes.length; i++) {
+			if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
+				newParent = theTable.childNodes[i];
+		}
+
+		if (newParent == null) {
+			newParent = doc.createElement(dest);
+
+			if (dest == "thead")
+				theTable.insertBefore(newParent, theTable.firstChild);
+			else
+				theTable.appendChild(newParent);
+		}
+
+		// append the row to the new parent
+		newParent.appendChild(newRow);
+
+		// remove the original
+		tr_elm.parentNode.removeChild(tr_elm);
+
+		// set tr_elm to the new node
+		tr_elm = newRow;
+	}
+}
+
+function changedBackgroundImage() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedStyle() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	if (st['background-image'])
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+	else
+		formObj.backgroundimage.value = '';
+
+	if (st['height'])
+		formObj.height.value = trimSize(st['height']);
+
+	if (st['background-color']) {
+		formObj.bgcolor.value = st['background-color'];
+		updateColor('bgcolor_pick','bgcolor');
+	}
+}
+
+function changedSize() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	var height = formObj.height.value;
+	if (height != "")
+		st['height'] = getCSSSize(height);
+	else
+		st['height'] = "";
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedColor() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	st['background-color'] = formObj.bgcolor.value;
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
diff --git a/tinyMCE/plugins/table/jscripts/table.js b/tinyMCE/plugins/table/jscripts/table.js
new file mode 100644
index 0000000000000000000000000000000000000000..4a0ee3b47e7c44ee8766ce032e51b6ee0944aa1d
--- /dev/null
+++ b/tinyMCE/plugins/table/jscripts/table.js
@@ -0,0 +1,364 @@
+var action, orgTableWidth, orgTableHeight;
+
+function insertTable() {
+	var formObj = document.forms[0];
+	var inst = tinyMCE.selectedInstance;
+	var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className, caption;
+	var html = '', capEl;
+	var elm = tinyMCE.tableElm;
+	var cellLimit, rowLimit, colLimit;
+
+	if (!AutoValidator.validate(formObj)) {
+		alert(tinyMCE.getLang('lang_invalid_data'));
+		return false;
+	}
+
+	tinyMCEPopup.restoreSelection();
+
+	// Get form data
+	cols = formObj.elements['cols'].value;
+	rows = formObj.elements['rows'].value;
+	border = formObj.elements['border'].value != "" ? formObj.elements['border'].value  : 0;
+	cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";
+	cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";
+	align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;
+	width = formObj.elements['width'].value;
+	height = formObj.elements['height'].value;
+	bordercolor = formObj.elements['bordercolor'].value;
+	bgcolor = formObj.elements['bgcolor'].value;
+	className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;
+	id = formObj.elements['id'].value;
+	summary = formObj.elements['summary'].value;
+	style = formObj.elements['style'].value;
+	dir = formObj.elements['dir'].value;
+	lang = formObj.elements['lang'].value;
+	background = formObj.elements['backgroundimage'].value;
+	caption = formObj.elements['caption'].checked;
+
+	cellLimit = tinyMCE.getParam('table_cell_limit', false);
+	rowLimit = tinyMCE.getParam('table_row_limit', false);
+	colLimit = tinyMCE.getParam('table_col_limit', false);
+
+	// Validate table size
+	if (colLimit && cols > colLimit) {
+		alert(tinyMCE.getLang('lang_table_col_limit', '', true, {cols : colLimit}));
+		return false;
+	} else if (rowLimit && rows > rowLimit) {
+		alert(tinyMCE.getLang('lang_table_row_limit', '', true, {rows : rowLimit}));
+		return false;
+	} else if (cellLimit && cols * rows > cellLimit) {
+		alert(tinyMCE.getLang('lang_table_cell_limit', '', true, {cells : cellLimit}));
+		return false;
+	}
+
+	// Update table
+	if (action == "update") {
+		inst.execCommand('mceBeginUndoLevel');
+
+		tinyMCE.setAttrib(elm, 'cellPadding', cellpadding, true);
+		tinyMCE.setAttrib(elm, 'cellSpacing', cellspacing, true);
+		tinyMCE.setAttrib(elm, 'border', border, true);
+		tinyMCE.setAttrib(elm, 'align', align);
+		tinyMCE.setAttrib(elm, 'class', className);
+		tinyMCE.setAttrib(elm, 'style', style);
+		tinyMCE.setAttrib(elm, 'id', id);
+		tinyMCE.setAttrib(elm, 'summary', summary);
+		tinyMCE.setAttrib(elm, 'dir', dir);
+		tinyMCE.setAttrib(elm, 'lang', lang);
+
+		capEl = elm.getElementsByTagName('caption')[0];
+
+		if (capEl && !caption)
+			capEl.parentNode.removeChild(capEl);
+
+		if (!capEl && caption) {
+			capEl = elm.ownerDocument.createElement('caption');
+			capEl.innerHTML = '&nbsp;';
+			elm.insertBefore(capEl, elm.firstChild);
+		}
+
+		// Not inline styles
+		if (!tinyMCE.getParam("inline_styles"))
+			tinyMCE.setAttrib(elm, 'width', width, true);
+
+		// Remove these since they are not valid XHTML
+		tinyMCE.setAttrib(elm, 'borderColor', '');
+		tinyMCE.setAttrib(elm, 'bgColor', '');
+		tinyMCE.setAttrib(elm, 'background', '');
+		tinyMCE.setAttrib(elm, 'height', '');
+
+		if (background != '')
+			elm.style.backgroundImage = "url('" + background + "')";
+		else
+			elm.style.backgroundImage = '';
+
+		if (tinyMCE.getParam("inline_styles"))
+			elm.style.borderWidth = border + "px";
+
+		if (tinyMCE.getParam("inline_styles")) {
+			if (width != '')
+				elm.style.width = getCSSSize(width);
+		}
+
+		if (bordercolor != "") {
+			elm.style.borderColor = bordercolor;
+			elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;
+			elm.style.borderWidth = border == "" ? "1px" : border;
+		} else
+			elm.style.borderColor = '';
+
+		elm.style.backgroundColor = bgcolor;
+		elm.style.height = getCSSSize(height);
+
+		tinyMCE.handleVisualAid(tinyMCE.tableElm, false, inst.visualAid, inst);
+
+		// Fix for stange MSIE align bug
+		tinyMCE.tableElm.outerHTML = tinyMCE.tableElm.outerHTML;
+
+		tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+		tinyMCE.triggerNodeChange();
+		inst.execCommand('mceEndUndoLevel');
+
+		// Repaint if dimensions changed
+		if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)
+			inst.repaint();
+
+		tinyMCEPopup.close();
+		return true;
+	}
+
+	// Create new table
+	html += '<table';
+
+	html += makeAttrib('id', id);
+	html += makeAttrib('border', border);
+	html += makeAttrib('cellpadding', cellpadding);
+	html += makeAttrib('cellspacing', cellspacing);
+	html += makeAttrib('width', width);
+	//html += makeAttrib('height', height);
+	//html += makeAttrib('bordercolor', bordercolor);
+	//html += makeAttrib('bgcolor', bgcolor);
+	html += makeAttrib('align', align);
+	html += makeAttrib('class', tinyMCE.getVisualAidClass(className, border == 0));
+	html += makeAttrib('style', style);
+	html += makeAttrib('summary', summary);
+	html += makeAttrib('dir', dir);
+	html += makeAttrib('lang', lang);
+	html += '>';
+
+	if (caption)
+		html += '<caption>&nbsp;</caption>';
+
+	for (var y=0; y<rows; y++) {
+		html += "<tr>";
+
+		for (var x=0; x<cols; x++)
+			html += '<td>&nbsp;</td>';
+
+		html += "</tr>";
+	}
+
+	html += "</table>";
+
+	inst.execCommand('mceBeginUndoLevel');
+	inst.execCommand('mceInsertContent', false, html);
+	tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings['visual']);
+	inst.execCommand('mceEndUndoLevel');
+
+	tinyMCEPopup.close();
+}
+
+function makeAttrib(attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib];
+
+	if (typeof(value) == "undefined" || value == null) {
+		value = "";
+
+		if (valueElm)
+			value = valueElm.value;
+	}
+
+	if (value == "")
+		return "";
+
+	// XML encode it
+	value = value.replace(/&/g, '&amp;');
+	value = value.replace(/\"/g, '&quot;');
+	value = value.replace(/</g, '&lt;');
+	value = value.replace(/>/g, '&gt;');
+
+	return ' ' + attrib + '="' + value + '"';
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
+	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
+
+	var cols = 2, rows = 2, border = tinyMCE.getParam('table_default_border', '0'), cellpadding = tinyMCE.getParam('table_default_cellpadding', ''), cellspacing = tinyMCE.getParam('table_default_cellspacing', '');
+	var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
+	var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "";
+	var inst = tinyMCE.selectedInstance;
+	var formObj = document.forms[0];
+	var elm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+
+	tinyMCE.tableElm = elm;
+	action = tinyMCE.getWindowArg('action');
+	if (action == null)
+		action = tinyMCE.tableElm ? "update" : "insert";
+
+	if (tinyMCE.tableElm && action != "insert") {
+		var rowsAr = tinyMCE.tableElm.rows;
+		var cols = 0;
+		for (var i=0; i<rowsAr.length; i++)
+			if (rowsAr[i].cells.length > cols)
+				cols = rowsAr[i].cells.length;
+
+		cols = cols;
+		rows = rowsAr.length;
+
+		st = tinyMCE.parseStyle(tinyMCE.getAttrib(tinyMCE.tableElm, "style"));
+		border = trimSize(getStyle(elm, 'border', 'borderWidth'));
+		cellpadding = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellpadding', "");
+		cellspacing = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellspacing', "");
+		width = trimSize(getStyle(elm, 'width', 'width'));
+		height = trimSize(getStyle(elm, 'height', 'height'));
+		bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));
+		bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));
+		align = tinyMCE.getAttrib(tinyMCE.tableElm, 'align', align);
+		className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tinyMCE.tableElm, 'class'), false);
+		id = tinyMCE.getAttrib(tinyMCE.tableElm, 'id');
+		summary = tinyMCE.getAttrib(tinyMCE.tableElm, 'summary');
+		style = tinyMCE.serializeStyle(st);
+		dir = tinyMCE.getAttrib(tinyMCE.tableElm, 'dir');
+		lang = tinyMCE.getAttrib(tinyMCE.tableElm, 'lang');
+		background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+		formObj.caption.checked = tinyMCE.tableElm.getElementsByTagName('caption').length > 0;
+
+		orgTableWidth = width;
+		orgTableHeight = height;
+
+		action = "update";
+	}
+
+	addClassesToList('class', "table_styles");
+
+	// Update form
+	selectByValue(formObj, 'align', align);
+	selectByValue(formObj, 'class', className);
+	formObj.cols.value = cols;
+	formObj.rows.value = rows;
+	formObj.border.value = border;
+	formObj.cellpadding.value = cellpadding;
+	formObj.cellspacing.value = cellspacing;
+	formObj.width.value = width;
+	formObj.height.value = height;
+	formObj.bordercolor.value = bordercolor;
+	formObj.bgcolor.value = bgcolor;
+	formObj.id.value = id;
+	formObj.summary.value = summary;
+	formObj.style.value = style;
+	formObj.dir.value = dir;
+	formObj.lang.value = lang;
+	formObj.backgroundimage.value = background;
+	formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true); 
+
+	updateColor('bordercolor_pick', 'bordercolor');
+	updateColor('bgcolor_pick', 'bgcolor');
+
+	// Resize some elements
+	if (isVisible('backgroundimagebrowser'))
+		document.getElementById('backgroundimage').style.width = '180px';
+
+	// Disable some fields in update mode
+	if (action == "update") {
+		formObj.cols.disabled = true;
+		formObj.rows.disabled = true;
+	}
+}
+
+function changedSize() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	var width = formObj.width.value;
+	if (width != "")
+		st['width'] = tinyMCE.getParam("inline_styles") ? getCSSSize(width) : "";
+	else
+		st['width'] = "";
+
+	var height = formObj.height.value;
+	if (height != "")
+		st['height'] = getCSSSize(height);
+	else
+		st['height'] = "";
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedBackgroundImage() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedBorder() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	// Update border width if the element has a color
+	if (formObj.border.value != "" && formObj.bordercolor.value != "")
+		st['border-width'] = formObj.border.value + "px";
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedColor() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	st['background-color'] = formObj.bgcolor.value;
+
+	if (formObj.bordercolor.value != "") {
+		st['border-color'] = formObj.bordercolor.value;
+
+		// Add border-width if it's missing
+		if (!st['border-width'])
+			st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px";
+	}
+
+	formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedStyle() {
+	var formObj = document.forms[0];
+	var st = tinyMCE.parseStyle(formObj.style.value);
+
+	if (st['background-image'])
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+	else
+		formObj.backgroundimage.value = '';
+
+	if (st['width'])
+		formObj.width.value = trimSize(st['width']);
+
+	if (st['height'])
+		formObj.height.value = trimSize(st['height']);
+
+	if (st['background-color']) {
+		formObj.bgcolor.value = st['background-color'];
+		updateColor('bgcolor_pick','bgcolor');
+	}
+
+	if (st['border-color']) {
+		formObj.bordercolor.value = st['border-color'];
+		updateColor('bordercolor_pick','bordercolor');
+	}
+}
diff --git a/tinyMCE/plugins/table/langs/ca.js b/tinyMCE/plugins/table/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..38a0f62c7230a941b64e502a2476fedb0684c59e
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ca.js
@@ -0,0 +1,78 @@
+// CA lang variables by Marc Folch
+
+tinyMCE.addToLang('table',{
+general_tab : 'General',
+advanced_tab : 'Avan&ccedil;at',
+general_props : 'Opcions generals',
+advanced_props : 'Opcions avan&ccedil;des',
+desc : 'Insereix una taula nova',
+row_before_desc : 'Insereix una fila abans',
+row_after_desc : 'Insereix una fila darrera',
+delete_row_desc : 'Suprimeix la fila',
+col_before_desc : 'Insereix una columna abans',
+col_after_desc : 'Insereix una columna darrera',
+delete_col_desc : 'Suprimeix la columna',
+rowtype : 'Tipus de fila',
+title : 'Insereix/Modifica la taula',
+width : 'Amplada',
+height : 'Al&ccedil;ada',
+cols : 'Columnes',
+rows : 'Files',
+cellspacing : 'Espaiat de cel&middot;la',
+cellpadding : 'Enconixinat de cel&middot;la',
+border : 'Vora',
+align : 'Alineament',
+align_default : 'Per defecte',
+align_left : 'Esquerra',
+align_right : 'Dreta',
+align_middle : 'Centrat',
+row_title : 'Opcions de fila',
+cell_title : 'Opcions de cel&middot;la',
+cell_type : 'Tipus de cel&middot;la',
+row_desc : 'Opcions de fila',
+cell_desc : 'Opcions de cel&middot;la',
+valign : 'Alineament vertical',
+align_top : 'A dalt',
+align_bottom : 'A baix',
+props_desc : 'Opcions de taula',
+bordercolor : 'Color de vora',
+bgcolor : 'Color de fons',
+merge_cells_title : 'Fusiona cel&middot;les',
+split_cells_desc : 'Divideix cel&middot;les',
+merge_cells_desc : 'Fusiona cel&middot;les',
+cut_row_desc : 'Retalla la fila',
+copy_row_desc : 'Copia la fila',
+paste_row_before_desc : 'Enganxa fila abans',
+paste_row_after_desc : 'Enganxa fila despr&eacute;s',
+id : 'Id',
+style: 'Estil',
+langdir : 'Direcci&oacute; escriptura',
+langcode : 'Codi de llengua',
+mime : 'Tipus MIME',
+ltr : 'Esquerra dreta',
+rtl : 'Dreta esquerra',
+bgimage : 'Imatge de fons',
+summary : 'Resum',
+td : "cel&middot;la",
+th : "cel&middot;la cap&ccedil;alera",
+cell_cell : 'Actualitza la cel&middot;la',
+cell_row : 'Actualitza totes les cel&middot;les de la fila',
+cell_all : 'Actualitza totes les cel&middot;les de la taula',
+row_row : 'Actualitza la fila',
+row_odd : 'Actualitza les files senars',
+row_even : 'Actualitza les files parells',
+row_all : 'Actualitza totes les files',
+thead : 'Cap&ccedil;alera de taula',
+tbody : 'Cos de la taula',
+tfoot : 'Peu de la taula',
+del : 'Suprimeix taula',
+scope : 'Abast',
+row : 'fila',
+col : 'Columna',
+rowgroup : 'Grup de files',
+colgroup : 'Grup de columnes',
+col_limit : 'Heu excedit el nombre m&agrave;xim de columnes {$cols}.',
+row_limit : 'Heu excedit el nombre m&agrave;xim de files {$rows}.',
+cell_limit : 'Heu excedit el nombre m&agrave;xim de cel&middot;les {$cells}.',
+missing_scope: 'Esteu segurs que voleu continuar sense especificar un abast per aquest cel&middot;la de cap&ccedil;alera. Sense abast, pot ser dif&iacute;cil per alguns usuaris amb discapacitats entendre el contingut o les dades mostrades a la taula.'
+});
diff --git a/tinyMCE/plugins/table/langs/cs.js b/tinyMCE/plugins/table/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..511023064326fefcee7e0fa42d035978fec03356
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/cs.js
@@ -0,0 +1,82 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * @author Michi
+ *  
+ * $Id: cs.js,v 1.12 2006/02/23 13:02:37 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('table',{
+general_tab : 'Obecné',
+advanced_tab : 'Pokročilé',
+general_props : 'Obecné vlastnosti',
+advanced_props : 'Pokročilé vlastnosti',
+desc : 'Vložit novou tabulku',
+row_before_desc : 'Vložit řádek před',
+row_after_desc : 'Vložit řádek za',
+delete_row_desc : 'Smazat řádek',
+col_before_desc : 'Vložit sloupec před',
+col_after_desc : 'VLožit sloupec za',
+delete_col_desc : 'Smazat sloupec',
+rowtype : 'Řádek v tabulce',
+title : 'Vložit/Modifikovat tabulku',
+width : 'Šířka',
+height : 'Výška',
+cols : 'Sloupce',
+rows : 'Řádky',
+cellspacing : 'Mezera mezi buňkami',
+cellpadding : 'Výplň buněk',
+border : 'Rámeček',
+align : 'Zarovnání',
+align_default : 'Automatické',
+align_left : 'Vlevo',
+align_right : 'Vpravo',
+align_middle : 'Na střed',
+row_title : 'Vlastnosti řádku',
+cell_title : 'Vlastnosti buňky',
+cell_type : 'Typ buňky',
+row_desc : 'Vlastnosti řádku',
+cell_desc : 'Vlastnosti buňky',
+valign : 'Vertikální zarovnání',
+align_top : 'Nahoru',
+align_bottom : 'Dolů',
+props_desc : 'Vlastnosti tabulky',
+bordercolor : 'Barva rámečku',
+bgcolor : 'Barva pozadí',
+merge_cells_title : 'Sloučit buňky',
+split_cells_desc : 'Rozdělit buňky',
+merge_cells_desc : 'Sloučit buňky',
+cut_row_desc : 'Vyjmout řádek',
+copy_row_desc : 'Kopírovat řádek',
+paste_row_before_desc : 'Vložit řádek před',
+paste_row_after_desc : 'Vložit řádek za',
+id : 'Id',
+style: 'Styl',
+langdir : 'Směr textu',
+langcode : 'Kód jazyka',
+mime : 'Cílový MIME typ',
+ltr : 'Z leva doprava',
+rtl : 'Z prava doleva',
+bgimage : 'Obrázek pozadí',
+summary : 'Obsah',
+td : "Data",
+th : "Hlavička",
+cell_cell : 'Aktualizovat současnou buňku',
+cell_row : 'Aktualizovat všechny buňky v řádku',
+cell_all : 'Aktualizovat všechny buňky v tabulce',
+row_row : 'Aktualizovat současný řádek',
+row_odd : 'Aktualizovat liché řádky tabulky',
+row_even : 'Aktualizovat sudé řádky v tabulce',
+row_all : 'Aktualizovat všechny řádky v tabulce',
+thead : 'Hlavička tabulky',
+tbody : 'Tělo tabulky',
+tfoot : 'Patička tabulky',
+del : 'Smazat tabulku',
+scope : 'Scope',
+row : 'Řádek',
+col : 'Sloupec',
+rowgroup : 'Skupina řádků',
+colgroup : 'Skupina sloupců',
+missing_scope: 'Jste si jistý(á), že chcete pokračovat bez vyplnění rozsahu pro tuto buňku tabulky? Bez něj může být težké handicapovaným uživatelům porozumět obsahu nebo datům obsažených v tabulce.'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/table/langs/cy.js b/tinyMCE/plugins/table/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b54687ef7fdf14c345595ad703592b50c0a733c
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/cy.js
@@ -0,0 +1,76 @@
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Cyffredinol',
+advanced_tab : 'Uwch',
+general_props : 'Priodoleddau cyffredinol',
+advanced_props : 'Priodoleddau uwch',
+desc : 'Mewnosod tabl newydd',
+row_before_desc : 'Mewnosod rhes cyn',
+row_after_desc : 'Mewnosod rhes ar &ocirc;l',
+delete_row_desc : 'Dileu rhes',
+col_before_desc : 'Mewnosod colofn cyn',
+col_after_desc : 'Mewnosod colofn ar &ocirc;l',
+delete_col_desc : 'Dileu colofn',
+rowtype : 'Rhan tabl y rhes',
+title : 'Mewnosod/golygu tabl',
+width : 'Lled',
+height : 'Uchder',
+cols : 'Colofnau',
+rows : 'Rhesi',
+cellspacing : 'Bylchu celloedd',
+cellpadding : 'Padio celliodd',
+border : 'Ffin',
+align : 'Unioni',
+align_default : 'Arferol',
+align_left : 'Chwith',
+align_right : 'Dde',
+align_middle : 'Canol',
+row_title : 'Priodoleddau rhes tabl',
+cell_title : 'Priodoleddau cell tabl',
+cell_type : 'Math cell',
+row_desc : 'Priodoleddau rhes tabl',
+cell_desc : 'Priodoleddau cell tabl',
+valign : 'Unioni fertigol',
+align_top : 'Brig',
+align_bottom : 'Gwaelod',
+props_desc : 'Priodoleddau tabl',
+bordercolor : 'Lliw ffin',
+bgcolor : 'Lliw cefndir',
+merge_cells_title : 'Uno celloedd tabl',
+split_cells_desc : 'Rhannu celloedd tabl',
+merge_cells_desc : 'Uno celloedd tabl',
+cut_row_desc : 'Torri rhes tabl',
+copy_row_desc : 'Cop&iuml;o rhes tabl',
+paste_row_before_desc : 'Gludo rhes tabl cyn',
+paste_row_after_desc : 'Gludo rhes tabl ar &ocirc;l',
+id : 'Id',
+style: 'Arddull',
+langdir : 'Cyfeiriad iaith',
+langcode : 'C&ocirc;d iaith',
+mime : 'Math MIME y targed',
+ltr : 'Chwith i\'r dde',
+rtl : 'Dde i\'r chwith',
+bgimage : 'Delwedd cefndir',
+summary : 'Crynodeb',
+td : "Data",
+th : "Pennawd",
+cell_cell : 'Diweddaru\'r gell bresennoll',
+cell_row : 'Diweddaru holl gelloedd y rhes',
+cell_all : 'Diweddaru holl gelloedd y tabl',
+row_row : 'Diweddaru\'r rhes presennol',
+row_odd : 'Diweddaru rhesi odrif y tabl',
+row_even : 'Diweddaru rhesi eilrif y tabl',
+row_all : 'Diweddaru holl rhesi\'r tabl',
+thead : 'Pennawd Tabl',
+tbody : 'Corff Tabl',
+tfoot : 'Troedyn Tabl',
+del : 'Dileu tabl',
+scope : 'Maes',
+row : 'Rhes',
+col : 'Colofn',
+rowgroup : 'Gr&#373;p Rhesi',
+colgroup : 'Gr&#373;p Colofnau',
+missing_scope: 'Wyt ti\'n sicr eisiau parhau heb gynnwys maes ar gyfer y cell pennawd tabl hwn? Heb un, gallai fod yn anodd i rai defnyddwyr gydag anableddau ddeall cynnwys neu ddata y tabl.',
+cellprops_delta_width : 50
+});
diff --git a/tinyMCE/plugins/table/langs/da.js b/tinyMCE/plugins/table/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9b99b386b89952de5f40fb6e2ce0a447e855f40
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/da.js
@@ -0,0 +1,79 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard, Ronny Buelund - Corr.:
+
+tinyMCE.addToLang('table',{
+general_tab : 'Generelt',
+advanced_tab : 'Avanceret',
+general_props : 'Generelle egenskaber',
+advanced_props : 'Avancerede egenskaber',
+desc : 'Inds&aelig;tter ny tabel',
+row_before_desc : 'Inds&aelig;t r&aelig;kke foran',
+row_after_desc : 'Inds&aelig;t r&aelig;kke efter',
+delete_row_desc : 'Slet r&aelig;kke',
+col_before_desc : 'Inds&aelig;t kolonne foran',
+col_after_desc : 'Inds&aelig;t kolonner efter',
+delete_col_desc : 'Fjern kolonne',
+rowtype : 'R&aelig;kke i tabeldelen',
+title : 'Inds&aelig;t eller rediger tabel',
+width : 'Bredde',
+height : 'H&oslash;jde',
+cols : 'Kolonner',
+rows : 'R&aelig;kker',
+cellspacing : 'Cellemargin',
+cellpadding : 'Indvendig margin',
+border : 'Kant',
+align : 'Justering',
+align_default : 'Standard',
+align_left : 'Venstre',
+align_right : 'H&oslash;jre',
+align_middle : 'Centreret',
+row_title : 'R&aelig;kkeegenskaber',
+cell_title : 'Celleegenskaber',
+cell_type : 'Celletype',
+row_desc : 'R&aelig;kkeegenskaber',
+cell_desc : 'Celleegenskaber',
+valign : 'Vertikal justering',
+align_top : 'Top',
+align_bottom : 'Bund',
+props_desc : 'Tabelegenskaber',
+bordercolor : 'Kantfarve',
+bgcolor : 'Baggrundsfarve',
+merge_cells_title : 'Flet celler',
+split_cells_desc : 'Del celler',
+merge_cells_desc : 'Flet celler',
+cut_row_desc : 'Del kolonne',
+copy_row_desc : 'Kopier kolonne',
+paste_row_before_desc : 'Inds&aelig;t kolonne foran',
+paste_row_after_desc : 'Inds&aelig;t kolonne efter',
+id : 'Tabel id',
+style: 'Stil',
+langdir : 'Tekstretning',
+langcode : 'Sprogkode',
+mime : 'MIME type',
+ltr : 'Venstre til h&oslash;jre',
+rtl : 'H&oslash;jre til venstre',
+bgimage : 'Baggrundsbillede',
+summary : 'Opsummering',
+td : "Data",
+th : "Overskrift",
+cell_cell : 'Opdater aktuel celle',
+cell_row : 'Opdater alle celler i kolonnen',
+cell_all : 'Opdater alle celler i tabellen',
+row_row : 'Opdater aktuel kolonne',
+row_odd : 'Opdater ulige kolonner i tabellen',
+row_even : 'Opdater lige kolonner i tabellen',
+row_all : 'Opdater alle kolonner i tabellen',
+thead : 'Tabeloverskrift',
+tbody : 'Tabelindhold',
+tfoot : 'Tabelfodnote',
+del : 'Slet tabel',
+scope : 'Omr&aring;de',
+row : 'R&aelig;kke',
+col : 'Kolonne',
+rowgroup : 'Flere r&aelig;kker',
+colgroup : 'Flere kolonner',
+col_limit : 'Du har overskredet det maksimale antal kolonner {$cols}.',
+row_limit : 'Du har overskredet det maksimale antal r&aelig;kker {$rows}.',
+cell_limit : 'Du har overskredet det maksimale antal celler {$cells}.',
+missing_scope: 'Er du sikker p&aring; at du vil forts&aelig;tte uden at angive et omr&aring;de for denne celle overskrift. Hvis du undlader den, kan det v&aelig;re sv&aelig;rt for nogle brugere at forst&aring; indholdet i tabellen.',
+caption : 'Tabeloverskrift'
+});
diff --git a/tinyMCE/plugins/table/langs/de.js b/tinyMCE/plugins/table/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..89c1a1b85ffd708b74dbdcdcf4ad4541f9a946e0
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/de.js
@@ -0,0 +1,79 @@
+// DE lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Allgemein',
+advanced_tab : 'Erweitert',
+general_props : 'Allgemeine Eigenschaften',
+advanced_props : 'Erweiterte Eigenschaften',
+desc : 'Neue Tabelle einf&uuml;gen',
+row_before_desc : 'Zeile oberhalb einf&uuml;gen',
+row_after_desc : 'Zeile unterhalb einf&uuml;gen',
+delete_row_desc : 'Zeile l&ouml;schen',
+col_before_desc : 'Spalte nach links einf&uuml;gen',
+col_after_desc : 'Spalte nach rechts einf&uuml;gen',
+delete_col_desc : 'Spalte l&ouml;schen',
+rowtype : 'Zeile in Tabellen-Teil',
+title : 'Tabelle hinzuf&uuml;gen/bearbeiten',
+width : 'Breite',
+height : 'H&ouml;he',
+cols : 'Spalten',
+rows : 'Zeilen',
+cellspacing : 'Zellenabstand',
+cellpadding : 'Zellenausf&uuml;llung',
+border : 'Rahmen',
+align : 'Ausrichtung',
+align_default : 'Standard',
+align_left : 'Links',
+align_right : 'Rechts',
+align_middle : 'Zentriert',
+row_title : 'Zeileneigenschaften',
+cell_title : 'Zelleneigenschaften',
+cell_type : 'Zellentyp',
+row_desc : 'Zeileneigenschaften',
+cell_desc : 'Zelleneigenschaften',
+valign : 'Vertikale Ausrichtung',
+align_top : 'Oben',
+align_bottom : 'Unten',
+props_desc : 'Tabelleneigenschaften',
+bordercolor : 'Rahmenfarbe',
+bgcolor : 'Hintergrundfarbe',
+merge_cells_title : 'Zellen zusammenf&uuml;gen',
+split_cells_desc : 'Zelle teilen',
+merge_cells_desc : 'Zellen zusammenf&uuml;gen',
+cut_row_desc : 'Zeile ausschneiden',
+copy_row_desc : 'Zeile kopieren',
+paste_row_before_desc : 'Zeile oberhalb einf&uuml;gen',
+paste_row_after_desc : 'Zeile unterhalb einf&uuml;gen',
+id : 'ID',
+style: 'CSS-Stil',
+langdir : 'Textfluss',
+langcode : 'Sprachcode',
+mime : 'MIME-Typ',
+ltr : 'Von links nach rechts',
+rtl : 'Von rechts nach links',
+bgimage : 'Hintergrundfarbe',
+summary : 'Zusammenfassung',
+td : "Daten",
+th : "Kopfzeile",
+cell_cell : 'Diese Zelle aktualisieren',
+cell_row : 'Alle Zellen in dieser Zeile aktualisieren',
+cell_all : 'Alle Zellen in dieser Tabelle aktualisieren',
+row_row : 'Diese Zeile aktualisieren',
+row_odd : 'Ungerade Zeilen aktualisieren',
+row_even : 'Gerade Zeilen aktualisieren',
+row_all : 'Alle Zeilen in dieser Tabelle aktualisieren',
+thead : 'Tabellenkopf',
+tbody : 'Tabellenk&ouml;rper',
+tfoot : 'Tabellenfu&szlig',
+del : 'Tabelle l&ouml;schen',
+scope : 'Umfang',
+row : 'Reihe',
+col : 'Col',
+rowgroup : 'Reihe Gruppe',
+colgroup : 'Spalte Gruppe',
+col_limit : 'Sie haben die maximale Spaltenanzahl von {$cols} &uuml;berschritten.',
+row_limit : 'Sie haben die maximale Reihenanzahl von {$rows} &uuml;bersschritten.',
+cell_limit : 'Sie haben die maximale Zellenanzahl von {$cells} &uuml;bersschritten.',
+missing_scope: 'Sind Sie sicher, dass die fortfahren m&ouml;chten ohne einen genauen Bereich für die Kopfzelle der Tabelle eingegeben zu haben? Ohne diese Eingabe, könnten Besucher mit Behinderungen eventuell den Inhalt der Tabelle nicht richtig verstehen.',
+table_delta_width : 45
+});
diff --git a/tinyMCE/plugins/table/langs/el.js b/tinyMCE/plugins/table/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f4743feecf37f20ffc3c36f3c2dfcc2cd35ff39
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/el.js
@@ -0,0 +1,44 @@
+// Greek lang variables by Jacaranda Bill
+// Revised by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+table_desc : 'ÅéóáãùãÞ ðßíáêá',
+table_insert_row_before_desc : 'ÅéóáãùãÞ ãñáììÞò ðÜíù',
+table_insert_row_after_desc : 'ÅéóáãùãÞ ãñáììÞò êÜôù',
+table_delete_row_desc : 'ÄéáãñáöÞ ãñáììÞò',
+table_insert_col_before_desc : 'ÅéóáãùãÞ óôÞëçò áñéóôåñÜ',
+table_insert_col_after_desc : 'ÅéóáãùãÞ óôÞëçò äåîéÜ',
+table_delete_col_desc : 'ÄéáãñáöÞ óôÞëçò',
+insert_table_title : 'ÅéóáãùãÞ/Äéüñèùóç ðßíáêá',
+insert_table_width : 'ÐëÜôïò',
+insert_table_height : '¾øïò',
+insert_table_cols : 'ÓôÞëåò',
+insert_table_rows : 'ÃñáììÝò',
+insert_table_cellspacing : 'ÄéÜóôé÷ï',
+insert_table_cellpadding : 'ÃÝìéóìá',
+insert_table_border : 'Ðåñßãñáììá',
+insert_table_align : 'Óôïß÷éóç',
+insert_table_align_default : 'Ðñïêáè.',
+insert_table_align_left : 'ÁñéóôåñÜ',
+insert_table_align_right : 'ÄåîéÜ',
+insert_table_align_middle : 'Óôï êÝíôñï',
+insert_table_class : 'ÊëÜóç',
+table_row_title : 'Éäéüôçôåò ãñáììÞò',
+table_cell_title : 'Éäéüôçôåò êåëéïý',
+table_row_desc : 'Éäéüôçôåò ãñáììÞò',
+table_cell_desc : 'Éäéüôçôåò êåëéïý',
+insert_table_valign : 'ÊÜèåôç óôïß÷éóç',
+insert_table_align_top : 'ÐÜíù',
+insert_table_align_bottom : 'ÊÜôù',
+table_props_desc : 'Éäéüôçôåò ðßíáêá',
+table_bordercolor : '×ñþìá ðåñéèùñßïõ',
+table_bgcolor : '×ñþìá bg',
+table_merge_cells_title : '¸íùóç êåëéþí',
+table_split_cells_desc : '×þñéóìá êåëéþí',
+table_merge_cells_desc : '¸íùóç êåëéþí',
+table_cut_row_desc : 'ÁðïêïðÞ ãñáììÞò',
+table_copy_row_desc : 'ÁíôéãñáöÞ ãñáììÞò',
+table_paste_row_before_desc : 'Åðéêüëëçóç ðñéí ôç ãñáììÞ',
+table_paste_row_after_desc : 'Åðéêüëëçóç ìåôÜ ôç ãñáììÞ',
+table_insert_desc : 'ÅéóáãùãÞ íÝïõ ðßíáêá'
+});
diff --git a/tinyMCE/plugins/table/langs/en.js b/tinyMCE/plugins/table/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..e2fbba2e56626967847b97bd19c0e289db11df62
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/en.js
@@ -0,0 +1,79 @@
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'General',
+advanced_tab : 'Advanced',
+general_props : 'General properties',
+advanced_props : 'Advanced properties',
+desc : 'Inserts a new table',
+row_before_desc : 'Insert row before',
+row_after_desc : 'Insert row after',
+delete_row_desc : 'Delete row',
+col_before_desc : 'Insert column before',
+col_after_desc : 'Insert column after',
+delete_col_desc : 'Remove column',
+rowtype : 'Row in table part',
+title : 'Insert/Modify table',
+width : 'Width',
+height : 'Height',
+cols : 'Columns',
+rows : 'Rows',
+cellspacing : 'Cellspacing',
+cellpadding : 'Cellpadding',
+border : 'Border',
+align : 'Alignment',
+align_default : 'Default',
+align_left : 'Left',
+align_right : 'Right',
+align_middle : 'Center',
+row_title : 'Table row properties',
+cell_title : 'Table cell properties',
+cell_type : 'Cell type',
+row_desc : 'Table row properties',
+cell_desc : 'Table cell properties',
+valign : 'Vertical alignment',
+align_top : 'Top',
+align_bottom : 'Bottom',
+props_desc : 'Table properties',
+bordercolor : 'Border color',
+bgcolor : 'Background color',
+merge_cells_title : 'Merge table cells',
+split_cells_desc : 'Split merged table cells',
+merge_cells_desc : 'Merge table cells',
+cut_row_desc : 'Cut table row',
+copy_row_desc : 'Copy table row',
+paste_row_before_desc : 'Paste table row before',
+paste_row_after_desc : 'Paste table row after',
+id : 'Id',
+style: 'Style',
+langdir : 'Language direction',
+langcode : 'Language code',
+mime : 'Target MIME type',
+ltr : 'Left to right',
+rtl : 'Right to left',
+bgimage : 'Background image',
+summary : 'Summary',
+td : "Data",
+th : "Header",
+cell_cell : 'Update current cell',
+cell_row : 'Update all cells in row',
+cell_all : 'Update all cells in table',
+row_row : 'Update current row',
+row_odd : 'Update odd rows in table',
+row_even : 'Update even rows in table',
+row_all : 'Update all rows in table',
+thead : 'Table Head',
+tbody : 'Table Body',
+tfoot : 'Table Foot',
+del : 'Delete table',
+scope : 'Scope',
+row : 'Row',
+col : 'Col',
+rowgroup : 'Row Group',
+colgroup : 'Col Group',
+col_limit : 'You\'ve exceeded the maximum number of columns of {$cols}.',
+row_limit : 'You\'ve exceeded the maximum number of rows of {$rows}.',
+cell_limit : 'You\'ve exceeded the maximum number of cells of {$cells}.',
+missing_scope: 'Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.',
+caption : 'Table caption'
+});
diff --git a/tinyMCE/plugins/table/langs/es.js b/tinyMCE/plugins/table/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..c0baeac81d0a922f054a5322ef0c1707abb853c6
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/es.js
@@ -0,0 +1,85 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('table',{
+general_tab : 'General',
+advanced_tab : 'Avanzado',
+general_props : 'Propiedades generales',
+advanced_props : 'Propiedades avanzadas',
+desc : 'Insertar/Modificar tabla',
+row_before_desc : 'Insertar una fila antes',
+row_after_desc : 'Insert una fila despu&eacute;s',
+delete_row_desc : 'Eliminar fila',
+col_before_desc : 'Insertar una columna antes',
+col_after_desc : 'Insertar una columna despu&eacute;s',
+delete_col_desc : 'Eliminar columna',
+rowtype : 'File en parte de tabla',
+title : 'Insertar/Modificar tabla',
+width : 'Ancho',
+height : 'ALto',
+cols : 'Columnas',
+rows : 'Filas',
+cellspacing : 'Espacio entre celdas',
+cellpadding : 'Borde interior de las celdas',
+border : 'Borde',
+align : 'Alineaci&oacute;n horizontal',
+align_default : 'Defecto',
+align_left : 'Izquierda',
+align_right : 'Derecha',
+align_middle : 'Centrado',
+row_title : 'Propiedades de la fila',
+cell_title : 'Propiedades de la celda',
+cell_type : 'Tipo de celda',
+row_desc : 'Propiedades de la fila',
+cell_desc : 'Propiedades de la celda',
+valign : 'Alineaci&oacute;n vertical',
+align_top : 'Arriba',
+align_bottom : 'Abajo',
+props_desc : 'Propiedades de la tabla',
+bordercolor : 'Color del borde',
+bgcolor : 'Color del fondo',
+merge_cells_title : 'Combinar celdas',
+split_cells_desc : 'Dividir celdas',
+merge_cells_desc : 'Combinar celdas',
+cut_row_desc : 'Cortar fila',
+copy_row_desc : 'Copiar fila',
+paste_row_before_desc : 'Pegar fila antes',
+paste_row_after_desc : 'Pegar fila despu&eacute;s',
+id : 'Id',
+style: 'Estilo',
+langdir : 'Direcci&oacute;n del texto',
+langcode : 'C&oacute;digo del idioma',
+mime : 'Tipo MIME del target',
+ltr : 'De izquierda a derecha',
+rtl : 'De derecha a izquierda',
+bgimage : 'Imagen de fondo',
+summary : 'Resumen',
+td : "Datos",
+th : "Cabecera",
+cell_cell : 'Actualizar la celda actual',
+cell_row : 'Actualizar todas las celdas de la fila',
+cell_all : 'Actualizar todas las celdas de la tabla',
+row_row : 'Actualizar la fila actual',
+row_odd : 'Actualizar las filas impares de la tabla',
+row_even : 'Actualizar las filas pares de la tabla',
+row_all : 'Actualizar todas las filas de la tabla',
+thead : 'Cabecera de la tabla',
+tbody : 'Cuerpo de la tabla',
+tfoot : 'Pie de la tabla',
+del : 'Eliminar tabla',
+scope : 'Alcance',
+row : 'Fila',
+col : 'Columna',
+rowgroup : 'Grupo de filas',
+colgroup : 'Grupo de columnas',
+missing_scope: '&#191;Est&aacute;s seguro que quieres continuar sin especificar el alcance para esta celda de tipo cabecera? Sin ello, puede dificultar a algunos usuarios con discapacidades el poder entender el contenido o los datos mostrados en la tabla.',
+cellprops_delta_width : 55
+});
diff --git a/tinyMCE/plugins/table/langs/fa.js b/tinyMCE/plugins/table/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..101519fc4d020be97f91fa529c1ececa9550b99a
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/fa.js
@@ -0,0 +1,47 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+table_desc : '??? ???? ????',
+table_insert_row_before_desc : '??? ??? ???? ??? ?? ??? ????',
+table_insert_row_after_desc : '??? ??? ???? ?? ?? ??? ????',
+table_delete_row_desc : '??? ???',
+table_insert_col_before_desc : '??? ???? ???? ??? ?? ???? ????',
+table_insert_col_after_desc : '??? ???? ???? ?? ?? ???? ????',
+table_delete_col_desc : '??? ????',
+insert_table_title : '??? ? ?????? ????',
+insert_table_width : '???',
+insert_table_height : '??????',
+insert_table_cols : '????? ??????',
+insert_table_rows : '????? ?????',
+insert_table_cellspacing : '????? ?? ???? ????',
+insert_table_cellpadding : '????? ??? ?? ?????? ????',
+insert_table_border : '?????',
+insert_table_align : '??? ???? ????',
+insert_table_align_default : '??? ???',
+insert_table_align_left : '??',
+insert_table_align_right : '????',
+insert_table_align_middle : '???',
+insert_table_class : '????',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
diff --git a/tinyMCE/plugins/table/langs/fi.js b/tinyMCE/plugins/table/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..0707bdf9b32bb5de0953a48557cdda062581ada4
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/fi.js
@@ -0,0 +1,77 @@
+// FI lang variables by Urho Konttori from Absolutions
+// Updated by Tuomo Aura, Ateco.fi
+
+tinyMCE.addToLang('table',{
+general_tab : 'Yleiset',
+advanced_tab : 'Edistyneemm&auml;t',
+general_props : 'Yleisasetukset',
+advanced_props : 'Edistyneemm&auml;t asetukset',
+desc : 'Lis&auml;&auml; uusi taulukko',
+row_before_desc : 'Lis&auml;&auml; rivi edelle',
+row_after_desc : 'Lis&auml;&auml; rivi j&auml;lkeen',
+delete_row_desc : 'Poista rivi',
+col_before_desc : 'Lis&auml;&auml; sarake edelle',
+col_after_desc : 'Lis&auml;&auml; sarake j&auml;lkeen',
+delete_col_desc : 'Poista sarake',
+rowtype : 'Row in table part',
+title : 'Lis&auml;&auml;/Muokkaa taulukkoa',
+width : 'Leveys',
+height : 'Korkeus',
+cols : 'Saraketta',
+rows : 'Rivi&auml;',
+cellspacing : 'Soluvälitys',
+cellpadding : 'Solutäyte',
+border : 'Reuna',
+align : 'Asettelu',
+align_default : 'Oletus',
+align_left : 'Vasen',
+align_right : 'Oikea',
+align_middle : 'Keskelle',
+row_title : 'Rivin ominaisuudet',
+cell_title : 'Sarakkeen ominaisuudet',
+cell_type : 'Solun tyyppi',
+row_desc : 'Rivin ominaisuudet',
+cell_desc : 'Solun ominaisuudet',
+valign : 'Pystysuora asettelu',
+align_top : 'Yl&auml;reuna',
+align_bottom : 'Alareuna',
+props_desc : 'Taulukon ominaisuudet',
+bordercolor : 'Reunan v&auml;ri',
+bgcolor : 'Taustav&auml;ri',
+merge_cells_title : 'Yhdist&auml; taulukon solut',
+split_cells_desc : 'Erota taulukon solut',
+merge_cells_desc : 'Yhdist&auml; taulukon solut',
+cut_row_desc : 'Leikkaa taulukon rivi',
+copy_row_desc : 'Kopioi taulukon rivi',
+paste_row_before_desc : 'Liit&auml; taulukon rivi edelle',
+paste_row_after_desc : 'Liit&auml; taulukon rivi j&auml;lkeen',
+id : 'Id',
+style: 'Tyyli',
+langdir : 'Kielen suunta',
+langcode : 'Kielikoodi',
+mime : 'Kohteen MIME-tyyppi',
+ltr : 'Vasemmalta oikealle',
+rtl : 'Oikealta vasemmalle',
+bgimage : 'Taustakuva',
+summary : 'Yhteenveto',
+td : "Tieto",
+th : "Otsikko",
+cell_cell : 'P&auml;ivit&auml; kyseinen solu',
+cell_row : 'P&auml;ivit&auml; kaikki solut riviss&auml;',
+cell_all : 'P&auml;ivit&auml; kaikki solut taulukossa',
+row_row : 'P&auml;ivit&auml; kyseinen rivi',
+row_odd : 'P&auml;ivit&auml; parittomat rivit',
+row_even : 'P&auml;ivit&auml; parilliset rivit',
+row_all : 'P&auml;ivit&auml; kaikki rivit',
+thead : 'Taulukon otsake (head)',
+tbody : 'Taulukon runko (body)',
+tfoot : 'Taulukon alaosa (foot)',
+del : 'Poista taulukko',
+scope : 'Scope-määrite',
+row : 'Rivi',
+col : 'Sarake',
+rowgroup : 'Riviryhm&auml;',
+colgroup : 'Sarakeryhm&auml;',
+missing_scope: 'Oletko varma että haluat jatkaa ilman että olet määrittänyt scope-määritettä tälle taulukon otsikolle? Scope-määritys auttaa ihmisiä joilla on terveydellisiä rajoitteita.',
+cellprops_delta_width : 50
+});
diff --git a/tinyMCE/plugins/table/langs/fr.js b/tinyMCE/plugins/table/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..55b436900c84065dd04336d35172f8d9d9a1395c
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/fr.js
@@ -0,0 +1,81 @@
+// FR lang variables
+// Modified by shadow walker, last updated 2007-03-16, based on the work of Motte
+
+tinyMCE.addToLang('table',{
+general_tab : 'G&eacute;n&eacute;ral',
+advanced_tab : 'Avanc&eacute;',
+general_props : 'Propri&eacute;t&eacute;s g&eacute;n&eacute;rales',
+advanced_props : 'Propri&eacute;t&eacute;s avanc&eacute;es',
+desc : 'Ins&eacute;rer/Modifier un tableau',
+row_before_desc : 'Ins&eacute;rer une rang&eacute;e avant',
+row_after_desc : 'Ins&eacute;rer une rang&eacute;e apr&egrave;s',
+delete_row_desc : 'Effacer la rang&eacute;e',
+col_before_desc : 'Ins&eacute;rer une colonne avant',
+col_after_desc : 'Ins&eacute;rer une colonne apr&egrave;s',
+delete_col_desc : 'Effacer la colonne',
+rowtype : 'Type de rang&eacute;e',
+title : 'Gestionnaire de tableau',
+width : 'Largeur',
+height : 'Hauteur',
+cols : 'Colonnes',
+rows : 'Rang&eacute;es',
+cellspacing : 'Entre les cellules',
+cellpadding : 'Marges int&eacute;rieures',
+border : 'Bordures',
+align : 'Alignement horizontal',
+align_default : 'Par d&eacute;fault',
+align_left : 'A gauche',
+align_right : 'A droite',
+align_middle : 'Centr&eacute;',
+row_title : 'Propri&eacute;t&eacute;s des rang&eacute;es',
+cell_title : 'Propri&eacute;t&eacute;s des cellules',
+cell_type : 'Type',
+row_desc : 'Propri&eacute;t&eacute;s des rang&eacute;es',
+cell_desc : 'Propri&eacute;t&eacute;s des cellules',
+valign : 'Alignement vertical',
+align_top : 'Haut',
+align_bottom : 'Bas',
+props_desc : 'Propri&eacute;t&eacute;s du tableau',
+bordercolor : 'Couleur des bordures',
+bgcolor : 'Couleur d\'arri&egrave;re-plan',
+merge_cells_title : 'Fusionner les cellules',
+split_cells_desc : 'Scinder les cellules',
+merge_cells_desc : 'Fusionner les cellules',
+cut_row_desc : 'Eliminer la rang&eacute;e',
+copy_row_desc : 'Copier la rang&eacute;e',
+paste_row_before_desc : 'Coller la rang&eacute;e avant',
+paste_row_after_desc : 'Coller la rang&eacute;e apr&egrave;s',
+id : 'Id',
+style: 'Style en ligne',
+langdir : 'Sens d\'&eacute;criture',
+langcode : 'Code de langue',
+mime : 'Type MIME de la cible',
+ltr : 'Vers la droite',
+rtl : 'Vers la gauche',
+bgimage : 'Image d\'arri&egrave;re-plan',
+summary : 'Descriptif',
+td : "Donn&eacute;e",
+th : "En-t&ecirc;te",
+cell_cell : 'Appliquer &agrave; la cellule',
+cell_row : 'Appliquer &agrave; toute la rang&eacute;e',
+cell_all : 'Appliquer &agrave; tout le tableau',
+row_row : 'Appliquer &agrave; la rang&eacute;e',
+row_odd : 'Appliquer aux rang&eacute;es pair',
+row_even : 'Appliquer aux rang&eacute;es impair',
+row_all : 'Appliquer &agrave; toutes les rang&eacute;es',
+thead : 'En-t&ecirc;te',
+tbody : 'Corps',
+tfoot : 'Pied',
+del : 'Effacer le tableau',
+scope : 'Attribut scope',
+row : 'Rang&eacute;e',
+col : 'Colonne',
+rowgroup : 'Groupe de rang&eacute;es',
+colgroup : 'Groupe de colonnes',
+col_limit : 'Limite de colonnes atteintes {$cols}.',
+row_limit : 'Limite de rang&eacute;es atteintes {$rows}.',
+cell_limit : 'Limite de cellules atteintes {$cells}.',
+missing_scope: 'Les attributs scope rendraient votre tableau de donn&eacute;es plus\naccessible &agrave; certains groupes d\'utilisateurs.\n\nEtes-vous s&ucirc;r de ne pas vouloir sp&eacute;cifier\nd\'attribut scope aux cellules d\'en-t&ecirc;te ?\n\n',
+caption : 'Libell&eacute; du tableau',
+cellprops_delta_width : 50
+});
diff --git a/tinyMCE/plugins/table/langs/fr_ca.js b/tinyMCE/plugins/table/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..282034c0500f08939bc81f583ccf4d0beb01ff22
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/fr_ca.js
@@ -0,0 +1,43 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+table_desc : 'Insérer un nouveau tableau',
+table_insert_row_before_desc : 'Insérer une ligne avant',
+table_insert_row_after_desc : 'Insérer une ligne après',
+table_delete_row_desc : 'Supprimer la ligne',
+table_insert_col_before_desc : 'Insérer une colonne avant',
+table_insert_col_after_desc : 'Insérer une colonne après',
+table_delete_col_desc : 'Supprimer la colonne',
+insert_table_title : 'Insérer/Modifier le tableau',
+insert_table_width : 'Largeur',
+insert_table_height : 'Hauteur',
+insert_table_cols : 'Colonnes',
+insert_table_rows : 'Lignes',
+insert_table_cellspacing : 'Cellspacing',
+insert_table_cellpadding : 'Cellpadding',
+insert_table_border : 'Bordure',
+insert_table_align : 'Alignement',
+insert_table_align_default : 'Défaut',
+insert_table_align_left : 'Gauche',
+insert_table_align_right : 'Droit',
+insert_table_align_middle : 'Milieu',
+insert_table_class_name : 'Classe CSS',
+table_row_title : 'Propriétés de ligne',
+table_cell_title : 'Propriétés de cellule',
+table_row_desc : 'Propriétés de ligne',
+table_cell_desc : 'Propriétés de cellule',
+insert_table_valign : 'Alignement vertical',
+insert_table_align_top : 'Haut',
+insert_table_align_bottom : 'Bas',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
diff --git a/tinyMCE/plugins/table/langs/he.js b/tinyMCE/plugins/table/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..25336f5af71f7f5978ac5922c2990a2b6d0b0807
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/he.js
@@ -0,0 +1,78 @@
+// HE lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'ëììé',
+advanced_tab : 'îú÷ãí',
+general_props : 'îàôééðéí ëììééí',
+advanced_props : 'îàôééðéí îú÷ãîéí',
+desc : 'îëðéñ èáìä çãùä',
+row_before_desc : 'äëðñ ùåøä ìôðé',
+row_after_desc : 'äëðñ ùåøä àçøé',
+delete_row_desc : 'îç÷ ùåøä',
+col_before_desc : 'äëðñ èåø ìôðé',
+col_after_desc : 'äëðñ èåø àçøé',
+delete_col_desc : 'îç÷ èåø',
+rowtype : 'ùåøä áçì÷ ùì äèáìä',
+title : 'äëðñ/ùðä èáìä',
+width : 'øåçá',
+height : 'âåáä',
+cols : 'èåøéí',
+rows : 'ùåøåú',
+cellspacing : 'øéååç áéï úàéí',
+cellpadding : 'øéôåã úàéí',
+border : 'âáåì',
+align : 'éùåø',
+align_default : 'áøéøú îçãì',
+align_left : 'ùîàì',
+align_right : 'éîéï',
+align_middle : 'îøëæ',
+row_title : 'îàôééðé ùåøä áèáìä',
+cell_title : 'îàôééðé úà áèáìä',
+cell_type : 'ñåâ úà',
+row_desc : 'îàôééðé ùåøä áèáìä',
+cell_desc : 'îàôééðé úà áèáìä',
+valign : 'éùåø àðëé',
+align_top : 'ìîòìä',
+align_bottom : 'ìîèä',
+props_desc : 'îàôééðé èáìä',
+bordercolor : 'öáò âáåì',
+bgcolor : 'öáò ø÷ò',
+merge_cells_title : 'îæâ úàéí áèáìä',
+split_cells_desc : 'ôöì úàéí áèáìä',
+merge_cells_desc : 'îæâ úàéí áèáìä',
+cut_row_desc : 'âæåø ùåøä îäèáìä',
+copy_row_desc : 'äòú÷ ùåøä îäèáìä',
+paste_row_before_desc : 'äãá÷ ùåøä ìôðé',
+paste_row_after_desc : 'äãá÷ ùåøä àçøé',
+id : 'Id',
+style: 'ñâðåï',
+langdir : 'ëéååï ùôä',
+langcode : '÷åã ùôä',
+mime : 'ñåâ MIME ùì äéòã',
+ltr : 'ùîàì ìéîéï',
+rtl : 'éîéï ìùîàì',
+bgimage : 'úîåðú ø÷ò',
+summary : 'ñéëåí',
+td : "îéãò",
+th : "ëåúøú",
+cell_cell : 'òãëï úà ðåëçé',
+cell_row : 'òãëï àú ëì äúàéí áùåøä',
+cell_all : 'òãëï àú ëì äúàéí áèáìä',
+row_row : 'òãëï ùåøä ðåëçéú',
+row_odd : 'òãëï ùåøåú àé-æåâéåú áèáìä',
+row_even : 'òãëï ùåøåú æåâéåú áèáìä',
+row_all : 'òãëï àú ëì äùåøåú áèáìä',
+thead : 'ëåúøú äèáìä',
+tbody : 'âåó äèáìä',
+tfoot : 'ñéëåí äèáìä',
+del : 'îç÷ èáìä',
+scope : 'úçåí',
+row : 'ùåøä',
+col : 'èåø',
+rowgroup : '÷áåöú ùåøåú',
+colgroup : '÷áåöú èåøéí',
+col_limit : 'çøâú îäîñôø äî÷ñéîìé äîåúø ùì {$cols} èåøéí.',
+row_limit : 'çøâú îäîñôø äî÷ñéîìé äîåúø ùì {$rows} ùåøåú.',
+cell_limit : 'çøâú îäîñôø äî÷ñéîìé äîåúø ùì {$cells} úàéí.',
+missing_scope: 'äàí àúä áèåç ùáøöåðê ìäîùéê îáìé ìöééï àú úçåí äëåúøú ùì äèáìä? áìé ëåúøú îåâãøú, éúëï ëé îùúîùéí áòìé îåâáìåéåú éú÷ùå ìäáéï àú äúåëï àå äîéãò äîåöâéí áèáìä.'
+});
diff --git a/tinyMCE/plugins/table/langs/hu.js b/tinyMCE/plugins/table/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..a649eb72b08ff4d11c801efb316156013fedd671
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/hu.js
@@ -0,0 +1,75 @@
+// HU lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Általános',
+advanced_tab : 'Haladó',
+general_props : 'Általános beállítások',
+advanced_props : 'Haladó beállítások',
+desc : 'Új táblázat beszúrása',
+row_before_desc : 'Sor beszúrása elé',
+row_after_desc : 'Sor beszúrása mögé',
+delete_row_desc : 'Sor törlése',
+col_before_desc : 'Oszlop beszúrása elé',
+col_after_desc : 'Oszlop beszúrása mögé',
+delete_col_desc : 'Oszlop törlése',
+rowtype : 'Sor a táblázatrészben',
+title : 'Táblázat beszúrása/módosítása',
+width : 'Hosszúság',
+height : 'Szélesség',
+cols : 'Oszlopok',
+rows : 'Sorok',
+cellspacing : 'Cellaköz',
+cellpadding : 'Cellakitöltés',
+border : 'Keret',
+align : 'Elhelyezkedés',
+align_default : 'alapértelmezett',
+align_left : 'Bal',
+align_right : 'Jobb',
+align_middle : 'Közép',
+row_title : 'Táblázat sor tulajdonságai',
+cell_title : 'Táblázat cella tulajdonságai',
+cell_type : 'Cella típus',
+row_desc : 'Táblázat sor tulajdonságai',
+cell_desc : 'Táblázat cella tulajdonságai',
+valign : 'Függõleges elhelyezkedés',
+align_top : 'Felül',
+align_bottom : 'Alul',
+props_desc : 'Táblázat tulajdonságai',
+bordercolor : 'Keret szín',
+bgcolor : 'Háttér szín',
+merge_cells_title : 'Tábla celláinak egyesítése',
+split_cells_desc : 'Tábla celláinak felosztása',
+merge_cells_desc : 'Tábla celláinak egyesítése',
+cut_row_desc : 'Táblázat sor kivágása',
+copy_row_desc : 'Táblázat sor másolása',
+paste_row_before_desc : 'Táblázat sor beillesztése elé',
+paste_row_after_desc : 'Táblázat sor beillesztése mögé',
+id : 'Azonodító',
+style: 'Stílus',
+langdir : 'Szövegpozíció',
+langcode : 'Szöveg kód',
+mime : 'Cél MIME típus',
+ltr : 'Balról jobbra',
+rtl : 'Jobbról balra',
+bgimage : 'Háttérkép',
+summary : 'Összefoglaló',
+td : "Adat",
+th : "Fejléc",
+cell_cell : 'Aktuális cella frissítése',
+cell_row : 'Minden cella frissítése a sorban',
+cell_all : 'Minden cella frissítése a táblában',
+row_row : 'Aktuális sor frissítése',
+row_odd : 'Páratlan sorok frissítése a táblában',
+row_even : 'páros sorok frissítése a táblában',
+row_all : 'Minden sor frissítése a táblában',
+thead : 'Táblázat fejléc',
+tbody : 'Táblázat test',
+tfoot : 'Tálázat lábléc',
+del : 'Tábla törlése',
+scope : 'Scope',
+row : 'Row',
+col : 'Col',
+rowgroup : 'Row Group',
+colgroup : 'Col Group',
+missing_scope: 'Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.'
+});
diff --git a/tinyMCE/plugins/table/langs/is.js b/tinyMCE/plugins/table/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b23d65c037a223b078929b23ca4d4803b4f9f07
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/is.js
@@ -0,0 +1,76 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('table',{
+general_tab : 'Almennt',
+advanced_tab : 'S&eacute;rt&aelig;kt',
+general_props : 'Almennar stillingar',
+advanced_props : 'S&eacute;rt&aelig;kar stillingar',
+desc : 'Setja inn n&yacute;ja t&ouml;flu',
+row_before_desc : 'B&aelig;ta r&ouml;&eth; vi&eth; fyrir framan',
+row_after_desc : 'B&aelig;ta r&ouml;&eth; vi&eth; fyrir aftan',
+delete_row_desc : 'Ey&eth;a r&ouml;&eth;',
+col_before_desc : 'B&aelig;ta d&aacute;lk vi&eth; fyrir framan',
+col_after_desc : 'B&aelig;ta d&aacute;lk vi&eth; fyrir aftan',
+delete_col_desc : 'Ey&eth;a d&aacute;lki',
+rowtype : 'R&ouml;&eth; &iacute; t&ouml;fluhluta',
+title : 'B&aelig;ta vi&eth;/breyta t&ouml;flu',
+width : 'Breidd',
+height : 'H&aelig;&eth;',
+cols : 'D&aacute;lkar',
+rows : 'Ra&eth;ir',
+cellspacing : 'Reitabil',
+cellpadding : 'Reitab&oacute;lstrun',
+border : 'Rammi',
+align : 'Textastilling',
+align_default : 'Sj&aacute;lfgild',
+align_left : 'Vinstri',
+align_right : 'H&aelig;gri',
+align_middle : 'Mi&eth;ja',
+row_title : 'Stillingar t&ouml;flura&eth;ar',
+cell_title : 'Stillingar t&ouml;flud&aacute;lks',
+cell_type : 'Reitartegund',
+row_desc : 'Stillingar t&ouml;flura&eth;ar',
+cell_desc : 'Stillingar t&ouml;flureits',
+valign : 'L&oacute;&eth;r&eacute;tt stilling',
+align_top : 'Efst',
+align_bottom : 'Ne&eth;st',
+props_desc : 'Stillingar t&ouml;flu',
+bordercolor : 'Rammalitur',
+bgcolor : 'Bakgrunnslitur',
+merge_cells_title : 'Sameina t&ouml;flureiti',
+split_cells_desc : 'Tv&iacute;stra t&ouml;flureitum',
+merge_cells_desc : 'Sameina t&ouml;flureiti',
+cut_row_desc : 'Klippa t&ouml;flur&ouml;&eth;',
+copy_row_desc : 'Afrita t&ouml;flur&ouml;&eth;',
+paste_row_before_desc : 'Skeyta t&ouml;flur&ouml;&eth; fyrir ofan',
+paste_row_after_desc : 'Skeyta t&ouml;flur&ouml;&eth; fyrir ne&eth;an',
+id : 'Id',
+style: 'St&iacute;ll',
+langdir : 'Rith&aacute;ttur tungum&aacute;ls',
+langcode : 'Tungum&aacute;lskenni',
+mime : 'MIME-tegund tengils',
+ltr : 'Vinstri til h&aelig;gri',
+rtl : 'H&aelig;gri til vinstri',
+bgimage : 'Bakgrunnsmynd',
+summary : 'Samantekt',
+td : "G&ouml;gn",
+th : "Haus",
+cell_cell : 'Uppf&aelig;ra n&uacute;verandi reit',
+cell_row : 'Uppf&aelig;ra alla reiti í r&ouml;&eth;inni',
+cell_all : 'Uppf&aelig;ra alla reiti t&ouml;flunnar',
+row_row : 'Uppf&aelig;ra n&uacute;verandi r&ouml;&eth;',
+row_odd : 'Uppf&aelig;ra oddat&ouml;lura&eth;ir',
+row_even : 'Uppf&aelig;ra jafnt&ouml;lura&eth;ir',
+row_all : 'Uppf&aelig;ra allar ra&eth;ir',
+thead : 'Haus t&ouml;flu',
+tbody : 'Meginm&aacute;l t&ouml;flu',
+tfoot : 'F&oacute;tur t&ouml;flu',
+del : 'Ey&eth;a t&ouml;flu',
+scope : 'Gildissvi&eth;',
+row : 'R&ouml;&eth;',
+col : 'D&aacute;lkur',
+rowgroup : 'Ra&eth;ah&oacute;pur',
+colgroup : 'D&aacute;lkah&oacute;pur',
+missing_scope: 'Viltu halda áfram án þess að tilgreina gildissvið fyrir haus töflu? Án þess gæti það valdið sumum notendum, til dæmis sjónskertum, vandkvæðum við að skilja innihald töflunnar.',
+cellprops_delta_width : 55
+});
diff --git a/tinyMCE/plugins/table/langs/it.js b/tinyMCE/plugins/table/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..87ed1ef2e5cbae691abca1a6d29e78a8476e3cc0
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/it.js
@@ -0,0 +1,86 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('table',{
+general_tab : 'Generale',
+advanced_tab : 'Avanzate',
+general_props : 'Propriet&agrave; generali',
+advanced_props : 'Propriet&agrave; avanzate',
+desc : 'Inserisci una nuova tabella',
+row_before_desc : 'Inserisci una riga prima',
+row_after_desc : 'Inserisci una riga dopo',
+delete_row_desc : 'Cancella riga',
+col_before_desc : 'Inserisci una colonna prima',
+col_after_desc : 'Inserisci una colonna dopo',
+delete_col_desc : 'Cancella colonna',
+rowtype : 'Tipo di riga',
+title : 'Inserisci o modifica tabella',
+width : 'Larghezza',
+height : 'Altezza',
+cols : 'Colonne',
+rows : 'Righe',
+cellspacing : 'Spaziatura tra celle',
+cellpadding : 'Margine interno celle',
+border : 'Bordo',
+align : 'Allineamento',
+align_default : 'Predefinito',
+align_left : 'A sinistra',
+align_right : 'A destra',
+align_middle : 'Al centro',
+row_title : 'Propriet&agrave; di riga',
+cell_title : 'Propriet&agrave; di cella',
+cell_type : 'Tipo di cella',
+row_desc : 'Propriet&agrave; di riga',
+cell_desc : 'Propriet&agrave; di cella',
+valign : 'Allineamento verticale',
+align_top : 'In alto',
+align_bottom : 'In basso',
+props_desc : 'Propriet&agrave; di tabella',
+bordercolor : 'Colore del bordo',
+bgcolor : 'Colore di sfondo',
+merge_cells_title : 'Unisci celle',
+split_cells_desc : 'Dividi celle',
+merge_cells_desc : 'Unisci celle',
+cut_row_desc : 'Taglia riga',
+copy_row_desc : 'Copia riga',
+paste_row_before_desc : 'Incolla riga prima',
+paste_row_after_desc : 'Incolla riga dopo',
+id : 'Id',
+style: 'Stile',
+langdir : 'Direzione del testo',
+langcode : 'Codifica lingua',
+mime : 'Tipo MIME destinazione',
+ltr : 'Da sinistra a destra',
+rtl : 'Da destra a sinistra',
+bgimage : 'Immagine di sfondo',
+summary : 'Riassunto',
+td : "Normale",
+th : "Intestazione",
+cell_cell : 'Aggiorna cella corrente',
+cell_row : 'Aggiorna tutte le celle della riga',
+cell_all : 'Aggiorna tutte le celle della tabella',
+row_row : 'Aggiorna riga corrente',
+row_odd : 'Aggiorna righe dispari della tabella',
+row_even : 'Aggiorna righe pari della tabella',
+row_all : 'Aggiorna tutte le righe della tabella',
+thead : 'Intestazione',
+tbody : 'Corpo',
+tfoot : 'Footer',
+del : 'Elimina tabella',
+scope : 'Ambito',
+row : 'Riga',
+col : 'Colonna',
+rowgroup : 'Gruppo di righe',
+colgroup : 'Gruppo di colonne',
+col_limit : 'Hai superato il massimo numero di colonne di {$cols}.',
+row_limit : 'Hai superato il massimo numero di righe di {$rows}.',
+cell_limit : 'Hai superato il massimo numero di celle di {$cells}.',
+missing_scope: 'Sei sicuro di voler omettere un ambito per questa cella di intestazione? L\'ambito &egrave; utile alle persone con disabilit&agrave; per interpretare i contenuti della tabella.',
+caption : 'Intestazione tabella',
+cellprops_delta_width : 150
+});
diff --git a/tinyMCE/plugins/table/langs/ja.js b/tinyMCE/plugins/table/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed506c15cb87247d95a89b0f324e1e7ff412d8e8
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ja.js
@@ -0,0 +1,78 @@
+// JA lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : '全般',
+advanced_tab : '詳細',
+general_props : '全般設定',
+advanced_props : '詳細設定',
+desc : '新しい表を挿入します',
+row_before_desc : '行の挿入',
+row_after_desc : '行の追加',
+delete_row_desc : '行の削除',
+col_before_desc : '列の挿入',
+col_after_desc : '列の追加',
+delete_col_desc : '列の削除',
+rowtype : '行の種類',
+title : '表の設定',
+width : 'å¹…',
+height : '高さ',
+cols : '列',
+rows : '行',
+cellspacing : 'é–“éš”',
+cellpadding : '余白',
+border : 'æž ç·š',
+align : '横位置',
+align_default : '標準',
+align_left : '左詰め',
+align_right : '右詰め',
+align_middle : '中央',
+row_title : '行の設定',
+cell_title : 'セルの設定',
+cell_type : '種類',
+row_desc : '行の設定',
+cell_desc : 'セルの設定',
+valign : '縦位置',
+align_top : '上詰め',
+align_bottom : '下詰め',
+props_desc : '表の設定',
+bordercolor : '枠線の色',
+bgcolor : '背景色',
+merge_cells_title : 'セルの結合',
+split_cells_desc : 'セルの分割',
+merge_cells_desc : 'セルの結合',
+cut_row_desc : '行の切り取り',
+copy_row_desc : '行のコピー',
+paste_row_before_desc : '行を挿入して貼り付け',
+paste_row_after_desc : '行を追加して貼り付け',
+id : 'ID',
+style: 'スタイル',
+langdir : '表示方向',
+langcode : '言語',
+mime : 'MIMEタイプ',
+ltr : '左から右へ',
+rtl : '右から左へ',
+bgimage : '背景の画像',
+summary : '説明',
+td : "データ",
+th : "見出し",
+cell_cell : 'このセルだけ更新する',
+cell_row : 'この行のセルを更新する',
+cell_all : 'すべてのセルを更新する',
+row_row : 'この行だけ更新する',
+row_odd : '奇数行を更新する',
+row_even : '偶数行を更新する',
+row_all : 'すべての行を更新',
+thead : '表のヘッダ',
+tbody : '表のボディ',
+tfoot : '表のフッタ',
+del : '表の削除',
+scope : 'スコープ',
+row : '行',
+col : '列',
+rowgroup : '行グループ',
+colgroup : '列グループ',
+col_limit : '列の最大値を超えました。{$cols}以下にしてください。',
+row_limit : '列の最大値を超えました。{$rows}以下にしてください。',
+cell_limit : 'セルの最大値を越えました。{$cells}以下にしてください。',
+missing_scope: 'このテーブルの見出しセルにスコープを設定していません。利用者によっては表示されている内容を理解することが困難になります。続けてよろしいですか?'
+});
diff --git a/tinyMCE/plugins/table/langs/ja_euc-jp.js b/tinyMCE/plugins/table/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..be2a7f8fa6d14cd42ee3aa3cf0b506e9de1b609d
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ja_euc-jp.js
@@ -0,0 +1,75 @@
+// ÆüËܸì euc lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : '°ìÈÌ',
+advanced_tab : '¾ÜºÙ',
+general_props : '°ìÈ̤Υץí¥Ñ¥Æ¥£',
+advanced_props : '¾ÜºÙ¤Î¥×¥í¥Ñ¥Æ¥£',
+desc : '¥Æ¡¼¥Ö¥ë¤òÁÞÆþ',
+row_before_desc : 'Á°¤Ë¹Ô¤òÁÞÆþ',
+row_after_desc : '¸å¤Ë¹Ô¤òÁÞÆþ',
+delete_row_desc : '¹Ô¤òºï½ü',
+col_before_desc : 'Á°¤ËÎó¤òÁÞÆþ',
+col_after_desc : '¸å¤ËÎó¤òÁÞÆþ',
+delete_col_desc : 'Îó¤òºï½ü',
+rowtype : '¥Æ¡¼¥Ö¥ë¤Î¹Ô',
+title : '¥Æ¡¼¥Ö¥ë¤òÁÞÆþ¡¦ÊÔ½¸',
+width : 'Éý',
+height : '¹â¤µ',
+cols : 'Îó¿ô',
+rows : '¹Ô¿ô',
+cellspacing : '¥»¥ë´Ö³Ö',
+cellpadding : '¥»¥ë;Çò',
+border : '¥Ü¡¼¥À¡¼',
+align : '¹Ô·¤¨',
+align_default : '»ØÄê¤Ê¤·',
+align_left : 'º¸',
+align_right : '±¦',
+align_middle : 'Ãæ±û',
+row_title : '¹Ô',
+cell_title : '¥»¥ë¤Î¥×¥í¥Ñ¥Æ¥£',
+cell_type : 'Cell type',
+row_desc : '¹Ô¤Î¥×¥í¥Ñ¥Æ¥£',
+cell_desc : '¥»¥ë¤Î¥×¥í¥Ñ¥Æ¥£',
+valign : '¾å²¼Â·¤¨',
+align_top : '¾å',
+align_bottom : '²¼',
+props_desc : '¥Æ¡¼¥Ö¥ë¤Î¥×¥í¥Ñ¥Æ¥£',
+bordercolor : '¥Ü¡¼¥À¡¼¥«¥é¡¼',
+bgcolor : 'ÇØ·Ê¿§',
+merge_cells_title : '¥»¥ë¤Î¥Þ¡¼¥¸',
+split_cells_desc : '¥»¥ë¤Îʬ³ä',
+merge_cells_desc : '¥»¥ë¤Î¥Þ¡¼¥¸',
+cut_row_desc : '¹Ô¤òÀÚ¤êÈ´¤­',
+copy_row_desc : '¹Ô¤òޤêÉÕ¤±',
+paste_row_before_desc : 'Á°¤Ë¹Ô¤òޤêÉÕ¤±',
+paste_row_after_desc : '¸å¤Ë¹Ô¤òޤêÉÕ¤±',
+id : '¥Æ¡¼¥Ö¥ë ID',
+style: '¥¹¥¿¥¤¥ë',
+langdir : '¸ÀÍդθþ¤­',
+langcode : '¸ÀÍդΥ³¡¼¥É',
+mime : '¥¿¡¼¥²¥Ã¥È MIME ¥¿¥¤¥×',
+ltr : 'º¸¤«¤é±¦¤Ø',
+rtl : '±¦¤«¤éº¸¤Ø',
+bgimage : 'ÇØ·Ê¥¤¥á¡¼¥¸',
+summary : 'Í×Ìó',
+td : "¥Ç¡¼¥¿",
+th : "¥Ø¥Ã¥À",
+cell_cell : '¥»¥ë¤ò¹¹¿·',
+cell_row : '¤³¤Î¹Ô¤Î¥»¥ë¤ò¹¹¿·',
+cell_all : 'Á´¥»¥ë¤ò¹¹¿·',
+row_row : '¹Ô¤ò¹¹¿·',
+row_odd : '´ñ¿ô¤Î¹Ô¤ò¹¹¿·',
+row_even : '¶ö¿ô¤Î¹Ô¤ò¹¹¿·',
+row_all : 'Á´¹Ô¤ò¹¹¿·',
+thead : '¥Ø¥Ã¥À¡¼',
+tbody : '¥Æ¡¼¥Ö¥ëBody',
+tfoot : '¥Õ¥Ã¥¿¡¼',
+del : '¥Æ¡¼¥Ö¥ë¤òºï½ü',
+scope : '¥¹¥³¡¼¥×',
+row : '¹Ô',
+col : 'Îó',
+rowgroup : '¹Ô¤Î¥°¥ë¡¼¥×',
+colgroup : 'Îó¤Î¥°¥ë¡¼¥×',
+missing_scope: '¥Ø¥Ã¥À¡¼¤Î¥¹¥³¡¼¥×¤òÀßÄꤷ¤Ê¤¯¤Æ¤â¤¤¤¤¤Ç¤¹¤«¡£¥¹¥³¡¼¥×¤¬¤Ê¤±¤ì¤Ð¡¢¾ã³²¼Ô¤¬Íý²ò¤·¿É¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£'
+});
diff --git a/tinyMCE/plugins/table/langs/ja_shift_jis.js b/tinyMCE/plugins/table/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..d0b5a7f088c7ae90d25e7e363ee16f6f8dff58a6
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ja_shift_jis.js
@@ -0,0 +1,75 @@
+// “ú–{Œê shift-jis lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'ˆê”Ê',
+advanced_tab : 'Ú×',
+general_props : 'ˆê”ʂ̃vƒƒpƒeƒB',
+advanced_props : 'Ú×‚̃vƒƒpƒeƒB',
+desc : 'ƒe[ƒuƒ‹‚ð‘}“ü',
+row_before_desc : '‘O‚ɍs‚ð‘}“ü',
+row_after_desc : 'Œã‚ɍs‚ð‘}“ü',
+delete_row_desc : 's‚ðíœ',
+col_before_desc : '‘O‚É—ñ‚ð‘}“ü',
+col_after_desc : 'Œã‚É—ñ‚ð‘}“ü',
+delete_col_desc : '—ñ‚ðíœ',
+rowtype : 'ƒe[ƒuƒ‹‚̍s',
+title : 'ƒe[ƒuƒ‹‚ð‘}“üE•ҏW',
+width : '•',
+height : '‚‚³',
+cols : '—ñ”',
+rows : 's”',
+cellspacing : 'ƒZƒ‹ŠÔŠu',
+cellpadding : 'ƒZƒ‹—]”’',
+border : 'ƒ{[ƒ_[',
+align : 's‘µ‚¦',
+align_default : 'Žw’è‚È‚µ',
+align_left : '¶',
+align_right : '‰E',
+align_middle : '’†‰›',
+row_title : 's',
+cell_title : 'ƒZƒ‹‚̃vƒƒpƒeƒB',
+cell_type : 'Cell type',
+row_desc : 's‚̃vƒƒpƒeƒB',
+cell_desc : 'ƒZƒ‹‚̃vƒƒpƒeƒB',
+valign : 'ã‰º‘µ‚¦',
+align_top : 'ã',
+align_bottom : '‰º',
+props_desc : 'ƒe[ƒuƒ‹‚̃vƒƒpƒeƒB',
+bordercolor : 'ƒ{[ƒ_[ƒJƒ‰[',
+bgcolor : '”wŒiF',
+merge_cells_title : 'ƒZƒ‹‚̃}[ƒW',
+split_cells_desc : 'ƒZƒ‹‚Ì•ªŠ„',
+merge_cells_desc : 'ƒZƒ‹‚̃}[ƒW',
+cut_row_desc : 's‚ðØ‚è”²‚«',
+copy_row_desc : 's‚ð“\‚è•t‚¯',
+paste_row_before_desc : '‘O‚ɍs‚ð“\‚è•t‚¯',
+paste_row_after_desc : 'Œã‚ɍs‚ð“\‚è•t‚¯',
+id : 'ƒe[ƒuƒ‹ ID',
+style: 'ƒXƒ^ƒCƒ‹',
+langdir : 'Œ¾—t‚ÌŒü‚«',
+langcode : 'Œ¾—t‚̃R[ƒh',
+mime : 'ƒ^[ƒQƒbƒg MIME ƒ^ƒCƒv',
+ltr : '¶‚©‚ç‰E‚Ö',
+rtl : '‰E‚©‚獶‚Ö',
+bgimage : '”wŒiƒCƒ[ƒW',
+summary : '—v–ñ',
+td : "ƒf[ƒ^",
+th : "ƒwƒbƒ_",
+cell_cell : 'ƒZƒ‹‚ðXV',
+cell_row : '‚±‚̍s‚̃Zƒ‹‚ðXV',
+cell_all : '‘SƒZƒ‹‚ðXV',
+row_row : 's‚ðXV',
+row_odd : 'Šï”‚̍s‚ðXV',
+row_even : '‹ô”‚̍s‚ðXV',
+row_all : '‘Ss‚ðXV',
+thead : 'ƒwƒbƒ_[',
+tbody : 'ƒe[ƒuƒ‹Body',
+tfoot : 'ƒtƒbƒ^[',
+del : 'ƒe[ƒuƒ‹‚ðíœ',
+scope : 'ƒXƒR[ƒv',
+row : 's',
+col : '—ñ',
+rowgroup : 's‚̃Oƒ‹[ƒv',
+colgroup : '—ñ‚̃Oƒ‹[ƒv',
+missing_scope: 'ƒwƒbƒ_[‚̃XƒR[ƒv‚ðÝ’肵‚È‚­‚Ä‚à‚¢‚¢‚Å‚·‚©BƒXƒR[ƒv‚ª‚È‚¯‚ê‚΁AáŠQŽÒ‚ª—‰ð‚µh‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñB'
+});
diff --git a/tinyMCE/plugins/table/langs/ja_utf-8.js b/tinyMCE/plugins/table/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..d4de06301bf9afe58027662d5d6cb47675c3cfda
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ja_utf-8.js
@@ -0,0 +1,75 @@
+// 日本語 utf-8 lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : '一般',
+advanced_tab : '詳細',
+general_props : '一般のプロパティ',
+advanced_props : '詳細のプロパティ',
+desc : 'テーブルを挿入',
+row_before_desc : '前に行を挿入',
+row_after_desc : '後に行を挿入',
+delete_row_desc : '行を削除',
+col_before_desc : '前に列を挿入',
+col_after_desc : '後に列を挿入',
+delete_col_desc : '列を削除',
+rowtype : 'テーブルの行',
+title : 'テーブルを挿入・編集',
+width : 'å¹…',
+height : '高さ',
+cols : '列数',
+rows : '行数',
+cellspacing : 'セル間隔',
+cellpadding : 'セル余白',
+border : 'ボーダー',
+align : '行揃え',
+align_default : '指定なし',
+align_left : 'å·¦',
+align_right : '右',
+align_middle : '中央',
+row_title : '行',
+cell_title : 'セルのプロパティ',
+cell_type : 'Cell type',
+row_desc : '行のプロパティ',
+cell_desc : 'セルのプロパティ',
+valign : '上下揃え',
+align_top : '上',
+align_bottom : '下',
+props_desc : 'テーブルのプロパティ',
+bordercolor : 'ボーダーカラー',
+bgcolor : '背景色',
+merge_cells_title : 'セルのマージ',
+split_cells_desc : 'セルの分割',
+merge_cells_desc : 'セルのマージ',
+cut_row_desc : '行を切り抜き',
+copy_row_desc : '行を貼り付け',
+paste_row_before_desc : '前に行を貼り付け',
+paste_row_after_desc : '後に行を貼り付け',
+id : 'テーブル ID',
+style: 'スタイル',
+langdir : '言葉の向き',
+langcode : '言葉のコード',
+mime : 'ターゲット MIME タイプ',
+ltr : '左から右へ',
+rtl : '右から左へ',
+bgimage : '背景イメージ',
+summary : '要約',
+td : "データ",
+th : "ヘッダ",
+cell_cell : 'セルを更新',
+cell_row : 'この行のセルを更新',
+cell_all : '全セルを更新',
+row_row : '行を更新',
+row_odd : '奇数の行を更新',
+row_even : '偶数の行を更新',
+row_all : '全行を更新',
+thead : 'ヘッダー',
+tbody : 'テーブルBody',
+tfoot : 'フッター',
+del : 'テーブルを削除',
+scope : 'スコープ',
+row : '行',
+col : '列',
+rowgroup : '行のグループ',
+colgroup : '列のグループ',
+missing_scope: 'ヘッダーのスコープを設定しなくてもいいですか。スコープがなければ、障害者が理解し辛いかもしれません。'
+});
diff --git a/tinyMCE/plugins/table/langs/ko.js b/tinyMCE/plugins/table/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd8b30e907dac654ead1594723a0f40460a116c1
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ko.js
@@ -0,0 +1,43 @@
+// KO lang variables
+
+tinyMCE.addToLang('',{
+table_desc : 'Ç¥ ³&Ouml;±â',
+table_insert_row_before_desc : '¾Õ¿¡ Çà ³&Ouml;±â',
+table_insert_row_after_desc : 'µÚ¿¡ Çà ³&Ouml;±â',
+table_delete_row_desc : 'Çà Á&ouml;¿ì±â',
+table_insert_col_before_desc : '¾Õ¿¡ ¿­ ³&Ouml;±â',
+table_insert_col_after_desc : 'µÚ¿¡ ¿­ ³&Ouml;±â',
+table_delete_col_desc : '¿­ Á&ouml;¿ì±â',
+insert_table_title : 'Ç¥ ³&Ouml;±â/°í&Auml;¡±â',
+insert_table_width : '³Êºñ',
+insert_table_height : '³ôÀÌ',
+insert_table_cols : 'Çà',
+insert_table_rows : '¿­',
+insert_table_cellspacing : '¼¿ °£°Ý',
+insert_table_cellpadding : '¼¿ ¿©¹é',
+insert_table_border : '&Aring;׵θ®',
+insert_table_align : 'Á¤·&Auml;',
+insert_table_align_default : '±âº»°ª',
+insert_table_align_left : '¿ÞÂÊ',
+insert_table_align_right : '¿À¸¥ÂÊ',
+insert_table_align_middle : '°¡¿îµ¥',
+insert_table_class : '&Aring;¬·¡½º',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
diff --git a/tinyMCE/plugins/table/langs/nb.js b/tinyMCE/plugins/table/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..422017ea3157c64d855f18a4d0e82d165306a769
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/nb.js
@@ -0,0 +1,75 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('table',{
+general_tab : 'Generelt',
+advanced_tab : 'Avansert',
+general_props : 'Generelle egenskaper',
+advanced_props : 'Avanserte egenskaper',
+desc : 'Opprett/endre tabell',
+row_before_desc : 'Opprett rad foran',
+row_after_desc : 'Opprett rad etter',
+delete_row_desc : 'Fjern rad',
+col_before_desc : 'Opprett kolonne foran',
+col_after_desc : 'Opprett kolonne etter',
+delete_col_desc : 'Fjern kolonne',
+rowtype : 'Rad i tabell',
+title : 'Opprett/endre tabell',
+width : 'Bredde',
+height : 'H&oslash;yde',
+cols : 'Kolonner',
+rows : 'Rader',
+cellspacing : 'Celle mellomrom',
+cellpadding : 'Celle fylling',
+border : 'Rammebredde',
+align : 'Justering',
+align_default : 'Ingen',
+align_left : 'Venstre',
+align_right : 'H&oslash;yre',
+align_middle : 'Midtstilt',
+row_title : 'tabell rad egenskaper',
+cell_title : 'tabell celle egenskaper',
+cell_type : 'Celle type',
+row_desc : 'tabell rad egenskaper',
+cell_desc : 'tabell celle egenskaper',
+valign : 'Vertikal justering',
+align_top : 'Topp',
+align_bottom : 'Bunn',
+props_desc : 'tabell egenskaper',
+bordercolor : 'Rammefarge',
+bgcolor : 'Bakgrunnsfarge',
+merge_cells_title : 'Sl&aring; sammen tabell celler',
+split_cells_desc : 'Splitt tabell celler',
+merge_cells_desc : 'Sl&aring; sammen tabell celler',
+cut_row_desc : 'Fjern tabell rad',
+copy_row_desc : 'Kopier tabell rad',
+paste_row_before_desc : 'Lim inn tabell rad foran',
+paste_row_after_desc : 'Lim inn tabell rad etter',
+id : 'Id',
+style: 'Stil',
+langdir : 'Spr&aring;k retning',
+langcode : 'Spr&aring;k kode',
+mime : 'M&aring;lets MIME type',
+ltr : 'Venstre mot h&oslash;yre',
+rtl : 'H&oslash;yre mot venstre',
+bgimage : 'Bakgrunnsbilde',
+summary : 'Sum',
+td : "Data",
+th : "Overskrift",
+cell_cell : 'Oppdater valgt celle',
+cell_row : 'Oppdater alle celler i raden',
+cell_all : 'Oppdater alle celler i tabellen',
+row_row : 'Oppdater valgt rad',
+row_odd : 'Oppdater ulike rader i tabellen',
+row_even : 'Oppdater like rader i tabellen',
+row_all : 'Oppdater alle rader i tabellen',
+thead : 'Tabell Hode',
+tbody : 'Tabell Kropp',
+tfoot : 'Tabell Fot',
+del : 'Slett tabell',
+scope : 'Hensikt',
+row : 'Rad',
+col : 'Kolonne',
+rowgroup : 'Rad gruppe',
+colgroup : 'Kolonne gruppe',
+missing_scope: 'Er du sikker p&aring; at du vil fortsette uten &aring; oppgi hensikten med denne tabellens hode celle.'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/table/langs/nl.js b/tinyMCE/plugins/table/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..503388b66d84add065adccd1425cb6d8e80798cc
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/nl.js
@@ -0,0 +1,75 @@
+// NL lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Algemeen',
+advanced_tab : 'Geavanceerd',
+general_props : 'Algemene eigenschappen',
+advanced_props : 'Geavanceerde eigenschappen',
+desc : 'Nieuwe tabel invoegen',
+row_before_desc : 'Rij boven invoegen',
+row_after_desc : 'Rij onder invoegen',
+delete_row_desc : 'Rij verwijderen',
+col_before_desc : 'Kolom links invoegen',
+col_after_desc : 'Kolom rechts invoegen',
+delete_col_desc : 'Kolom verwijderen',
+rowtype : 'Row in table part',
+title : 'Tabel invoegen/bewerken',
+width : 'Breedte',
+height : 'Hoogte',
+cols : 'Kolommen',
+rows : 'Rijen',
+cellspacing : 'Ruimte om cel',
+cellpadding : 'Ruimte in cel',
+border : 'Rand',
+align : 'Uitlijning',
+align_default : 'Standaard',
+align_left : 'Links',
+align_right : 'Rechts',
+align_middle : 'Centreren',
+row_title : 'Tabelrij-eigenschappen',
+cell_title : 'Tabelcel-eigenschappen',
+cell_type : 'Celtype',
+row_desc : 'Tabelrij-eigenschappen',
+cell_desc : 'Tabelcel-eigenschappen',
+valign : 'Verticale uitlijning',
+align_top : 'Boven',
+align_bottom : 'Onder',
+props_desc : 'Tabeleigenschappen',
+bordercolor : 'Randkleur',
+bgcolor : 'Achtergrondkleur',
+merge_cells_title : 'Tabelcellen samenvoegen',
+split_cells_desc : 'Tabelcellen splitsen',
+merge_cells_desc : 'Tabelcellen samenvoegen',
+cut_row_desc : 'Tabelrij knippen',
+copy_row_desc : 'Tebelrij kopi&euml;ren',
+paste_row_before_desc : 'Tabelrij boven plakken',
+paste_row_after_desc : 'tabelrij onder plakken',
+id : 'Id',
+style: 'Stijl',
+langdir : 'Taalrichting',
+langcode : 'Taalcode',
+mime : 'MIME type',
+ltr : 'Links naar rechts',
+rtl : 'Rechts naar links',
+bgimage : 'Achtergrondafbeelding',
+summary : 'Samenvatting',
+td : "Data",
+th : "Kop",
+cell_cell : 'Huidige cel bijwerken',
+cell_row : 'Alle cellen in rij bijwerken',
+cell_all : 'Alle cellen in tabel bijwerken',
+row_row : 'Huidige rij bijwerken',
+row_odd : 'Oneven rijen in tabel bijwerken',
+row_even : 'Even rijen in tabel bijwerken',
+row_all : 'Alle rijen in tabel bijwerken',
+thead : 'Tabel-kop',
+tbody : 'Tabel-body',
+tfoot : 'Tabel-voet',
+del : 'Tabel verwijderen',
+scope : 'Bereik',
+row : 'Rij',
+col : 'Kolom',
+rowgroup : 'Rijgroep',
+colgroup : 'Kolomgroep',
+missing_scope: 'Zonder een bereik van een tabelkop, is het moeilijk voor mensen met een visuele handicap deze pagina te begrijpen. Weet u zeker dat u zonder bereik verder wilt gaan?'
+});
diff --git a/tinyMCE/plugins/table/langs/nn.js b/tinyMCE/plugins/table/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..642ab23da33850eb97328edc0e0d57f877a1ec03
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/nn.js
@@ -0,0 +1,76 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('table',{
+general_tab : 'Generelt',
+advanced_tab : 'Avansert',
+general_props : 'Generelle egenskaper',
+advanced_props : 'Avanserte egenskaper',
+desc : 'Opprett/endre tabell',
+row_before_desc : 'Opprett rad foran',
+row_after_desc : 'Opprett rad etter',
+delete_row_desc : 'Fjern rad',
+col_before_desc : 'Opprett kolonne foran',
+col_after_desc : 'Opprett kolonne etter',
+delete_col_desc : 'Fjern kolonne',
+rowtype : 'Rad i tabell',
+title : 'Opprett/endre tabell',
+width : 'Bredde',
+height : 'H&oslash;gde',
+cols : 'Kolonner',
+rows : 'Rader',
+cellspacing : 'Celle mellomrom',
+cellpadding : 'Celle fylling',
+border : 'Rammebredde',
+align : 'Justering',
+align_default : 'Ingen',
+align_left : 'Venstre',
+align_right : 'H&oslash;gre',
+align_middle : 'Midtstilt',
+row_title : 'tabell rad egenskaper',
+cell_title : 'tabell celle egenskaper',
+cell_type : 'Celle type',
+row_desc : 'tabell rad egenskaper',
+cell_desc : 'tabell celle egenskaper',
+valign : 'Vertikal justering',
+align_top : 'Topp',
+align_bottom : 'Bunn',
+props_desc : 'tabell egenskaper',
+bordercolor : 'Rammefarge',
+bgcolor : 'Bakgrunnsfarge',
+merge_cells_title : 'Sl&aring; sammen tabell celler',
+split_cells_desc : 'Splitt tabell celler',
+merge_cells_desc : 'Sl&aring; sammen tabell celler',
+cut_row_desc : 'Fjern tabell rad',
+copy_row_desc : 'Kopier tabell rad',
+paste_row_before_desc : 'Lim inn tabell rad foran',
+paste_row_after_desc : 'Lim inn tabell rad etter',
+id : 'Id',
+style: 'Stil',
+langdir : 'Spr&aring;k retning',
+langcode : 'Spr&aring;k kode',
+mime : 'M&aring;lets MIME type',
+ltr : 'Venstre mot h&oslash;gre',
+rtl : 'H&oslash;gre mot venstre',
+bgimage : 'Bakgrunnsbilde',
+summary : 'Sum',
+td : "Data",
+th : "Overskrift",
+cell_cell : 'Oppdater valgt celle',
+cell_row : 'Oppdater alle celler i raden',
+cell_all : 'Oppdater alle celler i tabellen',
+row_row : 'Oppdater valgt rad',
+row_odd : 'Oppdater ulike rader i tabellen',
+row_even : 'Oppdater like rader i tabellen',
+row_all : 'Oppdater alle rader i tabellen',
+thead : 'Tabell Hode',
+tbody : 'Tabell Kropp',
+tfoot : 'Tabell Fot',
+del : 'Slett tabell',
+scope : 'Hensikt',
+row : 'Rad',
+col : 'Kolonne',
+rowgroup : 'Rad gruppe',
+colgroup : 'Kolonne gruppe',
+missing_scope: 'Er du sikker p&aring; at du vil fortsette uten &aring; oppgi hensikten med denne tabellens hode celle.',
+cellprops_delta_width : 30
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/table/langs/pl.js b/tinyMCE/plugins/table/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..c32d98560fbb84bc404c6947b691c6fbddb2722a
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/pl.js
@@ -0,0 +1,78 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+
+tinyMCE.addToLang('table',{
+general_tab : 'Główne ustawienia',
+advanced_tab : 'Zaawansowane',
+general_props : 'Główne ustawienia',
+advanced_props : 'Zaawansowane ustawienia',
+desc : 'Wstawia nowÄ… tabelÄ™',
+row_before_desc : 'Wstaw wiersz przed',
+row_after_desc : 'Wstaw wiersz za',
+delete_row_desc : 'Usuń wiersz',
+col_before_desc : 'Wstaw kolumnÄ™ przed',
+col_after_desc : 'Wstaw kolumnÄ™ za',
+delete_col_desc : 'Usuń kolumnę',
+rowtype : 'Wiersz w części tabeli',
+title : 'Wstaw/Zmień tabelę',
+width : 'Szerokość',
+height : 'Wysokość',
+cols : 'Kolumn',
+rows : 'Wierszy',
+cellspacing : 'Odstępy między komórkami',
+cellpadding : 'Margines wewnątrz komórek',
+border : 'Ramka',
+align : 'Wyrównanie',
+align_default : 'Domyślne',
+align_left : 'Lewo',
+align_right : 'Prawo',
+align_middle : 'środek',
+row_title : 'Właściwości wiersza',
+cell_title : 'Właściwości komórki',
+cell_type : 'Typ komórki',
+row_desc : 'Właściwości wiersza',
+cell_desc : 'Właściwości komórki',
+valign : 'Wyrównanie pionowe',
+align_top : 'Do góry',
+align_bottom : 'Do dołu',
+props_desc : 'Właściwości tabeli',
+bordercolor : 'Kolor ramki',
+bgcolor : 'Kolor tła',
+merge_cells_title : 'Połącz komórki',
+split_cells_desc : 'Rozdziel komórki',
+merge_cells_desc : 'Połącz komórki',
+cut_row_desc : 'Wytnij wiersz',
+copy_row_desc : 'Kopiuj wiersz',
+paste_row_before_desc : 'Wklej wiersz przed',
+paste_row_after_desc : 'Wklej wiersz za',
+id : 'Id',
+style: 'Styl',
+langdir : 'Kierunek tekstu',
+langcode : 'Kod języka',
+mime : 'Docelowy typ MIME',
+ltr : 'Lewy do prawego',
+rtl : 'Prawy do lewego',
+bgimage : 'Obrazek tła',
+summary : 'Podsumowanie',
+td : "Dane",
+th : "Nagłówek",
+cell_cell : 'Aktualizuj bieżącą komórkę',
+cell_row : 'Aktualizuj wszystkie komórki w wierszu',
+cell_all : 'Aktualizuj wszystkie komórki w tabeli',
+row_row : 'Aktualizuj bierzącą komórkę',
+row_odd : 'Aktualizuj nieparzyste komórki w tabeli',
+row_even : 'Aktualizuj parzyste komórki w tabeli',
+row_all : 'Aktualizuj wszystkie komórki w tabeli',
+thead : 'Nagłówek tabeli',
+tbody : 'Ciało tabeli',
+tfoot : 'Stopka tabeli',
+del : 'Usuń tabelę',
+scope : 'Zasięg',
+row : 'Wiersz',
+col : 'Kolumna',
+rowgroup : 'Grupa wiersza',
+colgroup : 'Grupa kolumny',
+missing_scope: 'Czy jesteś pewien, że chcesz kontynuować bez sprecyzowania zasięgu dla nagłówka tej tabeli? Bez tego, niektórzy użytkownicy mogą mieć problem ze zrozumieniem zawartości tej tabeli, jeżeli mają włączone jakieś ograniczenia w przeglądarkach.',
+cellprops_delta_width : 70
+});
diff --git a/tinyMCE/plugins/table/langs/pt_br.js b/tinyMCE/plugins/table/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..1ad2a6dd2a1fba4b885ef3bf09128349d5cc6248
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/pt_br.js
@@ -0,0 +1,88 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('table',{
+general_tab : 'Geral',
+advanced_tab : 'Avançado',
+general_props : 'Propriedades gerais',
+advanced_props : 'Propriedades avançadas',
+desc : 'Inserir uma nova tabela',
+row_before_desc : 'Inserir uma linha antes',
+row_after_desc : 'Inserir uma linha depois',
+delete_row_desc : 'Apagar linha',
+col_before_desc : 'Inserir uma coluna antes',
+col_after_desc : 'Inserir uma coluna depois',
+delete_col_desc : 'Remover coluna',
+rowtype : 'Linhas na tabela parcial',
+title : 'Inserir/modificar tabela',
+width : 'Largura',
+height : 'Altura',
+cols : 'Colunas',
+rows : 'Linhas',
+cellspacing : 'Espaçamento das células',
+cellpadding : 'Margem interna',
+border : 'Borda',
+align : 'Alinhamento',
+align_default : 'Padrão',
+align_left : 'Esquerda',
+align_right : 'Direita',
+align_middle : 'Centrado',
+row_title : 'Propriedades das linha',
+cell_title : 'Propriedades da célula',
+cell_type : 'Tipo de célula',
+row_desc : 'Propriedades das linhas',
+cell_desc : 'Propriedades da célula',
+valign : 'Alinhamento vertical',
+align_top : 'Superior',
+align_bottom : 'Inferior',
+props_desc : 'Propriedades da tabela',
+bordercolor : 'Cor da borda',
+bgcolor : 'Cor do fundo',
+merge_cells_title : 'Juntar células',
+split_cells_desc : 'Separar células da tabela',
+merge_cells_desc : 'Juntar células da tabela',
+cut_row_desc : 'Recortar linha',
+copy_row_desc : 'Copiar linha',
+paste_row_before_desc : 'Colar linha antes',
+paste_row_after_desc : 'Colar linha depois',
+id : 'Id',
+style: 'Estilo',
+langdir : 'Direção do texto',
+langcode : 'Código do idioma',
+mime : 'Tipo de MIME do objeto',
+ltr : 'Esquerda para direita',
+rtl : 'Direita para esquerda',
+bgimage : 'Imagem de fundo',
+summary : 'Sumário',
+td : 'Dados',
+th : 'Cabeçalho',
+cell_cell : 'Atulizar célula atual',
+cell_row : 'Atualizar todas as células na linha',
+cell_all : 'Atualizar todas as células da tabela',
+row_row : 'Atualizar linha atual',
+row_odd : 'Atualizar linhas ímpares na tabela',
+row_even : 'Atualizar linhas pares na tabela',
+row_all : 'Atualizar todas as linhas na tabela',
+thead : 'Cabeçalho da tabela',
+tbody : 'Corpo da tabela',
+tfoot : 'Rodapé da tabela',
+del : 'Apagar tabela',
+scope : 'Escopo',
+row : 'Linha',
+col : 'Coluna',
+rowgroup : 'Grupo de linhas',
+colgroup : 'Grupo de colunas',
+col_limit : 'Você excedeu o número máximo de colunas ({$cols}).',
+row_limit : 'Você excedeu o número máximo de linhas ({$rows}).',
+cell_limit : 'Você excedeu o número máximo de células ({$cells}).',
+missing_scope: 'Tem certeza que deseja continuar sem especificar um escopo para esta célula de cabeçalho? Sem isso talvez seja difícil para alguns usuários com necessidades especiais entenderem o conteúdo ou visualizarem a tabela.',
+caption : 'Título da tabela',
+cellprops_delta_width : 55
+});
diff --git a/tinyMCE/plugins/table/langs/ro.js b/tinyMCE/plugins/table/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..b31f52e4f6309cf14f2cca2f02731280528ffd64
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ro.js
@@ -0,0 +1,78 @@
+// RO lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'General',
+advanced_tab : 'Avansat',
+general_props : 'Propriet&#259;&#355;i generale',
+advanced_props : 'Propriet&#259;&#355;i avansate',
+desc : 'Insereaz&#259; un tabel nou',
+row_before_desc : 'Insereaz&#259; un r&#226;nd &#238;nainte',
+row_after_desc : 'Insereaz&#259; un r&#226;nd dup&#259;',
+delete_row_desc : '&#350;terge r&#226;nd',
+col_before_desc : 'Insereaz&#259; coloan&#259; &#238;nainte',
+col_after_desc : 'Insereaz&#259; colana dup&#259;',
+delete_col_desc : '&#350;terge coloana',
+rowtype : 'R&#226;nd &#238;n partea de tabel',
+title : 'Inserare/Modificare tabel',
+width : 'L&#259;&#355;ime',
+height : '&#206;n&#259;l&#355;ime',
+cols : 'Coloane',
+rows : 'R&#226;nduri',
+cellspacing : 'Spa&#355;iere celule',
+cellpadding : 'Spa&#355;iu interior celule',
+border : 'Margine',
+align : 'Aliniament',
+align_default : 'Implicit',
+align_left : 'St&#226;nga',
+align_right : 'Dreapta',
+align_middle : 'Centru',
+row_title : 'Propriet&#259;&#355;i r&#226;nd',
+cell_title : 'Propriet&#259;&#355;i celul&#259;',
+cell_type : 'Tip celul&#259;',
+row_desc : 'Propriet&#259;&#355;i r&#226;nd',
+cell_desc : 'Propriet&#259;&#355;i celul&#259;',
+valign : 'Aliniament vertical',
+align_top : 'Sus',
+align_bottom : 'Jos',
+props_desc : 'Propriet&#259;&#355;i tabel',
+bordercolor : 'Culoare margine',
+bgcolor : 'Culoare fundal',
+merge_cells_title : 'Unire celule',
+split_cells_desc : '&#206;mparte celulele',
+merge_cells_desc : 'Une&#351;te celulele',
+cut_row_desc : 'Decupeaz&#259; r&#226;nd',
+copy_row_desc : 'Copiaz&#259; r&#226;nd',
+paste_row_before_desc : 'Lipe&#351;te r&#226;nd &#238;nainte',
+paste_row_after_desc : 'Lipe&#351;te r&#226;nd dup&#259;',
+id : 'Id',
+style: 'Stil',
+langdir : 'Direc&#355;ia limbii',
+langcode : 'Cod limb&#259;',
+mime : 'Tip MIME &#355;int&#259;',
+ltr : 'St&#226;nga la dreapta',
+rtl : 'Dreapta la st&#226;nga',
+bgimage : 'Imagine fundal',
+summary : 'Sumar',
+td : "Date",
+th : "Antet",
+cell_cell : 'Actualizeaz&#259; celula curent&#259;',
+cell_row : 'Actualizeaz&#259; toate celulele din r&#226;nd',
+cell_all : 'Actualizeaz&#259; toate celulele din tabel',
+row_row : 'Actualizeaz&#259; r&#226;ndul curent',
+row_odd : 'Actualizeaz&#259; r&#226;ndurile impare din tabel',
+row_even : 'Actualizeaz&#259; r&#226;ndurile pare din tabel',
+row_all : 'Actualizeaz&#259; toate r&#226;ndurile din tabel',
+thead : 'Antet tabel',
+tbody : 'Corp tabel',
+tfoot : 'Subsol tabel',
+del : '&#350;terge tabel',
+scope : 'Domeniu',
+row : 'R&#226;nd',
+col : 'Coloan&#259;',
+rowgroup : 'Grup r&#226;nduri',
+colgroup : 'Grup coloane',
+col_limit : 'Ai dep&#259;&#351;it num&#259;rul maxim de coloane, din {$cols}.',
+row_limit : 'Ai dep&#259;&#351;it num&#259;rul maxim de r&#226;nduri, din {$rows}.',
+cell_limit : 'Ai dep&#259;&#351;it num&#259;rul maxim de celule, din {$cells}.',
+missing_scope: 'E&#351;ti sigur c&#259; vrei s&#259; continui f&#259;r&#259; s&#259; specifici un domeniu pentru antetul tabelului? F&#259;r&#259; acesta, este posibil ca utilizatorii cu invaliditate s&#259; nu &#238;n&#355;eleag&#259; datele afi&#351;ate sau con&#355;inutul tabelului.'
+});
diff --git a/tinyMCE/plugins/table/langs/ru.js b/tinyMCE/plugins/table/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..bf1685c6e27016a7a26a1d6321c504c8d661e410
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ru.js
@@ -0,0 +1,79 @@
+// RU lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Основные',
+advanced_tab : 'Расширенные',
+general_props : 'Основные свойства',
+advanced_props : 'Расширенные свойства',
+desc : 'Вставить новую таблицу',
+row_before_desc : 'Вставить строку перед',
+row_after_desc : 'Вставить строку после',
+delete_row_desc : 'Удалить строку',
+col_before_desc : 'Вставить колонку перед',
+col_after_desc : 'Вставить колонку после',
+delete_col_desc : 'Удалить колонку',
+rowtype : 'Строка в части таблицы',
+title : 'Вставить/Изменить таблицу',
+width : 'Ширина',
+height : 'Высота',
+cols : 'Колонки',
+rows : 'Строки',
+cellspacing : 'Расстояние между ячейками',
+cellpadding : 'Отступ в ячейках',
+border : 'Граница',
+align : 'Выравнивание',
+align_default : 'По умолчанию',
+align_left : 'Всево',
+align_right : 'Вправо',
+align_middle : 'По центру',
+row_title : 'Свойства строки таблицы',
+cell_title : 'Свойства ячейки таблицы',
+cell_type : 'Тип ячейки',
+row_desc : 'Свойства строки таблицы',
+cell_desc : 'Свойства ячейки таблицы',
+valign : 'Вертикальное выравнивание',
+align_top : 'По верху',
+align_bottom : 'По низу',
+props_desc : 'Свойства таблицы',
+bordercolor : 'Цвет рамки',
+bgcolor : 'Цвет фона',
+merge_cells_title : 'Объединить ячейки таблицы',
+split_cells_desc : 'Разделить ячейки таблицы',
+merge_cells_desc : 'Объединить ячейки таблицы',
+cut_row_desc : 'Вылезать строку таблицы',
+copy_row_desc : 'Скопировать строку таблицы',
+paste_row_before_desc : 'Вставить строку таблицы перед',
+paste_row_after_desc : 'Вставить строку таблицы после',
+id : 'Id',
+style: 'Стиль',
+langdir : 'Описание языка',
+langcode : 'Код языка',
+mime : 'Целевой MIME тип',
+ltr : 'Слева направо',
+rtl : 'Справа налево',
+bgimage : 'Фоновое изображение',
+summary : 'Краткое описание',
+td : "Тело",
+th : "Заголовок",
+cell_cell : 'Обновить текущую ячейку',
+cell_row : 'Обновить текущую строку',
+cell_all : 'Обновить все ячейки в таблице',
+row_row : 'Обновить текущую строку',
+row_odd : 'Обновить нечетные строки в таблице',
+row_even : 'Обновить четные строки в таблице',
+row_all : 'Обновить все строки в таблице',
+thead : 'Заголовок таблицы',
+tbody : 'Тело таблицы',
+tfoot : 'Подвал таблицы',
+del : 'Удалить таблицу',
+scope : 'Границы',
+row : 'Строка',
+col : 'Колонка',
+rowgroup : 'Группа строк',
+colgroup : 'Группа колонок',
+col_limit : 'Вы превысили максимально допустимое количество колонок - {$cols}.',
+row_limit : 'Вы превысили максимально допустимое количество строк - {$rows}.',
+cell_limit : 'Вы превысили максимально допустимое количество ячеек -  {$cells}.',
+missing_scope: 'Вы уверены, что хотите продолжать не обозначив границы ячеек шапки таблицы? Без этого, возможно, некоторым пользователям будет затруднительно понять, что за данные находятся в таблице.',
+caption : 'Название таблицы'
+});
diff --git a/tinyMCE/plugins/table/langs/ru_CP1251.js b/tinyMCE/plugins/table/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..cff33ea5b790dde789873173a3c6ba705bf12124
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ru_CP1251.js
@@ -0,0 +1,79 @@
+// RU lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Îñíîâíûå',
+advanced_tab : 'Ðàñøèðåííûå',
+general_props : 'Îñíîâíûå ñâîéñòâà',
+advanced_props : 'Ðàñøèðåííûå ñâîéñòâà',
+desc : 'Âñòàâèòü íîâóþ òàáëèöó',
+row_before_desc : 'Âñòàâèòü ñòðîêó ïåðåä',
+row_after_desc : 'Âñòàâèòü ñòðîêó ïîñëå',
+delete_row_desc : 'Óäàëèòü ñòðîêó',
+col_before_desc : 'Âñòàâèòü êîëîíêó ïåðåä',
+col_after_desc : 'Âñòàâèòü êîëîíêó ïîñëå',
+delete_col_desc : 'Óäàëèòü êîëîíêó',
+rowtype : 'Ñòðîêà â ÷àñòè òàáëèöû',
+title : 'Âñòàâèòü/Èçìåíèòü òàáëèöó',
+width : 'Øèðèíà',
+height : 'Âûñîòà',
+cols : 'Êîëîíêè',
+rows : 'Ñòðîêè',
+cellspacing : 'Ðàññòîÿíèå ìåæäó ÿ÷åéêàìè',
+cellpadding : 'Îòñòóï â ÿ÷åéêàõ',
+border : 'Ãðàíèöà',
+align : 'Âûðàâíèâàíèå',
+align_default : 'Ïî óìîë÷àíèþ',
+align_left : 'Âñåâî',
+align_right : 'Âïðàâî',
+align_middle : 'Ïî öåíòðó',
+row_title : 'Ñâîéñòâà ñòðîêè òàáëèöû',
+cell_title : 'Ñâîéñòâà ÿ÷åéêè òàáëèöû',
+cell_type : 'Òèï ÿ÷åéêè',
+row_desc : 'Ñâîéñòâà ñòðîêè òàáëèöû',
+cell_desc : 'Ñâîéñòâà ÿ÷åéêè òàáëèöû',
+valign : 'Âåðòèêàëüíîå âûðàâíèâàíèå',
+align_top : 'Ïî âåðõó',
+align_bottom : 'Ïî íèçó',
+props_desc : 'Ñâîéñòâà òàáëèöû',
+bordercolor : 'Öâåò ðàìêè',
+bgcolor : 'Öâåò ôîíà',
+merge_cells_title : 'Îáúåäèíèòü ÿ÷åéêè òàáëèöû',
+split_cells_desc : 'Ðàçäåëèòü ÿ÷åéêè òàáëèöû',
+merge_cells_desc : 'Îáúåäèíèòü ÿ÷åéêè òàáëèöû',
+cut_row_desc : 'Âûëåçàòü ñòðîêó òàáëèöû',
+copy_row_desc : 'Ñêîïèðîâàòü ñòðîêó òàáëèöû',
+paste_row_before_desc : 'Âñòàâèòü ñòðîêó òàáëèöû ïåðåä',
+paste_row_after_desc : 'Âñòàâèòü ñòðîêó òàáëèöû ïîñëå',
+id : 'Id',
+style: 'Ñòèëü',
+langdir : 'Îïèñàíèå ÿçûêà',
+langcode : 'Êîä ÿçûêà',
+mime : 'Öåëåâîé MIME òèï',
+ltr : 'Ñëåâà íàïðàâî',
+rtl : 'Ñïðàâà íàëåâî',
+bgimage : 'Ôîíîâîå èçîáðàæåíèå',
+summary : 'Êðàòêîå îïèñàíèå',
+td : "Òåëî",
+th : "Çàãîëîâîê",
+cell_cell : 'Îáíîâèòü òåêóùóþ ÿ÷åéêó',
+cell_row : 'Îáíîâèòü òåêóùóþ ñòðîêó',
+cell_all : 'Îáíîâèòü âñå ÿ÷åéêè â òàáëèöå',
+row_row : 'Îáíîâèòü òåêóùóþ ñòðîêó',
+row_odd : 'Îáíîâèòü íå÷åòíûå ñòðîêè â òàáëèöå',
+row_even : 'Îáíîâèòü ÷åòíûå ñòðîêè â òàáëèöå',
+row_all : 'Îáíîâèòü âñå ñòðîêè â òàáëèöå',
+thead : 'Çàãîëîâîê òàáëèöû',
+tbody : 'Òåëî òàáëèöû',
+tfoot : 'Ïîäâàë òàáëèöû',
+del : 'Óäàëèòü òàáëèöó',
+scope : 'Ãðàíèöû',
+row : 'Ñòðîêà',
+col : 'Êîëîíêà',
+rowgroup : 'Ãðóïïà ñòðîê',
+colgroup : 'Ãðóïïà êîëîíîê',
+col_limit : 'Âû ïðåâûñèëè ìàêñèìàëüíî äîïóñòèìîå êîëè÷åñòâî êîëîíîê - {$cols}.',
+row_limit : 'Âû ïðåâûñèëè ìàêñèìàëüíî äîïóñòèìîå êîëè÷åñòâî ñòðîê - {$rows}.',
+cell_limit : 'Âû ïðåâûñèëè ìàêñèìàëüíî äîïóñòèìîå êîëè÷åñòâî ÿ÷ååê -  {$cells}.',
+missing_scope: 'Âû óâåðåíû, ÷òî õîòèòå ïðîäîëæàòü íå îáîçíà÷èâ ãðàíèöû ÿ÷ååê øàïêè òàáëèöû? Áåç ýòîãî, âîçìîæíî, íåêîòîðûì ïîëüçîâàòåëÿì áóäåò çàòðóäíèòåëüíî ïîíÿòü, ÷òî çà äàííûå íàõîäÿòñÿ â òàáëèöå.',
+caption : 'Íàçâàíèå òàáëèöû'
+});
diff --git a/tinyMCE/plugins/table/langs/ru_KOI8-R.js b/tinyMCE/plugins/table/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..904da9ad7a753c4b6de15cd6d707bdcfff465fb3
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/ru_KOI8-R.js
@@ -0,0 +1,79 @@
+// RU lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'ïÓÎÏ×ÎÙÅ',
+advanced_tab : 'òÁÓÛÉÒÅÎÎÙÅ',
+general_props : 'ïÓÎÏ×ÎÙÅ Ó×ÏÊÓÔ×Á',
+advanced_props : 'òÁÓÛÉÒÅÎÎÙÅ Ó×ÏÊÓÔ×Á',
+desc : '÷ÓÔÁ×ÉÔØ ÎÏ×ÕÀ ÔÁÂÌÉÃÕ',
+row_before_desc : '÷ÓÔÁ×ÉÔØ ÓÔÒÏËÕ ÐÅÒÅÄ',
+row_after_desc : '÷ÓÔÁ×ÉÔØ ÓÔÒÏËÕ ÐÏÓÌÅ',
+delete_row_desc : 'õÄÁÌÉÔØ ÓÔÒÏËÕ',
+col_before_desc : '÷ÓÔÁ×ÉÔØ ËÏÌÏÎËÕ ÐÅÒÅÄ',
+col_after_desc : '÷ÓÔÁ×ÉÔØ ËÏÌÏÎËÕ ÐÏÓÌÅ',
+delete_col_desc : 'õÄÁÌÉÔØ ËÏÌÏÎËÕ',
+rowtype : 'óÔÒÏËÁ × ÞÁÓÔÉ ÔÁÂÌÉÃÙ',
+title : '÷ÓÔÁ×ÉÔØ/éÚÍÅÎÉÔØ ÔÁÂÌÉÃÕ',
+width : 'ûÉÒÉÎÁ',
+height : '÷ÙÓÏÔÁ',
+cols : 'ëÏÌÏÎËÉ',
+rows : 'óÔÒÏËÉ',
+cellspacing : 'òÁÓÓÔÏÑÎÉÅ ÍÅÖÄÕ ÑÞÅÊËÁÍÉ',
+cellpadding : 'ïÔÓÔÕÐ × ÑÞÅÊËÁÈ',
+border : 'çÒÁÎÉÃÁ',
+align : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ',
+align_default : 'ðÏ ÕÍÏÌÞÁÎÉÀ',
+align_left : '÷ÓÅ×Ï',
+align_right : '÷ÐÒÁ×Ï',
+align_middle : 'ðÏ ÃÅÎÔÒÕ',
+row_title : 'ó×ÏÊÓÔ×Á ÓÔÒÏËÉ ÔÁÂÌÉÃÙ',
+cell_title : 'ó×ÏÊÓÔ×Á ÑÞÅÊËÉ ÔÁÂÌÉÃÙ',
+cell_type : 'ôÉÐ ÑÞÅÊËÉ',
+row_desc : 'ó×ÏÊÓÔ×Á ÓÔÒÏËÉ ÔÁÂÌÉÃÙ',
+cell_desc : 'ó×ÏÊÓÔ×Á ÑÞÅÊËÉ ÔÁÂÌÉÃÙ',
+valign : '÷ÅÒÔÉËÁÌØÎÏÅ ×ÙÒÁ×ÎÉ×ÁÎÉÅ',
+align_top : 'ðÏ ×ÅÒÈÕ',
+align_bottom : 'ðÏ ÎÉÚÕ',
+props_desc : 'ó×ÏÊÓÔ×Á ÔÁÂÌÉÃÙ',
+bordercolor : 'ã×ÅÔ ÒÁÍËÉ',
+bgcolor : 'ã×ÅÔ ÆÏÎÁ',
+merge_cells_title : 'ïÂßÅÄÉÎÉÔØ ÑÞÅÊËÉ ÔÁÂÌÉÃÙ',
+split_cells_desc : 'òÁÚÄÅÌÉÔØ ÑÞÅÊËÉ ÔÁÂÌÉÃÙ',
+merge_cells_desc : 'ïÂßÅÄÉÎÉÔØ ÑÞÅÊËÉ ÔÁÂÌÉÃÙ',
+cut_row_desc : '÷ÙÌÅÚÁÔØ ÓÔÒÏËÕ ÔÁÂÌÉÃÙ',
+copy_row_desc : 'óËÏÐÉÒÏ×ÁÔØ ÓÔÒÏËÕ ÔÁÂÌÉÃÙ',
+paste_row_before_desc : '÷ÓÔÁ×ÉÔØ ÓÔÒÏËÕ ÔÁÂÌÉÃÙ ÐÅÒÅÄ',
+paste_row_after_desc : '÷ÓÔÁ×ÉÔØ ÓÔÒÏËÕ ÔÁÂÌÉÃÙ ÐÏÓÌÅ',
+id : 'Id',
+style: 'óÔÉÌØ',
+langdir : 'ïÐÉÓÁÎÉÅ ÑÚÙËÁ',
+langcode : 'ëÏÄ ÑÚÙËÁ',
+mime : 'ãÅÌÅ×ÏÊ MIME ÔÉÐ',
+ltr : 'óÌÅ×Á ÎÁÐÒÁ×Ï',
+rtl : 'óÐÒÁ×Á ÎÁÌÅ×Ï',
+bgimage : 'æÏÎÏ×ÏÅ ÉÚÏÂÒÁÖÅÎÉÅ',
+summary : 'ëÒÁÔËÏÅ ÏÐÉÓÁÎÉÅ',
+td : "ôÅÌÏ",
+th : "úÁÇÏÌÏ×ÏË",
+cell_cell : 'ïÂÎÏ×ÉÔØ ÔÅËÕÝÕÀ ÑÞÅÊËÕ',
+cell_row : 'ïÂÎÏ×ÉÔØ ÔÅËÕÝÕÀ ÓÔÒÏËÕ',
+cell_all : 'ïÂÎÏ×ÉÔØ ×ÓÅ ÑÞÅÊËÉ × ÔÁÂÌÉÃÅ',
+row_row : 'ïÂÎÏ×ÉÔØ ÔÅËÕÝÕÀ ÓÔÒÏËÕ',
+row_odd : 'ïÂÎÏ×ÉÔØ ÎÅÞÅÔÎÙÅ ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ',
+row_even : 'ïÂÎÏ×ÉÔØ ÞÅÔÎÙÅ ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ',
+row_all : 'ïÂÎÏ×ÉÔØ ×ÓÅ ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ',
+thead : 'úÁÇÏÌÏ×ÏË ÔÁÂÌÉÃÙ',
+tbody : 'ôÅÌÏ ÔÁÂÌÉÃÙ',
+tfoot : 'ðÏÄ×ÁÌ ÔÁÂÌÉÃÙ',
+del : 'õÄÁÌÉÔØ ÔÁÂÌÉÃÕ',
+scope : 'çÒÁÎÉÃÙ',
+row : 'óÔÒÏËÁ',
+col : 'ëÏÌÏÎËÁ',
+rowgroup : 'çÒÕÐÐÁ ÓÔÒÏË',
+colgroup : 'çÒÕÐÐÁ ËÏÌÏÎÏË',
+col_limit : '÷Ù ÐÒÅ×ÙÓÉÌÉ ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË - {$cols}.',
+row_limit : '÷Ù ÐÒÅ×ÙÓÉÌÉ ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË - {$rows}.',
+cell_limit : '÷Ù ÐÒÅ×ÙÓÉÌÉ ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÏÅ ËÏÌÉÞÅÓÔ×Ï ÑÞÅÅË -  {$cells}.',
+missing_scope: '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÐÒÏÄÏÌÖÁÔØ ÎÅ ÏÂÏÚÎÁÞÉ× ÇÒÁÎÉÃÙ ÑÞÅÅË ÛÁÐËÉ ÔÁÂÌÉÃÙ? âÅÚ ÜÔÏÇÏ, ×ÏÚÍÏÖÎÏ, ÎÅËÏÔÏÒÙÍ ÐÏÌØÚÏ×ÁÔÅÌÑÍ ÂÕÄÅÔ ÚÁÔÒÕÄÎÉÔÅÌØÎÏ ÐÏÎÑÔØ, ÞÔÏ ÚÁ ÄÁÎÎÙÅ ÎÁÈÏÄÑÔÓÑ × ÔÁÂÌÉÃÅ.',
+caption : 'îÁÚ×ÁÎÉÅ ÔÁÂÌÉÃÙ'
+});
diff --git a/tinyMCE/plugins/table/langs/si.js b/tinyMCE/plugins/table/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..8f39152eb3f04d007871090277626f3c8f09fe1d
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/si.js
@@ -0,0 +1,75 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('table',{
+general_tab : 'Splo&#353;no',
+advanced_tab : 'Napredno',
+general_props : 'Splo&#353;ne lastnosti',
+advanced_props : 'Napredne lastnosti',
+desc : 'Vstavi novo tabelo',
+row_before_desc : 'Vstavi vrstico pred',
+row_after_desc : 'Vstavi vrstico za',
+delete_row_desc : 'Zbri&#353;i vrstico',
+col_before_desc : 'Vstavi stolpec pred',
+col_after_desc : 'Vstavi stolpec za',
+delete_col_desc : 'Zbri&#353;i stolpec',
+rowtype : 'Vrstica v delu tabele',
+title : 'Vstavi/uredi tabelo',
+width : '&#352;irina',
+height : 'Vi&#353;ina',
+cols : '&#352;t. stolpcev',
+rows : '&#352;t. vrstic',
+cellspacing : 'Razmik med celicami',
+cellpadding : 'Odmik med celicami',
+border : 'Okvir',
+align : 'Poravnava',
+align_default : 'Privzeto',
+align_left : 'Levo',
+align_right : 'Desno',
+align_middle : 'Na sredino',
+row_title : 'Lastnosti vrstice',
+cell_title : 'Lastnosti celice',
+cell_type : 'Tip celice',
+row_desc : 'Lastnosti vrstice',
+cell_desc : 'Lastnosti celice',
+valign : 'Navpi&#269;na poravnava',
+align_top : 'Na vrh',
+align_bottom : 'Na dno',
+props_desc : 'Lastnosti tabele',
+bordercolor : 'Barva okvirja',
+bgcolor : 'Barva ozadja',
+merge_cells_title : 'Zdru&#382;i celice',
+split_cells_desc : 'Razdeli celice',
+merge_cells_desc : 'Zdru&#382;i celice',
+cut_row_desc : 'Izre&#382;i vrstico',
+copy_row_desc : 'Kopiraj vrstico',
+paste_row_before_desc : 'Prilepi tabelo pred',
+paste_row_after_desc : 'Prilepi tabelo za',
+id : 'Id',
+style: 'Stil',
+langdir : 'Smer jezika',
+langcode : 'Koda jezika',
+mime : 'MIME type tar&#269;e',
+ltr : 'Od leve proti desni',
+rtl : 'Od desne proti levi',
+bgimage : 'Slika za ozadje',
+summary : 'Naslov',
+td : "Podatki",
+th : "Glava",
+cell_cell : 'Posodobi trenutno celico',
+cell_row : 'Posodobi vse celice v vrstici',
+cell_all : 'Posodobi vse celice v tabeli',
+row_row : 'Posodobi trenutno vrstico',
+row_odd : 'Posodobi lihe vrstice v tabeli',
+row_even : 'Posodobi sode vrstice v tabeli',
+row_all : 'Posodobi vse vrstice v tabeli',
+thead : 'Glava tabele',
+tbody : 'Telo tabele',
+tfoot : 'Dno tabele',
+del : 'Zbri&#353;i tabelo',
+scope : 'Domena',
+row : 'Vrstica',
+col : 'Stolpec',
+rowgroup : 'Skupina vrstic',
+colgroup : 'Skupina stolpcev',
+missing_scope: 'Ali ste prepri&#269;ani, da &#382;elite nadaljevati brez domene za to celico v glavi tabele? Brez nje bodo lahko imeli uporabniki s posebnimi potrebami probleme pri razumevanju vsebine tabele.'
+});
diff --git a/tinyMCE/plugins/table/langs/sk.js b/tinyMCE/plugins/table/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..611f37a5d8c4c96555ae996fcf04c2de136bca89
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/sk.js
@@ -0,0 +1,117 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Marián Zvalo marian.zvalo@student.umb.sk
+ *    
+ * $Id: sk.js,v 1.1 2006/02/28 20:56:44 spocke Exp $ 
+ */  
+
+tinyMCE.addToLang('',{
+lang_class_name: 'CSS trieda',
+lang_not_set: ' ',
+insert_table_title : 'Vložiť/upraviť tabuľku',
+insert_table_width : 'Šírka',
+insert_table_height : 'Výška',
+insert_table_cols : 'Stĺpce',
+insert_table_rows : 'Riadky',
+insert_table_cellspacing : 'Vonkajší okraj buniek',
+insert_table_cellpadding : 'Vnutorný okraj buniek',
+insert_table_border : 'Riadok',
+insert_table_align : 'Zarovnanie',
+insert_table_align_default : 'Východzie',
+insert_table_align_left : 'Vľavo',
+insert_table_align_right : 'Vpravo',
+insert_table_align_middle : 'Na stred',
+insert_table_class : 'Trieda',
+table_row_title : 'Vlastnosti riadku',
+table_cell_title : 'Vlastnosti bunky',
+table_row_desc : 'Vlastnosti riadku',
+table_cell_desc : 'Vlastnosti bunky',
+insert_table_valign : 'Vertikálne zarovnávanie',
+insert_table_align_top : 'Nahor',
+insert_table_align_bottom : 'Dole',
+table_props_desc : 'Vlastnosti tabuľky',
+table_bordercolor : 'Farba rámčeku',
+table_bgcolor : 'Farba pozadia',
+table_merge_cells_title : 'Zlúčiť bunky',
+table_split_cells_desc : 'Rozdeliť bunky',
+table_merge_cells_desc : 'Zlúčiť bunky',
+table_cut_row_desc : 'Vyňať riadok',
+table_copy_row_desc : 'Kopírovať riadok',
+table_paste_row_before_desc : 'Vložiť riadok pred',
+table_paste_row_after_desc : 'Vložiť riadok za',
+table_insert_desc : 'Vložiť tabuľku',
+table_general_tab : 'Hlavné',
+table_advanced_tab : 'Rozšírené',
+table_general_props : 'Hlavné nastavenia',
+table_advanced_props : 'Rozšírené nastavenia',
+table_desc : 'Vložiť novú tabuľku',
+table_row_before_desc : 'Vložiť riadok pred',
+table_row_after_desc : 'Vložiť riadok za',
+table_delete_row_desc : 'Odstrániť riadok',
+table_col_before_desc : 'Vložiť stĺpec pred',
+table_col_after_desc : 'Vložiť stĺpec za',
+table_delete_col_desc : 'Odstrániť stĺpec',
+table_rowtype : 'Row in table part',
+table_title : 'Vložiť/Upraviť tabuľku',
+table_width : 'Šírka',
+table_height : 'Výška',
+table_cols : 'Stĺpce',
+table_rows : 'Riadky',
+table_cellspacing : 'Medzera medzi bunkami',
+table_cellpadding : 'Medzera medzi textom a okrajom bunky',
+table_border : 'Rámik',
+table_align : 'Zarovnanie',
+table_align_default : 'Prednastavené',
+table_align_left : 'Vľavo',
+table_align_right : 'Vpravo',
+table_align_middle : 'Centrovať',
+table_row_title : 'Nastavenie riadku tabuľky',
+table_cell_title : 'Nastavenie bunky tabuľky',
+table_cell_type : 'Typ bunky',
+table_row_desc : 'Nastavenie riadku tabuľky',
+table_cell_desc : 'Nastavenie bunky tabuľky',
+table_valign : 'Vertikálne zarovnanie',
+table_align_top : 'Hore',
+table_align_bottom : 'Dole',
+table_props_desc : 'Nastavenia tabuľky',
+table_bordercolor : 'Farba rámika',
+table_bgcolor : 'Farba pozadia',
+table_merge_cells_title : 'Zlúčiť bunky',
+table_split_cells_desc : 'Rozdeliť bunky',
+table_merge_cells_desc : 'Zlúčiť bunky',
+table_cut_row_desc : 'Vystrihnúť riadok',
+table_copy_row_desc : 'Kopírovať riadok',
+table_paste_row_before_desc : 'Vložiť riadok pred',
+table_paste_row_after_desc : 'Vložiť riadok za',
+table_id : 'Id',
+table_style: 'CSS Štýl',
+table_langdir : 'Smer textu',
+table_langcode : 'Kód jazyka',
+table_mime : 'Target MIME type',
+table_ltr : 'Z ľava do prava',
+table_rtl : 'Z prava do ľava',
+table_bgimage : 'Obrázok pozadia',
+table_summary : 'Popis tabuľky',
+table_td : "Dáta",
+table_th : "Hlavička",
+table_cell_cell : 'Upraviť aktuálnu bunku',
+table_cell_row : 'Upraviť všetky bunky v riadku',
+table_cell_all : 'Upraviť všetky bunky v tabuľke',
+table_row_row : 'Upraviť aktuálny riadok',
+table_row_odd : 'Upraviť nepárne riadky v tabuľke',
+table_row_even : 'Upraviť párne ridky v tabuľke',
+table_row_all : 'Upraviť všetky riadky v tabuľke',
+table_thead : 'Hlavička tabuľky',
+table_tbody : 'Telo tabuľky',
+table_tfoot : 'Pätka tabuľky',
+table_del : 'Zmazať tabuľku',
+table_scope : 'Scope',
+table_row : 'Riadok',
+table_col : 'Stĺpec',
+table_rowgroup : 'Skupina riadkov',
+table_colgroup : 'Skupina stĺpcov',
+table_missing_scope: 'Ste si istý(á), že chcete pokračovať bez špecifikovania SCOPE pre túto hlavičku tabuľky. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.'
+});
+
diff --git a/tinyMCE/plugins/table/langs/sq.js b/tinyMCE/plugins/table/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..37258098d62257d54e74145028d2b3ad3e1059cf
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/sq.js
@@ -0,0 +1,78 @@
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Te pergjithshme',
+advanced_tab : 'E avancuar',
+general_props : 'Te dhena te pergjithshme',
+advanced_props : 'Te dhena te pergjithshme',
+desc : 'Nderfut nje tabele te re',
+row_before_desc : 'Nderfut nje rresht perpara',
+row_after_desc : 'Nderfut nje rresht nga pas',
+delete_row_desc : 'DeleteFshi nje rresht',
+col_before_desc : 'Nderfut nje kollone perpara',
+col_after_desc : 'Nderfut nje kollone nga pas',
+delete_col_desc : 'Fshi nje kollone',
+rowtype : 'Rresht ne tabele',
+title : 'Nderfut/Ndrysho tabelen',
+width : 'Gjeresi',
+height : 'Lartesi',
+cols : 'Kollona',
+rows : 'Rreshta',
+cellspacing : 'Hapesira midis qelizave',
+cellpadding : 'Largesia midis qelizave',
+border : 'Kufiri',
+align : 'Rreshtimi',
+align_default : 'Paracktuar',
+align_left : 'Majtas',
+align_right : 'Djathas',
+align_middle : 'Ne Mes',
+row_title : 'Table row properties',
+cell_title : 'Table cell properties',
+cell_type : 'Cell type',
+row_desc : 'Table row properties',
+cell_desc : 'Table cell properties',
+valign : 'Vertical alignment',
+align_top : 'Top',
+align_bottom : 'Bottom',
+props_desc : 'Table properties',
+bordercolor : 'Border color',
+bgcolor : 'Background color',
+merge_cells_title : 'Merge table cells',
+split_cells_desc : 'Split table cells',
+merge_cells_desc : 'Merge table cells',
+cut_row_desc : 'Cut table row',
+copy_row_desc : 'Copy table row',
+paste_row_before_desc : 'Paste table row before',
+paste_row_after_desc : 'Paste table row after',
+id : 'Id',
+style: 'Style',
+langdir : 'Language direction',
+langcode : 'Language code',
+mime : 'Target MIME type',
+ltr : 'Left to right',
+rtl : 'Right to left',
+bgimage : 'Background image',
+summary : 'Summary',
+td : "Data",
+th : "Header",
+cell_cell : 'Update current cell',
+cell_row : 'Update all cells in row',
+cell_all : 'Update all cells in table',
+row_row : 'Update current row',
+row_odd : 'Update odd rows in table',
+row_even : 'Update even rows in table',
+row_all : 'Update all rows in table',
+thead : 'Table Head',
+tbody : 'Table Body',
+tfoot : 'Table Foot',
+del : 'Delete table',
+scope : 'Scope',
+row : 'Row',
+col : 'Col',
+rowgroup : 'Row Group',
+colgroup : 'Col Group',
+col_limit : 'You\'ve exceeded the maximum number of columns of {$cols}.',
+row_limit : 'You\'ve exceeded the maximum number of rows of {$rows}.',
+cell_limit : 'You\'ve exceeded the maximum number of cells of {$cells}.',
+missing_scope: 'Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.'
+});
\ No newline at end of file
diff --git a/tinyMCE/plugins/table/langs/sr.js b/tinyMCE/plugins/table/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..af17e330e5d7fecf4bd4aff94e2faad0a2ae78a2
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/sr.js
@@ -0,0 +1,78 @@
+// SR lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Generalno',
+advanced_tab : 'Napredno',
+general_props : 'Generalna podešavanja',
+advanced_props : 'Napredna podešavanja',
+desc : 'Ubacuje novu tabelu',
+row_before_desc : 'Ubacuje red pre',
+row_after_desc : 'Ubacuje red posle',
+delete_row_desc : 'Briše red',
+col_before_desc : 'Ubacuje kolonu pre',
+col_after_desc : 'Ubacuje kolonu posle',
+delete_col_desc : 'Uklanja kolonu',
+rowtype : 'red u delu tabele',
+title : 'Ubacivanje/Menjanje tabele',
+width : 'Å irina',
+height : 'Visina',
+cols : 'Kolone',
+rows : 'Redovi',
+cellspacing : 'Cellspacing',
+cellpadding : 'Cellpadding',
+border : 'Granična linija',
+align : 'Poravnanje',
+align_default : 'Podrazumevano',
+align_left : 'Levo',
+align_right : 'Desno',
+align_middle : 'Centar',
+row_title : 'Podešavanja reda tabele',
+cell_title : 'Podešavanja ćelije tabele',
+cell_type : 'Tip ćelije',
+row_desc : 'Podešavanja reda tabele',
+cell_desc : 'Podešavanja ćelije tabele',
+valign : 'Vertikalno poravnanje',
+align_top : 'Vrh',
+align_bottom : 'Dno',
+props_desc : 'Podešavanje tabele',
+bordercolor : 'Boja granične linije',
+bgcolor : 'Pozadinska boja',
+merge_cells_title : 'Spajanje ćelija tabele',
+split_cells_desc : 'Deljenje ćelija tabele',
+merge_cells_desc : 'Spajanje ćelija tabele',
+cut_row_desc : 'Cut red tabele',
+copy_row_desc : 'Kopiranje reda tabele',
+paste_row_before_desc : 'Zalepite red tabele pre',
+paste_row_after_desc : 'Zalepite red tabele posle',
+id : 'Id',
+style: 'Stil',
+langdir : 'Jezički pravac',
+langcode : 'Kod jezika',
+mime : 'MIME tip mete',
+ltr : 'Levo ka desno',
+rtl : 'Desno ka levo',
+bgimage : 'Pozadinska slika',
+summary : 'Sažetak',
+td : "Podaci",
+th : "Zaglavlje",
+cell_cell : 'Ažuriranje trenutne ćelije',
+cell_row : 'Ažuriranje svih ćelija u redu',
+cell_all : 'Ažuriranje svih ćelija tabele',
+row_row : 'Ažuriranje trenutnog reda',
+row_odd : 'Ažuriranje neparnih redova tabele',
+row_even : 'Ažuriranje parnih redova tabele',
+row_all : 'Ažuriranje svih redova tabele',
+thead : 'Zaglavlje tabele',
+tbody : 'Telo tabele',
+tfoot : 'Donji deo tabele',
+del : 'Brisanje tabele',
+scope : 'Raspon',
+row : 'Red',
+col : 'Kol',
+rowgroup : 'Grupa reda',
+colgroup : 'Grupa kolone',
+col_limit : 'Prešli ste maksimalni broj kolona od {$cols}.',
+row_limit : 'Prešli ste maksimalni broj redova od {$rows}.',
+cell_limit : 'Prešli ste maksimalni broj čelija od {$cells}.',
+missing_scope: 'Da li ste sigurni da želite da nastavite bez postavljanja raspona zaglavlja tabele. Bez toga, neki korisnici će imati poteškoće u pregledu podataka u tabeli.'
+});
diff --git a/tinyMCE/plugins/table/langs/sv.js b/tinyMCE/plugins/table/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..e31619bd02ede215765c14d2964996737f7b4f7f
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/sv.js
@@ -0,0 +1,79 @@
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Generella inställningar',
+advanced_tab : 'Avancerade inställningar',
+general_props : 'Generella inställningar',
+advanced_props : 'Avancerade inställningar',
+desc : 'Skapa ny tabell',
+before_desc : 'Skapa rad före',
+after_desc : 'Skapa rad efter',
+row_before_desc : 'Skapa rad före',
+row_after_desc : 'Skapa rad efter',
+delete_row_desc : 'Ta bort rad',
+col_before_desc : 'Skapa kolumn före',
+col_after_desc : 'Skapa kolumn efter',
+delete_col_desc : 'Ta bort kolumn',
+rowtype : 'Radtyp',
+title : 'Skapa/redigera ny tabell',
+width : 'Bredd',
+height : 'Höjd',
+cols : 'Columner',
+rows : 'Rader',
+cellspacing : 'Cellmellanrum',
+cellpadding : 'Cellutfyllnad',
+border : 'Ram',
+align : 'Justering',
+align_default : 'Ingen',
+align_left : 'Vänster',
+align_right : 'Höger',
+align_middle : 'Mitten',
+row_title : 'Tabell radsinställningar',
+cell_title : 'Tabell cellsinställningar',
+cell_type : 'Celltyp',
+row_desc : 'Tabellrads inställningar',
+cell_desc : 'Tabellcells inställningar',
+valign : 'Vertikal justering',
+align_top : 'Toppen',
+align_bottom : 'Botten',
+props_desc : 'Tabellinställningar',
+bordercolor : 'Ramfärg',
+bgcolor : 'Bakgrundsfärg',
+merge_cells_title : 'Sammanfoga tabellceller',
+split_cells_desc : 'Dela upp tabellceller',
+merge_cells_desc : 'Sammanfoga tabellceller',
+cut_row_desc : 'Klipp ut tabellrad',
+copy_row_desc : 'Kopiera tabellrad',
+paste_row_before_desc : 'Klistra in tabellrad före',
+paste_row_after_desc : 'Klistra in tabellrad efter',
+id : 'Id',
+style: 'Stil',
+langdir : 'Skriftriktning',
+langcode : 'Språkkod',
+ltr : 'Vänster till höger',
+rtl : 'Höger till vänster',
+bgimage : 'Bakgrundsbild',
+summary : 'Sammanfattning',
+td : "Data",
+th : "Huvud",
+cell_cell : 'Uppdatera nuvarande cell',
+cell_row : 'Uppdatera alla celler i raden',
+cell_all : 'Uppdatera alla celler i tabellen',
+row_row : 'Uppdatera nuvarande rad',
+row_odd : 'Uppdatera udda rader i tabellen',
+row_even : 'Uppdatera jämna rader i tabellen',
+row_all : 'Uppdatera alla rader i tabellen',
+thead : 'Tabellhuvud',
+tbody : 'Tabellkropp',
+tfoot : 'Tabellfot',
+del : 'Ta bort tabell',
+scope : 'Omfattning',
+row : 'Rad',
+col : 'Kolumn',
+rowgroup : 'Radgrupp',
+colgroup : 'Kolumngrupp',
+col_limit : 'Du har angivit fler kolumner än vad som är tillåtet. Max är: {$cols}.',
+row_limit : 'Du har angivit fler rader än vad som är tillåtet. Max är: {$rows}.',
+cell_limit : 'Du har angivit fler celler än vad som är tillåtet. Max är: {$cells}.',
+missing_scope: 'Är du säker på att du vill fortsätta utan att ange en omfattning, utan denna kan det bli svårt för handikappade att förstå tabellen.'
+});
diff --git a/tinyMCE/plugins/table/langs/sv_utf8.js b/tinyMCE/plugins/table/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c45dff819d4a1474acbaf5bd848e62ec0234ab5
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/sv_utf8.js
@@ -0,0 +1,79 @@
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Generella inställningar',
+advanced_tab : 'Avancerade inställningar',
+general_props : 'Generella inställningar',
+advanced_props : 'Avancerade inställningar',
+desc : 'Skapa ny tabell',
+before_desc : 'Skapa rad före',
+after_desc : 'Skapa rad efter',
+row_before_desc : 'Skapa rad före',
+row_after_desc : 'Skapa rad efter',
+delete_row_desc : 'Ta bort rad',
+col_before_desc : 'Skapa kolumn före',
+col_after_desc : 'Skapa kolumn efter',
+delete_col_desc : 'Ta bort kolumn',
+rowtype : 'Radtyp',
+title : 'Skapa/redigera ny tabell',
+width : 'Bredd',
+height : 'Höjd',
+cols : 'Columner',
+rows : 'Rader',
+cellspacing : 'Cellmellanrum',
+cellpadding : 'Cellutfyllnad',
+border : 'Ram',
+align : 'Justering',
+align_default : 'Ingen',
+align_left : 'Vänster',
+align_right : 'Höger',
+align_middle : 'Mitten',
+row_title : 'Tabell radsinställningar',
+cell_title : 'Tabell cellsinställningar',
+cell_type : 'Celltyp',
+row_desc : 'Tabellrads inställningar',
+cell_desc : 'Tabellcells inställningar',
+valign : 'Vertikal justering',
+align_top : 'Toppen',
+align_bottom : 'Botten',
+props_desc : 'Tabellinställningar',
+bordercolor : 'Ramfärg',
+bgcolor : 'Bakgrundsfärg',
+merge_cells_title : 'Sammanfoga tabellceller',
+split_cells_desc : 'Dela upp tabellceller',
+merge_cells_desc : 'Sammanfoga tabellceller',
+cut_row_desc : 'Klipp ut tabellrad',
+copy_row_desc : 'Kopiera tabellrad',
+paste_row_before_desc : 'Klistra in tabellrad före',
+paste_row_after_desc : 'Klistra in tabellrad efter',
+id : 'Id',
+style: 'Stil',
+langdir : 'Skriftriktning',
+langcode : 'Språkkod',
+ltr : 'Vänster till höger',
+rtl : 'Höger till vänster',
+bgimage : 'Bakgrundsbild',
+summary : 'Sammanfattning',
+td : "Data",
+th : "Huvud",
+cell_cell : 'Uppdatera nuvarande cell',
+cell_row : 'Uppdatera alla celler i raden',
+cell_all : 'Uppdatera alla celler i tabellen',
+row_row : 'Uppdatera nuvarande rad',
+row_odd : 'Uppdatera udda rader i tabellen',
+row_even : 'Uppdatera jämna rader i tabellen',
+row_all : 'Uppdatera alla rader i tabellen',
+thead : 'Tabellhuvud',
+tbody : 'Tabellkropp',
+tfoot : 'Tabellfot',
+del : 'Ta bort tabell',
+scope : 'Omfattning',
+row : 'Rad',
+col : 'Kolumn',
+rowgroup : 'Radgrupp',
+colgroup : 'Kolumngrupp',
+col_limit : 'Du har angivit fler kolumner än vad som är tillåtet. Max är: {$cols}.',
+row_limit : 'Du har angivit fler rader än vad som är tillåtet. Max är: {$rows}.',
+cell_limit : 'Du har angivit fler celler än vad som är tillåtet. Max är: {$cells}.',
+missing_scope: 'Är du säker på att du vill fortsätta utan att ange en omfattning, utan denna kan det bli svårt för handikappade att förstå tabellen.'
+});
diff --git a/tinyMCE/plugins/table/langs/tr.js b/tinyMCE/plugins/table/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..3b9c85e4d39479f4351c57c977939ae48f62c682
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/tr.js
@@ -0,0 +1,75 @@
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Genel',
+advanced_tab : 'Geliþmiþ',
+general_props : 'Genel özellikler',
+advanced_props : 'Geliþmiþ özellikler',
+desc : 'Yeni tablo ekle',
+row_before_desc : 'Satýr ekle(öncesinde)',
+row_after_desc : 'Satýr ekle(sonrasýnda)',
+delete_row_desc : 'Satýrý sil',
+col_before_desc : 'Kolon ekle(öncesinde)',
+col_after_desc : 'Kolon ekle(sonrasýnda)',
+delete_col_desc : 'Kolonu sil',
+rowtype : 'Row in table part',
+title : 'Tablo ekle/düzenle',
+width : 'Geniþlik',
+height : 'Yükseklik',
+cols : 'Kolonlar',
+rows : 'Satýrlar',
+cellspacing : 'Hücre boþluðu',
+cellpadding : 'Hücre dolðusu',
+border : 'Sýnýr kalýnlýk',
+align : 'Hizalama',
+align_default : 'Varsayýlan',
+align_left : 'Sol',
+align_right : 'Sað',
+align_middle : 'Orta',
+row_title : 'Tablo satýr özellikleri',
+cell_title : 'Tablo hücre özellikleri',
+cell_type : 'Hücre tipi',
+row_desc : 'Tablo satýr özellikleri',
+cell_desc : 'Tablo hücre özellikleri',
+valign : 'Düþey hizalama',
+align_top : 'Üst',
+align_bottom : 'Alt',
+props_desc : 'Tablo özellikleri',
+bordercolor : 'Sýnýr rengi',
+bgcolor : 'Arkaplan rengi',
+merge_cells_title : 'Tablo hücrelerini birleþtir',
+split_cells_desc : 'Tablo hücrelerini ayýr',
+merge_cells_desc : 'Tablo hücrelerini birleþtir',
+cut_row_desc : 'Tablo satýrýný kes',
+copy_row_desc : 'Tablo satýrýný kopyala',
+paste_row_before_desc : 'Tablo satýrý yapýþtýr(önce)',
+paste_row_after_desc : 'Tablo satýrý yapýþtýr(sonra)',
+id : 'Id',
+style: 'Stil',
+langdir : 'Yazým yönü',
+langcode : 'Dil kodu',
+mime : 'Hedef MIME tipi',
+ltr : 'Soldan saða',
+rtl : 'Saðdan sola',
+bgimage : 'Arkaplan resmi',
+summary : 'Özet',
+td : "Veri",
+th : "Baþlýk",
+cell_cell : 'Hücreyi güncelle',
+cell_row : 'Satýrdaki tüm hücreleri güncelle',
+cell_all : 'Tablodaki tüm hücreleri güncelle',
+row_row : 'Satýrý güncelle',
+row_odd : 'Tablodaki sýrasý tek olan satýrlarý güncelle',
+row_even : 'Tablodaki sýrasý çift olan satýrlarý güncelle',
+row_all : 'Tablodaki tüm satýrlarý güncelle',
+thead : 'Tablo baþlýðý',
+tbody : 'Tablo gövdesi',
+tfoot : 'Table altý',
+del : 'Tabloyu sil',
+scope : 'Kapsam',
+row : 'Satýr',
+col : 'Kolon',
+rowgroup : 'Satýr Gurubu',
+colgroup : 'Kolon Gurubu',
+missing_scope: 'Tablo baþlýk hüclerlerinin kapsamlarýný belirmeden devam etmek istediðinize emin misiniz? Eðer belirtmesseniz tablo görünümünde problemler olabilir!'
+});
diff --git a/tinyMCE/plugins/table/langs/uk.js b/tinyMCE/plugins/table/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..7238305f803c12737a5d7f3a66257739c5f4612d
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/uk.js
@@ -0,0 +1,79 @@
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Основні',
+advanced_tab : 'Розширені',
+general_props : 'Основні властивості',
+advanced_props : 'Розширені властивості',
+desc : 'Вставити нову таблицю',
+row_before_desc : 'Вставити рядок перед',
+row_after_desc : 'Вставити рядок після',
+delete_row_desc : 'Видалити рядок',
+col_before_desc : 'Вставити колонку перед',
+col_after_desc : 'Вставити колонку після',
+delete_col_desc : 'Видалити колонку',
+rowtype : 'Рядок у частині таблиці',
+title : 'Вставити/Змінити таблицю',
+width : 'Ширина',
+height : 'Висота',
+cols : 'Колонки',
+rows : 'Рядки',
+cellspacing : 'Відстань між комірками',
+cellpadding : 'Відступ в комірках',
+border : 'Край',
+align : 'Вирівнювання',
+align_default : '	Без задання',
+align_left : 'Вліво',
+align_right : 'Вправо',
+align_middle : 'До центра',
+row_title : 'Властивості рядки таблиці',
+cell_title : 'Властивості комірки таблиці',
+cell_type : 'Тип комірки',
+row_desc : 'Властивості рядки таблиці',
+cell_desc : 'Властивості комірки таблиці',
+valign : 'Вертикальне вирівнювання',
+align_top : 'Вгору',
+align_bottom : 'Вниз',
+props_desc : 'Властивості таблиці',
+bordercolor : 'Колір рамки',
+bgcolor : 'Колір фону',
+merge_cells_title : 'Об\'єднати комірки таблиці',
+split_cells_desc : 'Розділити комірки таблиці',
+merge_cells_desc : 'Об\'єднати комірки таблиці',
+cut_row_desc : 'Вирізати рядок таблиці',
+copy_row_desc : 'Скопіювати рядок таблиці',
+paste_row_before_desc : 'Вставити рядок таблиці перед',
+paste_row_after_desc : 'Вставити рядок таблиці після',
+id : 'Id',
+style: 'Стиль',
+langdir : 'Опис мови',
+langcode : 'Код мови',
+mime : 'Цільовий MIME тип',
+ltr : 'Зліва направо',
+rtl : 'Справа наліво',
+bgimage : 'Фонове зображення',
+summary : 'Короткий опис',
+td : "Тіло",
+th : "Заголовок",
+cell_cell : 'Обновити поточну комірку',
+cell_row : 'Обновити поточний рядок',
+cell_all : 'Обновити все комірки в таблиці',
+row_row : 'Обновити поточний рядок',
+row_odd : 'Обновити непарні рядки у таблиці',
+row_even : 'Обновити парні рядки у таблиці',
+row_all : 'Обновити все рядки у таблиці',
+thead : 'Заголовок таблиці',
+tbody : 'Тіло таблиці',
+tfoot : 'Підвал таблиці',
+del : 'Видалити таблицю',
+scope : 'Межі',
+row : 'Рядок',
+col : 'Колонка',
+rowgroup : 'Група рядків',
+colgroup : 'Група колонок',
+col_limit : 'Ви перевищили максимально допустиму кількість колонок - {$cols}.',
+row_limit : 'Ви перевищили максимально допустиму кількість рядків - {$rows}.',
+cell_limit : 'Ви перевищили максимально допустима кількість осередків - {$cells}.',
+missing_scope: 'Ви абсолютно впевнені, що хочете продовжувати не позначивши кордону осередків шапки таблиці? Без цього, можливо, деяким користувачам буде важко зрозуміти, що з дані перебувають у таблиці.',
+caption : 'Назва таблиці'
+});
diff --git a/tinyMCE/plugins/table/langs/uk_CP1251.js b/tinyMCE/plugins/table/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..1e8c4f807680714aaa4e2ac3ccf79ea13520e1e6
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/uk_CP1251.js
@@ -0,0 +1,79 @@
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Îñíîâí³',
+advanced_tab : 'Ðîçøèðåí³',
+general_props : 'Îñíîâí³ âëàñòèâîñò³',
+advanced_props : 'Ðîçøèðåí³ âëàñòèâîñò³',
+desc : 'Âñòàâèòè íîâó òàáëèöþ',
+row_before_desc : 'Âñòàâèòè ðÿäîê ïåðåä',
+row_after_desc : 'Âñòàâèòè ðÿäîê ï³ñëÿ',
+delete_row_desc : 'Âèäàëèòè ðÿäîê',
+col_before_desc : 'Âñòàâèòè êîëîíêó ïåðåä',
+col_after_desc : 'Âñòàâèòè êîëîíêó ï³ñëÿ',
+delete_col_desc : 'Âèäàëèòè êîëîíêó',
+rowtype : 'Ðÿäîê ó ÷àñòèí³ òàáëèö³',
+title : 'Âñòàâèòè/Çì³íèòè òàáëèöþ',
+width : 'Øèðèíà',
+height : 'Âèñîòà',
+cols : 'Êîëîíêè',
+rows : 'Ðÿäêè',
+cellspacing : '³äñòàíü ì³æ êîì³ðêàìè',
+cellpadding : '³äñòóï â êîì³ðêàõ',
+border : 'Êðàé',
+align : 'Âèð³âíþâàííÿ',
+align_default : '	Áåç çàäàííÿ',
+align_left : 'Âë³âî',
+align_right : 'Âïðàâî',
+align_middle : 'Äî öåíòðà',
+row_title : 'Âëàñòèâîñò³ ðÿäêè òàáëèö³',
+cell_title : 'Âëàñòèâîñò³ êîì³ðêè òàáëèö³',
+cell_type : 'Òèï êîì³ðêè',
+row_desc : 'Âëàñòèâîñò³ ðÿäêè òàáëèö³',
+cell_desc : 'Âëàñòèâîñò³ êîì³ðêè òàáëèö³',
+valign : 'Âåðòèêàëüíå âèð³âíþâàííÿ',
+align_top : 'Âãîðó',
+align_bottom : 'Âíèç',
+props_desc : 'Âëàñòèâîñò³ òàáëèö³',
+bordercolor : 'Êîë³ð ðàìêè',
+bgcolor : 'Êîë³ð ôîíó',
+merge_cells_title : 'Îá\'ºäíàòè êîì³ðêè òàáëèö³',
+split_cells_desc : 'Ðîçä³ëèòè êîì³ðêè òàáëèö³',
+merge_cells_desc : 'Îá\'ºäíàòè êîì³ðêè òàáëèö³',
+cut_row_desc : 'Âèð³çàòè ðÿäîê òàáëèö³',
+copy_row_desc : 'Ñêîï³þâàòè ðÿäîê òàáëèö³',
+paste_row_before_desc : 'Âñòàâèòè ðÿäîê òàáëèö³ ïåðåä',
+paste_row_after_desc : 'Âñòàâèòè ðÿäîê òàáëèö³ ï³ñëÿ',
+id : 'Id',
+style: 'Ñòèëü',
+langdir : 'Îïèñ ìîâè',
+langcode : 'Êîä ìîâè',
+mime : 'Ö³ëüîâèé MIME òèï',
+ltr : 'Çë³âà íàïðàâî',
+rtl : 'Ñïðàâà íàë³âî',
+bgimage : 'Ôîíîâå çîáðàæåííÿ',
+summary : 'Êîðîòêèé îïèñ',
+td : "Ò³ëî",
+th : "Çàãîëîâîê",
+cell_cell : 'Îáíîâèòè ïîòî÷íó êîì³ðêó',
+cell_row : 'Îáíîâèòè ïîòî÷íèé ðÿäîê',
+cell_all : 'Îáíîâèòè âñå êîì³ðêè â òàáëèö³',
+row_row : 'Îáíîâèòè ïîòî÷íèé ðÿäîê',
+row_odd : 'Îáíîâèòè íåïàðí³ ðÿäêè ó òàáëèö³',
+row_even : 'Îáíîâèòè ïàðí³ ðÿäêè ó òàáëèö³',
+row_all : 'Îáíîâèòè âñå ðÿäêè ó òàáëèö³',
+thead : 'Çàãîëîâîê òàáëèö³',
+tbody : 'Ò³ëî òàáëèö³',
+tfoot : 'ϳäâàë òàáëèö³',
+del : 'Âèäàëèòè òàáëèöþ',
+scope : 'Ìåæ³',
+row : 'Ðÿäîê',
+col : 'Êîëîíêà',
+rowgroup : 'Ãðóïà ðÿäê³â',
+colgroup : 'Ãðóïà êîëîíîê',
+col_limit : 'Âè ïåðåâèùèëè ìàêñèìàëüíî äîïóñòèìó ê³ëüê³ñòü êîëîíîê - {$cols}.',
+row_limit : 'Âè ïåðåâèùèëè ìàêñèìàëüíî äîïóñòèìó ê³ëüê³ñòü ðÿäê³â - {$rows}.',
+cell_limit : 'Âè ïåðåâèùèëè ìàêñèìàëüíî äîïóñòèìà ê³ëüê³ñòü îñåðåäê³â - {$cells}.',
+missing_scope: 'Âè àáñîëþòíî âïåâíåí³, ùî õî÷åòå ïðîäîâæóâàòè íå ïîçíà÷èâøè êîðäîíó îñåðåäê³â øàïêè òàáëèö³? Áåç öüîãî, ìîæëèâî, äåÿêèì êîðèñòóâà÷àì áóäå âàæêî çðîçóì³òè, ùî ç äàí³ ïåðåáóâàþòü ó òàáëèö³.',
+caption : 'Íàçâà òàáëèö³'
+});
diff --git a/tinyMCE/plugins/table/langs/uk_KOI8-U.js b/tinyMCE/plugins/table/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee0ec828e32be16558e219e1b4468e822103b1a3
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/uk_KOI8-U.js
@@ -0,0 +1,79 @@
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'ïÓÎÏ×Φ',
+advanced_tab : 'òÏÚÛÉÒÅΦ',
+general_props : 'ïÓÎÏ×Φ ×ÌÁÓÔÉ×ÏÓÔ¦',
+advanced_props : 'òÏÚÛÉÒÅΦ ×ÌÁÓÔÉ×ÏÓÔ¦',
+desc : '÷ÓÔÁ×ÉÔÉ ÎÏ×Õ ÔÁÂÌÉÃÀ',
+row_before_desc : '÷ÓÔÁ×ÉÔÉ ÒÑÄÏË ÐÅÒÅÄ',
+row_after_desc : '÷ÓÔÁ×ÉÔÉ ÒÑÄÏË Ð¦ÓÌÑ',
+delete_row_desc : '÷ÉÄÁÌÉÔÉ ÒÑÄÏË',
+col_before_desc : '÷ÓÔÁ×ÉÔÉ ËÏÌÏÎËÕ ÐÅÒÅÄ',
+col_after_desc : '÷ÓÔÁ×ÉÔÉ ËÏÌÏÎËÕ Ð¦ÓÌÑ',
+delete_col_desc : '÷ÉÄÁÌÉÔÉ ËÏÌÏÎËÕ',
+rowtype : 'òÑÄÏË Õ ÞÁÓÔÉΦ ÔÁÂÌÉæ',
+title : '÷ÓÔÁ×ÉÔÉ/úͦÎÉÔÉ ÔÁÂÌÉÃÀ',
+width : 'ûÉÒÉÎÁ',
+height : '÷ÉÓÏÔÁ',
+cols : 'ëÏÌÏÎËÉ',
+rows : 'òÑÄËÉ',
+cellspacing : '÷¦ÄÓÔÁÎØ Í¦Ö ËÏͦÒËÁÍÉ',
+cellpadding : '÷¦ÄÓÔÕÐ × ËÏͦÒËÁÈ',
+border : 'ëÒÁÊ',
+align : '÷ÉÒ¦×ÎÀ×ÁÎÎÑ',
+align_default : '	âÅÚ ÚÁÄÁÎÎÑ',
+align_left : '÷̦×Ï',
+align_right : '÷ÐÒÁ×Ï',
+align_middle : 'äÏ ÃÅÎÔÒÁ',
+row_title : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÒÑÄËÉ ÔÁÂÌÉæ',
+cell_title : '÷ÌÁÓÔÉ×ÏÓÔ¦ ËÏͦÒËÉ ÔÁÂÌÉæ',
+cell_type : 'ôÉÐ ËÏͦÒËÉ',
+row_desc : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÒÑÄËÉ ÔÁÂÌÉæ',
+cell_desc : '÷ÌÁÓÔÉ×ÏÓÔ¦ ËÏͦÒËÉ ÔÁÂÌÉæ',
+valign : '÷ÅÒÔÉËÁÌØÎÅ ×ÉÒ¦×ÎÀ×ÁÎÎÑ',
+align_top : '÷ÇÏÒÕ',
+align_bottom : '÷ÎÉÚ',
+props_desc : '÷ÌÁÓÔÉ×ÏÓÔ¦ ÔÁÂÌÉæ',
+bordercolor : 'ëÏÌ¦Ò ÒÁÍËÉ',
+bgcolor : 'ëÏÌ¦Ò ÆÏÎÕ',
+merge_cells_title : 'ïÂ\'¤ÄÎÁÔÉ ËÏͦÒËÉ ÔÁÂÌÉæ',
+split_cells_desc : 'òÏÚĦÌÉÔÉ ËÏͦÒËÉ ÔÁÂÌÉæ',
+merge_cells_desc : 'ïÂ\'¤ÄÎÁÔÉ ËÏͦÒËÉ ÔÁÂÌÉæ',
+cut_row_desc : '÷ÉÒ¦ÚÁÔÉ ÒÑÄÏË ÔÁÂÌÉæ',
+copy_row_desc : 'óËÏЦÀ×ÁÔÉ ÒÑÄÏË ÔÁÂÌÉæ',
+paste_row_before_desc : '÷ÓÔÁ×ÉÔÉ ÒÑÄÏË ÔÁÂÌÉæ ÐÅÒÅÄ',
+paste_row_after_desc : '÷ÓÔÁ×ÉÔÉ ÒÑÄÏË ÔÁÂÌÉæ ЦÓÌÑ',
+id : 'Id',
+style: 'óÔÉÌØ',
+langdir : 'ïÐÉÓ ÍÏ×É',
+langcode : 'ëÏÄ ÍÏ×É',
+mime : 'ã¦ÌØÏ×ÉÊ MIME ÔÉÐ',
+ltr : 'ú̦×Á ÎÁÐÒÁ×Ï',
+rtl : 'óÐÒÁ×Á ÎÁ̦×Ï',
+bgimage : 'æÏÎÏ×Å ÚÏÂÒÁÖÅÎÎÑ',
+summary : 'ëÏÒÏÔËÉÊ ÏÐÉÓ',
+td : "ô¦ÌÏ",
+th : "úÁÇÏÌÏ×ÏË",
+cell_cell : 'ïÂÎÏ×ÉÔÉ ÐÏÔÏÞÎÕ ËÏͦÒËÕ',
+cell_row : 'ïÂÎÏ×ÉÔÉ ÐÏÔÏÞÎÉÊ ÒÑÄÏË',
+cell_all : 'ïÂÎÏ×ÉÔÉ ×ÓÅ ËÏͦÒËÉ × ÔÁÂÌÉæ',
+row_row : 'ïÂÎÏ×ÉÔÉ ÐÏÔÏÞÎÉÊ ÒÑÄÏË',
+row_odd : 'ïÂÎÏ×ÉÔÉ ÎÅÐÁÒΦ ÒÑÄËÉ Õ ÔÁÂÌÉæ',
+row_even : 'ïÂÎÏ×ÉÔÉ ÐÁÒΦ ÒÑÄËÉ Õ ÔÁÂÌÉæ',
+row_all : 'ïÂÎÏ×ÉÔÉ ×ÓÅ ÒÑÄËÉ Õ ÔÁÂÌÉæ',
+thead : 'úÁÇÏÌÏ×ÏË ÔÁÂÌÉæ',
+tbody : 'ô¦ÌÏ ÔÁÂÌÉæ',
+tfoot : 'ð¦Ä×ÁÌ ÔÁÂÌÉæ',
+del : '÷ÉÄÁÌÉÔÉ ÔÁÂÌÉÃÀ',
+scope : 'íÅÖ¦',
+row : 'òÑÄÏË',
+col : 'ëÏÌÏÎËÁ',
+rowgroup : 'çÒÕÐÁ ÒÑÄ˦×',
+colgroup : 'çÒÕÐÁ ËÏÌÏÎÏË',
+col_limit : '÷É ÐÅÒÅ×ÉÝÉÌÉ ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÕ Ë¦ÌØË¦ÓÔØ ËÏÌÏÎÏË - {$cols}.',
+row_limit : '÷É ÐÅÒÅ×ÉÝÉÌÉ ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÕ Ë¦ÌØË¦ÓÔØ ÒÑÄË¦× - {$rows}.',
+cell_limit : '÷É ÐÅÒÅ×ÉÝÉÌÉ ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÁ Ë¦ÌØË¦ÓÔØ ÏÓÅÒÅÄË¦× - {$cells}.',
+missing_scope: '÷É ÁÂÓÏÌÀÔÎÏ ×ÐÅ×ÎÅΦ, ÝÏ ÈÏÞÅÔÅ ÐÒÏÄÏ×ÖÕ×ÁÔÉ ÎÅ ÐÏÚÎÁÞÉ×ÛÉ ËÏÒÄÏÎÕ ÏÓÅÒÅÄË¦× ÛÁÐËÉ ÔÁÂÌÉæ? âÅÚ ÃØÏÇÏ, ÍÏÖÌÉ×Ï, ÄÅÑËÉÍ ËÏÒÉÓÔÕ×ÁÞÁÍ ÂÕÄÅ ×ÁÖËÏ ÚÒÏÚÕͦÔÉ, ÝÏ Ú ÄÁΦ ÐÅÒÅÂÕ×ÁÀÔØ Õ ÔÁÂÌÉæ.',
+caption : 'îÁÚ×Á ÔÁÂÌÉæ'
+});
diff --git a/tinyMCE/plugins/table/langs/vi.js b/tinyMCE/plugins/table/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..98149a7f793860ea12847d7bf199bb09a129b176
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/vi.js
@@ -0,0 +1,78 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('table',{
+general_tab : 'Chung',
+advanced_tab : 'Nâng cao',
+general_props : 'Thuộc tính chung',
+advanced_props : 'Thuộc tính nâng cao',
+desc : 'Thêm một bảng mới',
+row_before_desc : 'Thêm hàng trước',
+row_after_desc : 'Thêm hàng sau',
+delete_row_desc : 'Xóa hàng',
+col_before_desc : 'Thêm cột bên trái',
+col_after_desc : 'Thêm cột bên phải',
+delete_col_desc : 'Xóa cột',
+rowtype : 'Hàng trong một phần bảng',
+title : 'Thêm/Sửa bảng',
+width : 'Độ rộng',
+height : 'Chiều cao',
+cols : 'Cá»™t',
+rows : 'Hàng',
+cellspacing : 'Khoảng cách ô',
+cellpadding : 'Căn lề ô',
+border : 'Khung bao quanh',
+align : 'Căn lề',
+align_default : 'Mặc định',
+align_left : 'Trái',
+align_right : 'Phải',
+align_middle : 'Giữa',
+row_title : 'Thuộc tính hàng',
+cell_title : 'Thuộc tính ô',
+cell_type : 'Kiểu ô',
+row_desc : 'Thuộc tính hàng',
+cell_desc : 'Thuộc tính ô',
+valign : 'Căn lề chiều dọc',
+align_top : 'Trên cùng',
+align_bottom : 'Dưới cùng',
+props_desc : 'Thuộc tính bảng',
+bordercolor : 'Màu khung',
+bgcolor : 'Màu nền',
+merge_cells_title : 'Trộn ô',
+split_cells_desc : 'Tách ô',
+merge_cells_desc : 'Trộn ô',
+cut_row_desc : 'Cắt hàng của bảng',
+copy_row_desc : 'Sao chép hàng của bảng',
+paste_row_before_desc : 'Dán hàng lên trên',
+paste_row_after_desc : 'Dán hàng xuống dưới',
+id : 'Id',
+style: 'Style',
+langdir : 'Hướng ngôn ngữ',
+langcode : 'Mã ngôn ngữ',
+mime : 'Kiểu MIME mục tiêu',
+ltr : 'Trái sang phải',
+rtl : 'Phải sang trái',
+bgimage : 'Ảnh nền',
+summary : 'Tóm tắt',
+td : "Dữ liệu",
+th : "Tiêu đề",
+cell_cell : 'Cập nhật ô hiện thời',
+cell_row : 'Cập nhật tất cả các ô trong hàng',
+cell_all : 'Cập nhật tất cả các ô trong bảng',
+row_row : 'Cập nhật hàng hiện thời',
+row_odd : 'Cập nhật các hàng lẻ trong bảng',
+row_even : 'Cập nhật các hàng chẵn trong bảng',
+row_all : 'Cập nhật tất cả các hàng trong bảng',
+thead : 'Đầu bảng',
+tbody : 'Thân bảng',
+tfoot : 'Chân bảng',
+del : 'Xóa bảng',
+scope : 'Phạm vi',
+row : 'Hàng',
+col : 'Cá»™t',
+rowgroup : 'Nhóm hàng',
+colgroup : 'Nhóm cột',
+col_limit : 'Bạn đã chạm đến số tối đa cột của {$cols}.',
+row_limit : 'Bạn đã chạm đến số tối đa hàng của {$rows}.',
+cell_limit : 'Bạn đã chạm đến số tối đa ô của {$cells}.',
+missing_scope: 'Bạn có chắc bạn muốn tiếp tục mà không cần xác định phạm vi cho ô tiêu đề bảng này? Nếu thiếu nó, có thể những người sử dụng khuyết thiếu sẽ khó có thể hiểu nội dung của dữ liệu trong bảng.'
+});
diff --git a/tinyMCE/plugins/table/langs/zh_cn.js b/tinyMCE/plugins/table/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..015b9c43f67c6f60e2c64318d5adb479da72c65a
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/zh_cn.js
@@ -0,0 +1,76 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('table',{
+general_tab : 'Ò»°ã',
+advanced_tab : '¸ß¼¶',
+general_props : 'Ò»°ãÊôÐÔ',
+advanced_props : '¸ß¼¼ÊôÐÔ',
+desc : '²åÈëÒ»¸öбí',
+row_before_desc : 'Ïòǰ²åÈëÒ»ÐÐ',
+row_after_desc : 'Ïòºó²åÈëÒ»ÐÐ',
+delete_row_desc : 'ɾ³ýÐÐ',
+col_before_desc : 'Ïò×ó²åÈëÒ»ÁÐ',
+col_after_desc : 'ÏòÓÒ²åÈëÒ»ÁÐ',
+delete_col_desc : 'ɾ³ýÁÐ',
+rowtype : 'ÐÐÖÖÀà',
+title : '²åÈë/ÐÞ¸Ä ±í',
+width : '¿í',
+height : '¸ß',
+cols : 'ÁÐÊý',
+rows : 'ÐÐÊý',
+cellspacing : 'µ¥Ôª¸ñ¿Õ¼ä',
+cellpadding : 'µ¥Ôª¸ñÌî³ä',
+border : '±ß¿ò',
+align : '¶ÔÆë',
+align_default : 'ĬÈÏ',
+align_left : '¾Ó×ó',
+align_right : '¾ÓÓÒ',
+align_middle : '¾ÓÖÐ',
+row_title : 'ÐбêÌâ',
+cell_title : 'µ¥Ôª¸ñ±êÌâ',
+cell_type : 'µ¥Ôª¸ñÖÖÀà',
+row_desc : 'ÐÐÃèÊö',
+cell_desc : 'µ¥Ôª¸ñÃèÊö',
+valign : '´¹Ö±¶ÔÆë',
+align_top : '¶¥¶Ë',
+align_bottom : 'µ×¶Ë',
+props_desc : '±íÊôÐÔ',
+bordercolor : '±ß¿òÑÕÉ«',
+bgcolor : '±³¾°ÑÕÉ«',
+merge_cells_title : 'ºÏ²¢±íÖе¥Ôª¸ñ±êÌâ',
+split_cells_desc : '·ÖÀà±íÖе¥Ôª¸ñÃèÊö',
+merge_cells_desc : 'ºÏ²¢±íÖе¥Ôª¸ñÃèÊö',
+cut_row_desc : '¼ôÇÐÐÐ',
+copy_row_desc : '¸´ÖÆÐÐ',
+paste_row_before_desc : 'ÏòǰճÌùÒ»ÐÐ',
+paste_row_after_desc : 'ÏòºóÕ³ÌùÒ»ÐÐ',
+id : '±íʶ',
+style: 'Ñùʽ',
+langdir : 'Êéд·½Ïò',
+langcode : 'ÓïÑÔ±àÂë',
+mime : 'Ä¿±ê MIME ÖÖÀà',
+ltr : '´Ó×óµ½ÓÒ',
+rtl : '´ÓÓÒµ½×ó',
+bgimage : '±³¾°Í¼Æ¬',
+summary : 'С½á',
+td : "Êý¾Ý",
+th : "ҳü",
+cell_cell : '¸üе±Ç°µ¥Ôª¸ñ',
+cell_row : '¸üÐÂÐÐÖÐËùÓе¥Ôª¸ñ',
+cell_all : '¸üбíÖÐËùÓе¥Ôª¸ñ',
+row_row : '¸üе±Ç°ÐÐ',
+row_odd : '¸üÐÂÆæÊýÐÐ',
+row_even : '¸üÐÂżÊýÐÐ',
+row_all : '¸üбíÖÐËùÓÐÐÐ',
+thead : '±íÍ·',
+tbody : '±íÖÐ',
+tfoot : '±íβ',
+del : 'ɾ³ý±í',
+scope : 'ÇøÓò',
+row : 'ÐÐ',
+col : 'ÁÐ',
+rowgroup : 'Ðм¯ÍÅ',
+colgroup : 'Áм¯ÍÅ',
+missing_scope: 'ÄúÈ·ÈÏÒªÔÚûÓÐÉùÃ÷±à¼­ÇøÓòʱ¼ÌÐøÂð£¿Ã»ÓÐÉùÃ÷±à¼­ÇøÓò½«Ê¹ÔĶÁÕß¿´ÆðÀ´ºÜ·ÑÁ¦¡£'
+});
diff --git a/tinyMCE/plugins/table/langs/zh_cn_utf8.js b/tinyMCE/plugins/table/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..44f85707b7f5481cf0c03dabacaf79ef01498378
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/zh_cn_utf8.js
@@ -0,0 +1,76 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('table',{
+general_tab : '一般',
+advanced_tab : '高级',
+general_props : '一般属性',
+advanced_props : '高技属性',
+desc : '插入一个新表',
+row_before_desc : '向前插入一行',
+row_after_desc : '向后插入一行',
+delete_row_desc : '删除行',
+col_before_desc : '向左插入一列',
+col_after_desc : '向右插入一列',
+delete_col_desc : '删除列',
+rowtype : '行种类',
+title : '插入/修改 表',
+width : '宽',
+height : '高',
+cols : '列数',
+rows : '行数',
+cellspacing : '单元格空间',
+cellpadding : '单元格填充',
+border : '边框',
+align : '对齐',
+align_default : '默认',
+align_left : 'å±…å·¦',
+align_right : '居右',
+align_middle : '居中',
+row_title : '行标题',
+cell_title : '单元格标题',
+cell_type : '单元格种类',
+row_desc : '行描述',
+cell_desc : '单元格描述',
+valign : '垂直对齐',
+align_top : '顶端',
+align_bottom : '底端',
+props_desc : '表属性',
+bordercolor : '边框颜色',
+bgcolor : '背景颜色',
+merge_cells_title : '合并表中单元格标题',
+split_cells_desc : '分类表中单元格描述',
+merge_cells_desc : '合并表中单元格描述',
+cut_row_desc : '剪切行',
+copy_row_desc : '复制行',
+paste_row_before_desc : '向前粘贴一行',
+paste_row_after_desc : '向后粘贴一行',
+id : '表识',
+style: '样式',
+langdir : '书写方向',
+langcode : '语言编码',
+mime : '目标 MIME 种类',
+ltr : '从左到右',
+rtl : '从右到左',
+bgimage : '背景图片',
+summary : '小结',
+td : "数据",
+th : "页眉",
+cell_cell : '更新当前单元格',
+cell_row : '更新行中所有单元格',
+cell_all : '更新表中所有单元格',
+row_row : '更新当前行',
+row_odd : '更新奇数行',
+row_even : '更新偶数行',
+row_all : '更新表中所有行',
+thead : '表头',
+tbody : '表中',
+tfoot : '表尾',
+del : '删除表',
+scope : '区域',
+row : '行',
+col : '列',
+rowgroup : '行集团',
+colgroup : '列集团',
+missing_scope: '您确认要在没有声明编辑区域时继续吗?没有声明编辑区域将使阅读者看起来很费力。'
+});
diff --git a/tinyMCE/plugins/table/langs/zh_tw.js b/tinyMCE/plugins/table/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..664d5f02011f88c517db2f79230f2d969b57f940
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/zh_tw.js
@@ -0,0 +1,76 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('table',{
+general_tab : '¤@¯ë',
+advanced_tab : '¶i¶¥',
+general_props : '¤@¯ëÄÝ©Ê',
+advanced_props : '¶i¶¥ÄÝ©Ê',
+desc : '´¡¤J·sªí®æ',
+row_before_desc : '¦b¤§«e´¡¤J¦C',
+row_after_desc : '¦b¤§«á´¡¤J¦C',
+delete_row_desc : '§R°£¦C',
+col_before_desc : '¦b¤§«e´¡¤J¦æ',
+col_after_desc : '¦b¤§«á´¡¤J¦æ',
+delete_col_desc : '§R°£¦æ',
+rowtype : 'ªí®æ¤¤ªº¦C',
+title : '´¡¤J©Î½Õ¾ãªí®æ',
+width : '¼e',
+height : '°ª',
+cols : '¦æ',
+rows : '¦C',
+cellspacing : 'Àx¦s®æ®æ½u¶¡¶Z',
+cellpadding : 'Àx¦s®æ¤º¤å»P®æ½u¶¡¶Z',
+border : '®Ø½u',
+align : '¦ì¸m',
+align_default : '¤º©w',
+align_left : '¾a¥ª',
+align_right : '¾a¥k',
+align_middle : '¸m¤¤',
+row_title : '¦CÄÝ©Ê',
+cell_title : 'Àx¦s®æÄÝ©Ê',
+cell_type : 'Àx¦s®æÃþ«¬',
+row_desc : '¦CÄÝ©Ê',
+cell_desc : 'Àx¦s®æÄÝ©Ê',
+valign : '««ª½¦ì¸m',
+align_top : '³»ºÝ',
+align_bottom : '©³³¡',
+props_desc : 'ªí®æÄÝ©Ê',
+bordercolor : '®Ø½uÃC¦â',
+bgcolor : '­I´ºÃC¦â',
+merge_cells_title : '¦X¨ÖÀx¦s®æ',
+split_cells_desc : '¤À³ÎÀx¦s®æ',
+merge_cells_desc : '¦X¨ÖÀx¦s®æ',
+cut_row_desc : '°Å¤U¦C',
+copy_row_desc : '½Æ»s¦C',
+paste_row_before_desc : '¦b¤§«e¶K¤W¦C',
+paste_row_after_desc : '¦b¤§«á¶K¤W¦C',
+id : '½s½X',
+style: '¦¡¼Ë',
+langdir : '»y¨¥¥Îªk',
+langcode : '»y½X',
+mime : '¹ï¶H MIME Ãþ«¬',
+ltr : '¥Ñ¥ª¦Ü¥k',
+rtl : '¥Ñ¥k¦Ü¥ª',
+bgimage : '­I´º¹ÏÀÉ',
+summary : '¤@Äý',
+td : "¸ê®Æ",
+th : "¼ÐÀY",
+cell_cell : '§ó·s©Ò¦bªºÀx¦s®æ',
+cell_row : '§ó·s¦C¤ºªºÀx¦s®æ',
+cell_all : '§ó·sªí®æ¤¤ªºÀx¦s®æ',
+row_row : '§ó·s©Ò¦bªº¦C',
+row_odd : '§ó·sªí®æ¤¤ªº©_¼Æ¦C',
+row_even : '§ó·sªí®æ¤¤ªº°¸¼Æ¦C',
+row_all : '§ó·sªí®æ¤¤ªº¦C',
+thead : 'ªí®æ¼ÐÀY',
+tbody : 'ªí®æ¹êÅé',
+tfoot : 'ªí®æ©³³¡',
+del : '§R°£ªí®æ',
+scope : '½d³ò',
+row : '¦C',
+col : '¦æ',
+rowgroup : '¸s¦C',
+colgroup : '¸s¦æ',
+missing_scope: '½T©w­n¦b¨S¦³¹ï¦¹ªí®æ¼ÐÀY³]©w½d³ò¤UÄ~Äò°õ¦æ¶Ü¡H\n¤£¥[¥H³]©wªº¸Ü¡A¥i¯à·|¾É­P¬Y¨Ç¨Ï¥ÎªÌµLªk¶¶§QŪ¨úªí®æ¤¤ªº³¡¥÷©Î¬O¾ãÅé¸ê°T¡C'
+});
diff --git a/tinyMCE/plugins/table/langs/zh_tw_utf8.js b/tinyMCE/plugins/table/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..e56bb1e8b9b08cde79b9dda465aa9d34d19cbfec
--- /dev/null
+++ b/tinyMCE/plugins/table/langs/zh_tw_utf8.js
@@ -0,0 +1,76 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+tinyMCE.addToLang('table',{
+general_tab : '一般',
+advanced_tab : '進階',
+general_props : '一般屬性',
+advanced_props : '進階屬性',
+desc : '插入新表格',
+row_before_desc : '在之前插入列',
+row_after_desc : '在之後插入列',
+delete_row_desc : '刪除列',
+col_before_desc : '在之前插入行',
+col_after_desc : '在之後插入行',
+delete_col_desc : '刪除行',
+rowtype : '表格中的列',
+title : '插入或調整表格',
+width : '寬',
+height : '高',
+cols : '行',
+rows : '列',
+cellspacing : '儲存格格線間距',
+cellpadding : '儲存格內文與格線間距',
+border : '框線',
+align : '位置',
+align_default : '內定',
+align_left : '靠左',
+align_right : '靠右',
+align_middle : '置中',
+row_title : '列屬性',
+cell_title : '儲存格屬性',
+cell_type : '儲存格類型',
+row_desc : '列屬性',
+cell_desc : '儲存格屬性',
+valign : '垂直位置',
+align_top : '頂端',
+align_bottom : '底部',
+props_desc : '表格屬性',
+bordercolor : '框線顏色',
+bgcolor : '背景顏色',
+merge_cells_title : '合併儲存格',
+split_cells_desc : '分割儲存格',
+merge_cells_desc : '合併儲存格',
+cut_row_desc : '剪下列',
+copy_row_desc : '複製列',
+paste_row_before_desc : '在之前貼上列',
+paste_row_after_desc : '在之後貼上列',
+id : '編碼',
+style: '式樣',
+langdir : '語言用法',
+langcode : '語碼',
+mime : '對象 MIME 類型',
+ltr : '由左至右',
+rtl : '由右至左',
+bgimage : '背景圖檔',
+summary : '一覽',
+td : "資料",
+th : "標頭",
+cell_cell : '更新所在的儲存格',
+cell_row : '更新列內的儲存格',
+cell_all : '更新表格中的儲存格',
+row_row : '更新所在的列',
+row_odd : '更新表格中的奇數列',
+row_even : '更新表格中的偶數列',
+row_all : '更新表格中的列',
+thead : '表格標頭',
+tbody : '表格實體',
+tfoot : '表格底部',
+del : '刪除表格',
+scope : '範圍',
+row : '列',
+col : '行',
+rowgroup : '群列',
+colgroup : '群行',
+missing_scope: '確定要在沒有對此表格標頭設定範圍下繼續執行嗎?\n不加以設定的話,可能會導致某些使用者無法順利讀取表格中的部份或是整體資訊。'
+});
diff --git a/tinyMCE/plugins/table/merge_cells.htm b/tinyMCE/plugins/table/merge_cells.htm
new file mode 100644
index 0000000000000000000000000000000000000000..10896bf9e2094bc622a930d07504871c4acda56d
--- /dev/null
+++ b/tinyMCE/plugins/table/merge_cells.htm
@@ -0,0 +1,38 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_table_merge_cells_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/validate.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/merge_cells.js"></script>
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="margin: 8px" style="display: none">
+<form onsubmit="insertTable();return false;" action="#">
+	<fieldset>
+		<legend>{$lang_table_merge_cells_title}</legend>
+		  <table border="0" cellpadding="0" cellspacing="3" width="100%">
+			  <tr>
+				<td>{$lang_table_cols}:</td>
+				<td align="right"><input type="text" name="numcols" value="" class="number min1" style="width: 30px" /></td>
+				<td>
+			  </tr>
+			  <tr>
+				<td>{$lang_table_rows}:</td>
+				<td align="right"><input type="text" name="numrows" value="" class="number min1" style="width: 30px" /></td>
+			  </tr>
+		  </table>
+	</fieldset>
+
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_update}" onclick="mergeCells();" />
+		</div>
+
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/table/readme.txt b/tinyMCE/plugins/table/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/table/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/plugins/table/row.htm b/tinyMCE/plugins/table/row.htm
new file mode 100644
index 0000000000000000000000000000000000000000..64f2afcb5e87bf30debb24dbaa3f47735af8ab69
--- /dev/null
+++ b/tinyMCE/plugins/table/row.htm
@@ -0,0 +1,159 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_table_row_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/row.js"></script>
+	<link href="css/row.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body id="tablerow" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+	<form onsubmit="updateAction();return false;">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_table_general_tab}</a></span></li>
+				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_table_advanced_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{$lang_table_general_props}</legend>
+
+					<table border="0" cellpadding="4" cellspacing="0">
+						<tr>
+							<td><label for="rowtype">{$lang_table_rowtype}</label></td>
+							<td class="col2">
+								<select id="rowtype" name="rowtype">
+									<option value="thead">{$lang_table_thead}</option>
+									<option value="tbody">{$lang_table_tbody}</option>
+									<option value="tfoot">{$lang_table_tfoot}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="align">{$lang_table_align}</label></td>
+							<td class="col2">
+								<select id="align" name="align">
+									<option value="">{$lang_not_set}</option>
+									<option value="center">{$lang_table_align_middle}</option>
+									<option value="left">{$lang_table_align_left}</option>
+									<option value="right">{$lang_table_align_right}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="valign">{$lang_table_valign}</label></td>
+							<td class="col2">
+								<select id="valign" name="valign">
+									<option value="">{$lang_not_set}</option>
+									<option value="top">{$lang_table_align_top}</option>
+									<option value="middle">{$lang_table_align_middle}</option>
+									<option value="bottom">{$lang_table_align_bottom}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr id="styleSelectRow">
+							<td><label for="class">{$lang_class_name}</label></td>
+							<td class="col2">
+								<select id="class" name="class">
+									<option value="" selected="selected">{$lang_not_set}</option>
+								</select>
+							</td>
+						</tr>
+
+						<tr>
+							<td><label for="height">{$lang_table_height}</label></td>
+							<td class="col2"><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_table_advanced_props}</legend>
+
+					<table border="0" cellpadding="0" cellspacing="4">
+						<tr>
+							<td class="column1"><label for="id">{$lang_table_id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> 
+						</tr>
+
+						<tr>
+							<td><label for="style">{$lang_table_style}</label></td>
+							<td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="dir">{$lang_table_langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir" style="width: 200px"> 
+										<option value="">{$lang_not_set}</option> 
+										<option value="ltr">{$lang_table_ltr}</option> 
+										<option value="rtl">{$lang_table_rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="lang">{$lang_table_langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" style="width: 200px" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="backgroundimage">{$lang_table_bgimage}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>
+										<td id="backgroundimagebrowsercontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="bgcolor">{$lang_table_bgcolor}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
+										<td id="bgcolor_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div>
+				<select id="action" name="action">
+					<option value="row">{$lang_table_row_row}</option>
+					<option value="odd">{$lang_table_row_odd}</option>
+					<option value="even">{$lang_table_row_even}</option>
+					<option value="all">{$lang_table_row_all}</option>
+				</select>
+			</div>
+
+			<div style="float: left">
+				<div><input type="button" id="insert" name="insert" value="{$lang_update}" onclick="updateAction();" /></div>
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+	</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/table/table.htm b/tinyMCE/plugins/table/table.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6c722db3b49e6fb6b16734d68aa1ab83227a9cbb
--- /dev/null
+++ b/tinyMCE/plugins/table/table.htm
@@ -0,0 +1,160 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_table_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/validate.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/table.js"></script>
+	<link href="css/table.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body id="table" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+	<form onsubmit="insertTable();return false;" action="#">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_table_general_tab}</a></span></li>
+				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_table_advanced_tab}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<fieldset>
+					<legend>{$lang_table_general_props}</legend>
+
+					  <table border="0" cellpadding="4" cellspacing="0" width="100%">
+							  <tr>
+								<td><label id="colslabel" for="cols">{$lang_table_cols}</label></td>
+								<td><input id="cols" name="cols" type="text" value="" size="3" maxlength="3" class="required number min1" /></td>
+								<td><label id="rowslabel" for="rows">{$lang_table_rows}</label></td>
+								<td><input id="rows" name="rows" type="text" value="" size="3" maxlength="3" class="required number min1" /></td>
+							  </tr>
+							  <tr>
+								<td><label id="cellpaddinglabel" for="cellpadding">{$lang_table_cellpadding}</label></td>
+								<td><input id="cellpadding" name="cellpadding" type="text" value="" size="3" maxlength="3" class="number" /></td>
+								<td><label id="cellspacinglabel" for="cellspacing">{$lang_table_cellspacing}</label></td>
+								<td><input id="cellspacing" name="cellspacing" type="text" value="" size="3" maxlength="3" class="number" /></td>
+							  </tr>
+							  <tr>
+								<td><label id="alignlabel" for="align">{$lang_table_align}</label></td>
+								<td><select id="align" name="align">
+									<option value="">{$lang_not_set}</option>
+									<option value="center">{$lang_table_align_middle}</option>
+									<option value="left">{$lang_table_align_left}</option>
+									<option value="right">{$lang_table_align_right}</option>
+								  </select></td>
+								<td><label id="borderlabel" for="border">{$lang_table_border}</label></td>
+								<td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="changedBorder();" class="number" /></td>
+							  </tr>
+							  <tr id="width_row">
+								<td><label id="widthlabel" for="width">{$lang_table_width}</label></td>
+								<td><input name="width" type="text" id="width" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td>
+								<td><label id="heightlabel" for="height">{$lang_table_height}</label></td>
+								<td><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td>
+							  </tr>
+							  <tr id="styleSelectRow">
+								<td><label id="classlabel" for="class">{$lang_class_name}</label></td>
+								<td colspan="3">
+								 <select id="class" name="class">
+									<option value="" selected>{$lang_not_set}</option>
+								 </select></td>
+							  </tr>
+							  <tr>
+								<td class="column1"><label for="caption">{$lang_table_caption}</label></td> 
+								<td><input id="caption" name="caption" type="checkbox" value="true" /></td> 
+							  </tr>
+							</table>
+				</fieldset>
+			</div>
+
+			<div id="advanced_panel" class="panel">
+				<fieldset>
+					<legend>{$lang_table_advanced_props}</legend>
+
+					<table border="0" cellpadding="0" cellspacing="4">
+						<tr>
+							<td class="column1"><label for="id">{$lang_table_id}</label></td> 
+							<td><input id="id" name="id" type="text" value="" class="advfield" /></td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="summary">{$lang_table_summary}</label></td> 
+							<td><input id="summary" name="summary" type="text" value="" class="advfield" /></td> 
+						</tr>
+
+						<tr>
+							<td><label for="style">{$lang_table_style}</label></td>
+							<td><input type="text" id="style" name="style" value="" class="advfield" onchange="changedStyle();" /></td>
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="dir">{$lang_table_langdir}</label></td> 
+							<td>
+								<select id="dir" name="dir" class="advfield"> 
+										<option value="">{$lang_not_set}</option> 
+										<option value="ltr">{$lang_table_ltr}</option> 
+										<option value="rtl">{$lang_table_rtl}</option> 
+								</select>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label id="langlabel" for="lang">{$lang_table_langcode}</label></td> 
+							<td>
+								<input id="lang" name="lang" type="text" value="" class="advfield" />
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="backgroundimage">{$lang_table_bgimage}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="backgroundimage" name="backgroundimage" type="text" value="" class="advfield" onchange="changedBackgroundImage();" /></td>
+										<td id="backgroundimagebrowsercontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="bordercolor">{$lang_table_bordercolor}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>
+										<td id="bordercolor_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+
+						<tr>
+							<td class="column1"><label for="bgcolor">{$lang_table_bgcolor}</label></td> 
+							<td>
+								<table border="0" cellpadding="0" cellspacing="0">
+									<tr>
+										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
+										<td id="bgcolor_pickcontainer">&nbsp;</td>
+									</tr>
+								</table>
+							</td> 
+						</tr>
+					</table>
+				</fieldset>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div style="float: left">
+				<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertTable();" />
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+	</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/template/blank.htm b/tinyMCE/plugins/template/blank.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7d2f992a469740e425ea1f3676c687831a7fc6f9
--- /dev/null
+++ b/tinyMCE/plugins/template/blank.htm
@@ -0,0 +1,23 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>blank_page</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+	<script type="text/javascript">
+		var tinyMCE = parent.tinyMCE, css = tinyMCE.getParam("content_css").split(','), i, u;
+
+		// Load content CSS files
+		for (i=0; i<css.length; i++) {
+			u = css[i];
+
+			// Fix relative
+			if (u.charAt(0) != '/' && u.indexOf('://') == -1)
+				u = tinyMCE.documentBasePath + "/" + u;
+
+			document.write('<link href="' + u + '" rel="stylesheet" type="text/css" />');
+		}
+	</script>
+</head>
+<body id="mceTemplatePreview">
+
+</body>
+</html>
diff --git a/tinyMCE/plugins/template/css/template.css b/tinyMCE/plugins/template/css/template.css
new file mode 100644
index 0000000000000000000000000000000000000000..2d23a4938c221b702c6e387d0eb8dab2386f252a
--- /dev/null
+++ b/tinyMCE/plugins/template/css/template.css
@@ -0,0 +1,23 @@
+#frmbody {
+	padding: 10px;
+	background-color: #FFF;
+	border: 1px solid #CCC;
+}
+
+.frmRow {
+	margin-bottom: 10px;
+}
+
+#templatesrc {
+	border: none;
+	width: 320px;
+	height: 240px;
+}
+
+.title {
+	padding-bottom: 5px;
+}
+
+.mceActionPanel {
+	padding-top: 5px;
+}
diff --git a/tinyMCE/plugins/template/editor_plugin.js b/tinyMCE/plugins/template/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..7621af3155fa994b40812a7867c9e354bf21be6c
--- /dev/null
+++ b/tinyMCE/plugins/template/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('template');var TinyMCE_TemplatePlugin={getInfo:function(){return{longname:'Template plugin',author:'Moxiecode Systems AB',authorurl:'http://www.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){var cdate,mdate,content,x=0,key,value,rvals,ds=inst.getData('template');cdate=tinyMCE.getParam("template_cdate_classes",'').split(/\s+/);mdate=tinyMCE.getParam("template_mdate_classes",'').split(/\s+/);content=tinyMCE.getParam("template_selected_content_classes",'').split(/\s+/);for(x=0;x<cdate.length;x++)TinyMCE_TemplatePlugin.functions[cdate[x]]=TinyMCE_TemplatePlugin.functions['cdate'];for(x=0;x<mdate.length;x++)TinyMCE_TemplatePlugin.functions[mdate[x]]=TinyMCE_TemplatePlugin.functions['mdate'];for(x=0;x<content.length;x++)TinyMCE_TemplatePlugin.functions[content[x]]=TinyMCE_TemplatePlugin.functions['selectedContent'];rvals=tinyMCE.getParam("template_replace_values",false);for(key in rvals){value=rvals[key];if(typeof value=="function")TinyMCE_TemplatePlugin.functions[key]=value;else TinyMCE_TemplatePlugin.functions[key]=TinyMCE_TemplatePlugin.functions['generateReplacer'](value)}rvals=tinyMCE.getParam("template_replace_values",false);ds.replace_items={};for(key in rvals)ds.replace_items[key]=rvals[key];inst.addShortcut('ctrl','t','lang_template_desc','mceTemplate');ds.currentAction="insert";ds.currentTmplNode=null},getControlHTML:function(cn){switch(cn){case"template":return tinyMCE.getButtonHTML(cn,'lang_template_desc','{$pluginurl}/images/template.gif','mceTemplate',true)}return""},execCommand:function(editor_id,element,command,user_interface,value){var nodeArray,current,newTmpl,x,inst=tinyMCE.getInstanceById(editor_id),ds=inst.getData('template'),telm;switch(command){case"mceTemplate":if(user_interface){tinyMCE.openWindow({file:'../../plugins/template/template.htm',width:tinyMCE.getParam('template_popup_width',750),height:tinyMCE.getParam('template_popup_height',600)},{editor_id:editor_id,resizable:"yes",scrollbars:"no",pluginObj:TinyMCE_TemplatePlugin})}else{telm=TinyMCE_TemplatePlugin._convertToNode(value.body);nodeArray=tinyMCE.selectElements(telm,'div',function(n){return tinyMCE.hasCSSClass(n,TinyMCE_TemplatePlugin.TMPL)});telm=nodeArray.length>0?nodeArray[0]:null;nodeArray=[];if(ds.currentAction=="insert"){if(telm){tinyMCE.execCommand('mceBeginUndoLevel');ds.currentAction="insert-new";TinyMCE_TemplatePlugin._insertTemplate(editor_id,telm,value.title,value.tsrc,true);ds.currentAction=="insert";tinyMCE.execCommand('mceEndUndoLevel');tinyMCE.execInstanceCommand(editor_id,'mceCleanup',false)}else tinyMCE.execCommand('mceInsertContent',false,this._replaceValues(value.body))}else{nodeArray=TinyMCE_TemplatePlugin._collectTemplateElements(ds.currentTmplNode);current=[];newTmpl=[];tinyMCE.getNodeTree(telm,newTmpl);for(x=0;x<nodeArray.length;x++)tinyMCE.getNodeTree(nodeArray[x],current);var _test=function(elm){var replaced=true;if(elm.className){var names=elm.className.split(/\s+/),c,n;for(c=0;c<names.length;c++){if(names[c].match(/^mce/i))continue;for(n=0;n<newTmpl.length;n++){replaced=false;if(newTmpl[n].className&&newTmpl[n].className.match(new RegExp(names[c],"gi"))){newTmpl[n].innerHTML=elm.innerHTML;replaced=true;break}}}}return replaced};var cont=true;var asked=false;for(x=0;x<current.length;x++){if(!_test(current[x])){cont=(asked||confirm("The new template has less elements than the currently selected content.\nIf you proceed you will loose content.\nAre you sure you want to proceed?","Proceed?"));asked=true;if(!cont)break}};if(cont){tinyMCE.execCommand('mceBeginUndoLevel');TinyMCE_TemplatePlugin._replaceTemplateContent(current[0],editor_id,telm,value.title,value.tsrc);tinyMCE.execCommand('mceEndUndoLevel');tinyMCE.execInstanceCommand(editor_id,'mceCleanup',false)}}tinyMCE.triggerNodeChange(true)}return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){var inst=tinyMCE.getInstanceById(editor_id),ds=inst.getData('template');if(tinyMCE.hasCSSClass(node,TinyMCE_TemplatePlugin.TMPL_ELEMENT)||tinyMCE.hasCSSClass(node.parentNode,TinyMCE_TemplatePlugin.TMPL_ELEMENT)){tinyMCE.switchClass(editor_id+'_template','mceButtonSelected');ds.currentAction="update";ds.currentTmplNode=node;return true}ds.currentAction="insert";ds.currentTmplNode=null;tinyMCE.switchClass(editor_id+'_template','mceButtonNormal');return false},cleanup:function(type,content,inst){var nodes=[];switch(type){case"get_from_editor":content=content.replace(new RegExp('<div class="'+TinyMCE_TemplatePlugin.TMPL+'">','gi'),'<!-- '+TinyMCE_TemplatePlugin.TMPL_BEGINS+' -->');content=content.replace(new RegExp('<div class="'+TinyMCE_TemplatePlugin.TMPL+'">(\s|&nbsp;|&#160;)?(<!-- '+TinyMCE_TemplatePlugin.TMPL_ENDS+' -->|\s)?</div>','gi'),'');content=content.replace(new RegExp('<!-- '+TinyMCE_TemplatePlugin.TMPL_ENDS+' --></div>','gi'),'<!-- '+TinyMCE_TemplatePlugin.TMPL_ENDS+' -->');break;case"insert_to_editor":content=content.replace(new RegExp('<!-- '+TinyMCE_TemplatePlugin.TMPL_BEGINS+' -->','gi'),'<div class="'+TinyMCE_TemplatePlugin.TMPL+'">');content=content.replace(new RegExp('<!-- '+TinyMCE_TemplatePlugin.TMPL_ENDS+' -->','gi'),'<!-- '+TinyMCE_TemplatePlugin.TMPL_ENDS+' --></div>');break;case"get_from_editor_dom":nodes=tinyMCE.selectNodes(content,function(n){return tinyMCE.hasCSSClass(n,TinyMCE_TemplatePlugin.TMPL_ELEMENT)});TinyMCE_TemplatePlugin._applyFunctions(nodes,type);break;case"insert_to_editor_dom":nodes=tinyMCE.selectNodes(content,function(n){return tinyMCE.hasCSSClass(n,TinyMCE_TemplatePlugin.TMPL_ELEMENT)});TinyMCE_TemplatePlugin._applyFunctions(nodes,type);break}return content},_convertToNode:function(html){var elm=document.createElement('div');elm.innerHTML=html;return elm},_prepareTemplateContent:function(elms){var x,n,nodes=[];if(!elms)return{};if(!elms.length)elms=[elms];for(x=0;x<elms.length;x++)tinyMCE.getNodeTree(elms[x],nodes,1);for(n=0;n<nodes.length;n++){tinyMCE.addCSSClass(nodes[n],TinyMCE_TemplatePlugin.TMPL_ELEMENT);TinyMCE_TemplatePlugin._applyFunctions(nodes[n],TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT)}return elms},_replaceValues:function(s){var t=this,ds=tinyMCE.selectedInstance.getData('template');return s.replace(/\{\$([^\}]+)\}/g,function(a,b){var it=ds.replace_items[b];if(it){if(typeof(it)!='function')return it}return b})},_applyFunctions:function(elms,editor_event){var x,elm,names,c,f;if(!elms)return{};if(!elms.length)elms=[elms];for(x=0;x<elms.length;x++){elm=elms[x];if(elm.className){names=elm.className.split(/\s+/);for(c=0;c<names.length;c++){if(names[c]==TinyMCE_TemplatePlugin.TMPL_ELEMENT)continue;f=(TinyMCE_TemplatePlugin.functions[names[c]]?TinyMCE_TemplatePlugin.functions[names[c]]:TinyMCE_TemplatePlugin.functions['blank']);f(elm,editor_event)}}}return elms},_collectTemplateElements:function(node){var nodeArray=[],p;p=tinyMCE.getParentElement(node,'DIV',function(n){return tinyMCE.hasCSSClass(n,TinyMCE_TemplatePlugin.TMPL)});if(p)tinyMCE.getNodeTree(p,nodeArray);return nodeArray},_replaceTemplateContent:function(currentNode,editor_id,newTemplate,title,tsrc){TinyMCE_TemplatePlugin._deleteTemplateContent(currentNode);TinyMCE_TemplatePlugin._insertTemplate(editor_id,newTemplate,title,tsrc,false)},_deleteTemplateContent:function(node){var p=tinyMCE.getParentElement(node,'DIV',function(n){return tinyMCE.hasCSSClass(n,TinyMCE_TemplatePlugin.TMPL)});if(p)p.parentNode.removeChild(p,true)},_insertTemplate:function(editor_id,elm,title,tsrc,incComments){var html;TinyMCE_TemplatePlugin._prepareTemplateContent(elm);html='<div class="'+TinyMCE_TemplatePlugin.TMPL+'">';html+=elm.innerHTML;html+='<!-- '+TinyMCE_TemplatePlugin.TMPL_ENDS+' --></div>';tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,html)},functions:{blank:function(elm,editor_event){},cdate:function(elm,editor_event){var d,dsrc;if(editor_event!=TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT)return;d=new Date();dsrc=elm.innerHTML.match(new RegExp("<!-- "+TinyMCE_TemplatePlugin.TMPL_DATE_SRC_ATTR+":(.*)  -->","gi"));if(dsrc)d=new Date(RegExp.$1);elm.innerHTML=TinyMCE_TemplatePlugin._getDateTime(d,tinyMCE.getParam("template_cdate_format",tinyMCE.getLang("lang_template_def_date_format")));elm.innerHTML+="<!-- "+TinyMCE_TemplatePlugin.TMPL_DATE_SRC_ATTR+":"+d.toUTCString()+"  -->"},mdate:function(elm,editor_event){var d=new Date();elm.innerHTML=TinyMCE_TemplatePlugin._getDateTime(d,tinyMCE.getParam("template_mdate_format",tinyMCE.getLang("lang_template_def_date_format")))},selectedContent:function(elm,editor_event){var ds=tinyMCE.selectedInstance.getData('template');if(editor_event!=TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT)return;if(ds.currentAction=="insert-new"&&!tinyMCE.hasCSSClass(elm,TinyMCE_TemplatePlugin.TMPL_SEL_HTML_DONE)){elm.innerHTML=tinyMCE.selectedInstance.selection.getSelectedHTML();tinyMCE.addCSSClass(elm,TinyMCE_TemplatePlugin.TMPL_SEL_HTML_DONE)}},generateReplacer:function(s){return function(elm,editor_event){elm.innerHTML=""+s}}},_getDateTime:function(d,fmt){if(!fmt)return"";function addZeros(value,len){var i;value=""+value;if(value.length<len){for(i=0;i<(len-value.length);i++)value="0"+value}return value}fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+tinyMCE.getLang("lang_template_months_long")[d.getMonth()]);fmt=fmt.replace("%b",""+tinyMCE.getLang("lang_template_months_short")[d.getMonth()]);fmt=fmt.replace("%A",""+tinyMCE.getLang("lang_template_day_long")[d.getDay()]);fmt=fmt.replace("%a",""+tinyMCE.getLang("lang_template_day_short")[d.getDay()]);fmt=fmt.replace("%%","%");return fmt},TMPL_ELEMENT:'mceTmplElm',TMPL:'mceTmpl',TMPL_BEGINS:'mceTmplBegins',TMPL_SEL_HTML_DONE:'mceSelHTMLDone',TMPL_ENDS:'mceTmplEnds',TMPL_DATE_SRC_ATTR:'mcetmpldtesrc',TMPL_TEMPLATE_EVENT:'prepare_template'};tinyMCE.addPlugin("template",TinyMCE_TemplatePlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/template/editor_plugin_src.js b/tinyMCE/plugins/template/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..8daddd9f1ff043c44e27339870b51522f75584fe
--- /dev/null
+++ b/tinyMCE/plugins/template/editor_plugin_src.js
@@ -0,0 +1,551 @@
+/**
+ * $Id: editor_plugin_src.js 162 2007-01-03 16:16:52Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+tinyMCE.importPluginLanguagePack('template');
+
+var TinyMCE_TemplatePlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Template plugin',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://www.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		var cdate, mdate, content, x = 0, key, value, rvals, ds = inst.getData('template');
+
+		// ensure the required elements and sttributes are added
+		//inst.cleanup.addRuleStr('*[' + TinyMCE_TemplatePlugin.TMPL_DATE_SRC_ATTR + '],div[title,tsrc]');
+
+		//setup template content functions
+		// creation date and modified date classes
+		cdate = tinyMCE.getParam("template_cdate_classes", '').split(/\s+/);
+		mdate = tinyMCE.getParam("template_mdate_classes", '').split(/\s+/);
+
+		// classes that specify where selected content should go
+		content = tinyMCE.getParam("template_selected_content_classes", '').split(/\s+/);
+
+		for (x = 0; x < cdate.length; x++)
+			TinyMCE_TemplatePlugin.functions[cdate[x]] = TinyMCE_TemplatePlugin.functions['cdate'];	
+
+		for (x = 0; x < mdate.length; x++)
+			TinyMCE_TemplatePlugin.functions[mdate[x]] = TinyMCE_TemplatePlugin.functions['mdate'];
+
+		for (x = 0; x < content.length; x++)
+			TinyMCE_TemplatePlugin.functions[content[x]] = TinyMCE_TemplatePlugin.functions['selectedContent'];
+
+		// special template functions for replacing template content
+		rvals = tinyMCE.getParam("template_replace_values", false);
+		for (key in rvals) {
+			value = rvals[key];
+
+			if (typeof value == "function")
+				TinyMCE_TemplatePlugin.functions[key] = value;
+			else
+				TinyMCE_TemplatePlugin.functions[key] = TinyMCE_TemplatePlugin.functions['generateReplacer'](value);
+		}
+
+		// Setup replace_items
+		rvals = tinyMCE.getParam("template_replace_values", false);
+		ds.replace_items = {};
+
+		for (key in rvals)
+			ds.replace_items[key] = rvals[key];
+
+		inst.addShortcut('ctrl', 't', 'lang_template_desc', 'mceTemplate');
+
+		// Setup data storage
+		ds.currentAction = "insert";
+		ds.currentTmplNode = null;
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "template":
+				return tinyMCE.getButtonHTML(cn, 'lang_template_desc', '{$pluginurl}/images/template.gif', 'mceTemplate', true);
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		var nodeArray, current, newTmpl, x, inst = tinyMCE.getInstanceById(editor_id), ds = inst.getData('template'), telm;
+
+		switch (command) {
+			case "mceTemplate":
+				if (user_interface) {
+					// called from toolbar button - show the popup
+					tinyMCE.openWindow({
+						file : '../../plugins/template/template.htm', // Relative to theme
+						width : tinyMCE.getParam('template_popup_width', 750),
+						height : tinyMCE.getParam('template_popup_height', 600)
+					}, {editor_id : editor_id, resizable : "yes", scrollbars : "no", pluginObj : TinyMCE_TemplatePlugin});
+				} else {
+					// internal command do the template stuff
+
+					// get the returned HTML string from the pop-up and appened it to a DIV element
+					telm = TinyMCE_TemplatePlugin._convertToNode(value.body);
+
+					// Find template body
+					nodeArray = tinyMCE.selectElements(telm, 'div', function(n) {
+						return tinyMCE.hasCSSClass(n, TinyMCE_TemplatePlugin.TMPL);
+					});
+
+					telm = nodeArray.length > 0 ? nodeArray[0] : null;
+					nodeArray = [];
+
+					if (ds.currentAction == "insert") {
+						//insert new template after applying all the template content functions
+
+						// Is it a template or snippet
+						if (telm) {
+							tinyMCE.execCommand('mceBeginUndoLevel');
+							ds.currentAction = "insert-new";
+							TinyMCE_TemplatePlugin._insertTemplate(editor_id, telm, value.title, value.tsrc, true);
+							ds.currentAction == "insert";
+							tinyMCE.execCommand('mceEndUndoLevel');
+							tinyMCE.execInstanceCommand(editor_id, 'mceCleanup', false);
+						} else
+							tinyMCE.execCommand('mceInsertContent', false, this._replaceValues(value.body));
+					} else {
+						// First collect the selected template in the editor
+						nodeArray = TinyMCE_TemplatePlugin._collectTemplateElements(ds.currentTmplNode);
+						current = [];
+						newTmpl = [];
+						tinyMCE.getNodeTree(telm, newTmpl);
+
+						for (x=0; x<nodeArray.length; x++)
+							tinyMCE.getNodeTree(nodeArray[x], current);
+
+						/** 
+						 * inner function used in the loop below.
+						 * compares the supplied HTML element to the new template to:
+						 * - find a match with the new template and copy the element's content over
+						 * - find no match and indicate content will be lost
+						 */
+						var _test = function(elm) {
+							var replaced = true;
+
+							if (elm.className) {
+								var names = elm.className.split(/\s+/), c, n;
+
+								for (c = 0; c<names.length; c++) {
+									if (names[c].match(/^mce/i))
+										continue; // ignore all internal class names
+
+									for (n=0; n<newTmpl.length; n++){
+										replaced = false;
+
+										if (newTmpl[n].className && newTmpl[n].className.match(new RegExp(names[c], "gi"))) {
+											newTmpl[n].innerHTML = elm.innerHTML;
+											//if(tinyMCE.getAttrib(elm,TinyMCE_TemplatePlugin.TMPL_DATE_SRC_ATTR,"") != "") {
+											//	tinyMCE.setAttrib(newTmpl[n], TinyMCE_TemplatePlugin.TMPL_DATE_SRC_ATTR, tinyMCE.getAttrib(elm,TinyMCE_TemplatePlugin.TMPL_DATE_SRC_ATTR)); 
+											//}
+											replaced = true;
+											break;
+										}
+
+									}
+								}
+							}
+	
+							return replaced;
+						};
+
+						// comparison loop - first mis-match alerts user for confirmation.
+						var cont = true;
+						var asked = false;
+
+						for (x = 0; x < current.length; x++) {
+							if(!_test(current[x])) {
+								cont = (asked || confirm("The new template has less elements than the currently selected content.\nIf you proceed you will loose content.\nAre you sure you want to proceed?", "Proceed?"));
+								asked = true;
+
+								if (!cont)
+									break;
+							}
+						};
+
+						// apply replacement if allowed to
+						if (cont) {
+							tinyMCE.execCommand('mceBeginUndoLevel');
+							TinyMCE_TemplatePlugin._replaceTemplateContent(current[0], editor_id, telm, value.title, value.tsrc);
+							tinyMCE.execCommand('mceEndUndoLevel');
+							tinyMCE.execInstanceCommand(editor_id, 'mceCleanup', false);
+						}
+					}
+
+					tinyMCE.triggerNodeChange(true);
+				}
+
+				return true;
+		}
+
+		return false;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+		var inst = tinyMCE.getInstanceById(editor_id), ds = inst.getData('template');
+
+		if (tinyMCE.hasCSSClass(node, TinyMCE_TemplatePlugin.TMPL_ELEMENT) || tinyMCE.hasCSSClass(node.parentNode, TinyMCE_TemplatePlugin.TMPL_ELEMENT)) {
+			tinyMCE.switchClass(editor_id + '_template', 'mceButtonSelected');
+			ds.currentAction = "update";
+			ds.currentTmplNode = node;
+
+			return true;
+		}
+
+		ds.currentAction = "insert";
+		ds.currentTmplNode = null;
+		tinyMCE.switchClass(editor_id + '_template', 'mceButtonNormal');
+
+		return false;
+	},
+
+	cleanup : function(type, content, inst) {
+		var nodes = [];
+
+		switch (type) {
+			case "get_from_editor":
+				// replace the opening wrapper div tag with a HTML comment
+				content = content.replace(
+					new RegExp('<div class="' + TinyMCE_TemplatePlugin.TMPL + '">', 'gi'),
+					'<!-- ' + TinyMCE_TemplatePlugin.TMPL_BEGINS + ' -->'
+				);
+
+				// delete any empty template wrappers
+				content = content.replace(
+					new RegExp('<div class="' + TinyMCE_TemplatePlugin.TMPL + '">(\s|&nbsp;|&#160;)?(<!-- ' + TinyMCE_TemplatePlugin.TMPL_ENDS + ' -->|\s)?</div>', 'gi'),
+					''
+				);
+
+				// replace the closing wrapper tag
+				content = content.replace(
+					new RegExp('<!-- ' + TinyMCE_TemplatePlugin.TMPL_ENDS + ' --></div>', 'gi'),
+					'<!-- ' + TinyMCE_TemplatePlugin.TMPL_ENDS + ' -->'
+				);
+
+				break;
+
+			case "insert_to_editor":
+				// replace HTML comment with DIV wrapper
+				content = content.replace(
+					new RegExp('<!-- ' + TinyMCE_TemplatePlugin.TMPL_BEGINS + ' -->', 'gi'),
+					'<div class="' + TinyMCE_TemplatePlugin.TMPL + '">'
+				);
+
+				content = content.replace(
+					new RegExp('<!-- ' + TinyMCE_TemplatePlugin.TMPL_ENDS + ' -->', 'gi'),
+					'<!-- ' + TinyMCE_TemplatePlugin.TMPL_ENDS + ' --></div>'
+				);
+
+				break;
+
+			case "get_from_editor_dom":
+				// apply template content replacement functions
+				nodes = tinyMCE.selectNodes(content, function(n) {
+						return tinyMCE.hasCSSClass(n, TinyMCE_TemplatePlugin.TMPL_ELEMENT);
+					}
+				);
+
+				TinyMCE_TemplatePlugin._applyFunctions(nodes, type);
+
+				break;
+
+			case "insert_to_editor_dom":
+				// apply template content replacement functions
+				nodes = tinyMCE.selectNodes(content, function(n) {
+						return tinyMCE.hasCSSClass(n, TinyMCE_TemplatePlugin.TMPL_ELEMENT);
+					}
+				);
+
+				TinyMCE_TemplatePlugin._applyFunctions(nodes, type);
+
+				break;
+		}
+
+		return content;
+	},
+
+	// Private plugin internal methods
+
+	/**
+	 * Creates a HTML DIV element and sets the innerHTML to equal the temlate innerHTML so that the template can be manipulated as DOM nodes.
+	 *
+	 * @param {string} Template innerHTML
+	 * @return a HTML Element
+	 * @type HTMLElement
+	 */
+	_convertToNode : function(html) {
+		var elm = document.createElement('div');
+
+		elm.innerHTML = html;
+
+		return elm;
+	},
+
+	/**
+	 * pass an array of template html elements and they will have the template class name added and any template functions applied
+	 *
+	 * @param {array} template HTML elements
+	 * @return array of template HTML elements
+	 * @type array
+	 */
+	_prepareTemplateContent : function(elms) {
+		var x, n, nodes = [];
+
+		if (!elms)
+			return {};
+
+		if (!elms.length)
+			elms = [elms];
+
+		for (x = 0; x<elms.length; x++)
+			tinyMCE.getNodeTree(elms[x], nodes, 1);
+
+		for (n = 0; n<nodes.length; n++) {
+			tinyMCE.addCSSClass(nodes[n], TinyMCE_TemplatePlugin.TMPL_ELEMENT);
+			TinyMCE_TemplatePlugin._applyFunctions(nodes[n], TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT);
+		}
+
+		return elms;
+	},
+
+	_replaceValues : function(s) {
+		var t = this, ds = tinyMCE.selectedInstance.getData('template');
+
+		return s.replace(/\{\$([^\}]+)\}/g, function(a, b) {
+			var it = ds.replace_items[b];
+
+			if (it) {
+				// Only supports text for now
+				if (typeof(it) != 'function')
+					return it;
+			}
+
+			return b;
+		});
+	},
+
+	/**
+	 * Applies any special functions to the template elements
+	 *
+	 * @param {array} template HTML elements
+	 * @return array of template HTML elements
+	 * @type array
+	 */
+	_applyFunctions : function(elms, editor_event) {
+		var x, elm, names, c, f;
+
+		if (!elms)
+			return {};
+
+		if (!elms.length)
+			elms = [elms];
+
+		for(x = 0; x < elms.length; x++) {
+			elm = elms[x];
+
+			if (elm.className){
+				names = elm.className.split(/\s+/);
+
+				for (c = 0; c < names.length; c++){
+					if (names[c] == TinyMCE_TemplatePlugin.TMPL_ELEMENT)
+						continue;
+
+					f = (TinyMCE_TemplatePlugin.functions[names[c]] ? TinyMCE_TemplatePlugin.functions[names[c]] : TinyMCE_TemplatePlugin.functions['blank']);
+					f(elm, editor_event);
+				}
+			}
+		}
+
+		return elms;
+	},
+
+	/**
+	 * Given one node reference this function will collect all the nodes of the template to which it belongs.
+	 * It does this by finding the parent template wrapper DIV and returning all child nodes.
+	 *
+	 * @param {HTMLElement} a HTMLElement which is part of a template
+	 * @return array of template HTML elements
+	 * @type array
+	 */
+	_collectTemplateElements : function(node) {
+		var nodeArray = [], p;
+
+		p = tinyMCE.getParentElement(node, 'DIV', function(n) {
+			return tinyMCE.hasCSSClass(n, TinyMCE_TemplatePlugin.TMPL);
+		});
+
+		if (p)
+			tinyMCE.getNodeTree(p, nodeArray);
+
+		return nodeArray;
+	},
+
+	/**
+	 * Simply calls TinyMCE_TemplatePlugin._deleteTemplateContent and then TinyMCE_TemplatePlugin._insertTemplate
+	 *
+	 * @param {HTMLElement} currently selected template node in editor
+	 * @param {string} id of editor instance
+	 * @param {HTMLElement} template contents as a HTMLElement (the parent DIV wrapper)
+	 * @param {string} title of template (unused as yet)
+	 * @param {string} source URI of the template file (unused as yet)
+	 * @return array of template HTML elements
+	 * @type array
+	 */
+	_replaceTemplateContent : function(currentNode, editor_id, newTemplate, title, tsrc) {
+		TinyMCE_TemplatePlugin._deleteTemplateContent(currentNode);
+		TinyMCE_TemplatePlugin._insertTemplate(editor_id, newTemplate, title, tsrc, false);
+	},
+
+	/**
+	 * Deletes a template from the editor content
+	 * Finds the parent DIV wrapper and deletes it and all children
+	 * @param {HTMLElement} currently selected template node in editor
+	 */
+	_deleteTemplateContent : function(node) {
+		var p = tinyMCE.getParentElement(node, 'DIV', function(n) {
+			return tinyMCE.hasCSSClass(n, TinyMCE_TemplatePlugin.TMPL);
+		});
+
+		if (p)
+			p.parentNode.removeChild(p, true);
+	},
+
+	/**
+	 *  Inserts a template into the specified editor
+	 *
+	 * @param {string} id of editor instance
+	 * @param {HTMLElement} template contents as a HTMLElement (the parent DIV wrapper)
+	 * @param {string} title of template (unused as yet)
+	 * @param {string} source URI of the template file (unused as yet)
+	 */
+	_insertTemplate : function(editor_id, elm, title, tsrc, incComments) {
+		var html;
+
+		TinyMCE_TemplatePlugin._prepareTemplateContent(elm);
+
+		html = '<div class="' + TinyMCE_TemplatePlugin.TMPL + '">';
+		html += elm.innerHTML;
+		html += '<!-- ' + TinyMCE_TemplatePlugin.TMPL_ENDS + ' --></div>';
+
+		tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, html);
+	},
+
+	/**
+	 * template functions - functions for modifying template content
+	 */
+	functions : { 
+		blank : function(elm, editor_event) {},
+
+		cdate : function(elm, editor_event) {
+			var d, dsrc;
+
+			if (editor_event != TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT)
+				return;
+
+			d = new Date();
+			// find out if the creation date was previously stored
+			dsrc = elm.innerHTML.match(new RegExp("<!-- " + TinyMCE_TemplatePlugin.TMPL_DATE_SRC_ATTR + ":(.*)  -->", "gi"));
+
+			if (dsrc)
+				d = new Date(RegExp.$1);
+
+			elm.innerHTML = TinyMCE_TemplatePlugin._getDateTime(d, tinyMCE.getParam("template_cdate_format", tinyMCE.getLang("lang_template_def_date_format")));
+			//now we have to store the date value in a format easily read again, in case a future template change changes the date format...
+			elm.innerHTML += "<!-- " + TinyMCE_TemplatePlugin.TMPL_DATE_SRC_ATTR + ":" + d.toUTCString() + "  -->";
+		},
+
+		mdate : function(elm, editor_event) {
+			var d = new Date();
+			elm.innerHTML = TinyMCE_TemplatePlugin._getDateTime(d, tinyMCE.getParam("template_mdate_format", tinyMCE.getLang("lang_template_def_date_format")));
+		},
+
+		/**
+		 * This will insert the currently selected editor content into the template element.
+		 * It only does this if the template inserted is a new one and if the element does not have the special class.
+		 * The special class name prevents this from happening more than once.
+		 */
+		selectedContent : function(elm, editor_event) {
+			var ds = tinyMCE.selectedInstance.getData('template');
+	
+			if (editor_event != TinyMCE_TemplatePlugin.TMPL_TEMPLATE_EVENT)
+				return;
+
+			if (ds.currentAction == "insert-new" && !tinyMCE.hasCSSClass(elm, TinyMCE_TemplatePlugin.TMPL_SEL_HTML_DONE)) {
+				elm.innerHTML = tinyMCE.selectedInstance.selection.getSelectedHTML();
+				tinyMCE.addCSSClass(elm, TinyMCE_TemplatePlugin.TMPL_SEL_HTML_DONE);
+			}
+		},
+
+		/**
+		 * When the plugin is initialised this generates the functions that insert configured strings into template elements.
+		 */
+		generateReplacer : function(s) {
+			return function(elm, editor_event) {elm.innerHTML = "" + s;};
+		}
+	},
+
+	/**
+	 * formats a date according to the format string - straight from the 'insert date/time' plugin
+	 *
+	 * @param {Date} date object
+	 * @param {string} format string
+	 * @return formatted date
+	 * @type string
+	 */
+	_getDateTime : function(d,fmt) {
+			if (!fmt)
+				return "";
+
+			function addZeros(value, len) {
+				var i;
+
+				value = "" + value;
+
+				if (value.length < len) {
+					for (i=0; i<(len-value.length); i++)
+						value = "0" + value;
+				}
+
+				return value;
+			}
+
+			fmt = fmt.replace("%D", "%m/%d/%y");
+			fmt = fmt.replace("%r", "%I:%M:%S %p");
+			fmt = fmt.replace("%Y", "" + d.getFullYear());
+			fmt = fmt.replace("%y", "" + d.getYear());
+			fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
+			fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
+			fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
+			fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
+			fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
+			fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
+			fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
+			fmt = fmt.replace("%B", "" + tinyMCE.getLang("lang_template_months_long")[d.getMonth()]);
+			fmt = fmt.replace("%b", "" + tinyMCE.getLang("lang_template_months_short")[d.getMonth()]);
+			fmt = fmt.replace("%A", "" + tinyMCE.getLang("lang_template_day_long")[d.getDay()]);
+			fmt = fmt.replace("%a", "" + tinyMCE.getLang("lang_template_day_short")[d.getDay()]);
+			fmt = fmt.replace("%%", "%");
+
+			return fmt;
+	},
+
+	TMPL_ELEMENT : 'mceTmplElm',
+	TMPL : 'mceTmpl',
+	TMPL_BEGINS : 'mceTmplBegins',
+	TMPL_SEL_HTML_DONE : 'mceSelHTMLDone',
+	TMPL_ENDS : 'mceTmplEnds',
+	TMPL_DATE_SRC_ATTR : 'mcetmpldtesrc',
+	TMPL_TEMPLATE_EVENT : 'prepare_template'
+};
+
+tinyMCE.addPlugin("template", TinyMCE_TemplatePlugin);
diff --git a/tinyMCE/plugins/template/images/template.gif b/tinyMCE/plugins/template/images/template.gif
new file mode 100644
index 0000000000000000000000000000000000000000..58c6610fab0db28cbad9f01bfa94976365354b2e
Binary files /dev/null and b/tinyMCE/plugins/template/images/template.gif differ
diff --git a/tinyMCE/plugins/template/jscripts/template.js b/tinyMCE/plugins/template/jscripts/template.js
new file mode 100644
index 0000000000000000000000000000000000000000..4c9592739006b3ea2c1e8883ed30d7d0e345cb22
--- /dev/null
+++ b/tinyMCE/plugins/template/jscripts/template.js
@@ -0,0 +1,143 @@
+// Import external list url javascript
+var url = tinyMCE.getParam("template_external_list_url");
+if (url != null) {
+	// Fix relative
+	if (url.charAt(0) != '/' && url.indexOf('://') == -1)
+		url = tinyMCE.documentBasePath + "/" + url;
+
+	document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+var TPU = { //Template Popup Utils
+	currentTemplateHTML : null,
+	templates : [],
+	inst : tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')),
+	plugin : tinyMCE.getWindowArg('pluginObj'),
+	data : tinyMCE.selectedInstance.getData('template'),
+
+ 	init : function() {
+ 		document.forms[0].insert.value = tinyMCE.getLang('lang_' + this.data.currentAction, 'Insert', true); 
+		TPU.loadTemplatePaths();
+
+		if (this.data.currentAction == "update")
+			document.getElementById('warning').innerHTML = tinyMCE.getLang('lang_template_warning');
+
+		this.resizeInputs();
+	},
+
+ 	loadTemplatePaths : function() {
+		var tsrc, sel, x, u;
+
+ 		tsrc = tinyMCE.getParam("template_templates", false);
+ 		sel = document.getElementById('tpath');
+
+		// Setup external template list
+		if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
+			for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)
+				tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});
+		}
+
+		for (x=0; x<tsrc.length; x++) {
+			u = tsrc[x].src;
+
+			// Force absolute
+			if (u.indexOf('://') == -1 && u.indexOf('/') != 0)
+				u = tinyMCE.documentBasePath + "/" + u;
+
+			tsrc[x].src = u;
+		}
+
+		TPU.templates = tsrc;
+
+		for (x = 0; x < tsrc.length; x++)
+			sel.options[sel.options.length] = new Option(tsrc[x].title, tsrc[x].src);
+	},
+
+ 	selectTemplate : function(o) {
+		var x, d = window.frames['templatesrc'].document;
+
+		this.currentTemplateHTML = this.plugin._replaceValues(this.getFileContents(o.value));
+
+		// Force complete document
+/*		if (!/<body/gi.test(this.currentTemplateHTML)) {
+			this.currentTemplateHTML = '<html xmlns="http://www.w3.org/1999/xhtml">' + 
+				'<head>' + 
+					'<title>blank_page</title>' + 
+					'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' + 
+				'</head>' + 
+				'<body>' + 
+				this.currentTemplateHTML + 
+				'</body>' + 
+				'</html>';
+		}*/
+
+		// Write HTML to preview iframe
+		d.body.innerHTML = this.currentTemplateHTML;
+
+		// Display description
+ 		for (x = 0; x < TPU.templates.length; x++) {
+			if (TPU.templates[x].src == o.value) {
+				document.getElementById('tmpldesc').innerHTML = TPU.templates[x].description;
+				break;
+			}
+		}
+ 	},
+
+ 	insertTemplate : function() {
+		var sel, opt;
+
+		sel = document.getElementById('tpath');
+		opt = sel.options[sel.selectedIndex];
+
+		// Is it a template or snippet
+		if (TPU.currentTemplateHTML.indexOf('mceTmpl'))
+			tinyMCEPopup.execCommand('mceTemplate', false, {title : opt.text, tsrc : opt.value, body : TPU.currentTemplateHTML});
+		else
+			tinyMCEPopup.execCommand('mceInsertContent', false, TPU.currentTemplateHTML);
+
+		tinyMCEPopup.close();
+	},
+
+	getFileContents : function(u) {
+		var x, d, t = 'text/plain';
+
+		function g(s) {
+			x = 0;
+
+			try {
+				x = new ActiveXObject(s);
+			} catch (s) {
+			}
+
+			return x;
+		};
+
+		x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();
+
+		// Synchronous AJAX load file
+		x.overrideMimeType && x.overrideMimeType(t);
+		x.open("GET", u, false);
+		x.send(null);
+
+		return x.responseText;
+	},
+
+	resizeInputs : function() {
+		var wHeight, wWidth, elm;
+
+		if (!self.innerWidth) {
+			wHeight = document.body.clientHeight - 160;
+			wWidth = document.body.clientWidth - 40;
+		} else {
+			wHeight = self.innerHeight - 160;
+			wWidth = self.innerWidth - 40;
+		}
+
+		elm = document.getElementById('templatesrc');
+
+		if (elm) {
+			elm.style.height = Math.abs(wHeight) + 'px';
+			elm.style.width  = Math.abs(wWidth - 5) + 'px';
+		}
+	}
+};
diff --git a/tinyMCE/plugins/template/langs/en.js b/tinyMCE/plugins/template/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..bdbf3ffbb684b448a346024c076fc7a1aa8c28fa
--- /dev/null
+++ b/tinyMCE/plugins/template/langs/en.js
@@ -0,0 +1,16 @@
+// UK lang variables
+
+tinyMCE.addToLang('template',{
+title : 'Templates',
+label : 'Template',
+desc_label : 'Description',
+desc : 'Insert predefined template content',
+select : 'Select a template',
+preview : 'Preview',
+warning : 'Warning: Updating a template with a different one may cause data loss.',
+def_date_format : '%Y-%m-%d %H:%M:%S',
+months_long : new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"),
+months_short : new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
+day_long : new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"),
+day_short : new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
+});
diff --git a/tinyMCE/plugins/template/template.htm b/tinyMCE/plugins/template/template.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1e4a98aba69b593950f4ddc76b2a63501496f2b9
--- /dev/null
+++ b/tinyMCE/plugins/template/template.htm
@@ -0,0 +1,37 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_template_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/template.js"></script>
+	<link href="css/template.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('TPU.init();');" onresize="TPU.resizeInputs();"> 
+	<form onsubmit="insert();return false;">
+		<div id="frmbody">
+			<div class="title">{$lang_template_desc}</div>
+			<div class="frmRow"><label for="tpath" title="{$lang_template_select}">{$lang_template_label}:</label>
+			<select id="tpath" name="tpath" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="TPU.selectTemplate(this.options[this.selectedIndex]);">
+				<option value="">{$lang_template_select}...</option>
+			</select>
+			<span id="warning"></span></div>
+			<div class="frmRow"><label for="tdesc">{$lang_template_desc_label}:</label>
+			<span id="tmpldesc"></span></div>
+			<fieldset>
+				<legend>{$lang_template_preview}</legend>
+				<iframe id="templatesrc" name="templatesrc" src="blank.htm" width="690" height="400" frameborder="0"></iframe>
+			</fieldset>
+		</div>
+		
+		<div class="mceActionPanel">
+			<div style="float: left">
+				<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="TPU.insertTemplate();" />
+			</div>
+
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+	</form>
+</body> 
+</html> 
diff --git a/tinyMCE/plugins/visualchars/editor_plugin.js b/tinyMCE/plugins/visualchars/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..a358754090bebe349ace04554261df04e67aae5b
--- /dev/null
+++ b/tinyMCE/plugins/visualchars/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('visualchars');var TinyMCE_VisualCharsPlugin={getInfo:function(){return{longname:'Visual characters',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){inst.visualChars={state:false}},getControlHTML:function(cn){switch(cn){case"visualchars":return tinyMCE.getButtonHTML(cn,'lang_visualchars_desc','{$pluginurl}/images/visualchars.gif','mceVisualChars',false)}return""},execCommand:function(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id);switch(command){case"mceVisualChars":this._toggleVisualChars(editor_id,inst);return true}return false},cleanup:function(type,content,inst){if(type=="insert_to_editor_dom"||type=="get_from_editor_dom"){inst.visualChars.state=true;this._toggleVisualChars(inst.editorId,inst)}return content},_toggleVisualChars:function(editor_id,inst){var nl,i,h,d=inst.getDoc(),b=inst.getBody(),nv,s=inst.selection,bo;inst.visualChars.state=!inst.visualChars.state;bo=s.getBookmark(true);tinyMCE.switchClass(editor_id+'_visualchars',inst.visualChars.state?'mceButtonSelected':'mceButtonNormal');if(inst.visualChars.state){nl=tinyMCE.selectNodes(b,function(n){return n.nodeType==3&&n.nodeValue&&n.nodeValue.indexOf('\u00a0')!=-1});for(i=0;i<nl.length;i++){nv=nl[i].nodeValue;nv=nv.replace(/(\u00a0+)/g,'<span class="mceItemHiddenVisualChar">$1</span>');nv=nv.replace(/\u00a0/g,'\u00b7');tinyMCE.setOuterHTML(nl[i],nv,d)}}else{nl=tinyMCE.selectNodes(b,function(n){return n.nodeType==1&&n.nodeName=='SPAN'&&n.className=='mceItemHiddenVisualChar'});for(i=0;i<nl.length;i++)tinyMCE.setOuterHTML(nl[i],nl[i].innerHTML.replace(/(&middot;|\u00b7)/g,'&nbsp;'),d)}}};tinyMCE.addPlugin("visualchars",TinyMCE_VisualCharsPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/visualchars/editor_plugin_src.js b/tinyMCE/plugins/visualchars/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..fb7236de23dc1caeefe8460aef17278bdb84b47a
--- /dev/null
+++ b/tinyMCE/plugins/visualchars/editor_plugin_src.js
@@ -0,0 +1,89 @@
+/**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('visualchars');
+
+var TinyMCE_VisualCharsPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Visual characters',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		inst.visualChars = {
+			state : false
+		};
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "visualchars":
+				return tinyMCE.getButtonHTML(cn, 'lang_visualchars_desc', '{$pluginurl}/images/visualchars.gif', 'mceVisualChars', false);
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		var inst = tinyMCE.getInstanceById(editor_id);
+
+		switch (command) {
+			case "mceVisualChars":
+				this._toggleVisualChars(editor_id, inst);
+				return true;
+		}
+
+		return false;
+	},
+
+	cleanup : function(type, content, inst) {
+		if (type == "insert_to_editor_dom" || type == "get_from_editor_dom") {
+			inst.visualChars.state = true;
+			this._toggleVisualChars(inst.editorId, inst);
+		}
+
+		return content;
+	},
+
+	// Private plugin internal methods
+
+	_toggleVisualChars : function(editor_id, inst) {
+		var nl, i, h, d = inst.getDoc(), b = inst.getBody(), nv, s = inst.selection, bo;
+
+		inst.visualChars.state = !inst.visualChars.state;
+
+		bo = s.getBookmark(true);
+
+		tinyMCE.switchClass(editor_id + '_visualchars', inst.visualChars.state ? 'mceButtonSelected' : 'mceButtonNormal');
+
+		if (inst.visualChars.state) {
+			nl = tinyMCE.selectNodes(b, function(n) {return n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1;});
+
+			for (i=0; i<nl.length; i++) {
+				nv = nl[i].nodeValue;
+				nv = nv.replace(/(\u00a0+)/g, '<span class="mceItemHiddenVisualChar">$1</span>');
+				nv = nv.replace(/\u00a0/g, '\u00b7');
+				tinyMCE.setOuterHTML(nl[i], nv, d);
+			}
+		} else {
+			nl = tinyMCE.selectNodes(b, function(n) {return n.nodeType == 1 && n.nodeName == 'SPAN' && n.className == 'mceItemHiddenVisualChar';});
+
+			for (i=0; i<nl.length; i++)
+				tinyMCE.setOuterHTML(nl[i], nl[i].innerHTML.replace(/(&middot;|\u00b7)/g, '&nbsp;'), d);
+		}
+
+		//s.moveToBookmark(bo);
+	}
+};
+
+tinyMCE.addPlugin("visualchars", TinyMCE_VisualCharsPlugin);
diff --git a/tinyMCE/plugins/visualchars/images/visualchars.gif b/tinyMCE/plugins/visualchars/images/visualchars.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3b4293e066841e75c4cbe1e7f08d70770fc889d8
Binary files /dev/null and b/tinyMCE/plugins/visualchars/images/visualchars.gif differ
diff --git a/tinyMCE/plugins/visualchars/langs/en.js b/tinyMCE/plugins/visualchars/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..a82a4ee57110e5df9e1f8545427e1ba1b1312b3d
--- /dev/null
+++ b/tinyMCE/plugins/visualchars/langs/en.js
@@ -0,0 +1,5 @@
+// EN lang variables
+
+tinyMCE.addToLang('visualchars',{
+desc : 'Visual control characters on/off.'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/abbr.htm b/tinyMCE/plugins/xhtmlxtras/abbr.htm
new file mode 100644
index 0000000000000000000000000000000000000000..30b0d1c265cb647f92d33c8ebe91a0f6eaa57d83
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/abbr.htm
@@ -0,0 +1,148 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_xhtmlxtras_title_abbr_element}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/element_common.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/abbr.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onsubmit="insertAbbr();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_xhtmlxtras_general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{$lang_xhtmlxtras_events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_attrib_tab}</legend>
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{$lang_xhtmlxtras_attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{$lang_xhtmlxtras_attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{$lang_xhtmlxtras_attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="class">{$lang_xhtmlxtras_attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{$lang_xhtmlxtras_attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+								<option value="ltr">{$lang_xhtmlxtras_attribute_option_ltr}</option> 
+								<option value="rtl">{$lang_xhtmlxtras_attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{$lang_xhtmlxtras_attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_events_tab}</legend>
+
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_update}" onclick="insertAbbr();" />
+		</div>
+		<div style="float: left">
+			<input type="button" id="remove" name="remove" value="{$lang_xhtmlxtras_remove}" onclick="removeAbbr();" style="display: none;" />
+		</div>
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+
+</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/xhtmlxtras/acronym.htm b/tinyMCE/plugins/xhtmlxtras/acronym.htm
new file mode 100644
index 0000000000000000000000000000000000000000..193760e3ed8c5948de9bbc24606a09279a6b7a2a
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/acronym.htm
@@ -0,0 +1,148 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_xhtmlxtras_title_acronym_element}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/element_common.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/acronym.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onsubmit="insertAcronym();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_xhtmlxtras_general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{$lang_xhtmlxtras_events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_attrib_tab}</legend>
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{$lang_xhtmlxtras_attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{$lang_xhtmlxtras_attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{$lang_xhtmlxtras_attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="class">{$lang_xhtmlxtras_attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{$lang_xhtmlxtras_attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+								<option value="ltr">{$lang_xhtmlxtras_attribute_option_ltr}</option> 
+								<option value="rtl">{$lang_xhtmlxtras_attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{$lang_xhtmlxtras_attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_events_tab}</legend>
+
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_update}" onclick="insertAcronym();" />
+		</div>
+		<div style="float: left">
+			<input type="button" id="remove" name="remove" value="{$lang_xhtmlxtras_remove}" onclick="removeAcronym();" style="display: none;" />
+		</div>
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+
+</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/xhtmlxtras/attributes.htm b/tinyMCE/plugins/xhtmlxtras/attributes.htm
new file mode 100644
index 0000000000000000000000000000000000000000..aaf1deee7c8317bb413d7e42d38094a8a58bfda0
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/attributes.htm
@@ -0,0 +1,153 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_xhtmlxtras_attribs_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/attributes.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/attributes.css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onsubmit="insertAction();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_xhtmlxtras_attribute_attrib_tab}</a></span></li>
+			<li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{$lang_xhtmlxtras_attribute_events_tab}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_attribute_attrib_tab}</legend>
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{$lang_xhtmlxtras_attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{$lang_xhtmlxtras_attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" /></td> 
+					</tr>
+					<tr>
+						<td><label id="classlabel" for="classlist">{$lang_class_name}</label></td>
+						<td>
+							<select id="classlist" name="classlist" class="mceEditableSelect">
+								<option value="" selected>{$lang_not_set}</option>
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="class">{$lang_xhtmlxtras_attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{$lang_xhtmlxtras_attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir"> 
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+								<option value="ltr">{$lang_xhtmlxtras_option_ltr}</option> 
+								<option value="rtl">{$lang_xhtmlxtras_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{$lang_xhtmlxtras_attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" />
+						</td> 
+					</tr>
+					<tr>
+							<td><label id="tabindexlabel" for="tabindex">{$lang_xhtmlxtras_attribute_label_tabindex}</label></td>
+							<td><input type="text" id="tabindex" name="tabindex" value="" /></td>
+						</tr>
+
+						<tr>
+							<td><label id="accesskeylabel" for="accesskey">{$lang_xhtmlxtras_attribute_label_accesskey}</label></td>
+							<td><input type="text" id="accesskey" name="accesskey" value="" /></td>
+						</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_attribute_events_tab}</legend>
+
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertAction();" />
+		</div>
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+
+</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/xhtmlxtras/cite.htm b/tinyMCE/plugins/xhtmlxtras/cite.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c72538ca502948417d877cd4a0f0ee26a7a35f59
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/cite.htm
@@ -0,0 +1,148 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_xhtmlxtras_title_cite_element}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/element_common.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/cite.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onsubmit="insertCite();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_xhtmlxtras_general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{$lang_xhtmlxtras_events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_attrib_tab}</legend>
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{$lang_xhtmlxtras_attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{$lang_xhtmlxtras_attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{$lang_xhtmlxtras_attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="class">{$lang_xhtmlxtras_attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{$lang_xhtmlxtras_attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+								<option value="ltr">{$lang_xhtmlxtras_attribute_option_ltr}</option> 
+								<option value="rtl">{$lang_xhtmlxtras_attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{$lang_xhtmlxtras_attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_events_tab}</legend>
+
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_update}" onclick="insertCite();" />
+		</div>
+		<div style="float: left">
+			<input type="button" id="remove" name="remove" value="{$lang_xhtmlxtras_remove}" onclick="removeCite();" style="display: none;" />
+		</div>
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+
+</form>
+</body>
+</html>
diff --git a/tinyMCE/plugins/xhtmlxtras/css/attributes.css b/tinyMCE/plugins/xhtmlxtras/css/attributes.css
new file mode 100644
index 0000000000000000000000000000000000000000..9a6a235c35fc076e57595a8aa4a8b79f88e4496e
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/css/attributes.css
@@ -0,0 +1,11 @@
+.panel_wrapper div.current {
+	height: 290px;
+}
+
+#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey {
+	width: 200px;
+}
+
+#events_panel input {
+	width: 200px;
+}
diff --git a/tinyMCE/plugins/xhtmlxtras/css/popup.css b/tinyMCE/plugins/xhtmlxtras/css/popup.css
new file mode 100644
index 0000000000000000000000000000000000000000..ecdc370a79270761d661c51dfa5918cc1223a74b
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/css/popup.css
@@ -0,0 +1,46 @@
+a.mceButtonNormal img, a.mceButtonSelected img {border: 1px solid #F0F0EE !important;}
+a.mceButtonNormal img:hover, a.mceButtonSelected img:hover {border: 1px solid #0A246A !important;  cursor: default;  background-color: #B6BDD2;}
+
+img {
+	border: 0;
+}
+
+input.field, select.field {
+	width: 200px;
+}
+
+input.picker {
+	width: 179px;
+	margin-left: 5px;
+}
+
+input.disabled {
+	border-color: #F2F2F2;
+}
+
+img.picker {
+	vertical-align: text-bottom;
+	cursor: pointer;
+}
+
+h1 {
+	padding: 0 0 5px 0;
+}
+
+#remove {
+	font-weight: bold;
+	width: 90px;
+	height: 21px;
+	border: 0px;
+	background-image: url('../images/remove_button_bg.gif');
+	cursor: pointer;
+	margin-left: 3px;
+}
+
+.panel_wrapper div.current {
+	height: 160px;
+}
+
+#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {
+	height: 220px;
+}
diff --git a/tinyMCE/plugins/xhtmlxtras/css/xhtmlxtras.css b/tinyMCE/plugins/xhtmlxtras/css/xhtmlxtras.css
new file mode 100644
index 0000000000000000000000000000000000000000..6838d9025156e525d3a83819eb83b108a1490bfc
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/css/xhtmlxtras.css
@@ -0,0 +1,24 @@
+ins {
+	border-bottom: 1px solid green;
+	text-decoration: none;
+	color: green;
+}
+
+del {
+	color: Red;
+	text-decoration: line-through;
+}
+
+cite {
+	border-bottom: 1px dashed blue;
+}
+
+acronym {
+	border-bottom: 1px dotted #CCC;
+	cursor: help;
+}
+
+abbr, html\:abbr {
+	border-bottom: 1px dashed #CCC;
+	cursor: help;
+}
diff --git a/tinyMCE/plugins/xhtmlxtras/del.htm b/tinyMCE/plugins/xhtmlxtras/del.htm
new file mode 100644
index 0000000000000000000000000000000000000000..11a4d185296ad6f7d93ddc12bb567ea3de898156
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/del.htm
@@ -0,0 +1,169 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_xhtmlxtras_title_del_element}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/element_common.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/del.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+	<base target="_self" />
+</head>
+<body id="xhtmlxtrasins" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onsubmit="insertDel();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_xhtmlxtras_general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{$lang_xhtmlxtras_events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_general_tab}</legend>
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="datetimelabel" for="datetime">{$lang_xhtmlxtras_attribute_label_datetime}</label>:</td>
+						<td>
+							<table border="0" cellspacing="0" cellpadding="0">
+								<tr> 
+									<td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field" /></td> 
+									<td><a href="javascript:insertDateTime('datetime');" class="mceButtonNormal"><img src="images/date_time.gif" class="picker" alt="{$lang_xhtmlxtras_insert_date}" title="{$lang_xhtmlxtras_insert_date}" /></a></td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="citelabel" for="cite">{$lang_xhtmlxtras_attribute_label_cite}</label>:</td>
+						<td><input id="cite" name="cite" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_attrib_tab}</legend>
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{$lang_xhtmlxtras_attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{$lang_xhtmlxtras_attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{$lang_xhtmlxtras_attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="class">{$lang_xhtmlxtras_attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{$lang_xhtmlxtras_attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+								<option value="ltr">{$lang_xhtmlxtras_attribute_option_ltr}</option> 
+								<option value="rtl">{$lang_xhtmlxtras_attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{$lang_xhtmlxtras_attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_events_tab}</legend>
+
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_update}" onclick="insertDel();" />
+		</div>
+		<div style="float: left">
+			<input type="button" id="remove" name="remove" value="{$lang_xhtmlxtras_remove}" onclick="removeDel();" style="display: none;" />
+		</div>
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+
+</form>
+
+</body>
+</html>
diff --git a/tinyMCE/plugins/xhtmlxtras/editor_plugin.js b/tinyMCE/plugins/xhtmlxtras/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..8fa805516079bba21bb973b15648d956d203ac09
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/editor_plugin.js
@@ -0,0 +1 @@
+tinyMCE.importPluginLanguagePack('xhtmlxtras');var TinyMCE_XHTMLXtrasPlugin={getInfo:function(){return{longname:'XHTML Xtras Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/xhtmlxtras/css/xhtmlxtras.css")},getControlHTML:function(cn){switch(cn){case"cite":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_cite_desc','{$pluginurl}/images/cite.gif','mceCite',true);case"acronym":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_acronym_desc','{$pluginurl}/images/acronym.gif','mceAcronym',true);case"abbr":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_abbr_desc','{$pluginurl}/images/abbr.gif','mceAbbr',true);case"del":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_del_desc','{$pluginurl}/images/del.gif','mceDel',true);case"ins":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_ins_desc','{$pluginurl}/images/ins.gif','mceIns',true);case"attribs":return tinyMCE.getButtonHTML(cn,'lang_xhtmlxtras_attribs_desc','{$pluginurl}/images/attribs.gif','mceAttributes',true)}return""},execCommand:function(editor_id,element,command,user_interface,value){var template,inst,elm;switch(command){case"mceCite":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/cite.htm';template['width']=350;template['height']=250;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceAcronym":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/acronym.htm';template['width']=350;template['height']=250;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceAbbr":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/abbr.htm';template['width']=350;template['height']=250;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceIns":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/ins.htm';template['width']=350;template['height']=310;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceDel":if(!this._anySel(editor_id))return true;template=new Array();template['file']='../../plugins/xhtmlxtras/del.htm';template['width']=350;template['height']=310;tinyMCE.openWindow(template,{editor_id:editor_id});return true;case"mceAttributes":inst=tinyMCE.getInstanceById(editor_id);elm=inst.getFocusElement();if(elm&&elm.nodeName!=='BODY'&&elm.className.indexOf('mceItem')==-1){tinyMCE.openWindow({file:'../../plugins/xhtmlxtras/attributes.htm',width:380,height:370},{editor_id:editor_id})}return true}return false},cleanup:function(type,content,inst){if(type=='insert_to_editor'&&tinyMCE.isIE&&!tinyMCE.isOpera){content=content.replace(/<abbr([^>]+)>/gi,'<html:ABBR $1>');content=content.replace(/<\/abbr>/gi,'</html:ABBR>')}return content},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){var elm=tinyMCE.getParentElement(node);if(node==null)return;tinyMCE.switchClass(editor_id+'_attribs','mceButtonDisabled');if(!any_selection){tinyMCE.switchClass(editor_id+'_cite','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_acronym','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_abbr','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_del','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_ins','mceButtonDisabled')}else{tinyMCE.switchClass(editor_id+'_cite','mceButtonNormal');tinyMCE.switchClass(editor_id+'_acronym','mceButtonNormal');tinyMCE.switchClass(editor_id+'_abbr','mceButtonNormal');tinyMCE.switchClass(editor_id+'_del','mceButtonNormal');tinyMCE.switchClass(editor_id+'_ins','mceButtonNormal')}if(elm&&elm.nodeName!='BODY'&&elm.className.indexOf('mceItem')==-1)tinyMCE.switchClass(editor_id+'_attribs','mceButtonNormal');switch(node.nodeName){case"CITE":tinyMCE.switchClass(editor_id+'_cite','mceButtonSelected');return true;case"ACRONYM":tinyMCE.switchClass(editor_id+'_acronym','mceButtonSelected');return true;case"abbr":case"HTML:ABBR":case"ABBR":tinyMCE.switchClass(editor_id+'_abbr','mceButtonSelected');return true;case"DEL":tinyMCE.switchClass(editor_id+'_del','mceButtonSelected');return true;case"INS":tinyMCE.switchClass(editor_id+'_ins','mceButtonSelected');return true}return true},_anySel:function(editor_id){var inst=tinyMCE.getInstanceById(editor_id),t=inst.selection.getSelectedText(),pe;pe=tinyMCE.getParentElement(inst.getFocusElement(),'CITE,ACRONYM,ABBR,HTML:ABBR,DEL,INS');return pe||inst.getFocusElement().nodeName=="IMG"||(t&&t.length>0)}};tinyMCE.addPlugin("xhtmlxtras",TinyMCE_XHTMLXtrasPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/xhtmlxtras/editor_plugin_src.js b/tinyMCE/plugins/xhtmlxtras/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..7e73466ab05d26bacee9e58061c3ad027d6ea954
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/editor_plugin_src.js
@@ -0,0 +1,199 @@
+ /**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode - based on work by Andrew Tetlaw
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('xhtmlxtras');
+
+var TinyMCE_XHTMLXtrasPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'XHTML Xtras Plugin',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	initInstance : function(inst) {
+		tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/xhtmlxtras/css/xhtmlxtras.css");
+	},
+
+	getControlHTML : function(cn) {
+		switch (cn) {
+			case "cite":
+				return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_cite_desc', '{$pluginurl}/images/cite.gif', 'mceCite', true);
+
+			case "acronym":
+				return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_acronym_desc', '{$pluginurl}/images/acronym.gif', 'mceAcronym', true);
+
+			case "abbr":
+				return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_abbr_desc', '{$pluginurl}/images/abbr.gif', 'mceAbbr', true);
+
+			case "del":
+				return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_del_desc', '{$pluginurl}/images/del.gif', 'mceDel', true);
+
+			case "ins":
+				return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_ins_desc', '{$pluginurl}/images/ins.gif', 'mceIns', true);
+
+			case "attribs":
+				return tinyMCE.getButtonHTML(cn, 'lang_xhtmlxtras_attribs_desc', '{$pluginurl}/images/attribs.gif', 'mceAttributes', true);
+		}
+
+		return "";
+	},
+
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		var template, inst, elm;
+
+		switch (command) {
+			case "mceCite":
+				if (!this._anySel(editor_id))
+					return true;
+
+				template = new Array();
+				template['file'] = '../../plugins/xhtmlxtras/cite.htm';
+				template['width'] = 350;
+				template['height'] = 250;
+				tinyMCE.openWindow(template, {editor_id : editor_id});
+				return true;
+
+			case "mceAcronym":
+				if (!this._anySel(editor_id))
+					return true;
+
+				template = new Array();
+				template['file'] = '../../plugins/xhtmlxtras/acronym.htm';
+				template['width'] = 350;
+				template['height'] = 250;
+				tinyMCE.openWindow(template, {editor_id : editor_id});
+				return true;
+
+			case "mceAbbr":
+				if (!this._anySel(editor_id))
+					return true;
+
+				template = new Array();
+				template['file'] = '../../plugins/xhtmlxtras/abbr.htm';
+				template['width'] = 350;
+				template['height'] = 250;
+				tinyMCE.openWindow(template, {editor_id : editor_id});
+				return true;
+
+			case "mceIns":
+				if (!this._anySel(editor_id))
+					return true;
+
+				template = new Array();
+				template['file'] = '../../plugins/xhtmlxtras/ins.htm';
+				template['width'] = 350;
+				template['height'] = 310;
+				tinyMCE.openWindow(template, {editor_id : editor_id});
+				return true;
+
+			case "mceDel":
+				if (!this._anySel(editor_id))
+					return true;
+
+				template = new Array();
+				template['file'] = '../../plugins/xhtmlxtras/del.htm';
+				template['width'] = 350;
+				template['height'] = 310;
+				tinyMCE.openWindow(template, {editor_id : editor_id});
+				return true;
+
+			case "mceAttributes":
+				inst = tinyMCE.getInstanceById(editor_id);
+				elm = inst.getFocusElement();
+
+				if (elm && elm.nodeName !== 'BODY' && elm.className.indexOf('mceItem') == -1) {
+					tinyMCE.openWindow({
+						file : '../../plugins/xhtmlxtras/attributes.htm',
+						width : 380,
+						height : 370
+					}, {editor_id : editor_id});
+				}
+
+				return true;
+		}
+
+		return false;
+	},
+
+	cleanup : function(type, content, inst) {
+		if (type == 'insert_to_editor' && tinyMCE.isIE && !tinyMCE.isOpera) {
+			content = content.replace(/<abbr([^>]+)>/gi, '<html:ABBR $1>');
+			content = content.replace(/<\/abbr>/gi, '</html:ABBR>');
+		}
+
+		return content;
+	},
+
+	handleNodeChange : function(editor_id, node, undo_index,undo_levels, visual_aid, any_selection) {
+		var elm = tinyMCE.getParentElement(node);
+
+		if (node == null)
+			return;
+
+		tinyMCE.switchClass(editor_id + '_attribs', 'mceButtonDisabled');
+
+		if (!any_selection) {
+			// Disable the buttons
+			tinyMCE.switchClass(editor_id + '_cite', 'mceButtonDisabled');
+			tinyMCE.switchClass(editor_id + '_acronym', 'mceButtonDisabled');
+			tinyMCE.switchClass(editor_id + '_abbr', 'mceButtonDisabled');
+			tinyMCE.switchClass(editor_id + '_del', 'mceButtonDisabled');
+			tinyMCE.switchClass(editor_id + '_ins', 'mceButtonDisabled');
+		} else {
+			// A selection means the buttons should be active.
+			tinyMCE.switchClass(editor_id + '_cite', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_acronym', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_abbr', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_del', 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_ins', 'mceButtonNormal');
+		}
+
+		if (elm && elm.nodeName != 'BODY' && elm.className.indexOf('mceItem') == -1)
+			tinyMCE.switchClass(editor_id + '_attribs', 'mceButtonNormal');
+
+		switch (node.nodeName) {
+			case "CITE":
+				tinyMCE.switchClass(editor_id + '_cite', 'mceButtonSelected');
+				return true;
+
+			case "ACRONYM":
+				tinyMCE.switchClass(editor_id + '_acronym', 'mceButtonSelected');
+				return true;
+
+			case "abbr": // IE
+			case "HTML:ABBR": // FF
+			case "ABBR":
+				tinyMCE.switchClass(editor_id + '_abbr', 'mceButtonSelected');
+				return true;
+
+			case "DEL":
+				tinyMCE.switchClass(editor_id + '_del', 'mceButtonSelected');
+				return true;
+
+			case "INS":
+				tinyMCE.switchClass(editor_id + '_ins', 'mceButtonSelected');
+				return true;
+		}
+
+		return true;
+	},
+
+	_anySel : function(editor_id) {
+		var inst = tinyMCE.getInstanceById(editor_id), t = inst.selection.getSelectedText(), pe;
+
+		pe = tinyMCE.getParentElement(inst.getFocusElement(), 'CITE,ACRONYM,ABBR,HTML:ABBR,DEL,INS');
+
+		return pe || inst.getFocusElement().nodeName == "IMG" || (t && t.length > 0);
+	}
+};
+
+tinyMCE.addPlugin("xhtmlxtras", TinyMCE_XHTMLXtrasPlugin);
diff --git a/tinyMCE/plugins/xhtmlxtras/images/abbr.gif b/tinyMCE/plugins/xhtmlxtras/images/abbr.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d00d83017ffb2281edf45b1165ef4b961b2be99e
Binary files /dev/null and b/tinyMCE/plugins/xhtmlxtras/images/abbr.gif differ
diff --git a/tinyMCE/plugins/xhtmlxtras/images/acronym.gif b/tinyMCE/plugins/xhtmlxtras/images/acronym.gif
new file mode 100644
index 0000000000000000000000000000000000000000..df4c93b55e2e140175159f33ff75d1d32a9cea80
Binary files /dev/null and b/tinyMCE/plugins/xhtmlxtras/images/acronym.gif differ
diff --git a/tinyMCE/plugins/xhtmlxtras/images/attribs.gif b/tinyMCE/plugins/xhtmlxtras/images/attribs.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fe4a3b68ec90c8c2ef2e997d9cb2273664098c00
Binary files /dev/null and b/tinyMCE/plugins/xhtmlxtras/images/attribs.gif differ
diff --git a/tinyMCE/plugins/xhtmlxtras/images/cite.gif b/tinyMCE/plugins/xhtmlxtras/images/cite.gif
new file mode 100644
index 0000000000000000000000000000000000000000..585bcd1ee2be031a09af278c58028a04ad68bf44
Binary files /dev/null and b/tinyMCE/plugins/xhtmlxtras/images/cite.gif differ
diff --git a/tinyMCE/plugins/xhtmlxtras/images/date_time.gif b/tinyMCE/plugins/xhtmlxtras/images/date_time.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8ad424d3d19b07b05a9a5e6828325dba602bf0ac
Binary files /dev/null and b/tinyMCE/plugins/xhtmlxtras/images/date_time.gif differ
diff --git a/tinyMCE/plugins/xhtmlxtras/images/del.gif b/tinyMCE/plugins/xhtmlxtras/images/del.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ba494082d4b25fa73e1187f88c427d74db369577
Binary files /dev/null and b/tinyMCE/plugins/xhtmlxtras/images/del.gif differ
diff --git a/tinyMCE/plugins/xhtmlxtras/images/ins.gif b/tinyMCE/plugins/xhtmlxtras/images/ins.gif
new file mode 100644
index 0000000000000000000000000000000000000000..277a364b26545defce337729f806cb0b154b4ee9
Binary files /dev/null and b/tinyMCE/plugins/xhtmlxtras/images/ins.gif differ
diff --git a/tinyMCE/plugins/xhtmlxtras/images/remove_button_bg.gif b/tinyMCE/plugins/xhtmlxtras/images/remove_button_bg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5a069a8ce0da45f32363fb590f02e9eb8dcd3da0
Binary files /dev/null and b/tinyMCE/plugins/xhtmlxtras/images/remove_button_bg.gif differ
diff --git a/tinyMCE/plugins/xhtmlxtras/ins.htm b/tinyMCE/plugins/xhtmlxtras/ins.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0aeb0768e3bde4ff9ec9b8f7a24e8bd9f3428d5c
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/ins.htm
@@ -0,0 +1,169 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_xhtmlxtras_title_ins_element}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/editable_selects.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/element_common.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/ins.js"></script>
+	<link rel="stylesheet" type="text/css" href="css/popup.css" />
+	<base target="_self" />
+</head>
+<body id="xhtmlxtrasins" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onsubmit="insertIns();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_xhtmlxtras_general_tab}</a></span></li>
+			<!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{$lang_xhtmlxtras_events_tab}</a></span></li> -->
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_general_tab}</legend>
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="datetimelabel" for="datetime">{$lang_xhtmlxtras_attribute_label_datetime}</label>:</td> 
+						<td>
+							<table border="0" cellspacing="0" cellpadding="0">
+								<tr> 
+									<td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field" /></td> 
+									<td><a href="javascript:insertDateTime('datetime');" class="mceButtonNormal"><img src="images/date_time.gif" class="picker" alt="{$lang_xhtmlxtras_insert_date}" title="{$lang_xhtmlxtras_insert_date}" /></a></td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="citelabel" for="cite">{$lang_xhtmlxtras_attribute_label_cite}</label>:</td> 
+						<td><input id="cite" name="cite" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_attrib_tab}</legend>
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label id="titlelabel" for="title">{$lang_xhtmlxtras_attribute_label_title}</label>:</td> 
+						<td><input id="title" name="title" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="idlabel" for="id">{$lang_xhtmlxtras_attribute_label_id}</label>:</td> 
+						<td><input id="id" name="id" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="classlabel" for="class">{$lang_xhtmlxtras_attribute_label_class}</label>:</td> 
+						<td>
+							<select id="class" name="class" class="field mceEditableSelect">
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<td class="label"><label id="stylelabel" for="class">{$lang_xhtmlxtras_attribute_label_style}</label>:</td> 
+						<td><input id="style" name="style" type="text" value="" class="field" /></td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="dirlabel" for="dir">{$lang_xhtmlxtras_attribute_label_langdir}</label>:</td> 
+						<td>
+							<select id="dir" name="dir" class="field"> 
+								<option value="">{$lang_xhtmlxtras_not_set}</option> 
+								<option value="ltr">{$lang_xhtmlxtras_attribute_option_ltr}</option> 
+								<option value="rtl">{$lang_xhtmlxtras_attribute_option_rtl}</option> 
+							</select>
+						</td> 
+					</tr>
+					<tr>
+						<td class="label"><label id="langlabel" for="lang">{$lang_xhtmlxtras_attribute_label_langcode}</label>:</td> 
+						<td>
+							<input id="lang" name="lang" type="text" value="" class="field" />
+						</td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+		<div id="events_panel" class="panel">
+			<fieldset>
+				<legend>{$lang_xhtmlxtras_fieldset_events_tab}</legend>
+
+				<table border="0" cellpadding="0" cellspacing="4">
+					<tr>
+						<td class="label"><label for="onfocus">onfocus</label>:</td> 
+						<td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onblur">onblur</label>:</td> 
+						<td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onclick">onclick</label>:</td> 
+						<td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="ondblclick">ondblclick</label>:</td> 
+						<td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousedown">onmousedown</label>:</td> 
+						<td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseup">onmouseup</label>:</td> 
+						<td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseover">onmouseover</label>:</td> 
+						<td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmousemove">onmousemove</label>:</td> 
+						<td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onmouseout">onmouseout</label>:</td> 
+						<td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeypress">onkeypress</label>:</td> 
+						<td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeydown">onkeydown</label>:</td> 
+						<td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> 
+					</tr>
+
+					<tr>
+						<td class="label"><label for="onkeyup">onkeyup</label>:</td> 
+						<td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> 
+					</tr>
+				</table>
+			</fieldset>
+		</div>
+	</div>
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_update}" onclick="insertIns();" />
+		</div>
+		<div style="float: left">
+			<input type="button" id="remove" name="remove" value="{$lang_xhtmlxtras_remove}" onclick="removeIns();" style="display: none;" />
+		</div>
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+
+</form>
+
+</body>
+</html>
diff --git a/tinyMCE/plugins/xhtmlxtras/jscripts/abbr.js b/tinyMCE/plugins/xhtmlxtras/jscripts/abbr.js
new file mode 100644
index 0000000000000000000000000000000000000000..3f6853ce1d433fe2f54b1e92aaf2263fc30b4456
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/jscripts/abbr.js
@@ -0,0 +1,29 @@
+ /**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode - based on work by Andrew Tetlaw
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+function preinit() {
+	// Initialize
+	tinyMCE.setWindowArg('mce_windowresize', false);
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+	SXE.initElementDialog('abbr');
+	if (SXE.currentAction == "update") {
+		SXE.showRemoveButton();
+	}
+}
+
+function insertAbbr() {
+	SXE.insertElement(tinyMCE.isIE && !tinyMCE.isOpera ? 'html:ABBR' : 'abbr');
+	tinyMCEPopup.close();
+}
+
+function removeAbbr() {
+	SXE.removeElement('abbr');
+	tinyMCEPopup.close();
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/xhtmlxtras/jscripts/acronym.js b/tinyMCE/plugins/xhtmlxtras/jscripts/acronym.js
new file mode 100644
index 0000000000000000000000000000000000000000..36d76eea0f3e97b01cb889521beab8fb4011fe36
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/jscripts/acronym.js
@@ -0,0 +1,29 @@
+ /**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode - based on work by Andrew Tetlaw
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+function preinit() {
+	// Initialize
+	tinyMCE.setWindowArg('mce_windowresize', false);
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+	SXE.initElementDialog('acronym');
+	if (SXE.currentAction == "update") {
+		SXE.showRemoveButton();
+	}
+}
+
+function insertAcronym() {
+	SXE.insertElement('acronym');
+	tinyMCEPopup.close();
+}
+
+function removeAcronym() {
+	SXE.removeElement('acronym');
+	tinyMCEPopup.close();
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/xhtmlxtras/jscripts/attributes.js b/tinyMCE/plugins/xhtmlxtras/jscripts/attributes.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad886e534a4d687e7db37656568332e811715920
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/jscripts/attributes.js
@@ -0,0 +1,130 @@
+ /**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode - based on work by Andrew Tetlaw
+ * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ */
+
+function preinit() {
+	// Initialize
+	tinyMCE.setWindowArg('mce_windowresize', false);
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var elm = inst.getFocusElement();
+
+	var f = document.forms[0];
+	
+	var onclick = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onclick'));
+
+	setFormValue('title', tinyMCE.getAttrib(elm, 'title'));
+	setFormValue('id', tinyMCE.getAttrib(elm, 'id'));
+	setFormValue('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(tinyMCE.getAttrib(elm, "style"))));
+	setFormValue('dir', tinyMCE.getAttrib(elm, 'dir'));
+	setFormValue('lang', tinyMCE.getAttrib(elm, 'lang'));
+	setFormValue('tabindex', tinyMCE.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));
+	setFormValue('accesskey', tinyMCE.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));
+	setFormValue('onfocus', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onfocus')));
+	setFormValue('onblur', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onblur')));
+	setFormValue('onclick', onclick);
+	setFormValue('ondblclick', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'ondblclick')));
+	setFormValue('onmousedown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousedown')));
+	setFormValue('onmouseup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseup')));
+	setFormValue('onmouseover', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseover')));
+	setFormValue('onmousemove', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousemove')));
+	setFormValue('onmouseout', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseout')));
+	setFormValue('onkeypress', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeypress')));
+	setFormValue('onkeydown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeydown')));
+	setFormValue('onkeyup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeyup')));
+	
+	className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(elm, 'class'), false);
+		
+	addClassesToList('classlist', 'advlink_styles');
+	selectByValue(f, 'classlist', className, true);
+	
+	TinyMCE_EditableSelects.init();
+}
+
+function setFormValue(name, value) {
+	if(value && document.forms[0].elements[name]){
+		document.forms[0].elements[name].value = value;
+	}
+}
+
+function insertAction() {
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var elm = inst.getFocusElement();
+
+	tinyMCEPopup.execCommand("mceBeginUndoLevel");	
+	tinyMCEPopup.restoreSelection();
+	
+	setAllAttribs(elm);
+	
+	tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+	tinyMCE._setEventsEnabled(inst.getBody(), false);
+	tinyMCEPopup.execCommand("mceEndUndoLevel");
+	tinyMCEPopup.close();
+}
+
+function setAttrib(elm, attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib.toLowerCase()];
+
+	if (typeof(value) == "undefined" || value == null) {
+		value = "";
+
+		if (valueElm)
+			value = valueElm.value;
+	}
+
+	if (value != "") {
+		tinyMCE.setAttrib(elm, attrib.toLowerCase(), value);
+
+		if (attrib == "style")
+			attrib = "style.cssText";
+
+		if (attrib.substring(0, 2) == 'on')
+			value = 'return true;' + value;
+
+		if (attrib == "class")
+			attrib = "className";
+
+		eval('elm.' + attrib + "=value;");
+	} else
+		elm.removeAttribute(attrib);
+}
+
+function setAllAttribs(elm) {
+	var f = document.forms[0];
+
+	setAttrib(elm, 'title');
+	setAttrib(elm, 'id');
+	setAttrib(elm, 'style');
+	setAttrib(elm, 'class', getSelectValue(f, 'classlist'));
+	setAttrib(elm, 'dir');
+	setAttrib(elm, 'lang');
+	setAttrib(elm, 'tabindex');
+	setAttrib(elm, 'accesskey');
+	setAttrib(elm, 'onfocus');
+	setAttrib(elm, 'onblur');
+	setAttrib(elm, 'onclick');
+	setAttrib(elm, 'ondblclick');
+	setAttrib(elm, 'onmousedown');
+	setAttrib(elm, 'onmouseup');
+	setAttrib(elm, 'onmouseover');
+	setAttrib(elm, 'onmousemove');
+	setAttrib(elm, 'onmouseout');
+	setAttrib(elm, 'onkeypress');
+	setAttrib(elm, 'onkeydown');
+	setAttrib(elm, 'onkeyup');
+
+	// Refresh in old MSIE
+	if (tinyMCE.isMSIE5)
+		elm.outerHTML = elm.outerHTML;
+}
+
+function insertAttribute() {
+	tinyMCEPopup.close();
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/xhtmlxtras/jscripts/cite.js b/tinyMCE/plugins/xhtmlxtras/jscripts/cite.js
new file mode 100644
index 0000000000000000000000000000000000000000..4804db4d5f94b3640fa514f6ef84e673a3bc67ea
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/jscripts/cite.js
@@ -0,0 +1,29 @@
+ /**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode - based on work by Andrew Tetlaw
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+function preinit() {
+	// Initialize
+	tinyMCE.setWindowArg('mce_windowresize', false);
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+	SXE.initElementDialog('cite');
+	if (SXE.currentAction == "update") {
+		SXE.showRemoveButton();
+	}
+}
+
+function insertCite() {
+	SXE.insertElement('cite');
+	tinyMCEPopup.close();
+}
+
+function removeCite() {
+	SXE.removeElement('cite');
+	tinyMCEPopup.close();
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/xhtmlxtras/jscripts/del.js b/tinyMCE/plugins/xhtmlxtras/jscripts/del.js
new file mode 100644
index 0000000000000000000000000000000000000000..08e2f164287c3b28c64c66e763939d807110db47
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/jscripts/del.js
@@ -0,0 +1,54 @@
+ /**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode - based on work by Andrew Tetlaw
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+function preinit() {
+	// Initialize
+	tinyMCE.setWindowArg('mce_windowresize', false);
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+	SXE.initElementDialog('del');
+	if (SXE.currentAction == "update") {
+		setFormValue('datetime', tinyMCE.getAttrib(SXE.updateElement, 'datetime'));
+		setFormValue('cite', tinyMCE.getAttrib(SXE.updateElement, 'cite'));
+		SXE.showRemoveButton();
+	}
+}
+
+function setElementAttribs(elm) {
+	setAllCommonAttribs(elm);
+	setAttrib(elm, 'datetime');
+	setAttrib(elm, 'cite');
+}
+
+function insertDel() {
+	var elm = tinyMCE.getParentElement(SXE.focusElement, 'del');
+
+	tinyMCEPopup.execCommand('mceBeginUndoLevel');
+	if (elm == null) {
+		var s = SXE.inst.selection.getSelectedHTML();
+		if(s.length > 0) {
+			tinyMCEPopup.execCommand('mceInsertContent', false, '<del id="#sxe_temp_del#">' + s + '</del>');
+			var elementArray = tinyMCE.getElementsByAttributeValue(SXE.inst.getBody(), 'del', 'id', '#sxe_temp_del#');
+			for (var i=0; i<elementArray.length; i++) {
+				var elm = elementArray[i];
+				setElementAttribs(elm);
+			}
+		}
+	} else {
+		setElementAttribs(elm);
+	}
+	tinyMCE.triggerNodeChange();
+	tinyMCEPopup.execCommand('mceEndUndoLevel');
+	tinyMCEPopup.close();
+}
+
+function removeDel() {
+	SXE.removeElement('del');
+	tinyMCEPopup.close();
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/xhtmlxtras/jscripts/element_common.js b/tinyMCE/plugins/xhtmlxtras/jscripts/element_common.js
new file mode 100644
index 0000000000000000000000000000000000000000..40e5860871dfd68f3a7b44d30930b566293e64db
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/jscripts/element_common.js
@@ -0,0 +1,241 @@
+ /**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode - based on work by Andrew Tetlaw
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+function initCommonAttributes(elm) {
+	var formObj = document.forms[0];
+
+	// Setup form data for common element attributes
+	setFormValue('title', tinyMCE.getAttrib(elm, 'title'));
+	setFormValue('id', tinyMCE.getAttrib(elm, 'id'));
+	selectByValue(formObj, 'class', tinyMCE.getAttrib(elm, 'class'), true);
+	setFormValue('style', tinyMCE.getAttrib(elm, 'style'));
+	selectByValue(formObj, 'dir', tinyMCE.getAttrib(elm, 'dir'));
+	setFormValue('lang', tinyMCE.getAttrib(elm, 'lang'));
+	setFormValue('onfocus', tinyMCE.getAttrib(elm, 'onfocus'));
+	setFormValue('onblur', tinyMCE.getAttrib(elm, 'onblur'));
+	setFormValue('onclick', tinyMCE.getAttrib(elm, 'onclick'));
+	setFormValue('ondblclick', tinyMCE.getAttrib(elm, 'ondblclick'));
+	setFormValue('onmousedown', tinyMCE.getAttrib(elm, 'onmousedown'));
+	setFormValue('onmouseup', tinyMCE.getAttrib(elm, 'onmouseup'));
+	setFormValue('onmouseover', tinyMCE.getAttrib(elm, 'onmouseover'));
+	setFormValue('onmousemove', tinyMCE.getAttrib(elm, 'onmousemove'));
+	setFormValue('onmouseout', tinyMCE.getAttrib(elm, 'onmouseout'));
+	setFormValue('onkeypress', tinyMCE.getAttrib(elm, 'onkeypress'));
+	setFormValue('onkeydown', tinyMCE.getAttrib(elm, 'onkeydown'));
+	setFormValue('onkeyup', tinyMCE.getAttrib(elm, 'onkeyup'));
+}
+
+function setFormValue(name, value) {
+	if(document.forms[0].elements[name]) document.forms[0].elements[name].value = value;
+}
+
+function insertDateTime(id) {
+	document.getElementById(id).value = getDateTime(new Date(), "%Y-%m-%dT%H:%M:%S");
+}
+
+function getDateTime(d, fmt) {
+	fmt = fmt.replace("%D", "%m/%d/%y");
+	fmt = fmt.replace("%r", "%I:%M:%S %p");
+	fmt = fmt.replace("%Y", "" + d.getFullYear());
+	fmt = fmt.replace("%y", "" + d.getYear());
+	fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
+	fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
+	fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
+	fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
+	fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
+	fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
+	fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
+	fmt = fmt.replace("%%", "%");
+
+	return fmt;
+}
+
+function addZeros(value, len) {
+	var i;
+
+	value = "" + value;
+
+	if (value.length < len) {
+		for (i=0; i<(len-value.length); i++)
+			value = "0" + value;
+	}
+
+	return value;
+}
+
+function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
+	if (!form_obj || !form_obj.elements[field_name])
+		return;
+
+	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, value);
+		option.selected = true;
+		sel.options[sel.options.length] = option;
+	}
+
+	return found;
+}
+
+function setAttrib(elm, attrib, value) {
+	var formObj = document.forms[0];
+	var valueElm = formObj.elements[attrib.toLowerCase()];
+
+	if (typeof(value) == "undefined" || value == null) {
+		value = "";
+
+		if (valueElm)
+			value = valueElm.value;
+	}
+
+	if (value != "") {
+		if (attrib == "style")
+			attrib = "style.cssText";
+
+		if (attrib.substring(0, 2) == 'on')
+			value = 'return true;' + value;
+
+		if (attrib == "class") {
+			tinyMCE.addCSSClass(elm, value);
+			return;
+		}
+
+		elm.setAttribute(attrib.toLowerCase(), value);
+	} else
+		elm.removeAttribute(attrib);
+}
+
+function setAllCommonAttribs(elm) {
+	setAttrib(elm, 'title');
+	setAttrib(elm, 'id');
+	setAttrib(elm, 'class');
+	setAttrib(elm, 'style');
+	setAttrib(elm, 'dir');
+	setAttrib(elm, 'lang');
+	/*setAttrib(elm, 'onfocus');
+	setAttrib(elm, 'onblur');
+	setAttrib(elm, 'onclick');
+	setAttrib(elm, 'ondblclick');
+	setAttrib(elm, 'onmousedown');
+	setAttrib(elm, 'onmouseup');
+	setAttrib(elm, 'onmouseover');
+	setAttrib(elm, 'onmousemove');
+	setAttrib(elm, 'onmouseout');
+	setAttrib(elm, 'onkeypress');
+	setAttrib(elm, 'onkeydown');
+	setAttrib(elm, 'onkeyup');*/
+}
+
+SXE = {
+	currentAction : "insert",
+	inst : tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')),
+	updateElement : null
+}
+
+SXE.focusElement = SXE.inst.getFocusElement();
+
+SXE.initElementDialog = function(element_name) {
+	addClassesToList('class', 'xhtmlxtras_styles');
+	TinyMCE_EditableSelects.init();
+
+	element_name = element_name.toLowerCase();
+	var elm = tinyMCE.getParentElement(SXE.focusElement, element_name);
+	if (elm != null && elm.nodeName == element_name.toUpperCase()) {
+		SXE.currentAction = "update";
+	}
+
+	if (SXE.currentAction == "update") {
+		initCommonAttributes(elm);
+		SXE.updateElement = elm;
+	}
+
+	document.forms[0].insert.value = tinyMCE.getLang('lang_' + SXE.currentAction, 'Insert', true); 
+}
+
+SXE.insertElement = function(element_name) {
+	var elm = tinyMCE.getParentElement(SXE.focusElement, element_name), h, tagName;
+
+	tinyMCEPopup.execCommand('mceBeginUndoLevel');
+	if (elm == null) {
+		var s = SXE.inst.selection.getSelectedHTML();
+		if(s.length > 0) {
+			tagName = element_name;
+
+			if (tinyMCE.isIE && !tinyMCE.isOpera && element_name.indexOf('html:') == 0)
+				element_name = element_name.substring(5).toLowerCase();
+
+			h = '<' + tagName + ' id="#sxe_temp_' + element_name + '#">' + s + '</' + tagName + '>';
+
+			tinyMCEPopup.execCommand('mceInsertContent', false, h);
+
+			var elementArray = tinyMCE.getElementsByAttributeValue(SXE.inst.getBody(), element_name, 'id', '#sxe_temp_' + element_name + '#');
+			for (var i=0; i<elementArray.length; i++) {
+				var elm = elementArray[i];
+
+				elm.id = '';
+				elm.setAttribute('id', '');
+				elm.removeAttribute('id');
+
+				setAllCommonAttribs(elm);
+			}
+		}
+	} else {
+		setAllCommonAttribs(elm);
+	}
+	tinyMCE.triggerNodeChange();
+	tinyMCEPopup.execCommand('mceEndUndoLevel');
+}
+
+SXE.removeElement = function(element_name){
+	element_name = element_name.toLowerCase();
+	elm = tinyMCE.getParentElement(SXE.focusElement, element_name);
+	if(elm && elm.nodeName == element_name.toUpperCase()){
+		tinyMCEPopup.execCommand('mceBeginUndoLevel');
+		tinyMCE.execCommand('mceRemoveNode', false, elm);
+		tinyMCE.triggerNodeChange();
+		tinyMCEPopup.execCommand('mceEndUndoLevel');
+	}
+}
+
+SXE.showRemoveButton = function() {
+		document.getElementById("remove").style.display = 'block';
+}
+
+SXE.containsClass = function(elm,cl) {
+	return (elm.className.indexOf(cl) > -1) ? true : false;
+}
+
+SXE.removeClass = function(elm,cl) {
+	if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) {
+		return true;
+	}
+	var classNames = elm.className.split(" ");
+	var newClassNames = "";
+	for (var x = 0, cnl = classNames.length; x < cnl; x++) {
+		if (classNames[x] != cl) {
+			newClassNames += (classNames[x] + " ");
+		}
+	}
+	elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end
+}
+
+SXE.addClass = function(elm,cl) {
+	if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl;
+	return true;
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/xhtmlxtras/jscripts/ins.js b/tinyMCE/plugins/xhtmlxtras/jscripts/ins.js
new file mode 100644
index 0000000000000000000000000000000000000000..8fdc364969d94261728f57d16ef660a0238f9559
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/jscripts/ins.js
@@ -0,0 +1,53 @@
+ /**
+ * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
+ *
+ * @author Moxiecode - based on work by Andrew Tetlaw
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+function preinit() {
+	// Initialize
+	tinyMCE.setWindowArg('mce_windowresize', false);
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+	SXE.initElementDialog('ins');
+	if (SXE.currentAction == "update") {
+		setFormValue('datetime', tinyMCE.getAttrib(SXE.updateElement, 'datetime'));
+		setFormValue('cite', tinyMCE.getAttrib(SXE.updateElement, 'cite'));
+		SXE.showRemoveButton();
+	}
+}
+
+function setElementAttribs(elm) {
+	setAllCommonAttribs(elm);
+	setAttrib(elm, 'datetime');
+	setAttrib(elm, 'cite');
+}
+
+function insertIns() {
+	var elm = tinyMCE.getParentElement(SXE.focusElement, 'ins');
+	tinyMCEPopup.execCommand('mceBeginUndoLevel');
+	if (elm == null) {
+		var s = SXE.inst.selection.getSelectedHTML();
+		if(s.length > 0) {
+			tinyMCEPopup.execCommand('mceInsertContent', false, '<ins id="#sxe_temp_ins#">' + s + '</ins>');
+			var elementArray = tinyMCE.getElementsByAttributeValue(SXE.inst.getBody(), 'ins', 'id', '#sxe_temp_ins#');
+			for (var i=0; i<elementArray.length; i++) {
+				var elm = elementArray[i];
+				setElementAttribs(elm);
+			}
+		}
+	} else {
+		setElementAttribs(elm);
+	}
+	tinyMCE.triggerNodeChange();
+	tinyMCEPopup.execCommand('mceEndUndoLevel');
+	tinyMCEPopup.close();
+}
+
+function removeIns() {
+	SXE.removeElement('ins');
+	tinyMCEPopup.close();
+}
\ No newline at end of file
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ca.js b/tinyMCE/plugins/xhtmlxtras/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..001eae2c35c272db7644e62e45cba2deecc8d5f3
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ca.js
@@ -0,0 +1,42 @@
+// ES lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citaci&oacute;',
+abbr_desc : 'Abreviaci&oacute;',
+acronym_desc : 'Acr&ograve;nim',
+del_desc : 'Esborrat',
+ins_desc : 'Inserci&oacute;',
+attribute_label_title : 'T&iacute;tol',
+attribute_label_id : 'ID',
+attribute_label_class : 'Classe',
+attribute_label_style : 'Estil',
+attribute_label_cite : 'Cita',
+attribute_label_datetime : 'Data/Hora',
+attribute_label_langdir : 'Direcci&oacute; del text',
+attribute_option_ltr : 'De esquerra a dreta',
+attribute_option_rtl : 'De dreta a esquerra',
+attribute_label_langcode : 'Idioma',
+attribute_label_tabindex : 'TabIndex',
+attribute_label_accesskey : 'AccessKey',
+attribute_label_cite : 'Cita',
+attribute_events_tab : 'Events',
+attribute_attrib_tab : 'Atributs',
+general_tab : 'General',
+attrib_tab : 'Atributs',
+events_tab : 'Events',
+fieldset_general_tab : 'Configuraci&oacute; General',
+fieldset_attrib_tab : 'Atributs d\'Element',
+fieldset_events_tab : 'Events d\'Element',
+title_ins_element : 'Inserci&oacute; d\'Element',
+title_del_element : 'Esborrat d\'Element',
+title_acronym_element : 'Element Acr&ograve;nim',
+title_abbr_element : 'Element Abreviaci&oacute;',
+title_cite_element : 'Element Cita',
+remove : 'Eliminar',
+not_set : '--no establert--',
+insert_date : 'Inserir fecha/hora actual',
+option_ltr : 'De esquerra a dreta',
+option_rtl : 'De dreta a esquerra',
+attribs_desc : 'Inserir/Editar Atributs',
+attribs_title : 'Inserir/Editar Atributs'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/cs.js b/tinyMCE/plugins/xhtmlxtras/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/cs.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/cy.js b/tinyMCE/plugins/xhtmlxtras/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/cy.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/da.js b/tinyMCE/plugins/xhtmlxtras/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..6500ceef059fc55381304d81078d20bca9f6f1d4
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/da.js
@@ -0,0 +1,42 @@
+// DK lang variables - Transl.:Ronny Buelund - Corr.:
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Forkortelse',
+acronym_desc : 'Akronym',
+del_desc : 'Sletning',
+ins_desc : 'Inds&aelig;ttelse',
+attribute_label_title : 'Tittel',
+attribute_label_id : 'ID',
+attribute_label_class : 'Klasse',
+attribute_label_style : 'Stil',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Dato/tid',
+attribute_label_langdir : 'Tekstretning',
+attribute_option_ltr : 'Venstre til h&oslash;jre',
+attribute_option_rtl : 'H&oslash;jre til venstre',
+attribute_label_langcode : 'Sprog',
+attribute_label_tabindex : 'TabIndeks',
+attribute_label_accesskey : 'Adgangsn&oslash;gle',
+attribute_label_cite : 'Cite',
+attribute_events_tab : 'Events',
+attribute_attrib_tab : 'Atributter',
+general_tab : 'Generelt',
+attrib_tab : 'Atributter',
+events_tab : 'Events',
+fieldset_general_tab : 'Generelle indstillinger',
+fieldset_attrib_tab : 'Element atributter',
+fieldset_events_tab : 'Element events',
+title_ins_element : 'Inds&aelig;ttelseselement',
+title_del_element : 'Sletningselement',
+title_acronym_element : 'Akronym element',
+title_abbr_element : 'Forkortelseselement',
+title_cite_element : 'Citationselement',
+remove : 'Fjern',
+not_set : '--ikke sat--',
+insert_date : 'Inds&aelig;t aktuel dato/tid'
+option_ltr : 'Venstre til h&oslash;jre',
+option_rtl : 'H&oslash;jre til venstre',
+attribs_desc : 'Inds&aelig;t/rediger atributter',
+attribs_title : 'Inds&aelig;t/rediger atributter'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/de.js b/tinyMCE/plugins/xhtmlxtras/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c22dbaff364a90dda89942db3c6caf8f156aeb7
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/de.js
@@ -0,0 +1,33 @@
+// DE lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Zitieren',
+abbr_desc : 'Abk&uuml;rzung',
+acronym_desc : 'Acronym',
+del_desc : 'L&ouml;schung',
+ins_desc : 'Einf&uuml;gung',
+attribute_label_title : 'Titel',
+attribute_label_id : 'ID',
+attribute_label_class : 'Klasse',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Zitieren',
+attribute_label_datetime : 'Datum/Zeit',
+attribute_label_langdir : 'Text Richtung',
+attribute_option_ltr : 'Links nach rechts',
+attribute_option_rtl : 'Rechts nach links',
+attribute_label_langcode : 'Sprache',
+general_tab : 'Allgemein',
+attrib_tab : 'Attribute',
+events_tab : 'Event',
+fieldset_general_tab : 'Allgemeine Einstellungen',
+fieldset_attrib_tab : 'Element Attribute',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Einfüge-Element',
+title_del_element : 'L&ouml;schung-Element',
+title_acronym_element : 'Akronym Element',
+title_abbr_element : 'Abk&uuml;rzung Element',
+title_cite_element : 'Zitieren Element',
+remove : 'Entfernen',
+not_set : '- Nicht gesetzt -',
+insert_date : 'Heutiges Datum/Zeit einf&uuml;gen'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/el.js b/tinyMCE/plugins/xhtmlxtras/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/el.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/en.js b/tinyMCE/plugins/xhtmlxtras/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..50d244c07030b3b4bd34e8ae889ea63ed0a80ecd
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/en.js
@@ -0,0 +1,42 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+attribute_label_tabindex : 'TabIndex',
+attribute_label_accesskey : 'AccessKey',
+attribute_label_cite : 'Cite',
+attribute_events_tab : 'Events',
+attribute_attrib_tab : 'Attributes',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time',
+option_ltr : 'Left to right',
+option_rtl : 'Right to left',
+attribs_desc : 'Insert/Edit Attributes',
+attribs_title : 'Insert/Edit Attributes'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/es.js b/tinyMCE/plugins/xhtmlxtras/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..80d9074a2621770687cf1f8b4d8497d6000c9109
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/es.js
@@ -0,0 +1,42 @@
+// ES lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citaci&oacute;n',
+abbr_desc : 'Abreviatura',
+acronym_desc : 'Acr&oacute;nimo',
+del_desc : 'Borrado',
+ins_desc : 'Inserci&oacute;n',
+attribute_label_title : 'T&iacute;tulo',
+attribute_label_id : 'ID',
+attribute_label_class : 'Clase',
+attribute_label_style : 'Estilo',
+attribute_label_cite : 'Cita',
+attribute_label_datetime : 'Fecha/Hora',
+attribute_label_langdir : 'Direcci&oacute;n del texto',
+attribute_option_ltr : 'De izquierda a derecha',
+attribute_option_rtl : 'De derecha a izquierda',
+attribute_label_langcode : 'Idioma',
+attribute_label_tabindex : 'TabIndex',
+attribute_label_accesskey : 'AccessKey',
+attribute_label_cite : 'Cita',
+attribute_events_tab : 'Eventos',
+attribute_attrib_tab : 'Atributos',
+general_tab : 'General',
+attrib_tab : 'Atributos',
+events_tab : 'Eventos',
+fieldset_general_tab : 'Configuraci&oacute;n General',
+fieldset_attrib_tab : 'Atributos de Elemento',
+fieldset_events_tab : 'Eventos de Elemento',
+title_ins_element : 'Inserci&oacute;n de Elemento',
+title_del_element : 'Borrado de Elemento',
+title_acronym_element : 'Elemento Acr&oacute;nimo',
+title_abbr_element : 'Elemento Abreviatura',
+title_cite_element : 'Elemento Cita',
+remove : 'Eliminar',
+not_set : '--no establecido--',
+insert_date : 'Insertar fecha/hora actual',
+option_ltr : 'De izquierda a derecha',
+option_rtl : 'De derecha a izquierda',
+attribs_desc : 'Insertar/Editar Atributos',
+attribs_title : 'Insertar/Editar Atributos'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/fa.js b/tinyMCE/plugins/xhtmlxtras/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/fa.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/fi.js b/tinyMCE/plugins/xhtmlxtras/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..834eb2ce59a7f64a85b19be565c55e971033ca73
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/fi.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Lainaus',
+abbr_desc : 'Lyhenne (Abbreviation)',
+acronym_desc : 'Lyhenne (Acronym)',
+del_desc : 'Poisto',
+ins_desc : 'Lisäys',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Luokka',
+attribute_label_style : 'Tyyli',
+attribute_label_cite : 'Lainaus',
+attribute_label_datetime : 'Päivämäärä/Aika',
+attribute_label_langdir : 'Tekstin suunta',
+attribute_option_ltr : 'Vasemmalta oikealle',
+attribute_option_rtl : 'Oikealta vasemmalle',
+attribute_label_langcode : 'Kieli',
+general_tab : 'Yleiset',
+attrib_tab : 'Ominaisuudet',
+events_tab : 'Tapahtumat',
+fieldset_general_tab : 'Yleiset asetukset',
+fieldset_attrib_tab : 'Elementin ominaisuudet',
+fieldset_events_tab : 'Elementin tapahtumat',
+title_ins_element : 'Lisäys elementti',
+title_del_element : 'Poisto elementti',
+title_acronym_element : 'Lyhenne elementti (Acronym)',
+title_abbr_element : 'Lyhenne elementti (Abbreviation)',
+title_cite_element : 'Lainaus elementti',
+remove : 'Poista',
+not_set : '--Ei asetettu--',
+insert_date : 'Lisää päivämäärä/aika'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/fr.js b/tinyMCE/plugins/xhtmlxtras/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3ca0357af7874434b79f97762b6e70b5378b980
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/fr.js
@@ -0,0 +1,43 @@
+// FR lang variables
+// Modified by shadow walker, last updated 2007-03-16
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abr&eacute;viation',
+acronym_desc : 'Acronyme',
+del_desc : 'Effacer',
+ins_desc : 'Insertion',
+attribute_label_title : 'Titre',
+attribute_label_id : 'ID',
+attribute_label_class : 'Classe',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Heure',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'De gauche &agrave; droite',
+attribute_option_rtl : 'De droite &agrave; gauche',
+attribute_label_langcode : 'Langues',
+attribute_label_tabindex : 'TabIndex',
+attribute_label_accesskey : 'AccessKey',
+attribute_label_cite : 'Cite',
+attribute_events_tab : 'Evenement',
+attribute_attrib_tab : 'Attribus',
+general_tab : 'G&eacute;n&eacute;rale',
+attrib_tab : 'Attribus',
+events_tab : 'Evenement',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Attributs de l\'&eacute;l&eacute;ment',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion de l\'&eacute;l&eacute;ment',
+title_del_element : 'Effacement de l\'&eacute;l&eacute;ment',
+title_acronym_element : 'Acronyme de l\'&eacute;l&eacute;ment',
+title_abbr_element : 'Abr&eacute;viation de l\'&eacute;l&eacute;ment',
+title_cite_element : 'Citation Element',
+remove : 'Enlever',
+not_set : '--Non d&eacute;finit--',
+insert_date : 'Ins&eacute;rer la date/heure actuelle',
+option_ltr : 'De gauche &agrave; droite',
+option_rtl : 'De droite &agrave; gauche',
+attribs_desc : 'Ins&eacute;rer/Editer un attribut',
+attribs_title : 'Ins&eacute;rer/Editer un attribut'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/fr_ca.js b/tinyMCE/plugins/xhtmlxtras/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/fr_ca.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/he.js b/tinyMCE/plugins/xhtmlxtras/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/he.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/hu.js b/tinyMCE/plugins/xhtmlxtras/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/hu.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/is.js b/tinyMCE/plugins/xhtmlxtras/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/is.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/it.js b/tinyMCE/plugins/xhtmlxtras/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..33a62e23da42d1cf9c89f43cda307ca0044d6d33
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/it.js
@@ -0,0 +1,43 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citazione',
+abbr_desc : 'Abbreviazione',
+acronym_desc : 'Acronimo',
+del_desc : 'Cancellazione',
+ins_desc : 'Inserimento',
+attribute_label_title : 'Titolo',
+attribute_label_id : 'ID',
+attribute_label_class : 'Classe',
+attribute_label_style : 'Stile',
+attribute_label_cite : 'Cita',
+attribute_label_datetime : 'Data/ora',
+attribute_label_langdir : 'Direzione del testo',
+attribute_option_ltr : 'Da sinistra a destra',
+attribute_option_rtl : 'Da destra a sinistra',
+attribute_label_langcode : 'Lingua',
+general_tab : 'Generale',
+attrib_tab : 'Attributi',
+events_tab : 'Eventi',
+fieldset_general_tab : 'Impostazioni generali',
+fieldset_attrib_tab : 'Attributi dell\'elemento',
+fieldset_events_tab : 'Eventi dell\'elemento',
+title_ins_element : 'Inserimento di un elemento',
+title_del_element : 'Cancellazione di un elemento',
+title_acronym_element : 'Elemento acronimo',
+title_abbr_element : 'Elemento abbreviazione',
+title_cite_element : 'Elemento citazione',
+remove : 'Rimuovi ',
+not_set : '--non impostato--',
+insert_date : 'Inserisci data e ora correnti',
+option_ltr : 'Da sinistra a destra',
+option_rtl : 'Da destra a sinistra',
+attribs_desc : 'Inserisci o modifica attributi',
+attribs_title : 'Inserisci o modifica attributi'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ja.js b/tinyMCE/plugins/xhtmlxtras/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ja.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ja_euc-jp.js b/tinyMCE/plugins/xhtmlxtras/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ja_euc-jp.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ja_shift_jis.js b/tinyMCE/plugins/xhtmlxtras/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ja_shift_jis.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ja_utf-8.js b/tinyMCE/plugins/xhtmlxtras/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ja_utf-8.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ko.js b/tinyMCE/plugins/xhtmlxtras/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ko.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/nb.js b/tinyMCE/plugins/xhtmlxtras/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/nb.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/nl.js b/tinyMCE/plugins/xhtmlxtras/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/nl.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/nn.js b/tinyMCE/plugins/xhtmlxtras/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/nn.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/pl.js b/tinyMCE/plugins/xhtmlxtras/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/pl.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/pt_br.js b/tinyMCE/plugins/xhtmlxtras/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3f511ceaceafcb2c2ac9b4c8171e5833265022a
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/pt_br.js
@@ -0,0 +1,49 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citação',
+abbr_desc : 'Abreviação',
+acronym_desc : 'Acrônimo',
+del_desc : 'Remoção',
+ins_desc : 'Inserção',
+attribute_label_title : 'Título',
+attribute_label_id : 'ID',
+attribute_label_class : 'Classe',
+attribute_label_style : 'Estilo',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Data/hora',
+attribute_label_langdir : 'Escrita',
+attribute_option_ltr : 'da esquerda para direita',
+attribute_option_rtl : 'da direita para esquerda',
+attribute_label_langcode : 'Idioma',
+attribute_label_tabindex : 'TabIndex',
+attribute_label_accesskey : 'Tecla de atalho',
+attribute_label_cite : 'Citação',
+attribute_events_tab : 'Eventos',
+attribute_attrib_tab : 'Atributos',
+general_tab : 'Geral',
+attrib_tab : 'Atributos',
+events_tab : 'Eventos',
+fieldset_general_tab : 'Configuração geral',
+fieldset_attrib_tab : 'Atributo',
+fieldset_events_tab : 'Evento',
+title_ins_element : 'Inserção',
+title_del_element : 'Remoção',
+title_acronym_element : 'Acrônimo',
+title_abbr_element : 'Abreviação',
+title_cite_element : 'Citação',
+remove : 'Remover',
+not_set : '--não definido--',
+insert_date : 'Inserir data/hora atual',
+option_ltr : 'Esquerda para direita',
+option_rtl : 'Direita para esquerda',
+attribs_desc : 'Inserir/editar atributos',
+attribs_title : 'Inserir/editar atributos'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ro.js b/tinyMCE/plugins/xhtmlxtras/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ro.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ru.js b/tinyMCE/plugins/xhtmlxtras/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..7660c4f32a2473ffb420272a4a03c35c75ff1ca1
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ru.js
@@ -0,0 +1,42 @@
+// RU lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Цитирование',
+abbr_desc : 'Аббревиатура',
+acronym_desc : 'Акроним',
+del_desc : 'Стирание',
+ins_desc : 'Вставка',
+attribute_label_title : 'Заголовок',
+attribute_label_id : 'ID',
+attribute_label_class : 'Класс',
+attribute_label_style : 'Стиль',
+attribute_label_cite : 'Цитировать',
+attribute_label_datetime : 'Дата/Время',
+attribute_label_langdir : 'Направление Текста',
+attribute_option_ltr : 'Слева направо',
+attribute_option_rtl : 'Справа налево',
+attribute_label_langcode : 'Язык',
+attribute_label_tabindex : 'Порядковый Номер',
+attribute_label_accesskey : 'Горячая Клавиша',
+attribute_label_cite : 'Цитировать',
+attribute_events_tab : 'События',
+attribute_attrib_tab : 'Атрибуты',
+general_tab : 'Основной',
+attrib_tab : 'Атрибуты',
+events_tab : 'События',
+fieldset_general_tab : 'Основные Установки',
+fieldset_attrib_tab : 'Элемент Атрибуты',
+fieldset_events_tab : 'Элемент События',
+title_ins_element : 'Элемент Вставка',
+title_del_element : 'Элемент События',
+title_acronym_element : 'Элемент Акроним',
+title_abbr_element : 'Элемент Аббревиатура',
+title_cite_element : 'Элемент Цитирование',
+remove : 'Убрать',
+not_set : '--не установлен--',
+insert_date : 'Вставить текущие дату/время',
+option_ltr : 'Слева направо',
+option_rtl : 'Справа налево',
+attribs_desc : 'Вставить/Изменить Атрибуты',
+attribs_title : 'Вставить/Изменить Атрибуты'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ru_CP1251.js b/tinyMCE/plugins/xhtmlxtras/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..32450c40903592031a4ee7a25451f59b69251546
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ru_CP1251.js
@@ -0,0 +1,42 @@
+// RU lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Öèòèðîâàíèå',
+abbr_desc : 'Àááðåâèàòóðà',
+acronym_desc : 'Àêðîíèì',
+del_desc : 'Ñòèðàíèå',
+ins_desc : 'Âñòàâêà',
+attribute_label_title : 'Çàãîëîâîê',
+attribute_label_id : 'ID',
+attribute_label_class : 'Êëàññ',
+attribute_label_style : 'Ñòèëü',
+attribute_label_cite : 'Öèòèðîâàòü',
+attribute_label_datetime : 'Äàòà/Âðåìÿ',
+attribute_label_langdir : 'Íàïðàâëåíèå Òåêñòà',
+attribute_option_ltr : 'Ñëåâà íàïðàâî',
+attribute_option_rtl : 'Ñïðàâà íàëåâî',
+attribute_label_langcode : 'ßçûê',
+attribute_label_tabindex : 'Ïîðÿäêîâûé Íîìåð',
+attribute_label_accesskey : 'Ãîðÿ÷àÿ Êëàâèøà',
+attribute_label_cite : 'Öèòèðîâàòü',
+attribute_events_tab : 'Ñîáûòèÿ',
+attribute_attrib_tab : 'Àòðèáóòû',
+general_tab : 'Îñíîâíîé',
+attrib_tab : 'Àòðèáóòû',
+events_tab : 'Ñîáûòèÿ',
+fieldset_general_tab : 'Îñíîâíûå Óñòàíîâêè',
+fieldset_attrib_tab : 'Ýëåìåíò Àòðèáóòû',
+fieldset_events_tab : 'Ýëåìåíò Ñîáûòèÿ',
+title_ins_element : 'Ýëåìåíò Âñòàâêà',
+title_del_element : 'Ýëåìåíò Ñîáûòèÿ',
+title_acronym_element : 'Ýëåìåíò Àêðîíèì',
+title_abbr_element : 'Ýëåìåíò Àááðåâèàòóðà',
+title_cite_element : 'Ýëåìåíò Öèòèðîâàíèå',
+remove : 'Óáðàòü',
+not_set : '--íå óñòàíîâëåí--',
+insert_date : 'Âñòàâèòü òåêóùèå äàòó/âðåìÿ',
+option_ltr : 'Ñëåâà íàïðàâî',
+option_rtl : 'Ñïðàâà íàëåâî',
+attribs_desc : 'Âñòàâèòü/Èçìåíèòü Àòðèáóòû',
+attribs_title : 'Âñòàâèòü/Èçìåíèòü Àòðèáóòû'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/ru_KOI8-R.js b/tinyMCE/plugins/xhtmlxtras/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..ebac79a46e79e2d70ad9998e9edcf538b877db2e
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/ru_KOI8-R.js
@@ -0,0 +1,42 @@
+// RU lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'ãÉÔÉÒÏ×ÁÎÉÅ',
+abbr_desc : 'áÂÂÒÅ×ÉÁÔÕÒÁ',
+acronym_desc : 'áËÒÏÎÉÍ',
+del_desc : 'óÔÉÒÁÎÉÅ',
+ins_desc : '÷ÓÔÁ×ËÁ',
+attribute_label_title : 'úÁÇÏÌÏ×ÏË',
+attribute_label_id : 'ID',
+attribute_label_class : 'ëÌÁÓÓ',
+attribute_label_style : 'óÔÉÌØ',
+attribute_label_cite : 'ãÉÔÉÒÏ×ÁÔØ',
+attribute_label_datetime : 'äÁÔÁ/÷ÒÅÍÑ',
+attribute_label_langdir : 'îÁÐÒÁ×ÌÅÎÉÅ ôÅËÓÔÁ',
+attribute_option_ltr : 'óÌÅ×Á ÎÁÐÒÁ×Ï',
+attribute_option_rtl : 'óÐÒÁ×Á ÎÁÌÅ×Ï',
+attribute_label_langcode : 'ñÚÙË',
+attribute_label_tabindex : 'ðÏÒÑÄËÏ×ÙÊ îÏÍÅÒ',
+attribute_label_accesskey : 'çÏÒÑÞÁÑ ëÌÁ×ÉÛÁ',
+attribute_label_cite : 'ãÉÔÉÒÏ×ÁÔØ',
+attribute_events_tab : 'óÏÂÙÔÉÑ',
+attribute_attrib_tab : 'áÔÒÉÂÕÔÙ',
+general_tab : 'ïÓÎÏ×ÎÏÊ',
+attrib_tab : 'áÔÒÉÂÕÔÙ',
+events_tab : 'óÏÂÙÔÉÑ',
+fieldset_general_tab : 'ïÓÎÏ×ÎÙÅ õÓÔÁÎÏ×ËÉ',
+fieldset_attrib_tab : 'üÌÅÍÅÎÔ áÔÒÉÂÕÔÙ',
+fieldset_events_tab : 'üÌÅÍÅÎÔ óÏÂÙÔÉÑ',
+title_ins_element : 'üÌÅÍÅÎÔ ÷ÓÔÁ×ËÁ',
+title_del_element : 'üÌÅÍÅÎÔ óÏÂÙÔÉÑ',
+title_acronym_element : 'üÌÅÍÅÎÔ áËÒÏÎÉÍ',
+title_abbr_element : 'üÌÅÍÅÎÔ áÂÂÒÅ×ÉÁÔÕÒÁ',
+title_cite_element : 'üÌÅÍÅÎÔ ãÉÔÉÒÏ×ÁÎÉÅ',
+remove : 'õÂÒÁÔØ',
+not_set : '--ÎÅ ÕÓÔÁÎÏ×ÌÅÎ--',
+insert_date : '÷ÓÔÁ×ÉÔØ ÔÅËÕÝÉÅ ÄÁÔÕ/×ÒÅÍÑ',
+option_ltr : 'óÌÅ×Á ÎÁÐÒÁ×Ï',
+option_rtl : 'óÐÒÁ×Á ÎÁÌÅ×Ï',
+attribs_desc : '÷ÓÔÁ×ÉÔØ/éÚÍÅÎÉÔØ áÔÒÉÂÕÔÙ',
+attribs_title : '÷ÓÔÁ×ÉÔØ/éÚÍÅÎÉÔØ áÔÒÉÂÕÔÙ'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/si.js b/tinyMCE/plugins/xhtmlxtras/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/si.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/sk.js b/tinyMCE/plugins/xhtmlxtras/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/sk.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/sq.js b/tinyMCE/plugins/xhtmlxtras/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/sq.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/sr.js b/tinyMCE/plugins/xhtmlxtras/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/sr.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/sv.js b/tinyMCE/plugins/xhtmlxtras/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/sv.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/sv_utf8.js b/tinyMCE/plugins/xhtmlxtras/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/sv_utf8.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/tr.js b/tinyMCE/plugins/xhtmlxtras/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/tr.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/uk.js b/tinyMCE/plugins/xhtmlxtras/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..988f09629e7972e96f0afcc8770927a31fa4385a
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/uk.js
@@ -0,0 +1,42 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Цитування',
+abbr_desc : 'Абревіатура',
+acronym_desc : 'Акронім',
+del_desc : 'Стирання',
+ins_desc : 'Вставка',
+attribute_label_title : 'Заголовок',
+attribute_label_id : 'ID',
+attribute_label_class : 'Клас',
+attribute_label_style : 'Стиль',
+attribute_label_cite : 'Цитувати',
+attribute_label_datetime : 'Дата/Час',
+attribute_label_langdir : 'Напрямок Тексту',
+attribute_option_ltr : 'Зліва направо',
+attribute_option_rtl : 'Справа наліво',
+attribute_label_langcode : 'Мова',
+attribute_label_tabindex : 'Порядковий Номер',
+attribute_label_accesskey : 'Гаряча Клавіша',
+attribute_label_cite : 'Цитувати',
+attribute_events_tab : 'Події',
+attribute_attrib_tab : 'Атрибути',
+general_tab : 'Основний',
+attrib_tab : 'Атрибути',
+events_tab : 'Події',
+fieldset_general_tab : 'Основні Установки',
+fieldset_attrib_tab : 'Елемент Атрибути',
+fieldset_events_tab : 'Елемент Події',
+title_ins_element : 'Елемент Вставка',
+title_del_element : 'Елемент Події',
+title_acronym_element : 'Елемент Акронім',
+title_abbr_element : 'Елемент Абревіатура',
+title_cite_element : 'Елемент Цитування',
+remove : 'Прибрати',
+not_set : '--не встановлено--',
+insert_date : 'Вставити поточні дату/час',
+option_ltr : 'Зліва направо',
+option_rtl : 'Справа наліво',
+attribs_desc : 'Вставити/Змінити Атрибути',
+attribs_title : 'Вставити/Змінити Атрибути'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/uk_CP1251.js b/tinyMCE/plugins/xhtmlxtras/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..7c0442d53f1f45701d983e645a83018e7ea24607
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/uk_CP1251.js
@@ -0,0 +1,42 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Öèòóâàííÿ',
+abbr_desc : 'Àáðåâ³àòóðà',
+acronym_desc : 'Àêðîí³ì',
+del_desc : 'Ñòèðàííÿ',
+ins_desc : 'Âñòàâêà',
+attribute_label_title : 'Çàãîëîâîê',
+attribute_label_id : 'ID',
+attribute_label_class : 'Êëàñ',
+attribute_label_style : 'Ñòèëü',
+attribute_label_cite : 'Öèòóâàòè',
+attribute_label_datetime : 'Äàòà/×àñ',
+attribute_label_langdir : 'Íàïðÿìîê Òåêñòó',
+attribute_option_ltr : 'Çë³âà íàïðàâî',
+attribute_option_rtl : 'Ñïðàâà íàë³âî',
+attribute_label_langcode : 'Ìîâà',
+attribute_label_tabindex : 'Ïîðÿäêîâèé Íîìåð',
+attribute_label_accesskey : 'Ãàðÿ÷à Êëàâ³øà',
+attribute_label_cite : 'Öèòóâàòè',
+attribute_events_tab : 'Ïî䳿',
+attribute_attrib_tab : 'Àòðèáóòè',
+general_tab : 'Îñíîâíèé',
+attrib_tab : 'Àòðèáóòè',
+events_tab : 'Ïî䳿',
+fieldset_general_tab : 'Îñíîâí³ Óñòàíîâêè',
+fieldset_attrib_tab : 'Åëåìåíò Àòðèáóòè',
+fieldset_events_tab : 'Åëåìåíò Ïî䳿',
+title_ins_element : 'Åëåìåíò Âñòàâêà',
+title_del_element : 'Åëåìåíò Ïî䳿',
+title_acronym_element : 'Åëåìåíò Àêðîí³ì',
+title_abbr_element : 'Åëåìåíò Àáðåâ³àòóðà',
+title_cite_element : 'Åëåìåíò Öèòóâàííÿ',
+remove : 'Ïðèáðàòè',
+not_set : '--íå âñòàíîâëåíî--',
+insert_date : 'Âñòàâèòè ïîòî÷í³ äàòó/÷àñ',
+option_ltr : 'Çë³âà íàïðàâî',
+option_rtl : 'Ñïðàâà íàë³âî',
+attribs_desc : 'Âñòàâèòè/Çì³íèòè Àòðèáóòè',
+attribs_title : 'Âñòàâèòè/Çì³íèòè Àòðèáóòè'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/uk_KOI8-U.js b/tinyMCE/plugins/xhtmlxtras/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..359b9f8d705be65ec0217e9e38d0c9a7853fc30d
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/uk_KOI8-U.js
@@ -0,0 +1,42 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'ãÉÔÕ×ÁÎÎÑ',
+abbr_desc : 'áÂÒÅצÁÔÕÒÁ',
+acronym_desc : 'áËÒÏΦÍ',
+del_desc : 'óÔÉÒÁÎÎÑ',
+ins_desc : '÷ÓÔÁ×ËÁ',
+attribute_label_title : 'úÁÇÏÌÏ×ÏË',
+attribute_label_id : 'ID',
+attribute_label_class : 'ëÌÁÓ',
+attribute_label_style : 'óÔÉÌØ',
+attribute_label_cite : 'ãÉÔÕ×ÁÔÉ',
+attribute_label_datetime : 'äÁÔÁ/þÁÓ',
+attribute_label_langdir : 'îÁÐÒÑÍÏË ôÅËÓÔÕ',
+attribute_option_ltr : 'ú̦×Á ÎÁÐÒÁ×Ï',
+attribute_option_rtl : 'óÐÒÁ×Á ÎÁ̦×Ï',
+attribute_label_langcode : 'íÏ×Á',
+attribute_label_tabindex : 'ðÏÒÑÄËÏ×ÉÊ îÏÍÅÒ',
+attribute_label_accesskey : 'çÁÒÑÞÁ ëÌÁצÛÁ',
+attribute_label_cite : 'ãÉÔÕ×ÁÔÉ',
+attribute_events_tab : 'ðÏĦ§',
+attribute_attrib_tab : 'áÔÒÉÂÕÔÉ',
+general_tab : 'ïÓÎÏ×ÎÉÊ',
+attrib_tab : 'áÔÒÉÂÕÔÉ',
+events_tab : 'ðÏĦ§',
+fieldset_general_tab : 'ïÓÎÏ×Φ õÓÔÁÎÏ×ËÉ',
+fieldset_attrib_tab : 'åÌÅÍÅÎÔ áÔÒÉÂÕÔÉ',
+fieldset_events_tab : 'åÌÅÍÅÎÔ ðÏĦ§',
+title_ins_element : 'åÌÅÍÅÎÔ ÷ÓÔÁ×ËÁ',
+title_del_element : 'åÌÅÍÅÎÔ ðÏĦ§',
+title_acronym_element : 'åÌÅÍÅÎÔ áËÒÏΦÍ',
+title_abbr_element : 'åÌÅÍÅÎÔ áÂÒÅצÁÔÕÒÁ',
+title_cite_element : 'åÌÅÍÅÎÔ ãÉÔÕ×ÁÎÎÑ',
+remove : 'ðÒÉÂÒÁÔÉ',
+not_set : '--ÎÅ ×ÓÔÁÎÏ×ÌÅÎÏ--',
+insert_date : '÷ÓÔÁ×ÉÔÉ ÐÏÔÏÞΦ ÄÁÔÕ/ÞÁÓ',
+option_ltr : 'ú̦×Á ÎÁÐÒÁ×Ï',
+option_rtl : 'óÐÒÁ×Á ÎÁ̦×Ï',
+attribs_desc : '÷ÓÔÁ×ÉÔÉ/úͦÎÉÔÉ áÔÒÉÂÕÔÉ',
+attribs_title : '÷ÓÔÁ×ÉÔÉ/úͦÎÉÔÉ áÔÒÉÂÕÔÉ'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/vi.js b/tinyMCE/plugins/xhtmlxtras/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/vi.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/zh_cn.js b/tinyMCE/plugins/xhtmlxtras/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/zh_cn.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/zh_cn_utf8.js b/tinyMCE/plugins/xhtmlxtras/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/zh_cn_utf8.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/zh_tw.js b/tinyMCE/plugins/xhtmlxtras/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/zh_tw.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/xhtmlxtras/langs/zh_tw_utf8.js b/tinyMCE/plugins/xhtmlxtras/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1233c97fe64a9dae38a73f934adca81bab3a561
--- /dev/null
+++ b/tinyMCE/plugins/xhtmlxtras/langs/zh_tw_utf8.js
@@ -0,0 +1,33 @@
+// UK lang variables
+
+tinyMCE.addToLang('xhtmlxtras',{
+cite_desc : 'Citation',
+abbr_desc : 'Abbreviation',
+acronym_desc : 'Acronym',
+del_desc : 'Deletion',
+ins_desc : 'Insertion',
+attribute_label_title : 'Title',
+attribute_label_id : 'ID',
+attribute_label_class : 'Class',
+attribute_label_style : 'Style',
+attribute_label_cite : 'Cite',
+attribute_label_datetime : 'Date/Time',
+attribute_label_langdir : 'Text Direction',
+attribute_option_ltr : 'Left to right',
+attribute_option_rtl : 'Right to left',
+attribute_label_langcode : 'Language',
+general_tab : 'General',
+attrib_tab : 'Attributes',
+events_tab : 'Events',
+fieldset_general_tab : 'General Settings',
+fieldset_attrib_tab : 'Element Attributes',
+fieldset_events_tab : 'Element Events',
+title_ins_element : 'Insertion Element',
+title_del_element : 'Deletion Element',
+title_acronym_element : 'Acronym Element',
+title_abbr_element : 'Abbreviation Element',
+title_cite_element : 'Citation Element',
+remove : 'Remove',
+not_set : '--not set--',
+insert_date : 'Insert current date/time'
+});
diff --git a/tinyMCE/plugins/zoom/editor_plugin.js b/tinyMCE/plugins/zoom/editor_plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee3dd8ef276c1636e07fff77cb61cafca2fd4c90
--- /dev/null
+++ b/tinyMCE/plugins/zoom/editor_plugin.js
@@ -0,0 +1 @@
+var TinyMCE_ZoomPlugin={getInfo:function(){return{longname:'Zoom',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/zoom',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(control_name){if(!tinyMCE.isMSIE||tinyMCE.isMSIE5_0||tinyMCE.isOpera)return"";switch(control_name){case"zoom":return'<select id="{$editor_id}_zoomSelect" name="{$editor_id}_zoomSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceZoom\',false,this.options[this.selectedIndex].value);" class="mceSelectList">'+'<option value="100%">+ 100%</option>'+'<option value="150%">+ 150%</option>'+'<option value="200%">+ 200%</option>'+'<option value="250%">+ 250%</option>'+'</select>'}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceZoom":tinyMCE.getInstanceById(editor_id).contentDocument.body.style.zoom=value;tinyMCE.getInstanceById(editor_id).contentDocument.body.style.mozZoom=value;return true}return false}};tinyMCE.addPlugin("zoom",TinyMCE_ZoomPlugin);
\ No newline at end of file
diff --git a/tinyMCE/plugins/zoom/editor_plugin_src.js b/tinyMCE/plugins/zoom/editor_plugin_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd09872ff13512b65b7e9ae3cc41d62fefce8ca2
--- /dev/null
+++ b/tinyMCE/plugins/zoom/editor_plugin_src.js
@@ -0,0 +1,56 @@
+/**
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+var TinyMCE_ZoomPlugin = {
+	getInfo : function() {
+		return {
+			longname : 'Zoom',
+			author : 'Moxiecode Systems AB',
+			authorurl : 'http://tinymce.moxiecode.com',
+			infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/zoom',
+			version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+		};
+	},
+
+	/**
+	 * Returns the HTML contents of the zoom control.
+	 */
+	getControlHTML : function(control_name) {
+		if (!tinyMCE.isMSIE || tinyMCE.isMSIE5_0 || tinyMCE.isOpera)
+			return "";
+
+		switch (control_name) {
+			case "zoom":
+				return '<select id="{$editor_id}_zoomSelect" name="{$editor_id}_zoomSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceZoom\',false,this.options[this.selectedIndex].value);" class="mceSelectList">' + 
+						'<option value="100%">+ 100%</option>' + 
+						'<option value="150%">+ 150%</option>' + 
+						'<option value="200%">+ 200%</option>' + 
+						'<option value="250%">+ 250%</option>' + 
+						'</select>';
+		}
+
+		return "";
+	},
+
+	/**
+	 * Executes the mceZoom command.
+	 */
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		// Handle commands
+		switch (command) {
+			case "mceZoom":
+				tinyMCE.getInstanceById(editor_id).contentDocument.body.style.zoom = value;
+				tinyMCE.getInstanceById(editor_id).contentDocument.body.style.mozZoom = value;
+				return true;
+		}
+
+		// Pass to next handler in chain
+		return false;
+	}
+};
+
+tinyMCE.addPlugin("zoom", TinyMCE_ZoomPlugin);
diff --git a/tinyMCE/plugins/zoom/readme.txt b/tinyMCE/plugins/zoom/readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6bc6d7defa783ade6332684e00680e3706182c25
--- /dev/null
+++ b/tinyMCE/plugins/zoom/readme.txt
@@ -0,0 +1 @@
+Check the TinyMCE documentation for details on this plugin.
diff --git a/tinyMCE/themes/advanced/about.htm b/tinyMCE/themes/advanced/about.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6918488a23fc099a958f83e8b957b63bb6778bbe
--- /dev/null
+++ b/tinyMCE/themes/advanced/about.htm
@@ -0,0 +1,52 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_about_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/about.js"></script>
+	<base target="_self" />
+</head>
+<body id="about" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+		<div class="tabs">
+			<ul>
+				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_about}</a></span></li>
+				<li id="help_tab"><span><a href="javascript:mcTabs.displayTab('help_tab','help_panel');" onmousedown="return false;">{$lang_help}</a></span></li>
+				<li id="plugins_tab"><span><a href="javascript:mcTabs.displayTab('plugins_tab','plugins_panel');" onmousedown="return false;">{$lang_plugins}</a></span></li>
+			</ul>
+		</div>
+
+		<div class="panel_wrapper">
+			<div id="general_panel" class="panel current">
+				<h3>{$lang_about_title}</h3>
+				<p>Version: {$tinymce_version} ({$tinymce_releasedate})</p>
+				<p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a>
+				by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p>
+				<p>Copyright &copy; 2003-2007, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>
+				<p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p>
+
+				<div id="buttoncontainer"></div>
+			</div>
+
+			<div id="plugins_panel" class="panel">
+				<div id="pluginscontainer">
+					<h3>{$lang_loaded_plugins}</h3>
+
+					<div id="plugintablecontainer">
+					</div>
+
+					<p>&nbsp;</p>
+				</div>
+			</div>
+
+			<div id="help_panel" class="panel noscroll" style="overflow: visible;">
+				<div id="iframecontainer"></div>
+			</div>
+		</div>
+
+		<div class="mceActionPanel">
+			<div style="float: right">
+				<input type="button" id="cancel" name="cancel" value="{$lang_close}" onclick="tinyMCEPopup.close();" />
+			</div>
+		</div>
+</body>
+</html>
diff --git a/tinyMCE/themes/advanced/anchor.htm b/tinyMCE/themes/advanced/anchor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..53d7969f058ef951f4d15411cb81a8e326299c38
--- /dev/null
+++ b/tinyMCE/themes/advanced/anchor.htm
@@ -0,0 +1,33 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_insert_anchor_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/anchor.js"></script>
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onsubmit="insertAnchor();return false;" action="#">
+
+	<table border="0" cellpadding="4" cellspacing="0">
+		<tr>
+			<td colspan="2" class="title">{$lang_insert_anchor_title}</td>
+		</tr>
+		<tr>
+			<td nowrap="nowrap">{$lang_insert_anchor_name}:</td>
+			<td><input name="anchorName" type="text" id="anchorName" value="" style="width: 200px" /></td>
+		</tr>
+	</table>
+
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_update}" onclick="insertAnchor();" />
+		</div>
+
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+
+</form>
+</body>
+</html>
diff --git a/tinyMCE/themes/advanced/charmap.htm b/tinyMCE/themes/advanced/charmap.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9aed1d4b5cbc75eede2e1b43d94ec27819943d6e
--- /dev/null
+++ b/tinyMCE/themes/advanced/charmap.htm
@@ -0,0 +1,53 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_theme_charmap_title}</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/charmap.js"></script>
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<table align="center" border="0" cellspacing="0" cellpadding="2">
+    <tr>
+        <td colspan="2" class="title">{$lang_theme_charmap_title}</td>
+    </tr>
+    <tr>
+        <td rowspan="2" align="left" valign="top">
+            <script language="javascript" type="text/javascript">renderCharMapHTML();</script>
+        </td>
+        <td width="100" align="center" valign="top">
+            <table border="0" cellpadding="0" cellspacing="0" width="100" style="height: 100px">
+                <tr>
+                    <td class="charmapOver" style="font-size: 40px; height:80px;" id="codeV">&nbsp;</td>
+                </tr>
+                <tr>
+                    <td style="font-size: 10px; font-family: Arial, Helvetica, sans-serif; text-align:center;" id="codeN">&nbsp;</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td valign="bottom" style="padding-bottom: 3px;">
+            <table width="100" align="center" border="0" cellpadding="2" cellspacing="0">
+                <tr>
+                    <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">HTML-Code</td>
+                </tr>
+                <tr>
+                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center">&nbsp;</td>
+                </tr>
+                <tr>
+                    <td style="font-size: 1px;">&nbsp;</td>
+                </tr>
+                <tr>
+                    <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">NUM-Code</td>
+                </tr>
+                <tr>
+                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center">&nbsp;</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+</table>
+
+</body>
+</html>
diff --git a/tinyMCE/themes/advanced/color_picker.htm b/tinyMCE/themes/advanced/color_picker.htm
new file mode 100644
index 0000000000000000000000000000000000000000..668d744a3409b40009138577063db50bbf22bed7
--- /dev/null
+++ b/tinyMCE/themes/advanced/color_picker.htm
@@ -0,0 +1,74 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_theme_colorpicker_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/color_picker.js"></script>
+	<link href="css/colorpicker.css" rel="stylesheet" type="text/css" />
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+	<div class="tabs">
+		<ul>
+			<li id="picker_tab" class="current"><span><a href="javascript:mcTabs.displayTab('picker_tab','picker_panel');" onmousedown="return false;">{$lang_color_picker_tab}</a></span></li>
+			<li id="rgb_tab"><span><a href="#" onclick="generateWebColors();mcTabs.displayTab('rgb_tab','rgb_panel');" onmousedown="return false;">{$lang_web_colors_tab}</a></span></li>
+			<li id="named_tab"><span><a  href="#" onclick="generateNamedColors();javascript:mcTabs.displayTab('named_tab','named_panel');" onmousedown="return false;">{$lang_named_colors_tab}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="picker_panel" class="panel current">
+			<fieldset>
+				<legend>{$lang_color_picker}</legend>
+				<div id="picker">
+					<img id="colorpicker" src="images/colors.jpg" onclick="computeColor(event)" onmousedown="isMouseDown = true;return false;" onmouseup="isMouseDown = false;" onmousemove="if (isMouseDown && isMouseOver) computeColor(event); return false;" onmouseover="isMouseOver=true;" onmouseout="isMouseOver=false;" />
+
+					<div id="light">
+						<!-- Will be filled with divs -->
+					</div>
+
+					<br style="clear: both" />
+				</div>
+			</fieldset>
+		</div>
+
+		<div id="rgb_panel" class="panel">
+			<fieldset>
+				<legend>{$lang_web_colors}</legend>
+				<div id="webcolors">
+					<!-- Gets filled with web safe colors-->
+				</div>
+
+				<br style="clear: both" />
+			</fieldset>
+		</div>
+
+		<div id="named_panel" class="panel">
+			<fieldset>
+				<legend>{$lang_named_colors}</legend>
+				<div id="namedcolors">
+					<!-- Gets filled with named colors-->
+				</div>
+
+				<br style="clear: both" />
+
+				<div id="colornamecontainer">
+					{$lang_color_name} <span id="colorname"></span>
+				</div>
+			</fieldset>
+		</div>
+	</div>
+
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_theme_colorpicker_apply}" onclick="insertAction();" />
+		</div>
+
+		<div id="preview"></div>
+
+		<div id="previewblock">
+			<label for="color">{$lang_color}</label> <input id="color" type="text" size="8" maxlength="8" class="text" />
+		</div>
+	</div>
+</body>
+</html>
diff --git a/tinyMCE/themes/advanced/css/colorpicker.css b/tinyMCE/themes/advanced/css/colorpicker.css
new file mode 100644
index 0000000000000000000000000000000000000000..4b0360bf117150e0a7630d7c098b3f4765460e1a
--- /dev/null
+++ b/tinyMCE/themes/advanced/css/colorpicker.css
@@ -0,0 +1,53 @@
+/* Colorpicker dialog specific CSS */
+
+#preview {
+	float: right;
+	width: 50px;
+	height: 14px;
+	line-height: 1px;
+	border: 1px solid black;
+	margin-left: 5px;
+}
+
+#colorpicker {
+	float: left;
+	cursor: crosshair;
+}
+
+#light {
+	border: 1px solid gray;
+	margin-left: 5px;
+	float: left;
+	width: 15px;
+	cursor: crosshair;
+}
+
+#light div {
+	overflow: hidden;
+}
+
+#previewblock {
+	float: right;
+	padding-left: 10px;
+	height: 20px;
+}
+
+.panel_wrapper div.current {
+	height: 175px;
+}
+
+#namedcolors {
+	width: 150px;
+}
+
+#namedcolors a {
+	display: block;
+	float: left;
+	width: 10px; height: 10px;
+	margin: 1px 1px 0 0;
+	overflow: hidden;
+}
+
+#colornamecontainer {
+	margin-top: 5px;
+}
\ No newline at end of file
diff --git a/tinyMCE/themes/advanced/css/editor_content.css b/tinyMCE/themes/advanced/css/editor_content.css
new file mode 100644
index 0000000000000000000000000000000000000000..182e791211da181b620847c9438f27e16bc60050
--- /dev/null
+++ b/tinyMCE/themes/advanced/css/editor_content.css
@@ -0,0 +1,58 @@
+/* This file contains the CSS data for the editable area(iframe) of TinyMCE */
+/* You can extend this CSS by adding your own CSS file with the the content_css option */
+
+body, td, pre {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+
+body {
+	background-color: #FFFFFF;
+}
+
+.mceVisualAid {
+	border: 1px dashed #BBBBBB !important;
+}
+
+div.mceVisualAid {
+	background-image:url('../images/spacer.gif');
+	visibility: visible !important;
+}
+
+.mceItemAnchor {
+	width: 12px;
+	line-height: 6px;
+	overflow: hidden;
+	padding-left: 12px;
+	background-image: url('../images/anchor_symbol.gif');
+	background-position: bottom;
+	background-repeat: no-repeat;
+}
+
+/* Important is needed in Gecko browsers inorder to style links */
+/*
+a {
+	color: green !important;
+}
+*/
+
+/* Style selection range colors in Gecko browsers */
+/*
+::-moz-selection {
+	background-color: red;
+	color: green;
+}
+*/
+
+/* MSIE specific */
+
+* html body {
+	scrollbar-3dlight-color: #F0F0EE;
+	scrollbar-arrow-color: #676662;
+	scrollbar-base-color: #F0F0EE;
+	scrollbar-darkshadow-color: #DDDDDD;
+	scrollbar-face-color: #E0E0DD;
+	scrollbar-highlight-color: #F0F0EE;
+	scrollbar-shadow-color: #F0F0EE;
+	scrollbar-track-color: #F5F5F5;
+}
diff --git a/tinyMCE/themes/advanced/css/editor_popup.css b/tinyMCE/themes/advanced/css/editor_popup.css
new file mode 100644
index 0000000000000000000000000000000000000000..f8d3550cecf5bc0957653c500224dd358ef96425
--- /dev/null
+++ b/tinyMCE/themes/advanced/css/editor_popup.css
@@ -0,0 +1,331 @@
+/* This file contains the CSS data for all popups in TinyMCE */
+
+body {
+	background-color: #F0F0EE;
+	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: #DDDDDD;
+	scrollbar-face-color: #E0E0DD;
+	scrollbar-highlight-color: #F0F0EE;
+	scrollbar-shadow-color: #F0F0EE;
+	scrollbar-track-color: #F5F5F5;
+	margin: 8px;
+}
+
+td {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px;
+}
+
+input {
+	background: #FFFFFF;
+	border: 1px solid #cccccc;
+}
+
+td, input, select, textarea {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+
+input, select, textarea {
+	border: 1px solid #808080;
+}
+
+.input_noborder {
+	border: 0;
+}
+
+#insert, .updateButton {
+   font-weight: bold;
+   width: 90px;
+   height: 21px;
+   border: 0;
+   background-image: url('../images/insert_button_bg.gif');
+   cursor: pointer;
+}
+
+#cancel {
+   font-weight: bold;
+   width: 90px;
+   height: 21px;
+   border: 0;
+   background-image: url('../images/cancel_button_bg.gif');
+   cursor: pointer;
+}
+
+/* Mozilla only style */
+html>body #insert, html>body #cancel {
+	padding-bottom: 2px;
+}
+
+.title {
+	font-size: 12px;
+	font-weight: bold;
+	color: #2B6FB6;
+}
+
+table.charmap {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #AAAAAA;
+}
+
+td.charmap, td.charmapOver {
+	color: #000000;
+	border-color: #AAAAAA;
+	border-style: solid;
+	border-width: 1px;
+	text-align: center;
+	font-size: 12px;
+}
+
+td.charmapOver {
+	background-color: #CCCCCC;
+	cursor: default;
+}
+
+a.charmap {
+	color: #000000;
+	text-decoration: none
+}
+
+.wordWrapCode {
+	vertical-align: middle;
+	border: 1px none #000000;
+	background-color: transparent;
+}
+
+input.radio {
+	border: 1px none #000000;
+	background-color: transparent;
+	vertical-align: middle;
+}
+
+input.checkbox {
+	border: 1px none #000000;
+	background-color: transparent;
+	vertical-align: middle;
+}
+
+.mceButtonNormal, .mceButtonOver, .mceButtonDown, .mceSeparator, .mceButtonDisabled, .mceButtonSelected {
+	margin-left: 1px;
+}
+
+.mceButtonNormal {
+	border-top: 1px solid;
+	border-left: 1px solid;
+	border-bottom: 1px solid;
+	border-right: 1px solid;
+	border-color: #F0F0EE;
+	cursor: default;
+}
+
+.mceButtonOver {
+	border: 1px solid #0A246A;
+	cursor: default;
+	background-color: #B6BDD2;
+}
+
+.mceButtonDown {
+	cursor: default;
+	border: 1px solid #0A246A;
+	background-color: #8592B5;
+}
+
+.mceButtonDisabled {
+	filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
+	-moz-opacity:0.3;
+	opacity: 0.3;
+	border-top: 1px solid;
+	border-left: 1px solid;
+	border-bottom: 1px solid;
+	border-right: 1px solid;
+	border-color: #F0F0EE;
+	cursor: default;
+}
+
+.mceActionPanel {
+	margin-top: 5px;
+}
+
+/* Tabs classes */
+
+.tabs {
+	float: left;
+	width: 100%;
+	line-height: normal;
+	background-image: url("../images/xp/tabs_bg.gif");
+}
+
+.tabs ul {
+	margin: 0;
+	padding: 0 0 0;
+	list-style: none;
+}
+
+.tabs li {
+	float: left;
+	background: url("../images/xp/tab_bg.gif") no-repeat left top;
+	margin: 0;
+	margin-left: 0;
+	margin-right: 2px;
+	padding: 0 0 0 10px;
+	line-height: 18px;
+}
+
+.tabs li.current {
+	background: url("../images/xp/tab_sel_bg.gif") no-repeat left top;
+	margin-right: 2px;
+}
+
+.tabs span {
+	float: left;
+	display: block;
+	background: url("../images/xp/tab_end.gif") no-repeat right top;
+	padding: 0px 10px 0 0;
+}
+
+.tabs .current span {
+	background: url("../images/xp/tab_sel_end.gif") no-repeat right top;
+}
+
+.tabs a {
+	text-decoration: none;
+	font-family: Verdana, Arial;
+	font-size: 10px;
+}
+
+.tabs a:link, .tabs a:visited, .tabs a:hover {
+	color: black;
+}
+
+.tabs a:hover {
+}
+
+.tabs .current {
+}
+
+.tabs .current a, .tabs .current a:link, .tabs .current a:visited {
+}
+
+.panel_wrapper div.panel {
+	display: none;
+}
+
+.panel_wrapper div.current {
+	display: block;
+	width: 100%;
+	height: 300px;
+	overflow: visible; /* Should be auto but that breaks Safari */
+}
+
+.panel_wrapper {
+	border: 1px solid #919B9C;
+	border-top: 0px;
+	padding: 10px;
+	padding-top: 5px;
+	clear: both;
+	background-color: white;
+}
+
+fieldset {
+	border: 1px solid #919B9C;
+	font-family: Verdana, Arial;
+	font-size: 10px;
+	padding: 0;
+	margin: 0;
+	padding: 4px;
+}
+
+legend {
+	color: #2B6FB6;
+	font-weight: bold;
+}
+
+.properties {
+	width: 100%;
+}
+
+.properties .column1 {
+}
+
+.properties .column2 {
+	text-align: left;
+}
+
+a:link, a:visited {
+	color: black;
+}
+
+a:hover {
+	color: #2B6FB6;
+}
+
+#plugintable thead {
+	font-weight: bold;
+	background-color: #DDDDDD;
+}
+
+#plugintable, #about #plugintable td {
+	border: 1px solid #919B9C;
+}
+
+#plugintable {
+	width: 99%;
+	margin-top: 10px;
+}
+
+#pluginscontainer {
+	height: 290px;
+	overflow: auto;
+}
+
+/* MSIE Specific styles */
+
+* html .panel_wrapper {
+	width: 100%;
+}
+
+.column {
+	float: left;
+}
+
+h1, h2, h3, h4 {
+	color: #2B6FB6;
+	margin: 0;
+	padding: 0;
+	padding-top: 5px;
+}
+
+h3 {
+	font-size: 14px;
+}
+
+#link .panel_wrapper, #link div.current {
+	height: 125px;
+}
+
+#image .panel_wrapper, #image div.current {
+	height: 190px;
+}
+
+label.msg { display: none; }
+label.invalid { color: #EE0000; display: inline; }
+input.invalid { border: 1px solid #EE0000; }
+
+/* Disables the advanced tab in the table plugin. */
+/*
+#table #advanced_tab {
+	display: none;
+}
+*/
+
+/* Disables the border input field and label in the table plugin. */
+/*
+#table #border, #table #borderlabel {
+	display: none;
+}
+*/
diff --git a/tinyMCE/themes/advanced/css/editor_ui.css b/tinyMCE/themes/advanced/css/editor_ui.css
new file mode 100644
index 0000000000000000000000000000000000000000..851837d9151f509a5cc48edd44e28a6dad9a483f
--- /dev/null
+++ b/tinyMCE/themes/advanced/css/editor_ui.css
@@ -0,0 +1,97 @@
+/* This file contains the CSS data for the editor UI of TinyMCE instances */
+
+.mceToolbarTop a, .mceToolbarTop a:visited, .mceToolbarTop a:hover, .mceToolbarBottom a, .mceToolbarBottom a:visited, .mceToolbarBottom a:hover {border: 0; margin: 0; padding: 0; background: transparent;}
+.mceSeparatorLine {border: 0; padding: 0; margin-left: 4px; margin-right: 2px;}
+.mceSelectList {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 7pt !important; font-weight: normal; margin-top: 3px; padding: 0; display: inline; vertical-align: top; background-color: #F0F0EE;}
+.mceLabel, .mceLabelDisabled {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt;}
+.mceLabel {color: #000000;}
+.mceLabelDisabled {cursor: text; color: #999999;}
+.mceEditor {background: #F0F0EE; border: 1px solid #cccccc; padding: 0; margin: 0;}
+.mceEditorArea { font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; background: #FFFFFF; padding: 0; margin: 0; }
+.mceToolbarTop, .mceToolbarBottom {background: #F0F0EE; line-height: 1px; font-size: 1px;}
+.mceToolbarTop {border-bottom: 1px solid #cccccc; padding-bottom: 1px;}
+.mceToolbarBottom {border-top: 1px solid #cccccc;}
+.mceToolbarContainer {display: block; position: relative; left: 0; top: 0; width: 100%;}
+.mceStatusbarTop, .mceStatusbarBottom, .mceStatusbar {height: 20px;}
+.mceStatusbarTop .mceStatusbarPathText, .mceStatusbarBottom .mceStatusbarPathText, .mceStatusbar .mceStatusbarPathText {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; padding: 2px; line-height: 16px; overflow: visible;}
+.mceStatusbarTop {border-bottom: 1px solid #cccccc;}
+.mceStatusbarBottom {border-top: 1px solid #cccccc;}
+.mceStatusbar {border-bottom: 1px solid #cccccc;}
+.mcePathItem, .mcePathItem:link, .mcePathItem:visited, .mcePathItem:hover {text-decoration: none; font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; color: #000000;}
+.mcePathItem:hover {text-decoration: underline;}
+.mceStatusbarPathText {float: left;}
+.mceStatusbarResize {float: right; background-image: url('../images/statusbar_resize.gif'); background-repeat: no-repeat; width: 11px; height: 20px; cursor: se-resize;}
+.mceResizeBox {width: 10px; height: 10px; display: none; border: 1px dotted gray; margin: 0; padding: 0;}
+.mceEditorIframe {border: 0;}
+
+/* Button CSS rules */
+
+a.mceButtonDisabled img, a.mceButtonNormal img, a.mceButtonSelected img {width: 20px; height: 20px; cursor: default; margin-top: 1px; margin-left: 1px;}
+a.mceButtonDisabled img {border: 0 !important;}
+a.mceButtonNormal img, a.mceButtonSelected img {border: 1px solid #F0F0EE !important;}
+a.mceButtonSelected img {border: 1px solid #6779AA !important; background-color: #D4D5D8;}
+a.mceButtonNormal img:hover, a.mceButtonSelected img:hover {border: 1px solid #0A246A !important; cursor: default; background-color: #B6BDD2;}
+a.mceButtonDisabled img {-moz-opacity:0.3; opacity: 0.3; border: 1px solid #F0F0EE !important; cursor: default;}
+a.mceTiledButton img {background-image: url('../images/buttons.gif'); background-repeat: no-repeat;}
+
+/* Menu button CSS rules */
+
+span.mceMenuButton img, span.mceMenuButtonSelected img {border: 1px solid #F0F0EE; margin-left: 1px;}
+span.mceMenuButtonSelected img {border: 1px solid #6779AA; background-color: #B6BDD2;}
+span.mceMenuButtonSelected img.mceMenuButton {border: 1px solid #F0F0EE; background-color: transparent;}
+span.mceMenuButton img.mceMenuButton, span.mceMenuButtonSelected img.mceMenuButton {border-left: 0; margin-left: 0;}
+span.mceMenuButton:hover img, span.mceMenuButtonSelected:hover img {border: 1px solid #0A246A; background-color: #B6BDD2;}
+span.mceMenuButton:hover img.mceMenuButton, span.mceMenuButtonSelected:hover img.mceMenuButton {border-left: 0;}
+span.mceMenuButtonFocus img {border: 1px solid gray; border-right: 0; margin-left: 1px; background-color: #F5F4F2;}
+span.mceMenuButtonFocus img.mceMenuButton {border: 1px solid gray; border-left: 1px solid #F5F4F2; margin-left: 0;}
+span.mceMenuHover img {border: 1px solid #0A246A; background-color: #B6BDD2;}
+span.mceMenuButtonSelected.mceMenuHover img.mceMenuButton {border: 1px solid #0A246A; background-color: #B6BDD2; border-left: 0;}
+
+/* Menu */
+
+.mceMenu {position: absolute; left: 0; top: 0; display: none; z-index: 1000; background-color: white; border: 1px solid gray; font-weight: normal;}
+.mceMenu a, .mceMenuTitle, .mceMenuDisabled {display: block; width: 100%; text-decoration: none; background-color: white; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; line-height: 20px; color: black;}
+.mceMenu a:hover {background-color: #B6BDD2; color: black; text-decoration: none !important;}
+.mceMenu span {padding-left: 10px; padding-right: 10px; display: block; line-height: 20px;}
+.mceMenuSeparator {border-bottom: 1px solid gray; background-color: gray; height: 1px;}
+.mceMenuTitle span {padding-left: 5px;}
+.mceMenuTitle {background-color: #DDDDDD; font-weight: bold;}
+.mceMenuDisabled {color: gray;}
+span.mceMenuSelectedItem {background-image: url('../images/menu_check.gif'); background-repeat: no-repeat; background-position: 5px 8px; padding-left: 20px;}
+span.mceMenuCheckItem {padding-left: 20px;}
+span.mceMenuLine {display: block; position: absolute; left: 0; top: -1px; background-color: #F5F4F2; width: 30px; height: 1px; overflow: hidden; padding-left: 0; padding-right: 0;}
+.mceColors table, .mceColors td {margin: 0; padding: 2px;}
+a.mceMoreColors {width: auto; padding: 0; margin: 0 3px 3px 3px; text-align: center; border: 1px solid white; text-decoration: none !important;}
+.mceColorPreview {position: absolute; overflow:hidden; left: 0; top: 0; margin-left: 3px; margin-top: 15px; width: 16px; height: 4px; background-color: red;}
+a.mceMoreColors:hover {border: 1px solid #0A246A;}
+.mceColors td a {width: 9px; height: 9px; overflow: hidden; border: 1px solid #808080;}
+
+/* MSIE 6 specific rules */
+
+* html a.mceButtonNormal img, * html a.mceButtonSelected img, * html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;}
+* html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;}
+* html a.mceButtonDisabled {border: 1px solid #F0F0EE !important;}
+* html a.mceButtonNormal, * html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;}
+* html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;}
+* html a.mceButtonNormal:hover, * html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;}
+* html .mceSelectList {margin-top: 2px;}
+* html span.mceMenuButton, * html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;}
+* html span.mceMenuButton img, * html span.mceMenuButtonSelected img, * html span.mceMenuButtonFocus img {position: relative; top: 1px;}
+* html a.mceMoreColors {width: auto;}
+* html .mceColors td a {width: 10px; height: 10px;}
+* html .mceColorPreview {margin-left: 2px; margin-top: 14px;}
+
+/* MSIE 7 specific rules */
+
+*:first-child+html a.mceButtonNormal img, *:first-child+html a.mceButtonSelected img, *:first-child+html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;}
+*:first-child+html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;}
+*:first-child+html a.mceButtonDisabled {border: 1px solid #F0F0EE !important;}
+*:first-child+html a.mceButtonNormal, *:first-child+html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;}
+*:first-child+html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;}
+*:first-child+html a.mceButtonNormal:hover, *:first-child+html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;}
+*:first-child+html .mceSelectList {margin-top: 2px;}
+*:first-child+html span.mceMenuButton, *:first-child+html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;}
+*:first-child+html span.mceMenuButton img, *:first-child+html span.mceMenuButtonSelected img, *:first-child+html span.mceMenuButtonFocus img {position: relative; top: 1px;}
+*:first-child+html a.mceMoreColors {width: 137px;}
+*:first-child+html .mceColors td a {width: 10px; height: 10px;}
+*:first-child+html .mceColorPreview {margin: 0; padding-left: 4px; margin-top: 14px; width: 14px;}
diff --git a/tinyMCE/themes/advanced/docs/en/about.htm b/tinyMCE/themes/advanced/docs/en/about.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a6957a6514d74539f2f346eeb769c09872a82ba4
--- /dev/null
+++ b/tinyMCE/themes/advanced/docs/en/about.htm
@@ -0,0 +1,31 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>About TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+  <tr> 
+    <td><span class="title">About TinyMCE</span></td>
+    <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+  </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE is a small WYSIWYG editor control for web browsers such as MSIE or Mozilla 
+that enables you to edit HTML contents in a more user friendly way. It has common 
+features that are found in most word processors and should not be difficult to 
+use.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+  <tr> 
+    <td>Go to: <a href="index.htm">Table of contents</a></td>
+    <td align="right"><a href="#">Top</a></td>
+  </tr>
+</table>
+<br>
+</BODY>
+</HTML>
diff --git a/tinyMCE/themes/advanced/docs/en/common_buttons.htm b/tinyMCE/themes/advanced/docs/en/common_buttons.htm
new file mode 100644
index 0000000000000000000000000000000000000000..518b28551ba1a3629b0a65a84bf50097095109d4
--- /dev/null
+++ b/tinyMCE/themes/advanced/docs/en/common_buttons.htm
@@ -0,0 +1,162 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Common buttons</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+  <tr> 
+    <td><span class="title">Common buttons</span></td>
+    <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+  </tr>
+</table>
+<hr noshade>
+<br>
+Below is a short description about each button.
+<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+  <tr>
+    <td><img src="../../images/bold.gif" width="20" height="20" alt="Bold text icon" /></td>
+    <td>Bold text style (Ctrl+B).</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/italic.gif" width="20" height="20" alt="Italic text icon" /></td>
+    <td>Italic text style (Ctrl+I).</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/underline.gif" width="20" height="20" alt="Underline text icon." /></td>
+    <td>Underline text style (Ctrl+U).</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/strikethrough.gif" width="20" height="20" alt="Strikethrough text icon." /></td>
+    <td>Strikethrough text style.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/justifyleft.gif" width="20" height="20" alt="Align left icon." /></td>
+    <td>Align left.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/justifycenter.gif" width="20" height="20" alt="Align center icon." /></td>
+    <td>Align center.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/justifyright.gif" width="20" height="20" alt="Align right icon." /></td>
+    <td>Align right.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/justifyfull.gif" width="20" height="20" alt="Align full icon." /></td>
+    <td>Align full.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/bullist.gif" width="20" height="20" alt="Unordered list/bullet list icon." /></td>
+    <td>Unordered list/bullet list.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/numlist.gif" width="20" height="20" alt="Ordered list/numbered list icon." /></td>
+    <td>Ordered list/numbered list</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/outdent.gif" width="20" height="20" alt="Outdent/decrease indentation icon." /></td>
+    <td>Outdent/decrease indentation.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/indent.gif" width="20" height="20" alt="Indent/increase indentation icon." /></td>
+    <td>Indent/increase indentation.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/undo.gif" width="20" height="20" alt="Undo the last operation." /></td>
+    <td>Undo the last operation (Ctrl+Z).</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/redo.gif" width="20" height="20" alt="Redo the last operation icon." /></td>
+    <td>Redo the last operation (Ctrl+Y).</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/link.gif" width="20" height="20" alt="Insert a new link icon." /></td>
+    <td>Insert a new link, read more about this function in the <a href="insert_link_button.htm">Insert 
+      link section</a>.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/unlink.gif" width="20" height="20" alt="Unlinks the current selection icon." /></td>
+    <td>Unlinks the current selection/removes all selected links.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/anchor.gif" width="20" height="20" alt="Insert a new anchor icon." /></td>
+    <td>Insert a new anchor, read more about this function in the <a href="insert_anchor_button.htm">Insert anchor section.</a></td>
+  </tr>
+  <tr>
+    <td><img src="../../images/image.gif" width="20" height="20" alt="Insert a new image icon." /></td>
+    <td>Insert a new image, read more about this function in the <a href="insert_image_button.htm">Insert 
+      image section</a>.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/cleanup.gif" width="20" height="20" alt="Cleanup code icon." /></td>
+    <td>Cleanup code/Removes unwanted formating. This function is useful when 
+      you copy contents from for example a office product.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/help.gif" width="20" height="20" alt="Show help icon." /></td>
+    <td>Shows this help window.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/code.gif" width="20" height="20" alt="Source code editor icon." /></td>
+    <td>Opens HTML source code editor. </td>
+  </tr>
+  <tr>
+    <td><img src="../../../../plugins/table/images/table.gif" width="20" height="20" alt="Insert table icon." /></td>
+    <td>Inserts a new table at the current location. </td>
+  </tr>
+  <tr>
+    <td><img src="../../../../plugins/table/images/table_insert_row_before.gif" width="20" height="20" alt="Adds a row above icon." /></td>
+    <td>Adds a row above the current one. </td>
+  </tr>
+  <tr>
+    <td><img src="../../../../plugins/table/images/table_insert_row_after.gif" width="20" height="20" alt="Adds a row under icon." /></td>
+    <td>Adds a row under the current one. </td>
+  </tr>
+  <tr>
+    <td><img src="../../../../plugins/table/images/table_delete_row.gif" width="20" height="20" alt="Remove row icon." /></td>
+    <td>Removes the row. </td>
+  </tr>
+  <tr>
+    <td><img src="../../../../plugins/table/images/table_insert_col_before.gif" width="20" height="20" alt="Add column before icon." /></td>
+    <td>Adds a column before the current one.</td>
+  </tr>
+  <tr>
+    <td><img src="../../../../plugins/table/images/table_insert_col_after.gif" width="20" height="20" alt="Add column after icon." /></td>
+    <td>Adds a column after the current one.</td>
+  </tr>
+  <tr>
+    <td><img src="../../../../plugins/table/images/table_delete_col.gif" width="20" height="20" alt="Remove column icon." /></td>
+    <td>Removes the current column.</td>
+  </tr>
+  <tr>
+    <td><img src="../../images/hr.gif" width="20" height="20" alt="Insert horizontal ruler icon." /></td>
+    <td>Inserts a new horizontal ruler </td>
+  </tr>
+  <tr>
+    <td><img src="../../images/removeformat.gif" width="20" height="20" alt="Remove formatting icon." /></td>
+    <td>Removes formatting from the selection. </td>
+  </tr>
+  <tr>
+    <td><img src="../../images/sub.gif" width="20" height="20" alt="Subscript icon." /></td>
+    <td>Makes the selection to be subscript. </td>
+  </tr>
+  <tr>
+    <td><img src="../../images/sup.gif" width="20" height="20" alt="Superscript icon." /></td>
+    <td>Makes the selection to be superscripted. </td>
+  </tr>
+</table>
+<br>
+<hr noshade="noshade" />
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+  <tr> 
+    <td>Go to: <a href="index.htm">Table of contents</a></td>
+    <td align="right"><a href="#">Top</a></td>
+  </tr>
+</table>
+</BODY>
+</HTML>
diff --git a/tinyMCE/themes/advanced/docs/en/create_accessible_content.htm b/tinyMCE/themes/advanced/docs/en/create_accessible_content.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f4070a31db094a1c91ec079c254aaa19995555e3
--- /dev/null
+++ b/tinyMCE/themes/advanced/docs/en/create_accessible_content.htm
@@ -0,0 +1,45 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert table button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+  <tr> 
+    <td><span class="title">Create accessible content</span></td>
+    <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+  </tr>
+</table>
+<hr noshade>
+<p>TinyMCE can create HTML content that will be accessible to all users, including those with disabilities using assistive technologies, as well as those using text-based browsers, or those browsing the Web with images turned off. </p>
+
+<p><strong>Things you can do to make your content accessible:</strong></p>
+<ol>
+<li><strong>Include an Image Description:</strong> Blind users, or others who are unable to view images, will rely on the Image Description (or Alt text) to take the place of the image. If an image contains no meaning, such as a decoration or a spacer image, leave the Image Description empty. TinyMCE will then insert an empty Alt text attribute that will force assistive technologies to ignore the image. <br /><br /></li>
+
+<li> <strong>Add Scope to data table header cells:</strong> In the table cell editor dialog window, choose a Scope when creating Header cells so the column or row label in that cell becomes explicitely associated with its data cells. Table cell headers will then be announced with each data cell, making it easier for blind users using a screen reader to understand what the content of each cell represents. <br /><br /></li>
+
+<li><strong> Structure content with properly nested headings:</strong> In the format selection menu choose Heading 1 to Heading 6 to represent headings in your content,  rather than using other font formating options. Blind users using a screen reader can then extract the headings from the page to generate a summary of the content it contains, and use those headings to navigate quickly to subsections within the page.<br /><br /></li>
+
+<li><strong> Include alternate content:</strong> Create an alternate page for non-HTML content such as Flash, Java applets, or  embedded movies. This might be a static image, with a description of the image, and a description of the content that would have appeared in its place. An alternate HTML page could also be created, and a link to it included next to the non-HTML object. This will ensure that the content will be accessible to users of assistive technologies that can not view or play the content, and ensure the content will be available to those who do not have the appropriate plugin or helper application installed.<br /><br /></li>
+
+<li><strong> Check accessbility: </strong> When the AChecker plugin is installed with TinyMCE, click on the Check Accessibility button to generate a report of potential accessibility problems.<br /><br /></li>
+
+</ol>
+
+<p>See the <a href="http://checker.atrc.utoronto.ca" target="_new">AChecker Web Site</a> for further details about creating content that will be accessible to all users.<br />
+</p>
+
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+  <tr> 
+    <td>Go to: <a href="index.htm">Table of contents</a></td>
+    <td align="right"><a href="#">Top</a></td>
+  </tr>
+</table>
+
+<br>
+</BODY>
+</HTML>
diff --git a/tinyMCE/themes/advanced/docs/en/images/insert_anchor_window.gif b/tinyMCE/themes/advanced/docs/en/images/insert_anchor_window.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5b5f528dd57cae8e062919a66b0ff7fcf8f3bc42
Binary files /dev/null and b/tinyMCE/themes/advanced/docs/en/images/insert_anchor_window.gif differ
diff --git a/tinyMCE/themes/advanced/docs/en/images/insert_image_window.gif b/tinyMCE/themes/advanced/docs/en/images/insert_image_window.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cdc617eab3be256173af047822671023c41d53c7
Binary files /dev/null and b/tinyMCE/themes/advanced/docs/en/images/insert_image_window.gif differ
diff --git a/tinyMCE/themes/advanced/docs/en/images/insert_link_window.gif b/tinyMCE/themes/advanced/docs/en/images/insert_link_window.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7bad7583ab9a0642467d271ec8a102e87a2ec521
Binary files /dev/null and b/tinyMCE/themes/advanced/docs/en/images/insert_link_window.gif differ
diff --git a/tinyMCE/themes/advanced/docs/en/images/insert_table_window.gif b/tinyMCE/themes/advanced/docs/en/images/insert_table_window.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6a032c5ae8dfcf3fad7ed65c814c2b1a1e88d25d
Binary files /dev/null and b/tinyMCE/themes/advanced/docs/en/images/insert_table_window.gif differ
diff --git a/tinyMCE/themes/advanced/docs/en/index.htm b/tinyMCE/themes/advanced/docs/en/index.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9810a93b02d99ae33409033ba10dead423b78f84
--- /dev/null
+++ b/tinyMCE/themes/advanced/docs/en/index.htm
@@ -0,0 +1,27 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Help Index</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+  <tr> 
+    <td><span class="title">Table of contents</span></td>
+    <td align="right">&nbsp;</td>
+  </tr>
+</table>
+<hr noshade>
+<br>
+Click the links below to go to the different help sections. 
+<ul class="toc_ul">
+  <li class="toc_li"><a href="about.htm">About TinyMCE</a></li>
+  <li class="toc_li"><a href="common_buttons.htm">Common buttons</a></li>
+  <li class="toc_li"><a href="insert_image_button.htm">Insert image button</a></li>
+  <li class="toc_li"><a href="insert_link_button.htm">Insert link button</a></li>
+  <li class="toc_li"><a href="insert_anchor_button.htm">Insert anchor button</a></li>
+  <li class="toc_li"><a href="insert_table_button.htm">Insert table button</a></li>
+ <li class="toc_li"><a href="create_accessible_content.htm">Create accessible content</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
diff --git a/tinyMCE/themes/advanced/docs/en/insert_anchor_button.htm b/tinyMCE/themes/advanced/docs/en/insert_anchor_button.htm
new file mode 100644
index 0000000000000000000000000000000000000000..332cbc687a545db575f124aa01b0b0cb3801779c
--- /dev/null
+++ b/tinyMCE/themes/advanced/docs/en/insert_anchor_button.htm
@@ -0,0 +1,32 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert anchor button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+  <tr> 
+    <td><span class="title">Insert anchor button</span></td>
+    <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+  </tr>
+</table>
+<hr noshade>
+<br>
+This button opens a new window with the insert/edit anchor function.<br>
+<br>
+<img src="images/insert_anchor_window.gif" width="330" height="139" alt="Anchor dialog/window" /><br>
+<br>
+There are one field in this window, this is where you enter the name of you anchor point. Remember the anchor name needs to be unique. <br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+  <tr> 
+    <td>Go to: <a href="index.htm">Table of contents</a></td>
+    <td align="right"><a href="#">Top</a></td>
+  </tr>
+</table>
+<br>
+</BODY>
+</HTML>
diff --git a/tinyMCE/themes/advanced/docs/en/insert_image_button.htm b/tinyMCE/themes/advanced/docs/en/insert_image_button.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1529648d5664ad01d95e05ecc52d73c8065a1f27
--- /dev/null
+++ b/tinyMCE/themes/advanced/docs/en/insert_image_button.htm
@@ -0,0 +1,65 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert image button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+  <tr> 
+    <td><span class="title">Insert image button</span></td>
+    <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+  </tr>
+</table>
+<hr noshade>
+<br>
+The insert image button opens the window shown below.<br>
+<br>
+<img src="images/insert_image_window.gif" alt="Insert image dialog/window" /><br>
+<br>
+You simply enter a URL to the image you want to link to and enter a image description, 
+this is then displayed as an alternative text descripton of the image on the page.<br>
+<br>
+<strong>Field descriptions:</strong><br>
+<table border="1" cellspacing="0">
+  <tr>
+    <td width="150"><strong>Image URL </strong></td>
+    <td>URL/path to the image.</td>
+  </tr>
+  <tr>
+    <td width="150"><strong>Image description </strong></td>
+    <td>Alternative description of image contents.</td>
+  </tr>
+  <tr>
+    <td><strong>Dimentions</strong></td>
+    <td>Image width/height. </td>
+  </tr>
+  <tr>
+    <td><strong>Alignment</strong></td>
+    <td>Image alignment, useful when wrapping text around images.</td>
+  </tr>
+  <tr>
+    <td><strong>Border</strong></td>
+    <td>Border thickness. </td>
+  </tr>
+  <tr>
+    <td><strong>VSpace</strong></td>
+    <td>Vertical space, useful when wrapping text around images.</td>
+  </tr>
+  <tr>
+    <td><strong>HSpace</strong></td>
+    <td>Horizontal space, useful when wrapping text around images.</td>
+  </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+  <tr> 
+    <td>Go to: <a href="index.htm">Table of contents</a></td>
+    <td align="right"><a href="#">Top</a></td>
+  </tr>
+</table>
+<br>
+</BODY>
+</HTML>
diff --git a/tinyMCE/themes/advanced/docs/en/insert_link_button.htm b/tinyMCE/themes/advanced/docs/en/insert_link_button.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4f6445076cab4bba903971c202d68f4d1a797c39
--- /dev/null
+++ b/tinyMCE/themes/advanced/docs/en/insert_link_button.htm
@@ -0,0 +1,33 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert link button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+  <tr> 
+    <td><span class="title">Insert link button</span></td>
+    <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+  </tr>
+</table>
+<hr noshade>
+<br>
+This button opens a new window with the insert/edit link function.<br>
+<br>
+<img src="images/insert_link_window.gif" width="330" height="159" alt="Insert link dialog/window" /><br>
+<br>
+There are two fields in this window the first one &quot;Link URL&quot; is the 
+URL of the link. The target enables you to select how the link is to be opened.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+  <tr> 
+    <td>Go to: <a href="index.htm">Table of contents</a></td>
+    <td align="right"><a href="#">Top</a></td>
+  </tr>
+</table>
+<br>
+</BODY>
+</HTML>
diff --git a/tinyMCE/themes/advanced/docs/en/insert_table_button.htm b/tinyMCE/themes/advanced/docs/en/insert_table_button.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f352a0516999a55d692b321528ecba614e328f69
--- /dev/null
+++ b/tinyMCE/themes/advanced/docs/en/insert_table_button.htm
@@ -0,0 +1,71 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert table button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+  <tr> 
+    <td><span class="title">Insert table button</span></td>
+    <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+  </tr>
+</table>
+<hr noshade>
+<br>
+The insert table button opens the window shown below. This action enables you to create tables. <br>
+<br>
+<img src="images/insert_table_window.gif" width="340" height="229" alt="Image of table window" /><br>
+<br>
+<strong>Field descriptions:</strong><br>
+<table border="1" cellspacing="0">
+  <tr>
+    <td width="150"><strong>Columns</strong></td>
+    <td>Number of columns in the  table. </td>
+  </tr>
+  <tr>
+    <td width="150"><strong>Rows</strong></td>
+    <td>Number of rows in the new table.</td>
+  </tr>
+  <tr>
+    <td><strong>Cellpadding</strong></td>
+    <td>Cellpadding of the table . </td>
+  </tr>
+  <tr>
+    <td><strong>Cellspacing</strong></td>
+    <td>Cellspacing of the table .</td>
+  </tr>
+  <tr>
+    <td><strong>Alignment</strong></td>
+    <td>Table alignment . </td>
+  </tr>
+  <tr>
+    <td><strong>Border</strong></td>
+    <td>Border thinkness of table.</td>
+  </tr>
+  <tr>
+    <td><strong>Width</strong></td>
+    <td>Width in pixels of table .</td>
+  </tr>
+  <tr>
+    <td><strong>Height</strong></td>
+    <td>Height in pixels of table.</td>
+  </tr>
+  <tr>
+    <td><strong>Class</strong></td>
+    <td>Style or CSS class of table.</td>
+  </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+  <tr> 
+    <td>Go to: <a href="index.htm">Table of contents</a></td>
+    <td align="right"><a href="#">Top</a></td>
+  </tr>
+</table>
+<br>
+</BODY>
+</HTML>
diff --git a/tinyMCE/themes/advanced/docs/en/style.css b/tinyMCE/themes/advanced/docs/en/style.css
new file mode 100644
index 0000000000000000000000000000000000000000..ebc05380ec27f157fb8f1b616b7acf3f07ec9e84
--- /dev/null
+++ b/tinyMCE/themes/advanced/docs/en/style.css
@@ -0,0 +1,28 @@
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold  }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold  }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold  }
+
+hr { height: 1px; }
+
diff --git a/tinyMCE/themes/advanced/editor_template.js b/tinyMCE/themes/advanced/editor_template.js
new file mode 100644
index 0000000000000000000000000000000000000000..6e781d782d0c0f93d848ebf96cf0f8528bf2d240
--- /dev/null
+++ b/tinyMCE/themes/advanced/editor_template.js
@@ -0,0 +1 @@
+tinyMCE.importThemeLanguagePack('advanced');var TinyMCE_AdvancedTheme={_defColors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",_autoImportCSSClasses:true,_resizer:{},_buttons:[['bold','{$lang_bold_img}','lang_bold_desc','Bold'],['italic','{$lang_italic_img}','lang_italic_desc','Italic'],['underline','{$lang_underline_img}','lang_underline_desc','Underline'],['strikethrough','strikethrough.gif','lang_striketrough_desc','Strikethrough'],['justifyleft','justifyleft.gif','lang_justifyleft_desc','JustifyLeft'],['justifycenter','justifycenter.gif','lang_justifycenter_desc','JustifyCenter'],['justifyright','justifyright.gif','lang_justifyright_desc','JustifyRight'],['justifyfull','justifyfull.gif','lang_justifyfull_desc','JustifyFull'],['bullist','bullist.gif','lang_bullist_desc','InsertUnorderedList'],['numlist','numlist.gif','lang_numlist_desc','InsertOrderedList'],['outdent','outdent.gif','lang_outdent_desc','Outdent'],['indent','indent.gif','lang_indent_desc','Indent'],['cut','cut.gif','lang_cut_desc','Cut'],['copy','copy.gif','lang_copy_desc','Copy'],['paste','paste.gif','lang_paste_desc','Paste'],['undo','undo.gif','lang_undo_desc','Undo'],['redo','redo.gif','lang_redo_desc','Redo'],['link','link.gif','lang_link_desc','mceLink',true],['unlink','unlink.gif','lang_unlink_desc','unlink'],['image','image.gif','lang_image_desc','mceImage',true],['cleanup','cleanup.gif','lang_cleanup_desc','mceCleanup'],['help','help.gif','lang_help_desc','mceHelp'],['code','code.gif','lang_theme_code_desc','mceCodeEditor'],['hr','hr.gif','lang_theme_hr_desc','inserthorizontalrule'],['removeformat','removeformat.gif','lang_theme_removeformat_desc','removeformat'],['sub','sub.gif','lang_theme_sub_desc','subscript'],['sup','sup.gif','lang_theme_sup_desc','superscript'],['forecolor','forecolor.gif','lang_theme_forecolor_desc','forecolor',true],['forecolorpicker','forecolor.gif','lang_theme_forecolor_desc','forecolorpicker',true],['backcolor','backcolor.gif','lang_theme_backcolor_desc','HiliteColor',true],['backcolorpicker','backcolor.gif','lang_theme_backcolor_desc','backcolorpicker',true],['charmap','charmap.gif','lang_theme_charmap_desc','mceCharMap'],['visualaid','visualaid.gif','lang_theme_visualaid_desc','mceToggleVisualAid'],['anchor','anchor.gif','lang_theme_anchor_desc','mceInsertAnchor'],['newdocument','newdocument.gif','lang_newdocument_desc','mceNewDocument']],_buttonMap:'anchor,backcolor,bold,bullist,charmap,cleanup,code,copy,cut,forecolor,help,hr,image,indent,italic,justifycenter,justifyfull,justifyleft,justifyright,link,newdocument,numlist,outdent,paste,redo,removeformat,strikethrough,sub,sup,underline,undo,unlink,visualaid,advhr,ltr,rtl,emotions,flash,fullpage,fullscreen,iespell,insertdate,inserttime,pastetext,pasteword,selectall,preview,print,save,replace,search,table,cell_props,delete_col,delete_row,col_after,col_before,row_after,row_before,merge_cells,row_props,split_cells,delete_table',getControlHTML:function(button_name){var i,x,but;for(i=0;i<TinyMCE_AdvancedTheme._buttons.length;i++){but=TinyMCE_AdvancedTheme._buttons[i];if(but[0]==button_name&&(button_name=="forecolor"||button_name=="backcolor"))return tinyMCE.getMenuButtonHTML(but[0],but[2],'{$themeurl}/images/'+but[1],but[3]+"Menu",but[3],(but.length>4?but[4]:false),(but.length>5?but[5]:null));if(but[0]==button_name)return tinyMCE.getButtonHTML(but[0],but[2],'{$themeurl}/images/'+but[1],but[3],(but.length>4?but[4]:false),(but.length>5?but[5]:null))}switch(button_name){case"formatselect":var html='<select id="{$editor_id}_formatSelect" name="{$editor_id}_formatSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FormatBlock\',false,this.options[this.selectedIndex].value);" class="mceSelectList">';var formats=tinyMCE.getParam("theme_advanced_blockformats","p,address,pre,h1,h2,h3,h4,h5,h6",true).split(',');var lookup=[['p','{$lang_theme_paragraph}'],['address','{$lang_theme_address}'],['pre','{$lang_theme_pre}'],['h1','{$lang_theme_h1}'],['h2','{$lang_theme_h2}'],['h3','{$lang_theme_h3}'],['h4','{$lang_theme_h4}'],['h5','{$lang_theme_h5}'],['h6','{$lang_theme_h6}'],['div','{$lang_theme_div}'],['blockquote','{$lang_theme_blockquote}'],['code','{$lang_theme_code}'],['dt','{$lang_theme_dt}'],['dd','{$lang_theme_dd}'],['samp','{$lang_theme_samp}']];html+='<option value="">{$lang_theme_block}</option>';for(var i=0;i<formats.length;i++){for(var x=0;x<lookup.length;x++){if(formats[i]==lookup[x][0])html+='<option value="&lt;'+lookup[x][0]+'&gt;">'+lookup[x][1]+'</option>'}}html+='</select>';return html;case"styleselect":return'<select id="{$editor_id}_styleSelect" onmousedown="tinyMCE.themes.advanced._setupCSSClasses(\'{$editor_id}\');" name="{$editor_id}_styleSelect" onfocus="tinyMCE.addSelectAccessibility(event,this,window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSetCSSClass\',false,this.options[this.selectedIndex].value);" class="mceSelectList">{$style_select_options}</select>';case"fontselect":var fontHTML='<select id="{$editor_id}_fontNameSelect" name="{$editor_id}_fontNameSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FontName\',false,this.options[this.selectedIndex].value);" class="mceSelectList"><option value="">{$lang_theme_fontdefault}</option>';var iFonts='Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';var nFonts='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,sand;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';var fonts=tinyMCE.getParam("theme_advanced_fonts",nFonts).split(';');for(i=0;i<fonts.length;i++){if(fonts[i]!=''){var parts=fonts[i].split('=');fontHTML+='<option value="'+parts[1]+'">'+parts[0]+'</option>'}}fontHTML+='</select>';return fontHTML;case"fontsizeselect":return'<select id="{$editor_id}_fontSizeSelect" name="{$editor_id}_fontSizeSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FontSize\',false,this.options[this.selectedIndex].value);" class="mceSelectList">'+'<option value="0">{$lang_theme_font_size}</option>'+'<option value="1">1 (8 pt)</option>'+'<option value="2">2 (10 pt)</option>'+'<option value="3">3 (12 pt)</option>'+'<option value="4">4 (14 pt)</option>'+'<option value="5">5 (18 pt)</option>'+'<option value="6">6 (24 pt)</option>'+'<option value="7">7 (36 pt)</option>'+'</select>';case"|":case"separator":return'<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" alt="" />';case"spacer":return'<img src="{$themeurl}/images/separator.gif" width="2" height="15" border="0" class="mceSeparatorLine" style="vertical-align: middle" alt="" />';case"rowseparator":return'<br />'}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case'mceHelp':tinyMCE.openWindow({file:'about.htm',width:480,height:380},{tinymce_version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion,tinymce_releasedate:tinyMCE.releaseDate,inline:"yes"});return true;case"mceLink":var inst=tinyMCE.getInstanceById(editor_id);var doc=inst.getDoc();var selectedText="";if(tinyMCE.isMSIE){var rng=doc.selection.createRange();selectedText=rng.text}else selectedText=inst.getSel().toString();if(!tinyMCE.linkElement){if((tinyMCE.selectedElement.nodeName.toLowerCase()!="img")&&(selectedText.length<=0))return true}var href="",target="",title="",onclick="",action="insert",style_class="";if(tinyMCE.selectedElement.nodeName.toLowerCase()=="a")tinyMCE.linkElement=tinyMCE.selectedElement;if(tinyMCE.linkElement!=null&&tinyMCE.getAttrib(tinyMCE.linkElement,'href')=="")tinyMCE.linkElement=null;if(tinyMCE.linkElement){href=tinyMCE.getAttrib(tinyMCE.linkElement,'href');target=tinyMCE.getAttrib(tinyMCE.linkElement,'target');title=tinyMCE.getAttrib(tinyMCE.linkElement,'title');onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'onclick');style_class=tinyMCE.getAttrib(tinyMCE.linkElement,'class');if(onclick=="")onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'onclick');onclick=tinyMCE.cleanupEventStr(onclick);href=eval(tinyMCE.settings['urlconverter_callback']+"(href, tinyMCE.linkElement, true);");mceRealHref=tinyMCE.getAttrib(tinyMCE.linkElement,'mce_href');if(mceRealHref!=""){href=mceRealHref;if(tinyMCE.getParam('convert_urls'))href=eval(tinyMCE.settings['urlconverter_callback']+"(href, tinyMCE.linkElement, true);")}action="update"}var template=new Array();template['file']='link.htm';template['width']=310;template['height']=200;template['width']+=tinyMCE.getLang('lang_insert_link_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_link_delta_height',0);if(inst.settings['insertlink_callback']){var returnVal=eval(inst.settings['insertlink_callback']+"(href, target, title, onclick, action, style_class);");if(returnVal&&returnVal['href'])TinyMCE_AdvancedTheme._insertLink(returnVal['href'],returnVal['target'],returnVal['title'],returnVal['onclick'],returnVal['style_class'])}else{tinyMCE.openWindow(template,{href:href,target:target,title:title,onclick:onclick,action:action,className:style_class,inline:"yes"})}return true;case"mceImage":var src="",alt="",border="",hspace="",vspace="",width="",height="",align="";var title="",onmouseover="",onmouseout="",action="insert";var img=tinyMCE.imgElement;var inst=tinyMCE.getInstanceById(editor_id);if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="img"){img=tinyMCE.selectedElement;tinyMCE.imgElement=img}if(img){if(tinyMCE.getAttrib(img,'name').indexOf('mce_')==0)return true;src=tinyMCE.getAttrib(img,'src');alt=tinyMCE.getAttrib(img,'alt');if(alt=="")alt=tinyMCE.getAttrib(img,'title');if(tinyMCE.isGecko){var w=img.style.width;if(w!=null&&w!="")img.setAttribute("width",w);var h=img.style.height;if(h!=null&&h!="")img.setAttribute("height",h)}border=tinyMCE.getAttrib(img,'border');hspace=tinyMCE.getAttrib(img,'hspace');vspace=tinyMCE.getAttrib(img,'vspace');width=tinyMCE.getAttrib(img,'width');height=tinyMCE.getAttrib(img,'height');align=tinyMCE.getAttrib(img,'align');onmouseover=tinyMCE.getAttrib(img,'onmouseover');onmouseout=tinyMCE.getAttrib(img,'onmouseout');title=tinyMCE.getAttrib(img,'title');if(tinyMCE.isMSIE){width=img.attributes['width'].specified?width:"";height=img.attributes['height'].specified?height:""}src=eval(tinyMCE.settings['urlconverter_callback']+"(src, img, true);");mceRealSrc=tinyMCE.getAttrib(img,'mce_src');if(mceRealSrc!=""){src=mceRealSrc;if(tinyMCE.getParam('convert_urls'))src=eval(tinyMCE.settings['urlconverter_callback']+"(src, img, true);")}action="update"}var template=new Array();template['file']='image.htm?src={$src}';template['width']=355;template['height']=265+(tinyMCE.isMSIE?25:0);template['width']+=tinyMCE.getLang('lang_insert_image_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_image_delta_height',0);if(inst.settings['insertimage_callback']){var returnVal=eval(inst.settings['insertimage_callback']+"(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);");if(returnVal&&returnVal['src'])TinyMCE_AdvancedTheme._insertImage(returnVal['src'],returnVal['alt'],returnVal['border'],returnVal['hspace'],returnVal['vspace'],returnVal['width'],returnVal['height'],returnVal['align'],returnVal['title'],returnVal['onmouseover'],returnVal['onmouseout'])}else tinyMCE.openWindow(template,{src:src,alt:alt,border:border,hspace:hspace,vspace:vspace,width:width,height:height,align:align,title:title,onmouseover:onmouseover,onmouseout:onmouseout,action:action,inline:"yes"});return true;case"forecolor":var fcp=new TinyMCE_Layer(editor_id+'_fcPreview',false),p,img,elm;TinyMCE_AdvancedTheme._hideMenus(editor_id);if(!fcp.exists()){fcp.create('div','mceColorPreview',document.getElementById(editor_id+'_toolbar'));elm=fcp.getElement();elm._editor_id=editor_id;elm._command="forecolor";elm._switchId=editor_id+"_forecolor";tinyMCE.addEvent(elm,'click',TinyMCE_AdvancedTheme._handleMenuEvent);tinyMCE.addEvent(elm,'mouseover',TinyMCE_AdvancedTheme._handleMenuEvent);tinyMCE.addEvent(elm,'mouseout',TinyMCE_AdvancedTheme._handleMenuEvent)}img=tinyMCE.selectNodes(document.getElementById(editor_id+"_forecolor"),function(n){return n.nodeName=="IMG"})[0];p=tinyMCE.getAbsPosition(img,document.getElementById(editor_id+'_toolbar'));fcp.moveTo(p.absLeft,p.absTop);fcp.getElement().style.backgroundColor=value!=null?value:tinyMCE.getInstanceById(editor_id).foreColor;fcp.show();return false;case"forecolorpicker":this._pickColor(editor_id,'forecolor');return true;case"forecolorMenu":TinyMCE_AdvancedTheme._hideMenus(editor_id);var ml=new TinyMCE_Layer(editor_id+'_fcMenu');if(!ml.exists())ml.create('div','mceMenu',document.body,TinyMCE_AdvancedTheme._getColorHTML(editor_id,'theme_advanced_text_colors','forecolor'));tinyMCE.switchClass(editor_id+'_forecolor','mceMenuButtonFocus');ml.moveRelativeTo(document.getElementById(editor_id+"_forecolor"),'bl');ml.moveBy(tinyMCE.isMSIE&&!tinyMCE.isOpera?-1:1,-1);if(tinyMCE.isOpera)ml.moveBy(0,-2);ml.show();return true;case"HiliteColor":var bcp=new TinyMCE_Layer(editor_id+'_bcPreview',false),p,img;TinyMCE_AdvancedTheme._hideMenus(editor_id);if(!bcp.exists()){bcp.create('div','mceColorPreview',document.getElementById(editor_id+'_toolbar'));elm=bcp.getElement();elm._editor_id=editor_id;elm._command="HiliteColor";elm._switchId=editor_id+"_backcolor";tinyMCE.addEvent(elm,'click',TinyMCE_AdvancedTheme._handleMenuEvent);tinyMCE.addEvent(elm,'mouseover',TinyMCE_AdvancedTheme._handleMenuEvent);tinyMCE.addEvent(elm,'mouseout',TinyMCE_AdvancedTheme._handleMenuEvent)}img=tinyMCE.selectNodes(document.getElementById(editor_id+"_backcolor"),function(n){return n.nodeName=="IMG"})[0];p=tinyMCE.getAbsPosition(img,document.getElementById(editor_id+'_toolbar'));bcp.moveTo(p.absLeft,p.absTop);bcp.getElement().style.backgroundColor=value!=null?value:tinyMCE.getInstanceById(editor_id).backColor;bcp.show();return false;case"HiliteColorMenu":TinyMCE_AdvancedTheme._hideMenus(editor_id);var ml=new TinyMCE_Layer(editor_id+'_bcMenu');if(!ml.exists())ml.create('div','mceMenu',document.body,TinyMCE_AdvancedTheme._getColorHTML(editor_id,'theme_advanced_background_colors','HiliteColor'));tinyMCE.switchClass(editor_id+'_backcolor','mceMenuButtonFocus');ml.moveRelativeTo(document.getElementById(editor_id+"_backcolor"),'bl');ml.moveBy(tinyMCE.isMSIE&&!tinyMCE.isOpera?-1:1,-1);if(tinyMCE.isOpera)ml.moveBy(0,-2);ml.show();return true;case"backcolorpicker":this._pickColor(editor_id,'HiliteColor');return true;case"mceColorPicker":if(user_interface){var template=[];if(!value['callback']&&!value['color'])value['color']=value['document'].getElementById(value['element_id']).value;template['file']='color_picker.htm';template['width']=380;template['height']=250;template['close_previous']="no";template['width']+=tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_height',0);if(typeof(value['store_selection'])=="undefined")value['store_selection']=true;tinyMCE.lastColorPickerValue=value;tinyMCE.openWindow(template,{editor_id:editor_id,mce_store_selection:value['store_selection'],inline:"yes",command:"mceColorPicker",input_color:value['color']})}else{var savedVal=tinyMCE.lastColorPickerValue,elm;if(savedVal['callback']){savedVal['callback'](value);return true}elm=savedVal['document'].getElementById(savedVal['element_id']);elm.value=value;if(elm.onchange!=null&&elm.onchange!='')eval('elm.onchange();')}return true;case"mceCodeEditor":var template=new Array();template['file']='source_editor.htm';template['width']=parseInt(tinyMCE.getParam("theme_advanced_source_editor_width",720));template['height']=parseInt(tinyMCE.getParam("theme_advanced_source_editor_height",580));tinyMCE.openWindow(template,{editor_id:editor_id,resizable:"yes",scrollbars:"no",inline:"yes"});return true;case"mceCharMap":var template=new Array();template['file']='charmap.htm';template['width']=550+(tinyMCE.isOpera?40:0);template['height']=250;template['width']+=tinyMCE.getLang('lang_theme_advanced_charmap_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_charmap_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;case"mceInsertAnchor":var template=new Array();template['file']='anchor.htm';template['width']=320;template['height']=90+(tinyMCE.isNS7?30:0);template['width']+=tinyMCE.getLang('lang_theme_advanced_anchor_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_anchor_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;case"mceNewDocument":if(confirm(tinyMCE.getLang('lang_newdocument')))tinyMCE.execInstanceCommand(editor_id,'mceSetContent',false,' ');return true}return false},getEditorTemplate:function(settings,editorId){function removeFromArray(in_array,remove_array){var outArray=new Array(),skip;for(var i=0;i<in_array.length;i++){skip=false;for(var j=0;j<remove_array.length;j++){if(in_array[i]==remove_array[j]){skip=true}}if(!skip){outArray[outArray.length]=in_array[i]}}return outArray}function addToArray(in_array,add_array){for(var i=0;i<add_array.length;i++){in_array[in_array.length]=add_array[i]}return in_array}var template=new Array();var deltaHeight=0;var resizing=tinyMCE.getParam("theme_advanced_resizing",false);var path=tinyMCE.getParam("theme_advanced_path",true);var statusbarHTML='<div id="{$editor_id}_path" class="mceStatusbarPathText" style="display: '+(path?"block":"none")+'">&#160;</div><div id="{$editor_id}_resize" class="mceStatusbarResize" style="display: '+(resizing?"block":"none")+'" onmousedown="tinyMCE.themes.advanced._setResizing(event,\'{$editor_id}\',true);"></div><br style="clear: both" />';var layoutManager=tinyMCE.getParam("theme_advanced_layout_manager","SimpleLayout");var styleSelectHTML='<option value="">{$lang_theme_style_select}</option>';if(settings['theme_advanced_styles']){var stylesAr=settings['theme_advanced_styles'].split(';');for(var i=0;i<stylesAr.length;i++){var key,value;key=stylesAr[i].split('=')[0];value=stylesAr[i].split('=')[1];styleSelectHTML+='<option value="'+value+'">'+key+'</option>'}TinyMCE_AdvancedTheme._autoImportCSSClasses=false}switch(layoutManager){case"SimpleLayout":var toolbarHTML="";var toolbarLocation=tinyMCE.getParam("theme_advanced_toolbar_location","bottom");var toolbarAlign=tinyMCE.getParam("theme_advanced_toolbar_align","center");var pathLocation=tinyMCE.getParam("theme_advanced_path_location","none");var statusbarLocation=tinyMCE.getParam("theme_advanced_statusbar_location",pathLocation);var defVals={theme_advanced_buttons1:"bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,separator,sub,sup,separator,charmap"};toolbarHTML+='<a href="#" accesskey="q" title="'+tinyMCE.getLang("lang_toolbar_focus")+'"';if(!tinyMCE.getParam("accessibility_focus"))toolbarHTML+=' onfocus="tinyMCE.getInstanceById(\''+editorId+'\').getWin().focus();"';toolbarHTML+='></a>';for(var i=1;i<100;i++){var def=defVals["theme_advanced_buttons"+i];var buttons=tinyMCE.getParam("theme_advanced_buttons"+i,def==null?'':def,true,',');if(buttons.length==0)break;buttons=removeFromArray(buttons,tinyMCE.getParam("theme_advanced_disable","",true,','));buttons=addToArray(buttons,tinyMCE.getParam("theme_advanced_buttons"+i+"_add","",true,','));buttons=addToArray(tinyMCE.getParam("theme_advanced_buttons"+i+"_add_before","",true,','),buttons);for(var b=0;b<buttons.length;b++)toolbarHTML+=tinyMCE.getControlHTML(buttons[b]);if(buttons.length>0){toolbarHTML+="<br />";deltaHeight-=23}}toolbarHTML+='<a href="#" accesskey="z" onfocus="tinyMCE.getInstanceById(\''+editorId+'\').getWin().focus();"></a>';template['html']='<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}" style="width:{$width_style};height:{$height_style}"><tbody>';if(toolbarLocation=="top")template['html']+='<tr><td dir="ltr" class="mceToolbarTop" align="'+toolbarAlign+'" height="1" nowrap="nowrap"><span id="'+editorId+'_toolbar" class="mceToolbarContainer">'+toolbarHTML+'</span></td></tr>';if(statusbarLocation=="top"){template['html']+='<tr><td class="mceStatusbarTop" height="1">'+statusbarHTML+'</td></tr>';deltaHeight-=23}template['html']+='<tr><td align="center"><span id="{$editor_id}"></span></td></tr>';if(toolbarLocation=="bottom")template['html']+='<tr><td dir="ltr" class="mceToolbarBottom" align="'+toolbarAlign+'" height="1"><span id="'+editorId+'_toolbar" class="mceToolbarContainer">'+toolbarHTML+'</span></td></tr>';if(toolbarLocation=="external"){var bod=document.body;var elm=document.createElement("div");toolbarHTML=tinyMCE.replaceVar(toolbarHTML,'style_select_options',styleSelectHTML);toolbarHTML=tinyMCE.applyTemplate(toolbarHTML,{editor_id:editorId});elm.className="mceToolbarExternal";elm.id=editorId+"_toolbar";elm.innerHTML='<table width="100%" border="0" align="center"><tr><td align="center">'+toolbarHTML+'</td></tr></table>';bod.appendChild(elm);deltaHeight=0;tinyMCE.getInstanceById(editorId).toolbarElement=elm;}else{tinyMCE.getInstanceById(editorId).toolbarElement=null}if(statusbarLocation=="bottom"){template['html']+='<tr><td class="mceStatusbarBottom" height="1">'+statusbarHTML+'</td></tr>';deltaHeight-=23}template['html']+='</tbody></table>';break;case"RowLayout":template['html']='<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}" style="width:{$width}px;height:{$height}px"><tbody>';var containers=tinyMCE.getParam("theme_advanced_containers","",true,",");var defaultContainerCSS=tinyMCE.getParam("theme_advanced_containers_default_class","container");var defaultContainerAlign=tinyMCE.getParam("theme_advanced_containers_default_align","center");for(var i=0;i<containers.length;i++){if(containers[i]=="mceEditor")template['html']+='<tr><td align="center" class="mceEditor_border"><span id="{$editor_id}"></span></td></tr>';else if(containers[i]=="mceElementpath"||containers[i]=="mceStatusbar"){var pathClass="mceStatusbar";if(i==containers.length-1){pathClass="mceStatusbarBottom"}else if(i==0){pathClass="mceStatusbar"}else{deltaHeight-=2}template['html']+='<tr><td class="'+pathClass+'" height="1">'+statusbarHTML+'</td></tr>';deltaHeight-=22}else{var curContainer=tinyMCE.getParam("theme_advanced_container_"+containers[i],"",true,',');var curContainerHTML="";var curAlign=tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_align",defaultContainerAlign);var curCSS=tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_class",defaultContainerCSS);curContainer=removeFromArray(curContainer,tinyMCE.getParam("theme_advanced_disable","",true,','));for(var j=0;j<curContainer.length;j++)curContainerHTML+=tinyMCE.getControlHTML(curContainer[j]);if(curContainer.length>0){curContainerHTML+="<br />";deltaHeight-=23}template['html']+='<tr><td class="'+curCSS+'" align="'+curAlign+'" height="1">'+curContainerHTML+'</td></tr>'}}template['html']+='</tbody></table>';break;case"CustomLayout":var customLayout=tinyMCE.getParam("theme_advanced_custom_layout","");if(customLayout!=""&&eval("typeof("+customLayout+")")!="undefined"){template=eval(customLayout+"(template);")}break}if(resizing)template['html']+='<span id="{$editor_id}_resize_box" class="mceResizeBox"></span>';template['html']=tinyMCE.replaceVar(template['html'],'style_select_options',styleSelectHTML);if(!template['delta_width'])template['delta_width']=0;if(!template['delta_height'])template['delta_height']=deltaHeight;return template},initInstance:function(inst){if(tinyMCE.getParam("theme_advanced_resizing",false)){if(tinyMCE.getParam("theme_advanced_resizing_use_cookie",true)){var w=TinyMCE_AdvancedTheme._getCookie("TinyMCE_"+inst.editorId+"_width");var h=TinyMCE_AdvancedTheme._getCookie("TinyMCE_"+inst.editorId+"_height");TinyMCE_AdvancedTheme._resizeTo(inst,w,h,tinyMCE.getParam("theme_advanced_resize_horizontal",true))}}inst.addShortcut('ctrl','k','lang_link_desc','mceLink')},removeInstance:function(inst){new TinyMCE_Layer(inst.editorId+'_fcMenu').remove();new TinyMCE_Layer(inst.editorId+'_bcMenu').remove()},hideInstance:function(inst){TinyMCE_AdvancedTheme._hideMenus(inst.editorId)},_handleMenuEvent:function(e){var te=tinyMCE.isMSIE?window.event.srcElement:e.target;tinyMCE._menuButtonEvent(e.type=="mouseover"?"over":"out",document.getElementById(te._switchId));if(e.type=="click")tinyMCE.execInstanceCommand(te._editor_id,te._command)},_hideMenus:function(id){var fcml=new TinyMCE_Layer(id+'_fcMenu'),bcml=new TinyMCE_Layer(id+'_bcMenu');if(fcml.exists()&&fcml.isVisible()){tinyMCE.switchClass(id+'_forecolor','mceMenuButton');fcml.hide()}if(bcml.exists()&&bcml.isVisible()){tinyMCE.switchClass(id+'_backcolor','mceMenuButton');bcml.hide()}},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection,setup_content){var alignNode,breakOut,classNode;function selectByValue(select_elm,value,first_index){first_index=typeof(first_index)=="undefined"?false:true;if(select_elm){for(var i=0;i<select_elm.options.length;i++){var ov=""+select_elm.options[i].value;if(first_index&&ov.toLowerCase().indexOf(value.toLowerCase())==0){select_elm.selectedIndex=i;return true}if(ov==value){select_elm.selectedIndex=i;return true}}}return false};if(node==null)return;var pathElm=document.getElementById(editor_id+"_path");var inst=tinyMCE.getInstanceById(editor_id);var doc=inst.getDoc();TinyMCE_AdvancedTheme._hideMenus(editor_id);if(pathElm){var parentNode=node;var path=new Array();while(parentNode!=null){if(parentNode.nodeName.toUpperCase()=="BODY"){break}if(parentNode.nodeType==1&&tinyMCE.getAttrib(parentNode,"class").indexOf('mceItemHidden')==-1){path[path.length]=parentNode}parentNode=parentNode.parentNode}var html="";for(var i=path.length-1;i>=0;i--){var nodeName=path[i].nodeName.toLowerCase();var nodeData="";if(nodeName.indexOf("html:")==0)nodeName=nodeName.substring(5);if(nodeName=="b"){nodeName="strong"}if(nodeName=="i"){nodeName="em"}if(nodeName=="span"){var cn=tinyMCE.getAttrib(path[i],"class");if(cn!=""&&cn.indexOf('mceItem')==-1)nodeData+="class: "+cn+" ";var st=tinyMCE.getAttrib(path[i],"style");if(st!=""){st=tinyMCE.serializeStyle(tinyMCE.parseStyle(st));nodeData+="style: "+tinyMCE.xmlEncode(st)+" "}}if(nodeName=="font"){if(tinyMCE.getParam("convert_fonts_to_spans"))nodeName="span";var face=tinyMCE.getAttrib(path[i],"face");if(face!="")nodeData+="font: "+tinyMCE.xmlEncode(face)+" ";var size=tinyMCE.getAttrib(path[i],"size");if(size!="")nodeData+="size: "+tinyMCE.xmlEncode(size)+" ";var color=tinyMCE.getAttrib(path[i],"color");if(color!="")nodeData+="color: "+tinyMCE.xmlEncode(color)+" "}if(tinyMCE.getAttrib(path[i],'id')!=""){nodeData+="id: "+path[i].getAttribute('id')+" "}var className=tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i],"class"),false);if(className!=""&&className.indexOf('mceItem')==-1)nodeData+="class: "+className+" ";if(tinyMCE.getAttrib(path[i],'src')!=""){var src=tinyMCE.getAttrib(path[i],"mce_src");if(src=="")src=tinyMCE.getAttrib(path[i],"src");nodeData+="src: "+tinyMCE.xmlEncode(src)+" "}if(path[i].nodeName=='A'&&tinyMCE.getAttrib(path[i],'href')!=""){var href=tinyMCE.getAttrib(path[i],"mce_href");if(href=="")href=tinyMCE.getAttrib(path[i],"href");nodeData+="href: "+tinyMCE.xmlEncode(href)+" "}className=tinyMCE.getAttrib(path[i],"class");if((nodeName=="img"||nodeName=="span")&&className.indexOf('mceItem')!=-1){nodeName=className.replace(/mceItem([a-z]+)/gi,'$1').toLowerCase();nodeData=path[i].getAttribute('title')}if(nodeName=="a"&&(anchor=tinyMCE.getAttrib(path[i],"name"))!=""){nodeName="a";nodeName+="#"+tinyMCE.xmlEncode(anchor);nodeData=""}if(tinyMCE.getAttrib(path[i],'name').indexOf("mce_")!=0){var className=tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i],"class"),false);if(className!=""&&className.indexOf('mceItem')==-1){nodeName+="."+className}}var cmd='tinyMCE.execInstanceCommand(\''+editor_id+'\',\'mceSelectNodeDepth\',false,\''+i+'\');';html+='<a title="'+nodeData+'" href="javascript:'+cmd+'" onclick="'+cmd+'return false;" onmousedown="return false;" target="_self" class="mcePathItem">'+nodeName+'</a>';if(i>0){html+=" &raquo; "}}pathElm.innerHTML='<a href="#" accesskey="x"></a>'+tinyMCE.getLang('lang_theme_path')+": "+html+'&#160;'}tinyMCE.switchClass(editor_id+'_justifyleft','mceButtonNormal');tinyMCE.switchClass(editor_id+'_justifyright','mceButtonNormal');tinyMCE.switchClass(editor_id+'_justifycenter','mceButtonNormal');tinyMCE.switchClass(editor_id+'_justifyfull','mceButtonNormal');tinyMCE.switchClass(editor_id+'_bold','mceButtonNormal');tinyMCE.switchClass(editor_id+'_italic','mceButtonNormal');tinyMCE.switchClass(editor_id+'_underline','mceButtonNormal');tinyMCE.switchClass(editor_id+'_strikethrough','mceButtonNormal');tinyMCE.switchClass(editor_id+'_bullist','mceButtonNormal');tinyMCE.switchClass(editor_id+'_numlist','mceButtonNormal');tinyMCE.switchClass(editor_id+'_sub','mceButtonNormal');tinyMCE.switchClass(editor_id+'_sup','mceButtonNormal');tinyMCE.switchClass(editor_id+'_anchor','mceButtonNormal');tinyMCE.switchClass(editor_id+'_link','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_unlink','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_outdent','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_image','mceButtonNormal');tinyMCE.switchClass(editor_id+'_hr','mceButtonNormal');if(node.nodeName=="A"&&tinyMCE.getAttrib(node,"class").indexOf('mceItemAnchor')!=-1)tinyMCE.switchClass(editor_id+'_anchor','mceButtonSelected');var anchorLink=tinyMCE.getParentElement(node,"a","href");if(anchorLink||any_selection){tinyMCE.switchClass(editor_id+'_link',anchorLink?'mceButtonSelected':'mceButtonNormal');tinyMCE.switchClass(editor_id+'_unlink',anchorLink?'mceButtonSelected':'mceButtonNormal')}tinyMCE.switchClass(editor_id+'_visualaid',visual_aid?'mceButtonSelected':'mceButtonNormal');if(undo_levels!=-1){tinyMCE.switchClass(editor_id+'_undo','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_redo','mceButtonDisabled')}if(tinyMCE.getParentElement(node,"li,blockquote"))tinyMCE.switchClass(editor_id+'_outdent','mceButtonNormal');if(undo_index!=-1&&(undo_index<undo_levels-1&&undo_levels>0))tinyMCE.switchClass(editor_id+'_redo','mceButtonNormal');if(undo_index!=-1&&(undo_index>0&&undo_levels>0))tinyMCE.switchClass(editor_id+'_undo','mceButtonNormal');var selectElm=document.getElementById(editor_id+"_styleSelect");if(selectElm){TinyMCE_AdvancedTheme._setupCSSClasses(editor_id);classNode=node;breakOut=false;var index=0;do{if(classNode&&classNode.className){for(var i=0;i<selectElm.options.length;i++){if(selectElm.options[i].value==classNode.className){index=i;breakOut=true;break}}}}while(!breakOut&&classNode!=null&&(classNode=classNode.parentNode)!=null);selectElm.selectedIndex=index}var selectElm=document.getElementById(editor_id+"_formatSelect");if(selectElm){var elm=tinyMCE.getParentElement(node,"p,div,h1,h2,h3,h4,h5,h6,pre,address");if(elm)selectByValue(selectElm,"<"+elm.nodeName.toLowerCase()+">");else selectByValue(selectElm,"")}var selectElm=document.getElementById(editor_id+"_fontNameSelect");if(selectElm){if(!tinyMCE.isSafari&&!(tinyMCE.isMSIE&&!tinyMCE.isOpera)){var face=inst.queryCommandValue('FontName');face=face==null||face==""?"":face;selectByValue(selectElm,face,face!="")}else{var elm=tinyMCE.getParentElement(node,"font","face");if(elm){var family=tinyMCE.getAttrib(elm,"face");if(family=='')family=''+elm.style.fontFamily;if(!selectByValue(selectElm,family,family!=""))selectByValue(selectElm,"")}else selectByValue(selectElm,"")}}var selectElm=document.getElementById(editor_id+"_fontSizeSelect");if(selectElm){if(!tinyMCE.isSafari&&!tinyMCE.isOpera){var size=inst.queryCommandValue('FontSize');selectByValue(selectElm,size==null||size==""?"0":size)}else{var elm=tinyMCE.getParentElement(node,"font","size");if(elm){var size=tinyMCE.getAttrib(elm,"size");if(size==''){var sizes=new Array('','8px','10px','12px','14px','18px','24px','36px');size=''+elm.style.fontSize;for(var i=0;i<sizes.length;i++){if((''+sizes[i])==size){size=i;break}}}if(!selectByValue(selectElm,size))selectByValue(selectElm,"")}else selectByValue(selectElm,"0")}}alignNode=node;breakOut=false;do{if(!alignNode.getAttribute||!alignNode.getAttribute('align'))continue;switch(alignNode.getAttribute('align').toLowerCase()){case"left":tinyMCE.switchClass(editor_id+'_justifyleft','mceButtonSelected');breakOut=true;break;case"right":tinyMCE.switchClass(editor_id+'_justifyright','mceButtonSelected');breakOut=true;break;case"middle":case"center":tinyMCE.switchClass(editor_id+'_justifycenter','mceButtonSelected');breakOut=true;break;case"justify":tinyMCE.switchClass(editor_id+'_justifyfull','mceButtonSelected');breakOut=true;break}}while(!breakOut&&(alignNode=alignNode.parentNode)!=null);var div=tinyMCE.getParentElement(node,"div");if(div&&div.style.textAlign=="center")tinyMCE.switchClass(editor_id+'_justifycenter','mceButtonSelected');if(!setup_content){var ar=new Array("Bold","_bold","Italic","_italic","Strikethrough","_strikethrough","superscript","_sup","subscript","_sub");for(var i=0;i<ar.length;i+=2){if(inst.queryCommandState(ar[i]))tinyMCE.switchClass(editor_id+ar[i+1],'mceButtonSelected')}if(inst.queryCommandState("Underline")&&(node.parentNode==null||node.parentNode.nodeName!="A"))tinyMCE.switchClass(editor_id+'_underline','mceButtonSelected')}do{switch(node.nodeName){case"UL":tinyMCE.switchClass(editor_id+'_bullist','mceButtonSelected');break;case"OL":tinyMCE.switchClass(editor_id+'_numlist','mceButtonSelected');break;case"HR":tinyMCE.switchClass(editor_id+'_hr','mceButtonSelected');break;case"IMG":if(tinyMCE.getAttrib(node,'name').indexOf('mce_')!=0&&tinyMCE.getAttrib(node,'class').indexOf('mceItem')==-1){tinyMCE.switchClass(editor_id+'_image','mceButtonSelected')}break}}while((node=node.parentNode)!=null)},_setupCSSClasses:function(editor_id){var i,selectElm;if(!TinyMCE_AdvancedTheme._autoImportCSSClasses)return;selectElm=document.getElementById(editor_id+'_styleSelect');if(selectElm&&selectElm.getAttribute('cssImported')!='true'){var csses=tinyMCE.getCSSClasses(editor_id);if(csses&&selectElm){for(i=0;i<csses.length;i++)selectElm.options[selectElm.options.length]=new Option(csses[i],csses[i])}if(csses!=null&&csses.length>0)selectElm.setAttribute('cssImported','true')}},_setCookie:function(name,value,expires,path,domain,secure){var curCookie=name+"="+escape(value)+((expires)?"; expires="+expires.toGMTString():"")+((path)?"; path="+escape(path):"")+((domain)?"; domain="+domain:"")+((secure)?"; secure":"");document.cookie=curCookie},_getCookie:function(name){var dc=document.cookie;var prefix=name+"=";var begin=dc.indexOf("; "+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!=0)return null}else begin+=2;var end=document.cookie.indexOf(";",begin);if(end==-1)end=dc.length;return unescape(dc.substring(begin+prefix.length,end))},_resizeTo:function(inst,w,h,set_w){var editorContainer=document.getElementById(inst.editorId+'_parent');var tableElm=editorContainer.firstChild;var iframe=inst.iframeElement;if(w==null||w=="null"){set_w=false;w=0}if(h==null||h=="null")return;w=parseInt(w);h=parseInt(h);if(tinyMCE.isGecko){w+=2;h+=2}var dx=w-tableElm.clientWidth;var dy=h-tableElm.clientHeight;w=w<1?30:w;h=h<1?30:h;if(set_w)tableElm.style.width=w+"px";tableElm.style.height=h+"px";iw=iframe.clientWidth+dx;ih=iframe.clientHeight+dy;iw=iw<1?30:iw;ih=ih<1?30:ih;if(tinyMCE.isGecko){iw-=2;ih-=2}if(set_w)iframe.style.width=iw+"px";iframe.style.height=ih+"px";if(set_w){var tableBodyElm=tableElm.firstChild;var minIframeWidth=tableBodyElm.scrollWidth;if(inst.iframeElement.clientWidth<minIframeWidth){dx=minIframeWidth-inst.iframeElement.clientWidth;inst.iframeElement.style.width=(iw+dx)+"px"}}inst.useCSS=false},_resizeEventHandler:function(e){var resizer=TinyMCE_AdvancedTheme._resizer;if(!resizer.resizing)return;e=typeof(e)=="undefined"?window.event:e;var dx=e.screenX-resizer.downX;var dy=e.screenY-resizer.downY;var resizeBox=resizer.resizeBox;var editorId=resizer.editorId;switch(e.type){case"mousemove":var w,h;w=resizer.width+dx;h=resizer.height+dy;w=w<1?1:w;h=h<1?1:h;if(resizer.horizontal)resizeBox.style.width=w+"px";resizeBox.style.height=h+"px";break;case"mouseup":TinyMCE_AdvancedTheme._setResizing(e,editorId,false);TinyMCE_AdvancedTheme._resizeTo(tinyMCE.getInstanceById(editorId),resizer.width+dx,resizer.height+dy,resizer.horizontal);if(tinyMCE.getParam("theme_advanced_resizing_use_cookie",true)){var expires=new Date();expires.setTime(expires.getTime()+3600000*24*30);TinyMCE_AdvancedTheme._setCookie("TinyMCE_"+editorId+"_width",""+(resizer.horizontal?resizer.width+dx:""),expires);TinyMCE_AdvancedTheme._setCookie("TinyMCE_"+editorId+"_height",""+(resizer.height+dy),expires)}break}},_setResizing:function(e,editor_id,state){e=typeof(e)=="undefined"?window.event:e;var resizer=TinyMCE_AdvancedTheme._resizer;var editorContainer=document.getElementById(editor_id+'_parent');var editorArea=document.getElementById(editor_id+'_parent').firstChild;var resizeBox=document.getElementById(editor_id+'_resize_box');var inst=tinyMCE.getInstanceById(editor_id);if(state){var width=editorArea.clientWidth;var height=editorArea.clientHeight;resizeBox.style.width=width+"px";resizeBox.style.height=height+"px";resizer.iframeWidth=inst.iframeElement.clientWidth;resizer.iframeHeight=inst.iframeElement.clientHeight;editorArea.style.display="none";resizeBox.style.display="block";if(!resizer.eventHandlers){if(tinyMCE.isMSIE)tinyMCE.addEvent(document,"mousemove",TinyMCE_AdvancedTheme._resizeEventHandler);else tinyMCE.addEvent(window,"mousemove",TinyMCE_AdvancedTheme._resizeEventHandler);tinyMCE.addEvent(document,"mouseup",TinyMCE_AdvancedTheme._resizeEventHandler);resizer.eventHandlers=true}resizer.resizing=true;resizer.downX=e.screenX;resizer.downY=e.screenY;resizer.width=parseInt(resizeBox.style.width);resizer.height=parseInt(resizeBox.style.height);resizer.editorId=editor_id;resizer.resizeBox=resizeBox;resizer.horizontal=tinyMCE.getParam("theme_advanced_resize_horizontal",true)}else{resizer.resizing=false;resizeBox.style.display="none";editorArea.style.display=tinyMCE.isMSIE&&!tinyMCE.isOpera?"block":"table";tinyMCE.execCommand('mceResetDesignMode')}},_getColorHTML:function(id,n,cm){var i,h,cl;h='<span class="mceMenuLine"></span>';cl=tinyMCE.getParam(n,TinyMCE_AdvancedTheme._defColors).split(',');h+='<table class="mceColors"><tr>';for(i=0;i<cl.length;i++){c='tinyMCE.execInstanceCommand(\''+id+'\', \''+cm+'\', false, \'#'+cl[i]+'\');';h+='<td><a href="javascript:'+c+'" style="background-color: #'+cl[i]+'" onclick="'+c+';return false;"></a></td>';if((i+1)%8==0)h+='</tr><tr>'}h+='</tr></table>';if(tinyMCE.getParam("theme_advanced_more_colors",true))h+='<a href="javascript:void(0);" onclick="TinyMCE_AdvancedTheme._pickColor(\''+id+'\',\''+cm+'\');" class="mceMoreColors">'+tinyMCE.getLang('lang_more_colors')+'</a>';return h},_pickColor:function(id,cm){var inputColor,inst=tinyMCE.selectedInstance;if(cm=='forecolor'&&inst)inputColor=inst.foreColor;if((cm=='backcolor'||cm=='HiliteColor')&&inst)inputColor=inst.backColor;tinyMCE.execCommand('mceColorPicker',true,{color:inputColor,callback:function(c){tinyMCE.execInstanceCommand(id,cm,false,c)}})},_insertImage:function(src,alt,border,hspace,vspace,width,height,align,title,onmouseover,onmouseout){tinyMCE.execCommand("mceInsertContent",false,tinyMCE.createTagHTML('img',{src:tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src),mce_src:src,alt:alt,border:border,hspace:hspace,vspace:vspace,width:width,height:height,align:align,title:title,onmouseover:onmouseover,onmouseout:onmouseout}))},_insertLink:function(href,target,title,onclick,style_class){tinyMCE.execCommand('mceBeginUndoLevel');if(tinyMCE.selectedInstance&&tinyMCE.selectedElement&&tinyMCE.selectedElement.nodeName.toLowerCase()=="img"){var doc=tinyMCE.selectedInstance.getDoc();var linkElement=tinyMCE.getParentElement(tinyMCE.selectedElement,"a");var newLink=false;if(!linkElement){linkElement=doc.createElement("a");newLink=true}var mhref=href;var thref=eval(tinyMCE.settings['urlconverter_callback']+"(href, linkElement);");mhref=tinyMCE.getParam('convert_urls')?href:mhref;tinyMCE.setAttrib(linkElement,'href',thref);tinyMCE.setAttrib(linkElement,'mce_href',mhref);tinyMCE.setAttrib(linkElement,'target',target);tinyMCE.setAttrib(linkElement,'title',title);tinyMCE.setAttrib(linkElement,'onclick',onclick);tinyMCE.setAttrib(linkElement,'class',style_class);if(newLink){linkElement.appendChild(tinyMCE.selectedElement.cloneNode(true));tinyMCE.selectedElement.parentNode.replaceChild(linkElement,tinyMCE.selectedElement)}return}if(!tinyMCE.linkElement&&tinyMCE.selectedInstance){if(tinyMCE.isSafari){tinyMCE.execCommand("mceInsertContent",false,'<a href="'+tinyMCE.uniqueURL+'">'+tinyMCE.selectedInstance.selection.getSelectedHTML()+'</a>')}else tinyMCE.selectedInstance.contentDocument.execCommand("createlink",false,tinyMCE.uniqueURL);tinyMCE.linkElement=tinyMCE.getElementByAttributeValue(tinyMCE.selectedInstance.contentDocument.body,"a","href",tinyMCE.uniqueURL);var elementArray=tinyMCE.getElementsByAttributeValue(tinyMCE.selectedInstance.contentDocument.body,"a","href",tinyMCE.uniqueURL);for(var i=0;i<elementArray.length;i++){var mhref=href;var thref=eval(tinyMCE.settings['urlconverter_callback']+"(href, elementArray[i]);");mhref=tinyMCE.getParam('convert_urls')?href:mhref;tinyMCE.setAttrib(elementArray[i],'href',thref);tinyMCE.setAttrib(elementArray[i],'mce_href',mhref);tinyMCE.setAttrib(elementArray[i],'target',target);tinyMCE.setAttrib(elementArray[i],'title',title);tinyMCE.setAttrib(elementArray[i],'onclick',onclick);tinyMCE.setAttrib(elementArray[i],'class',style_class)}tinyMCE.linkElement=elementArray[0]}if(tinyMCE.linkElement){var mhref=href;href=eval(tinyMCE.settings['urlconverter_callback']+"(href, tinyMCE.linkElement);");mhref=tinyMCE.getParam('convert_urls')?href:mhref;tinyMCE.setAttrib(tinyMCE.linkElement,'href',href);tinyMCE.setAttrib(tinyMCE.linkElement,'mce_href',mhref);tinyMCE.setAttrib(tinyMCE.linkElement,'target',target);tinyMCE.setAttrib(tinyMCE.linkElement,'title',title);tinyMCE.setAttrib(tinyMCE.linkElement,'onclick',onclick);tinyMCE.setAttrib(tinyMCE.linkElement,'class',style_class)}tinyMCE.execCommand('mceEndUndoLevel')}};tinyMCE.addTheme("advanced",TinyMCE_AdvancedTheme);tinyMCE.addButtonMap(TinyMCE_AdvancedTheme._buttonMap);
\ No newline at end of file
diff --git a/tinyMCE/themes/advanced/editor_template_src.js b/tinyMCE/themes/advanced/editor_template_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..a0217d19c4d93755b2f4713a8163b212b861c199
--- /dev/null
+++ b/tinyMCE/themes/advanced/editor_template_src.js
@@ -0,0 +1,1516 @@
+/**
+ * $Id: editor_template_src.js 256 2007-04-24 09:03:20Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/* Import theme specific language pack */
+tinyMCE.importThemeLanguagePack('advanced');
+
+var TinyMCE_AdvancedTheme = {
+	// Private theme fields
+	_defColors : "000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",
+	_autoImportCSSClasses : true,
+	_resizer : {},
+	_buttons : [
+		// Control id, button img, button title, command, user_interface, value
+		['bold', '{$lang_bold_img}', 'lang_bold_desc', 'Bold'],
+		['italic', '{$lang_italic_img}', 'lang_italic_desc', 'Italic'],
+		['underline', '{$lang_underline_img}', 'lang_underline_desc', 'Underline'],
+		['strikethrough', 'strikethrough.gif', 'lang_striketrough_desc', 'Strikethrough'],
+		['justifyleft', 'justifyleft.gif', 'lang_justifyleft_desc', 'JustifyLeft'],
+		['justifycenter', 'justifycenter.gif', 'lang_justifycenter_desc', 'JustifyCenter'],
+		['justifyright', 'justifyright.gif', 'lang_justifyright_desc', 'JustifyRight'],
+		['justifyfull', 'justifyfull.gif', 'lang_justifyfull_desc', 'JustifyFull'],
+		['bullist', 'bullist.gif', 'lang_bullist_desc', 'InsertUnorderedList'],
+		['numlist', 'numlist.gif', 'lang_numlist_desc', 'InsertOrderedList'],
+		['outdent', 'outdent.gif', 'lang_outdent_desc', 'Outdent'],
+		['indent', 'indent.gif', 'lang_indent_desc', 'Indent'],
+		['cut', 'cut.gif', 'lang_cut_desc', 'Cut'],
+		['copy', 'copy.gif', 'lang_copy_desc', 'Copy'],
+		['paste', 'paste.gif', 'lang_paste_desc', 'Paste'],
+		['undo', 'undo.gif', 'lang_undo_desc', 'Undo'],
+		['redo', 'redo.gif', 'lang_redo_desc', 'Redo'],
+		['link', 'link.gif', 'lang_link_desc', 'mceLink', true],
+		['unlink', 'unlink.gif', 'lang_unlink_desc', 'unlink'],
+		['image', 'image.gif', 'lang_image_desc', 'mceImage', true],
+		['cleanup', 'cleanup.gif', 'lang_cleanup_desc', 'mceCleanup'],
+		['help', 'help.gif', 'lang_help_desc', 'mceHelp'],
+		['code', 'code.gif', 'lang_theme_code_desc', 'mceCodeEditor'],
+		['hr', 'hr.gif', 'lang_theme_hr_desc', 'inserthorizontalrule'],
+		['removeformat', 'removeformat.gif', 'lang_theme_removeformat_desc', 'removeformat'],
+		['sub', 'sub.gif', 'lang_theme_sub_desc', 'subscript'],
+		['sup', 'sup.gif', 'lang_theme_sup_desc', 'superscript'],
+		['forecolor', 'forecolor.gif', 'lang_theme_forecolor_desc', 'forecolor', true],
+		['forecolorpicker', 'forecolor.gif', 'lang_theme_forecolor_desc', 'forecolorpicker', true],
+		['backcolor', 'backcolor.gif', 'lang_theme_backcolor_desc', 'HiliteColor', true],
+		['backcolorpicker', 'backcolor.gif', 'lang_theme_backcolor_desc', 'backcolorpicker', true],
+		['charmap', 'charmap.gif', 'lang_theme_charmap_desc', 'mceCharMap'],
+		['visualaid', 'visualaid.gif', 'lang_theme_visualaid_desc', 'mceToggleVisualAid'],
+		['anchor', 'anchor.gif', 'lang_theme_anchor_desc', 'mceInsertAnchor'],
+		['newdocument', 'newdocument.gif', 'lang_newdocument_desc', 'mceNewDocument']
+	],
+
+	_buttonMap : 'anchor,backcolor,bold,bullist,charmap,cleanup,code,copy,cut,forecolor,help,hr,image,indent,italic,justifycenter,justifyfull,justifyleft,justifyright,link,newdocument,numlist,outdent,paste,redo,removeformat,strikethrough,sub,sup,underline,undo,unlink,visualaid,advhr,ltr,rtl,emotions,flash,fullpage,fullscreen,iespell,insertdate,inserttime,pastetext,pasteword,selectall,preview,print,save,replace,search,table,cell_props,delete_col,delete_row,col_after,col_before,row_after,row_before,merge_cells,row_props,split_cells,delete_table',
+
+	/**
+	 * Returns HTML code for the specificed control.
+	 */
+	getControlHTML : function(button_name) {
+		var i, x, but;
+
+		// Lookup button in button list
+		for (i=0; i<TinyMCE_AdvancedTheme._buttons.length; i++) {
+			but = TinyMCE_AdvancedTheme._buttons[i];
+
+			if (but[0] == button_name && (button_name == "forecolor" || button_name == "backcolor"))
+				return tinyMCE.getMenuButtonHTML(but[0], but[2], '{$themeurl}/images/' + but[1], but[3] + "Menu", but[3], (but.length > 4 ? but[4] : false), (but.length > 5 ? but[5] : null));
+
+			if (but[0] == button_name)
+				return tinyMCE.getButtonHTML(but[0], but[2], '{$themeurl}/images/' + but[1], but[3], (but.length > 4 ? but[4] : false), (but.length > 5 ? but[5] : null));
+		}
+
+		// Custom controlls other than buttons
+		switch (button_name) {
+			case "formatselect":
+				var html = '<select id="{$editor_id}_formatSelect" name="{$editor_id}_formatSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FormatBlock\',false,this.options[this.selectedIndex].value);" class="mceSelectList">';
+				var formats = tinyMCE.getParam("theme_advanced_blockformats", "p,address,pre,h1,h2,h3,h4,h5,h6", true).split(',');
+				var lookup = [
+					['p', '{$lang_theme_paragraph}'],
+					['address', '{$lang_theme_address}'],
+					['pre', '{$lang_theme_pre}'],
+					['h1', '{$lang_theme_h1}'],
+					['h2', '{$lang_theme_h2}'],
+					['h3', '{$lang_theme_h3}'],
+					['h4', '{$lang_theme_h4}'],
+					['h5', '{$lang_theme_h5}'],
+					['h6', '{$lang_theme_h6}'],
+					['div', '{$lang_theme_div}'],
+					['blockquote', '{$lang_theme_blockquote}'],
+					['code', '{$lang_theme_code}'],
+					['dt', '{$lang_theme_dt}'],
+					['dd', '{$lang_theme_dd}'],
+					['samp', '{$lang_theme_samp}']
+				];
+
+				html += '<option value="">{$lang_theme_block}</option>';
+
+				// Build format select
+				for (var i=0; i<formats.length; i++) {
+					for (var x=0; x<lookup.length; x++) {
+						if (formats[i] == lookup[x][0])
+							html += '<option value="&lt;' + lookup[x][0] + '&gt;">' + lookup[x][1] + '</option>';
+					}
+				}
+
+				html += '</select>';
+
+				return html;
+
+			case "styleselect":
+				return '<select id="{$editor_id}_styleSelect" onmousedown="tinyMCE.themes.advanced._setupCSSClasses(\'{$editor_id}\');" name="{$editor_id}_styleSelect" onfocus="tinyMCE.addSelectAccessibility(event,this,window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSetCSSClass\',false,this.options[this.selectedIndex].value);" class="mceSelectList">{$style_select_options}</select>';
+
+			case "fontselect":
+				var fontHTML = '<select id="{$editor_id}_fontNameSelect" name="{$editor_id}_fontNameSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FontName\',false,this.options[this.selectedIndex].value);" class="mceSelectList"><option value="">{$lang_theme_fontdefault}</option>';
+				var iFonts = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';
+				var nFonts = '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,sand;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';
+				var fonts = tinyMCE.getParam("theme_advanced_fonts", nFonts).split(';');
+				for (i=0; i<fonts.length; i++) {
+					if (fonts[i] != '') {
+						var parts = fonts[i].split('=');
+						fontHTML += '<option value="' + parts[1] + '">' + parts[0] + '</option>';
+					}
+				}
+
+				fontHTML += '</select>';
+				return fontHTML;
+
+			case "fontsizeselect":
+				return '<select id="{$editor_id}_fontSizeSelect" name="{$editor_id}_fontSizeSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FontSize\',false,this.options[this.selectedIndex].value);" class="mceSelectList">'+
+						'<option value="0">{$lang_theme_font_size}</option>'+
+						'<option value="1">1 (8 pt)</option>'+
+						'<option value="2">2 (10 pt)</option>'+
+						'<option value="3">3 (12 pt)</option>'+
+						'<option value="4">4 (14 pt)</option>'+
+						'<option value="5">5 (18 pt)</option>'+
+						'<option value="6">6 (24 pt)</option>'+
+						'<option value="7">7 (36 pt)</option>'+
+						'</select>';
+
+			case "|":
+			case "separator":
+				return '<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" alt="" />';
+
+			case "spacer":
+				return '<img src="{$themeurl}/images/separator.gif" width="2" height="15" border="0" class="mceSeparatorLine" style="vertical-align: middle" alt="" />';
+
+			case "rowseparator":
+				return '<br />';
+		}
+
+		return "";
+	},
+
+	/**
+	 * Theme specific execcommand handling.
+	 */
+	execCommand : function(editor_id, element, command, user_interface, value) {
+		switch (command) {
+			case 'mceHelp':
+				tinyMCE.openWindow({
+					file : 'about.htm',
+					width : 480,
+					height : 380
+				}, {
+					tinymce_version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion,
+					tinymce_releasedate : tinyMCE.releaseDate,
+					inline : "yes"
+				});
+			return true;
+
+			case "mceLink":
+				var inst = tinyMCE.getInstanceById(editor_id);
+				var doc = inst.getDoc();
+				var selectedText = "";
+
+				if (tinyMCE.isMSIE) {
+					var rng = doc.selection.createRange();
+					selectedText = rng.text;
+				} else
+					selectedText = inst.getSel().toString();
+
+				if (!tinyMCE.linkElement) {
+					if ((tinyMCE.selectedElement.nodeName.toLowerCase() != "img") && (selectedText.length <= 0))
+						return true;
+				}
+
+				var href = "", target = "", title = "", onclick = "", action = "insert", style_class = "";
+
+				if (tinyMCE.selectedElement.nodeName.toLowerCase() == "a")
+					tinyMCE.linkElement = tinyMCE.selectedElement;
+
+				// Is anchor not a link
+				if (tinyMCE.linkElement != null && tinyMCE.getAttrib(tinyMCE.linkElement, 'href') == "")
+					tinyMCE.linkElement = null;
+
+				if (tinyMCE.linkElement) {
+					href = tinyMCE.getAttrib(tinyMCE.linkElement, 'href');
+					target = tinyMCE.getAttrib(tinyMCE.linkElement, 'target');
+					title = tinyMCE.getAttrib(tinyMCE.linkElement, 'title');
+					onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'onclick');
+					style_class = tinyMCE.getAttrib(tinyMCE.linkElement, 'class');
+
+					// Try old onclick to if copy/pasted content
+					if (onclick == "")
+						onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'onclick');
+
+					onclick = tinyMCE.cleanupEventStr(onclick);
+
+					href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, tinyMCE.linkElement, true);");
+
+					// Use mce_href if defined
+					mceRealHref = tinyMCE.getAttrib(tinyMCE.linkElement, 'mce_href');
+					if (mceRealHref != "") {
+						href = mceRealHref;
+
+						if (tinyMCE.getParam('convert_urls'))
+							href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, tinyMCE.linkElement, true);");
+					}
+
+					action = "update";
+				}
+
+				var template = new Array();
+
+				template['file'] = 'link.htm';
+				template['width'] = 310;
+				template['height'] = 200;
+
+				// Language specific width and height addons
+				template['width'] += tinyMCE.getLang('lang_insert_link_delta_width', 0);
+				template['height'] += tinyMCE.getLang('lang_insert_link_delta_height', 0);
+
+				if (inst.settings['insertlink_callback']) {
+					var returnVal = eval(inst.settings['insertlink_callback'] + "(href, target, title, onclick, action, style_class);");
+					if (returnVal && returnVal['href'])
+						TinyMCE_AdvancedTheme._insertLink(returnVal['href'], returnVal['target'], returnVal['title'], returnVal['onclick'], returnVal['style_class']);
+				} else {
+					tinyMCE.openWindow(template, {href : href, target : target, title : title, onclick : onclick, action : action, className : style_class, inline : "yes"});
+				}
+
+				return true;
+
+			case "mceImage":
+				var src = "", alt = "", border = "", hspace = "", vspace = "", width = "", height = "", align = "";
+				var title = "", onmouseover = "", onmouseout = "", action = "insert";
+				var img = tinyMCE.imgElement;
+				var inst = tinyMCE.getInstanceById(editor_id);
+
+				if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img") {
+					img = tinyMCE.selectedElement;
+					tinyMCE.imgElement = img;
+				}
+
+				if (img) {
+					// Is it a internal MCE visual aid image, then skip this one.
+					if (tinyMCE.getAttrib(img, 'name').indexOf('mce_') == 0)
+						return true;
+
+					src = tinyMCE.getAttrib(img, 'src');
+					alt = tinyMCE.getAttrib(img, 'alt');
+
+					// Try polling out the title
+					if (alt == "")
+						alt = tinyMCE.getAttrib(img, 'title');
+
+					// Fix width/height attributes if the styles is specified
+					if (tinyMCE.isGecko) {
+						var w = img.style.width;
+						if (w != null && w != "")
+							img.setAttribute("width", w);
+
+						var h = img.style.height;
+						if (h != null && h != "")
+							img.setAttribute("height", h);
+					}
+
+					border = tinyMCE.getAttrib(img, 'border');
+					hspace = tinyMCE.getAttrib(img, 'hspace');
+					vspace = tinyMCE.getAttrib(img, 'vspace');
+					width = tinyMCE.getAttrib(img, 'width');
+					height = tinyMCE.getAttrib(img, 'height');
+					align = tinyMCE.getAttrib(img, 'align');
+					onmouseover = tinyMCE.getAttrib(img, 'onmouseover');
+					onmouseout = tinyMCE.getAttrib(img, 'onmouseout');
+					title = tinyMCE.getAttrib(img, 'title');
+
+					// Is realy specified?
+					if (tinyMCE.isMSIE) {
+						width = img.attributes['width'].specified ? width : "";
+						height = img.attributes['height'].specified ? height : "";
+					}
+
+					//onmouseover = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseover));
+					//onmouseout = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseout));
+
+					src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, img, true);");
+
+					// Use mce_src if defined
+					mceRealSrc = tinyMCE.getAttrib(img, 'mce_src');
+					if (mceRealSrc != "") {
+						src = mceRealSrc;
+
+						if (tinyMCE.getParam('convert_urls'))
+							src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, img, true);");
+					}
+
+					//if (onmouseover != "")
+					//	onmouseover = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseover, img, true);");
+
+					//if (onmouseout != "")
+					//	onmouseout = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseout, img, true);");
+
+					action = "update";
+				}
+
+				var template = new Array();
+
+				template['file'] = 'image.htm?src={$src}';
+				template['width'] = 355;
+				template['height'] = 265 + (tinyMCE.isMSIE ? 25 : 0);
+
+				// Language specific width and height addons
+				template['width'] += tinyMCE.getLang('lang_insert_image_delta_width', 0);
+				template['height'] += tinyMCE.getLang('lang_insert_image_delta_height', 0);
+
+				if (inst.settings['insertimage_callback']) {
+					var returnVal = eval(inst.settings['insertimage_callback'] + "(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);");
+					if (returnVal && returnVal['src'])
+						TinyMCE_AdvancedTheme._insertImage(returnVal['src'], returnVal['alt'], returnVal['border'], returnVal['hspace'], returnVal['vspace'], returnVal['width'], returnVal['height'], returnVal['align'], returnVal['title'], returnVal['onmouseover'], returnVal['onmouseout']);
+				} else
+					tinyMCE.openWindow(template, {src : src, alt : alt, border : border, hspace : hspace, vspace : vspace, width : width, height : height, align : align, title : title, onmouseover : onmouseover, onmouseout : onmouseout, action : action, inline : "yes"});
+
+				return true;
+
+			case "forecolor":
+				var fcp = new TinyMCE_Layer(editor_id + '_fcPreview', false), p, img, elm;
+
+				TinyMCE_AdvancedTheme._hideMenus(editor_id);
+
+				if (!fcp.exists()) {
+					fcp.create('div', 'mceColorPreview', document.getElementById(editor_id + '_toolbar'));
+					elm = fcp.getElement();
+					elm._editor_id = editor_id;
+					elm._command = "forecolor";
+					elm._switchId = editor_id + "_forecolor";
+					tinyMCE.addEvent(elm, 'click', TinyMCE_AdvancedTheme._handleMenuEvent);
+					tinyMCE.addEvent(elm, 'mouseover', TinyMCE_AdvancedTheme._handleMenuEvent);
+					tinyMCE.addEvent(elm, 'mouseout', TinyMCE_AdvancedTheme._handleMenuEvent);
+				}
+
+				img = tinyMCE.selectNodes(document.getElementById(editor_id + "_forecolor"), function(n) {return n.nodeName == "IMG";})[0];
+				p = tinyMCE.getAbsPosition(img, document.getElementById(editor_id + '_toolbar'));
+
+				fcp.moveTo(p.absLeft, p.absTop);
+				fcp.getElement().style.backgroundColor = value != null ? value : tinyMCE.getInstanceById(editor_id).foreColor;
+				fcp.show();
+
+				return false;
+
+			case "forecolorpicker":
+				this._pickColor(editor_id, 'forecolor');
+				return true;
+
+			case "forecolorMenu":
+				TinyMCE_AdvancedTheme._hideMenus(editor_id);
+
+				// Create color layer
+				var ml = new TinyMCE_Layer(editor_id + '_fcMenu');
+
+				if (!ml.exists())
+					ml.create('div', 'mceMenu', document.body, TinyMCE_AdvancedTheme._getColorHTML(editor_id, 'theme_advanced_text_colors', 'forecolor'));
+
+				tinyMCE.switchClass(editor_id + '_forecolor', 'mceMenuButtonFocus');
+				ml.moveRelativeTo(document.getElementById(editor_id + "_forecolor"), 'bl');
+
+				ml.moveBy(tinyMCE.isMSIE && !tinyMCE.isOpera ? -1 : 1, -1);
+
+				if (tinyMCE.isOpera)
+					ml.moveBy(0, -2);
+
+				ml.show();
+			return true;
+
+			case "HiliteColor":
+				var bcp = new TinyMCE_Layer(editor_id + '_bcPreview', false), p, img;
+
+				TinyMCE_AdvancedTheme._hideMenus(editor_id);
+
+				if (!bcp.exists()) {
+					bcp.create('div', 'mceColorPreview', document.getElementById(editor_id + '_toolbar'));
+					elm = bcp.getElement();
+					elm._editor_id = editor_id;
+					elm._command = "HiliteColor";
+					elm._switchId = editor_id + "_backcolor";
+					tinyMCE.addEvent(elm, 'click', TinyMCE_AdvancedTheme._handleMenuEvent);
+					tinyMCE.addEvent(elm, 'mouseover', TinyMCE_AdvancedTheme._handleMenuEvent);
+					tinyMCE.addEvent(elm, 'mouseout', TinyMCE_AdvancedTheme._handleMenuEvent);
+				}
+
+				img = tinyMCE.selectNodes(document.getElementById(editor_id + "_backcolor"), function(n) {return n.nodeName == "IMG";})[0];
+				p = tinyMCE.getAbsPosition(img, document.getElementById(editor_id + '_toolbar'));
+
+				bcp.moveTo(p.absLeft, p.absTop);
+				bcp.getElement().style.backgroundColor = value != null ? value : tinyMCE.getInstanceById(editor_id).backColor;
+				bcp.show();
+
+				return false;
+
+			case "HiliteColorMenu":
+				TinyMCE_AdvancedTheme._hideMenus(editor_id);
+
+				// Create color layer
+				var ml = new TinyMCE_Layer(editor_id + '_bcMenu');
+
+				if (!ml.exists())
+					ml.create('div', 'mceMenu', document.body, TinyMCE_AdvancedTheme._getColorHTML(editor_id, 'theme_advanced_background_colors', 'HiliteColor'));
+
+				tinyMCE.switchClass(editor_id + '_backcolor', 'mceMenuButtonFocus');
+				ml.moveRelativeTo(document.getElementById(editor_id + "_backcolor"), 'bl');
+
+				ml.moveBy(tinyMCE.isMSIE && !tinyMCE.isOpera ? -1 : 1, -1);
+
+				if (tinyMCE.isOpera)
+					ml.moveBy(0, -2);
+
+				ml.show();
+			return true;
+	
+			case "backcolorpicker":
+				this._pickColor(editor_id, 'HiliteColor');
+				return true;
+
+			case "mceColorPicker":
+				if (user_interface) {
+					var template = [];
+	
+					if (!value['callback'] && !value['color'])
+						value['color'] = value['document'].getElementById(value['element_id']).value;
+
+					template['file'] = 'color_picker.htm';
+					template['width'] = 380;
+					template['height'] = 250;
+					template['close_previous'] = "no";
+
+					template['width'] += tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_width', 0);
+					template['height'] += tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_height', 0);
+
+					if (typeof(value['store_selection']) == "undefined")
+						value['store_selection'] = true;
+
+					tinyMCE.lastColorPickerValue = value;
+					tinyMCE.openWindow(template, {editor_id : editor_id, mce_store_selection : value['store_selection'], inline : "yes", command : "mceColorPicker", input_color : value['color']});
+				} else {
+					var savedVal = tinyMCE.lastColorPickerValue, elm;
+
+					if (savedVal['callback']) {
+						savedVal['callback'](value);
+						return true;
+					}
+
+					elm = savedVal['document'].getElementById(savedVal['element_id']);
+					elm.value = value;
+
+					if (elm.onchange != null && elm.onchange != '')
+						eval('elm.onchange();');
+				}
+			return true;
+
+			case "mceCodeEditor":
+				var template = new Array();
+
+				template['file'] = 'source_editor.htm';
+				template['width'] = parseInt(tinyMCE.getParam("theme_advanced_source_editor_width", 720));
+				template['height'] = parseInt(tinyMCE.getParam("theme_advanced_source_editor_height", 580));
+
+				tinyMCE.openWindow(template, {editor_id : editor_id, resizable : "yes", scrollbars : "no", inline : "yes"});
+				return true;
+
+			case "mceCharMap":
+				var template = new Array();
+
+				template['file'] = 'charmap.htm';
+				template['width'] = 550 + (tinyMCE.isOpera ? 40 : 0);
+				template['height'] = 250;
+
+				template['width'] += tinyMCE.getLang('lang_theme_advanced_charmap_delta_width', 0);
+				template['height'] += tinyMCE.getLang('lang_theme_advanced_charmap_delta_height', 0);
+
+				tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+				return true;
+
+			case "mceInsertAnchor":
+				var template = new Array();
+
+				template['file'] = 'anchor.htm';
+				template['width'] = 320;
+				template['height'] = 90 + (tinyMCE.isNS7 ? 30 : 0);
+
+				template['width'] += tinyMCE.getLang('lang_theme_advanced_anchor_delta_width', 0);
+				template['height'] += tinyMCE.getLang('lang_theme_advanced_anchor_delta_height', 0);
+
+				tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+				return true;
+
+			case "mceNewDocument":
+				if (confirm(tinyMCE.getLang('lang_newdocument')))
+					tinyMCE.execInstanceCommand(editor_id, 'mceSetContent', false, ' ');
+
+				return true;
+		}
+
+		return false;
+	},
+
+	/**
+	 * Editor instance template function.
+	 */
+	getEditorTemplate : function(settings, editorId) {
+		function removeFromArray(in_array, remove_array) {
+			var outArray = new Array(), skip;
+			
+			for (var i=0; i<in_array.length; i++) {
+				skip = false;
+
+				for (var j=0; j<remove_array.length; j++) {
+					if (in_array[i] == remove_array[j]) {
+						skip = true;
+					}
+				}
+
+				if (!skip) {
+					outArray[outArray.length] = in_array[i];
+				}
+			}
+
+			return outArray;
+		}
+
+		function addToArray(in_array, add_array) {
+			for (var i=0; i<add_array.length; i++) {
+				in_array[in_array.length] = add_array[i];
+			}
+
+			return in_array;
+		}
+
+		var template = new Array();
+		var deltaHeight = 0;
+		var resizing = tinyMCE.getParam("theme_advanced_resizing", false);
+		var path = tinyMCE.getParam("theme_advanced_path", true);
+		var statusbarHTML = '<div id="{$editor_id}_path" class="mceStatusbarPathText" style="display: ' + (path ? "block" : "none") + '">&#160;</div><div id="{$editor_id}_resize" class="mceStatusbarResize" style="display: ' + (resizing ? "block" : "none") + '" onmousedown="tinyMCE.themes.advanced._setResizing(event,\'{$editor_id}\',true);"></div><br style="clear: both" />';
+		var layoutManager = tinyMCE.getParam("theme_advanced_layout_manager", "SimpleLayout");
+
+		// Setup style select options -- MOVED UP FOR EXTERNAL TOOLBAR COMPATABILITY!
+		var styleSelectHTML = '<option value="">{$lang_theme_style_select}</option>';
+		if (settings['theme_advanced_styles']) {
+			var stylesAr = settings['theme_advanced_styles'].split(';');
+			
+			for (var i=0; i<stylesAr.length; i++) {
+				var key, value;
+
+				key = stylesAr[i].split('=')[0];
+				value = stylesAr[i].split('=')[1];
+
+				styleSelectHTML += '<option value="' + value + '">' + key + '</option>';
+			}
+
+			TinyMCE_AdvancedTheme._autoImportCSSClasses = false;
+		}
+
+		switch(layoutManager) {
+			case "SimpleLayout" : //the default TinyMCE Layout (for backwards compatibility)...
+				var toolbarHTML = "";
+				var toolbarLocation = tinyMCE.getParam("theme_advanced_toolbar_location", "bottom");
+				var toolbarAlign = tinyMCE.getParam("theme_advanced_toolbar_align", "center");
+				var pathLocation = tinyMCE.getParam("theme_advanced_path_location", "none"); // Compatiblity
+				var statusbarLocation = tinyMCE.getParam("theme_advanced_statusbar_location", pathLocation);
+				var defVals = {
+					theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,styleselect,formatselect",
+					theme_advanced_buttons2 : "bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code",
+					theme_advanced_buttons3 : "hr,removeformat,visualaid,separator,sub,sup,separator,charmap"
+				};
+
+				// Add accessibility control
+				toolbarHTML += '<a href="#" accesskey="q" title="' + tinyMCE.getLang("lang_toolbar_focus") + '"';
+
+				if (!tinyMCE.getParam("accessibility_focus"))
+					toolbarHTML += ' onfocus="tinyMCE.getInstanceById(\'' + editorId + '\').getWin().focus();"';
+
+				toolbarHTML += '></a>';
+
+				// Render rows
+				for (var i=1; i<100; i++) {
+					var def = defVals["theme_advanced_buttons" + i];
+
+					var buttons = tinyMCE.getParam("theme_advanced_buttons" + i, def == null ? '' : def, true, ',');
+					if (buttons.length == 0)
+						break;
+
+					buttons = removeFromArray(buttons, tinyMCE.getParam("theme_advanced_disable", "", true, ','));
+					buttons = addToArray(buttons, tinyMCE.getParam("theme_advanced_buttons" + i + "_add", "", true, ','));
+					buttons = addToArray(tinyMCE.getParam("theme_advanced_buttons" + i + "_add_before", "", true, ','), buttons);
+
+					for (var b=0; b<buttons.length; b++)
+						toolbarHTML += tinyMCE.getControlHTML(buttons[b]);
+
+					if (buttons.length > 0) {
+						toolbarHTML += "<br />";
+						deltaHeight -= 23;
+					}
+				}
+
+				// Add accessibility control
+				toolbarHTML += '<a href="#" accesskey="z" onfocus="tinyMCE.getInstanceById(\'' + editorId + '\').getWin().focus();"></a>';
+
+				// Setup template html
+				template['html'] = '<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}" style="width:{$width_style};height:{$height_style}"><tbody>';
+
+				if (toolbarLocation == "top")
+					template['html'] += '<tr><td dir="ltr" class="mceToolbarTop" align="' + toolbarAlign + '" height="1" nowrap="nowrap"><span id="' + editorId + '_toolbar" class="mceToolbarContainer">' + toolbarHTML + '</span></td></tr>';
+
+				if (statusbarLocation == "top") {
+					template['html'] += '<tr><td class="mceStatusbarTop" height="1">' + statusbarHTML + '</td></tr>';
+					deltaHeight -= 23;
+				}
+
+				template['html'] += '<tr><td align="center"><span id="{$editor_id}"></span></td></tr>';
+
+				if (toolbarLocation == "bottom")
+					template['html'] += '<tr><td dir="ltr" class="mceToolbarBottom" align="' + toolbarAlign + '" height="1"><span id="' + editorId + '_toolbar" class="mceToolbarContainer">' + toolbarHTML + '</span></td></tr>';
+
+				// External toolbar changes
+				if (toolbarLocation == "external") {
+					var bod = document.body;
+					var elm = document.createElement ("div");
+
+					toolbarHTML = tinyMCE.replaceVar(toolbarHTML, 'style_select_options', styleSelectHTML);
+					toolbarHTML = tinyMCE.applyTemplate(toolbarHTML, {editor_id : editorId});
+
+					elm.className = "mceToolbarExternal";
+					elm.id = editorId+"_toolbar";
+					elm.innerHTML = '<table width="100%" border="0" align="center"><tr><td align="center">'+toolbarHTML+'</td></tr></table>';
+					bod.appendChild (elm);
+					// bod.style.marginTop = elm.offsetHeight + "px";
+
+					deltaHeight = 0;
+					tinyMCE.getInstanceById(editorId).toolbarElement = elm;
+
+					//template['html'] = '<div id="mceExternalToolbar" align="center" class="mceToolbarExternal"><table width="100%" border="0" align="center"><tr><td align="center">'+toolbarHTML+'</td></tr></table></div>' + template["html"];
+				} else {
+					tinyMCE.getInstanceById(editorId).toolbarElement = null;
+				}
+
+				if (statusbarLocation == "bottom") {
+					template['html'] += '<tr><td class="mceStatusbarBottom" height="1">' + statusbarHTML + '</td></tr>';
+					deltaHeight -= 23;
+				}
+
+				template['html'] += '</tbody></table>';
+				//"SimpleLayout"
+			break;
+
+			case "RowLayout" : //Container Layout - containers defined in "theme_advanced_containers" are rendered from top to bottom.
+				template['html'] = '<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}" style="width:{$width}px;height:{$height}px"><tbody>';
+
+				var containers = tinyMCE.getParam("theme_advanced_containers", "", true, ",");
+				var defaultContainerCSS = tinyMCE.getParam("theme_advanced_containers_default_class", "container");
+				var defaultContainerAlign = tinyMCE.getParam("theme_advanced_containers_default_align", "center");
+
+				//Render Containers:
+				for (var i = 0; i < containers.length; i++)
+				{
+					if (containers[i] == "mceEditor") //Exceptions for mceEditor and ...
+						template['html'] += '<tr><td align="center" class="mceEditor_border"><span id="{$editor_id}"></span></td></tr>';
+					else if (containers[i] == "mceElementpath" || containers[i] == "mceStatusbar") // ... mceElementpath:
+					{
+						var pathClass = "mceStatusbar";
+
+						if (i == containers.length-1)
+						{
+							pathClass = "mceStatusbarBottom";
+						}
+						else if (i == 0)
+						{
+							pathClass = "mceStatusbar";
+						}
+						else
+						{
+							deltaHeight-=2;
+						}
+
+						template['html'] += '<tr><td class="' + pathClass + '" height="1">' + statusbarHTML + '</td></tr>';
+						deltaHeight -= 22;
+					} else { // Render normal Container
+						var curContainer = tinyMCE.getParam("theme_advanced_container_"+containers[i], "", true, ',');
+						var curContainerHTML = "";
+						var curAlign = tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_align", defaultContainerAlign);
+						var curCSS = tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_class", defaultContainerCSS);
+
+						curContainer = removeFromArray(curContainer, tinyMCE.getParam("theme_advanced_disable", "", true, ','));
+
+						for (var j=0; j<curContainer.length; j++)
+							curContainerHTML += tinyMCE.getControlHTML(curContainer[j]);
+
+						if (curContainer.length > 0) {
+							curContainerHTML += "<br />";
+							deltaHeight -= 23;
+						}
+
+						template['html'] += '<tr><td class="' + curCSS + '" align="' + curAlign + '" height="1">' + curContainerHTML + '</td></tr>';
+					}
+				}
+
+				template['html'] += '</tbody></table>';
+				//RowLayout
+			break;
+
+			case "CustomLayout" : //User defined layout callback...
+				var customLayout = tinyMCE.getParam("theme_advanced_custom_layout","");
+
+				if (customLayout != "" && eval("typeof(" + customLayout + ")") != "undefined") {
+					template = eval(customLayout + "(template);");
+				}
+			break;
+		}
+
+		if (resizing)
+			template['html'] += '<span id="{$editor_id}_resize_box" class="mceResizeBox"></span>';
+
+		template['html'] = tinyMCE.replaceVar(template['html'], 'style_select_options', styleSelectHTML);
+
+		// Set to default values
+		if (!template['delta_width'])
+			template['delta_width'] = 0;
+
+		if (!template['delta_height'])
+			template['delta_height'] = deltaHeight;
+
+		return template;
+	},
+
+	initInstance : function(inst) {
+		if (tinyMCE.getParam("theme_advanced_resizing", false)) {
+			if (tinyMCE.getParam("theme_advanced_resizing_use_cookie", true)) {
+				var w = TinyMCE_AdvancedTheme._getCookie("TinyMCE_" + inst.editorId + "_width");
+				var h = TinyMCE_AdvancedTheme._getCookie("TinyMCE_" + inst.editorId + "_height");
+
+				TinyMCE_AdvancedTheme._resizeTo(inst, w, h, tinyMCE.getParam("theme_advanced_resize_horizontal", true));
+			}
+		}
+
+		inst.addShortcut('ctrl', 'k', 'lang_link_desc', 'mceLink');
+	},
+
+	removeInstance : function(inst) {
+		new TinyMCE_Layer(inst.editorId + '_fcMenu').remove();
+		new TinyMCE_Layer(inst.editorId + '_bcMenu').remove();
+	},
+
+	hideInstance : function(inst) {
+		TinyMCE_AdvancedTheme._hideMenus(inst.editorId);
+	},
+
+	_handleMenuEvent : function(e) {
+		var te = tinyMCE.isMSIE ? window.event.srcElement : e.target;
+		tinyMCE._menuButtonEvent(e.type == "mouseover" ? "over" : "out", document.getElementById(te._switchId));
+
+		if (e.type == "click")
+			tinyMCE.execInstanceCommand(te._editor_id, te._command);
+	},
+
+	_hideMenus : function(id) {
+		var fcml = new TinyMCE_Layer(id + '_fcMenu'), bcml = new TinyMCE_Layer(id + '_bcMenu');
+
+		if (fcml.exists() && fcml.isVisible()) {
+			tinyMCE.switchClass(id + '_forecolor', 'mceMenuButton');
+			fcml.hide();
+		}
+
+		if (bcml.exists() && bcml.isVisible()) {
+			tinyMCE.switchClass(id + '_backcolor', 'mceMenuButton');
+			bcml.hide();
+		}
+	},
+
+	/**
+	 * Node change handler.
+	 */
+	handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection, setup_content) {
+		var alignNode, breakOut, classNode;
+
+		function selectByValue(select_elm, value, first_index) {
+			first_index = typeof(first_index) == "undefined" ? false : true;
+
+			if (select_elm) {
+				for (var i=0; i<select_elm.options.length; i++) {
+					var ov = "" + select_elm.options[i].value;
+
+					if (first_index && ov.toLowerCase().indexOf(value.toLowerCase()) == 0) {
+						select_elm.selectedIndex = i;
+						return true;
+					}
+
+					if (ov == value) {
+						select_elm.selectedIndex = i;
+						return true;
+					}
+				}
+			}
+
+			return false;
+		};
+
+		// No node provided
+		if (node == null)
+			return;
+
+		// Update path
+		var pathElm = document.getElementById(editor_id + "_path");
+		var inst = tinyMCE.getInstanceById(editor_id);
+		var doc = inst.getDoc();
+		TinyMCE_AdvancedTheme._hideMenus(editor_id);
+
+		if (pathElm) {
+			// Get node path
+			var parentNode = node;
+			var path = new Array();
+			
+			while (parentNode != null) {
+				if (parentNode.nodeName.toUpperCase() == "BODY") {
+					break;
+				}
+
+				// Only append element nodes to path
+				if (parentNode.nodeType == 1 && tinyMCE.getAttrib(parentNode, "class").indexOf('mceItemHidden') == -1) {
+					path[path.length] = parentNode;
+				}
+
+				parentNode = parentNode.parentNode;
+			}
+
+			// Setup HTML
+			var html = "";
+			for (var i=path.length-1; i>=0; i--) {
+				var nodeName = path[i].nodeName.toLowerCase();
+				var nodeData = "";
+
+				if (nodeName.indexOf("html:") == 0)
+					nodeName = nodeName.substring(5);
+
+				if (nodeName == "b") {
+					nodeName = "strong";
+				}
+
+				if (nodeName == "i") {
+					nodeName = "em";
+				}
+
+				if (nodeName == "span") {
+					var cn = tinyMCE.getAttrib(path[i], "class");
+					if (cn != "" && cn.indexOf('mceItem') == -1)
+						nodeData += "class: " + cn + " ";
+
+					var st = tinyMCE.getAttrib(path[i], "style");
+					if (st != "") {
+						st = tinyMCE.serializeStyle(tinyMCE.parseStyle(st));
+						nodeData += "style: " + tinyMCE.xmlEncode(st) + " ";
+					}
+				}
+
+				if (nodeName == "font") {
+					if (tinyMCE.getParam("convert_fonts_to_spans"))
+						nodeName = "span";
+
+					var face = tinyMCE.getAttrib(path[i], "face");
+					if (face != "")
+						nodeData += "font: " + tinyMCE.xmlEncode(face) + " ";
+
+					var size = tinyMCE.getAttrib(path[i], "size");
+					if (size != "")
+						nodeData += "size: " + tinyMCE.xmlEncode(size) + " ";
+
+					var color = tinyMCE.getAttrib(path[i], "color");
+					if (color != "")
+						nodeData += "color: " + tinyMCE.xmlEncode(color) + " ";
+				}
+
+				if (tinyMCE.getAttrib(path[i], 'id') != "") {
+					nodeData += "id: " + path[i].getAttribute('id') + " ";
+				}
+
+				var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], "class"), false);
+				if (className != "" && className.indexOf('mceItem') == -1)
+					nodeData += "class: " + className + " ";
+
+				if (tinyMCE.getAttrib(path[i], 'src') != "") {
+					var src = tinyMCE.getAttrib(path[i], "mce_src");
+
+					if (src == "")
+						 src = tinyMCE.getAttrib(path[i], "src");
+
+					nodeData += "src: " + tinyMCE.xmlEncode(src) + " ";
+				}
+
+				if (path[i].nodeName == 'A' && tinyMCE.getAttrib(path[i], 'href') != "") {
+					var href = tinyMCE.getAttrib(path[i], "mce_href");
+
+					if (href == "")
+						 href = tinyMCE.getAttrib(path[i], "href");
+
+					nodeData += "href: " + tinyMCE.xmlEncode(href) + " ";
+				}
+
+				className = tinyMCE.getAttrib(path[i], "class");
+				if ((nodeName == "img" || nodeName == "span") && className.indexOf('mceItem') != -1) {
+					nodeName = className.replace(/mceItem([a-z]+)/gi, '$1').toLowerCase();
+					nodeData = path[i].getAttribute('title');
+				}
+
+				if (nodeName == "a" && (anchor = tinyMCE.getAttrib(path[i], "name")) != "") {
+					nodeName = "a";
+					nodeName += "#" + tinyMCE.xmlEncode(anchor);
+					nodeData = "";
+				}
+
+				if (tinyMCE.getAttrib(path[i], 'name').indexOf("mce_") != 0) {
+					var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], "class"), false);
+					if (className != "" && className.indexOf('mceItem') == -1) {
+						nodeName += "." + className;
+					}
+				}
+
+				var cmd = 'tinyMCE.execInstanceCommand(\'' + editor_id + '\',\'mceSelectNodeDepth\',false,\'' + i + '\');';
+				html += '<a title="' + nodeData + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" target="_self" class="mcePathItem">' + nodeName + '</a>';
+
+				if (i > 0) {
+					html += " &raquo; ";
+				}
+			}
+
+			pathElm.innerHTML = '<a href="#" accesskey="x"></a>' + tinyMCE.getLang('lang_theme_path') + ": " + html + '&#160;';
+		}
+
+		// Reset old states
+		tinyMCE.switchClass(editor_id + '_justifyleft', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_justifyright', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_justifycenter', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_justifyfull', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_bold', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_italic', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_underline', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_strikethrough', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_bullist', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_numlist', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_sub', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_sup', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_anchor', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_link', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_unlink', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_outdent', 'mceButtonDisabled');
+		tinyMCE.switchClass(editor_id + '_image', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_hr', 'mceButtonNormal');
+
+		if (node.nodeName == "A" && tinyMCE.getAttrib(node, "class").indexOf('mceItemAnchor') != -1)
+			tinyMCE.switchClass(editor_id + '_anchor', 'mceButtonSelected');
+
+		// Get link
+		var anchorLink = tinyMCE.getParentElement(node, "a", "href");
+
+		if (anchorLink || any_selection) {
+			tinyMCE.switchClass(editor_id + '_link', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal');
+			tinyMCE.switchClass(editor_id + '_unlink', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal');
+		}
+
+		// Handle visual aid
+		tinyMCE.switchClass(editor_id + '_visualaid', visual_aid ? 'mceButtonSelected' : 'mceButtonNormal');
+
+		if (undo_levels != -1) {
+			tinyMCE.switchClass(editor_id + '_undo', 'mceButtonDisabled');
+			tinyMCE.switchClass(editor_id + '_redo', 'mceButtonDisabled');
+		}
+
+		// Within li, blockquote
+		if (tinyMCE.getParentElement(node, "li,blockquote"))
+			tinyMCE.switchClass(editor_id + '_outdent', 'mceButtonNormal');
+
+		// Has redo levels
+		if (undo_index != -1 && (undo_index < undo_levels-1 && undo_levels > 0))
+			tinyMCE.switchClass(editor_id + '_redo', 'mceButtonNormal');
+
+		// Has undo levels
+		if (undo_index != -1 && (undo_index > 0 && undo_levels > 0))
+			tinyMCE.switchClass(editor_id + '_undo', 'mceButtonNormal');
+
+		// Select class in select box
+		var selectElm = document.getElementById(editor_id + "_styleSelect");
+		
+		if (selectElm) {
+			TinyMCE_AdvancedTheme._setupCSSClasses(editor_id);
+
+			classNode = node;
+			breakOut = false;
+			var index = 0;
+
+			do {
+				if (classNode && classNode.className) {
+					for (var i=0; i<selectElm.options.length; i++) {
+						if (selectElm.options[i].value == classNode.className) {
+							index = i;
+							breakOut = true;
+							break;
+						}
+					}
+				}
+			} while (!breakOut && classNode != null && (classNode = classNode.parentNode) != null);
+
+			selectElm.selectedIndex = index;
+		}
+
+		// Select formatblock
+		var selectElm = document.getElementById(editor_id + "_formatSelect");
+		if (selectElm) {
+			var elm = tinyMCE.getParentElement(node, "p,div,h1,h2,h3,h4,h5,h6,pre,address");
+
+			if (elm)
+				selectByValue(selectElm, "<" + elm.nodeName.toLowerCase() + ">");
+			else
+				selectByValue(selectElm, "");
+		}
+
+		// Select fontselect
+		var selectElm = document.getElementById(editor_id + "_fontNameSelect");
+		if (selectElm) {
+			if (!tinyMCE.isSafari && !(tinyMCE.isMSIE && !tinyMCE.isOpera)) {
+				var face = inst.queryCommandValue('FontName');
+
+				face = face == null || face == "" ? "" : face;
+
+				selectByValue(selectElm, face, face != "");
+			} else {
+				var elm = tinyMCE.getParentElement(node, "font", "face");
+
+				if (elm) {
+					var family = tinyMCE.getAttrib(elm, "face");
+
+					if (family == '')
+						family = '' + elm.style.fontFamily;
+
+					if (!selectByValue(selectElm, family, family != ""))
+						selectByValue(selectElm, "");
+				} else
+					selectByValue(selectElm, "");
+			}
+		}
+
+		// Select fontsize
+		var selectElm = document.getElementById(editor_id + "_fontSizeSelect");
+		if (selectElm) {
+			if (!tinyMCE.isSafari && !tinyMCE.isOpera) {
+				var size = inst.queryCommandValue('FontSize');
+				selectByValue(selectElm, size == null || size == "" ? "0" : size);
+			} else {
+				var elm = tinyMCE.getParentElement(node, "font", "size");
+				if (elm) {
+					var size = tinyMCE.getAttrib(elm, "size");
+
+					if (size == '') {
+						var sizes = new Array('', '8px', '10px', '12px', '14px', '18px', '24px', '36px');
+
+						size = '' + elm.style.fontSize;
+
+						for (var i=0; i<sizes.length; i++) {
+							if (('' + sizes[i]) == size) {
+								size = i;
+								break;
+							}
+						}
+					}
+
+					if (!selectByValue(selectElm, size))
+						selectByValue(selectElm, "");
+				} else
+					selectByValue(selectElm, "0");
+			}
+		}
+
+		// Handle align attributes
+		alignNode = node;
+		breakOut = false;
+		do {
+			if (!alignNode.getAttribute || !alignNode.getAttribute('align'))
+				continue;
+
+			switch (alignNode.getAttribute('align').toLowerCase()) {
+				case "left":
+					tinyMCE.switchClass(editor_id + '_justifyleft', 'mceButtonSelected');
+					breakOut = true;
+				break;
+
+				case "right":
+					tinyMCE.switchClass(editor_id + '_justifyright', 'mceButtonSelected');
+					breakOut = true;
+				break;
+
+				case "middle":
+				case "center":
+					tinyMCE.switchClass(editor_id + '_justifycenter', 'mceButtonSelected');
+					breakOut = true;
+				break;
+
+				case "justify":
+					tinyMCE.switchClass(editor_id + '_justifyfull', 'mceButtonSelected');
+					breakOut = true;
+				break;
+			}
+		} while (!breakOut && (alignNode = alignNode.parentNode) != null);
+
+		// Div justification
+		var div = tinyMCE.getParentElement(node, "div");
+		if (div && div.style.textAlign == "center")
+			tinyMCE.switchClass(editor_id + '_justifycenter', 'mceButtonSelected');
+
+		// Do special text
+		if (!setup_content) {
+			// , "JustifyLeft", "_justifyleft", "JustifyCenter", "justifycenter", "JustifyRight", "justifyright", "JustifyFull", "justifyfull", "InsertUnorderedList", "bullist", "InsertOrderedList", "numlist", "InsertUnorderedList", "bullist", "Outdent", "outdent", "Indent", "indent", "subscript", "sub"
+			var ar = new Array("Bold", "_bold", "Italic", "_italic", "Strikethrough", "_strikethrough", "superscript", "_sup", "subscript", "_sub");
+			for (var i=0; i<ar.length; i+=2) {
+				if (inst.queryCommandState(ar[i]))
+					tinyMCE.switchClass(editor_id + ar[i+1], 'mceButtonSelected');
+			}
+
+			if (inst.queryCommandState("Underline") && (node.parentNode == null || node.parentNode.nodeName != "A"))
+				tinyMCE.switchClass(editor_id + '_underline', 'mceButtonSelected');
+		}
+
+		// Handle elements
+		do {
+			switch (node.nodeName) {
+				case "UL":
+					tinyMCE.switchClass(editor_id + '_bullist', 'mceButtonSelected');
+				break;
+
+				case "OL":
+					tinyMCE.switchClass(editor_id + '_numlist', 'mceButtonSelected');
+				break;
+
+				case "HR":
+					 tinyMCE.switchClass(editor_id + '_hr', 'mceButtonSelected');
+				break;
+
+				case "IMG":
+				if (tinyMCE.getAttrib(node, 'name').indexOf('mce_') != 0 && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) {
+					tinyMCE.switchClass(editor_id + '_image', 'mceButtonSelected');
+				}
+				break;
+			}
+		} while ((node = node.parentNode) != null);
+	},
+
+	// Private theme internal functions
+
+	// This function auto imports CSS classes into the class selection droplist
+	_setupCSSClasses : function(editor_id) {
+		var i, selectElm;
+
+		if (!TinyMCE_AdvancedTheme._autoImportCSSClasses)
+			return;
+
+		selectElm = document.getElementById(editor_id + '_styleSelect');
+
+		if (selectElm && selectElm.getAttribute('cssImported') != 'true') {
+			var csses = tinyMCE.getCSSClasses(editor_id);
+			if (csses && selectElm)	{
+				for (i=0; i<csses.length; i++)
+					selectElm.options[selectElm.options.length] = new Option(csses[i], csses[i]);
+			}
+
+			// Only do this once
+			if (csses != null && csses.length > 0)
+				selectElm.setAttribute('cssImported', 'true');
+		}
+	},
+
+	_setCookie : function(name, value, expires, path, domain, secure) {
+		var curCookie = name + "=" + escape(value) +
+			((expires) ? "; expires=" + expires.toGMTString() : "") +
+			((path) ? "; path=" + escape(path) : "") +
+			((domain) ? "; domain=" + domain : "") +
+			((secure) ? "; secure" : "");
+
+		document.cookie = curCookie;
+	},
+
+	_getCookie : function(name) {
+		var dc = document.cookie;
+		var prefix = name + "=";
+		var begin = dc.indexOf("; " + prefix);
+
+		if (begin == -1) {
+			begin = dc.indexOf(prefix);
+
+			if (begin != 0)
+				return null;
+		} else
+			begin += 2;
+
+		var end = document.cookie.indexOf(";", begin);
+
+		if (end == -1)
+			end = dc.length;
+
+		return unescape(dc.substring(begin + prefix.length, end));
+	},
+
+	_resizeTo : function(inst, w, h, set_w) {
+		var editorContainer = document.getElementById(inst.editorId + '_parent');
+		var tableElm = editorContainer.firstChild;
+		var iframe = inst.iframeElement;
+
+		if (w == null || w == "null") {
+			set_w = false;
+			w = 0;
+		}
+
+		if (h == null || h == "null")
+			return;
+
+		w = parseInt(w);
+		h = parseInt(h);
+
+		if (tinyMCE.isGecko) {
+			w += 2;
+			h += 2;
+		}
+
+		var dx = w - tableElm.clientWidth;
+		var dy = h - tableElm.clientHeight;
+
+		w = w < 1 ? 30 : w;
+		h = h < 1 ? 30 : h;
+
+		if (set_w)
+			tableElm.style.width = w + "px";
+
+		tableElm.style.height = h + "px";
+
+		iw = iframe.clientWidth + dx;
+		ih = iframe.clientHeight + dy;
+
+		iw = iw < 1 ? 30 : iw;
+		ih = ih < 1 ? 30 : ih;
+
+		if (tinyMCE.isGecko) {
+			iw -= 2;
+			ih -= 2;
+		}
+
+		if (set_w)
+			iframe.style.width = iw + "px";
+
+		iframe.style.height = ih + "px";
+
+		// Is it to small, make it bigger again
+		if (set_w) {
+			var tableBodyElm = tableElm.firstChild;
+			var minIframeWidth = tableBodyElm.scrollWidth;
+			if (inst.iframeElement.clientWidth < minIframeWidth) {
+				dx = minIframeWidth - inst.iframeElement.clientWidth;
+
+				inst.iframeElement.style.width = (iw + dx) + "px";
+			}
+		}
+
+		// Remove pesky table controls
+		inst.useCSS = false;
+	},
+
+	/**
+	 * Handles resizing events.
+	 */
+	_resizeEventHandler : function(e) {
+		var resizer = TinyMCE_AdvancedTheme._resizer;
+
+		// Do nothing
+		if (!resizer.resizing)
+			return;
+
+		e = typeof(e) == "undefined" ? window.event : e;
+
+		var dx = e.screenX - resizer.downX;
+		var dy = e.screenY - resizer.downY;
+		var resizeBox = resizer.resizeBox;
+		var editorId = resizer.editorId;
+
+		switch (e.type) {
+			case "mousemove":
+				var w, h;
+
+				w = resizer.width + dx;
+				h = resizer.height + dy;
+
+				w = w < 1 ? 1 : w;
+				h = h < 1 ? 1 : h;
+
+				if (resizer.horizontal)
+					resizeBox.style.width = w + "px";
+
+				resizeBox.style.height = h + "px";
+				break;
+
+			case "mouseup":
+				TinyMCE_AdvancedTheme._setResizing(e, editorId, false);
+				TinyMCE_AdvancedTheme._resizeTo(tinyMCE.getInstanceById(editorId), resizer.width + dx, resizer.height + dy, resizer.horizontal);
+
+				// Expire in a month
+				if (tinyMCE.getParam("theme_advanced_resizing_use_cookie", true)) {
+					var expires = new Date();
+					expires.setTime(expires.getTime() + 3600000 * 24 * 30);
+
+					// Set the cookies
+					TinyMCE_AdvancedTheme._setCookie("TinyMCE_" + editorId + "_width", "" + (resizer.horizontal ? resizer.width + dx : ""), expires);
+					TinyMCE_AdvancedTheme._setCookie("TinyMCE_" + editorId + "_height", "" + (resizer.height + dy), expires);
+				}
+				break;
+		}
+	},
+
+	/**
+	 * Starts/stops the editor resizing.
+	 */
+	_setResizing : function(e, editor_id, state) {
+		e = typeof(e) == "undefined" ? window.event : e;
+
+		var resizer = TinyMCE_AdvancedTheme._resizer;
+		var editorContainer = document.getElementById(editor_id + '_parent');
+		var editorArea = document.getElementById(editor_id + '_parent').firstChild;
+		var resizeBox = document.getElementById(editor_id + '_resize_box');
+		var inst = tinyMCE.getInstanceById(editor_id);
+
+		if (state) {
+			// Place box over editor area
+			var width = editorArea.clientWidth;
+			var height = editorArea.clientHeight;
+
+			resizeBox.style.width = width + "px";
+			resizeBox.style.height = height + "px";
+
+			resizer.iframeWidth = inst.iframeElement.clientWidth;
+			resizer.iframeHeight = inst.iframeElement.clientHeight;
+
+			// Hide editor and show resize box
+			editorArea.style.display = "none";
+			resizeBox.style.display = "block";
+
+			// Add event handlers, only once
+			if (!resizer.eventHandlers) {
+				if (tinyMCE.isMSIE)
+					tinyMCE.addEvent(document, "mousemove", TinyMCE_AdvancedTheme._resizeEventHandler);
+				else
+					tinyMCE.addEvent(window, "mousemove", TinyMCE_AdvancedTheme._resizeEventHandler);
+
+				tinyMCE.addEvent(document, "mouseup", TinyMCE_AdvancedTheme._resizeEventHandler);
+
+				resizer.eventHandlers = true;
+			}
+
+			resizer.resizing = true;
+			resizer.downX = e.screenX;
+			resizer.downY = e.screenY;
+			resizer.width = parseInt(resizeBox.style.width);
+			resizer.height = parseInt(resizeBox.style.height);
+			resizer.editorId = editor_id;
+			resizer.resizeBox = resizeBox;
+			resizer.horizontal = tinyMCE.getParam("theme_advanced_resize_horizontal", true);
+		} else {
+			resizer.resizing = false;
+			resizeBox.style.display = "none";
+			editorArea.style.display = tinyMCE.isMSIE && !tinyMCE.isOpera ? "block" : "table";
+			tinyMCE.execCommand('mceResetDesignMode');
+		}
+	},
+
+	_getColorHTML : function(id, n, cm) {
+		var i, h, cl;
+
+		h = '<span class="mceMenuLine"></span>';
+		cl = tinyMCE.getParam(n, TinyMCE_AdvancedTheme._defColors).split(',');
+
+		h += '<table class="mceColors"><tr>';
+		for (i=0; i<cl.length; i++) {
+			c = 'tinyMCE.execInstanceCommand(\'' + id + '\', \'' + cm + '\', false, \'#' + cl[i] + '\');';
+			h += '<td><a href="javascript:' + c + '" style="background-color: #' + cl[i] + '" onclick="' + c + ';return false;"></a></td>';
+
+			if ((i+1) % 8 == 0)
+				h += '</tr><tr>';
+		}
+
+		h += '</tr></table>';
+
+		if (tinyMCE.getParam("theme_advanced_more_colors", true))
+			h += '<a href="javascript:void(0);" onclick="TinyMCE_AdvancedTheme._pickColor(\'' + id + '\',\'' + cm + '\');" class="mceMoreColors">' + tinyMCE.getLang('lang_more_colors') + '</a>';
+
+		return h;
+	},
+
+	_pickColor : function(id, cm) {
+		var inputColor, inst = tinyMCE.selectedInstance;
+
+		if (cm == 'forecolor' && inst)
+			inputColor = inst.foreColor;
+
+		if ((cm == 'backcolor' || cm == 'HiliteColor') && inst)
+			inputColor = inst.backColor;
+
+		tinyMCE.execCommand('mceColorPicker', true, {color : inputColor, callback : function(c) {
+			tinyMCE.execInstanceCommand(id, cm, false, c);
+		}});
+	},
+
+	_insertImage : function(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout) {
+		tinyMCE.execCommand("mceInsertContent", false, tinyMCE.createTagHTML('img', {
+			src : tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src), // Force absolute
+			mce_src : src,
+			alt : alt,
+			border : border,
+			hspace : hspace,
+			vspace : vspace,
+			width : width,
+			height : height,
+			align : align,
+			title : title,
+			onmouseover : onmouseover,
+			onmouseout : onmouseout
+		}));
+	},
+
+	_insertLink : function(href, target, title, onclick, style_class) {
+		tinyMCE.execCommand('mceBeginUndoLevel');
+
+		if (tinyMCE.selectedInstance && tinyMCE.selectedElement && tinyMCE.selectedElement.nodeName.toLowerCase() == "img") {
+			var doc = tinyMCE.selectedInstance.getDoc();
+			var linkElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "a");
+			var newLink = false;
+
+			if (!linkElement) {
+				linkElement = doc.createElement("a");
+				newLink = true;
+			}
+
+			var mhref = href;
+			var thref = eval(tinyMCE.settings['urlconverter_callback'] + "(href, linkElement);");
+			mhref = tinyMCE.getParam('convert_urls') ? href : mhref;
+
+			tinyMCE.setAttrib(linkElement, 'href', thref);
+			tinyMCE.setAttrib(linkElement, 'mce_href', mhref);
+			tinyMCE.setAttrib(linkElement, 'target', target);
+			tinyMCE.setAttrib(linkElement, 'title', title);
+			tinyMCE.setAttrib(linkElement, 'onclick', onclick);
+			tinyMCE.setAttrib(linkElement, 'class', style_class);
+
+			if (newLink) {
+				linkElement.appendChild(tinyMCE.selectedElement.cloneNode(true));
+				tinyMCE.selectedElement.parentNode.replaceChild(linkElement, tinyMCE.selectedElement);
+			}
+
+			return;
+		}
+
+		if (!tinyMCE.linkElement && tinyMCE.selectedInstance) {
+			if (tinyMCE.isSafari) {
+				tinyMCE.execCommand("mceInsertContent", false, '<a href="' + tinyMCE.uniqueURL + '">' + tinyMCE.selectedInstance.selection.getSelectedHTML() + '</a>');
+			} else
+				tinyMCE.selectedInstance.contentDocument.execCommand("createlink", false, tinyMCE.uniqueURL);
+
+			tinyMCE.linkElement = tinyMCE.getElementByAttributeValue(tinyMCE.selectedInstance.contentDocument.body, "a", "href", tinyMCE.uniqueURL);
+
+			var elementArray = tinyMCE.getElementsByAttributeValue(tinyMCE.selectedInstance.contentDocument.body, "a", "href", tinyMCE.uniqueURL);
+
+			for (var i=0; i<elementArray.length; i++) {
+				var mhref = href;
+				var thref = eval(tinyMCE.settings['urlconverter_callback'] + "(href, elementArray[i]);");
+				mhref = tinyMCE.getParam('convert_urls') ? href : mhref;
+
+				tinyMCE.setAttrib(elementArray[i], 'href', thref);
+				tinyMCE.setAttrib(elementArray[i], 'mce_href', mhref);
+				tinyMCE.setAttrib(elementArray[i], 'target', target);
+				tinyMCE.setAttrib(elementArray[i], 'title', title);
+				tinyMCE.setAttrib(elementArray[i], 'onclick', onclick);
+				tinyMCE.setAttrib(elementArray[i], 'class', style_class);
+			}
+
+			tinyMCE.linkElement = elementArray[0];
+		}
+
+		if (tinyMCE.linkElement) {
+			var mhref = href;
+			href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, tinyMCE.linkElement);");
+			mhref = tinyMCE.getParam('convert_urls') ? href : mhref;
+
+			tinyMCE.setAttrib(tinyMCE.linkElement, 'href', href);
+			tinyMCE.setAttrib(tinyMCE.linkElement, 'mce_href', mhref);
+			tinyMCE.setAttrib(tinyMCE.linkElement, 'target', target);
+			tinyMCE.setAttrib(tinyMCE.linkElement, 'title', title);
+			tinyMCE.setAttrib(tinyMCE.linkElement, 'onclick', onclick);
+			tinyMCE.setAttrib(tinyMCE.linkElement, 'class', style_class);
+		}
+
+		tinyMCE.execCommand('mceEndUndoLevel');
+	}
+};
+
+tinyMCE.addTheme("advanced", TinyMCE_AdvancedTheme);
+
+// Add default buttons maps for advanced theme and all internal plugins
+tinyMCE.addButtonMap(TinyMCE_AdvancedTheme._buttonMap);
diff --git a/tinyMCE/themes/advanced/image.htm b/tinyMCE/themes/advanced/image.htm
new file mode 100644
index 0000000000000000000000000000000000000000..96a9a758da38cf33c60fd3f0da6f67cf9eeb66eb
--- /dev/null
+++ b/tinyMCE/themes/advanced/image.htm
@@ -0,0 +1,100 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_insert_image_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/image.js"></script>
+	<base target="_self" />
+</head>
+<body id="image" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onsubmit="insertImage();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_insert_image_title}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+     <table border="0" cellpadding="4" cellspacing="0">
+          <tr>
+            <td nowrap="nowrap"><label for="src">{$lang_insert_image_src}</label></td>
+            <td><table border="0" cellspacing="0" cellpadding="0">
+                <tr>
+                  <td><input id="src" name="src" type="text" value="" style="width: 200px" onchange="getImageData();" /></td>
+                  <td id="srcbrowsercontainer">&nbsp;</td>
+                </tr>
+              </table></td>
+          </tr>
+		  <!-- Image list -->
+		  <script language="javascript">
+			if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
+				var html = "";
+
+				html += '<tr><td><label for="image_list">{$lang_image_list}</label></td>';
+				html += '<td><select id="image_list" name="image_list" style="width: 200px" onchange="this.form.src.value=this.options[this.selectedIndex].value;resetImageData();getImageData();">';
+				html += '<option value="">---</option>';
+
+				for (var i=0; i<tinyMCEImageList.length; i++)
+					html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
+
+				html += '</select></td></tr>';
+
+				document.write(html);
+			}
+		  </script>
+		  <!-- /Image list -->
+          <tr>
+            <td nowrap="nowrap"><label for="alt">{$lang_insert_image_alt}</label></td>
+            <td><input id="alt" name="alt" type="text" value="" style="width: 200px" /></td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap"><label for="align">{$lang_insert_image_align}</label></td>
+            <td><select id="align" name="align">
+                <option value="">{$lang_insert_image_align_default}</option>
+                <option value="baseline">{$lang_insert_image_align_baseline}</option>
+                <option value="top">{$lang_insert_image_align_top}</option>
+                <option value="middle">{$lang_insert_image_align_middle}</option>
+                <option value="bottom">{$lang_insert_image_align_bottom}</option>
+                <option value="texttop">{$lang_insert_image_align_texttop}</option>
+                <option value="absmiddle">{$lang_insert_image_align_absmiddle}</option>
+                <option value="absbottom">{$lang_insert_image_align_absbottom}</option>
+                <option value="left">{$lang_insert_image_align_left}</option>
+                <option value="right">{$lang_insert_image_align_right}</option>
+              </select></td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap"><label for="width">{$lang_insert_image_dimensions}</label></td>
+            <td><input id="width" name="width" type="text" value="" size="3" maxlength="5" />
+              x
+              <input id="height" name="height" type="text" value="" size="3" maxlength="5" /></td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap"><label for="border">{$lang_insert_image_border}</label></td>
+            <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" /></td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap"><label for="vspace">{$lang_insert_image_vspace}</label></td>
+            <td><input id="vspace" name="vspace" type="text" value="" size="3" maxlength="3" /></td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap"><label for="hspace">{$lang_insert_image_hspace}</label></td>
+            <td><input id="hspace" name="hspace" type="text" value="" size="3" maxlength="3" /></td>
+          </tr>
+        </table>
+		</div>
+	</div>
+
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertImage();" />
+		</div>
+
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+</form>
+</body>
+</html>
diff --git a/tinyMCE/themes/advanced/images/anchor.gif b/tinyMCE/themes/advanced/images/anchor.gif
new file mode 100644
index 0000000000000000000000000000000000000000..34ab71534b74e1f8eb01a822d2073cde4cd878cb
Binary files /dev/null and b/tinyMCE/themes/advanced/images/anchor.gif differ
diff --git a/tinyMCE/themes/advanced/images/anchor_symbol.gif b/tinyMCE/themes/advanced/images/anchor_symbol.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2eafd7954e6ebf24204b01db94b39299426d09da
Binary files /dev/null and b/tinyMCE/themes/advanced/images/anchor_symbol.gif differ
diff --git a/tinyMCE/themes/advanced/images/backcolor.gif b/tinyMCE/themes/advanced/images/backcolor.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d03e206a35300e5bc8fc26b760809ee715e14fba
Binary files /dev/null and b/tinyMCE/themes/advanced/images/backcolor.gif differ
diff --git a/tinyMCE/themes/advanced/images/bold.gif b/tinyMCE/themes/advanced/images/bold.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d6a9cc2cd4117526156fa29c06156ba5971823c4
Binary files /dev/null and b/tinyMCE/themes/advanced/images/bold.gif differ
diff --git a/tinyMCE/themes/advanced/images/bold_de_se.gif b/tinyMCE/themes/advanced/images/bold_de_se.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9b129de25e916946792c89f08a7b30b2f9dc8b72
Binary files /dev/null and b/tinyMCE/themes/advanced/images/bold_de_se.gif differ
diff --git a/tinyMCE/themes/advanced/images/bold_es.gif b/tinyMCE/themes/advanced/images/bold_es.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ea341e6089fd34377447b220f5fddf8fde1887ab
Binary files /dev/null and b/tinyMCE/themes/advanced/images/bold_es.gif differ
diff --git a/tinyMCE/themes/advanced/images/bold_fr.gif b/tinyMCE/themes/advanced/images/bold_fr.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2816454515a2b3d031ee1762f9308db99e9d3940
Binary files /dev/null and b/tinyMCE/themes/advanced/images/bold_fr.gif differ
diff --git a/tinyMCE/themes/advanced/images/bold_ru.gif b/tinyMCE/themes/advanced/images/bold_ru.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e000d461c96188c26fe081920ba332593e5b60ca
Binary files /dev/null and b/tinyMCE/themes/advanced/images/bold_ru.gif differ
diff --git a/tinyMCE/themes/advanced/images/bold_tw.gif b/tinyMCE/themes/advanced/images/bold_tw.gif
new file mode 100644
index 0000000000000000000000000000000000000000..82085432c622fb9b195d45480ce0c00f80d24027
Binary files /dev/null and b/tinyMCE/themes/advanced/images/bold_tw.gif differ
diff --git a/tinyMCE/themes/advanced/images/browse.gif b/tinyMCE/themes/advanced/images/browse.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c786d0b2050a1a59fe6d729497bdd58329011509
Binary files /dev/null and b/tinyMCE/themes/advanced/images/browse.gif differ
diff --git a/tinyMCE/themes/advanced/images/bullist.gif b/tinyMCE/themes/advanced/images/bullist.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e19467c70e337bbfb2a3fe3eff1bc3acab0eaec
Binary files /dev/null and b/tinyMCE/themes/advanced/images/bullist.gif differ
diff --git a/tinyMCE/themes/advanced/images/button_menu.gif b/tinyMCE/themes/advanced/images/button_menu.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c3d8fa23117f9a5630277071a6e07cd04264173f
Binary files /dev/null and b/tinyMCE/themes/advanced/images/button_menu.gif differ
diff --git a/tinyMCE/themes/advanced/images/buttons.gif b/tinyMCE/themes/advanced/images/buttons.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5ad99a7c4321610124833ba05bdf0df236f5d5a9
Binary files /dev/null and b/tinyMCE/themes/advanced/images/buttons.gif differ
diff --git a/tinyMCE/themes/advanced/images/cancel_button_bg.gif b/tinyMCE/themes/advanced/images/cancel_button_bg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4b4aeefcbbba8ed33383d99e3ad38a2b9683044e
Binary files /dev/null and b/tinyMCE/themes/advanced/images/cancel_button_bg.gif differ
diff --git a/tinyMCE/themes/advanced/images/charmap.gif b/tinyMCE/themes/advanced/images/charmap.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3cdc4ac9134258a9a1a83b6afd5c7055bebbcbf9
Binary files /dev/null and b/tinyMCE/themes/advanced/images/charmap.gif differ
diff --git a/tinyMCE/themes/advanced/images/cleanup.gif b/tinyMCE/themes/advanced/images/cleanup.gif
new file mode 100644
index 0000000000000000000000000000000000000000..16491f6cfcf3e1123f08352c895f8010f791c469
Binary files /dev/null and b/tinyMCE/themes/advanced/images/cleanup.gif differ
diff --git a/tinyMCE/themes/advanced/images/close.gif b/tinyMCE/themes/advanced/images/close.gif
new file mode 100644
index 0000000000000000000000000000000000000000..679ca2aa47644793fc7096142233af6d18cfc9ac
Binary files /dev/null and b/tinyMCE/themes/advanced/images/close.gif differ
diff --git a/tinyMCE/themes/advanced/images/code.gif b/tinyMCE/themes/advanced/images/code.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c5d5a67275c504e85e93da488aca85f4b2aa240d
Binary files /dev/null and b/tinyMCE/themes/advanced/images/code.gif differ
diff --git a/tinyMCE/themes/advanced/images/color.gif b/tinyMCE/themes/advanced/images/color.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1ecd5743b64464068d80fe0c306375bc0f36a3f9
Binary files /dev/null and b/tinyMCE/themes/advanced/images/color.gif differ
diff --git a/tinyMCE/themes/advanced/images/colors.jpg b/tinyMCE/themes/advanced/images/colors.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b4c542d107b25f68a9d4f9d7a109d0565d1f1437
Binary files /dev/null and b/tinyMCE/themes/advanced/images/colors.jpg differ
diff --git a/tinyMCE/themes/advanced/images/copy.gif b/tinyMCE/themes/advanced/images/copy.gif
new file mode 100644
index 0000000000000000000000000000000000000000..dc146865c5952aa48b82fc54677db621322465b9
Binary files /dev/null and b/tinyMCE/themes/advanced/images/copy.gif differ
diff --git a/tinyMCE/themes/advanced/images/custom_1.gif b/tinyMCE/themes/advanced/images/custom_1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4cbccdadf60dfccaf532fd56a567c47b131f80a8
Binary files /dev/null and b/tinyMCE/themes/advanced/images/custom_1.gif differ
diff --git a/tinyMCE/themes/advanced/images/cut.gif b/tinyMCE/themes/advanced/images/cut.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4e9a70b6e297cfa0744d581c42868b35b0a7a204
Binary files /dev/null and b/tinyMCE/themes/advanced/images/cut.gif differ
diff --git a/tinyMCE/themes/advanced/images/forecolor.gif b/tinyMCE/themes/advanced/images/forecolor.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8b703616081fa7e20cb176d77a750ef15006d390
Binary files /dev/null and b/tinyMCE/themes/advanced/images/forecolor.gif differ
diff --git a/tinyMCE/themes/advanced/images/help.gif b/tinyMCE/themes/advanced/images/help.gif
new file mode 100644
index 0000000000000000000000000000000000000000..51a1ee42073402ce787b60d151219ef7ce367615
Binary files /dev/null and b/tinyMCE/themes/advanced/images/help.gif differ
diff --git a/tinyMCE/themes/advanced/images/hr.gif b/tinyMCE/themes/advanced/images/hr.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1a1ba2a015d87362d3cebddf002a788def9d558d
Binary files /dev/null and b/tinyMCE/themes/advanced/images/hr.gif differ
diff --git a/tinyMCE/themes/advanced/images/image.gif b/tinyMCE/themes/advanced/images/image.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4b88eddc267f45eca57071559776cb1215249057
Binary files /dev/null and b/tinyMCE/themes/advanced/images/image.gif differ
diff --git a/tinyMCE/themes/advanced/images/indent.gif b/tinyMCE/themes/advanced/images/indent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..acd315bb16c47c2f1679bdf440b511497f9d633b
Binary files /dev/null and b/tinyMCE/themes/advanced/images/indent.gif differ
diff --git a/tinyMCE/themes/advanced/images/insert_button_bg.gif b/tinyMCE/themes/advanced/images/insert_button_bg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..69c131ce2992df593b0f4299bca3b823819bfafa
Binary files /dev/null and b/tinyMCE/themes/advanced/images/insert_button_bg.gif differ
diff --git a/tinyMCE/themes/advanced/images/italic.gif b/tinyMCE/themes/advanced/images/italic.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8bb330bd0bbf61fdb5ce86388ecbeae16465bc17
Binary files /dev/null and b/tinyMCE/themes/advanced/images/italic.gif differ
diff --git a/tinyMCE/themes/advanced/images/italic_de_se.gif b/tinyMCE/themes/advanced/images/italic_de_se.gif
new file mode 100644
index 0000000000000000000000000000000000000000..feb0309e741f4ba23356150c7838096e4420ce4d
Binary files /dev/null and b/tinyMCE/themes/advanced/images/italic_de_se.gif differ
diff --git a/tinyMCE/themes/advanced/images/italic_es.gif b/tinyMCE/themes/advanced/images/italic_es.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4572cdb1d0a3a68c4aa07f86ed8696fe55c8ebf9
Binary files /dev/null and b/tinyMCE/themes/advanced/images/italic_es.gif differ
diff --git a/tinyMCE/themes/advanced/images/italic_ru.gif b/tinyMCE/themes/advanced/images/italic_ru.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a2bb69a725e823b8e671f0640098c4fa80939b2f
Binary files /dev/null and b/tinyMCE/themes/advanced/images/italic_ru.gif differ
diff --git a/tinyMCE/themes/advanced/images/italic_tw.gif b/tinyMCE/themes/advanced/images/italic_tw.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4f6eeaa2b2111e9995584a66644dacd01ebf33e4
Binary files /dev/null and b/tinyMCE/themes/advanced/images/italic_tw.gif differ
diff --git a/tinyMCE/themes/advanced/images/justifycenter.gif b/tinyMCE/themes/advanced/images/justifycenter.gif
new file mode 100644
index 0000000000000000000000000000000000000000..42d609a991f51b029ef83a1d4a5a978b0cbb4ec8
Binary files /dev/null and b/tinyMCE/themes/advanced/images/justifycenter.gif differ
diff --git a/tinyMCE/themes/advanced/images/justifyfull.gif b/tinyMCE/themes/advanced/images/justifyfull.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c8504f626fec70376fc768c92f04f666cea5993c
Binary files /dev/null and b/tinyMCE/themes/advanced/images/justifyfull.gif differ
diff --git a/tinyMCE/themes/advanced/images/justifyleft.gif b/tinyMCE/themes/advanced/images/justifyleft.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e8f7e42769cbfd7a7416aac8faf77f5d8daed320
Binary files /dev/null and b/tinyMCE/themes/advanced/images/justifyleft.gif differ
diff --git a/tinyMCE/themes/advanced/images/justifyright.gif b/tinyMCE/themes/advanced/images/justifyright.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e4cea971489cf2526bd45b5044e6d3435741f830
Binary files /dev/null and b/tinyMCE/themes/advanced/images/justifyright.gif differ
diff --git a/tinyMCE/themes/advanced/images/link.gif b/tinyMCE/themes/advanced/images/link.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1accf426260eabe2f3113bab599ee26991407576
Binary files /dev/null and b/tinyMCE/themes/advanced/images/link.gif differ
diff --git a/tinyMCE/themes/advanced/images/menu_check.gif b/tinyMCE/themes/advanced/images/menu_check.gif
new file mode 100644
index 0000000000000000000000000000000000000000..50d6afd50536aa9b942ae24012a4073c250753b4
Binary files /dev/null and b/tinyMCE/themes/advanced/images/menu_check.gif differ
diff --git a/tinyMCE/themes/advanced/images/newdocument.gif b/tinyMCE/themes/advanced/images/newdocument.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a9d293842354bade04fc9607e55763fd0ea9efec
Binary files /dev/null and b/tinyMCE/themes/advanced/images/newdocument.gif differ
diff --git a/tinyMCE/themes/advanced/images/numlist.gif b/tinyMCE/themes/advanced/images/numlist.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a2683522f4fbca7c59cdce63c7ac20211e006f49
Binary files /dev/null and b/tinyMCE/themes/advanced/images/numlist.gif differ
diff --git a/tinyMCE/themes/advanced/images/opacity.png b/tinyMCE/themes/advanced/images/opacity.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4217cb212926ce7abfde5e045380e3f6a5d54b7
Binary files /dev/null and b/tinyMCE/themes/advanced/images/opacity.png differ
diff --git a/tinyMCE/themes/advanced/images/outdent.gif b/tinyMCE/themes/advanced/images/outdent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..23f6aa40864cf2f1bfb53ed7df2e0727106a2ef4
Binary files /dev/null and b/tinyMCE/themes/advanced/images/outdent.gif differ
diff --git a/tinyMCE/themes/advanced/images/paste.gif b/tinyMCE/themes/advanced/images/paste.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1b45000a0140b8f9e04c933154c915f4322d7533
Binary files /dev/null and b/tinyMCE/themes/advanced/images/paste.gif differ
diff --git a/tinyMCE/themes/advanced/images/redo.gif b/tinyMCE/themes/advanced/images/redo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3af90697f0b74d0b6b07b585614a6dc67ff87f1d
Binary files /dev/null and b/tinyMCE/themes/advanced/images/redo.gif differ
diff --git a/tinyMCE/themes/advanced/images/removeformat.gif b/tinyMCE/themes/advanced/images/removeformat.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0fa3cb79734b6ddadaded7a30dbbab4cdf7ee11a
Binary files /dev/null and b/tinyMCE/themes/advanced/images/removeformat.gif differ
diff --git a/tinyMCE/themes/advanced/images/separator.gif b/tinyMCE/themes/advanced/images/separator.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4f39b809e98103422a7a8815d9e0ff23123034b5
Binary files /dev/null and b/tinyMCE/themes/advanced/images/separator.gif differ
diff --git a/tinyMCE/themes/advanced/images/spacer.gif b/tinyMCE/themes/advanced/images/spacer.gif
new file mode 100644
index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a
Binary files /dev/null and b/tinyMCE/themes/advanced/images/spacer.gif differ
diff --git a/tinyMCE/themes/advanced/images/statusbar_resize.gif b/tinyMCE/themes/advanced/images/statusbar_resize.gif
new file mode 100644
index 0000000000000000000000000000000000000000..af89d803f8f0eeb965d9443473d5be009641cacf
Binary files /dev/null and b/tinyMCE/themes/advanced/images/statusbar_resize.gif differ
diff --git a/tinyMCE/themes/advanced/images/strikethrough.gif b/tinyMCE/themes/advanced/images/strikethrough.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3264635918e2237257811a745f3a7e31b4369432
Binary files /dev/null and b/tinyMCE/themes/advanced/images/strikethrough.gif differ
diff --git a/tinyMCE/themes/advanced/images/sub.gif b/tinyMCE/themes/advanced/images/sub.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4d7ce30ff9147412d24dafd5ebeef67479edfa58
Binary files /dev/null and b/tinyMCE/themes/advanced/images/sub.gif differ
diff --git a/tinyMCE/themes/advanced/images/sup.gif b/tinyMCE/themes/advanced/images/sup.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a7145e019a92a53ba6831d7da62c67419bb3ae03
Binary files /dev/null and b/tinyMCE/themes/advanced/images/sup.gif differ
diff --git a/tinyMCE/themes/advanced/images/underline.gif b/tinyMCE/themes/advanced/images/underline.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1dfeb5f6d06e21a25615a9eb0cbd2a74ab0efa42
Binary files /dev/null and b/tinyMCE/themes/advanced/images/underline.gif differ
diff --git a/tinyMCE/themes/advanced/images/underline_es.gif b/tinyMCE/themes/advanced/images/underline_es.gif
new file mode 100644
index 0000000000000000000000000000000000000000..551d9148d302c5f58b3b20d2c6a642450889a7ef
Binary files /dev/null and b/tinyMCE/themes/advanced/images/underline_es.gif differ
diff --git a/tinyMCE/themes/advanced/images/underline_fr.gif b/tinyMCE/themes/advanced/images/underline_fr.gif
new file mode 100644
index 0000000000000000000000000000000000000000..551d9148d302c5f58b3b20d2c6a642450889a7ef
Binary files /dev/null and b/tinyMCE/themes/advanced/images/underline_fr.gif differ
diff --git a/tinyMCE/themes/advanced/images/underline_ru.gif b/tinyMCE/themes/advanced/images/underline_ru.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b78e2a498fb9406ef378d7c543756db552d87cba
Binary files /dev/null and b/tinyMCE/themes/advanced/images/underline_ru.gif differ
diff --git a/tinyMCE/themes/advanced/images/underline_tw.gif b/tinyMCE/themes/advanced/images/underline_tw.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b715390484c95c3d3311012dd541e2b46a2f4a78
Binary files /dev/null and b/tinyMCE/themes/advanced/images/underline_tw.gif differ
diff --git a/tinyMCE/themes/advanced/images/undo.gif b/tinyMCE/themes/advanced/images/undo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..520796d69defa118055d191eec33cc67f7551710
Binary files /dev/null and b/tinyMCE/themes/advanced/images/undo.gif differ
diff --git a/tinyMCE/themes/advanced/images/unlink.gif b/tinyMCE/themes/advanced/images/unlink.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5c8a33db8d4ce4dceff85711cdd43ea3f6cfb6d7
Binary files /dev/null and b/tinyMCE/themes/advanced/images/unlink.gif differ
diff --git a/tinyMCE/themes/advanced/images/visualaid.gif b/tinyMCE/themes/advanced/images/visualaid.gif
new file mode 100644
index 0000000000000000000000000000000000000000..63caf180718dea12173112463bf5954725b0f4b0
Binary files /dev/null and b/tinyMCE/themes/advanced/images/visualaid.gif differ
diff --git a/tinyMCE/themes/advanced/images/xp/tab_bg.gif b/tinyMCE/themes/advanced/images/xp/tab_bg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..897a01f2baea1ae5f61f642f508c27f356b35260
Binary files /dev/null and b/tinyMCE/themes/advanced/images/xp/tab_bg.gif differ
diff --git a/tinyMCE/themes/advanced/images/xp/tab_end.gif b/tinyMCE/themes/advanced/images/xp/tab_end.gif
new file mode 100644
index 0000000000000000000000000000000000000000..aee442bebaeb1da753f5486b66f8b009cef589d4
Binary files /dev/null and b/tinyMCE/themes/advanced/images/xp/tab_end.gif differ
diff --git a/tinyMCE/themes/advanced/images/xp/tab_sel_bg.gif b/tinyMCE/themes/advanced/images/xp/tab_sel_bg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9dc8abe1a4f20643367ea9548fa2d93be7f0fb0b
Binary files /dev/null and b/tinyMCE/themes/advanced/images/xp/tab_sel_bg.gif differ
diff --git a/tinyMCE/themes/advanced/images/xp/tab_sel_end.gif b/tinyMCE/themes/advanced/images/xp/tab_sel_end.gif
new file mode 100644
index 0000000000000000000000000000000000000000..616a889d17dfe11f391f8c59a05aead5a85a54ee
Binary files /dev/null and b/tinyMCE/themes/advanced/images/xp/tab_sel_end.gif differ
diff --git a/tinyMCE/themes/advanced/images/xp/tabs_bg.gif b/tinyMCE/themes/advanced/images/xp/tabs_bg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c303f66dd427e9aa69432b10ecfb9d8311e20c7f
Binary files /dev/null and b/tinyMCE/themes/advanced/images/xp/tabs_bg.gif differ
diff --git a/tinyMCE/themes/advanced/jscripts/about.js b/tinyMCE/themes/advanced/jscripts/about.js
new file mode 100644
index 0000000000000000000000000000000000000000..4e53c285b331693b8e4e4f5d120cc1e3c79999c7
--- /dev/null
+++ b/tinyMCE/themes/advanced/jscripts/about.js
@@ -0,0 +1,75 @@
+function init() {
+	var inst;
+
+	tinyMCEPopup.resizeToInnerSize();
+	inst = tinyMCE.selectedInstance;
+
+	// Give FF some time
+	window.setTimeout('insertHelpIFrame();', 10);
+
+	var tcont = document.getElementById('plugintablecontainer');
+	var plugins = tinyMCE.getParam('plugins', '', true, ',');
+	if (plugins.length == 0)
+		document.getElementById('plugins_tab').style.display = 'none';
+
+	var html = "";
+	html += '<table id="plugintable">';
+	html += '<thead>';
+	html += '<tr>';
+	html += '<td>' + tinyMCE.getLang('lang_plugin') + '</td>';
+	html += '<td>' + tinyMCE.getLang('lang_author') + '</td>';
+	html += '<td>' + tinyMCE.getLang('lang_version') + '</td>';
+	html += '</tr>';
+	html += '</thead>';
+	html += '<tbody>';
+
+	for (var i=0; i<inst.plugins.length; i++) {
+		var info = getPluginInfo(inst.plugins[i]);
+
+		html += '<tr>';
+
+		if (info.infourl != null && info.infourl != '')
+			html += '<td width="50%" title="' + plugins[i] + '"><a href="' + info.infourl + '" target="mceplugin">' + info.longname + '</a></td>';
+		else
+			html += '<td width="50%" title="' + plugins[i] + '">' + info.longname + '</td>';
+
+		if (info.authorurl != null && info.authorurl != '')
+			html += '<td width="35%"><a href="' + info.authorurl + '" target="mceplugin">' + info.author + '</a></td>';
+		else
+			html += '<td width="35%">' + info.author + '</td>';
+
+		html += '<td width="15%">' + info.version + '</td>';
+		html += '</tr>';
+	}
+
+	html += '</tbody>';
+	html += '</table>';
+
+	tcont.innerHTML = html;
+}
+
+function getPluginInfo(name) {
+	if (tinyMCE.plugins[name].getInfo)
+		return tinyMCE.plugins[name].getInfo();
+
+	return {
+		longname : name,
+		authorurl : '',
+		infourl : '',
+		author : '--',
+		version : '--'
+	};
+}
+
+function insertHelpIFrame() {
+	var html = '<iframe width="100%" height="300" src="' + tinyMCE.themeURL + "/docs/" + tinyMCE.settings['docs_language'] + "/index.htm" + '"></iframe>';
+
+	document.getElementById('iframecontainer').innerHTML = html;
+
+	html = '';
+	html += '<a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a> ';
+	html += '<a href="http://sourceforge.net/projects/tinymce/" target="_blank"><img src="http://sourceforge.net/sflogo.php?group_id=103281" alt="Hosted By Sourceforge" border="0" /></a> ';
+	html += '<a href="http://www.freshmeat.net/projects/tinymce" target="_blank"><img src="http://tinymce.moxiecode.com/images/fm.gif" alt="Also on freshmeat" border="0" /></a> ';
+
+	document.getElementById('buttoncontainer').innerHTML = html;
+}
diff --git a/tinyMCE/themes/advanced/jscripts/anchor.js b/tinyMCE/themes/advanced/jscripts/anchor.js
new file mode 100644
index 0000000000000000000000000000000000000000..e7c1c62c56da0901e6203bd98e740c9b11e9b0e8
--- /dev/null
+++ b/tinyMCE/themes/advanced/jscripts/anchor.js
@@ -0,0 +1,74 @@
+var action, element;
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var anchor = tinyMCE.getParentElement(inst.getFocusElement(), "a", "name");
+	var img = inst.getFocusElement();
+	action = 'insert';
+
+	if (anchor != null) {
+		element = anchor;
+		action = "update";
+	}
+
+	if (tinyMCE.getAttrib(img, "class") == "mceItemAnchor") {
+		element = img;
+		action = "update";
+	}
+
+	if (action == "update")
+		document.forms[0].anchorName.value = element.nodeName == "IMG" ? element.getAttribute("title") : element.getAttribute("name");
+
+	document.forms[0].insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);
+}
+
+function insertAnchor() {
+	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+	var name = document.forms[0].anchorName.value, e;
+
+	tinyMCEPopup.execCommand("mceBeginUndoLevel");
+
+	if (action == "update") {
+		if (element.nodeName == "IMG")
+			element.setAttribute("title", name);
+		else
+			element.setAttribute("name", name);
+	} else {
+		var rng = inst.getRng();
+
+		if (rng.collapse)
+			rng.collapse(false);
+
+		name = name.replace(/&/g, '&amp;');
+		name = name.replace(/\"/g, '&quot;');
+		name = name.replace(/</g, '&lt;');
+		name = name.replace(/>/g, '&gt;');
+
+		// Fix for bug #1447335
+		if (tinyMCE.isGecko)
+			html = '<a id="mceNewAnchor" name="' + name + '"></a>';
+		else
+			html = '<a name="' + name + '"></a>';
+
+		tinyMCEPopup.execCommand("mceInsertContent", false, html);
+
+		// Fix for bug #1447335 force cursor after the anchor element
+		if (tinyMCE.isGecko) {
+			e = inst.getDoc().getElementById('mceNewAnchor');
+
+			if (e) {
+				inst.selection.selectNode(e, true, false, false);
+				e.removeAttribute('id');
+			}
+		}
+
+		tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+	}
+
+	tinyMCEPopup.execCommand("mceEndUndoLevel");
+
+	tinyMCE.triggerNodeChange();
+	tinyMCEPopup.close();
+}
diff --git a/tinyMCE/themes/advanced/jscripts/charmap.js b/tinyMCE/themes/advanced/jscripts/charmap.js
new file mode 100644
index 0000000000000000000000000000000000000000..eaa6a94b65479653ed26e8d9041f926bde0db222
--- /dev/null
+++ b/tinyMCE/themes/advanced/jscripts/charmap.js
@@ -0,0 +1,326 @@
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+}
+
+var charmap = new Array();
+
+// for mor details please see w3c.org
+// now here is the complete list ;)
+
+charmap = [
+	['&nbsp;',    '&#160;',  true, 'no-break space'],
+	['&amp;',     '&#38;',   true, 'ampersand'],
+	['&quot;',    '&#34;',   true, 'quotation mark'],
+// finance
+	['&cent;',    '&#162;',  true, 'cent sign'],
+	['&euro;',    '&#8364;', true, 'euro sign'],
+	['&pound;',   '&#163;',  true, 'pound sign'],
+	['&yen;',     '&#165;',  true, 'yen sign'],
+// signs
+	['&copy;',    '&#169;',  true, 'copyright sign'],
+	['&reg;',     '&#174;',  true, 'registered sign'],
+	['&trade;',   '&#8482;', true, 'trade mark sign'],
+	['&permil;',  '&#8240;', true, 'per mille sign'],
+	['&micro;',   '&#181;',  true, 'micro sign'],
+	['&middot;',  '&#183;',  true, 'middle dot'],
+	['&bull;',    '&#8226;', true, 'bullet'],
+	['&hellip;',  '&#8230;', true, 'three dot leader'],
+	['&prime;',   '&#8242;', true, 'minutes / feet'],
+	['&Prime;',   '&#8243;', true, 'seconds / inches'],
+	['&sect;',    '&#167;',  true, 'section sign'],
+	['&para;',    '&#182;',  true, 'paragraph sign'],
+	['&szlig;',   '&#223;',  true, 'sharp s / ess-zed'],
+// quotations
+	['&lsaquo;',  '&#8249;', true, 'single left-pointing angle quotation mark'],
+	['&rsaquo;',  '&#8250;', true, 'single right-pointing angle quotation mark'],
+	['&laquo;',   '&#171;',  true, 'left pointing guillemet'],
+	['&raquo;',   '&#187;',  true, 'right pointing guillemet'],
+	['&lsquo;',   '&#8216;', true, 'left single quotation mark'],
+	['&rsquo;',   '&#8217;', true, 'right single quotation mark'],
+	['&ldquo;',   '&#8220;', true, 'left double quotation mark'],
+	['&rdquo;',   '&#8221;', true, 'right double quotation mark'],
+	['&sbquo;',   '&#8218;', true, 'single low-9 quotation mark'],
+	['&bdquo;',   '&#8222;', true, 'double low-9 quotation mark'],
+	['&lt;',      '&#60;',   true, 'less-than sign'],
+	['&gt;',      '&#62;',   true, 'greater-than sign'],
+	['&le;',      '&#8804;', true, 'less-than or equal to'],
+	['&ge;',      '&#8805;', true, 'greater-than or equal to'],
+	['&ndash;',   '&#8211;', true, 'en dash'],
+	['&mdash;',   '&#8212;', true, 'em dash'],
+	['&macr;',    '&#175;',  true, 'macron'],
+	['&oline;',   '&#8254;', true, 'overline'],
+	['&curren;',  '&#164;',  true, 'currency sign'],
+	['&brvbar;',  '&#166;',  true, 'broken bar'],
+	['&uml;',     '&#168;',  true, 'diaeresis'],
+	['&iexcl;',   '&#161;',  true, 'inverted exclamation mark'],
+	['&iquest;',  '&#191;',  true, 'turned question mark'],
+	['&circ;',    '&#710;',  true, 'circumflex accent'],
+	['&tilde;',   '&#732;',  true, 'small tilde'],
+	['&deg;',     '&#176;',  true, 'degree sign'],
+	['&minus;',   '&#8722;', true, 'minus sign'],
+	['&plusmn;',  '&#177;',  true, 'plus-minus sign'],
+	['&divide;',  '&#247;',  true, 'division sign'],
+	['&frasl;',   '&#8260;', true, 'fraction slash'],
+	['&times;',   '&#215;',  true, 'multiplication sign'],
+	['&sup1;',    '&#185;',  true, 'superscript one'],
+	['&sup2;',    '&#178;',  true, 'superscript two'],
+	['&sup3;',    '&#179;',  true, 'superscript three'],
+	['&frac14;',  '&#188;',  true, 'fraction one quarter'],
+	['&frac12;',  '&#189;',  true, 'fraction one half'],
+	['&frac34;',  '&#190;',  true, 'fraction three quarters'],
+// math / logical
+	['&fnof;',    '&#402;',  true, 'function / florin'],
+	['&int;',     '&#8747;', true, 'integral'],
+	['&sum;',     '&#8721;', true, 'n-ary sumation'],
+	['&infin;',   '&#8734;', true, 'infinity'],
+	['&radic;',   '&#8730;', true, 'square root'],
+	['&sim;',     '&#8764;', false,'similar to'],
+	['&cong;',    '&#8773;', false,'approximately equal to'],
+	['&asymp;',   '&#8776;', true, 'almost equal to'],
+	['&ne;',      '&#8800;', true, 'not equal to'],
+	['&equiv;',   '&#8801;', true, 'identical to'],
+	['&isin;',    '&#8712;', false,'element of'],
+	['&notin;',   '&#8713;', false,'not an element of'],
+	['&ni;',      '&#8715;', false,'contains as member'],
+	['&prod;',    '&#8719;', true, 'n-ary product'],
+	['&and;',     '&#8743;', false,'logical and'],
+	['&or;',      '&#8744;', false,'logical or'],
+	['&not;',     '&#172;',  true, 'not sign'],
+	['&cap;',     '&#8745;', true, 'intersection'],
+	['&cup;',     '&#8746;', false,'union'],
+	['&part;',    '&#8706;', true, 'partial differential'],
+	['&forall;',  '&#8704;', false,'for all'],
+	['&exist;',   '&#8707;', false,'there exists'],
+	['&empty;',   '&#8709;', false,'diameter'],
+	['&nabla;',   '&#8711;', false,'backward difference'],
+	['&lowast;',  '&#8727;', false,'asterisk operator'],
+	['&prop;',    '&#8733;', false,'proportional to'],
+	['&ang;',     '&#8736;', false,'angle'],
+// undefined
+	['&acute;',   '&#180;',  true, 'acute accent'],
+	['&cedil;',   '&#184;',  true, 'cedilla'],
+	['&ordf;',    '&#170;',  true, 'feminine ordinal indicator'],
+	['&ordm;',    '&#186;',  true, 'masculine ordinal indicator'],
+	['&dagger;',  '&#8224;', true, 'dagger'],
+	['&Dagger;',  '&#8225;', true, 'double dagger'],
+// alphabetical special chars
+	['&Agrave;',  '&#192;',  true, 'A - grave'],
+	['&Aacute;',  '&#193;',  true, 'A - acute'],
+	['&Acirc;',   '&#194;',  true, 'A - circumflex'],
+	['&Atilde;',  '&#195;',  true, 'A - tilde'],
+	['&Auml;',    '&#196;',  true, 'A - diaeresis'],
+	['&Aring;',   '&#197;',  true, 'A - ring above'],
+	['&AElig;',   '&#198;',  true, 'ligature AE'],
+	['&Ccedil;',  '&#199;',  true, 'C - cedilla'],
+	['&Egrave;',  '&#200;',  true, 'E - grave'],
+	['&Eacute;',  '&#201;',  true, 'E - acute'],
+	['&Ecirc;',   '&#202;',  true, 'E - circumflex'],
+	['&Euml;',    '&#203;',  true, 'E - diaeresis'],
+	['&Igrave;',  '&#204;',  true, 'I - grave'],
+	['&Iacute;',  '&#205;',  true, 'I - acute'],
+	['&Icirc;',   '&#206;',  true, 'I - circumflex'],
+	['&Iuml;',    '&#207;',  true, 'I - diaeresis'],
+	['&ETH;',     '&#208;',  true, 'ETH'],
+	['&Ntilde;',  '&#209;',  true, 'N - tilde'],
+	['&Ograve;',  '&#210;',  true, 'O - grave'],
+	['&Oacute;',  '&#211;',  true, 'O - acute'],
+	['&Ocirc;',   '&#212;',  true, 'O - circumflex'],
+	['&Otilde;',  '&#213;',  true, 'O - tilde'],
+	['&Ouml;',    '&#214;',  true, 'O - diaeresis'],
+	['&Oslash;',  '&#216;',  true, 'O - slash'],
+	['&OElig;',   '&#338;',  true, 'ligature OE'],
+	['&Scaron;',  '&#352;',  true, 'S - caron'],
+	['&Ugrave;',  '&#217;',  true, 'U - grave'],
+	['&Uacute;',  '&#218;',  true, 'U - acute'],
+	['&Ucirc;',   '&#219;',  true, 'U - circumflex'],
+	['&Uuml;',    '&#220;',  true, 'U - diaeresis'],
+	['&Yacute;',  '&#221;',  true, 'Y - acute'],
+	['&Yuml;',    '&#376;',  true, 'Y - diaeresis'],
+	['&THORN;',   '&#222;',  true, 'THORN'],
+	['&agrave;',  '&#224;',  true, 'a - grave'],
+	['&aacute;',  '&#225;',  true, 'a - acute'],
+	['&acirc;',   '&#226;',  true, 'a - circumflex'],
+	['&atilde;',  '&#227;',  true, 'a - tilde'],
+	['&auml;',    '&#228;',  true, 'a - diaeresis'],
+	['&aring;',   '&#229;',  true, 'a - ring above'],
+	['&aelig;',   '&#230;',  true, 'ligature ae'],
+	['&ccedil;',  '&#231;',  true, 'c - cedilla'],
+	['&egrave;',  '&#232;',  true, 'e - grave'],
+	['&eacute;',  '&#233;',  true, 'e - acute'],
+	['&ecirc;',   '&#234;',  true, 'e - circumflex'],
+	['&euml;',    '&#235;',  true, 'e - diaeresis'],
+	['&igrave;',  '&#236;',  true, 'i - grave'],
+	['&iacute;',  '&#237;',  true, 'i - acute'],
+	['&icirc;',   '&#238;',  true, 'i - circumflex'],
+	['&iuml;',    '&#239;',  true, 'i - diaeresis'],
+	['&eth;',     '&#240;',  true, 'eth'],
+	['&ntilde;',  '&#241;',  true, 'n - tilde'],
+	['&ograve;',  '&#242;',  true, 'o - grave'],
+	['&oacute;',  '&#243;',  true, 'o - acute'],
+	['&ocirc;',   '&#244;',  true, 'o - circumflex'],
+	['&otilde;',  '&#245;',  true, 'o - tilde'],
+	['&ouml;',    '&#246;',  true, 'o - diaeresis'],
+	['&oslash;',  '&#248;',  true, 'o slash'],
+	['&oelig;',   '&#339;',  true, 'ligature oe'],
+	['&scaron;',  '&#353;',  true, 's - caron'],
+	['&ugrave;',  '&#249;',  true, 'u - grave'],
+	['&uacute;',  '&#250;',  true, 'u - acute'],
+	['&ucirc;',   '&#251;',  true, 'u - circumflex'],
+	['&uuml;',    '&#252;',  true, 'u - diaeresis'],
+	['&yacute;',  '&#253;',  true, 'y - acute'],
+	['&thorn;',   '&#254;',  true, 'thorn'],
+	['&yuml;',    '&#255;',  true, 'y - diaeresis'],
+    ['&Alpha;',   '&#913;',  true, 'Alpha'],
+	['&Beta;',    '&#914;',  true, 'Beta'],
+	['&Gamma;',   '&#915;',  true, 'Gamma'],
+	['&Delta;',   '&#916;',  true, 'Delta'],
+	['&Epsilon;', '&#917;',  true, 'Epsilon'],
+	['&Zeta;',    '&#918;',  true, 'Zeta'],
+	['&Eta;',     '&#919;',  true, 'Eta'],
+	['&Theta;',   '&#920;',  true, 'Theta'],
+	['&Iota;',    '&#921;',  true, 'Iota'],
+	['&Kappa;',   '&#922;',  true, 'Kappa'],
+	['&Lambda;',  '&#923;',  true, 'Lambda'],
+	['&Mu;',      '&#924;',  true, 'Mu'],
+	['&Nu;',      '&#925;',  true, 'Nu'],
+	['&Xi;',      '&#926;',  true, 'Xi'],
+	['&Omicron;', '&#927;',  true, 'Omicron'],
+	['&Pi;',      '&#928;',  true, 'Pi'],
+	['&Rho;',     '&#929;',  true, 'Rho'],
+	['&Sigma;',   '&#931;',  true, 'Sigma'],
+	['&Tau;',     '&#932;',  true, 'Tau'],
+	['&Upsilon;', '&#933;',  true, 'Upsilon'],
+	['&Phi;',     '&#934;',  true, 'Phi'],
+	['&Chi;',     '&#935;',  true, 'Chi'],
+	['&Psi;',     '&#936;',  true, 'Psi'],
+	['&Omega;',   '&#937;',  true, 'Omega'],
+	['&alpha;',   '&#945;',  true, 'alpha'],
+	['&beta;',    '&#946;',  true, 'beta'],
+	['&gamma;',   '&#947;',  true, 'gamma'],
+	['&delta;',   '&#948;',  true, 'delta'],
+	['&epsilon;', '&#949;',  true, 'epsilon'],
+	['&zeta;',    '&#950;',  true, 'zeta'],
+	['&eta;',     '&#951;',  true, 'eta'],
+	['&theta;',   '&#952;',  true, 'theta'],
+	['&iota;',    '&#953;',  true, 'iota'],
+	['&kappa;',   '&#954;',  true, 'kappa'],
+	['&lambda;',  '&#955;',  true, 'lambda'],
+	['&mu;',      '&#956;',  true, 'mu'],
+	['&nu;',      '&#957;',  true, 'nu'],
+	['&xi;',      '&#958;',  true, 'xi'],
+	['&omicron;', '&#959;',  true, 'omicron'],
+	['&pi;',      '&#960;',  true, 'pi'],
+	['&rho;',     '&#961;',  true, 'rho'],
+	['&sigmaf;',  '&#962;',  true, 'final sigma'],
+	['&sigma;',   '&#963;',  true, 'sigma'],
+	['&tau;',     '&#964;',  true, 'tau'],
+	['&upsilon;', '&#965;',  true, 'upsilon'],
+	['&phi;',     '&#966;',  true, 'phi'],
+	['&chi;',     '&#967;',  true, 'chi'],
+	['&psi;',     '&#968;',  true, 'psi'],
+	['&omega;',   '&#969;',  true, 'omega'],
+// symbols
+	['&alefsym;', '&#8501;', false,'alef symbol'],
+	['&piv;',     '&#982;',  false,'pi symbol'],
+	['&real;',    '&#8476;', false,'real part symbol'],
+	['&thetasym;','&#977;',  false,'theta symbol'],
+	['&upsih;',   '&#978;',  false,'upsilon - hook symbol'],
+	['&weierp;',  '&#8472;', false,'Weierstrass p'],
+	['&image;',   '&#8465;', false,'imaginary part'],
+// arrows
+	['&larr;',    '&#8592;', true, 'leftwards arrow'],
+	['&uarr;',    '&#8593;', true, 'upwards arrow'],
+	['&rarr;',    '&#8594;', true, 'rightwards arrow'],
+	['&darr;',    '&#8595;', true, 'downwards arrow'],
+	['&harr;',    '&#8596;', true, 'left right arrow'],
+	['&crarr;',   '&#8629;', false,'carriage return'],
+	['&lArr;',    '&#8656;', false,'leftwards double arrow'],
+	['&uArr;',    '&#8657;', false,'upwards double arrow'],
+	['&rArr;',    '&#8658;', false,'rightwards double arrow'],
+	['&dArr;',    '&#8659;', false,'downwards double arrow'],
+	['&hArr;',    '&#8660;', false,'left right double arrow'],
+	['&there4;',  '&#8756;', false,'therefore'],
+	['&sub;',     '&#8834;', false,'subset of'],
+	['&sup;',     '&#8835;', false,'superset of'],
+	['&nsub;',    '&#8836;', false,'not a subset of'],
+	['&sube;',    '&#8838;', false,'subset of or equal to'],
+	['&supe;',    '&#8839;', false,'superset of or equal to'],
+	['&oplus;',   '&#8853;', false,'circled plus'],
+	['&otimes;',  '&#8855;', false,'circled times'],
+	['&perp;',    '&#8869;', false,'perpendicular'],
+	['&sdot;',    '&#8901;', false,'dot operator'],
+	['&lceil;',   '&#8968;', false,'left ceiling'],
+	['&rceil;',   '&#8969;', false,'right ceiling'],
+	['&lfloor;',  '&#8970;', false,'left floor'],
+	['&rfloor;',  '&#8971;', false,'right floor'],
+	['&lang;',    '&#9001;', false,'left-pointing angle bracket'],
+	['&rang;',    '&#9002;', false,'right-pointing angle bracket'],
+	['&loz;',     '&#9674;', true,'lozenge'],
+	['&spades;',  '&#9824;', false,'black spade suit'],
+	['&clubs;',   '&#9827;', true, 'black club suit'],
+	['&hearts;',  '&#9829;', true, 'black heart suit'],
+	['&diams;',   '&#9830;', true, 'black diamond suit'],
+	['&ensp;',    '&#8194;', false,'en space'],
+	['&emsp;',    '&#8195;', false,'em space'],
+	['&thinsp;',  '&#8201;', false,'thin space'],
+	['&zwnj;',    '&#8204;', false,'zero width non-joiner'],
+	['&zwj;',     '&#8205;', false,'zero width joiner'],
+	['&lrm;',     '&#8206;', false,'left-to-right mark'],
+	['&rlm;',     '&#8207;', false,'right-to-left mark'],
+	['&shy;',     '&#173;',  false,'soft hyphen']
+];
+
+function renderCharMapHTML() {
+	var charsPerRow = 20, tdWidth=20, tdHeight=20;
+	var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">';
+	var cols=-1;
+	for (var i=0; i<charmap.length; i++) {
+		if (charmap[i][2]==true) {
+			cols++;
+			html += ''
+				+ '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"'
+				+ ' onmouseover="this.className=\'charmapOver\';'
+				+ 'previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');"'
+				+ ' onmouseout="this.className=\'charmap\';"'
+				+ ' nowrap="nowrap" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');"><a style="text-decoration: none;" onfocus="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" href="javascript:insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + '">'
+				+ charmap[i][1]
+				+ '</a></td>';
+			if ((cols+1) % charsPerRow == 0)
+				html += '</tr><tr height="' + tdHeight + '">';
+		}
+	 }
+	if (cols % charsPerRow > 0) {
+		var padd = charsPerRow - (cols % charsPerRow);
+		for (var i=0; i<padd-1; i++)
+			html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap">&nbsp;</td>';
+	}
+	html += '</tr></table>';
+	document.write(html);
+}
+
+function insertChar(chr) {
+	tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';');
+
+	// Refocus in window
+	if (tinyMCEPopup.isWindow)
+		window.focus();
+
+	tinyMCEPopup.close();
+}
+
+function previewChar(codeA, codeB, codeN) {
+	var elmA = document.getElementById('codeA');
+	var elmB = document.getElementById('codeB');
+	var elmV = document.getElementById('codeV');
+	var elmN = document.getElementById('codeN');
+
+	if (codeA=='#160;') {
+		elmV.innerHTML = '__';
+	} else {
+		elmV.innerHTML = '&' + codeA;
+	}
+
+	elmB.innerHTML = '&amp;' + codeA;
+	elmA.innerHTML = '&amp;' + codeB;
+	elmN.innerHTML = codeN;
+}
diff --git a/tinyMCE/themes/advanced/jscripts/color_picker.js b/tinyMCE/themes/advanced/jscripts/color_picker.js
new file mode 100644
index 0000000000000000000000000000000000000000..00fc823dee6c3a33a838d6e8df6c7719dc024469
--- /dev/null
+++ b/tinyMCE/themes/advanced/jscripts/color_picker.js
@@ -0,0 +1,240 @@
+var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false;
+
+var colors = new Array(
+	"#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",
+	"#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",
+	"#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",
+	"#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",
+	"#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",
+	"#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",
+	"#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",
+	"#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",
+	"#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",
+	"#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",
+	"#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",
+	"#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",
+	"#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",
+	"#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",
+	"#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",
+	"#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",
+	"#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",
+	"#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",
+	"#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",
+	"#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",
+	"#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",
+	"#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",
+	"#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",
+	"#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",
+	"#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",
+	"#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",
+	"#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"
+);
+
+var named = {
+	'#F0F8FF':'AliceBlue','#FAEBD7':'AntiqueWhite','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige',
+	'#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'BlanchedAlmond','#0000FF':'Blue','#8A2BE2':'BlueViolet','#A52A2A':'Brown',
+	'#DEB887':'BurlyWood','#5F9EA0':'CadetBlue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'CornflowerBlue',
+	'#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'DarkBlue','#008B8B':'DarkCyan','#B8860B':'DarkGoldenRod',
+	'#A9A9A9':'DarkGray','#A9A9A9':'DarkGrey','#006400':'DarkGreen','#BDB76B':'DarkKhaki','#8B008B':'DarkMagenta','#556B2F':'DarkOliveGreen',
+	'#FF8C00':'Darkorange','#9932CC':'DarkOrchid','#8B0000':'DarkRed','#E9967A':'DarkSalmon','#8FBC8F':'DarkSeaGreen','#483D8B':'DarkSlateBlue',
+	'#2F4F4F':'DarkSlateGray','#2F4F4F':'DarkSlateGrey','#00CED1':'DarkTurquoise','#9400D3':'DarkViolet','#FF1493':'DeepPink','#00BFFF':'DeepSkyBlue',
+	'#696969':'DimGray','#696969':'DimGrey','#1E90FF':'DodgerBlue','#B22222':'FireBrick','#FFFAF0':'FloralWhite','#228B22':'ForestGreen',
+	'#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'GhostWhite','#FFD700':'Gold','#DAA520':'GoldenRod','#808080':'Gray','#808080':'Grey',
+	'#008000':'Green','#ADFF2F':'GreenYellow','#F0FFF0':'HoneyDew','#FF69B4':'HotPink','#CD5C5C':'IndianRed','#4B0082':'Indigo','#FFFFF0':'Ivory',
+	'#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'LavenderBlush','#7CFC00':'LawnGreen','#FFFACD':'LemonChiffon','#ADD8E6':'LightBlue',
+	'#F08080':'LightCoral','#E0FFFF':'LightCyan','#FAFAD2':'LightGoldenRodYellow','#D3D3D3':'LightGray','#D3D3D3':'LightGrey','#90EE90':'LightGreen',
+	'#FFB6C1':'LightPink','#FFA07A':'LightSalmon','#20B2AA':'LightSeaGreen','#87CEFA':'LightSkyBlue','#778899':'LightSlateGray','#778899':'LightSlateGrey',
+	'#B0C4DE':'LightSteelBlue','#FFFFE0':'LightYellow','#00FF00':'Lime','#32CD32':'LimeGreen','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon',
+	'#66CDAA':'MediumAquaMarine','#0000CD':'MediumBlue','#BA55D3':'MediumOrchid','#9370D8':'MediumPurple','#3CB371':'MediumSeaGreen','#7B68EE':'MediumSlateBlue',
+	'#00FA9A':'MediumSpringGreen','#48D1CC':'MediumTurquoise','#C71585':'MediumVioletRed','#191970':'MidnightBlue','#F5FFFA':'MintCream','#FFE4E1':'MistyRose','#FFE4B5':'Moccasin',
+	'#FFDEAD':'NavajoWhite','#000080':'Navy','#FDF5E6':'OldLace','#808000':'Olive','#6B8E23':'OliveDrab','#FFA500':'Orange','#FF4500':'OrangeRed','#DA70D6':'Orchid',
+	'#EEE8AA':'PaleGoldenRod','#98FB98':'PaleGreen','#AFEEEE':'PaleTurquoise','#D87093':'PaleVioletRed','#FFEFD5':'PapayaWhip','#FFDAB9':'PeachPuff',
+	'#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'PowderBlue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'RosyBrown','#4169E1':'RoyalBlue',
+	'#8B4513':'SaddleBrown','#FA8072':'Salmon','#F4A460':'SandyBrown','#2E8B57':'SeaGreen','#FFF5EE':'SeaShell','#A0522D':'Sienna','#C0C0C0':'Silver',
+	'#87CEEB':'SkyBlue','#6A5ACD':'SlateBlue','#708090':'SlateGray','#708090':'SlateGrey','#FFFAFA':'Snow','#00FF7F':'SpringGreen',
+	'#4682B4':'SteelBlue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet',
+	'#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'WhiteSmoke','#FFFF00':'Yellow','#9ACD32':'YellowGreen'
+};
+
+function init() {
+	var inputColor = convertRGBToHex(tinyMCE.getWindowArg('input_color'));
+
+	if (tinyMCE.isMSIE)
+		tinyMCEPopup.resizeToInnerSize();
+
+	generatePicker();
+
+	if (inputColor) {
+		changeFinalColor(inputColor);
+
+		col = convertHexToRGB(inputColor);
+
+		if (col)
+			updateLight(col.r, col.g, col.b);
+	}
+}
+
+function insertAction() {
+	var color = document.getElementById("color").value;
+
+	tinyMCEPopup.execCommand(tinyMCE.getWindowArg('command'), false, color);
+	tinyMCEPopup.close();
+}
+
+function showColor(color, name) {
+	if (name)
+		document.getElementById("colorname").innerHTML = name;
+
+	document.getElementById("preview").style.backgroundColor = color;
+	document.getElementById("color").value = color;
+}
+
+function convertRGBToHex(col) {
+	var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
+
+	if (!col)
+		return col;
+
+	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 {r : r, g : g, b : b};
+	}
+
+	return null;
+}
+
+function generatePicker() {
+	var el = document.getElementById('light'), h = '', i;
+
+	for (i = 0; i < detail; i++){
+		h += '<div id="gs'+i+'" style="background-color:#000000; width:15px; height:3px; border-style:none; border-width:0px;"'
+		+ ' onclick="changeFinalColor(this.style.backgroundColor)"'
+		+ ' onmousedown="isMouseDown = true; return false;"'
+		+ ' onmouseup="isMouseDown = false;"'
+		+ ' onmousemove="if (isMouseDown && isMouseOver) changeFinalColor(this.style.backgroundColor); return false;"'
+		+ ' onmouseover="isMouseOver = true;"'
+		+ ' onmouseout="isMouseOver = false;"'
+		+ '></div>';
+	}
+
+	el.innerHTML = h;
+}
+
+function generateWebColors() {
+	var el = document.getElementById('webcolors'), h = '', i;
+
+	if (el.className == 'generated')
+		return;
+
+	h += '<table border="0" cellspacing="1" cellpadding="0">'
+		+ '<tr>';
+
+	for (i=0; i<colors.length; i++) {
+		h += '<td bgcolor="' + colors[i] + '">'
+			+ '<a href="javascript:insertAction();" onfocus="showColor(\'' + colors[i] +  '\');" onmouseover="showColor(\'' + colors[i] +  '\');">'
+			+ '<img border="0" src="images/spacer.gif" width="10" height="10" title="' + colors[i] +  '" alt="' + colors[i] +  '" /></a></td>';
+		if ((i+1) % 18 == 0)
+			h += '</tr><tr>';
+	}
+
+	h += '</table>';
+
+	el.innerHTML = h;
+	el.className = 'generated';
+}
+
+function generateNamedColors() {
+	var el = document.getElementById('namedcolors'), h = '', n, v, i = 0;
+
+	if (el.className == 'generated')
+		return;
+
+	for (n in named) {
+		v = named[n];
+		h += '<a href="javascript:insertAction();" onmouseover="showColor(\'' + n +  '\',\'' + v + '\');" style="background-color: ' + n + '"><!-- IE --></a>'
+	}
+
+	el.innerHTML = h;
+	el.className = 'generated';
+}
+
+function dechex(n) {
+	return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16);
+}
+
+function computeColor(e) {
+	var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB;
+
+	x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0);
+	y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0);
+
+	partWidth = document.getElementById('colorpicker').width / 6;
+	partDetail = detail / 2;
+	imHeight = document.getElementById('colorpicker').height;
+
+	r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255;
+	g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255	+ (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth);
+	b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth);
+
+	coef = (imHeight - y) / imHeight;
+	r = 128 + (r - 128) * coef;
+	g = 128 + (g - 128) * coef;
+	b = 128 + (b - 128) * coef;
+
+	changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b));
+	updateLight(r, g, b);
+}
+
+function updateLight(r, g, b) {
+	var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color;
+
+	for (i=0; i<detail; i++) {
+		if ((i>=0) && (i<partDetail)) {
+			finalCoef = i / partDetail;
+			finalR = dechex(255 - (255 - r) * finalCoef);
+			finalG = dechex(255 - (255 - g) * finalCoef);
+			finalB = dechex(255 - (255 - b) * finalCoef);
+		} else {
+			finalCoef = 2 - i / partDetail;
+			finalR = dechex(r * finalCoef);
+			finalG = dechex(g * finalCoef);
+			finalB = dechex(b * finalCoef);
+		}
+
+		color = finalR + finalG + finalB;
+
+		document.getElementById('gs' + i).style.backgroundColor = '#'+color;
+	}
+}
+
+function changeFinalColor(color) {
+	if (color.indexOf('#') == -1)
+		color = convertRGBToHex(color);
+
+	document.getElementById('preview').style.backgroundColor = color;
+	document.getElementById('color').value = color;
+}
+
+window.focus();
\ No newline at end of file
diff --git a/tinyMCE/themes/advanced/jscripts/image.js b/tinyMCE/themes/advanced/jscripts/image.js
new file mode 100644
index 0000000000000000000000000000000000000000..a52bfad6ae1a72de71dfa669eecb92474cd38c18
--- /dev/null
+++ b/tinyMCE/themes/advanced/jscripts/image.js
@@ -0,0 +1,81 @@
+var url = tinyMCE.getParam("external_image_list_url");
+if (url != null) {
+	// Fix relative
+	if (url.charAt(0) != '/' && url.indexOf('://') == -1)
+		url = tinyMCE.documentBasePath + "/" + url;
+
+	document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+function insertImage() {
+	var src = document.forms[0].src.value;
+	var alt = document.forms[0].alt.value;
+	var border = document.forms[0].border.value;
+	var vspace = document.forms[0].vspace.value;
+	var hspace = document.forms[0].hspace.value;
+	var width = document.forms[0].width.value;
+	var height = document.forms[0].height.value;
+	var align = document.forms[0].align.options[document.forms[0].align.selectedIndex].value;
+
+	tinyMCEPopup.restoreSelection();
+	tinyMCE.themes['advanced']._insertImage(src, alt, border, hspace, vspace, width, height, align);
+	tinyMCEPopup.close();
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');
+
+	var formObj = document.forms[0];
+
+	for (var i=0; i<document.forms[0].align.options.length; i++) {
+		if (document.forms[0].align.options[i].value == tinyMCE.getWindowArg('align'))
+			document.forms[0].align.options.selectedIndex = i;
+	}
+
+	formObj.src.value = tinyMCE.getWindowArg('src');
+	formObj.alt.value = tinyMCE.getWindowArg('alt');
+	formObj.border.value = tinyMCE.getWindowArg('border');
+	formObj.vspace.value = tinyMCE.getWindowArg('vspace');
+	formObj.hspace.value = tinyMCE.getWindowArg('hspace');
+	formObj.width.value = tinyMCE.getWindowArg('width');
+	formObj.height.value = tinyMCE.getWindowArg('height');
+	formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true); 
+
+	// Handle file browser
+	if (isVisible('srcbrowser'))
+		document.getElementById('src').style.width = '180px';
+
+	// Auto select image in list
+	if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
+		for (var i=0; i<formObj.image_list.length; i++) {
+			if (formObj.image_list.options[i].value == tinyMCE.getWindowArg('src'))
+				formObj.image_list.options[i].selected = true;
+		}
+	}
+}
+
+var preloadImg = new Image();
+
+function resetImageData() {
+	var formObj = document.forms[0];
+	formObj.width.value = formObj.height.value = "";	
+}
+
+function updateImageData() {
+	var formObj = document.forms[0];
+
+	if (formObj.width.value == "")
+		formObj.width.value = preloadImg.width;
+
+	if (formObj.height.value == "")
+		formObj.height.value = preloadImg.height;
+}
+
+function getImageData() {
+	preloadImg = new Image();
+	tinyMCE.addEvent(preloadImg, "load", updateImageData);
+	tinyMCE.addEvent(preloadImg, "error", function () {var formObj = document.forms[0];formObj.width.value = formObj.height.value = "";});
+	preloadImg.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], document.forms[0].src.value);
+}
diff --git a/tinyMCE/themes/advanced/jscripts/link.js b/tinyMCE/themes/advanced/jscripts/link.js
new file mode 100644
index 0000000000000000000000000000000000000000..e195497e1c6d31ca8c60b7ec19aadcb8ae263cf0
--- /dev/null
+++ b/tinyMCE/themes/advanced/jscripts/link.js
@@ -0,0 +1,74 @@
+var url = tinyMCE.getParam("external_link_list_url");
+if (url != null) {
+	// Fix relative
+	if (url.charAt(0) != '/' && url.indexOf('://') == -1)
+		url = tinyMCE.documentBasePath + "/" + url;
+
+	document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','theme_advanced_link');
+
+	// Handle file browser
+	if (isVisible('hrefbrowser'))
+		document.getElementById('href').style.width = '180px';
+
+	var formObj = document.forms[0];
+
+	for (var i=0; i<document.forms[0].target.options.length; i++) {
+		var option = document.forms[0].target.options[i];
+
+		if (option.value == tinyMCE.getWindowArg('target'))
+			option.selected = true;
+	}
+
+	document.forms[0].href.value = tinyMCE.getWindowArg('href');
+	document.forms[0].linktitle.value = tinyMCE.getWindowArg('title');
+	document.forms[0].insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true); 
+
+	addClassesToList('styleSelect', 'theme_advanced_link_styles');
+	selectByValue(formObj, 'styleSelect', tinyMCE.getWindowArg('className'), true);
+
+	// Hide css select row if no CSS classes
+	if (formObj.styleSelect && formObj.styleSelect.options.length <= 1) {
+		var sr = document.getElementById('styleSelectRow');
+		sr.style.display = 'none';
+		sr.parentNode.removeChild(sr);
+	}
+
+	// Auto select link in list
+	if (typeof(tinyMCELinkList) != "undefined" && tinyMCELinkList.length > 0) {
+		var formObj = document.forms[0];
+
+		for (var i=0; i<formObj.link_list.length; i++) {
+			if (formObj.link_list.options[i].value == tinyMCE.getWindowArg('href'))
+				formObj.link_list.options[i].selected = true;
+		}
+	}
+}
+
+function checkPrefix(n) {
+	if (Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCE.getLang('lang_is_email')))
+		n.value = 'mailto:' + n.value;
+
+	if (/^\s*www./i.test(n.value) && confirm(tinyMCE.getLang('lang_is_external')))
+		n.value = 'http://' + n.value;
+}
+
+function insertLink() {
+	var href = document.forms[0].href.value;
+	var target = document.forms[0].target.options[document.forms[0].target.selectedIndex].value;
+	var title = document.forms[0].linktitle.value;
+	var style_class = document.forms[0].styleSelect ? document.forms[0].styleSelect.value : "";
+	var dummy;
+
+	if (target == '_self')
+		target = '';
+
+	tinyMCEPopup.restoreSelection();
+	tinyMCE.themes['advanced']._insertLink(href, target, title, dummy, style_class);
+	tinyMCEPopup.close();
+}
diff --git a/tinyMCE/themes/advanced/jscripts/source_editor.js b/tinyMCE/themes/advanced/jscripts/source_editor.js
new file mode 100644
index 0000000000000000000000000000000000000000..d0d517d454b4fdd05d00e48bb60535f77c7703c6
--- /dev/null
+++ b/tinyMCE/themes/advanced/jscripts/source_editor.js
@@ -0,0 +1,59 @@
+function saveContent() {
+	tinyMCE.setContent(document.getElementById('htmlSource').value);
+	tinyMCE.closeWindow(window);
+}
+
+function onLoadInit() {
+	tinyMCEPopup.resizeToInnerSize();
+
+	// Remove Gecko spellchecking
+	if (tinyMCE.isGecko)
+		document.body.spellcheck = tinyMCE.getParam("gecko_spellcheck");
+
+	document.getElementById('htmlSource').value = tinyMCE.getContent(tinyMCE.getWindowArg('editor_id'));
+
+	resizeInputs();
+
+	if (tinyMCE.getParam("theme_advanced_source_editor_wrap", true)) {
+		setWrap('soft');
+		document.getElementById('wraped').checked = true;
+	}
+}
+
+function setWrap(val) {
+	var s = document.getElementById('htmlSource');
+
+	s.wrap = val;
+
+	if (tinyMCE.isGecko || tinyMCE.isOpera) {
+		var v = s.value;
+		var n = s.cloneNode(false);
+		n.setAttribute("wrap", val);
+		s.parentNode.replaceChild(n, s);
+		n.value = v;
+	}
+}
+
+function toggleWordWrap(elm) {
+	if (elm.checked)
+		setWrap('soft');
+	else
+		setWrap('off');
+}
+
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+
+function resizeInputs() {
+	var el = document.getElementById('htmlSource');
+
+	if (!tinyMCE.isMSIE) {
+		 wHeight = self.innerHeight - 60;
+		 wWidth = self.innerWidth - 16;
+	} else {
+		 wHeight = document.body.clientHeight - 60;
+		 wWidth = document.body.clientWidth - 16;
+	}
+
+	el.style.height = Math.abs(wHeight) + 'px';
+	el.style.width  = Math.abs(wWidth) + 'px';
+}
diff --git a/tinyMCE/themes/advanced/langs/ca.js b/tinyMCE/themes/advanced/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..baea8f498f3b3597b2ee22bdadba76d20f241092
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ca.js
@@ -0,0 +1,76 @@
+// CA lang variables by Marc Bria and Marc Folch
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Estils',
+theme_code_desc : 'Edita codi HTML',
+theme_code_title : 'Editor de codi HTML',
+theme_code_wordwrap : 'Ajusta el salt de l&iacute;nea',
+theme_sub_desc : 'Sub&iacute;ndex',
+theme_sup_desc : 'Super&iacute;ndex',
+theme_hr_desc : 'Insereix un separador horitzontal',
+theme_removeformat_desc : 'Elimina format',
+theme_custom1_desc : 'La teva descripci&oacute;',
+insert_image_border : 'Marc',
+insert_image_dimensions : 'Dimensions',
+insert_image_vspace : 'Espai vertical',
+insert_image_hspace : 'Espai horizontal',
+insert_image_align : 'Alineament',
+insert_image_align_default : 'Per defecte',
+insert_image_align_baseline : 'L&iacute;nia base',
+insert_image_align_top : 'Superior',
+insert_image_align_middle : 'Centre',
+insert_image_align_bottom : 'Inferior',
+insert_image_align_texttop : 'Alinea text amunt',
+insert_image_align_absmiddle : 'Centrat horitzontal',
+insert_image_align_absbottom : 'Centrat a baix',
+insert_image_align_left : 'Esquerra',
+insert_image_align_right : 'Dreta',
+theme_font_size : '-- Mida lletra --',
+theme_fontdefault : '-- Tipus lletra --',
+theme_block : '-- Format text --',
+theme_paragraph : 'Par&agrave;graf',
+theme_div : 'Div',
+theme_address : 'Adre&ccedil;a',
+theme_pre : 'Pre-format',
+theme_h1 : 'Encap&ccedil;alament 1',
+theme_h2 : 'Encap&ccedil;alament 2',
+theme_h3 : 'Encap&ccedil;alament 3',
+theme_h4 : 'Encap&ccedil;alament 4',
+theme_h5 : 'Encap&ccedil;alament 5',
+theme_h6 : 'Encap&ccedil;alament 6',
+theme_colorpicker_title : 'Selecciona el color',
+theme_colorpicker_apply : 'Aplica',
+theme_forecolor_desc : 'Color de la lletra',
+theme_backcolor_desc : 'Color de fons',
+theme_charmap_title : 'Selecciona un car&agravecter especial',
+theme_charmap_desc : 'Insereix un car&agrave;cter especial',
+theme_visualaid_desc : 'Alterna l&iacute;nies guia/elements invisibles',
+insert_anchor_title : 'Insereix/edita &agrave;ncora',
+insert_anchor_name : 'Nom de l&#39;&agrave;ncora',
+theme_anchor_desc : 'Insereix/edita &agrave;ncora',
+theme_insert_link_titlefield : 'T&iacute;tol',
+theme_clipboard_msg : 'Copiar, retallar i enganxar no &eacute;s possible amb Mozilla i Firefox.\nVols m&eacute;s informaci&oacute; sobre aquesta q&euml;esti&oacute;?',
+theme_path : 'Cam&iacute;',
+cut_desc : 'Retalla',
+copy_desc : 'Copia',
+paste_desc : 'Enganxa',
+link_list : 'Llistat d&#39;enllaços',
+image_list : 'Llistat d&#39;imatges',
+browse : 'Explora',
+image_props_desc : 'Propietats de la imatge',
+newdocument_desc : 'Nou document',
+class_name : 'Classe',
+newdocument : 'Esteu segurs que voleu netejar tot el contingut?',
+about_title : 'Quant a TinyMCE',
+about : 'Quant a',
+license : 'Llic&egrave;ncia',
+plugins : 'Plugins',
+plugin : 'Plugin',
+author : 'Autor',
+version : 'Versi&oacute;',
+loaded_plugins : 'Plugins carregats',
+help : 'Ajuda',
+not_set : '-- No ajustat --',
+close : 'Tanca',
+toolbar_focus : 'Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/cs.js b/tinyMCE/themes/advanced/langs/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..2419967d8de771f462c517ff0ff42d2524a371bc
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/cs.js
@@ -0,0 +1,81 @@
+/**
+ * Czech lang variables 
+ * encoding: utf-8
+ *  
+ * $Id: cs.js,v 1.11 2006/03/20 14:32:00 spocke Exp $ 
+ */  
+
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Styly --',
+theme_code_desc : 'Zobrazit HTML',
+theme_code_title : 'Editace HTML',
+theme_code_wordwrap : 'Bez dělení slov',
+theme_sub_desc : 'Dolní index',
+theme_sup_desc : 'Horní index',
+theme_hr_desc : 'Vložit vodorovný oddělovač',
+theme_removeformat_desc : 'Zrušit formátování',
+theme_custom1_desc : 'Libovolný popisek',
+insert_image_border : 'Rámeček',
+insert_image_dimensions : 'Rozměry',
+insert_image_vspace : 'Vertikální okraj',
+insert_image_hspace : 'Horizontální okraj',
+insert_image_align : 'Zarovnání',
+insert_image_align_default : '-- Výchozí --',
+insert_image_align_baseline : 'Na účaří',
+insert_image_align_top : 'Nahoru',
+insert_image_align_middle : 'Na střed',
+insert_image_align_bottom : 'Dolů',
+insert_image_align_texttop : 'Nejvyšší bod textu',
+insert_image_align_absmiddle : 'Střed řádku',
+insert_image_align_absbottom : 'Spodek řádku',
+insert_image_align_left : 'Vlevo',
+insert_image_align_right : 'Vpravo',
+theme_font_size : '-- Velikost textu --',
+theme_fontdefault : '-- Písmo --',
+theme_block : '-- Formát --',
+theme_paragraph : 'Odstavec',
+theme_div : 'Div',
+theme_address : 'Adresa',
+theme_pre : 'Předformát',
+theme_h1 : 'Nadpis 1',
+theme_h2 : 'Nadpis 2',
+theme_h3 : 'Nadpis 3',
+theme_h4 : 'Nadpis 4',
+theme_h5 : 'Nadpis 5',
+theme_h6 : 'Nadpis 6',
+theme_colorpicker_title : 'Výběr barvy',
+theme_colorpicker_apply : 'Vybrat',
+theme_forecolor_desc : 'Barva popředí',
+theme_backcolor_desc : 'Barva pozadí',
+theme_charmap_title : 'Výběr znaku',
+theme_charmap_desc : 'Vložit znak',
+theme_visualaid_desc : 'Zapnout značky/neviditelné prvky',
+insert_anchor_title : 'Vložení/editace záložky',
+insert_anchor_name : 'Název',
+theme_anchor_desc : 'Vložit/editovat záložku',
+theme_insert_link_titlefield : 'Název',
+theme_clipboard_msg : 'Funkce Kopírovat/vyjmout/vložit nejsou použitelné v Mozille a Firefoxu.\nChcete více informací o tomto problému?',
+theme_path : 'Cesta',
+cut_desc : 'Vyjmout',
+copy_desc : 'Kopírovat',
+paste_desc : 'Vložit',
+link_list : 'Seznam',
+image_list : 'Seznam',
+browse : 'Procházet',
+image_props_desc : 'Vlastnosti obrázku',
+newdocument_desc : 'Nový dokument',
+newdocument : 'Jste si opravdu jistý(á), že chcete vymazat veškerý obsah?',
+about_title : 'O TinyMCE',
+about : 'O nás',
+license : 'Licence',
+plugins : 'Pluginy',
+plugin : 'Plugin',
+author : 'Autor',
+version : 'Verze',
+loaded_plugins : 'Načtené pluginy',
+help : 'Nápověda',
+not_set : '-- Nenastaven --',
+close : 'Zavřít',
+toolbar_focus : 'Nastavení fokusu na nástrojovou lištu - Alt+Q, Nastavení fokusu na editor textu - Alt-Z, Nastavení fokusu na řádek zanoření elementů - Alt-X'
+});
\ No newline at end of file
diff --git a/tinyMCE/themes/advanced/langs/cy.js b/tinyMCE/themes/advanced/langs/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..43636a3c891e44de37ce5049d876078fa2f9a75c
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/cy.js
@@ -0,0 +1,76 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Arddulliau --',
+theme_code_desc : 'Golygu c&ocirc;d HTML',
+theme_code_title : 'Golygydd C&ocirc;d HTML',
+theme_code_wordwrap : 'Amlapio geiriau',
+theme_sub_desc : 'Is-sgript',
+theme_sup_desc : 'Uwch-sgript',
+theme_hr_desc : 'Mewnosod llinell llorweddol',
+theme_removeformat_desc : 'Diddymu fformatio',
+theme_custom1_desc : 'Dy ddisgrifiad fan hyn',
+insert_image_border : 'Ymyl',
+insert_image_dimensions : 'Meintiau',
+insert_image_vspace : 'Gofod fertigol',
+insert_image_hspace : 'Gofod llorweddol',
+insert_image_align : 'Unioniad',
+insert_image_align_default : '-- Heb ddewis --',
+insert_image_align_baseline : 'Gwaelodlin',
+insert_image_align_top : 'Brig',
+insert_image_align_middle : 'Canol',
+insert_image_align_bottom : 'Gwaelod',
+insert_image_align_texttop : 'Brig Testun',
+insert_image_align_absmiddle : 'Canol Union',
+insert_image_align_absbottom : 'Gwaelod Union',
+insert_image_align_left : 'Chwith',
+insert_image_align_right : 'Dde',
+theme_font_size : '-- Maint ffont --',
+theme_fontdefault : '-- Teulu ffont --',
+theme_block : '-- Fformat --',
+theme_paragraph : 'Paragraff',
+theme_div : 'Div',
+theme_address : 'Cyfeiriad',
+theme_pre : 'Rhag-fformatiwyd',
+theme_h1 : 'Pennawd 1',
+theme_h2 : 'Pennawd 2',
+theme_h3 : 'Pennawd 3',
+theme_h4 : 'Pennawd 4',
+theme_h5 : 'Pennawd 5',
+theme_h6 : 'Pennawd 6',
+theme_colorpicker_title : 'Dewis lliw',
+theme_colorpicker_apply : 'Gosod',
+theme_forecolor_desc : 'Dewis lliw testun',
+theme_backcolor_desc : 'Dewis lliw cefndir',
+theme_charmap_title : 'Dewis llythyren arbennig',
+theme_charmap_desc : 'Gosod llythyren arbennig',
+theme_visualaid_desc : 'Gwrthdroi canllawiau/elfennau anweledig',
+insert_anchor_title : 'Mewnosod/golygu angor',
+insert_anchor_name : 'Enw angor',
+theme_anchor_desc : 'Mewnosod/golygu angor',
+theme_insert_link_titlefield : 'Teitl',
+theme_clipboard_msg : 'Dyw Cop&iuml;o/Torri/Gludo ddim ar gael ym Mozilla na Firefox.\nHoffet ti ragor o wybodaeth ynghylch hyn?',
+theme_path : 'Llwybr',
+cut_desc : 'Torri',
+copy_desc : 'Cop&iuml;o',
+paste_desc : 'Gludo',
+link_list : 'Rhestr dolenni',
+image_list : 'Rhestr delweddau',
+browse : 'Pori',
+image_props_desc : 'Priodoleddau delwedd',
+newdocument_desc : 'Dogfen newydd',
+class_name : 'Dosbarth',
+newdocument : 'Wyt ti\'n sicr eisiau clirio\'r holl gynnwys?',
+about_title : 'Yngl&#375;n &acirc; TinyMCE',
+about : 'Yngl&#375;n &acirc;',
+license : 'Trwydded',
+plugins : 'Ategynnau',
+plugin : 'Ategyn',
+author : 'Awdur',
+version : 'Fersiwn',
+loaded_plugins : 'Ategynnau gweithredol',
+help : 'Cymorth',
+not_set : '-- Heb ddewis --',
+close : 'Cau',
+toolbar_focus : 'Neidio i fotymau offer - Alt+Q, Neidio i\'r golygydd - Alt+Z, Neidio i lwybr y elfen - Alt+X'
+});
diff --git a/tinyMCE/themes/advanced/langs/da.js b/tinyMCE/themes/advanced/langs/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce42169f35276dd942240d73ba7c1e59ce95d9b8
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/da.js
@@ -0,0 +1,91 @@
+// DK lang variables - Transl.:Jan Moelgaard, Bo Frederiksen, John Dalsgaard - Corr.: Ronny Buelund
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stilarter --',
+theme_code_desc : 'Rediger HTML kode',
+theme_code_title : 'HTML Kodeeditor',
+theme_code_wordwrap : 'Ombrydning',
+theme_sub_desc : 'S&aelig;nket skrift',
+theme_sup_desc : 'H&aelig;vet skrift',
+theme_hr_desc : 'Inds&aelig;t horisontal linje',
+theme_removeformat_desc : 'Fjern formatering',
+theme_custom1_desc : 'Inds&aelig;t din egen beskrivelse her',
+insert_image_border : 'Kant',
+insert_image_dimensions : 'Dimensioner',
+insert_image_vspace : 'Flyt til venstre',
+insert_image_hspace : 'Flyt til h&oslash;jre',
+insert_image_align : 'Justering',
+insert_image_align_default : 'Standard',
+insert_image_align_baseline : 'Bundlinje',
+insert_image_align_top : 'Top',
+insert_image_align_middle : 'Midt',
+insert_image_align_bottom : 'Bund',
+insert_image_align_texttop : 'I toppen af teksten',
+insert_image_align_absmiddle : 'Absolut midte',
+insert_image_align_absbottom : 'Absolut bund',
+insert_image_align_left : 'Venstre',
+insert_image_align_right : 'H&oslash;jre',
+theme_font_size : '-- Skrift st&oslash;rrelse --',
+theme_fontdefault : '-- Skrifttype --',
+theme_block : '-- Typografi --',
+theme_paragraph : 'Afsnit',
+theme_div : 'Div',
+theme_address : 'Adresse',
+theme_pre : 'Pr&aelig;formateret',
+theme_h1 : 'Overskrift 1',
+theme_h2 : 'Overskrift 2',
+theme_h3 : 'Overskrift 3',
+theme_h4 : 'Overskrift 4',
+theme_h5 : 'Overskrift 5',
+theme_h6 : 'Overskrift 6',
+theme_blockquote : 'Firkantklamme',
+theme_code : 'Kode',
+theme_samp : 'Kodeeksempel',
+theme_dt : 'Definitionsterm ',
+theme_dd : 'Definitionsbeskrivelse',
+theme_colorpicker_title : 'V&aelig;lg en farve',
+theme_colorpicker_apply : 'Anvend',
+theme_forecolor_desc : 'V&aelig;lg forgrundsfarve',
+theme_backcolor_desc : 'V&aelig;lg baggrundsfarve',
+theme_charmap_title : 'V&aelig;lg specialtegn',
+theme_charmap_desc : 'Inds&aelig;t specialtegn',
+theme_visualaid_desc : 'Sl&aring; linjer/usynlige elementer til og fra',
+insert_anchor_title : 'Inds&aelig;t/rediger bogm&aelig;rke',
+insert_anchor_name : 'Bogm&aelig;rkets navn',
+theme_anchor_desc : 'Inds&aelig;t/rediger bogm&aelig;rke',
+theme_insert_link_titlefield : 'Titel',
+theme_clipboard_msg : 'Kopier/Klip/Inds&aelig;t virker ikke i Mozilla og Firefox.\nVil du vide mere om dette?',
+theme_path : 'Sti',
+cut_desc : 'Klip',
+copy_desc : 'Kopier',
+paste_desc : 'Inds&aelig;t',
+link_list : 'Linkliste',
+image_list : 'Billedliste',
+browse : 'Gennemse',
+image_props_desc : 'Billedegenskaber',
+newdocument_desc : 'Nyt dokument',
+class_name : 'Klasse',
+newdocument : 'Er du sikker p&aring;, at du vil slette alt?',
+about_title : 'Om TinyMCE',
+about : 'Om',
+license : 'Licens',
+plugins : 'Plugins',
+plugin : 'Plugin',
+author : 'Forfatter',
+version : 'Version',
+loaded_plugins : 'Indl&aelig;ste plugins',
+help : 'Hj&aelig;lp',
+not_set : '-- Ikke valgt --',
+close : 'Luk',
+toolbar_focus : 'Hop til v&aelig;rkt&oslash;jslinje - Alt+Q, Hop til editor - Alt-Z, Hop til element sti - Alt-X',
+invalid_data : 'FEJL: Ugyldige v&aelig;rdier angivet, disse er markerede med r&oslash;d.',
+more_colors : 'Flere farver',
+color_picker_tab : 'V&aelig;lger',
+color_picker : 'Farvev&aelig;lger',
+web_colors_tab : 'Web sikker',
+web_colors : 'Web sikre farver',
+named_colors_tab : 'Navngivet',
+named_colors : 'Navngivne farver',
+color : 'Farve:',
+color_name : 'Navn:'
+});
\ No newline at end of file
diff --git a/tinyMCE/themes/advanced/langs/de.js b/tinyMCE/themes/advanced/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..ec242953b4f467a5ad9e8df39738b28e64697f97
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/de.js
@@ -0,0 +1,82 @@
+// DE lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- CSS-Stile --',
+theme_code_desc : 'HTML-Quelltext bearbeiten',
+theme_code_title : 'HTML-Quelltexteditor',
+theme_code_wordwrap : 'Zeilenumbruch',
+theme_sub_desc : 'Tiefergestellt',
+theme_sup_desc : 'Hochgestellt',
+theme_hr_desc : 'Horizontale Linie einf&uuml;gen',
+theme_removeformat_desc : 'Formatierung l&ouml;schen',
+theme_custom1_desc : 'Eigene Beschreibung',
+insert_image_border : 'Rahmen',
+insert_image_dimensions : 'Gr&ouml;&szlig;e',
+insert_image_vspace : 'Vertikaler Raum',
+insert_image_hspace : 'Horizontaler Raum',
+insert_image_align : 'Ausrichtung',
+insert_image_align_default : '- Nicht gesetzt -',
+insert_image_align_baseline : 'Grundlinie',
+insert_image_align_top : 'Oben',
+insert_image_align_middle : 'Mitte',
+insert_image_align_bottom : 'Unten',
+insert_image_align_texttop : 'Mit dem Text',
+insert_image_align_absmiddle : 'Absolut mittig',
+insert_image_align_absbottom : 'Absolut unten',
+insert_image_align_left : 'Links',
+insert_image_align_right : 'Rechts',
+theme_font_size : '-- Schriftgr&ouml;&szlig;e --',
+theme_fontdefault : '-- Schriftart --',
+theme_block : '-- Format --',
+theme_paragraph : 'Absatz',
+theme_div : 'Div',
+theme_address : 'Adresse',
+theme_pre : 'Vorformatiert',
+theme_h1 : '&Uuml;berschrift 1',
+theme_h2 : '&Uuml;berschrift 2',
+theme_h3 : '&Uuml;berschrift 3',
+theme_h4 : '&Uuml;berschrift 4',
+theme_h5 : '&Uuml;berschrift 5',
+theme_h6 : '&Uuml;berschrift 6',
+theme_blockquote : 'Blockzitat',
+theme_code : 'Code',
+theme_samp : 'Code Beispiel',
+theme_dt : 'Definition Begriff ',
+theme_dd : 'Definition Beschreibung',
+theme_colorpicker_title : 'Farbe ausw&auml;hlen',
+theme_colorpicker_apply : 'Farbe festlegen',
+theme_forecolor_desc : 'Schriftfarbe ausw&auml;hlen',
+theme_backcolor_desc : 'Hintergrundfarbe ausw&auml;hlen',
+theme_charmap_title : 'Sonderzeichen einf&uuml;gen',
+theme_charmap_desc : 'Sonderzeichen einf&uuml;gen',
+theme_visualaid_desc : 'Hilfslinen/Unsichtbare Elemente anzeigen',
+insert_anchor_title : 'Anker einf&uuml;gen/bearbeiten',
+insert_anchor_name : 'Ankername',
+theme_anchor_desc : 'Anker einf&uuml;gen/bearbeiten',
+theme_insert_link_titlefield : 'Titel',
+theme_clipboard_msg : 'Zwischenablagefunktionen sind in Mozilla und Firefox nicht verf&uuml;gbar.\nW&uuml;nschen Sie hierzu weitere Informationen?',
+theme_path : 'Pfad',
+cut_desc : 'Ausschneiden',
+copy_desc : 'Kopieren',
+paste_desc : 'Einf&uuml;gen',
+link_list : 'Hyperlink-Liste',
+image_list : 'Bild-Liste',
+browse : 'Durchsuchen',
+image_props_desc : 'Bildeigenschaften',
+newdocument_desc : 'Neues Dokument',
+class_name : 'CSS-Klasse',
+newdocument : 'Sind Sie sicher, dass Sie alle Inhalte l&ouml;schen wollen?',
+about_title : '&Uuml;ber TinyMCE',
+about : '&Uuml;ber',
+license : 'Lizenz',
+plugins : 'Plugins',
+plugin : 'Plugin',
+author : 'Autor',
+version : 'Version',
+loaded_plugins : 'Geladene Plugins',
+help : 'Hilfe',
+not_set : '- Nicht gesetzt -',
+close : 'Schlie&szlig;en',
+toolbar_focus : 'Zu den Tool Buttons springen - Alt+Q, Zum Editor springen - Alt-Z, Zum Elementpfad springen - Alt-X',
+insert_link_delta_width : 50
+});
diff --git a/tinyMCE/themes/advanced/langs/el.js b/tinyMCE/themes/advanced/langs/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..35e1010f24e9bb71871db84b83493d667755b00d
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/el.js
@@ -0,0 +1,65 @@
+// Greek lang variables by Jacaranda Bill
+// Revised by Dimitris Giannitsaros / MediSign SA
+
+tinyMCE.addToLang('',{
+theme_style_select : 'ÈÝìáôá',
+theme_code_desc : 'Åðåîåñãáóßá HTML êþäéêá',
+theme_code_title : 'ÅðåîåñãáóôÞò HTML',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Äåßêôçò',
+theme_sup_desc : 'ÅêèÝôçò',
+theme_hr_desc : 'ÅéóáãùãÞ ïñéæüíôéáò ãñáììÞò',
+theme_removeformat_desc : 'ÁðáëïéöÞ ìïñöïðïßçóçò',
+theme_custom1_desc : 'ÐåñéãñáöÞ',
+insert_image_border : 'Ðåñßãñáììá',
+insert_image_dimensions : 'ÄéáóôÜóåéò',
+insert_image_vspace : 'ÊÜè. ðåñéèþñéï',
+insert_image_hspace : 'Ïñéæ. ðåñéèþñéï',
+insert_image_align : 'Óôïß÷éóç',
+insert_image_align_default : 'ÐñïêáèïñéóìÝíç',
+insert_image_align_baseline : 'Óå åõèõãñÜììéóç ìå ôï êåßìåíï',
+insert_image_align_top : 'ÐÜíù',
+insert_image_align_middle : 'Óôï êÝíôñï',
+insert_image_align_bottom : 'ÊÜôù',
+insert_image_align_texttop : 'Ôï êåßìåíï ðÜíù',
+insert_image_align_absmiddle : 'Áðüëõôá óôï êÝíôñï',
+insert_image_align_absbottom : 'Áðüëõôá êÜôù',
+insert_image_align_left : 'ÁñéóôåñÜ',
+insert_image_align_right : 'ÄåîéÜ',
+theme_font_size : '-- ÌÝãåèïò ãñáììáôïóåéñÜò --',
+theme_fontdefault : '-- Åßäïò ãñáììáôïóåéñÜò --',
+theme_block : '-- ÖïñìÜ --',
+theme_paragraph : 'ÐáñÜãñáöïò',
+theme_div : 'Div',
+theme_address : 'Äéåýèõíóç',
+theme_pre : 'Áêñéâþò',
+theme_h1 : 'Åðéêåöáëßäá 1',
+theme_h2 : 'Åðéêåöáëßäá 2',
+theme_h3 : 'Åðéêåöáëßäá 3',
+theme_h4 : 'Åðéêåöáëßäá 4',
+theme_h5 : 'Åðéêåöáëßäá 5',
+theme_h6 : 'Åðéêåöáëßäá 6',
+theme_colorpicker_title : '×ñþìáôá',
+theme_colorpicker_apply : 'ÅöáñìïãÞ',
+theme_forecolor_desc : 'ÅðéëïãÞ ÷ñþìáôïò ãñáììáôïóåéñÜò',
+theme_backcolor_desc : 'ÅðéëïãÞ ÷ñþìáôïò background',
+theme_charmap_title : 'ÅðéëïãÞ åéäéêïý ÷áñáêôÞñá',
+theme_charmap_desc : 'ÅéóáãùãÞ åéäéêïý ÷áñáêôÞñá',
+theme_visualaid_desc : 'ÅìöÜíéóç/Áðüêñõøç ãñáììþí',
+insert_anchor_title : 'ÅéóáãùãÞ/Äéüñèùóç Üãêõñáò',
+insert_anchor_name : 'Ïíïìáóßá Üãêõñáò',
+theme_anchor_desc : 'ÅéóáãùãÞ/Äéüñèùóç Üãêõñáò',
+theme_insert_link_titlefield : 'Ôßôëïò',
+theme_clipboard_msg : 'Ç ÁíôéãñáöÞ/ÁðïêïðÞ/Åðéêüëëçóç äåí åßíáé äéáèÝóéìåò óôï Mozilla êáé óôï Firefox.\nÈÝëåôå ðëçñïöïñßåò ãéá áõôü ôï èÝìá;',
+theme_path : 'ÄéáäñïìÞ',
+cut_desc : 'ÁðïêïðÞ',
+copy_desc : 'ÁíôéãñáöÞ',
+paste_desc : 'Åðéêüëëçóç',
+link_list : 'Ëßóôá óõíäÝóìùí',
+image_list : 'Ëßóôá åéêüíùí',
+browse : 'ÐåñéÞãçóç',
+image_props_desc : 'Éäéüôçôåò åéêüíáò',
+newdocument_desc : 'ÍÝï Ýããñáöï',
+class_name : 'ÊëÜóç',
+newdocument : 'ÈÝëåôå óßãïõñá íá êáèáñßóåôå üëá ôá ðåñéå÷üìåíá;'
+});
diff --git a/tinyMCE/themes/advanced/langs/en.js b/tinyMCE/themes/advanced/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..8409e582b467eceb9857b3045ebdd9434b454c53
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/en.js
@@ -0,0 +1,93 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Styles --',
+theme_code_desc : 'Edit HTML Source',
+theme_code_title : 'HTML Source Editor',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Subscript',
+theme_sup_desc : 'Superscript',
+theme_hr_desc : 'Insert horizontal ruler',
+theme_removeformat_desc : 'Remove formatting',
+theme_custom1_desc : 'Your custom description here',
+insert_image_border : 'Border',
+insert_image_dimensions : 'Dimensions',
+insert_image_vspace : 'Vertical space',
+insert_image_hspace : 'Horizontal space',
+insert_image_align : 'Alignment',
+insert_image_align_default : '-- Not set --',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Top',
+insert_image_align_middle : 'Middle',
+insert_image_align_bottom : 'Bottom',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Absolute Middle',
+insert_image_align_absbottom : 'Absolute Bottom',
+insert_image_align_left : 'Left',
+insert_image_align_right : 'Right',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraph',
+theme_div : 'Div',
+theme_address : 'Address',
+theme_pre : 'Preformatted',
+theme_h1 : 'Heading 1',
+theme_h2 : 'Heading 2',
+theme_h3 : 'Heading 3',
+theme_h4 : 'Heading 4',
+theme_h5 : 'Heading 5',
+theme_h6 : 'Heading 6',
+theme_blockquote : 'Blockquote',
+theme_code : 'Code',
+theme_samp : 'Code sample',
+theme_dt : 'Definition term ',
+theme_dd : 'Definition description',
+theme_colorpicker_title : 'Select a color',
+theme_colorpicker_apply : 'Apply',
+theme_forecolor_desc : 'Select text color',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Select custom character',
+theme_charmap_desc : 'Insert custom character',
+theme_visualaid_desc : 'Toggle guidelines/invisible elements',
+insert_anchor_title : 'Insert/edit anchor',
+insert_anchor_name : 'Anchor name',
+theme_anchor_desc : 'Insert/edit anchor',
+theme_insert_link_titlefield : 'Title',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'Class',
+newdocument : 'Are you sure you want clear all contents?',
+about_title : 'About TinyMCE',
+about : 'About',
+license : 'License',
+plugins : 'Plugins',
+plugin : 'Plugin',
+author : 'Author',
+version : 'Version',
+loaded_plugins : 'Loaded plugins',
+help : 'Help',
+not_set : '-- Not set --',
+close : 'Close',
+toolbar_focus : 'Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X',
+invalid_data : 'Error: Invalid values entered, these are marked in red.',
+more_colors : 'More colors',
+color_picker_tab : 'Picker',
+color_picker : 'Color picker',
+web_colors_tab : 'Palette',
+web_colors : 'Palette colors',
+named_colors_tab : 'Named',
+named_colors : 'Named colors',
+color : 'Color:',
+color_name : 'Name:',
+is_email : 'The URL you entered seems to be an email address, do you want to add the required mailto: prefix?',
+is_external : 'The URL you entered seems to external link, do you want to add the required http:// prefix?'
+});
diff --git a/tinyMCE/themes/advanced/langs/es.js b/tinyMCE/themes/advanced/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..e3ff427b426c316eb5c882cd4c7549dc24c91662
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/es.js
@@ -0,0 +1,102 @@
+/**
+ * ES lang variables
+ * 
+ * Authors : Alvaro Velasco,
+ *           Adolfo Sanz De Diego (asanzdiego) <asanzdiego@yahoo.es>,
+ *           Carlos C Soto (eclipxe) <csoto@sia-solutions.com>
+ *           Eneko Castresana Vara
+ * Last Updated : July 14, 2006
+ * TinyMCE Version : 2.0.6.1
+ */
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Estilos --',
+theme_code_desc : 'Editar c&oacute;digo HTML',
+theme_code_title : 'Editor c&oacute;digo HTML',
+theme_code_wordwrap : 'Ajuste de l&iacute;nea',
+theme_sub_desc : 'Sub&iacute;ndice',
+theme_sup_desc : 'Super&iacute;ndice',
+theme_hr_desc : 'Insertar una barra horizontal',
+theme_removeformat_desc : 'Quitar formato',
+theme_custom1_desc : 'Tu descripci&oacute;n aqu&iacute;',
+insert_image_border : 'Borde',
+insert_image_dimensions : 'Dimensiones',
+insert_image_vspace : 'Espacio vertical',
+insert_image_hspace : 'Espacio horizontal',
+insert_image_align : 'Alineaci&oacute;n',
+insert_image_align_default : '-- Por defecto --',
+insert_image_align_baseline : 'Linea base',
+insert_image_align_top : 'Arriba',
+insert_image_align_middle : 'Centrado',
+insert_image_align_bottom : 'Abajo',
+insert_image_align_texttop : 'Texto arriba',
+insert_image_align_absmiddle : 'Centrado total',
+insert_image_align_absbottom : 'Abajo total',
+insert_image_align_left : 'Izquierda',
+insert_image_align_right : 'Derecha',
+theme_font_size : '-- Tama&ntilde;o del texto --',
+theme_fontdefault : '-- Tipo de fuente --',
+theme_block : '-- Formato del texto --',
+theme_paragraph : 'P&aacute;rrafo',
+theme_div : 'Capa',
+theme_address : 'Direcci&oacute;n',
+theme_pre : 'Preformateado',
+theme_h1 : 'T&iacute;tulo 1',
+theme_h2 : 'T&iacute;tulo 2',
+theme_h3 : 'T&iacute;tulo 3',
+theme_h4 : 'T&iacute;tulo 4',
+theme_h5 : 'T&iacute;tulo 5',
+theme_h6 : 'T&iacute;tulo 6',
+theme_colorpicker_title : 'Selecciona un color',
+theme_colorpicker_apply : 'Aplicar',
+theme_forecolor_desc : 'Selecciona un color para el texto',
+theme_backcolor_desc : 'Selecciona un color de fondo',
+theme_charmap_title : 'Selecciona un car&aacute;cter especial',
+theme_charmap_desc : 'Inserta un car&aacute;cter especial',
+theme_charmap_all_title : 'Todos',
+theme_charmap_all_desc : 'Todos los caracteres',
+theme_charmap_alpha_title : 'Alfab&eacute;ticos',
+theme_charmap_alpha_desc : 'Caracteres alfab&eacute;ticos',
+theme_charmap_arrows_title : 'Flechas',
+theme_charmap_arrows_desc : 'Caracteres de flechas',
+theme_charmap_greek_title : 'Griegos',
+theme_charmap_greek_desc : 'Caracteres Griegos',
+theme_charmap_math_title : 'Mathem&aacute;ticos',
+theme_charmap_math_desc : 'Caracteres mathem&aacute;ticos',
+theme_charmap_misc_title : 'Miscel&aacute;neos',
+theme_charmap_misc_desc : 'Caracteres miscel&aacute;neos',
+theme_charmap_money_title : 'Monedas',
+theme_charmap_money_desc : 'Caracteres de monedas',
+theme_charmap_quotaion_title : 'Comillas',
+theme_charmap_quotaion_desc : 'Caracteres de comillas',
+theme_visualaid_desc : 'Cambiar las l&iacute;neas de ayuda por elementos invisibles',
+insert_anchor_title : 'Insertar/editar ancla',
+insert_anchor_name : 'Nombre del ancla',
+theme_anchor_desc : 'Insertar/editar ancla',
+theme_insert_link_titlefield : 'T&iacute;tulo',
+theme_clipboard_msg : 'No se pueden utilizar los comandos Copiar / Cortar / Pegar en Mozilla y en Firefox.\r\nUse el teclado Copiar (Ctrl+C) / Cortar (Ctrl+X) / Pegar (Ctrl+V)\r\n&#191;Quieres obtener m&aacute;s informaci&oacute;n?',
+theme_path : 'Ruta',
+cut_desc : 'Cortar (Ctrl+X)',
+copy_desc : 'Copiar (Ctrl+C)',
+paste_desc : 'Pegar (Ctrl+V)',
+link_list : 'Lista de enlaces',
+image_list : 'Lista de im&aacute;genes',
+browse : 'Navegar',
+image_props_desc : 'Propiedades de la imagen',
+newdocument_desc : 'Nuevo documento',
+class_name : 'Clase',
+newdocument : '&#191;Est&aacute;s seguro de que quieres borrar todo el contenido?',
+about_title : 'Acerca de TinyMCE',
+about : 'Acerca',
+license : 'Licencia',
+plugins : 'Plugins',
+plugin : 'Plugin',
+author : 'Autor',
+version : 'Versi&oacute;n',
+loaded_plugins : 'Plugins cargados',
+help : 'Ayuda',
+not_set : '-- Por defecto --',
+close : 'Cerrar',
+toolbar_focus : 'Saltar a la barra de herramientas - Alt+Q, Saltar al editor - Alt+Z, Saltar al elemento de la ruta - Alt+X',
+theme_advanced_anchor_delta_width : 20
+});
diff --git a/tinyMCE/themes/advanced/langs/fa.js b/tinyMCE/themes/advanced/langs/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e01f436df8f8e93d1a615ae33b69905cb7ddd2f
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/fa.js
@@ -0,0 +1,65 @@
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+theme_style_select : '????',
+theme_code_desc : '?????? ????',
+theme_code_title : 'HTML ???????? ????',
+theme_code_wordwrap : '?? ???',
+theme_sub_desc : '??? ????',
+theme_sup_desc : '???? ????',
+theme_hr_desc : '??? ?? ????',
+theme_removeformat_desc : '??? ?? ??? ???? ????',
+theme_custom1_desc : 'Your custom description here',
+insert_image_border : '?????',
+insert_image_dimensions : '?????',
+insert_image_vspace : '????? ?????',
+insert_image_hspace : '????? ????',
+insert_image_align : '??? ????????',
+insert_image_align_default : '??? ???',
+insert_image_align_baseline : '?? ????',
+insert_image_align_top : '????',
+insert_image_align_middle : '???',
+insert_image_align_bottom : '?????',
+insert_image_align_texttop : '????? ???',
+insert_image_align_absmiddle : '??? ????',
+insert_image_align_absbottom : '????? ????',
+insert_image_align_left : '??',
+insert_image_align_right : '????',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : '????????',
+theme_div : 'Div',
+theme_address : '????',
+theme_pre : '?? ??? ????? ???',
+theme_h1 : '???? 1',
+theme_h2 : '???? 2',
+theme_h3 : '???? 3',
+theme_h4 : '???? 4',
+theme_h5 : '???? 5',
+theme_h6 : '???? 6',
+theme_colorpicker_title : '??? ?? ?????? ????',
+theme_colorpicker_apply : '?????',
+theme_forecolor_desc : '?????? ??? ???',
+theme_backcolor_desc : '?????? ??? ?????',
+theme_charmap_title : '?????? ??????? ????',
+theme_charmap_desc : '??? ??????? ????',
+theme_visualaid_desc : '????? ???? ???? ? ????? ??????',
+insert_anchor_title : '??? ? ?????? Anchor',
+insert_anchor_name : '??? Anchor',
+theme_anchor_desc : '??? ? ?????? Anchor',
+theme_insert_link_titlefield : '?????',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : '????',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+newdocument : 'Are you sure you want clear all contents?'
+});
diff --git a/tinyMCE/themes/advanced/langs/fi.js b/tinyMCE/themes/advanced/langs/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..2eaa9419ccb851591f04ec7b60defe44edcac896
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/fi.js
@@ -0,0 +1,77 @@
+// FI lang variables by Urho Konttori from Absolutions
+// Updated by Tuomo Aura from Ateco.fi
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Tyylit --',
+theme_code_desc : 'Muokkaa HTML-l&auml;hdekoodia',
+theme_code_title : 'HTML-L&auml;hdekoodin muokkaus',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Alaindeksi',
+theme_sup_desc : 'Yl&auml;indeksi',
+theme_hr_desc : 'Lis&auml;&auml; vaakaviiva',
+theme_removeformat_desc : 'Poista muotoilu',
+theme_custom1_desc : 'Kirjoita oma selityksesi t&auml;h&auml;n',
+insert_image_border : 'Reuna',
+insert_image_dimensions : 'Mitat',
+insert_image_vspace : 'Pystyv&auml;li',
+insert_image_hspace : 'Vaakav&auml;li',
+insert_image_align : 'Asettelu',
+insert_image_align_default : 'Oletus',
+insert_image_align_baseline : 'Perustasoon',
+insert_image_align_top : 'Yl&auml;laitaan',
+insert_image_align_middle : 'Keskelle',
+insert_image_align_bottom : 'Alalaitaan',
+insert_image_align_texttop : 'Tekstin yl&auml;laitaan',
+insert_image_align_absmiddle : 'Absoluuttisen keskelle',
+insert_image_align_absbottom : 'Absoluuttisen alas',
+insert_image_align_left : 'Vasemmalle',
+insert_image_align_right : 'Oikealle',
+theme_font_size : '-- Fonttikoko --',
+theme_fontdefault : '-- Fontti --',
+theme_block : '-- Muotoilu --',
+theme_paragraph : 'Kappale',
+theme_div : 'Div',
+theme_address : 'Osoite',
+theme_pre : 'Etuk&auml;teen muotoiltu',
+theme_h1 : 'Otsikko 1',
+theme_h2 : 'Otsikko 2',
+theme_h3 : 'Otsikko 3',
+theme_h4 : 'Otsikko 4',
+theme_h5 : 'Otsikko 5',
+theme_h6 : 'Otsikko 6',
+theme_colorpicker_title : 'Valitse v&auml;ri',
+theme_colorpicker_apply : 'Aseta v&auml;ri',
+theme_forecolor_desc : 'Valitse fontin v&auml;ri',
+theme_backcolor_desc : 'Valitse taustav&auml;ri',
+theme_charmap_title : 'Valitse erikoismerkki',
+theme_charmap_desc : 'Lis&auml;&auml; oma erikoismerkki',
+theme_visualaid_desc : 'N&auml;yt&auml;/piilota apuviivat',
+insert_anchor_title : 'Lis&auml;&auml;/muokkaa ankkuria',
+insert_anchor_name : 'Ankkurin nimi',
+theme_anchor_desc : 'Lis&auml;&auml;/muokkaa ankkuria',
+theme_insert_link_titlefield : 'Title',
+theme_clipboard_msg : 'Leikkaus/Kopiointi/Liit&auml;minen ei onnistu Mozilla eik&auml; Firefox -selaimilla tietoturvasyist&auml;. \n Haluatko lis&auml;tietoa aiheesta?',
+theme_path : 'Polku',
+cut_desc : 'Leikkaa',
+copy_desc : 'Kopioi',
+paste_desc : 'Liit&auml;',
+link_list : 'Linkkilista',
+image_list : 'Kuvalista',
+browse : 'Selaa',
+image_props_desc : 'Kuvan ominaisuudet',
+newdocument_desc : 'Uusi dokumentti',
+class_name : 'Luokka',
+newdocument : 'Oletko varma, ett&auml; haluat poistaa kaiken sis&auml;ll&ouml;n?',
+about_title : 'TinyMCE:n tiedot',
+about : 'Tiedot',
+license : 'Lisenssi',
+plugins : 'Pluginit',
+plugin : 'Plugini',
+author : 'Tekij&auml;',
+version : 'Versio',
+loaded_plugins : 'Ladatut pluginit',
+help : 'Apua',
+not_set : '-- Ei asetettu --',
+close : 'Sulje',
+toolbar_focus : 'Hypp&auml;&auml; ty&ouml;kalupainikkeisiin - Alt+Q, Hypp&auml;&auml; editoriin - Alt-Z, Hypp&auml;&auml; polkuun - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/fr.js b/tinyMCE/themes/advanced/langs/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..0a92045671ee317f8f6671ccd8ef358924d2211a
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/fr.js
@@ -0,0 +1,92 @@
+// FR lang variables
+// Modified by shadow walker, last updated 2007-03-16, based on the work of Motte
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Style --',
+theme_code_desc : 'Afficher le code source',
+theme_code_title : 'Edition du code source',
+theme_code_wordwrap : 'Retour &agrave; la ligne automatique',
+theme_sub_desc : 'Indice',
+theme_sup_desc : 'Exposant',
+theme_hr_desc : 'Ins&eacute;rer une r&egrave;gle horizontale ordinaire',
+theme_removeformat_desc : 'Supprimer le formatage',
+theme_custom1_desc : 'Votre description personnalis&eacute;e ici',
+insert_image_border : 'Bordure',
+insert_image_dimensions : 'Dimensions',
+insert_image_vspace : 'Espacement vertical',
+insert_image_hspace : 'Espacement horizontal',
+insert_image_align : 'Alignement',
+insert_image_align_default : '-- Ind&eacute;fini --',
+insert_image_align_baseline : 'Ligne de base',
+insert_image_align_top : 'Haut',
+insert_image_align_middle : 'Milieu',
+insert_image_align_bottom : 'Bas',
+insert_image_align_texttop : 'Haut du texte',
+insert_image_align_absmiddle : 'Milieu absolu',
+insert_image_align_absbottom : 'Bas absolu',
+insert_image_align_left : 'En flottement &agrave; gauche',
+insert_image_align_right : 'En flottement &agrave; droite',
+theme_font_size : '-- Taille --',
+theme_fontdefault : '-- Police --',
+theme_block : '-- Bloc de texte --',
+theme_paragraph : 'Paragraphe',
+theme_div : 'Div',
+theme_address : 'Infos sur l\'auteur',
+theme_pre : 'Texte pr&eacute;format&eacute;',
+theme_h1 : 'Titre de niveau 1',
+theme_h2 : 'Titre de niveau 2',
+theme_h3 : 'Titre de niveau 3',
+theme_h4 : 'Titre de niveau 4',
+theme_h5 : 'Titre de niveau 5',
+theme_h6 : 'Titre de niveau 6',
+theme_blockquote : 'Citation',
+theme_code : 'Code',
+theme_samp : 'Exemple de code',
+theme_dt : 'Definition du therme ',
+theme_dd : 'Definition de la description',
+theme_colorpicker_title : 'Choisir une couleur',
+theme_colorpicker_apply : 'Appliquer',
+theme_forecolor_desc : 'Couleur du texte',
+theme_backcolor_desc : 'Couleur d\'arri&egrave;re-plan',
+theme_charmap_title : 'S&eacute;lectionner un caract&egrave;re sp&eacute;cial',
+theme_charmap_desc : 'Ins&eacute;rer un caract&egrave;re sp&eacute;cial',
+theme_visualaid_desc : 'Activer/D&eacute;sactiver les lignes guides et les &eacute;l&eacute;ments invisibles',
+insert_anchor_title : 'Gestionnaire d\'ancre',
+insert_anchor_name : 'Nom de l\'ancre',
+theme_anchor_desc : 'Ins&eacute;rer/Modifier une ancre',
+theme_insert_link_titlefield : 'Info-bulle',
+theme_clipboard_msg : 'Pour des raisons de s&eacute;curit&eacute;, les fonctions « Copier », « Couper » et « Coller »\nne sont pas disponibles dans Mozilla et Firefox.\n\n\nVoulez-vous plus d\'information &agrave; ce sujet?\n',
+theme_path : 'El&eacute;ment(s) en cours ',
+cut_desc : 'Couper',
+copy_desc : 'Copier',
+paste_desc : 'Coller',
+link_list : 'Lien de la liste',
+image_list : 'Image de la liste',
+browse : 'Naviguer',
+image_props_desc : 'Propri&eacute;t&eacute;s de l\'image',
+newdocument_desc : 'Nouveau document',
+class_name : 'Classe CSS',
+newdocument : 'Etes-vous s&ucirc;r de vouloir supprimer tout le contenu ?',
+about_title : 'A propos de TinyMCE',
+about : 'A propos',
+license : 'License',
+plugins : 'Extensions',
+plugin : 'Extension',
+author : 'Auteur',
+version : 'Version',
+loaded_plugins : 'Extensions install&eacute;es',
+help : 'Aide',
+not_set : '-- Ind&eacute;fini --',
+close : 'Fermer',
+toolbar_focus : 'Atteindre la barre d\'outils (Alt+Q), Atteindre l\'&eacute;diteur (Alt-Z), Atteindre l\'&eacute;l&eacute;ment en cours (Alt-X)',
+invalid_data : 'Erreur: La valeur en rouge est incorrecte.',
+more_colors : 'Plus de couleurs',
+color_picker_tab : 'Pipette',
+color_picker : 'Palette de couleur',
+web_colors_tab : 'S&eacute;curis&eacute; pour le web',
+web_colors : 'Couleur s&eacute;curis&eacute;e pour le web',
+named_colors_tab : 'Nom',
+named_colors : 'Nom de la couleur',
+color : 'Couleur:',
+color_name : 'Nom:'
+});
diff --git a/tinyMCE/themes/advanced/langs/fr_ca.js b/tinyMCE/themes/advanced/langs/fr_ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e15b5818439259bdfbaa3be623ec100258a35b6
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/fr_ca.js
@@ -0,0 +1,64 @@
+// Canadian French lang variables by Virtuelcom   last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Styles --',
+theme_code_desc : 'Modifier le code source HTML',
+theme_code_title : 'Éditeur de code source HTML',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Souscrit',
+theme_sup_desc : 'Indice supérieur',
+theme_hr_desc : 'Insérer un séparateur horizontal',
+theme_removeformat_desc : 'Supprimer le formattage',
+theme_custom1_desc : 'Votre description personnalisée ici',
+insert_image_border : 'Bordure',
+insert_image_dimensions : 'Dimensions',
+insert_image_vspace : 'VSpace',
+insert_image_hspace : 'HSpace',
+insert_image_align : 'Alignement',
+insert_image_align_default : 'Défaut',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Haut',
+insert_image_align_middle : 'Milieu',
+insert_image_align_bottom : 'Bas',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Milieu absolu',
+insert_image_align_absbottom : 'Bas absolu',
+insert_image_align_left : 'Gauche',
+insert_image_align_right : 'Droit',
+theme_font_size : 'Taille',
+theme_fontdefault : '-- Police --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraphe',
+theme_div : 'Div',
+theme_address : 'Addresse',
+theme_pre : 'Préformatté',
+theme_h1 : 'Entête 1',
+theme_h2 : 'Entête 2',
+theme_h3 : 'Entête 3',
+theme_h4 : 'Entête 4',
+theme_h5 : 'Entête 5',
+theme_h6 : 'Entête 6',
+theme_colorpicker_title : 'Choisir une couleur',
+theme_colorpicker_apply : 'Appliquer',
+theme_forecolor_desc : 'Choisir la couleur d\'avant plan',
+theme_backcolor_desc : 'Choisir une couleur d\'arrière plan',
+theme_charmap_title : 'Sélectionner un charactère spécial',
+theme_charmap_desc : 'Insérer un charactère spécial',
+theme_visualaid_desc : 'Active/Désactive les lignes guides et les éléments invisibles',
+insert_anchor_title : 'Insérer/Modifier une ancre',
+insert_anchor_name : 'Nom de l\'ancre',
+theme_anchor_desc : 'Insérer / Modifier une ancre',
+theme_insert_link_titlefield : 'Titre',
+theme_clipboard_msg : 'Copier/Couper/Coller ne sont pas disponibles dans Mozilla et FireFox.\nDésirez-vous consulter de plus amples informations à ce sujet?',
+theme_path : 'Chemin',
+cut_desc : 'Couper',
+copy_desc : 'Copier',
+paste_desc : 'Coller',
+link_list : 'Liste de liens',
+image_list : 'Liste d\'images',
+browse : 'Sélectionner',
+image_props_desc : 'Propriétés de l\'image',
+newdocument_desc : 'Nouveau Document',
+class_name : 'Classe',
+newdocument : 'Are you sure you want clear all contents?'
+});
diff --git a/tinyMCE/themes/advanced/langs/he.js b/tinyMCE/themes/advanced/langs/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..87778f3f80c5c1fc49ad1aceab05d21856a9a649
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/he.js
@@ -0,0 +1,76 @@
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- ñéâðåðåú --',
+theme_code_desc : 'òøåê àú ÷åã ä-HTML',
+theme_code_title : 'òåøê ÷åã HTML',
+theme_code_wordwrap : 'âìéùú ùåøåú',
+theme_sub_desc : 'ëúá úçúé',
+theme_sup_desc : 'ëúá òéìé',
+theme_hr_desc : 'äëðñ ÷å àåô÷é',
+theme_removeformat_desc : 'äñø òéöåá',
+theme_custom1_desc : 'äúéàåø ùìê ëàï',
+insert_image_border : 'âáåì',
+insert_image_dimensions : 'îéîãéí',
+insert_image_vspace : 'çìì àðëé',
+insert_image_hspace : 'çìì àåô÷é',
+insert_image_align : 'ééùåø',
+insert_image_align_default : 'áøéøú îçãì',
+insert_image_align_baseline : 'ì÷å äáñéñ',
+insert_image_align_top : 'ìîòìä',
+insert_image_align_middle : 'ìàîöò',
+insert_image_align_bottom : 'ìîèä',
+insert_image_align_texttop : 'ìøàù äè÷ñè',
+insert_image_align_absmiddle : 'ìàîöò îåçìè',
+insert_image_align_absbottom : 'ì÷öä úçúåï îåçìè',
+insert_image_align_left : 'ìùîàì',
+insert_image_align_right : 'ìéîéï',
+theme_font_size : 'âåãì âåôï',
+theme_fontdefault : '-- îùôçú âåôðéí --',
+theme_block : '-- òéöåá --',
+theme_paragraph : 'ôñ÷ä',
+theme_div : '÷èò',
+theme_address : 'ëúåáú',
+theme_pre : 'îòåöá îøàù',
+theme_h1 : 'ëåúøú 1',
+theme_h2 : 'ëåúøú 2',
+theme_h3 : 'ëåúøú 3',
+theme_h4 : 'ëåúøú 4',
+theme_h5 : 'ëåúøú 5',
+theme_h6 : 'ëåúøú 6',
+theme_colorpicker_title : 'áçø öáò',
+theme_colorpicker_apply : 'äçì',
+theme_forecolor_desc : 'áçø öáò è÷ñè',
+theme_backcolor_desc : 'áçø öáò ø÷ò',
+theme_charmap_title : 'áçø úå îéåçã',
+theme_charmap_desc : 'äëðñ úå îéåçã',
+theme_visualaid_desc : 'äçìó îöá ÷ååéí îðçéí/øëéáéí áìúé-ðøàéí',
+insert_anchor_title : 'äëðñ/òøåê òåâï',
+insert_anchor_name : 'ùí äòåâï',
+theme_anchor_desc : 'äëðñ/òøåê òåâï',
+theme_insert_link_titlefield : 'ëåúøú',
+theme_clipboard_msg : 'ôòåìåú äòú÷ä/âæéøä/äãá÷ä àéðï ðúîëåú úçú Mozilla å-Firefox.\näàí áøöåðê ì÷áì îéãò ðåñó àåãåú ðåùà æä?',
+theme_path : 'ðúéá',
+cut_desc : 'âæåø',
+copy_desc : 'äòú÷',
+paste_desc : 'äãá÷',
+link_list : 'øùéîú ÷éùåøéí',
+image_list : 'øùéîú úîåðåú',
+browse : 'ñééø',
+image_props_desc : 'îàôééðé úîåðä',
+newdocument_desc : 'îñîê çãù',
+class_name : 'îçì÷ä',
+newdocument : 'äàí àúä áèåç ùáøöåðê ìð÷åú àú ëì äúåëï?',
+about_title : 'àåãåú TinyMCE',
+about : 'àåãåú',
+license : 'øéùéåï',
+plugins : 'úåñôéí',
+plugin : 'úåñó',
+author : 'îçáø',
+version : 'âøñä',
+loaded_plugins : 'úåñôéí ôòéìéí',
+help : 'òæøä',
+not_set : '-- ìà îåâãø --',
+close : 'ñâéøä',
+toolbar_focus : 'òáåø àì ëôúåøé äëìéí - Alt+Q, òáåø àì äòåøê - Alt-Z, òáåø àì ðúéá òéöåá - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/hu.js b/tinyMCE/themes/advanced/langs/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..49535b002bef26d1d99f007235279d0c67186cc4
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/hu.js
@@ -0,0 +1,75 @@
+// HU lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stílusok --',
+theme_code_desc : 'HTML forrás szerkesztése',
+theme_code_title : 'HTML forrás szerkesztõ',
+theme_code_wordwrap : 'Sortördelés',
+theme_sub_desc : 'Alsóindex',
+theme_sup_desc : 'Felsõindex',
+theme_hr_desc : 'Vizszíntes vonal beszúrása',
+theme_removeformat_desc : 'Formázás eltávolítása',
+theme_custom1_desc : 'Az egyéni leírásod jön ide',
+insert_image_border : 'Keret',
+insert_image_dimensions : 'Kiterjedés',
+insert_image_vspace : 'Függõleges terület',
+insert_image_hspace : 'Vizszintes terület',
+insert_image_align : 'Elhelyezkedés',
+insert_image_align_default : '-- Nincs beállítva --',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Felül',
+insert_image_align_middle : 'Középen',
+insert_image_align_bottom : 'Alul',
+insert_image_align_texttop : 'Szövegfelett',
+insert_image_align_absmiddle : 'Abszolút közép',
+insert_image_align_absbottom : 'Abszolút alatt',
+insert_image_align_left : 'Balra',
+insert_image_align_right : 'Jobbra',
+theme_font_size : '-- Betûméret --',
+theme_fontdefault : '-- Betûcsalád --',
+theme_block : '-- Formátum --',
+theme_paragraph : 'Bekezdés',
+theme_div : 'Div',
+theme_address : 'Cím',
+theme_pre : 'Elõreformázott',
+theme_h1 : 'Fejléc 1',
+theme_h2 : 'Fejléc 2',
+theme_h3 : 'Fejléc 3',
+theme_h4 : 'Fejléc 4',
+theme_h5 : 'Fejléc 5',
+theme_h6 : 'Fejléc 6',
+theme_colorpicker_title : 'Színválasztás',
+theme_colorpicker_apply : 'Alkalmaz',
+theme_forecolor_desc : 'Szövegszín választás',
+theme_backcolor_desc : 'Háttérszín választás',
+theme_charmap_title : 'Egyéni karakter választás',
+theme_charmap_desc : 'Egyéni karakter beszúrás',
+theme_visualaid_desc : 'Sorjelölõk/láthatatlan elemek kapcsolása',
+insert_anchor_title : 'Horgony nbeillesztése/szerkesztése',
+insert_anchor_name : 'Horgony név',
+theme_anchor_desc : 'Horgony nbeillesztése/szerkesztése',
+theme_insert_link_titlefield : 'Cím',
+theme_clipboard_msg : 'A Másolás/Kivágás/Beillesztés nem elérhetõ Mozillában and Firefox-ban.\nSzeretnél több információt errõl a problémáról?',
+theme_path : 'Útvonal',
+cut_desc : 'Kivágás',
+copy_desc : 'Másolás',
+paste_desc : 'Beillesztés',
+link_list : 'Link lista',
+image_list : 'Kép lista',
+browse : 'Tallózás',
+image_props_desc : 'Kép tulajdonságai',
+newdocument_desc : 'Új dokumentum',
+class_name : 'Osztály',
+newdocument : 'Biztos hogy törölni akarod az összes tartalmat?',
+about_title : 'TinyMCE névjegye',
+about : 'Névjegy',
+license : 'Licensz',
+plugins : 'Bõvítmények',
+plugin : 'Bõvítmény',
+author : 'Szerzõ',
+version : 'Verzió',
+loaded_plugins : 'Betöltött bõvítmények',
+help : 'Súgó',
+not_set : '-- Nincs beállítva --',
+close : 'Bezárás'
+});
diff --git a/tinyMCE/themes/advanced/langs/is.js b/tinyMCE/themes/advanced/langs/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..dc92c62fba42b4a04bfb3e5504781819a919f9e8
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/is.js
@@ -0,0 +1,76 @@
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- St&iacute;lar --',
+theme_code_desc : 'Breyta HTML k&oacute;&eth;a',
+theme_code_title : 'HTML k&oacute;&eth;aritill',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'L&aacute;gskrift',
+theme_sup_desc : 'H&aacute;skrift',
+theme_hr_desc : 'Setja inn stiku',
+theme_removeformat_desc : 'Fjarl&aelig;gja textasni&eth;',
+theme_custom1_desc : 'Þ&iacute;n l&yacute;sing h&eacute;r',
+insert_image_border : 'Rammi',
+insert_image_dimensions : 'V&iacute;ddir',
+insert_image_vspace : 'Bil fyrir ofan og ne&eth;an',
+insert_image_hspace : 'Bil til vinstri og h&aelig;gri',
+insert_image_align : 'J&ouml;fnun',
+insert_image_align_default : '-- Ekki valin --',
+insert_image_align_baseline : 'Sama l&iacute;na',
+insert_image_align_top : 'Uppi',
+insert_image_align_middle : 'Mi&eth;ja',
+insert_image_align_bottom : 'Ni&eth;ri',
+insert_image_align_texttop : 'Texti efst',
+insert_image_align_absmiddle : 'Alveg &iacute; mi&eth;ju',
+insert_image_align_absbottom : 'Alveg ne&eth;st',
+insert_image_align_left : 'Vinstri',
+insert_image_align_right : 'H&aelig;gri',
+theme_font_size : '-- Textast&aelig;r&eth; --',
+theme_fontdefault : '-- Leturger&eth; --',
+theme_block : '-- Textasni&eth; --',
+theme_paragraph : 'M&aacute;lsgrein',
+theme_div : 'Div',
+theme_address : 'Heimilisfang',
+theme_pre : 'Ritv&eacute;l',
+theme_h1 : 'Haus 1',
+theme_h2 : 'Haus 2',
+theme_h3 : 'Haus 3',
+theme_h4 : 'Haus 4',
+theme_h5 : 'Haus 5',
+theme_h6 : 'Haus 6',
+theme_colorpicker_title : 'Veldu lit',
+theme_colorpicker_apply : 'Sta&eth;festa',
+theme_forecolor_desc : 'Veldu textalit',
+theme_backcolor_desc : 'Veldu bakgrunnslit',
+theme_charmap_title : 'Veldu s&eacute;rstaf',
+theme_charmap_desc : 'Setja s&eacute;rstaf inn',
+theme_visualaid_desc : 'S&yacute;na/fela t&ouml;flur, akkeri og fleira',
+insert_anchor_title : 'Setja inn/breyta akkeri',
+insert_anchor_name : 'Heiti akkeris',
+theme_anchor_desc : 'Setja inn/breyta akkeri',
+theme_insert_link_titlefield : 'Titill',
+theme_clipboard_msg : 'Afrita/klippa/l&iacute;ma er ekki virkt &iacute; Mozilla og Firefox.\nViltu f&aacute; uppl&yacute;singar um hvernig &thorn;&uacute; getur kveikt &aacute; &thorn;eim?',
+theme_path : 'Sl&oacute;&eth;',
+cut_desc : 'Klippa',
+copy_desc : 'Afrita',
+paste_desc : 'Skeyta',
+link_list : 'Tenglalisti',
+image_list : 'Myndalisti',
+browse : 'Vafra',
+image_props_desc : 'Stillingar myndar',
+newdocument_desc : 'N&yacute;tt skjal',
+class_name : 'Class',
+newdocument : 'Ertu viss um a&eth; &thorn;&uacute; viljir hreinsa allt burtu?',
+about_title : 'Um TinyMCE',
+about : 'Um',
+license : 'Leyfi',
+plugins : 'Vi&eth;b&aelig;tur',
+plugin : 'Vi&eth;b&oacute;t',
+author : 'H&ouml;fundur',
+version : '&Uacute;tg&aacute;fa',
+loaded_plugins : 'Virkar vi&eth;b&aelig;tur',
+help : 'Hj&aacute;lp',
+not_set : '-- Ekki vali&eth; --',
+close : 'Loka',
+toolbar_focus : 'Fl&yacute;tilykill fyrir takka - Alt+Q, Fl&yacute;tilykill fyrir ritil - Alt-Z, Fl&yacute;tilykill fyrir sl&oacute;&eth; - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/it.js b/tinyMCE/themes/advanced/langs/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..af712ca58f86518b5a6f7724a2217a7b0af1ac5f
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/it.js
@@ -0,0 +1,98 @@
+/**
+ * IT lang variables
+ * 
+ * Author : Luciano Vernaschi <luciano@virgilio.it>
+ * Last Updated : Mar. 1st, 2007
+ * TinyMCE Version : 2.1.0
+ */
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stili --',
+theme_code_desc : 'Modifica codice HTML',
+theme_code_title : 'Editor HTML',
+theme_code_wordwrap : 'A capo',
+theme_sub_desc : 'Apice',
+theme_sup_desc : 'Pedice',
+theme_hr_desc : 'Inserisci riga orizzontale',
+theme_removeformat_desc : 'Rimuovi formattazione',
+theme_custom1_desc : 'La tua descrizione personalizzata',
+insert_image_border : 'Bordo',
+insert_image_dimensions : 'Dimensioni',
+insert_image_vspace : 'Spaziatura verticale',
+insert_image_hspace : 'Spaziatura orizzontale',
+insert_image_align : 'Allineamento',
+insert_image_align_default : '-- Non impostato --',
+insert_image_align_baseline : 'Alla base',
+insert_image_align_top : 'In alto',
+insert_image_align_middle : 'In mezzo',
+insert_image_align_bottom : 'In basso',
+insert_image_align_texttop : 'In alto col testo',
+insert_image_align_absmiddle : 'In mezzo (assoluto)',
+insert_image_align_absbottom : 'In basso (assoluto)',
+insert_image_align_left : 'A sinistra',
+insert_image_align_right : 'A destra',
+theme_font_size : '-- Dimensione --',
+theme_fontdefault : '-- Font --',
+theme_block : '-- Formato --',
+theme_paragraph : 'Paragrafo',
+theme_div : 'Div',
+theme_address : 'Indirizzo',
+theme_pre : 'Preformattato',
+theme_h1 : 'Intestazione 1',
+theme_h2 : 'Intestazione 2',
+theme_h3 : 'Intestazione 3',
+theme_h4 : 'Intestazione 4',
+theme_h5 : 'Intestazione 5',
+theme_h6 : 'Intestazione 6',
+theme_blockquote : 'Blockquote',
+theme_code : 'Codice',
+theme_samp : 'Esempio di codice',
+theme_dt : 'Definizione',
+theme_dd : 'Descrizione di definizione',
+theme_colorpicker_title : 'Seleziona un colore',
+theme_colorpicker_apply : 'Applica',
+theme_forecolor_desc : 'Seleziona il colore del testo',
+theme_backcolor_desc : 'Seleziona il colore di sfondo',
+theme_charmap_title : 'Seleziona un carattere personalizzato',
+theme_charmap_desc : 'Inserisci un carattere personalizzato',
+theme_visualaid_desc : 'Abilita o disabilita guide visuali',
+insert_anchor_title : 'Inserisci o modifica un\'ancora',
+insert_anchor_name : 'Nome dell\'ancora',
+theme_anchor_desc : 'Inserisci o modifica l\'ancora',
+theme_insert_link_titlefield : 'Titolo',
+theme_clipboard_msg : 'Le operazioni di taglia, copia e incolla non sono disponibili in Firefox. Vuoi ricevere ulteriori informazioni al riguardo?',
+theme_path : 'Percorso',
+cut_desc : 'Taglia',
+copy_desc : 'Copia',
+paste_desc : 'Incolla',
+link_list : 'Lista di link',
+image_list : 'Lista di immagini',
+browse : 'Sfoglia',
+image_props_desc : 'Propriet&agrave; dell\'immagine',
+newdocument_desc : 'Nuovo documento',
+class_name : 'Classe',
+newdocument : 'Sei sicuro di voler cancellare tutto?',
+about_title : 'Informazioni su TinyMCE',
+about : 'Informazioni',
+license : 'Licenza',
+plugins : 'Plugin',
+plugin : 'Plugin',
+author : 'Autore',
+version : 'Versione',
+loaded_plugins : 'Plugin caricati',
+help : 'Aiuto',
+not_set : '-- Non impostato --',
+close : 'Chiudi',
+toolbar_focus : 'Passa ai bottoni - Alt+Q, Passa all\'editor - Alt-Z, Passa al percorso - Alt-X',
+invalid_data : 'Errore: introdotti valori non validi (sono indicati in rosso).',
+more_colors : 'Pi&ugrave; colori',
+color_picker_tab : 'Selettore',
+color_picker : 'Selettore di colori',
+web_colors_tab : 'Web safe',
+web_colors : 'Colori web safe',
+named_colors_tab : 'Per nome',
+named_colors : 'Colori per nome',
+color : 'Colore:',
+color_name : 'Nome:',
+theme_advanced_anchor_delta_width : 25
+});
diff --git a/tinyMCE/themes/advanced/langs/ja.js b/tinyMCE/themes/advanced/langs/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..54b5261f1c8d12e8f101989af4bd2e1320b175db
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ja.js
@@ -0,0 +1,82 @@
+// JA lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- スタイル --',
+theme_code_desc : 'HTMLで編集する',
+theme_code_title : 'HTMLの編集',
+theme_code_wordwrap : '折り返し',
+theme_sub_desc : '下付き',
+theme_sup_desc : '上付き',
+theme_hr_desc : '水平線を挿入する',
+theme_removeformat_desc : '書式を削除する',
+theme_custom1_desc : 'Your custom description here',
+insert_image_border : 'æž ç·š',
+insert_image_dimensions : 'サイズ',
+insert_image_vspace : '垂直方向の余白',
+insert_image_hspace : '水平方向の余白',
+insert_image_align : '表示位置',
+insert_image_align_default : '-- 指定しない --',
+insert_image_align_baseline : '文字の下端に揃える',
+insert_image_align_top : '上に揃える',
+insert_image_align_middle : '中央に揃える',
+insert_image_align_bottom : '下に揃える',
+insert_image_align_texttop : '文字の上端に揃える',
+insert_image_align_absmiddle : '中央に揃える(絶対位置)',
+insert_image_align_absbottom : '下に揃える(絶対位置)',
+insert_image_align_left : '左に揃える',
+insert_image_align_right : '右に揃える',
+theme_font_size : '-- フォントサイズ --',
+theme_fontdefault : '-- フォントの種類 --',
+theme_block : '-- 書式 --',
+theme_paragraph : '標準(&lt;P&gt;)',
+theme_div : 'グループ(&lt;DIV&gt;)',
+theme_address : 'シグネチャ(&lt;ADDRESS&gt;)',
+theme_pre : '整形済み(&lt;PRE&gt;)',
+theme_h1 : '見出し1(&lt;H1&gt;)',
+theme_h2 : '見出し2(&lt;H2&gt;)',
+theme_h3 : '見出し3(&lt;H3&gt;)',
+theme_h4 : '見出し4(&lt;H4&gt;)',
+theme_h5 : '見出し5(&lt;H5&gt;)',
+theme_h6 : '見出し6(&lt;H6&gt;)',
+theme_blockquote : '引用(&lt;BLOCKQUOTE&gt;)',
+theme_code : 'コード(&lt;CODE&gt;)',
+theme_samp : 'サンプルコード(&lt;SAMP&gt;)',
+theme_dt : '定義語(&lt;DT&gt;)',
+theme_dd : '定義の説明(&lt;DD&gt;)',
+theme_colorpicker_title : '色の選択',
+theme_colorpicker_apply : '選択',
+theme_forecolor_desc : '文字色の選択',
+theme_backcolor_desc : '背景色の選択',
+theme_charmap_title : '記号の選択',
+theme_charmap_desc : '記号の挿入',
+theme_visualaid_desc : 'ガイドライン/非表示部品の表示を切り替える',
+insert_anchor_title : 'しおりの編集',
+insert_anchor_name : '名前',
+theme_anchor_desc : 'しおりの追加',
+theme_insert_link_titlefield : 'タイトル',
+theme_clipboard_msg : 'コピー/切り取り/貼り付けはMozillaまたはFirefoxでは使用できません\nこの警告に関する詳細情報を表示しますか?',
+theme_path : 'パス',
+cut_desc : '切り取り',
+copy_desc : 'コピー',
+paste_desc : '貼り付け',
+link_list : 'ハイパーリンクの一覧',
+image_list : '画像の一覧',
+browse : 'ブラウズ',
+image_props_desc : '画像のプロパティ',
+newdocument_desc : '新しい文書の作成',
+class_name : 'クラス',
+newdocument : '編集中の文書を破棄してもよろしいですか?',
+about_title : 'TinyMCEについて',
+about : 'TinyMCEについて',
+license : 'ライセンス',
+plugins : 'プラグイン',
+plugin : 'プラグイン',
+author : '作成者',
+version : 'バージョン',
+loaded_plugins : '読み込み済みのプラグイン',
+help : 'ヘルプ',
+not_set : '-- 未設定 --',
+close : '閉じる',
+toolbar_focus : 'ツールバーへ移動 - Alt+Q, エディタへ移動 - Alt-Z, エレメントパスへ移動 - Alt-X',
+invalid_data : 'エラー:正しくない値が入力されました。赤く表示してある項目を修正してください'
+});
diff --git a/tinyMCE/themes/advanced/langs/ja_euc-jp.js b/tinyMCE/themes/advanced/langs/ja_euc-jp.js
new file mode 100644
index 0000000000000000000000000000000000000000..2eb59f2bd336264d176148a1564924be5f75da9d
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ja_euc-jp.js
@@ -0,0 +1,76 @@
+// ÆüËܸì japanese EUC-Jp lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- ¥¹¥¿¥¤¥ë --',
+theme_code_desc : '¥½¡¼¥¹¤òÊÔ½¸',
+theme_code_title : 'HTML ¥½¡¼¥¹ÊÔ½¸',
+theme_code_wordwrap : '±¦Ã¼¤ÇÀÞ¤êÊÖ¤¹',
+theme_sub_desc : '²¼ÉÕ¤­',
+theme_sup_desc : '¾åÉÕ¤­',
+theme_hr_desc : '¿åÊ¿ÌÌÀþ¤òÁÞÆþ',
+theme_removeformat_desc : '¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼è¾Ã¤¹',
+theme_custom1_desc : 'ÆÈ¼«¤ÎÀâÌÀ¤¬¤³¤³',
+insert_image_border : '¥Ü¡¼¥À¡¼',
+insert_image_dimensions : 'À£Ë¡',
+insert_image_vspace : '½Ä´Ö³Ö',
+insert_image_hspace : '²£´Ö³Ö',
+insert_image_align : '·¤¨',
+insert_image_align_default : '--¥Ç¥Õ¥©¥ë¥È--',
+insert_image_align_baseline : '¥Ù¡¼¥¹¥é¥¤¥ó',
+insert_image_align_top : '¾å',
+insert_image_align_middle : 'Ãæ±û',
+insert_image_align_bottom : '²¼',
+insert_image_align_texttop : '¥Æ¥­¥¹¥È¾åÉô',
+insert_image_align_absmiddle : 'Ãæ±û (ÀäÂÐŪ)',
+insert_image_align_absbottom : '²¼Éô (ÀäÂÐŪ)',
+insert_image_align_left : 'º¸',
+insert_image_align_right : '±¦',
+theme_font_size : '-- ¥Õ¥©¥ó¥È¥µ¥¤¥º --',
+theme_fontdefault : '-- ¥Õ¥©¥ó¥È¥Õ¥¡¥ß¥ê --',
+theme_block : '--¥Õ¥©¡¼¥Þ¥Ã¥È--',
+theme_paragraph : 'ÃÊÍî',
+theme_div : 'Div',
+theme_address : '¥¢¥É¥ì¥¹',
+theme_pre : '½ñ¼°¤¢¤ê',
+theme_h1 : '¥Ø¥Ã¥À 1',
+theme_h2 : '¥Ø¥Ã¥À 2',
+theme_h3 : '¥Ø¥Ã¥À 3',
+theme_h4 : '¥Ø¥Ã¥À 4',
+theme_h5 : '¥Ø¥Ã¥À 5',
+theme_h6 : '¥Ø¥Ã¥À 6',
+theme_colorpicker_title : '¿§¤òÁªÂò',
+theme_colorpicker_apply : 'Ŭ±þ',
+theme_forecolor_desc : 'ʸ»ú¿§¤òÁªÂò',
+theme_backcolor_desc : 'ÇØ·Ê¿§¤òÁªÂò',
+theme_charmap_title : 'ÆÃ¼ìʸ»ú¤òÁªÂò',
+theme_charmap_desc : 'ÆÃ¼ìʸ»ú¤òÁÞÆþ',
+theme_visualaid_desc : '±£¤ì¤¿¥¬¥¤¥É¤ò¥È¥°¥ë',
+insert_anchor_title : '¥¢¥ó¥«¡¼¤òÁÞÆþ¡¦ÊÔ½¸',
+insert_anchor_name : '¥¢¥ó¥«¡¼Ì¾',
+theme_anchor_desc : '¥¢¥ó¥«¡¼¤òÁÞÆþ¡¦ÊÔ½¸',
+theme_insert_link_titlefield : '¥¿¥¤¥È¥ë',
+theme_clipboard_msg : '¥³¥Ô¡¼¡¢ÀÚ¤ê¼è¤ê¡¢Å½¤êÉÕ¤±¤¬Firefox¤ËÍøÍѤǤ­¤Þ¤»¤ó¡£\n¾Ü¤·¤¯¤·¤ê¤¿¤¤?',
+theme_path : '¥Ñ¡¼¥¹',
+cut_desc : 'ÀÚ¤ê¼è¤ê',
+copy_desc : '¥³¥Ô¡¼',
+paste_desc : 'ޤêÉÕ¤±',
+link_list : '¥ê¥ó¥¯¤Î¥ê¥¹¥È',
+image_list : '¥¤¥á¡¼¥¸¤Î¥ê¥¹¥È',
+browse : '¥Ö¥é¥¦¥º',
+image_props_desc : '¥¤¥á¡¼¥¸¤Î¥×¥í¥Ñ¥Æ¥£',
+newdocument_desc : '¿·µ¬',
+class_name : '¥¯¥é¥¹',
+newdocument : 'Á´¤Æ¤òºï½ü?',
+about_title : 'TinyMCE¤Ë¤Ä¤¤¤Æ',
+about : 'TinyMCE¤Ë¤Ä¤¤¤Æ',
+license : '¥é¥¤¥»¥ó¥¹',
+plugins : '¥×¥é¥°¥¤¥ó',
+plugin : '¥×¥é¥°¥¤¥ó',
+author : 'ºî¼Ô',
+version : '¥Ð¡¼¥¸¥ç¥ó',
+loaded_plugins : 'Í­¸ú¤Ê¥×¥é¥°¥¤¥ó',
+help : '¥Ø¥ë¥×',
+not_set : '-- ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤ --',
+close : 'ÊĤ¸¤ë',
+toolbar_focus : '¥Ä¡¼¥ë¤Ø - Alt+Q, ¥¨¥Ç¥£¥¿¡¼¤Ø - Alt-Z, ¥Ñ¥¹¤Ø - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/ja_shift_jis.js b/tinyMCE/themes/advanced/langs/ja_shift_jis.js
new file mode 100644
index 0000000000000000000000000000000000000000..2d8e484cb18f28d177c73c8e6244f40f70395ba5
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ja_shift_jis.js
@@ -0,0 +1,76 @@
+// “ú–{Œê japanese ƒVƒtƒgJIS lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- ƒXƒ^ƒCƒ‹ --',
+theme_code_desc : 'ƒ\[ƒX‚ð•ҏW',
+theme_code_title : 'HTML ƒ\[ƒX•ҏW',
+theme_code_wordwrap : '‰E’[‚Ő܂è•Ô‚·',
+theme_sub_desc : '‰º•t‚«',
+theme_sup_desc : 'ã•t‚«',
+theme_hr_desc : '…•½–ʐü‚ð‘}“ü',
+theme_removeformat_desc : 'ƒtƒH[ƒ}ƒbƒg‚ðŽæÁ‚·',
+theme_custom1_desc : '“ÆŽ©‚Ìà–¾‚ª‚±‚±',
+insert_image_border : 'ƒ{[ƒ_[',
+insert_image_dimensions : '¡–@',
+insert_image_vspace : 'cŠÔŠu',
+insert_image_hspace : '‰¡ŠÔŠu',
+insert_image_align : '‘µ‚¦',
+insert_image_align_default : '--ƒfƒtƒHƒ‹ƒg--',
+insert_image_align_baseline : 'ƒx[ƒXƒ‰ƒCƒ“',
+insert_image_align_top : 'ã',
+insert_image_align_middle : '’†‰›',
+insert_image_align_bottom : '‰º',
+insert_image_align_texttop : 'ƒeƒLƒXƒgã•”',
+insert_image_align_absmiddle : '’†‰› (â‘ΓI)',
+insert_image_align_absbottom : '‰º•” (â‘ΓI)',
+insert_image_align_left : '¶',
+insert_image_align_right : '‰E',
+theme_font_size : '-- ƒtƒHƒ“ƒgƒTƒCƒY --',
+theme_fontdefault : '-- ƒtƒHƒ“ƒgƒtƒ@ƒ~ƒŠ --',
+theme_block : '--ƒtƒH[ƒ}ƒbƒg--',
+theme_paragraph : '’i—Ž',
+theme_div : 'Div',
+theme_address : 'ƒAƒhƒŒƒX',
+theme_pre : '‘Ž®‚ ‚è',
+theme_h1 : 'ƒwƒbƒ_ 1',
+theme_h2 : 'ƒwƒbƒ_ 2',
+theme_h3 : 'ƒwƒbƒ_ 3',
+theme_h4 : 'ƒwƒbƒ_ 4',
+theme_h5 : 'ƒwƒbƒ_ 5',
+theme_h6 : 'ƒwƒbƒ_ 6',
+theme_colorpicker_title : 'F‚ð‘I‘ð',
+theme_colorpicker_apply : '“K‰ž',
+theme_forecolor_desc : '•¶ŽšF‚ð‘I‘ð',
+theme_backcolor_desc : '”wŒiF‚ð‘I‘ð',
+theme_charmap_title : '“ÁŽê•¶Žš‚ð‘I‘ð',
+theme_charmap_desc : '“ÁŽê•¶Žš‚ð‘}“ü',
+theme_visualaid_desc : '‰B‚ꂽƒKƒCƒh‚ðƒgƒOƒ‹',
+insert_anchor_title : 'ƒAƒ“ƒJ[‚ð‘}“üE•ҏW',
+insert_anchor_name : 'ƒAƒ“ƒJ[–¼',
+theme_anchor_desc : 'ƒAƒ“ƒJ[‚ð‘}“üE•ҏW',
+theme_insert_link_titlefield : 'ƒ^ƒCƒgƒ‹',
+theme_clipboard_msg : 'ƒRƒs[AØ‚èŽæ‚èA“\‚è•t‚¯‚ªFirefox‚É—˜—p‚Å‚«‚Ü‚¹‚ñB\nÚ‚µ‚­‚µ‚肽‚¢?',
+theme_path : 'ƒp[ƒX',
+cut_desc : 'Ø‚èŽæ‚è',
+copy_desc : 'ƒRƒs[',
+paste_desc : '“\‚è•t‚¯',
+link_list : 'ƒŠƒ“ƒN‚ÌƒŠƒXƒg',
+image_list : 'ƒCƒ[ƒW‚ÌƒŠƒXƒg',
+browse : 'ƒuƒ‰ƒEƒY',
+image_props_desc : 'ƒCƒ[ƒW‚̃vƒƒpƒeƒB',
+newdocument_desc : 'V‹K',
+class_name : 'ƒNƒ‰ƒX',
+newdocument : '‘S‚Ä‚ðíœ?',
+about_title : 'TinyMCE‚ɂ‚¢‚Ä',
+about : 'TinyMCE‚ɂ‚¢‚Ä',
+license : 'ƒ‰ƒCƒZƒ“ƒX',
+plugins : 'ƒvƒ‰ƒOƒCƒ“',
+plugin : 'ƒvƒ‰ƒOƒCƒ“',
+author : 'ìŽÒ',
+version : 'ƒo[ƒWƒ‡ƒ“',
+loaded_plugins : '—LŒø‚ȃvƒ‰ƒOƒCƒ“',
+help : 'ƒwƒ‹ƒv',
+not_set : '-- Ý’肳‚ê‚Ä‚¢‚È‚¢ --',
+close : '•‚¶‚é',
+toolbar_focus : 'ƒc[ƒ‹‚Ö - Alt+Q, ƒGƒfƒBƒ^[‚Ö - Alt-Z, ƒpƒX‚Ö - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/ja_utf-8.js b/tinyMCE/themes/advanced/langs/ja_utf-8.js
new file mode 100644
index 0000000000000000000000000000000000000000..d8a092d8388f011e4516b6e80d0439f864dddbb8
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ja_utf-8.js
@@ -0,0 +1,76 @@
+// 日本語 japanese utf-8 lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- スタイル --',
+theme_code_desc : 'ソースを編集',
+theme_code_title : 'HTML ソース編集',
+theme_code_wordwrap : '右端で折り返す',
+theme_sub_desc : '下付き',
+theme_sup_desc : '上付き',
+theme_hr_desc : '水平面線を挿入',
+theme_removeformat_desc : 'フォーマットを取消す',
+theme_custom1_desc : '独自の説明がここ',
+insert_image_border : 'ボーダー',
+insert_image_dimensions : '寸法',
+insert_image_vspace : '縦間隔',
+insert_image_hspace : '横間隔',
+insert_image_align : '揃え',
+insert_image_align_default : '--デフォルト--',
+insert_image_align_baseline : 'ベースライン',
+insert_image_align_top : '上',
+insert_image_align_middle : '中央',
+insert_image_align_bottom : '下',
+insert_image_align_texttop : 'テキスト上部',
+insert_image_align_absmiddle : '中央 (絶対的)',
+insert_image_align_absbottom : '下部 (絶対的)',
+insert_image_align_left : 'å·¦',
+insert_image_align_right : '右',
+theme_font_size : '-- フォントサイズ --',
+theme_fontdefault : '-- フォントファミリ --',
+theme_block : '--フォーマット--',
+theme_paragraph : '段落',
+theme_div : 'Div',
+theme_address : 'アドレス',
+theme_pre : '書式あり',
+theme_h1 : 'ヘッダ 1',
+theme_h2 : 'ヘッダ 2',
+theme_h3 : 'ヘッダ 3',
+theme_h4 : 'ヘッダ 4',
+theme_h5 : 'ヘッダ 5',
+theme_h6 : 'ヘッダ 6',
+theme_colorpicker_title : '色を選択',
+theme_colorpicker_apply : '適応',
+theme_forecolor_desc : '文字色を選択',
+theme_backcolor_desc : '背景色を選択',
+theme_charmap_title : '特殊文字を選択',
+theme_charmap_desc : '特殊文字を挿入',
+theme_visualaid_desc : '隠れたガイドをトグル',
+insert_anchor_title : 'アンカーを挿入・編集',
+insert_anchor_name : 'アンカー名',
+theme_anchor_desc : 'アンカーを挿入・編集',
+theme_insert_link_titlefield : 'タイトル',
+theme_clipboard_msg : 'コピー、切り取り、貼り付けがFirefoxに利用できません。\n詳しくしりたい?',
+theme_path : 'パース',
+cut_desc : '切り取り',
+copy_desc : 'コピー',
+paste_desc : '貼り付け',
+link_list : 'リンクのリスト',
+image_list : 'イメージのリスト',
+browse : 'ブラウズ',
+image_props_desc : 'イメージのプロパティ',
+newdocument_desc : '新規',
+class_name : 'クラス',
+newdocument : '全てを削除?',
+about_title : 'TinyMCEについて',
+about : 'TinyMCEについて',
+license : 'ライセンス',
+plugins : 'プラグイン',
+plugin : 'プラグイン',
+author : '作者',
+version : 'バージョン',
+loaded_plugins : '有効なプラグイン',
+help : 'ヘルプ',
+not_set : '-- 設定されていない --',
+close : '閉じる',
+toolbar_focus : 'ツールへ - Alt+Q, エディターへ - Alt-Z, パスへ - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/ko.js b/tinyMCE/themes/advanced/langs/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..cff48a8e662f6096f97ca068b840a411b340aadc
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ko.js
@@ -0,0 +1,65 @@
+// KO lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '½º&Aring;¸ÀÏ',
+theme_code_desc : 'HTML ¼Ò½º °í&Auml;¡±â',
+theme_code_title : 'HTML ¼Ò½º ÆíÁý±â',
+theme_code_wordwrap : 'Word wrap',
+theme_code_save : 'ÀúÀ&aring;',
+theme_sub_desc : '¾Æ·¡Ã·ÀÚ',
+theme_sup_desc : 'À§Ã·ÀÚ',
+theme_hr_desc : '°¡·ÎÁÙ ³&Ouml;±â',
+theme_removeformat_desc : '¼Ó¼º Á&ouml;¿ì±â',
+theme_custom1_desc : 'Your custom description here',
+insert_image_border : '&Aring;׵θ®',
+insert_image_dimensions : '&Aring;©±â',
+insert_image_vspace : '¼¼·Î ¿©¹é',
+insert_image_hspace : '°¡·Î ¿©¹é',
+insert_image_align : 'Á¤·&Auml;',
+insert_image_align_default : '±âº»°ª',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Top',
+insert_image_align_middle : 'Middle',
+insert_image_align_bottom : 'Bottom',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Absolute Middle',
+insert_image_align_absbottom : 'Absolute Bottom',
+insert_image_align_left : 'Left',
+insert_image_align_right : 'Right',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : '´Ü¶ô',
+theme_div : 'Div',
+theme_address : 'Á&Ouml;¼Ò',
+theme_pre : '¼­½&Auml; À&Ouml;À½',
+theme_h1 : 'Á¦¸ñ 1',
+theme_h2 : 'Á¦¸ñ 2',
+theme_h3 : 'Á¦¸ñ 3',
+theme_h4 : 'Á¦¸ñ 4',
+theme_h5 : 'Á¦¸ñ 5',
+theme_h6 : 'Á¦¸ñ 6',
+theme_colorpicker_title : '»&ouml;»ó ¼±&Aring;Ã',
+theme_colorpicker_apply : 'Àû¿ë',
+theme_forecolor_desc : '±ÛÀÚ »&ouml;»ó',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Select custom character',
+theme_charmap_desc : 'Insert custom character',
+theme_visualaid_desc : 'Toggle guidelines/invisible elements',
+insert_anchor_title : '¾Þ&Auml;¿ ³&Ouml;±â/°í&Auml;¡±â',
+insert_anchor_name : '¾Þ&Auml;¿ À̸§',
+theme_anchor_desc : '¾Þ&Auml;¿ ³&Ouml;±â/°í&Auml;¡±â',
+theme_insert_link_titlefield : 'Á¦¸ñ',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : '&Aring;¬·¡½º',
+newdocument : 'Are you sure you want clear all contents?'
+});
diff --git a/tinyMCE/themes/advanced/langs/nb.js b/tinyMCE/themes/advanced/langs/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..9dd4311a2dde9343340cd8fac6bfbaca3da904ab
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/nb.js
@@ -0,0 +1,77 @@
+// nb = Norwegian (bokm&aring;l) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Stiler',
+theme_code_desc : 'Redigere HTML Koden',
+theme_code_title : 'HTML Kildekode Redigering',
+theme_code_wordwrap : 'Ord deling',
+theme_sub_desc : 'Nedsenket skrift',
+theme_sup_desc : 'Opph&oslash;yd skrift',
+theme_hr_desc : 'Sett inn horisontal linje',
+theme_removeformat_desc : 'Fjern formatering',
+theme_custom1_desc : 'Din spesialfunksjons beskrivelse her',
+insert_image_border : 'Ramme',
+insert_image_dimensions : 'Dimensjoner',
+insert_image_vspace : 'Vertikalt tomrom',
+insert_image_hspace : 'Horisontalt tomrom',
+insert_image_align : 'Justering',
+insert_image_align_default : 'Intet',
+insert_image_align_baseline : 'Bunnlinjen',
+insert_image_align_top : 'Lengst opp',
+insert_image_align_middle : 'Midten',
+insert_image_align_bottom : 'Lengst ned',
+insert_image_align_texttop : 'Tekstens topp',
+insert_image_align_absmiddle : 'Absolutt midten',
+insert_image_align_absbottom : 'Absolutt lengst ned',
+insert_image_align_left : 'Venstre',
+insert_image_align_right : 'H&oslash;yre',
+insert_image_delta_width : 30,
+insert_image_delta_height : 10,
+theme_font_size : '-- Font st&oslash;rrelse --',
+theme_fontdefault : '-- Font familie --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraf',
+theme_div : 'Div',
+theme_address : 'Adresse',
+theme_pre : 'Pre-formattert',
+theme_h1 : 'Overskrift 1',
+theme_h2 : 'Overskrift 2',
+theme_h3 : 'Overskrift 3',
+theme_h4 : 'Overskrift 4',
+theme_h5 : 'Overskrift 5',
+theme_h6 : 'Overskrift 6',
+theme_colorpicker_title : 'Velg en farge',
+theme_colorpicker_apply : 'Bruk',
+theme_forecolor_desc : 'Velg forgrunnsfarge',
+theme_backcolor_desc : 'Velg bakgrunnsfarge',
+theme_charmap_title : 'Velg spesialtegn',
+theme_charmap_desc : 'Sett inn spesialtegn',
+theme_visualaid_desc : 'Sl&aring; av/p&aring; usynlige elementer',
+insert_anchor_title : 'Opprette/endre anker',
+insert_anchor_name : 'Ankernavn',
+theme_anchor_desc : 'Opprette/endre anker',
+theme_insert_link_titlefield : 'Tittel',
+theme_clipboard_msg : 'Kopier/Klipp ut/Lim inn er ikke tilgjengelig i Mozilla/Firefox.\nVil du ha mere informasjon om dette?',
+theme_path : 'S&oslash;kevei',
+cut_desc : 'Klipp ut',
+copy_desc : 'Kopier',
+paste_desc : 'Lim inn',
+link_list : 'Lenke liste',
+image_list : 'Bilde liste',
+browse : 'Bla gjennom',
+image_props_desc : 'Bilde egenskaper',
+newdocument_desc : 'Nytt dokument',
+class_name : 'Stil',
+newdocument : 'Er du sikker p&aring; at du vil t&oslash;mme hele redigeringsomr&aring;det?',
+about_title : 'Om TinyMCE',
+about : 'Om',
+license : 'Lisens',
+plugins : 'Innstikksprogrammer',
+plugin : 'Innstikksprogram',
+author : 'Utviklere',
+version : 'Versjon',
+loaded_plugins : 'Lastet innstikksprogram',
+help : 'Hjelp',
+not_set : '-- Ikke satt --',
+close : 'Stopp'
+});
diff --git a/tinyMCE/themes/advanced/langs/nl.js b/tinyMCE/themes/advanced/langs/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..bad5922dbb85f5c2eb26b21954b8bced25613011
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/nl.js
@@ -0,0 +1,76 @@
+// NL lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stijlen --',
+theme_code_desc : 'HTML bron bewerken',
+theme_code_title : 'HTML code-editor',
+theme_code_wordwrap : 'Terugloop',
+theme_sub_desc : 'Subscript',
+theme_sup_desc : 'Superscript',
+theme_hr_desc : 'Horizontale lijn invoegen',
+theme_removeformat_desc : 'Opmaak verwijderen',
+theme_custom1_desc : 'Tik hier een omschrijving',
+insert_image_border : 'Rand',
+insert_image_dimensions : 'Afmetingen',
+insert_image_vspace : 'Verticale marge',
+insert_image_hspace : 'Horizontale marge',
+insert_image_align : 'Uitlijning',
+insert_image_align_default : '-- geen --',
+insert_image_align_baseline : 'Basislijn',
+insert_image_align_top : 'Boven',
+insert_image_align_middle : 'Midden',
+insert_image_align_bottom : 'Onder',
+insert_image_align_texttop : 'Bovenkant tekst',
+insert_image_align_absmiddle : 'Absoluut midden',
+insert_image_align_absbottom : 'Absoluut onder',
+insert_image_align_left : 'Links',
+insert_image_align_right : 'Rechts',
+theme_font_size : '-- Lettergrootte --',
+theme_fontdefault : '-- Lettertype --',
+theme_block : '-- Paragraaf --',
+theme_paragraph : 'Paragraaf',
+theme_div : 'Blok',
+theme_address : 'Adres',
+theme_pre : 'Opgemaakt',
+theme_h1 : 'Kop 1',
+theme_h2 : 'Kop 2',
+theme_h3 : 'Kop 3',
+theme_h4 : 'Kop 4',
+theme_h5 : 'Kop 5',
+theme_h6 : 'Kop 6',
+theme_colorpicker_title : 'Selecteer een kleur',
+theme_colorpicker_apply : 'Toepassen',
+theme_forecolor_desc : 'Een tekstkleur selecteren',
+theme_backcolor_desc : 'Een achtergrondkleur selecteren',
+theme_charmap_title : 'Speciale tekens invoegen',
+theme_charmap_desc : 'Speciale tekens invoegen',
+theme_visualaid_desc : 'Onzichtbare elementen en hulplijnen aan/uit',
+insert_anchor_title : 'Bladwijzer invoegen/bewerken',
+insert_anchor_name : 'Bladwijzer naam',
+theme_anchor_desc : 'Bladwijzer invoegen/bewerken',
+theme_insert_link_titlefield : 'titel',
+theme_clipboard_msg : 'Kopi&euml;ren/Knippen/Plakken is uit veiligheidsoverwegingen niet direct beschikbaar in Mozilla en Firefox.\nWilt u meer informatie over deze kwestie?',
+theme_path : 'Pad',
+cut_desc : 'Knippen',
+copy_desc : 'Kopiëren',
+paste_desc : 'Plakken',
+link_list : 'Hyperlinklijst',
+image_list : 'Afbeeldinglijst',
+browse : 'Bladeren',
+image_props_desc : 'Eigenschappen van afbeelding',
+newdocument_desc : 'Nieuw document',
+class_name : 'Stijl',
+newdocument : 'Weet u zeker dat u de hele inhoud wilt wissen?',
+about_title : 'Over TinyMCE',
+about : 'Over',
+license : 'Licentie',
+plugins : 'Plugins',
+plugin : 'Plugin',
+author : 'Author',
+version : 'Versie',
+loaded_plugins : 'Ingeladen plugins',
+help : 'Help',
+not_set : '-- geen --',
+close : 'Sluiten',
+toolbar_focus : 'Ga naar werkbalk knoppen - Alt+Q, Ga naar editor - Alt-Z, Ga naar pad - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/nn.js b/tinyMCE/themes/advanced/langs/nn.js
new file mode 100644
index 0000000000000000000000000000000000000000..720982fbaa17e274cad90870cd4589e0d38b8309
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/nn.js
@@ -0,0 +1,77 @@
+// nn = Norwegian (nynorsk) lang variables by Knut B. Jacobsen
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Stiler',
+theme_code_desc : 'Redigere HTML Koden',
+theme_code_title : 'HTML Kildekode Redigering',
+theme_code_wordwrap : 'Ord deling',
+theme_sub_desc : 'Nedsenket skrift',
+theme_sup_desc : 'Opph&oslash;gd skrift',
+theme_hr_desc : 'Sett inn horisontal linje',
+theme_removeformat_desc : 'Fjern formatering',
+theme_custom1_desc : 'Din spesialfunksjons beskrivelse her',
+insert_image_border : 'Ramme',
+insert_image_dimensions : 'Dimensjoner',
+insert_image_vspace : 'Vertikalt tomrom',
+insert_image_hspace : 'Horisontalt tomrom',
+insert_image_align : 'Justering',
+insert_image_align_default : 'Intet',
+insert_image_align_baseline : 'Bunnlinjen',
+insert_image_align_top : 'Lengst opp',
+insert_image_align_middle : 'Midten',
+insert_image_align_bottom : 'Lengst ned',
+insert_image_align_texttop : 'Tekstens topp',
+insert_image_align_absmiddle : 'Absolutt midten',
+insert_image_align_absbottom : 'Absolutt lengst ned',
+insert_image_align_left : 'Venstre',
+insert_image_align_right : 'H&oslash;gre',
+insert_image_delta_width : 30,
+insert_image_delta_height : 10,
+theme_font_size : '-- Font st&oslash;rrelse --',
+theme_fontdefault : '-- Font familie --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraf',
+theme_div : 'Div',
+theme_address : 'Adresse',
+theme_pre : 'Pre-formattert',
+theme_h1 : 'Overskrift 1',
+theme_h2 : 'Overskrift 2',
+theme_h3 : 'Overskrift 3',
+theme_h4 : 'Overskrift 4',
+theme_h5 : 'Overskrift 5',
+theme_h6 : 'Overskrift 6',
+theme_colorpicker_title : 'Velg en farge',
+theme_colorpicker_apply : 'Bruk',
+theme_forecolor_desc : 'Velg forgrunnsfarge',
+theme_backcolor_desc : 'Velg bakgrunnsfarge',
+theme_charmap_title : 'Velg spesialtegn',
+theme_charmap_desc : 'Sett inn spesialtegn',
+theme_visualaid_desc : 'Sl&aring; av/p&aring; usynlige elementer',
+insert_anchor_title : 'Opprette/endre anker',
+insert_anchor_name : 'Ankernavn',
+theme_anchor_desc : 'Opprette/endre anker',
+theme_insert_link_titlefield : 'Tittel',
+theme_clipboard_msg : 'Kopier/Klipp ut/Lim inn er ikke tilgjengelig i Mozilla/Firefox.\nVil du ha mere informasjon om dette?',
+theme_path : 'S&oslash;kevei',
+cut_desc : 'Klipp ut',
+copy_desc : 'Kopier',
+paste_desc : 'Lim inn',
+link_list : 'Lenke liste',
+image_list : 'Bilde liste',
+browse : 'Bla gjennom',
+image_props_desc : 'Bilde egenskaper',
+newdocument_desc : 'Nytt dokument',
+class_name : 'Stil',
+newdocument : 'Er du sikker p&aring; at du vil t&oslash;mme hele redigeringsomr&aring;det?',
+about_title : 'Om TinyMCE',
+about : 'Om',
+license : 'Lisens',
+plugins : 'Innstikksprogrammer',
+plugin : 'Innstikksprogram',
+author : 'Utviklere',
+version : 'Versjon',
+loaded_plugins : 'Lastet innstikksprogram',
+help : 'Hjelp',
+not_set : '-- Ikkje satt --',
+close : 'Stopp'
+});
diff --git a/tinyMCE/themes/advanced/langs/pl.js b/tinyMCE/themes/advanced/langs/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..d5421afd2ee5a9a1495cb1fb318650b2716a7b21
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/pl.js
@@ -0,0 +1,79 @@
+// PL lang variables
+// fixed by Wooya
+// http://www.mfusion.prv.pl
+// fixed by lemiel 14.11.2005
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Styl',
+theme_code_desc : 'Edytuj zróddło html',
+theme_code_title : 'Edytor zródła html',
+theme_code_wordwrap : 'Zawijanie wierszy',
+theme_sub_desc : 'Nadpisywanie',
+theme_sup_desc : 'Podpisywanie',
+theme_hr_desc : 'Wstaw poziomÄ… liniÄ™',
+theme_removeformat_desc : 'Usuń formatowanie',
+theme_custom1_desc : 'Wstaw własny opis',
+insert_image_border : 'Ramka',
+insert_image_dimensions : 'Wymiary',
+insert_image_vspace : 'Pionowy odstęp',
+insert_image_hspace : 'Poziomy odstęp',
+insert_image_align : 'Otaczanie',
+insert_image_align_default : 'Domyślne',
+insert_image_align_baseline : 'Do linii bazowej',
+insert_image_align_top : 'Górne',
+insert_image_align_middle : '¦rodkowe',
+insert_image_align_bottom : 'Dolne',
+insert_image_align_texttop : 'Tekst powyżej',
+insert_image_align_absmiddle : 'Absolutny środek',
+insert_image_align_absbottom : 'Absolutny dół',
+insert_image_align_left : 'Lewe',
+insert_image_align_right : 'Prawe',
+theme_font_size : '-- Rozmiar czcionki --',
+theme_fontdefault : '-- Rodzina czcionki --',
+theme_block : '-- Format --',
+theme_paragraph : '-- Paragraf --',
+theme_div : 'Div',
+theme_address : 'Adres',
+theme_pre : 'Preformatowanie',
+theme_h1 : 'Nagłówek 1',
+theme_h2 : 'Nagłówek 2',
+theme_h3 : 'Nagłówek 3',
+theme_h4 : 'Nagłówek 4',
+theme_h5 : 'Nagłówek 5',
+theme_h6 : 'Nagłówek 6',
+theme_colorpicker_title : 'Wybierz kolor',
+theme_colorpicker_apply : 'Wybierz',
+theme_forecolor_desc : 'Wybierz kolor tekstu',
+theme_backcolor_desc : 'Wybierz kolor tła',
+theme_charmap_title : 'Wybierz znak',
+theme_charmap_desc : 'Wstaw znak',
+theme_visualaid_desc : 'Przełącz linie prowadzące/niewidoczne elementy',
+insert_anchor_title : 'Kotwica',
+insert_anchor_name : 'Nazwa kotwicy',
+theme_anchor_desc : 'Wstaw/Edytuj kotwicÄ™',
+theme_insert_link_titlefield : 'Tytuł',
+theme_clipboard_msg : 'Kopiuj/Edytuj/Wklej nie jest dostępne w przeglądarkach Mozilla i Firefox.\nPotrzebujesz więcej informacji na ten temat?',
+theme_path : 'Ścieżka',
+cut_desc : 'Wytnij',
+copy_desc : 'Kopiuj',
+paste_desc : 'Wklej',
+link_list : 'Lista linków',
+image_list : 'Lista obrazków',
+browse : 'PrzeglÄ…daj',
+image_props_desc : 'Właściwosci obrazka',
+newdocument_desc : 'Nowy dokument',
+class_name : 'Klasa',
+newdocument : 'Czy jesteś pewien, że chcesz wyczyścić zawartość tego dokumentu?',
+about_title : 'O TinyMCE ...',
+about : 'O ...',
+license : 'Licencja',
+plugins : 'Pluginy',
+plugin : 'Plugin',
+author : 'Autor',
+version : 'Wersja',
+loaded_plugins : 'Załadowane pluginy',
+help : 'Pomoc',
+not_set : '-- Nie wybrano --',
+close : 'Zamknij',
+toolbar_focus : 'Skocz do przycisków narzędzi - Alt+Q, Skocz do edytora - Alt-Z, Skocz do ścieżki elementu - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/pt_br.js b/tinyMCE/themes/advanced/langs/pt_br.js
new file mode 100644
index 0000000000000000000000000000000000000000..2eb233ec9323a7b0a61c0dfc6fe8146bbc0f640a
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/pt_br.js
@@ -0,0 +1,100 @@
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Author
+ * Revision and modifications:
+ *           Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4
+ * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8
+ */
+tinyMCE.addToLang('',{
+theme_style_select : 'Estilos',
+theme_code_desc : 'Editar código HTML',
+theme_code_title : 'Editor de código HTML',
+theme_code_wordwrap : 'Quebrar linhas',
+theme_sub_desc : 'Subscrito',
+theme_sup_desc : 'Sobrescrito',
+theme_hr_desc : 'Inserir linha horizontal',
+theme_removeformat_desc : 'Remover formatação',
+theme_custom1_desc : 'Sua descrição personalizada aqui',
+insert_image_border : 'Borda',
+insert_image_dimensions : 'Dimensões',
+insert_image_vspace : 'Espaço vertical',
+insert_image_hspace : 'Espaço horizontal',
+insert_image_align : 'Alinhamento',
+insert_image_align_default : 'Padrão',
+insert_image_align_baseline : 'Linha base',
+insert_image_align_top : 'Topo',
+insert_image_align_middle : 'Centro',
+insert_image_align_bottom : 'Fundo',
+insert_image_align_texttop : 'Texto ao topo',
+insert_image_align_absmiddle : 'Centro absoluto',
+insert_image_align_absbottom : 'Fundo absoluto',
+insert_image_align_left : 'Esquerda',
+insert_image_align_right : 'Direita',
+theme_font_size : '-- Tamanho --',
+theme_fontdefault : '-- Tipo de fonte --',
+theme_block : '-- Formato --',
+theme_paragraph : 'Parágrafo',
+theme_div : 'Div',
+theme_address : 'Endereço',
+theme_pre : 'Pré-formatado',
+theme_h1 : 'Cabeçalho 1',
+theme_h2 : 'Cabeçalho 2',
+theme_h3 : 'Cabeçalho 3',
+theme_h4 : 'Cabeçalho 4',
+theme_h5 : 'Cabeçalho 5',
+theme_h6 : 'Cabeçalho 6',
+theme_blockquote : 'Blockquote',
+theme_code : 'Code',
+theme_samp : 'Code sample',
+theme_dt : 'Definition term ',
+theme_dd : 'Definition description',
+theme_colorpicker_title : 'Selecionar cor',
+theme_colorpicker_apply : 'Aplicar',
+theme_forecolor_desc : 'Selecionar cor do texto',
+theme_backcolor_desc : 'Selecionar cor de fundo',
+theme_charmap_title : 'Selecionar caracter especial',
+theme_charmap_desc : 'Inserir caracter especial',
+theme_visualaid_desc : 'Trocar as linhas de ajuda por elementos invisíveis',
+insert_anchor_title : 'Inserir/editar âncora',
+insert_anchor_name : 'Nome da âncora',
+theme_anchor_desc : 'Inserir/editar âncora',
+theme_insert_link_titlefield : 'Título',
+theme_clipboard_msg : 'Não se pode utilizar os comandos de copiar/recortar/colar no Mozilla e Firefox.\r\nUse o teclado para copiar(Ctrl+C)/ cortar(Ctrl+X)/ colar(Ctrl+V)\r\nQuer obter mais informação?',
+theme_path : 'Caminho',
+cut_desc : 'Recortar (Ctrl+X)',
+copy_desc : 'Copiar (Ctrl+C)',
+paste_desc : 'Colar (Ctrl+V)',
+link_list : 'Lista de links',
+image_list : 'Lista de imagens',
+browse : 'Navegar',
+image_props_desc : 'Propriedades da imagem',
+newdocument_desc : 'Novo documento',
+class_name : 'Classe',
+newdocument : 'Tem certeza que deseja apagar todo o conteúdo?',
+about_title : 'Sobre o TinyMCE',
+about : 'Sobre',
+license : 'Licença',
+plugins : 'Plugins',
+plugin : 'Plugin',
+author : 'Autor',
+version : 'Versão',
+loaded_plugins : 'Plugins carregados',
+help : 'Ajuda',
+not_set : '-- Por padrão --',
+close : 'Fechar',
+toolbar_focus : 'Ir para a barra de ferramentas(Alt+Q), Ir para o editor(Alt+Z), Ir para o elemento de destino(Alt+X)',
+invalid_data : 'Erro: há valores inválidos e estão marcados em vermelho.',
+more_colors : 'Mais cores',
+color_picker_tab : 'Conta-gota',
+color_picker : 'Conta-gota',
+web_colors_tab : 'Web segura',
+web_colors : 'Cores web segura',
+named_colors_tab : 'Nomeadas',
+named_colors : 'Cores nomeadas',
+color : 'Cor:',
+color_name : 'Nome:',
+theme_advanced_anchor_delta_width : 20
+});
diff --git a/tinyMCE/themes/advanced/langs/ro.js b/tinyMCE/themes/advanced/langs/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..6467ec6c70cddf6b7ff8f9b461260975fba381b7
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ro.js
@@ -0,0 +1,76 @@
+// RO lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stiluri --',
+theme_code_desc : 'Editare surs&#259; HTML',
+theme_code_title : 'Editor surs&#259; HTML',
+theme_code_wordwrap : 'T&#259;iere cuvinte',
+theme_sub_desc : 'Subscript',
+theme_sup_desc : 'Superscript',
+theme_hr_desc : 'Inserare rigl&#259; orizontal&#259;',
+theme_removeformat_desc : 'Elimin&#259; formatarea',
+theme_custom1_desc : 'Descrierea personalizat&#259; aici',
+insert_image_border : 'Margine',
+insert_image_dimensions : 'Dimensiuni',
+insert_image_vspace : 'Spa&#355;iu vertical',
+insert_image_hspace : 'Spa&#355;iu orizontal',
+insert_image_align : 'Aliniament',
+insert_image_align_default : '-- Nestabilit --',
+insert_image_align_baseline : 'Linie de baz&#259;',
+insert_image_align_top : 'Sus',
+insert_image_align_middle : 'Mijloc',
+insert_image_align_bottom : 'Jos',
+insert_image_align_texttop : 'TextSus',
+insert_image_align_absmiddle : 'Mijloc absolut',
+insert_image_align_absbottom : 'Jos absolut',
+insert_image_align_left : 'St&#226;nga',
+insert_image_align_right : 'Dreapta',
+theme_font_size : '-- Dimensiune font --',
+theme_fontdefault : '-- Familie font --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraf',
+theme_div : 'Div',
+theme_address : 'Adres&#259;',
+theme_pre : 'Preformatat',
+theme_h1 : 'Aliniament 1',
+theme_h2 : 'Aliniament 2',
+theme_h3 : 'Aliniament 3',
+theme_h4 : 'Aliniament 4',
+theme_h5 : 'Aliniament 5',
+theme_h6 : 'Aliniament 6',
+theme_colorpicker_title : 'Alege o culoare',
+theme_colorpicker_apply : 'Aplic&#259;',
+theme_forecolor_desc : 'Alege culoarea textului',
+theme_backcolor_desc : 'Alege culoarea fundalului',
+theme_charmap_title : 'Alege caractere personalizate',
+theme_charmap_desc : 'Insereaz&#259; caracter personalizat',
+theme_visualaid_desc : 'Comut&#259; ghidajele/elementele invizibile',
+insert_anchor_title : 'Insereaz&#259;/editeaz&#259; ancor&#259;',
+insert_anchor_name : 'Nume ancor&#259;',
+theme_anchor_desc : 'Insereaz&#259;/editeaz&#259; ancor&#259;',
+theme_insert_link_titlefield : 'Titlu',
+theme_clipboard_msg : 'Copierea/T&#259;ierea/Lipirea nu sunt disponibile &#238;n Mozilla &#351;i Firefox.\nVrei mai multe informa&#355;ii despre acest lucru?',
+theme_path : 'Cale',
+cut_desc : 'Taie',
+copy_desc : 'Copiaz&#259;',
+paste_desc : 'Lipe&#351;te',
+link_list : 'List&#259; de leg&#259;turi',
+image_list : 'List&#259; de imagini',
+browse : 'R&#259;sfoie&#351;te',
+image_props_desc : 'Propriet&#259;&#355;i imagine',
+newdocument_desc : 'Document nou',
+class_name : 'Clas&#259;',
+newdocument : 'E&#351;ti sigur c&#259; vrei s&#259; cure&#355;i &#238;ntregul con&#355;inut?',
+about_title : 'Despre TinyMCE',
+about : 'Despre',
+license : 'Licen&#355;&#259;',
+plugins : 'Plugin-uri',
+plugin : 'Plugin',
+author : 'Autor',
+version : 'Versiune',
+loaded_plugins : 'Plugin-uri &#238;nc&#259;rcate',
+help : 'Ajutor',
+not_set : '-- Nestabilit --',
+close : '&#206;nchide',
+toolbar_focus : 'Salt la butoanele unelte - Alt+Q, Salt la editor - Alt-Z, Salt la cale elemente - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/ru.js b/tinyMCE/themes/advanced/langs/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..1eae587448b0d674dd81028fe8bf4f89ad328971
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ru.js
@@ -0,0 +1,90 @@
+// Russian lang variables cp1251
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Стили --',
+theme_code_desc : 'Редактировать HTML коды',
+theme_code_title : 'Редактор HTML кодов',
+theme_code_wordwrap : 'Перенос по словам',
+theme_sub_desc : 'Нижний индекс',
+theme_sup_desc : 'Верхний индекс',
+theme_hr_desc : 'Вставить горизонтальный разделитель',
+theme_removeformat_desc : 'Убрать форматирование',
+theme_custom1_desc : 'Ваше произвольное описание',
+insert_image_border : 'Рамка',
+insert_image_dimensions : 'Размеры',
+insert_image_vspace : 'Вертикальный отступ',
+insert_image_hspace : 'Горизонтальный отступ',
+insert_image_align : 'Выравнивание',
+insert_image_align_default : '-- Не задано --',
+insert_image_align_baseline : 'По базовой линии',
+insert_image_align_top : 'По верху',
+insert_image_align_middle : 'Посредине',
+insert_image_align_bottom : 'По низу',
+insert_image_align_texttop : 'По верху текста',
+insert_image_align_absmiddle : 'Абсолютно посредине',
+insert_image_align_absbottom : 'Абсолютно сверху',
+insert_image_align_left : 'Влево',
+insert_image_align_right : 'Вправо',
+theme_font_size : '-- Размер шрифта --',
+theme_fontdefault : '-- Семейство шрифтов --',
+theme_block : '-- Формат --',
+theme_paragraph : 'Абзац',
+theme_div : 'Div',
+theme_address : 'Стиль адреса',
+theme_pre : ':`Предварительно форматированный',
+theme_h1 : 'Заголовок 1',
+theme_h2 : 'Заголовок 2',
+theme_h3 : 'Заголовок 3',
+theme_h4 : 'Заголовок 4',
+theme_h5 : 'Заголовок 5',
+theme_h6 : 'Заголовок 6',
+theme_blockquote : 'Цитата',
+theme_samp : 'Образец кода',
+theme_dt : 'Термин ',
+theme_dd : 'Определение термина',
+ttheme_colorpicker_title : 'Выбрать цвет',
+theme_colorpicker_apply : 'Применить',
+theme_forecolor_desc : 'Выбрать цвет текста',
+theme_backcolor_desc : 'Выбрать цвет фона',
+theme_charmap_title : 'Выбор произвольного символа',
+theme_charmap_desc : 'Вставить произвольный символ',
+theme_visualaid_desc : 'Показать границы скрытых элементов',
+insert_anchor_title : 'Вставить/редактировать якорь',
+insert_anchor_name : 'Имя якоря',
+theme_anchor_desc : 'Вставить/редактировать якорь',
+theme_insert_link_titlefield : 'Заголовок',
+theme_clipboard_msg : 'Копировать/Вырезать/Вставить недоступны для Mozilla и Firefox.\nХотите узнать об этом подробнее?',
+theme_path : 'Путь',
+cut_desc : 'Вырезать',
+copy_desc : 'Копировать',
+paste_desc : 'Вставить',
+link_list : 'Перечень ссылок',
+image_list : 'Перечень картинок',
+browse : 'Подобрать',
+image_props_desc : 'Свойства картинки',
+newdocument_desc : 'Новый документ',
+class_name : 'Класс',
+newdocument : 'Вы уверены, что хотите очистить всё содержимое?',
+about_title : 'О TinyMCE',
+about : 'О TinyMCE',
+license : 'Лицензия',
+plugins : 'Плагины',
+plugin : 'Плагин',
+author : 'Автор',
+version : 'Версия',
+loaded_plugins : 'Загруженные плагины',
+help : 'Помощь',
+not_set : '-- не установлено --',
+close : 'Закрыть',
+toolbar_focus : 'Переместить фокус на панель инструментов - Alt+Q, Переместить фокус в редактор - Alt-Z, Переместить фокус на элемент пути - Alt-X',
+invalid_data : 'Ошибка: Введены некорректные значения, они помечены красным.',
+more_colors : 'Еще цвета',
+color_picker_tab : 'Выбор',
+color_picker : 'Выбор цветов',
+web_colors_tab : 'Для веб',
+web_colors : 'Цвета для веб',
+named_colors_tab : 'Названия',
+named_colors : 'Названия цветов',
+color : 'Цвет:',
+color_name : 'Название:'
+});
diff --git a/tinyMCE/themes/advanced/langs/ru_CP1251.js b/tinyMCE/themes/advanced/langs/ru_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..115bd2b930c506903a5c67e4623d4f4048102912
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ru_CP1251.js
@@ -0,0 +1,90 @@
+// Russian lang variables cp1251
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Ñòèëè --',
+theme_code_desc : 'Ðåäàêòèðîâàòü HTML êîäû',
+theme_code_title : 'Ðåäàêòîð HTML êîäîâ',
+theme_code_wordwrap : 'Ïåðåíîñ ïî ñëîâàì',
+theme_sub_desc : 'Íèæíèé èíäåêñ',
+theme_sup_desc : 'Âåðõíèé èíäåêñ',
+theme_hr_desc : 'Âñòàâèòü ãîðèçîíòàëüíûé ðàçäåëèòåëü',
+theme_removeformat_desc : 'Óáðàòü ôîðìàòèðîâàíèå',
+theme_custom1_desc : 'Âàøå ïðîèçâîëüíîå îïèñàíèå',
+insert_image_border : 'Ðàìêà',
+insert_image_dimensions : 'Ðàçìåðû',
+insert_image_vspace : 'Âåðòèêàëüíûé îòñòóï',
+insert_image_hspace : 'Ãîðèçîíòàëüíûé îòñòóï',
+insert_image_align : 'Âûðàâíèâàíèå',
+insert_image_align_default : '-- Íå çàäàíî --',
+insert_image_align_baseline : 'Ïî áàçîâîé ëèíèè',
+insert_image_align_top : 'Ïî âåðõó',
+insert_image_align_middle : 'Ïîñðåäèíå',
+insert_image_align_bottom : 'Ïî íèçó',
+insert_image_align_texttop : 'Ïî âåðõó òåêñòà',
+insert_image_align_absmiddle : 'Àáñîëþòíî ïîñðåäèíå',
+insert_image_align_absbottom : 'Àáñîëþòíî ñâåðõó',
+insert_image_align_left : 'Âëåâî',
+insert_image_align_right : 'Âïðàâî',
+theme_font_size : '-- Ðàçìåð øðèôòà --',
+theme_fontdefault : '-- Ñåìåéñòâî øðèôòîâ --',
+theme_block : '-- Ôîðìàò --',
+theme_paragraph : 'Àáçàö',
+theme_div : 'Div',
+theme_address : 'Ñòèëü àäðåñà',
+theme_pre : ':`Ïðåäâàðèòåëüíî ôîðìàòèðîâàííûé',
+theme_h1 : 'Çàãîëîâîê 1',
+theme_h2 : 'Çàãîëîâîê 2',
+theme_h3 : 'Çàãîëîâîê 3',
+theme_h4 : 'Çàãîëîâîê 4',
+theme_h5 : 'Çàãîëîâîê 5',
+theme_h6 : 'Çàãîëîâîê 6',
+theme_blockquote : 'Öèòàòà',
+theme_samp : 'Îáðàçåö êîäà',
+theme_dt : 'Òåðìèí ',
+theme_dd : 'Îïðåäåëåíèå òåðìèíà',
+ttheme_colorpicker_title : 'Âûáðàòü öâåò',
+theme_colorpicker_apply : 'Ïðèìåíèòü',
+theme_forecolor_desc : 'Âûáðàòü öâåò òåêñòà',
+theme_backcolor_desc : 'Âûáðàòü öâåò ôîíà',
+theme_charmap_title : 'Âûáîð ïðîèçâîëüíîãî ñèìâîëà',
+theme_charmap_desc : 'Âñòàâèòü ïðîèçâîëüíûé ñèìâîë',
+theme_visualaid_desc : 'Ïîêàçàòü ãðàíèöû ñêðûòûõ ýëåìåíòîâ',
+insert_anchor_title : 'Âñòàâèòü/ðåäàêòèðîâàòü ÿêîðü',
+insert_anchor_name : 'Èìÿ ÿêîðÿ',
+theme_anchor_desc : 'Âñòàâèòü/ðåäàêòèðîâàòü ÿêîðü',
+theme_insert_link_titlefield : 'Çàãîëîâîê',
+theme_clipboard_msg : 'Êîïèðîâàòü/Âûðåçàòü/Âñòàâèòü íåäîñòóïíû äëÿ Mozilla è Firefox.\nÕîòèòå óçíàòü îá ýòîì ïîäðîáíåå?',
+theme_path : 'Ïóòü',
+cut_desc : 'Âûðåçàòü',
+copy_desc : 'Êîïèðîâàòü',
+paste_desc : 'Âñòàâèòü',
+link_list : 'Ïåðå÷åíü ññûëîê',
+image_list : 'Ïåðå÷åíü êàðòèíîê',
+browse : 'Ïîäîáðàòü',
+image_props_desc : 'Ñâîéñòâà êàðòèíêè',
+newdocument_desc : 'Íîâûé äîêóìåíò',
+class_name : 'Êëàññ',
+newdocument : 'Âû óâåðåíû, ÷òî õîòèòå î÷èñòèòü âñ¸ ñîäåðæèìîå?',
+about_title : 'Î TinyMCE',
+about : 'Î TinyMCE',
+license : 'Ëèöåíçèÿ',
+plugins : 'Ïëàãèíû',
+plugin : 'Ïëàãèí',
+author : 'Àâòîð',
+version : 'Âåðñèÿ',
+loaded_plugins : 'Çàãðóæåííûå ïëàãèíû',
+help : 'Ïîìîùü',
+not_set : '-- íå óñòàíîâëåíî --',
+close : 'Çàêðûòü',
+toolbar_focus : 'Ïåðåìåñòèòü ôîêóñ íà ïàíåëü èíñòðóìåíòîâ - Alt+Q, Ïåðåìåñòèòü ôîêóñ â ðåäàêòîð - Alt-Z, Ïåðåìåñòèòü ôîêóñ íà ýëåìåíò ïóòè - Alt-X',
+invalid_data : 'Îøèáêà: Ââåäåíû íåêîððåêòíûå çíà÷åíèÿ, îíè ïîìå÷åíû êðàñíûì.',
+more_colors : 'Åùå öâåòà',
+color_picker_tab : 'Âûáîð',
+color_picker : 'Âûáîð öâåòîâ',
+web_colors_tab : 'Äëÿ âåá',
+web_colors : 'Öâåòà äëÿ âåá',
+named_colors_tab : 'Íàçâàíèÿ',
+named_colors : 'Íàçâàíèÿ öâåòîâ',
+color : 'Öâåò:',
+color_name : 'Íàçâàíèå:'
+});
diff --git a/tinyMCE/themes/advanced/langs/ru_KOI8-R.js b/tinyMCE/themes/advanced/langs/ru_KOI8-R.js
new file mode 100644
index 0000000000000000000000000000000000000000..e48e466763ceef21b7fb5b502629b575554a203d
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/ru_KOI8-R.js
@@ -0,0 +1,90 @@
+// Russian lang variables cp1251
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- óÔÉÌÉ --',
+theme_code_desc : 'òÅÄÁËÔÉÒÏ×ÁÔØ HTML ËÏÄÙ',
+theme_code_title : 'òÅÄÁËÔÏÒ HTML ËÏÄÏ×',
+theme_code_wordwrap : 'ðÅÒÅÎÏÓ ÐÏ ÓÌÏ×ÁÍ',
+theme_sub_desc : 'îÉÖÎÉÊ ÉÎÄÅËÓ',
+theme_sup_desc : '÷ÅÒÈÎÉÊ ÉÎÄÅËÓ',
+theme_hr_desc : '÷ÓÔÁ×ÉÔØ ÇÏÒÉÚÏÎÔÁÌØÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ',
+theme_removeformat_desc : 'õÂÒÁÔØ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÅ',
+theme_custom1_desc : '÷ÁÛÅ ÐÒÏÉÚ×ÏÌØÎÏÅ ÏÐÉÓÁÎÉÅ',
+insert_image_border : 'òÁÍËÁ',
+insert_image_dimensions : 'òÁÚÍÅÒÙ',
+insert_image_vspace : '÷ÅÒÔÉËÁÌØÎÙÊ ÏÔÓÔÕÐ',
+insert_image_hspace : 'çÏÒÉÚÏÎÔÁÌØÎÙÊ ÏÔÓÔÕÐ',
+insert_image_align : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ',
+insert_image_align_default : '-- îÅ ÚÁÄÁÎÏ --',
+insert_image_align_baseline : 'ðÏ ÂÁÚÏ×ÏÊ ÌÉÎÉÉ',
+insert_image_align_top : 'ðÏ ×ÅÒÈÕ',
+insert_image_align_middle : 'ðÏÓÒÅÄÉÎÅ',
+insert_image_align_bottom : 'ðÏ ÎÉÚÕ',
+insert_image_align_texttop : 'ðÏ ×ÅÒÈÕ ÔÅËÓÔÁ',
+insert_image_align_absmiddle : 'áÂÓÏÌÀÔÎÏ ÐÏÓÒÅÄÉÎÅ',
+insert_image_align_absbottom : 'áÂÓÏÌÀÔÎÏ Ó×ÅÒÈÕ',
+insert_image_align_left : '÷ÌÅ×Ï',
+insert_image_align_right : '÷ÐÒÁ×Ï',
+theme_font_size : '-- òÁÚÍÅÒ ÛÒÉÆÔÁ --',
+theme_fontdefault : '-- óÅÍÅÊÓÔ×Ï ÛÒÉÆÔÏ× --',
+theme_block : '-- æÏÒÍÁÔ --',
+theme_paragraph : 'áÂÚÁÃ',
+theme_div : 'Div',
+theme_address : 'óÔÉÌØ ÁÄÒÅÓÁ',
+theme_pre : ':`ðÒÅÄ×ÁÒÉÔÅÌØÎÏ ÆÏÒÍÁÔÉÒÏ×ÁÎÎÙÊ',
+theme_h1 : 'úÁÇÏÌÏ×ÏË 1',
+theme_h2 : 'úÁÇÏÌÏ×ÏË 2',
+theme_h3 : 'úÁÇÏÌÏ×ÏË 3',
+theme_h4 : 'úÁÇÏÌÏ×ÏË 4',
+theme_h5 : 'úÁÇÏÌÏ×ÏË 5',
+theme_h6 : 'úÁÇÏÌÏ×ÏË 6',
+theme_blockquote : 'ãÉÔÁÔÁ',
+theme_samp : 'ïÂÒÁÚÅà ËÏÄÁ',
+theme_dt : 'ôÅÒÍÉÎ ',
+theme_dd : 'ïÐÒÅÄÅÌÅÎÉÅ ÔÅÒÍÉÎÁ',
+ttheme_colorpicker_title : '÷ÙÂÒÁÔØ Ã×ÅÔ',
+theme_colorpicker_apply : 'ðÒÉÍÅÎÉÔØ',
+theme_forecolor_desc : '÷ÙÂÒÁÔØ Ã×ÅÔ ÔÅËÓÔÁ',
+theme_backcolor_desc : '÷ÙÂÒÁÔØ Ã×ÅÔ ÆÏÎÁ',
+theme_charmap_title : '÷ÙÂÏÒ ÐÒÏÉÚ×ÏÌØÎÏÇÏ ÓÉÍ×ÏÌÁ',
+theme_charmap_desc : '÷ÓÔÁ×ÉÔØ ÐÒÏÉÚ×ÏÌØÎÙÊ ÓÉÍ×ÏÌ',
+theme_visualaid_desc : 'ðÏËÁÚÁÔØ ÇÒÁÎÉÃÙ ÓËÒÙÔÙÈ ÜÌÅÍÅÎÔÏ×',
+insert_anchor_title : '÷ÓÔÁ×ÉÔØ/ÒÅÄÁËÔÉÒÏ×ÁÔØ ÑËÏÒØ',
+insert_anchor_name : 'éÍÑ ÑËÏÒÑ',
+theme_anchor_desc : '÷ÓÔÁ×ÉÔØ/ÒÅÄÁËÔÉÒÏ×ÁÔØ ÑËÏÒØ',
+theme_insert_link_titlefield : 'úÁÇÏÌÏ×ÏË',
+theme_clipboard_msg : 'ëÏÐÉÒÏ×ÁÔØ/÷ÙÒÅÚÁÔØ/÷ÓÔÁ×ÉÔØ ÎÅÄÏÓÔÕÐÎÙ ÄÌÑ Mozilla É Firefox.\nèÏÔÉÔÅ ÕÚÎÁÔØ Ï ÜÔÏÍ ÐÏÄÒÏÂÎÅÅ?',
+theme_path : 'ðÕÔØ',
+cut_desc : '÷ÙÒÅÚÁÔØ',
+copy_desc : 'ëÏÐÉÒÏ×ÁÔØ',
+paste_desc : '÷ÓÔÁ×ÉÔØ',
+link_list : 'ðÅÒÅÞÅÎØ ÓÓÙÌÏË',
+image_list : 'ðÅÒÅÞÅÎØ ËÁÒÔÉÎÏË',
+browse : 'ðÏÄÏÂÒÁÔØ',
+image_props_desc : 'ó×ÏÊÓÔ×Á ËÁÒÔÉÎËÉ',
+newdocument_desc : 'îÏ×ÙÊ ÄÏËÕÍÅÎÔ',
+class_name : 'ëÌÁÓÓ',
+newdocument : '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÏÞÉÓÔÉÔØ ×Ó£ ÓÏÄÅÒÖÉÍÏÅ?',
+about_title : 'ï TinyMCE',
+about : 'ï TinyMCE',
+license : 'ìÉÃÅÎÚÉÑ',
+plugins : 'ðÌÁÇÉÎÙ',
+plugin : 'ðÌÁÇÉÎ',
+author : 'á×ÔÏÒ',
+version : '÷ÅÒÓÉÑ',
+loaded_plugins : 'úÁÇÒÕÖÅÎÎÙÅ ÐÌÁÇÉÎÙ',
+help : 'ðÏÍÏÝØ',
+not_set : '-- ÎÅ ÕÓÔÁÎÏ×ÌÅÎÏ --',
+close : 'úÁËÒÙÔØ',
+toolbar_focus : 'ðÅÒÅÍÅÓÔÉÔØ ÆÏËÕÓ ÎÁ ÐÁÎÅÌØ ÉÎÓÔÒÕÍÅÎÔÏ× - Alt+Q, ðÅÒÅÍÅÓÔÉÔØ ÆÏËÕÓ × ÒÅÄÁËÔÏÒ - Alt-Z, ðÅÒÅÍÅÓÔÉÔØ ÆÏËÕÓ ÎÁ ÜÌÅÍÅÎÔ ÐÕÔÉ - Alt-X',
+invalid_data : 'ïÛÉÂËÁ: ÷×ÅÄÅÎÙ ÎÅËÏÒÒÅËÔÎÙÅ ÚÎÁÞÅÎÉÑ, ÏÎÉ ÐÏÍÅÞÅÎÙ ËÒÁÓÎÙÍ.',
+more_colors : 'åÝÅ Ã×ÅÔÁ',
+color_picker_tab : '÷ÙÂÏÒ',
+color_picker : '÷ÙÂÏÒ Ã×ÅÔÏ×',
+web_colors_tab : 'äÌÑ ×ÅÂ',
+web_colors : 'ã×ÅÔÁ ÄÌÑ ×ÅÂ',
+named_colors_tab : 'îÁÚ×ÁÎÉÑ',
+named_colors : 'îÁÚ×ÁÎÉÑ Ã×ÅÔÏ×',
+color : 'ã×ÅÔ:',
+color_name : 'îÁÚ×ÁÎÉÅ:'
+});
diff --git a/tinyMCE/themes/advanced/langs/si.js b/tinyMCE/themes/advanced/langs/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..6daa6f51b2b193ae5799ca6e0f06b72325851b14
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/si.js
@@ -0,0 +1,76 @@
+// SI lang variables ISO-8859-2
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stili --',
+theme_code_desc : 'Uredi HTML kodo',
+theme_code_title : 'Urejevalnik HTML kode',
+theme_code_wordwrap : 'Odre&#382;i vrstice',
+theme_sub_desc : 'Podpisano',
+theme_sup_desc : 'Nadpisano',
+theme_hr_desc : 'Vstavi vodoravno &#269;rto',
+theme_removeformat_desc : 'Odstrani oblikovanje',
+theme_custom1_desc : 'Va&#353; opis',
+insert_image_border : 'Okvir',
+insert_image_dimensions : 'Dimenzije',
+insert_image_vspace : 'Vertikalni razmak',
+insert_image_hspace : 'Horizontalni razmak',
+insert_image_align : 'Poravnava',
+insert_image_align_default : '-- Brez --',
+insert_image_align_baseline : 'Ob osnovni &#269;rti',
+insert_image_align_top : 'Na vrh',
+insert_image_align_middle : 'Na sredo',
+insert_image_align_bottom : 'Na dno',
+insert_image_align_texttop : 'Na vrh besedila',
+insert_image_align_absmiddle : 'Absolutna sredina',
+insert_image_align_absbottom : 'Absolutno dno',
+insert_image_align_left : 'Levo',
+insert_image_align_right : 'Desno',
+theme_font_size : '-- Velikost pisave --',
+theme_fontdefault : '-- Pisava --',
+theme_block : '-- Format --',
+theme_paragraph : 'Odstavek',
+theme_div : 'Div',
+theme_address : 'Naslov',
+theme_pre : 'Oblikovano besedilo',
+theme_h1 : 'Naslov 1',
+theme_h2 : 'Naslov 2',
+theme_h3 : 'Naslov 3',
+theme_h4 : 'Naslov 4',
+theme_h5 : 'Naslov 5',
+theme_h6 : 'Naslov 6',
+theme_colorpicker_title : 'Izberite barvo',
+theme_colorpicker_apply : 'Uporabi',
+theme_forecolor_desc : 'Izberite barvo pisave',
+theme_backcolor_desc : 'Izberite barvo ozadja',
+theme_charmap_title : 'Izberite poseben znak',
+theme_charmap_desc : 'Vstavi poseben znak',
+theme_visualaid_desc : 'Prika&#382;i/skrij skrite elemente',
+insert_anchor_title : 'Vstavi/uredi povezavo',
+insert_anchor_name : 'Ime povezave',
+theme_anchor_desc : 'Vstavi/uredi povezavo',
+theme_insert_link_titlefield : 'Naslov',
+theme_clipboard_msg : 'Kopiraj/Izre&#382;i/Prilepi ni na voljo v brskalnikih Mozilla in Firefox.\nAli &#382;elite ve&#269; informacij glede tega?',
+theme_path : 'Pot',
+cut_desc : 'Izre&#382;i',
+copy_desc : 'Kopiraj',
+paste_desc : 'Prilepi',
+link_list : 'Seznam povezav',
+image_list : 'Seznam slik',
+browse : 'Prebrskaj',
+image_props_desc : 'Lastnosti slike',
+newdocument_desc : 'Nov dokument',
+class_name : 'Razred',
+newdocument : 'Ali ste prepri&#269;ani, da &#382;elite zbrisati vso vsebino?',
+about_title : 'O urejevalniku TinyMCE',
+about : 'O urejevalniku',
+license : 'Licenca',
+plugins : 'Vti&#269;niki',
+plugin : 'Vti&#269;nik',
+author : 'Avtor',
+version : 'Razli&#269;ica',
+loaded_plugins : 'Nalo&#382;eni vti&#269;niki',
+help : 'Pomo&#269;',
+not_set : '-- Ni nastavljeno --',
+close : 'Zapri',
+toolbar_focus : 'Skok na orodne gumbe - Alt+Q, Skok na urejevalnik - Alt-Z, Skok na pot elementa - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/sk.js b/tinyMCE/themes/advanced/langs/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9a5de2fc6532fd8c898da804ed9d0021c42b777
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/sk.js
@@ -0,0 +1,72 @@
+/**
+ * Slovak lang variables 
+ * encoding: utf-8
+ * 
+ * @author Vladimir VASIL vvasil@post.sk
+ *    
+ * $Id: sk.js,v 1.1 2005/11/22 20:56:45 spocke Exp $ 
+ */  
+
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Štýly',
+theme_code_desc : 'Zobraziť HTML',
+theme_code_title : 'Editácia HTML',
+theme_code_wordwrap : 'Bez delení slov',
+theme_sub_desc : 'Dolný index',
+theme_sup_desc : 'Horný index',
+theme_hr_desc : 'Vložiť vodorovný oddeľovač',
+theme_removeformat_desc : 'Zrušiť formátovanie',
+theme_custom1_desc : 'Ľubovolný popisok',
+insert_image_border : 'Rámček',
+insert_image_dimensions : 'Rozmery',
+insert_image_vspace : 'Vertikálný okraj',
+insert_image_hspace : 'Horizontálný okraj',
+insert_image_align : 'Zarovnánie',
+insert_image_align_default : 'Výchozi',
+insert_image_align_baseline : 'Na čiare',
+insert_image_align_top : 'Nahor',
+insert_image_align_middle : 'Na stred',
+insert_image_align_bottom : 'Dole',
+insert_image_align_texttop : 'Najvyšší bod textu',
+insert_image_align_absmiddle : 'Stred riadku',
+insert_image_align_absbottom : 'Spodok riadku',
+insert_image_align_left : 'Vľavo',
+insert_image_align_right : 'Vpravo',
+theme_font_size : '-- Veľkosť textu --',
+theme_fontdefault : '-- Písmo --',
+theme_block : '-- Formát --',
+theme_paragraph : 'Odstavec',
+theme_div : 'Div',
+theme_address : 'Adresa',
+theme_pre : 'Predformát',
+theme_h1 : 'Nadpis 1',
+theme_h2 : 'Nadpis 2',
+theme_h3 : 'Nadpis 3',
+theme_h4 : 'Nadpis 4',
+theme_h5 : 'Nadpis 5',
+theme_h6 : 'Nadpis 6',
+theme_colorpicker_title : 'Výber farby',
+theme_colorpicker_apply : 'Vybrať',
+theme_forecolor_desc : 'Farba popredia',
+theme_backcolor_desc : 'Farba pozadia',
+theme_charmap_title : 'Výber znaku',
+theme_charmap_desc : 'Vložiť znak',
+theme_visualaid_desc : 'Zapnúť značky/neviditeľné prvky',
+insert_anchor_title : 'Vloženie/editácia záložky',
+insert_anchor_name : 'Názov',
+theme_anchor_desc : 'Vložiť/editovať záložku',
+theme_insert_link_titlefield : 'Názov',
+theme_clipboard_msg : 'Funkcie Kopírovať/vystrihnúť/vložiť niesú použiteľné v Mozille a Firefoxe.\nChcete viac informacií o tomto probléme?',
+theme_path : 'Cesta',
+cut_desc : 'Vystrihnúť',
+copy_desc : 'Kopírovať',
+paste_desc : 'Vložiť',
+link_list : 'Zoznam',
+image_list : 'Zoznam',
+browse : 'Prechádzať',
+image_props_desc : 'Vlastnosti obrázku',
+newdocument_desc : 'Nový dokument',
+newdocument : 'Ste si istý(á), že chcete vymazať všetok obsah?'
+});
+
diff --git a/tinyMCE/themes/advanced/langs/sq.js b/tinyMCE/themes/advanced/langs/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..40710c62eafc7e800e1b3c099877ddfa8895347f
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/sq.js
@@ -0,0 +1,81 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stilet --',
+theme_code_desc : 'Ndrysho kodin HTML',
+theme_code_title : 'Ndryshues i kodit HTML',
+theme_code_wordwrap : 'Shko sipas fjales',
+theme_sub_desc : 'Nenshkrim',
+theme_sup_desc : 'Mbishkrim',
+theme_hr_desc : 'Nderfut vizore horizontale',
+theme_removeformat_desc : 'Hiq formatimin',
+theme_custom1_desc : 'Pershkrimi juaj ketu',
+insert_image_border : 'Kufiri',
+insert_image_dimensions : 'Dimensionet',
+insert_image_vspace : 'Hapesira vertikale',
+insert_image_hspace : 'Hapesira horizontal',
+insert_image_align : 'Perngjitja',
+insert_image_align_default : '-- I pacaktuar --',
+insert_image_align_baseline : 'Linja baze',
+insert_image_align_top : 'Siper',
+insert_image_align_middle : 'Mes',
+insert_image_align_bottom : 'Poshte',
+insert_image_align_texttop : 'Mbi Tekst',
+insert_image_align_absmiddle : 'Mesi Absolut',
+insert_image_align_absbottom : 'Poshte Absolut',
+insert_image_align_left : 'Majtas',
+insert_image_align_right : 'Djathas',
+theme_font_size : '-- Madhesia e fontit --',
+theme_fontdefault : '-- Familja e fonteve --',
+theme_block : '-- Formati --',
+theme_paragraph : 'Paragrafi',
+theme_div : 'Divizion',
+theme_address : 'Adresa',
+theme_pre : 'Para-formatuar',
+theme_h1 : 'Koke 1',
+theme_h2 : 'Koke 2',
+theme_h3 : 'Koke 3',
+theme_h4 : 'Koke 4',
+theme_h5 : 'Koke 5',
+theme_h6 : 'Koke 6',
+theme_blockquote : 'Thonjez',
+theme_code : 'Kod',
+theme_samp : 'Shembull Kodi',
+theme_dt : 'Term i percaktimit',
+theme_dd : 'Pershkrim i percaktimit',
+theme_colorpicker_title : 'Zgjidh nje ngjyre',
+theme_colorpicker_apply : 'Apliko',
+theme_forecolor_desc : 'Zgjidh nje ngjyre teksti',
+theme_backcolor_desc : 'Zgjidh nje ngjyre sfondi',
+theme_charmap_title : 'Zgjidh nje karakter special',
+theme_charmap_desc : 'Nderfut nje karakter special',
+theme_visualaid_desc : 'Cakto vizat drejtuese/elemntet e padukshem',
+insert_anchor_title : 'Nderfut/ndrysho caktues',
+insert_anchor_name : 'Emri i caktuesit',
+theme_anchor_desc : 'Nderfut/ndrysho caktues',
+theme_insert_link_titlefield : 'Titulli',
+theme_clipboard_msg : '?',
+theme_path : 'Rruga',
+cut_desc : 'Prij',
+copy_desc : 'Kopjo',
+paste_desc : 'Ngjit',
+link_list : 'Liste lidhjesh',
+image_list : 'Liste imazhesh',
+browse : 'Kerko',
+image_props_desc : 'Te dhenat e imazhit',
+newdocument_desc : 'Dokument i ri',
+class_name : 'Klasa',
+newdocument : 'Jeni i sigurte se doni ta pastroni permbajtjen?',
+about_title : 'Rreth TinyMCE',
+about : 'Rreth',
+license : 'Liçensa',
+plugins : 'Pluginet',
+plugin : 'Plugin',
+author : 'Autori',
+version : 'Versioni',
+loaded_plugins : 'Pluginet e ngarkuara',
+help : 'Ndihme',
+not_set : '-- i pa caktuar --',
+close : 'Mbyll',
+toolbar_focus : 'Kerce tek butonat - Alt+Q, kerce tek ndryshuesi - Alt-Z, Kerce tek ruga e elementeve - Alt-X'
+});
\ No newline at end of file
diff --git a/tinyMCE/themes/advanced/langs/sr.js b/tinyMCE/themes/advanced/langs/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5ad57779277d14fa3d49ac3cd3e8dd2090f05b5
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/sr.js
@@ -0,0 +1,81 @@
+// Serbian (SR) lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stilovi --',
+theme_code_desc : 'Promena HTML Koda',
+theme_code_title : 'HTML Kod Editor',
+theme_code_wordwrap : 'Prelamanje teksta',
+theme_sub_desc : 'Subscript',
+theme_sup_desc : 'Superscript',
+theme_hr_desc : 'Ubacivanje horizontalnog lenjira',
+theme_removeformat_desc : 'Brisanje formatiranja',
+theme_custom1_desc : 'Vaš opis ovde',
+insert_image_border : 'Okvir',
+insert_image_dimensions : 'Dimenzije',
+insert_image_vspace : 'Vertikalni prostor',
+insert_image_hspace : 'Horizontalni prostor',
+insert_image_align : 'Poravnanje',
+insert_image_align_default : '-- Nije podešeno --',
+insert_image_align_baseline : 'Donja linija',
+insert_image_align_top : 'Vrh',
+insert_image_align_middle : 'Sredina',
+insert_image_align_bottom : 'Dno',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Apsolutna sredina',
+insert_image_align_absbottom : 'Apsolutno dno',
+insert_image_align_left : 'Levo',
+insert_image_align_right : 'Desno',
+theme_font_size : '-- Veličina fonta --',
+theme_fontdefault : '-- Font familija --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraf',
+theme_div : 'Div',
+theme_address : 'Adresa',
+theme_pre : 'Preformatirano',
+theme_h1 : 'Heading 1',
+theme_h2 : 'Heading 2',
+theme_h3 : 'Heading 3',
+theme_h4 : 'Heading 4',
+theme_h5 : 'Heading 5',
+theme_h6 : 'Heading 6',
+theme_blockquote : 'Blockquote',
+theme_code : 'Kod',
+theme_samp : 'Kod primer',
+theme_dt : 'Izraz za definiciju ',
+theme_dd : 'Opis definicije',
+theme_colorpicker_title : 'Izaberite boju',
+theme_colorpicker_apply : 'Primena',
+theme_forecolor_desc : 'Odaberite boju teksta',
+theme_backcolor_desc : 'Odaberite pozadinsku boju',
+theme_charmap_title : 'Odaberite proizvoljni karakter',
+theme_charmap_desc : 'Ubacite proizvoljni karakter',
+theme_visualaid_desc : 'Linije vodilje/nevidljivi elementi',
+insert_anchor_title : 'Ubacite/promenite link',
+insert_anchor_name : 'Ime linka',
+theme_anchor_desc : 'Ubacite/promenite link',
+theme_insert_link_titlefield : 'Naslov',
+theme_clipboard_msg : 'Copy/Cut/Paste nije moguće u Mozilli and Firefox-u.\nDa li želite više informacija o ovoj temi?',
+theme_path : 'Putanja',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Lista linkova',
+image_list : 'Lista slika',
+browse : 'Pronadjite',
+image_props_desc : 'Parametri slike',
+newdocument_desc : 'Novi dokument',
+class_name : 'Class',
+newdocument : 'Da li ste sigurno da želite da izbrišete sav sadržaj?',
+about_title : 'O TinyMCE editoru',
+about : 'O editoru',
+license : 'Licenca',
+plugins : 'Pluginovi',
+plugin : 'Plugin',
+author : 'Autor',
+version : 'Verzija',
+loaded_plugins : 'Učitani pluginovi',
+help : 'Pomoć',
+not_set : '-- Nije podešeno --',
+close : 'Zatvaranje',
+toolbar_focus : 'Skok na dugmad za alate - Alt+Q, Skok na editor - Alt-Z, Skok na putanju elementa - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/sv.js b/tinyMCE/themes/advanced/langs/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..43754f8d3218e162895d239d6b7893c6202447bc
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/sv.js
@@ -0,0 +1,77 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stilar --',
+theme_code_desc : 'Editera HTML-koden',
+theme_code_title : 'HTML-källkodseditor',
+theme_code_wordwrap : 'Automatiskt radbyte',
+theme_sub_desc : 'Nedsänkt text',
+theme_sup_desc : 'Upphöjd text',
+theme_hr_desc : 'Sätt in horisontell linje',
+theme_removeformat_desc : 'Ta bort formatering',
+theme_custom1_desc : 'Din specialbeskriving här',
+insert_image_border : 'Ram',
+insert_image_dimensions : 'Dimensioner',
+insert_image_vspace : 'Vertikalt tomrum',
+insert_image_hspace : 'Horisontellt tomrum',
+insert_image_align : 'Justering',
+insert_image_align_default : 'Ingen',
+insert_image_align_baseline : 'Bottenlinjen',
+insert_image_align_top : 'Längst upp',
+insert_image_align_middle : 'Mitten',
+insert_image_align_bottom : 'Längst ner',
+insert_image_align_texttop : 'Textens top',
+insert_image_align_absmiddle : 'Absoluta mitten',
+insert_image_align_absbottom : 'Absolut längst ner',
+insert_image_align_left : 'Vänster',
+insert_image_align_right : 'Höger',
+insert_image_delta_width : 30,
+insert_image_delta_height : 10,
+theme_font_size : '-- Fontstorlek --',
+theme_fontdefault : '-- Font familj --',
+theme_block : '-- Stycke --',
+theme_paragraph : 'Paragraf',
+theme_div : 'Div',
+theme_address : 'Adress',
+theme_pre : 'Förformatterad',
+theme_h1 : 'Rubrik 1',
+theme_h2 : 'Rubrik 2',
+theme_h3 : 'Rubrik 3',
+theme_h4 : 'Rubrik 4',
+theme_h5 : 'Rubrik 5',
+theme_h6 : 'Rubrik 6',
+theme_colorpicker_title : 'Välj en färg',
+theme_colorpicker_apply : 'Verkställ',
+theme_forecolor_desc : 'Välj förgrundsfärg',
+theme_backcolor_desc : 'Välj bakgrundsfärg',
+theme_charmap_title : 'Välj specialtecken',
+theme_charmap_desc : 'Sätt in specialtecken',
+theme_visualaid_desc : 'Slå av/på osynliga element',
+insert_anchor_title : 'Skapa/redigera ankare',
+insert_anchor_name : 'Ankarnamn',
+theme_anchor_desc : 'Skapa/redigera ankare',
+theme_insert_link_titlefield : 'Titel',
+theme_clipboard_msg : 'Klipp ut/Kopiera/Klistra in fungerar inte Mozilla och Firefox. Vill du veta mer om detta?',
+theme_path : 'Sökväg',
+cut_desc : 'Klipp ut',
+copy_desc : 'Kopiera',
+paste_desc : 'Klistra in',
+link_list : 'Länkar',
+image_list : 'Bilder',
+browse : 'Bläddra',
+image_props_desc : 'Bildegenskaper',
+newdocument_desc : 'Nytt dokument',
+class_name : 'Stilmallsklass',
+newdocument : 'Är du säker på att du vill tömma hela redigeringsytan?',
+about_title : 'Om TinyMCE',
+about : 'Om',
+license : 'Licens',
+plugins : 'Insticksprogram',
+plugin : 'Insticksprogram',
+author : 'Utvecklare',
+version : 'Version',
+loaded_plugins : 'Laddade insticksprogram',
+help : 'Hjälp',
+not_set : '-- Inte satt --',
+close : 'Stäng'
+});
diff --git a/tinyMCE/themes/advanced/langs/sv_utf8.js b/tinyMCE/themes/advanced/langs/sv_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..fe6571a0d3847a09e2dfe4adf9206f4595e9e3a7
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/sv_utf8.js
@@ -0,0 +1,77 @@
+// SE lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stilar --',
+theme_code_desc : 'Editera HTML-koden',
+theme_code_title : 'HTML-källkodseditor',
+theme_code_wordwrap : 'Automatiskt radbyte',
+theme_sub_desc : 'Nedsänkt text',
+theme_sup_desc : 'Upphöjd text',
+theme_hr_desc : 'Sätt in horisontell linje',
+theme_removeformat_desc : 'Ta bort formatering',
+theme_custom1_desc : 'Din specialbeskriving här',
+insert_image_border : 'Ram',
+insert_image_dimensions : 'Dimensioner',
+insert_image_vspace : 'Vertikalt tomrum',
+insert_image_hspace : 'Horisontellt tomrum',
+insert_image_align : 'Justering',
+insert_image_align_default : 'Ingen',
+insert_image_align_baseline : 'Bottenlinjen',
+insert_image_align_top : 'Längst upp',
+insert_image_align_middle : 'Mitten',
+insert_image_align_bottom : 'Längst ner',
+insert_image_align_texttop : 'Textens top',
+insert_image_align_absmiddle : 'Absoluta mitten',
+insert_image_align_absbottom : 'Absolut längst ner',
+insert_image_align_left : 'Vänster',
+insert_image_align_right : 'Höger',
+insert_image_delta_width : 30,
+insert_image_delta_height : 10,
+theme_font_size : '-- Fontstorlek --',
+theme_fontdefault : '-- Font familj --',
+theme_block : '-- Stycke --',
+theme_paragraph : 'Paragraf',
+theme_div : 'Div',
+theme_address : 'Adress',
+theme_pre : 'Förformatterad',
+theme_h1 : 'Rubrik 1',
+theme_h2 : 'Rubrik 2',
+theme_h3 : 'Rubrik 3',
+theme_h4 : 'Rubrik 4',
+theme_h5 : 'Rubrik 5',
+theme_h6 : 'Rubrik 6',
+theme_colorpicker_title : 'Välj en färg',
+theme_colorpicker_apply : 'Verkställ',
+theme_forecolor_desc : 'Välj förgrundsfärg',
+theme_backcolor_desc : 'Välj bakgrundsfärg',
+theme_charmap_title : 'Välj specialtecken',
+theme_charmap_desc : 'Sätt in specialtecken',
+theme_visualaid_desc : 'Slå av/på osynliga element',
+insert_anchor_title : 'Skapa/redigera ankare',
+insert_anchor_name : 'Ankarnamn',
+theme_anchor_desc : 'Skapa/redigera ankare',
+theme_insert_link_titlefield : 'Titel',
+theme_clipboard_msg : 'Klipp ut/Kopiera/Klistra in fungerar inte Mozilla och Firefox. Vill du veta mer om detta?',
+theme_path : 'Sökväg',
+cut_desc : 'Klipp ut',
+copy_desc : 'Kopiera',
+paste_desc : 'Klistra in',
+link_list : 'Länkar',
+image_list : 'Bilder',
+browse : 'Bläddra',
+image_props_desc : 'Bildegenskaper',
+newdocument_desc : 'Nytt dokument',
+class_name : 'Stilmallsklass',
+newdocument : 'Är du säker på att du vill tömma hela redigeringsytan?',
+about_title : 'Om TinyMCE',
+about : 'Om',
+license : 'Licens',
+plugins : 'Insticksprogram',
+plugin : 'Insticksprogram',
+author : 'Utvecklare',
+version : 'Version',
+loaded_plugins : 'Laddade insticksprogram',
+help : 'Hjälp',
+not_set : '-- Inte satt --',
+close : 'Stäng'
+});
diff --git a/tinyMCE/themes/advanced/langs/tr.js b/tinyMCE/themes/advanced/langs/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..a35529e563166743e5bacd306ced0607da705a20
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/tr.js
@@ -0,0 +1,76 @@
+// UK lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stiller --',
+theme_code_desc : 'HTML Kaynaðý Düzenle',
+theme_code_title : 'HTML Editörü',
+theme_code_wordwrap : 'Sözcük kaydýr',
+theme_sub_desc : 'Altsimge',
+theme_sup_desc : 'Üstsimge',
+theme_hr_desc : 'Yatay çizgi ekle',
+theme_removeformat_desc : 'Formatý kaldýr',
+theme_custom1_desc : 'Özel açýklamanýz buraya',
+insert_image_border : 'Kenar kalýnlýðý',
+insert_image_dimensions : 'Boyutlar',
+insert_image_vspace : 'Dikey boþluk',
+insert_image_hspace : 'Yatay boþluk',
+insert_image_align : 'Hizalama',
+insert_image_align_default : '-- Atanmamýþ --',
+insert_image_align_baseline : 'Taban çizgisi',
+insert_image_align_top : 'Üst',
+insert_image_align_middle : 'Orta',
+insert_image_align_bottom : 'Alt',
+insert_image_align_texttop : 'Yazý üstte',
+insert_image_align_absmiddle : 'Tam ortada',
+insert_image_align_absbottom : 'En altta',
+insert_image_align_left : 'Sol',
+insert_image_align_right : 'Sað',
+theme_font_size : '-- Yazý boyutu --',
+theme_fontdefault : '-- Yazý tipi --',
+theme_block : '-- Biçim --',
+theme_paragraph : 'Paragraf',
+theme_div : 'Div etiketi',
+theme_address : 'Adres',
+theme_pre : 'Önceden düzenlenmiþ',
+theme_h1 : 'Baþlýk 1',
+theme_h2 : 'Baþlýk 2',
+theme_h3 : 'Baþlýk 3',
+theme_h4 : 'Baþlýk 4',
+theme_h5 : 'Baþlýk 5',
+theme_h6 : 'Baþlýk 6',
+theme_colorpicker_title : 'Renk seçiniz',
+theme_colorpicker_apply : 'Uygula',
+theme_forecolor_desc : 'Yazý rengi',
+theme_backcolor_desc : 'Arkaplan rengi',
+theme_charmap_title : 'Özel karakterler',
+theme_charmap_desc : 'Özel karakter ekle',
+theme_visualaid_desc : 'Gizli nesneler',
+insert_anchor_title : 'Link ekle/düzenle',
+insert_anchor_name : 'Link ismi',
+theme_anchor_desc : 'Link ekle/düzenle',
+theme_insert_link_titlefield : 'Baþlýk',
+theme_clipboard_msg : 'Mozilla ve Firefox tarayýcýlarýnda kopyala/kes/yapýþtýr komutlarýný kullanamassýnýz.\n Bu konu hakkýnda daha fazla bilgi edinmek ister misiniz?',
+theme_path : 'Etiket yolu',
+cut_desc : 'Kes',
+copy_desc : 'Kopyala',
+paste_desc : 'Yapýþtýr',
+link_list : 'Link listesi',
+image_list : 'Resim listesi',
+browse : 'Gözat',
+image_props_desc : 'Resim özellikleri',
+newdocument_desc : 'Yeni döküman',
+class_name : 'Sýnýf',
+newdocument : 'Tüm içeriði silmek istediðinizden emin misiniz?',
+about_title : 'TinyMCE Hakkýnda',
+about : 'Hakkýnda',
+license : 'Lisans',
+plugins : 'Pluginler',
+plugin : 'Plugin',
+author : 'Yazar',
+version : 'Versiyon',
+loaded_plugins : 'Yüklenen pluginler',
+help : 'Yardým',
+not_set : '-- Atanmamýþ --',
+close : 'Kapat',
+toolbar_focus : 'Araç butonlarýna geç - Alt+Q , Editöre geç - Alt-Z, Eleman özelliklerine geç - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/uk.js b/tinyMCE/themes/advanced/langs/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..9fe3cae3b04a64e19a2bf7128d90a80276e58b89
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/uk.js
@@ -0,0 +1,89 @@
+// Ukrainian translation
+tinyMCE.addToLang('',{
+theme_style_select : '-- Стилі --',
+theme_code_desc : 'Редагувати HTML коди',
+theme_code_title : 'Редактор HTML кодів',
+theme_code_wordwrap : 'Перенесення по словах',
+theme_sub_desc : 'Нижній індекс',
+theme_sup_desc : 'Верхній індекс',
+theme_hr_desc : 'Вставити горизонтальний роздільник',
+theme_removeformat_desc : 'Прибрати форматування',
+theme_custom1_desc : 'Ваш довільний опис',
+insert_image_border : 'Рамка',
+insert_image_dimensions : 'Розміри',
+insert_image_vspace : 'Вертикальний відступ',
+insert_image_hspace : 'Горизонтальний відступ',
+insert_image_align : 'Вирівнювання',
+insert_image_align_default : '-- Не поставлено --',
+insert_image_align_baseline : 'По базової лінії',
+insert_image_align_top : 'Вгору',
+insert_image_align_middle : 'До середини',
+insert_image_align_bottom : 'Вниз',
+insert_image_align_texttop : 'До гори тексту',
+insert_image_align_absmiddle : 'До абсолютної середини',
+insert_image_align_absbottom : 'До абсолютної гори',
+insert_image_align_left : 'Вліво',
+insert_image_align_right : 'Вправо',
+theme_font_size : '-- Розмір шрифту --',
+theme_fontdefault : '-- Сімейство шрифтів --',
+theme_block : '-- Формат --',
+theme_paragraph : 'Абзац',
+theme_div : 'DivX',
+theme_address : 'Стиль адреси',
+theme_pre : ':`Попередньо форматированный',
+theme_h1 : 'Заголовок 1',
+theme_h2 : 'Заголовок 2',
+theme_h3 : 'Заголовок 3',
+theme_h4 : 'Заголовок 4',
+theme_h5 : 'Заголовок 5',
+theme_h6 : 'Заголовок 6',
+theme_blockquote : 'Цитата',
+theme_samp : 'Зразок коду',
+theme_dt : 'Термін ',
+theme_dd : 'Визначення терміна',
+ttheme_colorpicker_title : 'Вибрати колір',
+theme_colorpicker_apply : 'Застосувати',
+theme_forecolor_desc : 'Вибрати колір тексту',
+theme_backcolor_desc : 'Вибрати колір фону',
+theme_charmap_title : 'Вибір довільного символу',
+theme_charmap_desc : 'Вставити довільний символ',
+theme_visualaid_desc : 'Показати межі прихованих елементів',
+insert_anchor_title : 'Вставити/змінити якір',
+insert_anchor_name : 'Ім\'я якоря',
+theme_anchor_desc : 'Вставити/змінити якір',
+theme_insert_link_titlefield : 'Заголовок',
+theme_clipboard_msg : 'Копіювати/Вирізати/Вставити недоступні для Mozilla і Firefox.\nХочете дізнатися про це докладніше?',
+theme_path : 'Шлях',
+cut_desc : 'Вирізати',
+copy_desc : 'Копіювати',
+paste_desc : 'Вставити',
+link_list : 'Перелік посилань',
+image_list : 'Перелік картинок',
+browse : 'Підібрати адекватні фігури',
+image_props_desc : 'Властивості картинки',
+newdocument_desc : 'Новий документ',
+class_name : 'Клас',
+newdocument : 'Ви абсолютно впевнені, що хочете очистити весь вміст?',
+about_title : 'Про TinyMCE',
+about : 'Про TinyMCE',
+license : 'Ліцензія',
+plugins : 'Плаґіни',
+plugin : 'Плаґін',
+author : 'Автор',
+version : 'Версія',
+loaded_plugins : 'Завантажені плаґіни',
+help : 'Допомога',
+not_set : '-- встановлено --',
+close : 'Закрити',
+toolbar_focus : 'Перемістити фокус на панель інструментів - Alt+Q, Перемістити фокус в редактор - Alt-Z, Перемістити фокус на елемент шляху - Alt-X',
+invalid_data : 'Помилка: Введені некоректні значення, їх позначено червоним.',
+more_colors : 'Ще кольору',
+color_picker_tab : 'Вибір',
+color_picker : 'Вибір кольорів',
+web_colors_tab : 'Для веб',
+web_colors : 'Кольори для веб',
+named_colors_tab : 'Назви',
+named_colors : 'Назви кольорів',
+color : 'Колір:',
+color_name : 'Назва:'
+});
diff --git a/tinyMCE/themes/advanced/langs/uk_CP1251.js b/tinyMCE/themes/advanced/langs/uk_CP1251.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e5148c180f803daa359ecfbf6249b2ec2a51026
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/uk_CP1251.js
@@ -0,0 +1,89 @@
+// Ukrainian translation
+tinyMCE.addToLang('',{
+theme_style_select : '-- Ñòèë³ --',
+theme_code_desc : 'Ðåäàãóâàòè HTML êîäè',
+theme_code_title : 'Ðåäàêòîð HTML êîä³â',
+theme_code_wordwrap : 'Ïåðåíåñåííÿ ïî ñëîâàõ',
+theme_sub_desc : 'Íèæí³é ³íäåêñ',
+theme_sup_desc : 'Âåðõí³é ³íäåêñ',
+theme_hr_desc : 'Âñòàâèòè ãîðèçîíòàëüíèé ðîçä³ëüíèê',
+theme_removeformat_desc : 'Ïðèáðàòè ôîðìàòóâàííÿ',
+theme_custom1_desc : 'Âàø äîâ³ëüíèé îïèñ',
+insert_image_border : 'Ðàìêà',
+insert_image_dimensions : 'Ðîçì³ðè',
+insert_image_vspace : 'Âåðòèêàëüíèé â³äñòóï',
+insert_image_hspace : 'Ãîðèçîíòàëüíèé â³äñòóï',
+insert_image_align : 'Âèð³âíþâàííÿ',
+insert_image_align_default : '-- Íå ïîñòàâëåíî --',
+insert_image_align_baseline : 'Ïî áàçîâî¿ ë³í³¿',
+insert_image_align_top : 'Âãîðó',
+insert_image_align_middle : 'Äî ñåðåäèíè',
+insert_image_align_bottom : 'Âíèç',
+insert_image_align_texttop : 'Äî ãîðè òåêñòó',
+insert_image_align_absmiddle : 'Äî àáñîëþòíî¿ ñåðåäèíè',
+insert_image_align_absbottom : 'Äî àáñîëþòíî¿ ãîðè',
+insert_image_align_left : 'Âë³âî',
+insert_image_align_right : 'Âïðàâî',
+theme_font_size : '-- Ðîçì³ð øðèôòó --',
+theme_fontdefault : '-- ѳìåéñòâî øðèôò³â --',
+theme_block : '-- Ôîðìàò --',
+theme_paragraph : 'Àáçàö',
+theme_div : 'DivX',
+theme_address : 'Ñòèëü àäðåñè',
+theme_pre : ':`Ïîïåðåäíüî ôîðìàòèðîâàííûé',
+theme_h1 : 'Çàãîëîâîê 1',
+theme_h2 : 'Çàãîëîâîê 2',
+theme_h3 : 'Çàãîëîâîê 3',
+theme_h4 : 'Çàãîëîâîê 4',
+theme_h5 : 'Çàãîëîâîê 5',
+theme_h6 : 'Çàãîëîâîê 6',
+theme_blockquote : 'Öèòàòà',
+theme_samp : 'Çðàçîê êîäó',
+theme_dt : 'Òåðì³í ',
+theme_dd : 'Âèçíà÷åííÿ òåðì³íà',
+ttheme_colorpicker_title : 'Âèáðàòè êîë³ð',
+theme_colorpicker_apply : 'Çàñòîñóâàòè',
+theme_forecolor_desc : 'Âèáðàòè êîë³ð òåêñòó',
+theme_backcolor_desc : 'Âèáðàòè êîë³ð ôîíó',
+theme_charmap_title : 'Âèá³ð äîâ³ëüíîãî ñèìâîëó',
+theme_charmap_desc : 'Âñòàâèòè äîâ³ëüíèé ñèìâîë',
+theme_visualaid_desc : 'Ïîêàçàòè ìåæ³ ïðèõîâàíèõ åëåìåíò³â',
+insert_anchor_title : 'Âñòàâèòè/çì³íèòè ÿê³ð',
+insert_anchor_name : '²ì\'ÿ ÿêîðÿ',
+theme_anchor_desc : 'Âñòàâèòè/çì³íèòè ÿê³ð',
+theme_insert_link_titlefield : 'Çàãîëîâîê',
+theme_clipboard_msg : 'Êîï³þâàòè/Âèð³çàòè/Âñòàâèòè íåäîñòóïí³ äëÿ Mozilla ³ Firefox.\nÕî÷åòå ä³çíàòèñÿ ïðî öå äîêëàäí³øå?',
+theme_path : 'Øëÿõ',
+cut_desc : 'Âèð³çàòè',
+copy_desc : 'Êîï³þâàòè',
+paste_desc : 'Âñòàâèòè',
+link_list : 'Ïåðåë³ê ïîñèëàíü',
+image_list : 'Ïåðåë³ê êàðòèíîê',
+browse : 'ϳä³áðàòè àäåêâàòí³ ô³ãóðè',
+image_props_desc : 'Âëàñòèâîñò³ êàðòèíêè',
+newdocument_desc : 'Íîâèé äîêóìåíò',
+class_name : 'Êëàñ',
+newdocument : 'Âè àáñîëþòíî âïåâíåí³, ùî õî÷åòå î÷èñòèòè âåñü âì³ñò?',
+about_title : 'Ïðî TinyMCE',
+about : 'Ïðî TinyMCE',
+license : '˳öåíç³ÿ',
+plugins : 'Ïëà´³íè',
+plugin : 'Ïëà´³í',
+author : 'Àâòîð',
+version : 'Âåðñ³ÿ',
+loaded_plugins : 'Çàâàíòàæåí³ ïëà´³íè',
+help : 'Äîïîìîãà',
+not_set : '-- âñòàíîâëåíî --',
+close : 'Çàêðèòè',
+toolbar_focus : 'Ïåðåì³ñòèòè ôîêóñ íà ïàíåëü ³íñòðóìåíò³â - Alt+Q, Ïåðåì³ñòèòè ôîêóñ â ðåäàêòîð - Alt-Z, Ïåðåì³ñòèòè ôîêóñ íà åëåìåíò øëÿõó - Alt-X',
+invalid_data : 'Ïîìèëêà: Ââåäåí³ íåêîðåêòí³ çíà÷åííÿ, ¿õ ïîçíà÷åíî ÷åðâîíèì.',
+more_colors : 'Ùå êîëüîðó',
+color_picker_tab : 'Âèá³ð',
+color_picker : 'Âèá³ð êîëüîð³â',
+web_colors_tab : 'Äëÿ âåá',
+web_colors : 'Êîëüîðè äëÿ âåá',
+named_colors_tab : 'Íàçâè',
+named_colors : 'Íàçâè êîëüîð³â',
+color : 'Êîë³ð:',
+color_name : 'Íàçâà:'
+});
diff --git a/tinyMCE/themes/advanced/langs/uk_KOI8-U.js b/tinyMCE/themes/advanced/langs/uk_KOI8-U.js
new file mode 100644
index 0000000000000000000000000000000000000000..eab55062b8c6c8c35b217d4da10f1ac06d7ce4b6
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/uk_KOI8-U.js
@@ -0,0 +1,89 @@
+// Ukrainian translation
+tinyMCE.addToLang('',{
+theme_style_select : '-- óÔÉ̦ --',
+theme_code_desc : 'òÅÄÁÇÕ×ÁÔÉ HTML ËÏÄÉ',
+theme_code_title : 'òÅÄÁËÔÏÒ HTML ËÏĦ×',
+theme_code_wordwrap : 'ðÅÒÅÎÅÓÅÎÎÑ ÐÏ ÓÌÏ×ÁÈ',
+theme_sub_desc : 'îÉÖÎ¦Ê ¦ÎÄÅËÓ',
+theme_sup_desc : '÷ÅÒÈÎ¦Ê ¦ÎÄÅËÓ',
+theme_hr_desc : '÷ÓÔÁ×ÉÔÉ ÇÏÒÉÚÏÎÔÁÌØÎÉÊ ÒÏÚÄ¦ÌØÎÉË',
+theme_removeformat_desc : 'ðÒÉÂÒÁÔÉ ÆÏÒÍÁÔÕ×ÁÎÎÑ',
+theme_custom1_desc : '÷ÁÛ ÄÏ×¦ÌØÎÉÊ ÏÐÉÓ',
+insert_image_border : 'òÁÍËÁ',
+insert_image_dimensions : 'òÏÚͦÒÉ',
+insert_image_vspace : '÷ÅÒÔÉËÁÌØÎÉÊ ×¦ÄÓÔÕÐ',
+insert_image_hspace : 'çÏÒÉÚÏÎÔÁÌØÎÉÊ ×¦ÄÓÔÕÐ',
+insert_image_align : '÷ÉÒ¦×ÎÀ×ÁÎÎÑ',
+insert_image_align_default : '-- îÅ ÐÏÓÔÁ×ÌÅÎÏ --',
+insert_image_align_baseline : 'ðÏ ÂÁÚÏ×ϧ ̦Φ§',
+insert_image_align_top : '÷ÇÏÒÕ',
+insert_image_align_middle : 'äÏ ÓÅÒÅÄÉÎÉ',
+insert_image_align_bottom : '÷ÎÉÚ',
+insert_image_align_texttop : 'äÏ ÇÏÒÉ ÔÅËÓÔÕ',
+insert_image_align_absmiddle : 'äÏ ÁÂÓÏÌÀÔÎϧ ÓÅÒÅÄÉÎÉ',
+insert_image_align_absbottom : 'äÏ ÁÂÓÏÌÀÔÎϧ ÇÏÒÉ',
+insert_image_align_left : '÷̦×Ï',
+insert_image_align_right : '÷ÐÒÁ×Ï',
+theme_font_size : '-- òÏÚÍ¦Ò ÛÒÉÆÔÕ --',
+theme_fontdefault : '-- ó¦ÍÅÊÓÔ×Ï ÛÒÉÆÔ¦× --',
+theme_block : '-- æÏÒÍÁÔ --',
+theme_paragraph : 'áÂÚÁÃ',
+theme_div : 'DivX',
+theme_address : 'óÔÉÌØ ÁÄÒÅÓÉ',
+theme_pre : ':`ðÏÐÅÒÅÄÎØÏ ÆÏÒÍÁÔÉÒÏ×ÁÎÎÙÊ',
+theme_h1 : 'úÁÇÏÌÏ×ÏË 1',
+theme_h2 : 'úÁÇÏÌÏ×ÏË 2',
+theme_h3 : 'úÁÇÏÌÏ×ÏË 3',
+theme_h4 : 'úÁÇÏÌÏ×ÏË 4',
+theme_h5 : 'úÁÇÏÌÏ×ÏË 5',
+theme_h6 : 'úÁÇÏÌÏ×ÏË 6',
+theme_blockquote : 'ãÉÔÁÔÁ',
+theme_samp : 'úÒÁÚÏË ËÏÄÕ',
+theme_dt : 'ôÅÒͦΠ',
+theme_dd : '÷ÉÚÎÁÞÅÎÎÑ ÔÅÒͦÎÁ',
+ttheme_colorpicker_title : '÷ÉÂÒÁÔÉ ËÏ̦Ò',
+theme_colorpicker_apply : 'úÁÓÔÏÓÕ×ÁÔÉ',
+theme_forecolor_desc : '÷ÉÂÒÁÔÉ ËÏÌ¦Ò ÔÅËÓÔÕ',
+theme_backcolor_desc : '÷ÉÂÒÁÔÉ ËÏÌ¦Ò ÆÏÎÕ',
+theme_charmap_title : '÷ÉÂ¦Ò ÄÏ×¦ÌØÎÏÇÏ ÓÉÍ×ÏÌÕ',
+theme_charmap_desc : '÷ÓÔÁ×ÉÔÉ ÄÏ×¦ÌØÎÉÊ ÓÉÍ×ÏÌ',
+theme_visualaid_desc : 'ðÏËÁÚÁÔÉ ÍÅÖ¦ ÐÒÉÈÏ×ÁÎÉÈ ÅÌÅÍÅÎÔ¦×',
+insert_anchor_title : '÷ÓÔÁ×ÉÔÉ/ÚͦÎÉÔÉ Ñ˦Ò',
+insert_anchor_name : '¶Í\'Ñ ÑËÏÒÑ',
+theme_anchor_desc : '÷ÓÔÁ×ÉÔÉ/ÚͦÎÉÔÉ Ñ˦Ò',
+theme_insert_link_titlefield : 'úÁÇÏÌÏ×ÏË',
+theme_clipboard_msg : 'ëÏЦÀ×ÁÔÉ/÷ÉÒ¦ÚÁÔÉ/÷ÓÔÁ×ÉÔÉ ÎÅÄÏÓÔÕÐΦ ÄÌÑ Mozilla ¦ Firefox.\nèÏÞÅÔŠĦÚÎÁÔÉÓÑ ÐÒÏ ÃÅ ÄÏËÌÁÄΦÛÅ?',
+theme_path : 'ûÌÑÈ',
+cut_desc : '÷ÉÒ¦ÚÁÔÉ',
+copy_desc : 'ëÏЦÀ×ÁÔÉ',
+paste_desc : '÷ÓÔÁ×ÉÔÉ',
+link_list : 'ðÅÒÅÌ¦Ë ÐÏÓÉÌÁÎØ',
+image_list : 'ðÅÒÅÌ¦Ë ËÁÒÔÉÎÏË',
+browse : 'ð¦Ä¦ÂÒÁÔÉ ÁÄÅË×ÁÔΦ ƦÇÕÒÉ',
+image_props_desc : '÷ÌÁÓÔÉ×ÏÓÔ¦ ËÁÒÔÉÎËÉ',
+newdocument_desc : 'îÏ×ÉÊ ÄÏËÕÍÅÎÔ',
+class_name : 'ëÌÁÓ',
+newdocument : '÷É ÁÂÓÏÌÀÔÎÏ ×ÐÅ×ÎÅΦ, ÝÏ ÈÏÞÅÔÅ ÏÞÉÓÔÉÔÉ ×ÅÓØ ×ͦÓÔ?',
+about_title : 'ðÒÏ TinyMCE',
+about : 'ðÒÏ TinyMCE',
+license : 'ì¦ÃÅÎÚ¦Ñ',
+plugins : 'ðÌÁ­¦ÎÉ',
+plugin : 'ðÌÁ­¦Î',
+author : 'á×ÔÏÒ',
+version : '÷ÅÒÓ¦Ñ',
+loaded_plugins : 'úÁ×ÁÎÔÁÖÅΦ ÐÌÁ­¦ÎÉ',
+help : 'äÏÐÏÍÏÇÁ',
+not_set : '-- ×ÓÔÁÎÏ×ÌÅÎÏ --',
+close : 'úÁËÒÉÔÉ',
+toolbar_focus : 'ðÅÒÅͦÓÔÉÔÉ ÆÏËÕÓ ÎÁ ÐÁÎÅÌØ ¦ÎÓÔÒÕÍÅÎÔ¦× - Alt+Q, ðÅÒÅͦÓÔÉÔÉ ÆÏËÕÓ × ÒÅÄÁËÔÏÒ - Alt-Z, ðÅÒÅͦÓÔÉÔÉ ÆÏËÕÓ ÎÁ ÅÌÅÍÅÎÔ ÛÌÑÈÕ - Alt-X',
+invalid_data : 'ðÏÍÉÌËÁ: ÷×ÅÄÅΦ ÎÅËÏÒÅËÔΦ ÚÎÁÞÅÎÎÑ, §È ÐÏÚÎÁÞÅÎÏ ÞÅÒ×ÏÎÉÍ.',
+more_colors : 'ýÅ ËÏÌØÏÒÕ',
+color_picker_tab : '÷ɦÒ',
+color_picker : '÷ÉÂ¦Ò ËÏÌØÏÒ¦×',
+web_colors_tab : 'äÌÑ ×ÅÂ',
+web_colors : 'ëÏÌØÏÒÉ ÄÌÑ ×ÅÂ',
+named_colors_tab : 'îÁÚ×É',
+named_colors : 'îÁÚ×É ËÏÌØÏÒ¦×',
+color : 'ëÏ̦Ò:',
+color_name : 'îÁÚ×Á:'
+});
diff --git a/tinyMCE/themes/advanced/langs/vi.js b/tinyMCE/themes/advanced/langs/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b6c99404c25cca36d746b65ee017c0ad19b9b41
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/vi.js
@@ -0,0 +1,76 @@
+// Vietnamese lang variables - Đỗ Xuân Tiến - tiendx2002@yahoo.com Việt hóa
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Phong cách --',
+theme_code_desc : 'Sửa mã nguồn HTML',
+theme_code_title : 'Bộ soạn thảo mã HTML',
+theme_code_wordwrap : 'Gói gọn các từ - Word wrap',
+theme_sub_desc : 'Chỉ số dưới',
+theme_sup_desc : 'Chỉ số trên',
+theme_hr_desc : 'Thêm đường thẳng ngang',
+theme_removeformat_desc : 'Xóa định dạng',
+theme_custom1_desc : 'Mô tả của bạn ở đây',
+insert_image_border : 'Khung',
+insert_image_dimensions : 'Kích thước',
+insert_image_vspace : 'Khoảng cách dọc',
+insert_image_hspace : 'Khoảng cách ngang',
+insert_image_align : 'Căn lề',
+insert_image_align_default : '-- Chưa đặt --',
+insert_image_align_baseline : 'Theo dòng',
+insert_image_align_top : 'Trên cùng',
+insert_image_align_middle : 'Giữa',
+insert_image_align_bottom : 'Dưới cùng',
+insert_image_align_texttop : 'Văn bản trên cùng',
+insert_image_align_absmiddle : 'Tuyệt đối giữa',
+insert_image_align_absbottom : 'Tuyệt đối dưới cùng',
+insert_image_align_left : 'Trái',
+insert_image_align_right : 'Phải',
+theme_font_size : '-- Kích thước chữ --',
+theme_fontdefault : '-- Font chữ --',
+theme_block : '-- Định dạng --',
+theme_paragraph : 'Đoạn',
+theme_div : 'Div',
+theme_address : 'Địa chỉ',
+theme_pre : 'Định dạng trước',
+theme_h1 : 'Tiêu đề cấp 1',
+theme_h2 : 'Tiêu đề cấp 2',
+theme_h3 : 'Tiêu đề cấp 3',
+theme_h4 : 'Tiêu đề cấp 4',
+theme_h5 : 'Tiêu đề cấp 5',
+theme_h6 : 'Tiêu đề cấp 6',
+theme_colorpicker_title : 'Chọn một màu',
+theme_colorpicker_apply : 'Áp&nbsp;dụng',
+theme_forecolor_desc : 'Chọn màu chữ',
+theme_backcolor_desc : 'Chọn màu nền',
+theme_charmap_title : 'Chọn ký tự đặc biệt',
+theme_charmap_desc : 'Thêm ký tự đặc biệt',
+theme_visualaid_desc : 'Bật tắt chế độ hướng dẫn',
+insert_anchor_title : 'Thêm/sửa neo',
+insert_anchor_name : 'Tên neo',
+theme_anchor_desc : 'Thêm/sửa neo',
+theme_insert_link_titlefield : 'Tiêu đề',
+theme_clipboard_msg : 'Trên Mozilla và Firefox không sử dụng được các thao tác Sao chép/Cắt/Dán. \nBạn cần thêm thông tin về điều này?',
+theme_path : 'Đường dẫn',
+cut_desc : 'Cắt',
+copy_desc : 'Sao chép',
+paste_desc : 'Dán',
+link_list : 'Danh sách liên kết',
+image_list : 'Danh sách ảnh',
+browse : 'Duyệt',
+image_props_desc : 'Thuộc tính ảnh',
+newdocument_desc : 'Văn bản mới',
+class_name : 'Lá»›p',
+newdocument : 'Bạn có chắc muốn xóa sạch nội dung?',
+about_title : 'Thông tin về TinyMCE',
+about : 'Thông tin',
+license : 'Chứng nhận',
+plugins : 'Chức năng',
+plugin : 'Chức năng',
+author : 'Tác giả',
+version : 'Phiên bản',
+loaded_plugins : 'Chức năng đã nạp',
+help : 'Trợ giúp',
+not_set : '-- Chưa đặt --',
+close : 'Đóng',
+toolbar_focus : 'Nút chuyển tới công cụ - Alt+Q, Chuyển tới bộ soạn thảo - Alt-Z, Chuyển tới đường dẫn thành phần - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/zh_cn.js b/tinyMCE/themes/advanced/langs/zh_cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d160a5c189e9643a71b865649e48a485894c858
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/zh_cn.js
@@ -0,0 +1,77 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- ¸ñʽ --',
+theme_code_desc : '±à¼­HTMLÔ´´úÂë',
+theme_code_title : 'HTMLÔ´´úÂë±à¼­Æ÷',
+theme_code_wordwrap : '×Ô¶¯»»ÐÐ',
+theme_sub_desc : '챐',
+theme_sup_desc : 'Éϱê',
+theme_hr_desc : '²åÈëˮƽÏß',
+theme_removeformat_desc : 'ÒÆ³ý¸ñʽ',
+theme_custom1_desc : 'ÕâÀïÌîдÓû§×Ô¶¨ÒåÃèÊö',
+insert_image_border : '±ß¿ò',
+insert_image_dimensions : 'άÊý',
+insert_image_vspace : '´¹Ö±¼ä¾à',
+insert_image_hspace : 'ˮƽ¼ä¾à',
+insert_image_align : '¶ÔÆë·½Ê½',
+insert_image_align_default : '-- ĬÈÏ --',
+insert_image_align_baseline : '»ùÏß',
+insert_image_align_top : '¶¥¶Ë',
+insert_image_align_middle : '¾ÓÖÐ',
+insert_image_align_bottom : 'µ×²¿',
+insert_image_align_texttop : 'ÎÄ×ÖÉÏ·½',
+insert_image_align_absmiddle : '¾ø¶Ô¾ÓÖÐ',
+insert_image_align_absbottom : '¾ø¶Ôµ×²¿',
+insert_image_align_left : '×ó¶ÔÆë',
+insert_image_align_right : 'ÓÒ¶ÔÆë',
+theme_font_size : '-- ×ֺŠ--',
+theme_fontdefault : '-- ×ÖÌå --',
+theme_block : '-- ¸ñʽ --',
+theme_paragraph : '¶ÎÂä',
+theme_div : '²ã',
+theme_address : 'µØÖ·',
+theme_pre : 'Ô¤¸ñʽ»¯',
+theme_h1 : '±êÌâ 1',
+theme_h2 : '±êÌâ 2',
+theme_h3 : '±êÌâ 3',
+theme_h4 : '±êÌâ 4',
+theme_h5 : '±êÌâ 5',
+theme_h6 : '±êÌâ 6',
+theme_colorpicker_title : 'Ñ¡ÔñÑÕÉ«',
+theme_colorpicker_apply : 'Ó¦ÓÃ',
+theme_forecolor_desc : 'Ñ¡ÔñÎÄ×ÖÑÕÉ«',
+theme_backcolor_desc : 'Ñ¡Ôñ±³¾°ÑÕÉ«',
+theme_charmap_title : 'Ñ¡ÔñÌØÊâ·ûºÅ',
+theme_charmap_desc : '²åÈëÌØÊâ·ûºÅ',
+theme_visualaid_desc : '¿ª¹Ø²»¿É¼ûÔªËØ',
+insert_anchor_title : '²åÈë/±à¼­ êµã',
+insert_anchor_name : 'êµãÃû³Æ',
+theme_anchor_desc : '²åÈë/±à¼­ êµã',
+theme_insert_link_titlefield : '±êÌâ',
+theme_clipboard_msg : '¼ôÇÐ/¸´ÖÆ/Õ³Ìù¹¦ÄÜÔÚ Mozilla ºÍ Firefox ä¯ÀÀÆ÷Öв»Ö§³Ö¡£\nÄúÏ£Íû»ñµÃ¸ü¶àµÄÐÅÏ¢Âð£¿',
+theme_path : '·¾¶',
+cut_desc : '¼ôÇÐ',
+copy_desc : '¸´ÖÆ',
+paste_desc : 'Õ³Ìù',
+link_list : 'Á´½ÓÁбí',
+image_list : 'ͼÏñÁбí',
+browse : 'ä¯ÀÀ',
+image_props_desc : 'ͼÏñÊôÐÔ',
+newdocument_desc : 'н¨¼äµµ',
+class_name : 'Àà',
+newdocument : 'ÄúÈ·ÈÏÒªÇå³ýËùÓÐÄÚÈÝÂð£¿',
+about_title : '¹ØÓÚ TinyMCE',
+about : '¹ØÓÚ',
+license : 'ÊÚȨÊé',
+plugins : 'ËùÓвå¼þ',
+plugin : '²å¼þ',
+author : '×÷Õß',
+version : '°æ±¾',
+loaded_plugins : '¶ÁÈ¡²å¼þ',
+help : '°ïÖú',
+not_set : '-- ¿ÕÉ趨 --',
+close : '¹Ø±Õ',
+toolbar_focus : 'Ìøµ½¹¤¾ß°´Å¥ - Alt+Q, Ìøµ½±à¼­Æ÷ - Alt-Z, Ìøµ½ÔªËØÂ·¾¶ - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/zh_cn_utf8.js b/tinyMCE/themes/advanced/langs/zh_cn_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..90a998f5b4b273ef2c20ebe6d9722f6e3d6fe9a9
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/zh_cn_utf8.js
@@ -0,0 +1,77 @@
+// Simplified Chinese lang variables contributed by TinyMCE_China_Team ( tinymce_china {AT} yahoogroups {DOT} com ).
+// visit our homepage at: http://www.cube316.net/tinymce/ for more information.
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- 格式 --',
+theme_code_desc : '编辑HTML源代码',
+theme_code_title : 'HTML源代码编辑器',
+theme_code_wordwrap : '自动换行',
+theme_sub_desc : '下标',
+theme_sup_desc : '上标',
+theme_hr_desc : '插入水平线',
+theme_removeformat_desc : '移除格式',
+theme_custom1_desc : '这里填写用户自定义描述',
+insert_image_border : '边框',
+insert_image_dimensions : 'ç»´æ•°',
+insert_image_vspace : '垂直间距',
+insert_image_hspace : '水平间距',
+insert_image_align : '对齐方式',
+insert_image_align_default : '-- 默认 --',
+insert_image_align_baseline : '基线',
+insert_image_align_top : '顶端',
+insert_image_align_middle : '居中',
+insert_image_align_bottom : '底部',
+insert_image_align_texttop : '文字上方',
+insert_image_align_absmiddle : '绝对居中',
+insert_image_align_absbottom : '绝对底部',
+insert_image_align_left : '左对齐',
+insert_image_align_right : '右对齐',
+theme_font_size : '-- 字号 --',
+theme_fontdefault : '-- 字体 --',
+theme_block : '-- 格式 --',
+theme_paragraph : '段落',
+theme_div : '层',
+theme_address : '地址',
+theme_pre : '预格式化',
+theme_h1 : '标题 1',
+theme_h2 : '标题 2',
+theme_h3 : '标题 3',
+theme_h4 : '标题 4',
+theme_h5 : '标题 5',
+theme_h6 : '标题 6',
+theme_colorpicker_title : '选择颜色',
+theme_colorpicker_apply : '应用',
+theme_forecolor_desc : '选择文字颜色',
+theme_backcolor_desc : '选择背景颜色',
+theme_charmap_title : '选择特殊符号',
+theme_charmap_desc : '插入特殊符号',
+theme_visualaid_desc : '开关不可见元素',
+insert_anchor_title : '插入/编辑 锚点',
+insert_anchor_name : '锚点名称',
+theme_anchor_desc : '插入/编辑 锚点',
+theme_insert_link_titlefield : '标题',
+theme_clipboard_msg : '剪切/复制/粘贴功能在 Mozilla 和 Firefox 浏览器中不支持。\n您希望获得更多的信息吗?',
+theme_path : '路径',
+cut_desc : '剪切',
+copy_desc : '复制',
+paste_desc : '粘贴',
+link_list : '链接列表',
+image_list : '图像列表',
+browse : '浏览',
+image_props_desc : '图像属性',
+newdocument_desc : '新建间档',
+class_name : 'ç±»',
+newdocument : '您确认要清除所有内容吗?',
+about_title : '关于 TinyMCE',
+about : '关于',
+license : '授权书',
+plugins : '所有插件',
+plugin : '插件',
+author : '作者',
+version : '版本',
+loaded_plugins : '读取插件',
+help : '帮助',
+not_set : '-- 空设定 --',
+close : '关闭',
+toolbar_focus : '跳到工具按钮 - Alt+Q, 跳到编辑器 - Alt-Z, 跳到元素路径 - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/zh_tw.js b/tinyMCE/themes/advanced/langs/zh_tw.js
new file mode 100644
index 0000000000000000000000000000000000000000..d148b2627df451ed11c61aae93d6f3108930d2df
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/zh_tw.js
@@ -0,0 +1,78 @@
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- ¦¡¼Ë --',
+theme_code_desc : '½s¿è HTML ½X',
+theme_code_title : 'HTML ½X½s¿è¾¹',
+theme_code_wordwrap : '¦rµüÀô¶',
+theme_sub_desc : '¤U¼Ð',
+theme_sup_desc : '¤W¼Ð',
+theme_hr_desc : '´¡¤J¤ô¥­½u',
+theme_removeformat_desc : '²M°£®æ¦¡³]©w',
+theme_custom1_desc : '¦Û­q»¡©ú¦b¦¹¿é¤J',
+insert_image_border : '®Ø½u',
+insert_image_dimensions : '¤Ø¤o',
+insert_image_vspace : '¹Ï¹³¤W¤U°¼¶¡¶Z',
+insert_image_hspace : '¹Ï¹³¥ª¥kÃä¶¡¶Z',
+insert_image_align : '««ª½¹ï»ô',
+insert_image_align_default : '-- ¥¼³]¸m --',
+insert_image_align_baseline : '©³½u',
+insert_image_align_top : '³»ºÝ',
+insert_image_align_middle : '¤¤½u',
+insert_image_align_bottom : '©³³¡',
+insert_image_align_texttop : '¤å¦r³»ºÝ',
+insert_image_align_absmiddle : 'µ´¹ï¤¤½u',
+insert_image_align_absbottom : 'µ´¹ï©³³¡',
+insert_image_align_left : '¥ª',
+insert_image_align_right : '¥k',
+theme_font_size : '-- ¦rÅé¤j¤p --',
+theme_fontdefault : '-- ¦rÅé¿ï¾Ü --',
+theme_block : '-- ®æ¦¡ --',
+theme_paragraph : '¬q¸¨',
+theme_div : '¤À¬É',
+theme_address : '¦ì¸m',
+theme_pre : '¤º©w®æ¦¡',
+theme_h1 : '¼ÐÃD¤@',
+theme_h2 : '¼ÐÃD¤G',
+theme_h3 : '¼ÐÃD¤T',
+theme_h4 : '¼ÐÃD¥|',
+theme_h5 : '¼ÐÃD¤­',
+theme_h6 : '¼ÐÃD¤»',
+theme_colorpicker_title : '¿ï¨úÃC¦â',
+theme_colorpicker_apply : '®M¥Î',
+theme_forecolor_desc : '¿ï¨ú¤å¦rÃC¦â',
+theme_backcolor_desc : '¿ï¨ú­I´ºÃC¦â',
+theme_charmap_title : '¿ï¨ú¦Û­q¦r¤¸',
+theme_charmap_desc : '´¡¤J¦Û­q¦r¤¸',
+theme_visualaid_desc : '¤Á´««ü¥Ü©Î«D¥i¨£¤¸¥ó',
+insert_anchor_title : '´¡¤J©Î½s¿è³sµ²ÂI',
+insert_anchor_name : '³sµ²ÂI¦WºÙ',
+theme_anchor_desc : '´¡¤J©Î½s¿è³sµ²ÂI',
+theme_insert_link_titlefield : '¼ÐÃD',
+theme_clipboard_msg : '¦b Mozilla ©M Firefox ¤¤µLªk¨Ï¥Î½Æ»s©Î°Å¤U©Î¶K¤W¥\¯à¡C\n»Ý­n§ó¦hÃö©ó¦¹ªº°T®§¶Ü¡H',
+theme_path : '¸ô®|',
+cut_desc : '°Å¤U',
+copy_desc : '½Æ»s',
+paste_desc : '¶K¤W',
+link_list : '³sµ²¦Cªí',
+image_list : '¹ÏÀɦCªí',
+browse : 'ÂsÄý',
+image_props_desc : '¹ÏÀÉÄÝ©Ê',
+newdocument_desc : '·s¤å¥ó',
+class_name : '¤ÀÃþ',
+newdocument : '½T©w­n²M°£¥þ³¡¤º®e¡H',
+about_title : 'Ãö©ó TinyMCE',
+about : 'Ãö©ó',
+license : '±ÂÅv',
+plugins : 'À³¥Î®M¥ó',
+plugin : 'À³¥Î®M¥ó',
+author : '§@ªÌ',
+version : 'ª©¥»',
+loaded_plugins : '¤w¸ü¤JÀ³¥Î®M¥ó',
+help : '¨ó§U',
+not_set : '-- ¥¼³]¸m --',
+close : 'Ãö³¬',
+toolbar_focus : '§Ö³t±Ò¥Î¤u¨ã¯Ã - Alt+Q¡F§Ö³t±Ò¥Î½s¿è¾¹ - Alt-Z¡F§Ö³t²¾¦Ü¤¸¥ó¸ô®| - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/langs/zh_tw_utf8.js b/tinyMCE/themes/advanced/langs/zh_tw_utf8.js
new file mode 100644
index 0000000000000000000000000000000000000000..c45307a1bbd450b9ca7e7a16cb8cb58c1c30d92b
--- /dev/null
+++ b/tinyMCE/themes/advanced/langs/zh_tw_utf8.js
@@ -0,0 +1,78 @@
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- 式樣 --',
+theme_code_desc : '編輯 HTML 碼',
+theme_code_title : 'HTML 碼編輯器',
+theme_code_wordwrap : '字詞環繞',
+theme_sub_desc : '下標',
+theme_sup_desc : '上標',
+theme_hr_desc : '插入水平線',
+theme_removeformat_desc : '清除格式設定',
+theme_custom1_desc : '自訂說明在此輸入',
+insert_image_border : '框線',
+insert_image_dimensions : '尺寸',
+insert_image_vspace : '圖像上下側間距',
+insert_image_hspace : '圖像左右邊間距',
+insert_image_align : '垂直對齊',
+insert_image_align_default : '-- 未設置 --',
+insert_image_align_baseline : '底線',
+insert_image_align_top : '頂端',
+insert_image_align_middle : '中線',
+insert_image_align_bottom : '底部',
+insert_image_align_texttop : '文字頂端',
+insert_image_align_absmiddle : '絕對中線',
+insert_image_align_absbottom : '絕對底部',
+insert_image_align_left : 'å·¦',
+insert_image_align_right : '右',
+theme_font_size : '-- 字體大小 --',
+theme_fontdefault : '-- 字體選擇 --',
+theme_block : '-- 格式 --',
+theme_paragraph : '段落',
+theme_div : '分界',
+theme_address : '位置',
+theme_pre : '內定格式',
+theme_h1 : '標題一',
+theme_h2 : '標題二',
+theme_h3 : '標題三',
+theme_h4 : '標題四',
+theme_h5 : '標題五',
+theme_h6 : '標題六',
+theme_colorpicker_title : '選取顏色',
+theme_colorpicker_apply : '套用',
+theme_forecolor_desc : '選取文字顏色',
+theme_backcolor_desc : '選取背景顏色',
+theme_charmap_title : '選取自訂字元',
+theme_charmap_desc : '插入自訂字元',
+theme_visualaid_desc : '切換指示或非可見元件',
+insert_anchor_title : '插入或編輯連結點',
+insert_anchor_name : '連結點名稱',
+theme_anchor_desc : '插入或編輯連結點',
+theme_insert_link_titlefield : '標題',
+theme_clipboard_msg : '在 Mozilla 和 Firefox 中無法使用複製或剪下或貼上功能。\n需要更多關於此的訊息嗎?',
+theme_path : '路徑',
+cut_desc : '剪下',
+copy_desc : '複製',
+paste_desc : '貼上',
+link_list : '連結列表',
+image_list : '圖檔列表',
+browse : '瀏覽',
+image_props_desc : '圖檔屬性',
+newdocument_desc : '新文件',
+class_name : '分類',
+newdocument : '確定要清除全部內容?',
+about_title : '關於 TinyMCE',
+about : '關於',
+license : '授權',
+plugins : '應用套件',
+plugin : '應用套件',
+author : '作者',
+version : '版本',
+loaded_plugins : '已載入應用套件',
+help : '協助',
+not_set : '-- 未設置 --',
+close : '關閉',
+toolbar_focus : '快速啟用工具紐 - Alt+Q;快速啟用編輯器 - Alt-Z;快速移至元件路徑 - Alt-X'
+});
diff --git a/tinyMCE/themes/advanced/link.htm b/tinyMCE/themes/advanced/link.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b27af9b6c9b6f50e83eaf418330890027f4cbe7e
--- /dev/null
+++ b/tinyMCE/themes/advanced/link.htm
@@ -0,0 +1,101 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>{$lang_insert_link_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="../../utils/validate.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/link.js"></script>
+	<base target="_self" />
+</head>
+<body id="link" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
+<form onsubmit="insertLink();return false;" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_insert_link_title}</a></span></li>
+		</ul>
+	</div>
+
+	<div class="panel_wrapper">
+		<div id="general_panel" class="panel current">
+
+		<table border="0" cellpadding="4" cellspacing="0">
+          <tr>
+            <td nowrap="nowrap"><label for="href">{$lang_insert_link_url}</label></td>
+            <td><table border="0" cellspacing="0" cellpadding="0"> 
+				  <tr> 
+					<td><input id="href" name="href" type="text" value="" style="width: 200px" onchange="checkPrefix(this);" /></td> 
+					<td id="hrefbrowsercontainer">&nbsp;</td>
+				  </tr> 
+				</table></td>
+          </tr>
+		  <!-- Link list -->
+		  <script language="javascript">
+			if (typeof(tinyMCELinkList) != "undefined" && tinyMCELinkList.length > 0) {
+				var html = "";
+
+				html += '<tr><td><label for="link_list">{$lang_link_list}</label></td>';
+				html += '<td><select id="link_list" name="link_list" style="width: 200px" onchange="this.form.href.value=this.options[this.selectedIndex].value;">';
+				html += '<option value="">---</option>';
+
+				for (var i=0; i<tinyMCELinkList.length; i++)
+					html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';
+
+				html += '</select></td></tr>';
+
+				document.write(html);
+			}
+		  </script>
+		  <!-- /Link list -->
+          <tr>
+            <td nowrap="nowrap"><label for="target">{$lang_insert_link_target}</label></td>
+            <td><select id="target" name="target" style="width: 200px">
+                <option value="_self">{$lang_insert_link_target_same}</option>
+                <option value="_blank">{$lang_insert_link_target_blank}</option>
+				<script language="javascript">
+					var html = "";
+					var targets = tinyMCE.getParam('theme_advanced_link_targets', '').split(';');
+
+					for (var i=0; i<targets.length; i++) {
+						var key, value;
+
+						if (targets[i] == "")
+							continue;
+
+						key = targets[i].split('=')[0];
+						value = targets[i].split('=')[1];
+
+						html += '<option value="' + value + '">' + key + '</option>';
+					}
+
+					document.write(html);
+				</script>
+            </select></td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap"><label for="linktitle">{$lang_theme_insert_link_titlefield}</label></td>
+            <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px"></td>
+          </tr>
+          <tr id="styleSelectRow">
+            <td><label for="styleSelect">{$lang_class_name}</label></td>
+            <td>
+			 <select id="styleSelect" name="styleSelect">
+                <option value="" selected>{$lang_theme_style_select}</option>
+             </select></td>
+          </tr>
+        </table>
+		</div>
+	</div>
+
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertLink();" />
+		</div>
+
+		<div style="float: right">
+			<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+		</div>
+	</div>
+</form>
+</body>
+</html>
diff --git a/tinyMCE/themes/advanced/source_editor.htm b/tinyMCE/themes/advanced/source_editor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c3f80c4f780e411c7efcd2268a0a1953a2d3b3f3
--- /dev/null
+++ b/tinyMCE/themes/advanced/source_editor.htm
@@ -0,0 +1,32 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+	<title>{$lang_theme_code_title}</title>
+	<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="jscripts/source_editor.js"></script>
+	<base target="_self" />
+</head>
+<body onload="tinyMCEPopup.executeOnLoad('onLoadInit();');" onresize="resizeInputs();" style="display: none">
+	<form name="source" onsubmit="saveContent();" action="#">
+		<div style="float: left" class="title">{$lang_theme_code_title}</div>
+
+		<div id="wrapline" style="float: right">
+			<input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{$lang_theme_code_wordwrap}</label>
+		</div>
+
+		<br style="clear: both" />
+
+		<textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,monospace; font-size: 12px" dir="ltr" wrap="off"></textarea>
+
+		<div class="mceActionPanel">
+			<div style="float: left">
+				<input type="button" name="insert" value="{$lang_update}" onclick="saveContent();" id="insert" />
+			</div>
+
+			<div style="float: right">
+				<input type="button" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
+			</div>
+		</div>
+	</form>
+</body>
+</html>
diff --git a/tinyMCE/themes/simple/css/editor_content.css b/tinyMCE/themes/simple/css/editor_content.css
new file mode 100644
index 0000000000000000000000000000000000000000..2506c807ca31e536e17db252a4639234b662f03e
--- /dev/null
+++ b/tinyMCE/themes/simple/css/editor_content.css
@@ -0,0 +1,25 @@
+body, td, pre {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+
+body {
+	background-color: #FFFFFF;
+}
+
+.mceVisualAid {
+	border: 1px dashed #BBBBBB;
+}
+
+/* MSIE specific */
+
+* html body {
+	scrollbar-3dlight-color: #F0F0EE;
+	scrollbar-arrow-color: #676662;
+	scrollbar-base-color: #F0F0EE;
+	scrollbar-darkshadow-color: #DDDDDD;
+	scrollbar-face-color: #E0E0DD;
+	scrollbar-highlight-color: #F0F0EE;
+	scrollbar-shadow-color: #F0F0EE;
+	scrollbar-track-color: #F5F5F5;	
+}
diff --git a/tinyMCE/themes/simple/css/editor_popup.css b/tinyMCE/themes/simple/css/editor_popup.css
new file mode 100644
index 0000000000000000000000000000000000000000..f29b04a55b2d0cc17083a36f0fa0bd495bf5995d
--- /dev/null
+++ b/tinyMCE/themes/simple/css/editor_popup.css
@@ -0,0 +1,41 @@
+body {
+	background-color: #F0F0EE;
+	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: #DDDDDD;
+	scrollbar-face-color: #E0E0DD;
+	scrollbar-highlight-color: #F0F0EE;
+	scrollbar-shadow-color: #F0F0EE;
+	scrollbar-track-color: #F5F5F5;
+}
+
+td {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px;
+}
+
+input {
+	background: #FFFFFF;
+	border: 1px solid #cccccc;
+}
+
+td, input, select, textarea {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 10px;
+}
+
+input, select, textarea {
+	border: 1px solid #808080;
+}
+
+.input_noborder {
+	border: 0;
+}
+
+.title {
+	font-size: 12px;
+	font-weight: bold;
+}
\ No newline at end of file
diff --git a/tinyMCE/themes/simple/css/editor_ui.css b/tinyMCE/themes/simple/css/editor_ui.css
new file mode 100644
index 0000000000000000000000000000000000000000..6f5776820a148bb0a3bc414eeaf1f841f1c1dd55
--- /dev/null
+++ b/tinyMCE/themes/simple/css/editor_ui.css
@@ -0,0 +1,125 @@
+.mceSeparatorLine {
+	border: 0;
+	padding: 0;
+	margin-left: 4px;
+	margin-right: 2px;
+}
+
+.mceSelectList {
+	font-family: "MS Sans Serif";
+	font-size: 7pt;
+	font-weight: normal;
+	margin-top: 2px;
+}
+
+.mceLabel, .mceLabelDisabled {
+	font-family: "MS Sans Serif";
+	font-size: 9pt;
+}
+
+.mceLabel {
+	color: #000000;
+}
+
+.mceLabelDisabled {
+	cursor: text;
+	color: #999999;
+}
+
+.mceEditor {
+	background: #F0F0EE;
+	border: 1px solid #cccccc;
+}
+
+.mceEditorArea {
+	font-family: "MS Sans Serif";
+	background: #FFFFFF;
+}
+
+.mceToolbar {
+	background: #F0F0EE;
+	border-top: 1px solid #cccccc;
+	line-height: 1px;
+	font-size: 1px;
+	padding-bottom: 1px;
+}
+
+.mceEditorIframe {
+	border: 0;
+}
+
+/* Button CSS rules */
+
+a.mceButtonDisabled img, a.mceButtonNormal img, a.mceButtonSelected img {
+	width: 20px;
+	height: 20px;
+	cursor: default;
+	margin-top: 1px;
+	margin-left: 1px;
+}
+
+a.mceButtonDisabled img {
+	border: 0 !important;
+}
+
+a.mceButtonNormal img, a.mceButtonSelected img {
+	border: 1px solid #F0F0EE !important;
+}
+
+a.mceButtonSelected img {
+	border: 1px solid #C0C0BB !important;
+}
+
+a.mceButtonNormal img:hover, a.mceButtonSelected img:hover {
+	border: 1px solid #0A246A !important;
+	cursor: default;
+	background-color: #B6BDD2;
+}
+
+a.mceButtonDisabled img {
+	-moz-opacity:0.3;
+	opacity: 0.3;
+	border: 1px solid #F0F0EE !important;
+	cursor: default;
+}
+
+a.mceTiledButton img {
+	background-image: url('../images/buttons.gif');
+	background-repeat: no-repeat;
+}
+
+/* MSIE specific rules */
+
+* html a.mceButtonNormal img, * html a.mceButtonSelected img, * html a.mceButtonDisabled img {
+	border: 0px !important;
+	margin-top: 2px;
+	margin-bottom: 1px;
+}
+
+* html a.mceButtonDisabled img {
+	filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
+	border: 0px !important;
+}
+
+* html a.mceButtonDisabled {
+	border: 1px solid #F0F0EE !important;
+}
+
+* html a.mceButtonNormal, * html a.mceButtonSelected {
+	border: 1px solid #F0F0EE;
+	cursor: default;
+}
+
+* html a.mceButtonSelected {
+	border: 1px solid #C0C0BB;
+}
+
+* html a.mceButtonNormal:hover, * html a.mceButtonSelected:hover {
+	border: 1px solid #0A246A;
+	cursor: default;
+	background-color: #B6BDD2;
+}
+
+* html .mceSelectList {
+	margin-top: 2px;
+}
diff --git a/tinyMCE/themes/simple/editor_template.js b/tinyMCE/themes/simple/editor_template.js
new file mode 100644
index 0000000000000000000000000000000000000000..ef99fa29d6fc8b2d82884da5f3ab39e167bd3c39
--- /dev/null
+++ b/tinyMCE/themes/simple/editor_template.js
@@ -0,0 +1 @@
+var TinyMCE_SimpleTheme={_buttonMap:'bold,bullist,cleanup,italic,numlist,redo,strikethrough,underline,undo',getEditorTemplate:function(){var html='';html+='<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}">';html+='<tr><td align="center">';html+='<span id="{$editor_id}">IFRAME</span>';html+='</td></tr>';html+='<tr><td class="mceToolbar" align="center" height="1">';html+=tinyMCE.getButtonHTML('bold','lang_bold_desc','{$themeurl}/images/{$lang_bold_img}','Bold');html+=tinyMCE.getButtonHTML('italic','lang_italic_desc','{$themeurl}/images/{$lang_italic_img}','Italic');html+=tinyMCE.getButtonHTML('underline','lang_underline_desc','{$themeurl}/images/{$lang_underline_img}','Underline');html+=tinyMCE.getButtonHTML('strikethrough','lang_striketrough_desc','{$themeurl}/images/strikethrough.gif','Strikethrough');html+='<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';html+=tinyMCE.getButtonHTML('undo','lang_undo_desc','{$themeurl}/images/undo.gif','Undo');html+=tinyMCE.getButtonHTML('redo','lang_redo_desc','{$themeurl}/images/redo.gif','Redo');html+='<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';html+=tinyMCE.getButtonHTML('cleanup','lang_cleanup_desc','{$themeurl}/images/cleanup.gif','mceCleanup');html+='<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';html+=tinyMCE.getButtonHTML('bullist','lang_bullist_desc','{$themeurl}/images/bullist.gif','InsertUnorderedList');html+=tinyMCE.getButtonHTML('numlist','lang_numlist_desc','{$themeurl}/images/numlist.gif','InsertOrderedList');html+='</td></tr></table>';return{delta_width:0,delta_height:20,html:html}},handleNodeChange:function(editor_id,node){tinyMCE.switchClass(editor_id+'_bold','mceButtonNormal');tinyMCE.switchClass(editor_id+'_italic','mceButtonNormal');tinyMCE.switchClass(editor_id+'_underline','mceButtonNormal');tinyMCE.switchClass(editor_id+'_strikethrough','mceButtonNormal');tinyMCE.switchClass(editor_id+'_bullist','mceButtonNormal');tinyMCE.switchClass(editor_id+'_numlist','mceButtonNormal');do{switch(node.nodeName.toLowerCase()){case"b":case"strong":tinyMCE.switchClass(editor_id+'_bold','mceButtonSelected');break;case"i":case"em":tinyMCE.switchClass(editor_id+'_italic','mceButtonSelected');break;case"u":tinyMCE.switchClass(editor_id+'_underline','mceButtonSelected');break;case"strike":tinyMCE.switchClass(editor_id+'_strikethrough','mceButtonSelected');break;case"ul":tinyMCE.switchClass(editor_id+'_bullist','mceButtonSelected');break;case"ol":tinyMCE.switchClass(editor_id+'_numlist','mceButtonSelected');break}}while((node=node.parentNode)!=null)}};tinyMCE.addTheme("simple",TinyMCE_SimpleTheme);tinyMCE.addButtonMap(TinyMCE_SimpleTheme._buttonMap);
\ No newline at end of file
diff --git a/tinyMCE/themes/simple/editor_template_src.js b/tinyMCE/themes/simple/editor_template_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..73a0df3d9eef7263964d59e4da40b2942e8c3003
--- /dev/null
+++ b/tinyMCE/themes/simple/editor_template_src.js
@@ -0,0 +1,84 @@
+/**
+ * $Id: editor_template_src.js 162 2007-01-03 16:16:52Z spocke $
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+var TinyMCE_SimpleTheme = {
+	// List of button ids in tile map
+	_buttonMap : 'bold,bullist,cleanup,italic,numlist,redo,strikethrough,underline,undo',
+
+	getEditorTemplate : function() {
+		var html = '';
+
+		html += '<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}">';
+		html += '<tr><td align="center">';
+		html += '<span id="{$editor_id}">IFRAME</span>';
+		html += '</td></tr>';
+		html += '<tr><td class="mceToolbar" align="center" height="1">';
+		html += tinyMCE.getButtonHTML('bold', 'lang_bold_desc', '{$themeurl}/images/{$lang_bold_img}', 'Bold');
+		html += tinyMCE.getButtonHTML('italic', 'lang_italic_desc', '{$themeurl}/images/{$lang_italic_img}', 'Italic');
+		html += tinyMCE.getButtonHTML('underline', 'lang_underline_desc', '{$themeurl}/images/{$lang_underline_img}', 'Underline');
+		html += tinyMCE.getButtonHTML('strikethrough', 'lang_striketrough_desc', '{$themeurl}/images/strikethrough.gif', 'Strikethrough');
+		html += '<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';
+		html += tinyMCE.getButtonHTML('undo', 'lang_undo_desc', '{$themeurl}/images/undo.gif', 'Undo');
+		html += tinyMCE.getButtonHTML('redo', 'lang_redo_desc', '{$themeurl}/images/redo.gif', 'Redo');
+		html += '<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';
+		html += tinyMCE.getButtonHTML('cleanup', 'lang_cleanup_desc', '{$themeurl}/images/cleanup.gif', 'mceCleanup');
+		html += '<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';
+		html += tinyMCE.getButtonHTML('bullist', 'lang_bullist_desc', '{$themeurl}/images/bullist.gif', 'InsertUnorderedList');
+		html += tinyMCE.getButtonHTML('numlist', 'lang_numlist_desc', '{$themeurl}/images/numlist.gif', 'InsertOrderedList');
+		html += '</td></tr></table>';
+
+		return {
+			delta_width : 0,
+			delta_height : 20,
+			html : html
+		};
+	},
+
+	handleNodeChange : function(editor_id, node) {
+		// Reset old states
+		tinyMCE.switchClass(editor_id + '_bold', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_italic', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_underline', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_strikethrough', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_bullist', 'mceButtonNormal');
+		tinyMCE.switchClass(editor_id + '_numlist', 'mceButtonNormal');
+
+		// Handle elements
+		do {
+			switch (node.nodeName.toLowerCase()) {
+				case "b":
+				case "strong":
+					tinyMCE.switchClass(editor_id + '_bold', 'mceButtonSelected');
+				break;
+
+				case "i":
+				case "em":
+					tinyMCE.switchClass(editor_id + '_italic', 'mceButtonSelected');
+				break;
+
+				case "u":
+					tinyMCE.switchClass(editor_id + '_underline', 'mceButtonSelected');
+				break;
+
+				case "strike":
+					tinyMCE.switchClass(editor_id + '_strikethrough', 'mceButtonSelected');
+				break;
+				
+				case "ul":
+					tinyMCE.switchClass(editor_id + '_bullist', 'mceButtonSelected');
+				break;
+
+				case "ol":
+					tinyMCE.switchClass(editor_id + '_numlist', 'mceButtonSelected');
+				break;
+			}
+		} while ((node = node.parentNode) != null);
+	}
+};
+
+tinyMCE.addTheme("simple", TinyMCE_SimpleTheme);
+tinyMCE.addButtonMap(TinyMCE_SimpleTheme._buttonMap);
diff --git a/tinyMCE/themes/simple/images/bold.gif b/tinyMCE/themes/simple/images/bold.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d6a9cc2cd4117526156fa29c06156ba5971823c4
Binary files /dev/null and b/tinyMCE/themes/simple/images/bold.gif differ
diff --git a/tinyMCE/themes/simple/images/bold_de_se.gif b/tinyMCE/themes/simple/images/bold_de_se.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9b129de25e916946792c89f08a7b30b2f9dc8b72
Binary files /dev/null and b/tinyMCE/themes/simple/images/bold_de_se.gif differ
diff --git a/tinyMCE/themes/simple/images/bold_fr.gif b/tinyMCE/themes/simple/images/bold_fr.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2816454515a2b3d031ee1762f9308db99e9d3940
Binary files /dev/null and b/tinyMCE/themes/simple/images/bold_fr.gif differ
diff --git a/tinyMCE/themes/simple/images/bold_ru.gif b/tinyMCE/themes/simple/images/bold_ru.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e000d461c96188c26fe081920ba332593e5b60ca
Binary files /dev/null and b/tinyMCE/themes/simple/images/bold_ru.gif differ
diff --git a/tinyMCE/themes/simple/images/bold_tw.gif b/tinyMCE/themes/simple/images/bold_tw.gif
new file mode 100644
index 0000000000000000000000000000000000000000..82085432c622fb9b195d45480ce0c00f80d24027
Binary files /dev/null and b/tinyMCE/themes/simple/images/bold_tw.gif differ
diff --git a/tinyMCE/themes/simple/images/bullist.gif b/tinyMCE/themes/simple/images/bullist.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e19467c70e337bbfb2a3fe3eff1bc3acab0eaec
Binary files /dev/null and b/tinyMCE/themes/simple/images/bullist.gif differ
diff --git a/tinyMCE/themes/simple/images/buttons.gif b/tinyMCE/themes/simple/images/buttons.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9d86222e6358fb519f5991c7610f66a245ca603a
Binary files /dev/null and b/tinyMCE/themes/simple/images/buttons.gif differ
diff --git a/tinyMCE/themes/simple/images/cleanup.gif b/tinyMCE/themes/simple/images/cleanup.gif
new file mode 100644
index 0000000000000000000000000000000000000000..16491f6cfcf3e1123f08352c895f8010f791c469
Binary files /dev/null and b/tinyMCE/themes/simple/images/cleanup.gif differ
diff --git a/tinyMCE/themes/simple/images/italic.gif b/tinyMCE/themes/simple/images/italic.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8bb330bd0bbf61fdb5ce86388ecbeae16465bc17
Binary files /dev/null and b/tinyMCE/themes/simple/images/italic.gif differ
diff --git a/tinyMCE/themes/simple/images/italic_de_se.gif b/tinyMCE/themes/simple/images/italic_de_se.gif
new file mode 100644
index 0000000000000000000000000000000000000000..feb0309e741f4ba23356150c7838096e4420ce4d
Binary files /dev/null and b/tinyMCE/themes/simple/images/italic_de_se.gif differ
diff --git a/tinyMCE/themes/simple/images/italic_ru.gif b/tinyMCE/themes/simple/images/italic_ru.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a2bb69a725e823b8e671f0640098c4fa80939b2f
Binary files /dev/null and b/tinyMCE/themes/simple/images/italic_ru.gif differ
diff --git a/tinyMCE/themes/simple/images/italic_tw.gif b/tinyMCE/themes/simple/images/italic_tw.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4f6eeaa2b2111e9995584a66644dacd01ebf33e4
Binary files /dev/null and b/tinyMCE/themes/simple/images/italic_tw.gif differ
diff --git a/tinyMCE/themes/simple/images/numlist.gif b/tinyMCE/themes/simple/images/numlist.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a2683522f4fbca7c59cdce63c7ac20211e006f49
Binary files /dev/null and b/tinyMCE/themes/simple/images/numlist.gif differ
diff --git a/tinyMCE/themes/simple/images/redo.gif b/tinyMCE/themes/simple/images/redo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3af90697f0b74d0b6b07b585614a6dc67ff87f1d
Binary files /dev/null and b/tinyMCE/themes/simple/images/redo.gif differ
diff --git a/tinyMCE/themes/simple/images/separator.gif b/tinyMCE/themes/simple/images/separator.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4f39b809e98103422a7a8815d9e0ff23123034b5
Binary files /dev/null and b/tinyMCE/themes/simple/images/separator.gif differ
diff --git a/tinyMCE/themes/simple/images/spacer.gif b/tinyMCE/themes/simple/images/spacer.gif
new file mode 100644
index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a
Binary files /dev/null and b/tinyMCE/themes/simple/images/spacer.gif differ
diff --git a/tinyMCE/themes/simple/images/strikethrough.gif b/tinyMCE/themes/simple/images/strikethrough.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3264635918e2237257811a745f3a7e31b4369432
Binary files /dev/null and b/tinyMCE/themes/simple/images/strikethrough.gif differ
diff --git a/tinyMCE/themes/simple/images/underline.gif b/tinyMCE/themes/simple/images/underline.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1dfeb5f6d06e21a25615a9eb0cbd2a74ab0efa42
Binary files /dev/null and b/tinyMCE/themes/simple/images/underline.gif differ
diff --git a/tinyMCE/themes/simple/images/underline_fr.gif b/tinyMCE/themes/simple/images/underline_fr.gif
new file mode 100644
index 0000000000000000000000000000000000000000..551d9148d302c5f58b3b20d2c6a642450889a7ef
Binary files /dev/null and b/tinyMCE/themes/simple/images/underline_fr.gif differ
diff --git a/tinyMCE/themes/simple/images/underline_ru.gif b/tinyMCE/themes/simple/images/underline_ru.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b78e2a498fb9406ef378d7c543756db552d87cba
Binary files /dev/null and b/tinyMCE/themes/simple/images/underline_ru.gif differ
diff --git a/tinyMCE/themes/simple/images/underline_tw.gif b/tinyMCE/themes/simple/images/underline_tw.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b715390484c95c3d3311012dd541e2b46a2f4a78
Binary files /dev/null and b/tinyMCE/themes/simple/images/underline_tw.gif differ
diff --git a/tinyMCE/themes/simple/images/undo.gif b/tinyMCE/themes/simple/images/undo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..520796d69defa118055d191eec33cc67f7551710
Binary files /dev/null and b/tinyMCE/themes/simple/images/undo.gif differ
diff --git a/tinyMCE/tiny_mce.js b/tinyMCE/tiny_mce.js
new file mode 100644
index 0000000000000000000000000000000000000000..ef604804e5a88b9c6b9249baa3117a23b9c96196
--- /dev/null
+++ b/tinyMCE/tiny_mce.js
@@ -0,0 +1 @@
+function TinyMCE_Engine(){var ua;this.majorVersion="2";this.minorVersion="1.1.1";this.releaseDate="2007-05-14";this.instances=[];this.switchClassCache=[];this.windowArgs=[];this.loadedFiles=[];this.pendingFiles=[];this.loadingIndex=0;this.configs=[];this.currentConfig=0;this.eventHandlers=[];this.log=[];this.undoLevels=[];this.undoIndex=0;this.typingUndoIndex=-1;this.settings=[];ua=navigator.userAgent;this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.isMSIE5=this.isMSIE&&(ua.indexOf('MSIE 5')!=-1);this.isMSIE5_0=this.isMSIE&&(ua.indexOf('MSIE 5.0')!=-1);this.isMSIE7=this.isMSIE&&(ua.indexOf('MSIE 7')!=-1);this.isGecko=ua.indexOf('Gecko')!=-1;this.isSafari=ua.indexOf('Safari')!=-1;this.isOpera=window['opera']&&opera.buildNumber?true:false;this.isMac=ua.indexOf('Mac')!=-1;this.isNS7=ua.indexOf('Netscape/7')!=-1;this.isNS71=ua.indexOf('Netscape/7.1')!=-1;this.dialogCounter=0;this.plugins=[];this.themes=[];this.menus=[];this.loadedPlugins=[];this.buttonMap=[];this.isLoaded=false;if(this.isOpera){this.isMSIE=true;this.isGecko=false;this.isSafari=false}this.isIE=this.isMSIE;this.isRealIE=this.isMSIE&&!this.isOpera;this.idCounter=0};TinyMCE_Engine.prototype={init:function(settings){var theme,nl,baseHREF="",i,cssPath,entities,h,p,src,elements=[],head;if(this.isMSIE5_0)return;this.settings=settings;if(typeof(document.execCommand)=='undefined')return;if(!tinyMCE.baseURL){head=document.getElementsByTagName('head')[0];if(head){for(i=0,nl=head.getElementsByTagName('script');i<nl.length;i++)elements.push(nl[i])}for(i=0,nl=document.getElementsByTagName('script');i<nl.length;i++)elements.push(nl[i]);nl=document.getElementsByTagName('base');for(i=0;i<nl.length;i++){if(nl[i].href)baseHREF=nl[i].href}for(i=0;i<elements.length;i++){if(elements[i].src&&(elements[i].src.indexOf("tiny_mce.js")!=-1||elements[i].src.indexOf("tiny_mce_dev.js")!=-1||elements[i].src.indexOf("tiny_mce_src.js")!=-1||elements[i].src.indexOf("tiny_mce_gzip")!=-1)){src=elements[i].src;tinyMCE.srcMode=(src.indexOf('_src')!=-1||src.indexOf('_dev')!=-1)?'_src':'';tinyMCE.gzipMode=src.indexOf('_gzip')!=-1;src=src.substring(0,src.lastIndexOf('/'));if(settings.exec_mode=="src"||settings.exec_mode=="normal")tinyMCE.srcMode=settings.exec_mode=="src"?'_src':'';if(baseHREF!==''&&src.indexOf('://')==-1)tinyMCE.baseURL=baseHREF+src;else tinyMCE.baseURL=src;break}}}this.documentBasePath=document.location.href;if(this.documentBasePath.indexOf('?')!=-1)this.documentBasePath=this.documentBasePath.substring(0,this.documentBasePath.indexOf('?'));this.documentURL=this.documentBasePath;this.documentBasePath=this.documentBasePath.substring(0,this.documentBasePath.lastIndexOf('/'));if(tinyMCE.baseURL.indexOf('://')==-1&&tinyMCE.baseURL.charAt(0)!='/'){tinyMCE.baseURL=this.documentBasePath+"/"+tinyMCE.baseURL}this._def("mode","none");this._def("theme","advanced");this._def("plugins","",true);this._def("language","en");this._def("docs_language",this.settings.language);this._def("elements","");this._def("textarea_trigger","mce_editable");this._def("editor_selector","");this._def("editor_deselector","mceNoEditor");this._def("valid_elements","+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|style],-ul[class|style],-li[class|style],br,img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align],-sub[style|class],-sup[style|class],-blockquote[dir|style],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[style|class|align],-pre[class|align|style],address[class|align|style],-h1[id|style|dir|class|align],-h2[id|style|dir|class|align],-h3[id|style|dir|class|align],-h4[id|style|dir|class|align],-h5[id|style|dir|class|align],-h6[id|style|dir|class|align],hr[class|style],-font[face|size|style|id|class|dir|color],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],cite[title|id|class|style|dir|lang],abbr[title|id|class|style|dir|lang],acronym[title|id|class|style|dir|lang],del[title|id|class|style|dir|lang|datetime|cite],ins[title|id|class|style|dir|lang|datetime|cite]");this._def("extended_valid_elements","");this._def("invalid_elements","");this._def("encoding","");this._def("urlconverter_callback",tinyMCE.getParam("urlconvertor_callback","TinyMCE_Engine.prototype.convertURL"));this._def("save_callback","");this._def("force_br_newlines",false);this._def("force_p_newlines",true);this._def("add_form_submit_trigger",true);this._def("relative_urls",true);this._def("remove_script_host",true);this._def("focus_alert",true);this._def("document_base_url",this.documentURL);this._def("visual",true);this._def("visual_table_class","mceVisualAid");this._def("setupcontent_callback","");this._def("fix_content_duplication",true);this._def("custom_undo_redo",true);this._def("custom_undo_redo_levels",-1);this._def("custom_undo_redo_keyboard_shortcuts",true);this._def("custom_undo_redo_restore_selection",true);this._def("custom_undo_redo_global",false);this._def("verify_html",true);this._def("apply_source_formatting",false);this._def("directionality","ltr");this._def("cleanup_on_startup",false);this._def("inline_styles",false);this._def("convert_newlines_to_brs",false);this._def("auto_reset_designmode",true);this._def("entities","39,#39,160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,34,quot,38,amp,60,lt,62,gt,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro",true);this._def("entity_encoding","named");this._def("cleanup_callback","");this._def("add_unload_trigger",true);this._def("ask",false);this._def("nowrap",false);this._def("auto_resize",false);this._def("auto_focus",false);this._def("cleanup",true);this._def("remove_linebreaks",true);this._def("button_tile_map",false);this._def("submit_patch",true);this._def("browsers","msie,safari,gecko,opera",true);this._def("dialog_type","window");this._def("accessibility_warnings",true);this._def("accessibility_focus",true);this._def("merge_styles_invalid_parents","");this._def("force_hex_style_colors",true);this._def("trim_span_elements",true);this._def("convert_fonts_to_spans",false);this._def("doctype",'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');this._def("font_size_classes",'');this._def("font_size_style_values",'xx-small,x-small,small,medium,large,x-large,xx-large',true);this._def("event_elements",'a,img',true);this._def("convert_urls",true);this._def("table_inline_editing",false);this._def("object_resizing",true);this._def("custom_shortcuts",true);this._def("convert_on_click",false);this._def("content_css",'');this._def("fix_list_elements",true);this._def("fix_table_elements",false);this._def("strict_loading_mode",document.contentType=='application/xhtml+xml');this._def("hidden_tab_class",'');this._def("display_tab_class",'');this._def("gecko_spellcheck",false);this._def("hide_selects_on_submit",true);this._def("forced_root_block",false);this._def("remove_trailing_nbsp",false);if(this.isMSIE&&!this.isOpera)this.settings.strict_loading_mode=false;if(this.isMSIE&&this.settings.browsers.indexOf('msie')==-1)return;if(this.isGecko&&this.settings.browsers.indexOf('gecko')==-1)return;if(this.isSafari&&this.settings.browsers.indexOf('safari')==-1)return;if(this.isOpera&&this.settings.browsers.indexOf('opera')==-1)return;baseHREF=tinyMCE.settings.document_base_url;h=document.location.href;p=h.indexOf('://');if(p>0&&document.location.protocol!="file:"){p=h.indexOf('/',p+3);h=h.substring(0,p);if(baseHREF.indexOf('://')==-1)baseHREF=h+baseHREF;tinyMCE.settings.document_base_url=baseHREF;tinyMCE.settings.document_base_prefix=h}if(baseHREF.indexOf('?')!=-1)baseHREF=baseHREF.substring(0,baseHREF.indexOf('?'));this.settings.base_href=baseHREF.substring(0,baseHREF.lastIndexOf('/'))+"/";theme=this.settings.theme;this.inlineStrict='A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';this.inlineTransitional='A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';this.blockElms='H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';this.blockRegExp=new RegExp("^("+this.blockElms+")$","i");this.posKeyCodes=[13,45,36,35,33,34,37,38,39,40];this.uniqueURL='javascript:void(091039730);';this.uniqueTag='<div id="mceTMPElement" style="display: none">TMP</div>';this.callbacks=['onInit','getInfo','getEditorTemplate','setupContent','onChange','onPageLoad','handleNodeChange','initInstance','execCommand','getControlHTML','handleEvent','cleanup','removeInstance'];this.settings.theme_href=tinyMCE.baseURL+"/themes/"+theme;if(!tinyMCE.isIE||tinyMCE.isOpera)this.settings.force_br_newlines=false;if(tinyMCE.getParam("popups_css",false)){cssPath=tinyMCE.getParam("popups_css","");if(cssPath.indexOf('://')==-1&&cssPath.charAt(0)!='/')this.settings.popups_css=this.documentBasePath+"/"+cssPath;else this.settings.popups_css=cssPath}else this.settings.popups_css=tinyMCE.baseURL+"/themes/"+theme+"/css/editor_popup.css";if(tinyMCE.getParam("editor_css",false)){cssPath=tinyMCE.getParam("editor_css","");if(cssPath.indexOf('://')==-1&&cssPath.charAt(0)!='/')this.settings.editor_css=this.documentBasePath+"/"+cssPath;else this.settings.editor_css=cssPath}else{if(this.settings.editor_css!=='')this.settings.editor_css=tinyMCE.baseURL+"/themes/"+theme+"/css/editor_ui.css"}if(this.configs.length==0){if(typeof(TinyMCECompressed)=="undefined"){tinyMCE.addEvent(window,"DOMContentLoaded",TinyMCE_Engine.prototype.onLoad);if(tinyMCE.isRealIE){if(document.body)tinyMCE.addEvent(document.body,"readystatechange",TinyMCE_Engine.prototype.onLoad);else tinyMCE.addEvent(document,"readystatechange",TinyMCE_Engine.prototype.onLoad)}tinyMCE.addEvent(window,"load",TinyMCE_Engine.prototype.onLoad);tinyMCE._addUnloadEvents()}}this.loadScript(tinyMCE.baseURL+'/themes/'+this.settings.theme+'/editor_template'+tinyMCE.srcMode+'.js');this.loadScript(tinyMCE.baseURL+'/langs/'+this.settings.language+'.js');this.loadCSS(this.settings.editor_css);p=tinyMCE.getParam('plugins','',true,',');if(p.length>0){for(i=0;i<p.length;i++){if(p[i].charAt(0)!='-')this.loadScript(tinyMCE.baseURL+'/plugins/'+p[i]+'/editor_plugin'+tinyMCE.srcMode+'.js')}}if(tinyMCE.getParam('entity_encoding')=='named'){settings.cleanup_entities=[];entities=tinyMCE.getParam('entities','',true,',');for(i=0;i<entities.length;i+=2)settings.cleanup_entities['c'+entities[i]]=entities[i+1]}settings.index=this.configs.length;this.configs[this.configs.length]=settings;this.loadNextScript();if(this.isIE&&!this.isOpera){try{document.execCommand('BackgroundImageCache',false,true)}catch(e){}}this.xmlEncodeRe=new RegExp('[<>&"]','g')},_addUnloadEvents:function(){var st=tinyMCE.settings.add_unload_trigger;if(tinyMCE.isIE){if(st){tinyMCE.addEvent(window,"unload",TinyMCE_Engine.prototype.unloadHandler);tinyMCE.addEvent(window.document,"beforeunload",TinyMCE_Engine.prototype.unloadHandler)}}else{if(st)tinyMCE.addEvent(window,"unload",function(){tinyMCE.triggerSave(true,true)})}},_def:function(key,def_val,t){var v=tinyMCE.getParam(key,def_val);v=t?v.replace(/\s+/g,""):v;this.settings[key]=v},hasPlugin:function(n){return typeof(this.plugins[n])!="undefined"&&this.plugins[n]!=null},addPlugin:function(n,p){var op=this.plugins[n];p.baseURL=op?op.baseURL:tinyMCE.baseURL+"/plugins/"+n;this.plugins[n]=p;this.loadNextScript()},setPluginBaseURL:function(n,u){var op=this.plugins[n];if(op)op.baseURL=u;else this.plugins[n]={baseURL:u}},loadPlugin:function(n,u){u=u.indexOf('.js')!=-1?u.substring(0,u.lastIndexOf('/')):u;u=u.charAt(u.length-1)=='/'?u.substring(0,u.length-1):u;this.plugins[n]={baseURL:u};this.loadScript(u+"/editor_plugin"+(tinyMCE.srcMode?'_src':'')+".js")},hasTheme:function(n){return typeof(this.themes[n])!="undefined"&&this.themes[n]!=null},addTheme:function(n,t){this.themes[n]=t;this.loadNextScript()},addMenu:function(n,m){this.menus[n]=m},hasMenu:function(n){return typeof(this.plugins[n])!="undefined"&&this.plugins[n]!=null},loadScript:function(url){var i;for(i=0;i<this.loadedFiles.length;i++){if(this.loadedFiles[i]==url)return}if(tinyMCE.settings.strict_loading_mode)this.pendingFiles[this.pendingFiles.length]=url;else document.write('<sc'+'ript language="javascript" type="text/javascript" src="'+url+'"></script>');this.loadedFiles[this.loadedFiles.length]=url},loadNextScript:function(){var d=document,se;if(!tinyMCE.settings.strict_loading_mode)return;if(this.loadingIndex<this.pendingFiles.length){se=d.createElementNS('http://www.w3.org/1999/xhtml','script');se.setAttribute('language','javascript');se.setAttribute('type','text/javascript');se.setAttribute('src',this.pendingFiles[this.loadingIndex++]);d.getElementsByTagName("head")[0].appendChild(se)}else this.loadingIndex=-1;},loadCSS:function(url){var ar=url.replace(/\s+/,'').split(',');var lflen=0,csslen=0,skip=false;var x=0,i=0,nl,le;for(x=0,csslen=ar.length;x<csslen;x++){if(ar[x]!=null&&ar[x]!='null'&&ar[x].length>0){for(i=0,lflen=this.loadedFiles.length;i<lflen;i++){if(this.loadedFiles[i]==ar[x]){skip=true;break}}if(!skip){if(tinyMCE.settings.strict_loading_mode){nl=document.getElementsByTagName("head");le=document.createElement('link');le.setAttribute('href',ar[x]);le.setAttribute('rel','stylesheet');le.setAttribute('type','text/css');nl[0].appendChild(le)}else document.write('<link href="'+ar[x]+'" rel="stylesheet" type="text/css" />');this.loadedFiles[this.loadedFiles.length]=ar[x]}}}},importCSS:function(doc,css){var css_ary=css.replace(/\s+/,'').split(',');var csslen,elm,headArr,x,css_file;for(x=0,csslen=css_ary.length;x<csslen;x++){css_file=css_ary[x];if(css_file!=null&&css_file!='null'&&css_file.length>0){if(css_file.indexOf('://')==-1&&css_file.charAt(0)!='/')css_file=this.documentBasePath+"/"+css_file;if(typeof(doc.createStyleSheet)=="undefined"){elm=doc.createElement("link");elm.rel="stylesheet";elm.href=css_file;if((headArr=doc.getElementsByTagName("head"))!=null&&headArr.length>0)headArr[0].appendChild(elm)}else doc.createStyleSheet(css_file)}}},confirmAdd:function(e,settings){var elm=tinyMCE.isIE?event.srcElement:e.target;var elementId=elm.name?elm.name:elm.id;tinyMCE.settings=settings;if(tinyMCE.settings.convert_on_click||(!elm.getAttribute('mce_noask')&&confirm(tinyMCELang.lang_edit_confirm)))tinyMCE.addMCEControl(elm,elementId);elm.setAttribute('mce_noask','true')},updateContent:function(form_element_name){var formElement,n,inst,doc;formElement=document.getElementById(form_element_name);for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;inst.switchSettings();if(inst.formElement==formElement){doc=inst.getDoc();tinyMCE._setHTML(doc,inst.formElement.value);if(!tinyMCE.isIE)doc.body.innerHTML=tinyMCE._cleanupHTML(inst,doc,this.settings,doc.body,inst.visualAid)}}},addMCEControl:function(replace_element,form_element_name,target_document){var id="mce_editor_"+tinyMCE.idCounter++;var inst=new TinyMCE_Control(tinyMCE.settings);inst.editorId=id;this.instances[id]=inst;inst._onAdd(replace_element,form_element_name,target_document)},removeInstance:function(ti){var t=[],n,i;for(n in tinyMCE.instances){i=tinyMCE.instances[n];if(tinyMCE.isInstance(i)&&ti!=i)t[n]=i}tinyMCE.instances=t;n=[];t=tinyMCE.undoLevels;for(i=0;i<t.length;i++){if(t[i]!=ti)n.push(t[i])}tinyMCE.undoLevels=n;tinyMCE.undoIndex=n.length;tinyMCE.dispatchCallback(ti,'remove_instance_callback','removeInstance',ti);return ti},removeMCEControl:function(editor_id){var inst=tinyMCE.getInstanceById(editor_id),h,re,ot,tn;if(inst){inst.switchSettings();editor_id=inst.editorId;h=tinyMCE.getContent(editor_id);this.removeInstance(inst);tinyMCE.selectedElement=null;tinyMCE.selectedInstance=null;re=document.getElementById(editor_id+"_parent");ot=inst.oldTargetElement;tn=ot.nodeName.toLowerCase();if(tn=="textarea"||tn=="input"){re.parentNode.removeChild(re);ot.style.display="inline";ot.value=h}else{ot.innerHTML=h;ot.style.display='block';re.parentNode.insertBefore(ot,re);re.parentNode.removeChild(re)}}},triggerSave:function(skip_cleanup,skip_callback){var inst,n;if(typeof(skip_cleanup)=="undefined")skip_cleanup=false;if(typeof(skip_callback)=="undefined")skip_callback=false;for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;inst.triggerSave(skip_cleanup,skip_callback)}},resetForm:function(form_index){var i,inst,n,formObj=document.forms[form_index];for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;inst.switchSettings();for(i=0;i<formObj.elements.length;i++){if(inst.formTargetElementId==formObj.elements[i].name)inst.getBody().innerHTML=inst.startContent}}},execInstanceCommand:function(editor_id,command,user_interface,value,focus){var inst=tinyMCE.getInstanceById(editor_id),r;if(inst){r=inst.selection.getRng();if(typeof(focus)=="undefined")focus=true;if(focus&&(!r||!r.item))inst.contentWindow.focus();inst.autoResetDesignMode();this.selectedElement=inst.getFocusElement();inst.select();tinyMCE.execCommand(command,user_interface,value);if(tinyMCE.isIE&&window.event!=null)tinyMCE.cancelEvent(window.event)}},execCommand:function(command,user_interface,value){var inst=tinyMCE.selectedInstance,n,pe,te;user_interface=user_interface?user_interface:false;value=value?value:null;if(inst)inst.switchSettings();switch(command){case"Undo":if(this.getParam('custom_undo_redo_global')){if(this.undoIndex>0){tinyMCE.nextUndoRedoAction='Undo';inst=this.undoLevels[--this.undoIndex];inst.select();if(!tinyMCE.nextUndoRedoInstanceId)inst.execCommand('Undo')}}else inst.execCommand('Undo');return true;case"Redo":if(this.getParam('custom_undo_redo_global')){if(this.undoIndex<=this.undoLevels.length-1){tinyMCE.nextUndoRedoAction='Redo';inst=this.undoLevels[this.undoIndex++];inst.select();if(!tinyMCE.nextUndoRedoInstanceId)inst.execCommand('Redo')}}else inst.execCommand('Redo');return true;case'mceFocus':inst=tinyMCE.getInstanceById(value);if(inst)inst.getWin().focus();return;case"mceAddControl":case"mceAddEditor":tinyMCE.addMCEControl(tinyMCE._getElementById(value),value);return;case"mceAddFrameControl":tinyMCE.addMCEControl(tinyMCE._getElementById(value.element,value.document),value.element,value.document);return;case"mceRemoveControl":case"mceRemoveEditor":tinyMCE.removeMCEControl(value);return;case"mceToggleEditor":inst=tinyMCE.getInstanceById(value);if(inst){pe=document.getElementById(inst.editorId+'_parent');te=inst.oldTargetElement;if(typeof(inst.enabled)=='undefined')inst.enabled=true;inst.enabled=!inst.enabled;if(!inst.enabled){pe.style.display='none';if(te.nodeName=='TEXTAREA'||te.nodeName=='INPUT')te.value=inst.getHTML();else te.innerHTML=inst.getHTML();te.style.display=inst.oldTargetDisplay;tinyMCE.dispatchCallback(inst,'hide_instance_callback','hideInstance',inst)}else{pe.style.display='block';te.style.display='none';if(te.nodeName=='TEXTAREA'||te.nodeName=='INPUT')inst.setHTML(te.value);else inst.setHTML(te.innerHTML);inst.useCSS=false;tinyMCE.dispatchCallback(inst,'show_instance_callback','showInstance',inst)}}else tinyMCE.addMCEControl(tinyMCE._getElementById(value),value);return;case"mceResetDesignMode":if(tinyMCE.isGecko){for(n in tinyMCE.instances){if(!tinyMCE.isInstance(tinyMCE.instances[n]))continue;try{tinyMCE.instances[n].getDoc().designMode="off";tinyMCE.instances[n].getDoc().designMode="on";tinyMCE.instances[n].useCSS=false}catch(e){}}}return}if(inst){inst.execCommand(command,user_interface,value)}else if(tinyMCE.settings.focus_alert)alert(tinyMCELang.lang_focus_alert)},_createIFrame:function(replace_element,doc,win){var iframe,id=replace_element.getAttribute("id");var aw,ah;if(typeof(doc)=="undefined")doc=document;if(typeof(win)=="undefined")win=window;iframe=doc.createElement("iframe");aw=""+tinyMCE.settings.area_width;ah=""+tinyMCE.settings.area_height;if(aw.indexOf('%')==-1){aw=parseInt(aw);aw=(isNaN(aw)||aw<0)?300:aw;aw=aw+"px"}if(ah.indexOf('%')==-1){ah=parseInt(ah);ah=(isNaN(ah)||ah<0)?240:ah;ah=ah+"px"}iframe.setAttribute("id",id);iframe.setAttribute("name",id);iframe.setAttribute("class","mceEditorIframe");iframe.setAttribute("border","0");iframe.setAttribute("frameBorder","0");iframe.setAttribute("marginWidth","0");iframe.setAttribute("marginHeight","0");iframe.setAttribute("leftMargin","0");iframe.setAttribute("topMargin","0");iframe.setAttribute("width",aw);iframe.setAttribute("height",ah);iframe.setAttribute("allowtransparency","true");iframe.className='mceEditorIframe';if(tinyMCE.settings.auto_resize)iframe.setAttribute("scrolling","no");if(tinyMCE.isRealIE)iframe.setAttribute("src",this.settings.default_document);iframe.style.width=aw;iframe.style.height=ah;if(tinyMCE.settings.strict_loading_mode)iframe.style.marginBottom='-5px';if(tinyMCE.isRealIE)replace_element.outerHTML=iframe.outerHTML;else replace_element.parentNode.replaceChild(iframe,replace_element);if(tinyMCE.isRealIE)return win.frames[id];else return iframe},setupContent:function(editor_id){var inst=tinyMCE.instances[editor_id],i,doc=inst.getDoc(),head=doc.getElementsByTagName('head').item(0);var content=inst.startContent,contentElement,body;if(tinyMCE.settings.strict_loading_mode){content=content.replace(/&lt;/g,'<');content=content.replace(/&gt;/g,'>');content=content.replace(/&quot;/g,'"');content=content.replace(/&amp;/g,'&')}tinyMCE.selectedInstance=inst;inst.switchSettings();if(!tinyMCE.isIE&&tinyMCE.getParam("setupcontent_reload",false)&&doc.title!="blank_page"){try{doc.location.href=tinyMCE.baseURL+"/blank.htm"}catch(ex){}window.setTimeout("tinyMCE.setupContent('"+editor_id+"');",1000);return}if(!head||!doc.body){window.setTimeout("tinyMCE.setupContent('"+editor_id+"');",10);return}tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/themes/"+inst.settings.theme+"/css/editor_content.css");tinyMCE.importCSS(inst.getDoc(),inst.settings.content_css);tinyMCE.dispatchCallback(inst,'init_instance_callback','initInstance',inst);if(tinyMCE.getParam('custom_undo_redo_keyboard_shortcuts')){inst.addShortcut('ctrl','z','lang_undo_desc','Undo');inst.addShortcut('ctrl','y','lang_redo_desc','Redo')}for(i=1;i<=6;i++)inst.addShortcut('ctrl',''+i,'','FormatBlock',false,'<h'+i+'>');inst.addShortcut('ctrl','7','','FormatBlock',false,'<p>');inst.addShortcut('ctrl','8','','FormatBlock',false,'<div>');inst.addShortcut('ctrl','9','','FormatBlock',false,'<address>');if(tinyMCE.isGecko){inst.addShortcut('ctrl','b','lang_bold_desc','Bold');inst.addShortcut('ctrl','i','lang_italic_desc','Italic');inst.addShortcut('ctrl','u','lang_underline_desc','Underline')}if(tinyMCE.getParam("convert_fonts_to_spans"))inst.getBody().setAttribute('id','mceSpanFonts');if(tinyMCE.settings.nowrap)doc.body.style.whiteSpace="nowrap";doc.body.dir=this.settings.directionality;doc.editorId=editor_id;if(!tinyMCE.isIE)doc.documentElement.editorId=editor_id;inst.setBaseHREF(tinyMCE.settings.base_href);if(tinyMCE.settings.convert_newlines_to_brs){content=tinyMCE.regexpReplace(content,"\r\n","<br />","gi");content=tinyMCE.regexpReplace(content,"\r","<br />","gi");content=tinyMCE.regexpReplace(content,"\n","<br />","gi")}content=tinyMCE.storeAwayURLs(content);content=tinyMCE._customCleanup(inst,"insert_to_editor",content);if(tinyMCE.isIE){window.setInterval('try{tinyMCE.getCSSClasses(tinyMCE.instances["'+editor_id+'"].getDoc(), "'+editor_id+'");}catch(e){}',500);if(tinyMCE.settings.force_br_newlines)doc.styleSheets[0].addRule("p","margin: 0;");body=inst.getBody();body.editorId=editor_id}content=tinyMCE.cleanupHTMLCode(content);if(!tinyMCE.isIE){contentElement=inst.getDoc().createElement("body");doc=inst.getDoc();contentElement.innerHTML=content;if(tinyMCE.settings.cleanup_on_startup)tinyMCE.setInnerHTML(inst.getBody(),tinyMCE._cleanupHTML(inst,doc,this.settings,contentElement));else tinyMCE.setInnerHTML(inst.getBody(),content);tinyMCE.convertAllRelativeURLs(inst.getBody())}else{if(tinyMCE.settings.cleanup_on_startup){tinyMCE._setHTML(inst.getDoc(),content);try{tinyMCE.setInnerHTML(inst.getBody(),tinyMCE._cleanupHTML(inst,inst.contentDocument,this.settings,inst.getBody()))}catch(e){}}else tinyMCE._setHTML(inst.getDoc(),content)}tinyMCE.handleVisualAid(inst.getBody(),true,tinyMCE.settings.visual,inst);tinyMCE.dispatchCallback(inst,'setupcontent_callback','setupContent',editor_id,inst.getBody(),inst.getDoc());if(!tinyMCE.isIE)tinyMCE.addEventHandlers(inst);if(tinyMCE.isIE){tinyMCE.addEvent(inst.getBody(),"blur",TinyMCE_Engine.prototype._eventPatch);tinyMCE.addEvent(inst.getBody(),"beforedeactivate",TinyMCE_Engine.prototype._eventPatch);if(!tinyMCE.isOpera){tinyMCE.addEvent(doc.body,"mousemove",TinyMCE_Engine.prototype.onMouseMove);tinyMCE.addEvent(doc.body,"beforepaste",TinyMCE_Engine.prototype._eventPatch);tinyMCE.addEvent(doc.body,"drop",TinyMCE_Engine.prototype._eventPatch)}}inst.select();tinyMCE.selectedElement=inst.contentWindow.document.body;tinyMCE._customCleanup(inst,"insert_to_editor_dom",inst.getBody());tinyMCE._customCleanup(inst,"setup_content_dom",inst.getBody());tinyMCE._setEventsEnabled(inst.getBody(),false);tinyMCE.cleanupAnchors(inst.getDoc());if(tinyMCE.getParam("convert_fonts_to_spans"))tinyMCE.convertSpansToFonts(inst.getDoc());inst.startContent=tinyMCE.trim(inst.getBody().innerHTML);inst.undoRedo.add({content:inst.startContent});if(tinyMCE.isGecko){tinyMCE.selectNodes(inst.getBody(),function(n){if(n.nodeType==3||n.nodeType==8)n.nodeValue=n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"','gi'),"");return false})}if(tinyMCE.isGecko)inst.getBody().spellcheck=tinyMCE.getParam("gecko_spellcheck");tinyMCE._removeInternal(inst.getBody());inst.select();tinyMCE.triggerNodeChange(false,true)},storeAwayURLs:function(s){if(!s.match(/(mce_src|mce_href)/gi,s)){s=s.replace(new RegExp('src\\s*=\\s*\"([^ >\"]*)\"','gi'),'src="$1" mce_src="$1"');s=s.replace(new RegExp('href\\s*=\\s*\"([^ >\"]*)\"','gi'),'href="$1" mce_href="$1"')}return s},_removeInternal:function(n){if(tinyMCE.isGecko){tinyMCE.selectNodes(n,function(n){if(n.nodeType==3||n.nodeType==8)n.nodeValue=n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"','gi'),"");return false})}},removeTinyMCEFormElements:function(form_obj){var i,elementId;if(!tinyMCE.getParam('hide_selects_on_submit'))return;if(typeof(form_obj)=="undefined"||form_obj==null)return;if(form_obj.nodeName!="FORM"){if(form_obj.form)form_obj=form_obj.form;else form_obj=tinyMCE.getParentElement(form_obj,"form")}if(form_obj==null)return;for(i=0;i<form_obj.elements.length;i++){elementId=form_obj.elements[i].name?form_obj.elements[i].name:form_obj.elements[i].id;if(elementId.indexOf('mce_editor_')==0)form_obj.elements[i].disabled=true}},handleEvent:function(e){var inst=tinyMCE.selectedInstance,i,elm,keys;if(typeof(tinyMCE)=="undefined")return true;if(tinyMCE.executeCallback(tinyMCE.selectedInstance,'handle_event_callback','handleEvent',e))return false;switch(e.type){case"beforedeactivate":case"blur":if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.execCommand('mceEndTyping');tinyMCE.hideMenus();return;case"drop":case"beforepaste":if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.setBaseHREF(null);if(tinyMCE.isRealIE){var ife=tinyMCE.selectedInstance.iframeElement;if(ife.style.height.indexOf('%')!=-1){ife._oldHeight=ife.style.height;ife.style.height=ife.clientHeight}}window.setTimeout("tinyMCE.selectedInstance.setBaseHREF(tinyMCE.settings.base_href);tinyMCE._resetIframeHeight();",1);return;case"submit":tinyMCE.formSubmit(tinyMCE.isMSIE?window.event.srcElement:e.target);return;case"reset":var formObj=tinyMCE.isIE?window.event.srcElement:e.target;for(i=0;i<document.forms.length;i++){if(document.forms[i]==formObj)window.setTimeout('tinyMCE.resetForm('+i+');',10)}return;case"keypress":if(inst&&inst.handleShortcut(e))return false;if(e.target.editorId){tinyMCE.instances[e.target.editorId].select()}else{if(e.target.ownerDocument.editorId)tinyMCE.instances[e.target.ownerDocument.editorId].select()}if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.switchSettings();if((tinyMCE.isGecko||tinyMCE.isOpera||tinyMCE.isSafari)&&tinyMCE.settings.force_p_newlines&&e.keyCode==13&&!e.shiftKey){if(TinyMCE_ForceParagraphs._insertPara(tinyMCE.selectedInstance,e)){tinyMCE.execCommand("mceAddUndoLevel");return tinyMCE.cancelEvent(e)}}if((tinyMCE.isGecko&&!tinyMCE.isSafari)&&tinyMCE.settings.force_p_newlines&&(e.keyCode==8||e.keyCode==46)&&!e.shiftKey){if(TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance,e.type)){tinyMCE.execCommand("mceAddUndoLevel");return tinyMCE.cancelEvent(e)}}if(tinyMCE.isIE&&tinyMCE.settings.force_br_newlines&&e.keyCode==13){if(e.target.editorId)tinyMCE.instances[e.target.editorId].select();if(tinyMCE.selectedInstance){var sel=tinyMCE.selectedInstance.getDoc().selection;var rng=sel.createRange();if(tinyMCE.getParentElement(rng.parentElement(),"li")!=null)return false;e.returnValue=false;e.cancelBubble=true;rng.pasteHTML("<br />");rng.collapse(false);rng.select();tinyMCE.execCommand("mceAddUndoLevel");tinyMCE.triggerNodeChange(false);return false}}if(e.keyCode==8||e.keyCode==46){tinyMCE.selectedElement=e.target;tinyMCE.linkElement=tinyMCE.getParentElement(e.target,"a");tinyMCE.imgElement=tinyMCE.getParentElement(e.target,"img");tinyMCE.triggerNodeChange(false)}return false;case"keyup":case"keydown":tinyMCE.hideMenus();tinyMCE.hasMouseMoved=false;if(inst&&inst.handleShortcut(e))return false;inst._fixRootBlocks();if(inst.settings.remove_trailing_nbsp)inst._fixTrailingNbsp();if(e.target.editorId)tinyMCE.instances[e.target.editorId].select();if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.switchSettings();inst=tinyMCE.selectedInstance;if(tinyMCE.isGecko&&tinyMCE.settings.force_p_newlines&&(e.keyCode==8||e.keyCode==46)&&!e.shiftKey){if(TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance,e.type)){tinyMCE.execCommand("mceAddUndoLevel");e.preventDefault();return false}}tinyMCE.selectedElement=null;tinyMCE.selectedNode=null;elm=tinyMCE.selectedInstance.getFocusElement();tinyMCE.linkElement=tinyMCE.getParentElement(elm,"a");tinyMCE.imgElement=tinyMCE.getParentElement(elm,"img");tinyMCE.selectedElement=elm;if(tinyMCE.isGecko&&e.type=="keyup"&&e.keyCode==9)tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(),true,tinyMCE.settings.visual,tinyMCE.selectedInstance);if(tinyMCE.isIE&&e.type=="keydown"&&e.keyCode==13)tinyMCE.enterKeyElement=tinyMCE.selectedInstance.getFocusElement();if(tinyMCE.isIE&&e.type=="keyup"&&e.keyCode==13){elm=tinyMCE.enterKeyElement;if(elm){var re=new RegExp('^HR|IMG|BR$','g');var dre=new RegExp('^H[1-6]$','g');if(!elm.hasChildNodes()&&!re.test(elm.nodeName)){if(dre.test(elm.nodeName))elm.innerHTML="&nbsp;&nbsp;";else elm.innerHTML="&nbsp;"}}}keys=tinyMCE.posKeyCodes;var posKey=false;for(i=0;i<keys.length;i++){if(keys[i]==e.keyCode){posKey=true;break}}if(tinyMCE.isIE&&tinyMCE.settings.custom_undo_redo){keys=[8,46];for(i=0;i<keys.length;i++){if(keys[i]==e.keyCode){if(e.type=="keyup")tinyMCE.triggerNodeChange(false)}}}if(e.keyCode==17)return true;if(tinyMCE.isGecko){if(!posKey&&e.type=="keyup"&&!e.ctrlKey||(e.ctrlKey&&(e.keyCode==86||e.keyCode==88)))tinyMCE.execCommand("mceStartTyping")}else{if(!posKey&&e.type=="keyup")tinyMCE.execCommand("mceStartTyping")}if(e.type=="keydown"&&(posKey||e.ctrlKey)&&inst)inst.undoBookmark=inst.selection.getBookmark();if(e.type=="keyup"&&(posKey||e.ctrlKey))tinyMCE.execCommand("mceEndTyping");if(posKey&&e.type=="keyup")tinyMCE.triggerNodeChange(false);if(tinyMCE.isIE&&e.ctrlKey)window.setTimeout('tinyMCE.triggerNodeChange(false);',1);break;case"mousedown":case"mouseup":case"click":case"dblclick":case"focus":tinyMCE.hideMenus();if(tinyMCE.selectedInstance){tinyMCE.selectedInstance.switchSettings();tinyMCE.selectedInstance.isFocused=true}var targetBody=tinyMCE.getParentElement(e.target,"html");for(var instanceName in tinyMCE.instances){if(!tinyMCE.isInstance(tinyMCE.instances[instanceName]))continue;inst=tinyMCE.instances[instanceName];inst.autoResetDesignMode();if(inst.getBody().parentNode==targetBody){inst.select();tinyMCE.selectedElement=e.target;tinyMCE.linkElement=tinyMCE.getParentElement(tinyMCE.selectedElement,"a");tinyMCE.imgElement=tinyMCE.getParentElement(tinyMCE.selectedElement,"img");break}}if(!tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark&&(e.type=="mouseup"||e.type=="dblclick"))tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark=tinyMCE.selectedInstance.selection.getBookmark();if(e.type!="focus")tinyMCE.selectedNode=null;tinyMCE.triggerNodeChange(false);tinyMCE.execCommand("mceEndTyping");if(e.type=="mouseup")tinyMCE.execCommand("mceAddUndoLevel");if(!tinyMCE.selectedInstance&&e.target.editorId)tinyMCE.instances[e.target.editorId].select();return false}},getButtonHTML:function(id,lang,img,cmd,ui,val){var h='',m,x,io='';cmd='tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+cmd+'\'';if(typeof(ui)!="undefined"&&ui!=null)cmd+=','+ui;if(typeof(val)!="undefined"&&val!=null)cmd+=",'"+val+"'";cmd+=');';if(tinyMCE.isRealIE)io='onmouseover="tinyMCE.lastHover = this;"';if(tinyMCE.getParam('button_tile_map')&&(!tinyMCE.isIE||tinyMCE.isOpera)&&(m=this.buttonMap[id])!=null&&(tinyMCE.getParam("language")=="en"||img.indexOf('$lang')==-1)){x=0-(m*20)==0?'0':0-(m*20);h+='<a id="{$editor_id}_'+id+'" href="javascript:'+cmd+'" onclick="'+cmd+'return false;" onmousedown="return false;" '+io+' class="mceTiledButton mceButtonNormal" target="_self">';h+='<img src="{$themeurl}/images/spacer.gif" style="background-position: '+x+'px 0" alt="{$'+lang+'}" title="{$'+lang+'}" />';h+='</a>'}else{h+='<a id="{$editor_id}_'+id+'" href="javascript:'+cmd+'" onclick="'+cmd+'return false;" onmousedown="return false;" '+io+' class="mceButtonNormal" target="_self">';h+='<img src="'+img+'" alt="{$'+lang+'}" title="{$'+lang+'}" />';h+='</a>'}return h},getMenuButtonHTML:function(id,lang,img,mcmd,cmd,ui,val){var h='',m,x;mcmd='tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+mcmd+'\');';cmd='tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+cmd+'\'';if(typeof(ui)!="undefined"&&ui!=null)cmd+=','+ui;if(typeof(val)!="undefined"&&val!=null)cmd+=",'"+val+"'";cmd+=');';if(tinyMCE.getParam('button_tile_map')&&(!tinyMCE.isIE||tinyMCE.isOpera)&&(m=tinyMCE.buttonMap[id])!=null&&(tinyMCE.getParam("language")=="en"||img.indexOf('$lang')==-1)){x=0-(m*20)==0?'0':0-(m*20);if(tinyMCE.isRealIE)h+='<span id="{$editor_id}_'+id+'" class="mceMenuButton" onmouseover="tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover = this;" onmouseout="tinyMCE._menuButtonEvent(\'out\',this);">';else h+='<span id="{$editor_id}_'+id+'" class="mceMenuButton">';h+='<a href="javascript:'+cmd+'" onclick="'+cmd+'return false;" onmousedown="return false;" class="mceTiledButton mceMenuButtonNormal" target="_self">';h+='<img src="{$themeurl}/images/spacer.gif" style="width: 20px; height: 20px; background-position: '+x+'px 0" title="{$'+lang+'}" /></a>';h+='<a href="javascript:'+mcmd+'" onclick="'+mcmd+'return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$'+lang+'}" class="mceMenuButton" />';h+='</a></span>'}else{if(tinyMCE.isRealIE)h+='<span id="{$editor_id}_'+id+'" dir="ltr" class="mceMenuButton" onmouseover="tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover = this;" onmouseout="tinyMCE._menuButtonEvent(\'out\',this);">';else h+='<span id="{$editor_id}_'+id+'" dir="ltr" class="mceMenuButton">';h+='<a href="javascript:'+cmd+'" onclick="'+cmd+'return false;" onmousedown="return false;" class="mceMenuButtonNormal" target="_self">';h+='<img src="'+img+'" title="{$'+lang+'}" /></a>';h+='<a href="javascript:'+mcmd+'" onclick="'+mcmd+'return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$'+lang+'}" class="mceMenuButton" />';h+='</a></span>'}return h},_menuButtonEvent:function(e,o){if(o.className=='mceMenuButtonFocus')return;if(e=='over')o.className=o.className+' mceMenuHover';else o.className=o.className.replace(/\s.*$/,'')},addButtonMap:function(m){var i,a=m.replace(/\s+/,'').split(',');for(i=0;i<a.length;i++)this.buttonMap[a[i]]=i},formSubmit:function(f,p){var n,inst,found=false;if(f.form)f=f.form;for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;if(inst.formElement){if(f==inst.formElement.form){found=true;inst.isNotDirty=true}}}if(found){tinyMCE.removeTinyMCEFormElements(f);tinyMCE.triggerSave()}if(f.mceOldSubmit&&p)f.mceOldSubmit()},submitPatch:function(){tinyMCE.formSubmit(this,true)},onLoad:function(){var r,i,c,mode,trigger,elements,element,settings,elementId,elm;var selector,deselector,elementRefAr,form;if(tinyMCE.settings.strict_loading_mode&&this.loadingIndex!=-1){window.setTimeout('tinyMCE.onLoad();',1);return}if(tinyMCE.isRealIE&&window.event.type=="readystatechange"&&document.readyState!="complete")return true;if(tinyMCE.isLoaded)return true;tinyMCE.isLoaded=true;if(tinyMCE.isRealIE&&document.body&&window.location.href!=window.top.location.href){r=document.body.createTextRange();r.collapse(true);r.select()}tinyMCE.dispatchCallback(null,'onpageload','onPageLoad');for(c=0;c<tinyMCE.configs.length;c++){tinyMCE.settings=tinyMCE.configs[c];selector=tinyMCE.getParam("editor_selector");deselector=tinyMCE.getParam("editor_deselector");elementRefAr=[];if(document.forms&&tinyMCE.settings.add_form_submit_trigger&&!tinyMCE.submitTriggers){for(i=0;i<document.forms.length;i++){form=document.forms[i];tinyMCE.addEvent(form,"submit",TinyMCE_Engine.prototype.handleEvent);tinyMCE.addEvent(form,"reset",TinyMCE_Engine.prototype.handleEvent);tinyMCE.submitTriggers=true;if(tinyMCE.settings.submit_patch){try{form.mceOldSubmit=form.submit;form.submit=TinyMCE_Engine.prototype.submitPatch}catch(e){}}}}mode=tinyMCE.settings.mode;switch(mode){case"exact":elements=tinyMCE.getParam('elements','',true,',');for(i=0;i<elements.length;i++){element=tinyMCE._getElementById(elements[i]);trigger=element?element.getAttribute(tinyMCE.settings.textarea_trigger):"";if(new RegExp('\\b'+deselector+'\\b').test(tinyMCE.getAttrib(element,"class")))continue;if(trigger=="false")continue;if((tinyMCE.settings.ask||tinyMCE.settings.convert_on_click)&&element){elementRefAr[elementRefAr.length]=element;continue}if(element)tinyMCE.addMCEControl(element,elements[i])}break;case"specific_textareas":case"textareas":elements=document.getElementsByTagName("textarea");for(i=0;i<elements.length;i++){elm=elements.item(i);trigger=elm.getAttribute(tinyMCE.settings.textarea_trigger);if(selector!==''&&!new RegExp('\\b'+selector+'\\b').test(tinyMCE.getAttrib(elm,"class")))continue;if(selector!=='')trigger=selector!==''?"true":"";if(new RegExp('\\b'+deselector+'\\b').test(tinyMCE.getAttrib(elm,"class")))continue;if((mode=="specific_textareas"&&trigger=="true")||(mode=="textareas"&&trigger!="false"))elementRefAr[elementRefAr.length]=elm}break}for(i=0;i<elementRefAr.length;i++){element=elementRefAr[i];elementId=element.name?element.name:element.id;if(tinyMCE.settings.ask||tinyMCE.settings.convert_on_click){if(tinyMCE.isGecko){settings=tinyMCE.settings;tinyMCE.addEvent(element,"focus",function(e){window.setTimeout(function(){TinyMCE_Engine.prototype.confirmAdd(e,settings)},10)});if(element.nodeName!="TEXTAREA"&&element.nodeName!="INPUT")tinyMCE.addEvent(element,"click",function(e){window.setTimeout(function(){TinyMCE_Engine.prototype.confirmAdd(e,settings)},10)});}else{settings=tinyMCE.settings;tinyMCE.addEvent(element,"focus",function(){TinyMCE_Engine.prototype.confirmAdd(null,settings)});tinyMCE.addEvent(element,"click",function(){TinyMCE_Engine.prototype.confirmAdd(null,settings)});}}else tinyMCE.addMCEControl(element,elementId)}if(tinyMCE.settings.auto_focus){window.setTimeout(function(){var inst=tinyMCE.getInstanceById(tinyMCE.settings.auto_focus);inst.selection.selectNode(inst.getBody(),true,true);inst.contentWindow.focus()},100)}tinyMCE.dispatchCallback(null,'oninit','onInit')}},isInstance:function(o){return o!=null&&typeof(o)=="object"&&o.isTinyMCE_Control},getParam:function(name,default_value,strip_whitespace,split_chr){var i,outArray,value=(typeof(this.settings[name])=="undefined")?default_value:this.settings[name];if(value=="true"||value=="false")return(value=="true");if(strip_whitespace)value=tinyMCE.regexpReplace(value,"[ \t\r\n]","");if(typeof(split_chr)!="undefined"&&split_chr!=null){value=value.split(split_chr);outArray=[];for(i=0;i<value.length;i++){if(value[i]&&value[i]!=='')outArray[outArray.length]=value[i]}value=outArray}return value},getLang:function(name,default_value,parse_entities,va){var v=(typeof(tinyMCELang[name])=="undefined")?default_value:tinyMCELang[name],n;if(parse_entities)v=tinyMCE.entityDecode(v);if(va){for(n in va)v=this.replaceVar(v,n,va[n])}return v},entityDecode:function(s){var e=document.createElement("div");e.innerHTML=s;return!e.firstChild?s:e.firstChild.nodeValue},addToLang:function(prefix,ar){var k;for(k in ar){if(typeof(ar[k])=='function')continue;tinyMCELang[(k.indexOf('lang_')==-1?'lang_':'')+(prefix!==''?(prefix+"_"):'')+k]=ar[k]}this.loadNextScript()},triggerNodeChange:function(focus,setup_content){var elm,inst,editorId,undoIndex=-1,undoLevels=-1,doc,anySelection=false,st;if(tinyMCE.selectedInstance){inst=tinyMCE.selectedInstance;elm=(typeof(setup_content)!="undefined"&&setup_content)?tinyMCE.selectedElement:inst.getFocusElement();editorId=inst.editorId;st=inst.selection.getSelectedText();if(tinyMCE.settings.auto_resize)inst.resizeToContent();if(setup_content&&tinyMCE.isGecko&&inst.isHidden())elm=inst.getBody();inst.switchSettings();if(tinyMCE.selectedElement)anySelection=(tinyMCE.selectedElement.nodeName.toLowerCase()=="img")||(st&&st.length>0);if(tinyMCE.settings.custom_undo_redo){undoIndex=inst.undoRedo.undoIndex;undoLevels=inst.undoRedo.undoLevels.length}tinyMCE.dispatchCallback(inst,'handle_node_change_callback','handleNodeChange',editorId,elm,undoIndex,undoLevels,inst.visualAid,anySelection,setup_content)}if(this.selectedInstance&&(typeof(focus)=="undefined"||focus))this.selectedInstance.contentWindow.focus()},_customCleanup:function(inst,type,content){var pl,po,i,customCleanup;customCleanup=tinyMCE.settings.cleanup_callback;if(customCleanup!='')content=tinyMCE.resolveDots(tinyMCE.settings.cleanup_callback,window)(type,content,inst);po=tinyMCE.themes[tinyMCE.settings.theme];if(po&&po.cleanup)content=po.cleanup(type,content,inst);pl=inst.plugins;for(i=0;i<pl.length;i++){po=tinyMCE.plugins[pl[i]];if(po&&po.cleanup)content=po.cleanup(type,content,inst)}return content},setContent:function(h){if(tinyMCE.selectedInstance){tinyMCE.selectedInstance.execCommand('mceSetContent',false,h);tinyMCE.selectedInstance.repaint()}},importThemeLanguagePack:function(name){if(typeof(name)=="undefined")name=tinyMCE.settings.theme;tinyMCE.loadScript(tinyMCE.baseURL+'/themes/'+name+'/langs/'+tinyMCE.settings.language+'.js')},importPluginLanguagePack:function(name){var b=tinyMCE.baseURL+'/plugins/'+name;if(this.plugins[name])b=this.plugins[name].baseURL;tinyMCE.loadScript(b+'/langs/'+tinyMCE.settings.language+'.js')},applyTemplate:function(h,ag){return h.replace(new RegExp('\\{\\$([a-z0-9_]+)\\}','gi'),function(m,s){if(s.indexOf('lang_')==0&&tinyMCELang[s])return tinyMCELang[s];if(ag&&ag[s])return ag[s];if(tinyMCE.settings[s])return tinyMCE.settings[s];if(m=='themeurl')return tinyMCE.themeURL;return m})},replaceVar:function(h,r,v){return h.replace(new RegExp('{\\\$'+r+'}','g'),v)},openWindow:function(template,args){var html,width,height,x,y,resizable,scrollbars,url,name,win,modal,features;args=!args?{}:args;args.mce_template_file=template.file;args.mce_width=template.width;args.mce_height=template.height;tinyMCE.windowArgs=args;html=template.html;if(!(width=parseInt(template.width)))width=320;if(!(height=parseInt(template.height)))height=200;if(tinyMCE.isIE)height+=40;else height+=20;x=parseInt(screen.width/ 2.0) - (width /2.0);y=parseInt(screen.height/ 2.0) - (height /2.0);resizable=(args&&args.resizable)?args.resizable:"no";scrollbars=(args&&args.scrollbars)?args.scrollbars:"no";if(template.file.charAt(0)!='/'&&template.file.indexOf('://')==-1)url=tinyMCE.baseURL+"/themes/"+tinyMCE.getParam("theme")+"/"+template.file;else url=template.file;for(name in args){if(typeof(args[name])=='function')continue;url=tinyMCE.replaceVar(url,name,escape(args[name]))}if(html){html=tinyMCE.replaceVar(html,"css",this.settings.popups_css);html=tinyMCE.applyTemplate(html,args);win=window.open("","mcePopup"+new Date().getTime(),"top="+y+",left="+x+",scrollbars="+scrollbars+",dialog=yes,minimizable="+resizable+",modal=yes,width="+width+",height="+height+",resizable="+resizable);if(win==null){alert(tinyMCELang.lang_popup_blocked);return}win.document.write(html);win.document.close();win.resizeTo(width,height);win.focus()}else{if((tinyMCE.isRealIE)&&resizable!='yes'&&tinyMCE.settings.dialog_type=="modal"){height+=10;features="resizable:"+resizable+";scroll:"+scrollbars+";status:yes;center:yes;help:no;dialogWidth:"+width+"px;dialogHeight:"+height+"px;";window.showModalDialog(url,window,features)}else{modal=(resizable=="yes")?"no":"yes";if(tinyMCE.isGecko&&tinyMCE.isMac)modal="no";if(template.close_previous!="no")try{tinyMCE.lastWindow.close()}catch(ex){}win=window.open(url,"mcePopup"+new Date().getTime(),"top="+y+",left="+x+",scrollbars="+scrollbars+",dialog="+modal+",minimizable="+resizable+",modal="+modal+",width="+width+",height="+height+",resizable="+resizable);if(win==null){alert(tinyMCELang.lang_popup_blocked);return}if(template.close_previous!="no")tinyMCE.lastWindow=win;try{win.resizeTo(width,height)}catch(e){}if(tinyMCE.isGecko){if(win.document.defaultView.statusbar.visible)win.resizeBy(0,tinyMCE.isMac?10:24)}win.focus()}}},closeWindow:function(win){win.close()},getVisualAidClass:function(class_name,state){var i,classNames,ar,className,aidClass=tinyMCE.settings.visual_table_class;if(typeof(state)=="undefined")state=tinyMCE.settings.visual;classNames=[];ar=class_name.split(' ');for(i=0;i<ar.length;i++){if(ar[i]==aidClass)ar[i]="";if(ar[i]!=='')classNames[classNames.length]=ar[i]}if(state)classNames[classNames.length]=aidClass;className="";for(i=0;i<classNames.length;i++){if(i>0)className+=" ";className+=classNames[i]}return className},handleVisualAid:function(el,deep,state,inst,skip_dispatch){var i,x,y,tableElement,anchorName,oldW,oldH,bo,cn;if(!el)return;if(!skip_dispatch)tinyMCE.dispatchCallback(inst,'handle_visual_aid_callback','handleVisualAid',el,deep,state,inst);tableElement=null;switch(el.nodeName){case"TABLE":oldW=el.style.width;oldH=el.style.height;bo=tinyMCE.getAttrib(el,"border");bo=bo==''||bo=="0"?true:false;tinyMCE.setAttrib(el,"class",tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el,"class"),state&&bo));el.style.width=oldW;el.style.height=oldH;for(y=0;y<el.rows.length;y++){for(x=0;x<el.rows[y].cells.length;x++){cn=tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el.rows[y].cells[x],"class"),state&&bo);tinyMCE.setAttrib(el.rows[y].cells[x],"class",cn)}}break;case"A":anchorName=tinyMCE.getAttrib(el,"name");if(anchorName!==''&&state){el.title=anchorName;tinyMCE.addCSSClass(el,'mceItemAnchor')}else if(anchorName!==''&&!state)el.className='';break}if(deep&&el.hasChildNodes()){for(i=0;i<el.childNodes.length;i++)tinyMCE.handleVisualAid(el.childNodes[i],deep,state,inst,true)}},fixGeckoBaseHREFBug:function(m,e,h){var xsrc,xhref;if(tinyMCE.isGecko){if(m==1){h=h.replace(/\ssrc=/gi," mce_tsrc=");h=h.replace(/\shref=/gi," mce_thref=");return h}else{if(!new RegExp('(src|href)=','g').test(h))return h;tinyMCE.selectElements(e,'A,IMG,SELECT,AREA,IFRAME,BASE,INPUT,SCRIPT,EMBED,OBJECT,LINK',function(n){xsrc=tinyMCE.getAttrib(n,"mce_tsrc");xhref=tinyMCE.getAttrib(n,"mce_thref");if(xsrc!==''){try{n.src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href,xsrc)}catch(e){}n.removeAttribute("mce_tsrc")}if(xhref!==''){try{n.href=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href,xhref)}catch(e){}n.removeAttribute("mce_thref")}return false});tinyMCE.selectNodes(e,function(n){if(n.nodeType==3||n.nodeType==8){n.nodeValue=n.nodeValue.replace(/\smce_tsrc=/gi," src=");n.nodeValue=n.nodeValue.replace(/\smce_thref=/gi," href=")}return false})}}return h},_setHTML:function(doc,html_content){var i,html,paras,node;html_content=tinyMCE.cleanupHTMLCode(html_content);try{tinyMCE.setInnerHTML(doc.body,html_content)}catch(e){if(this.isMSIE)doc.body.createTextRange().pasteHTML(html_content)}if(tinyMCE.isIE&&tinyMCE.settings.fix_content_duplication){paras=doc.getElementsByTagName("P");for(i=0;i<paras.length;i++){node=paras[i];while((node=node.parentNode)!=null){if(node.nodeName=="P")node.outerHTML=node.innerHTML}}html=doc.body.innerHTML;tinyMCE.setInnerHTML(doc.body,html)}tinyMCE.cleanupAnchors(doc);if(tinyMCE.getParam("convert_fonts_to_spans"))tinyMCE.convertSpansToFonts(doc)},getEditorId:function(form_element){var inst=this.getInstanceById(form_element);if(!inst)return null;return inst.editorId},getInstanceById:function(editor_id){var inst=this.instances[editor_id],n;if(!inst){for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;if(inst.formTargetElementId==editor_id)return inst}}else return inst;return null},queryInstanceCommandValue:function(editor_id,command){var inst=tinyMCE.getInstanceById(editor_id);if(inst)return inst.queryCommandValue(command);return false},queryInstanceCommandState:function(editor_id,command){var inst=tinyMCE.getInstanceById(editor_id);if(inst)return inst.queryCommandState(command);return null},setWindowArg:function(n,v){this.windowArgs[n]=v},getWindowArg:function(n,d){return(typeof(this.windowArgs[n])=="undefined")?d:this.windowArgs[n]},getCSSClasses:function(editor_id,doc){var i,c,x,rule,styles,rules,csses,selectorText,inst=tinyMCE.getInstanceById(editor_id);var cssClass,addClass,p;if(!inst)inst=tinyMCE.selectedInstance;if(!inst)return[];if(!doc)doc=inst.getDoc();if(inst&&inst.cssClasses.length>0)return inst.cssClasses;if(!doc)return;styles=doc.styleSheets;if(styles&&styles.length>0){for(x=0;x<styles.length;x++){csses=null;try{csses=tinyMCE.isIE?doc.styleSheets(x).rules:styles[x].cssRules}catch(e){}if(!csses)return[];for(i=0;i<csses.length;i++){selectorText=csses[i].selectorText;if(selectorText){rules=selectorText.split(',');for(c=0;c<rules.length;c++){rule=rules[c];while(rule.indexOf(' ')==0)rule=rule.substring(1);if(rule.indexOf(' ')!=-1||rule.indexOf(':')!=-1||rule.indexOf('mceItem')!=-1)continue;if(rule.indexOf(tinyMCE.settings.visual_table_class)!=-1||rule.indexOf('mceEditable')!=-1||rule.indexOf('mceNonEditable')!=-1)continue;if(rule.indexOf('.')!=-1){cssClass=rule.substring(rule.indexOf('.')+1);addClass=true;for(p=0;p<inst.cssClasses.length&&addClass;p++){if(inst.cssClasses[p]==cssClass)addClass=false}if(addClass)inst.cssClasses[inst.cssClasses.length]=cssClass}}}}}}return inst.cssClasses},regexpReplace:function(in_str,reg_exp,replace_str,opts){var re;if(in_str==null)return in_str;if(typeof(opts)=="undefined")opts='g';re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str)},trim:function(s){return s.replace(/^\s*|\s*$/g,"")},cleanupEventStr:function(s){s=""+s;s=s.replace('function anonymous()\n{\n','');s=s.replace('\n}','');s=s.replace(/^return true;/gi,'');return s},getControlHTML:function(c){var i,l,n,o,v,rtl=tinyMCE.getLang('lang_dir')=='rtl';l=tinyMCE.plugins;for(n in l){o=l[n];if(o.getControlHTML&&(v=o.getControlHTML(c))!==''){if(rtl)return'<span dir="rtl">'+tinyMCE.replaceVar(v,"pluginurl",o.baseURL)+'</span>';return tinyMCE.replaceVar(v,"pluginurl",o.baseURL)}}o=tinyMCE.themes[tinyMCE.settings.theme];if(o.getControlHTML&&(v=o.getControlHTML(c))!==''){if(rtl)return'<span dir="rtl">'+v+'</span>';return v}return''},evalFunc:function(f,idx,a,o){o=!o?window:o;f=typeof(f)=='function'?f:o[f];return f.apply(o,Array.prototype.slice.call(a,idx))},dispatchCallback:function(i,p,n){return this.callFunc(i,p,n,0,this.dispatchCallback.arguments)},executeCallback:function(i,p,n){return this.callFunc(i,p,n,1,this.executeCallback.arguments)},execCommandCallback:function(i,p,n){return this.callFunc(i,p,n,2,this.execCommandCallback.arguments)},callFunc:function(ins,p,n,m,a){var l,i,on,o,s,v;s=m==2;l=tinyMCE.getParam(p,'');if(l!==''&&(v=tinyMCE.evalFunc(l,3,a))==s&&m>0)return true;if(ins!=null){for(i=0,l=ins.plugins;i<l.length;i++){o=tinyMCE.plugins[l[i]];if(o[n]&&(v=tinyMCE.evalFunc(n,3,a,o))==s&&m>0)return true}}l=tinyMCE.themes;for(on in l){o=l[on];if(o[n]&&(v=tinyMCE.evalFunc(n,3,a,o))==s&&m>0)return true}return false},resolveDots:function(s,o){var i;if(typeof(s)=='string'){for(i=0,s=s.split('.');i<s.length;i++)o=o[s[i]]}else o=s;return o},xmlEncode:function(s){return s?(''+s).replace(this.xmlEncodeRe,function(c,b){switch(c){case'&':return'&amp;';case'"':return'&quot;';case'<':return'&lt;';case'>':return'&gt;'}return c}):s},add:function(c,m){var n;for(n in m)c.prototype[n]=m[n]},extend:function(p,np){var o={},n;o.parent=p;for(n in p)o[n]=p[n];for(n in np)o[n]=np[n];return o},hideMenus:function(){var e=tinyMCE.lastSelectedMenuBtn;if(tinyMCE.lastMenu){tinyMCE.lastMenu.hide();tinyMCE.lastMenu=null}if(e){tinyMCE.switchClass(e,tinyMCE.lastMenuBtnClass);tinyMCE.lastSelectedMenuBtn=null}}};var TinyMCE=TinyMCE_Engine;var tinyMCE=new TinyMCE_Engine();var tinyMCELang={};function TinyMCE_Control(settings){var t,i,tos,fu,p,x,fn,fu,pn,s=settings;this.undoRedoLevel=true;this.isTinyMCE_Control=true;this.enabled=true;this.settings=s;this.settings.theme=tinyMCE.getParam("theme","default");this.settings.width=tinyMCE.getParam("width",-1);this.settings.height=tinyMCE.getParam("height",-1);this.selection=new TinyMCE_Selection(this);this.undoRedo=new TinyMCE_UndoRedo(this);this.cleanup=new TinyMCE_Cleanup();this.shortcuts=[];this.hasMouseMoved=false;this.foreColor=this.backColor="#999999";this.data={};this.cssClasses=[];this.cleanup.init({valid_elements:s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,entities:s.entities,entity_encoding:s.entity_encoding,debug:s.cleanup_debug,indent:s.apply_source_formatting,invalid_elements:s.invalid_elements,verify_html:s.verify_html,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans});t=this.settings.theme;if(!tinyMCE.hasTheme(t)){fn=tinyMCE.callbacks;tos={};for(i=0;i<fn.length;i++){if((fu=window['TinyMCE_'+t+"_"+fn[i]]))tos[fn[i]]=fu}tinyMCE.addTheme(t,tos)}this.plugins=[];p=tinyMCE.getParam('plugins','',true,',');if(p.length>0){for(i=0;i<p.length;i++){pn=p[i];if(pn.charAt(0)=='-')pn=pn.substring(1);if(!tinyMCE.hasPlugin(pn)){fn=tinyMCE.callbacks;tos={};for(x=0;x<fn.length;x++){if((fu=window['TinyMCE_'+pn+"_"+fn[x]]))tos[fn[x]]=fu}tinyMCE.addPlugin(pn,tos)}this.plugins[this.plugins.length]=pn}}};TinyMCE_Control.prototype={selection:null,settings:null,cleanup:null,getData:function(na){var o=this.data[na];if(!o)o=this.data[na]={};return o},hasPlugin:function(n){var i;for(i=0;i<this.plugins.length;i++){if(this.plugins[i]==n)return true}return false},addPlugin:function(n,p){if(!this.hasPlugin(n)){tinyMCE.addPlugin(n,p);this.plugins[this.plugins.length]=n}},repaint:function(){var s,b,ex;if(tinyMCE.isRealIE)return;try{s=this.selection;b=s.getBookmark(true);this.getBody().style.display='none';this.getDoc().execCommand('selectall',false,null);this.getSel().collapseToStart();this.getBody().style.display='block';s.moveToBookmark(b)}catch(ex){}},switchSettings:function(){if(tinyMCE.configs.length>1&&tinyMCE.currentConfig!=this.settings.index){tinyMCE.settings=this.settings;tinyMCE.currentConfig=this.settings.index}},select:function(){var oldInst=tinyMCE.selectedInstance;if(oldInst!=this){if(oldInst)oldInst.execCommand('mceEndTyping');tinyMCE.dispatchCallback(this,'select_instance_callback','selectInstance',this,oldInst);tinyMCE.selectedInstance=this}},getBody:function(){return this.contentBody?this.contentBody:this.getDoc().body},getDoc:function(){return this.contentWindow.document},getWin:function(){return this.contentWindow},getContainerWin:function(){return this.containerWindow?this.containerWindow:window},getViewPort:function(){return tinyMCE.getViewPort(this.getWin())},getParentNode:function(n,f){return tinyMCE.getParentNode(n,f,this.getBody())},getParentElement:function(n,na,f){return tinyMCE.getParentElement(n,na,f,this.getBody())},getParentBlockElement:function(n){return tinyMCE.getParentBlockElement(n,this.getBody())},resizeToContent:function(){var d=this.getDoc(),b=d.body,de=d.documentElement;this.iframeElement.style.height=(tinyMCE.isRealIE)?b.scrollHeight:de.offsetHeight+'px'},addShortcut:function(m,k,d,cmd,ui,va){var n=typeof(k)=="number",ie=tinyMCE.isIE,c,sc,i,scl=this.shortcuts;if(!tinyMCE.getParam('custom_shortcuts'))return false;m=m.toLowerCase();k=ie&&!n?k.toUpperCase():k;c=n?null:k.charCodeAt(0);d=d&&d.indexOf('lang_')==0?tinyMCE.getLang(d):d;sc={alt:m.indexOf('alt')!=-1,ctrl:m.indexOf('ctrl')!=-1,shift:m.indexOf('shift')!=-1,charCode:c,keyCode:n?k:(ie?c:null),desc:d,cmd:cmd,ui:ui,val:va};for(i=0;i<scl.length;i++){if(sc.alt==scl[i].alt&&sc.ctrl==scl[i].ctrl&&sc.shift==scl[i].shift&&sc.charCode==scl[i].charCode&&sc.keyCode==scl[i].keyCode){return false}}scl[scl.length]=sc;return true},handleShortcut:function(e){var i,s,o;if(!e.altKey&&!e.ctrlKey)return false;s=this.shortcuts;for(i=0;i<s.length;i++){o=s[i];if(o.alt==e.altKey&&o.ctrl==e.ctrlKey&&(o.keyCode==e.keyCode||o.charCode==e.charCode)){if(o.cmd&&(e.type=="keydown"||(e.type=="keypress"&&!tinyMCE.isOpera)))tinyMCE.execCommand(o.cmd,o.ui,o.val);tinyMCE.cancelEvent(e);return true}}return false},autoResetDesignMode:function(){if(!tinyMCE.isIE&&this.isHidden()&&tinyMCE.getParam('auto_reset_designmode'))eval('try { this.getDoc().designMode = "On"; this.useCSS = false; } catch(e) {}')},isHidden:function(){var s;if(tinyMCE.isIE)return false;s=this.getSel();return(!s||!s.rangeCount||s.rangeCount==0)},isDirty:function(){return tinyMCE.trim(this.startContent)!=tinyMCE.trim(this.getBody().innerHTML)&&!this.isNotDirty},_mergeElements:function(scmd,pa,ch,override){var st,stc,className,n;if(scmd=="removeformat"){pa.className="";pa.style.cssText="";ch.className="";ch.style.cssText="";return}st=tinyMCE.parseStyle(tinyMCE.getAttrib(pa,"style"));stc=tinyMCE.parseStyle(tinyMCE.getAttrib(ch,"style"));className=tinyMCE.getAttrib(pa,"class");className=tinyMCE.getAttrib(ch,"class");if(override){for(n in st){if(typeof(st[n])=='function')continue;stc[n]=st[n]}}else{for(n in stc){if(typeof(stc[n])=='function')continue;st[n]=stc[n]}}tinyMCE.setAttrib(pa,"style",tinyMCE.serializeStyle(st));tinyMCE.setAttrib(pa,"class",tinyMCE.trim(className));ch.className="";ch.style.cssText="";ch.removeAttribute("class");ch.removeAttribute("style")},_fixRootBlocks:function(){var rb,b,ne,be,nx,bm;rb=tinyMCE.getParam('forced_root_block');if(!rb)return;b=this.getBody();ne=b.firstChild;while(ne){nx=ne.nextSibling;if(ne.nodeType==3||!tinyMCE.blockRegExp.test(ne.nodeName)){if(!bm)bm=this.selection.getBookmark();if(!be){be=this.getDoc().createElement(rb);be.appendChild(ne.cloneNode(true));b.replaceChild(be,ne)}else{be.appendChild(ne.cloneNode(true));b.removeChild(ne)}}else be=null;ne=nx}if(bm)this.selection.moveToBookmark(bm)},_fixTrailingNbsp:function(){var s=this.selection,e=s.getFocusElement(),bm,v;if(e&&tinyMCE.blockRegExp.test(e.nodeName)&&e.firstChild){v=e.firstChild.nodeValue;if(v&&v.length>1&&/(^\u00a0|\u00a0$)/.test(v)){e.firstChild.nodeValue=v.replace(/(^\u00a0|\u00a0$)/,'');s.selectNode(e.firstChild,true,false,false);}}},_setUseCSS:function(b){var d=this.getDoc();try{d.execCommand("useCSS",false,!b)}catch(ex){}try{d.execCommand("styleWithCSS",false,b)}catch(ex){}if(!tinyMCE.getParam("table_inline_editing"))try{d.execCommand('enableInlineTableEditing',false,"false")}catch(ex){}if(!tinyMCE.getParam("object_resizing"))try{d.execCommand('enableObjectResizing',false,"false")}catch(ex){}},execCommand:function(command,user_interface,value){var i,x,z,align,img,div,doc=this.getDoc(),win=this.getWin(),focusElm=this.getFocusElement();if(!new RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mceAddUndoLevel','gi').test(command))this.undoBookmark=null;if(!tinyMCE.isIE&&!this.useCSS){this._setUseCSS(false);this.useCSS=true}this.contentDocument=doc;if(!/mceStartTyping|mceEndTyping/.test(command)){if(tinyMCE.execCommandCallback(this,'execcommand_callback','execCommand',this.editorId,this.getBody(),command,user_interface,value))return}if(focusElm&&focusElm.nodeName=="IMG"){align=focusElm.getAttribute('align');img=command=="JustifyCenter"?focusElm.cloneNode(false):focusElm;switch(command){case"JustifyLeft":if(align=='left')img.removeAttribute('align');else img.setAttribute('align','left');div=focusElm.parentNode;if(div&&div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);this.selection.selectNode(img);this.repaint();tinyMCE.triggerNodeChange();return;case"JustifyCenter":img.removeAttribute('align');div=tinyMCE.getParentElement(focusElm,"div");if(div&&div.style.textAlign=="center"){if(div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div)}else{div=this.getDoc().createElement("div");div.style.textAlign='center';div.appendChild(img);focusElm.parentNode.replaceChild(div,focusElm)}this.selection.selectNode(img);this.repaint();tinyMCE.triggerNodeChange();return;case"JustifyRight":if(align=='right')img.removeAttribute('align');else img.setAttribute('align','right');div=focusElm.parentNode;if(div&&div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);this.selection.selectNode(img);this.repaint();tinyMCE.triggerNodeChange();return}}if(tinyMCE.settings.force_br_newlines){var alignValue="";if(doc.selection.type!="Control"){switch(command){case"JustifyLeft":alignValue="left";break;case"JustifyCenter":alignValue="center";break;case"JustifyFull":alignValue="justify";break;case"JustifyRight":alignValue="right";break}if(alignValue!==''){var rng=doc.selection.createRange();if((divElm=tinyMCE.getParentElement(rng.parentElement(),"div"))!=null)divElm.setAttribute("align",alignValue);else if(rng.pasteHTML&&rng.htmlText.length>0)rng.pasteHTML('<div align="'+alignValue+'">'+rng.htmlText+"</div>");tinyMCE.triggerNodeChange();return}}}switch(command){case"mceRepaint":this.repaint();return true;case"unlink":if(tinyMCE.isGecko&&this.getSel().isCollapsed){focusElm=tinyMCE.getParentElement(focusElm,'A');if(focusElm)this.selection.selectNode(focusElm,false)}this.getDoc().execCommand(command,user_interface,value);tinyMCE.isGecko&&this.getSel().collapseToEnd();tinyMCE.triggerNodeChange();return true;case"InsertUnorderedList":case"InsertOrderedList":this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();break;case"Strikethrough":this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();break;case"mceSelectNode":this.selection.selectNode(value);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=value;break;case"FormatBlock":if(value==null||value==''){var elm=tinyMCE.getParentElement(this.getFocusElement(),"p,div,h1,h2,h3,h4,h5,h6,pre,address,blockquote,dt,dl,dd,samp");if(elm)this.execCommand("mceRemoveNode",false,elm)}else{if(!this.cleanup.isValid(value))return true;if(tinyMCE.isGecko&&new RegExp('<(div|blockquote|code|dt|dd|dl|samp)>','gi').test(value))value=value.replace(/[^a-z]/gi,'');if(tinyMCE.isIE&&new RegExp('blockquote|code|samp','gi').test(value)){var b=this.selection.getBookmark();this.getDoc().execCommand("FormatBlock",false,'<p>');tinyMCE.renameElement(tinyMCE.getParentBlockElement(this.getFocusElement()),value);this.selection.moveToBookmark(b)}else this.getDoc().execCommand("FormatBlock",false,value)}tinyMCE.triggerNodeChange();break;case"mceRemoveNode":if(!value)value=tinyMCE.getParentElement(this.getFocusElement());if(tinyMCE.isIE){value.outerHTML=value.innerHTML}else{var rng=value.ownerDocument.createRange();rng.setStartBefore(value);rng.setEndAfter(value);rng.deleteContents();rng.insertNode(rng.createContextualFragment(value.innerHTML))}tinyMCE.triggerNodeChange();break;case"mceSelectNodeDepth":var parentNode=this.getFocusElement();for(i=0;parentNode;i++){if(parentNode.nodeName.toLowerCase()=="body")break;if(parentNode.nodeName.toLowerCase()=="#text"){i--;parentNode=parentNode.parentNode;continue}if(i==value){this.selection.selectNode(parentNode,false);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=parentNode;return}parentNode=parentNode.parentNode}break;case"mceSetStyleInfo":case"SetStyleInfo":var rng=this.getRng();var sel=this.getSel();var scmd=value.command;var sname=value.name;var svalue=value.value==null?'':value.value;var wrapper=value.wrapper?value.wrapper:"span";var parentElm=null;var invalidRe=new RegExp("^BODY|HTML$","g");var invalidParentsRe=tinyMCE.settings.merge_styles_invalid_parents!==''?new RegExp(tinyMCE.settings.merge_styles_invalid_parents,"gi"):null;if(tinyMCE.isIE){if(rng.item)parentElm=rng.item(0);else{var pelm=rng.parentElement();var prng=doc.selection.createRange();prng.moveToElementText(pelm);if(rng.htmlText==prng.htmlText||rng.boundingWidth==0){if(invalidParentsRe==null||!invalidParentsRe.test(pelm.nodeName))parentElm=pelm}}}else{var felm=this.getFocusElement();if(sel.isCollapsed||(new RegExp('td|tr|tbody|table|img','gi').test(felm.nodeName)&&sel.anchorNode==felm.parentNode))parentElm=felm}if(parentElm&&!invalidRe.test(parentElm.nodeName)){if(scmd=="setstyle")tinyMCE.setStyleAttrib(parentElm,sname,svalue);if(scmd=="setattrib")tinyMCE.setAttrib(parentElm,sname,svalue);if(scmd=="removeformat"){parentElm.style.cssText='';tinyMCE.setAttrib(parentElm,'class','')}var ch=tinyMCE.getNodeTree(parentElm,[],1);for(z=0;z<ch.length;z++){if(ch[z]==parentElm)continue;if(scmd=="setstyle")tinyMCE.setStyleAttrib(ch[z],sname,'');if(scmd=="setattrib")tinyMCE.setAttrib(ch[z],sname,'');if(scmd=="removeformat"){ch[z].style.cssText='';tinyMCE.setAttrib(ch[z],'class','')}}}else{this._setUseCSS(false);doc.execCommand("FontName",false,"#mce_temp_font#");var elementArray=tinyMCE.getElementsByAttributeValue(this.getBody(),"font","face","#mce_temp_font#");for(x=0;x<elementArray.length;x++){elm=elementArray[x];if(elm){var spanElm=doc.createElement(wrapper);if(scmd=="setstyle")tinyMCE.setStyleAttrib(spanElm,sname,svalue);if(scmd=="setattrib")tinyMCE.setAttrib(spanElm,sname,svalue);if(scmd=="removeformat"){spanElm.style.cssText='';tinyMCE.setAttrib(spanElm,'class','')}if(elm.hasChildNodes()){for(i=0;i<elm.childNodes.length;i++)spanElm.appendChild(elm.childNodes[i].cloneNode(true))}spanElm.setAttribute("mce_new","true");elm.parentNode.replaceChild(spanElm,elm);var ch=tinyMCE.getNodeTree(spanElm,[],1);for(z=0;z<ch.length;z++){if(ch[z]==spanElm)continue;if(scmd=="setstyle")tinyMCE.setStyleAttrib(ch[z],sname,'');if(scmd=="setattrib")tinyMCE.setAttrib(ch[z],sname,'');if(scmd=="removeformat"){ch[z].style.cssText='';tinyMCE.setAttrib(ch[z],'class','')}}}}}var nodes=doc.getElementsByTagName(wrapper);for(i=nodes.length-1;i>=0;i--){var elm=nodes[i];var isNew=tinyMCE.getAttrib(elm,"mce_new")=="true";elm.removeAttribute("mce_new");if(elm.childNodes&&elm.childNodes.length==1&&elm.childNodes[0].nodeType==1){this._mergeElements(scmd,elm,elm.childNodes[0],isNew);continue}if(elm.parentNode.childNodes.length==1&&!invalidRe.test(elm.nodeName)&&!invalidRe.test(elm.parentNode.nodeName)){if(invalidParentsRe==null||!invalidParentsRe.test(elm.parentNode.nodeName))this._mergeElements(scmd,elm.parentNode,elm,false)}}var nodes=doc.getElementsByTagName(wrapper);for(i=nodes.length-1;i>=0;i--){var elm=nodes[i],isEmpty=true;var tmp=doc.createElement("body");tmp.appendChild(elm.cloneNode(false));tmp.innerHTML=tmp.innerHTML.replace(new RegExp('style=""|class=""','gi'),'');if(new RegExp('<span>','gi').test(tmp.innerHTML)){for(x=0;x<elm.childNodes.length;x++){if(elm.parentNode!=null)elm.parentNode.insertBefore(elm.childNodes[x].cloneNode(true),elm)}elm.parentNode.removeChild(elm)}}if(scmd=="removeformat")tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid,this);tinyMCE.triggerNodeChange();break;case"FontName":if(value==null){var s=this.getSel();if(tinyMCE.isGecko&&s.isCollapsed){var f=tinyMCE.getParentElement(this.getFocusElement(),"font");if(f!=null)this.selection.selectNode(f,false)}this.getDoc().execCommand("RemoveFormat",false,null);if(f!=null&&tinyMCE.isGecko){var r=this.getRng().cloneRange();r.collapse(true);s.removeAllRanges();s.addRange(r)}}else this.getDoc().execCommand('FontName',false,value);if(tinyMCE.isGecko)window.setTimeout('tinyMCE.triggerNodeChange(false);',1);return;case"FontSize":this.getDoc().execCommand('FontSize',false,value);if(tinyMCE.isGecko)window.setTimeout('tinyMCE.triggerNodeChange(false);',1);return;case"forecolor":value=value==null?this.foreColor:value;value=tinyMCE.trim(value);value=value.charAt(0)!='#'?(isNaN('0x'+value)?value:'#'+value):value;this.foreColor=value;this.getDoc().execCommand('forecolor',false,value);break;case"HiliteColor":value=value==null?this.backColor:value;value=tinyMCE.trim(value);value=value.charAt(0)!='#'?(isNaN('0x'+value)?value:'#'+value):value;this.backColor=value;if(tinyMCE.isGecko){this._setUseCSS(true);this.getDoc().execCommand('hilitecolor',false,value);this._setUseCSS(false)}else this.getDoc().execCommand('BackColor',false,value);break;case"Cut":case"Copy":case"Paste":var cmdFailed=false;eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');if(tinyMCE.isOpera&&cmdFailed)alert('Currently not supported by your browser, use keyboard shortcuts instead.');if(tinyMCE.isGecko&&cmdFailed){if(confirm(tinyMCE.entityDecode(tinyMCE.getLang('lang_clipboard_msg'))))window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');return}else tinyMCE.triggerNodeChange();break;case"mceSetContent":if(!value)value="";value=tinyMCE.storeAwayURLs(value);value=tinyMCE._customCleanup(this,"insert_to_editor",value);if(this.getBody().nodeName=='BODY')tinyMCE._setHTML(doc,value);else this.getBody().innerHTML=value;tinyMCE.setInnerHTML(this.getBody(),tinyMCE._cleanupHTML(this,doc,this.settings,this.getBody(),false,false,false,true));tinyMCE.convertAllRelativeURLs(this.getBody());tinyMCE._removeInternal(this.getBody());if(tinyMCE.getParam("convert_fonts_to_spans"))tinyMCE.convertSpansToFonts(doc);tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid,this);tinyMCE._setEventsEnabled(this.getBody(),false);this._addBogusBR();return true;case"mceCleanup":var b=this.selection.getBookmark();tinyMCE._setHTML(this.contentDocument,this.getBody().innerHTML);tinyMCE.setInnerHTML(this.getBody(),tinyMCE._cleanupHTML(this,this.contentDocument,this.settings,this.getBody(),this.visualAid));tinyMCE.convertAllRelativeURLs(doc.body);if(tinyMCE.getParam("convert_fonts_to_spans"))tinyMCE.convertSpansToFonts(doc);tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid,this);tinyMCE._setEventsEnabled(this.getBody(),false);this._addBogusBR();this.repaint();this.selection.moveToBookmark(b);tinyMCE.triggerNodeChange();break;case"mceReplaceContent":if(!value)value='';this.getWin().focus();var selectedText="";if(tinyMCE.isIE){var rng=doc.selection.createRange();selectedText=rng.text}else selectedText=this.getSel().toString();if(selectedText.length>0){value=tinyMCE.replaceVar(value,"selection",selectedText);tinyMCE.execCommand('mceInsertContent',false,value)}this._addBogusBR();tinyMCE.triggerNodeChange();break;case"mceSetAttribute":if(typeof(value)=='object'){var targetElms=(typeof(value.targets)=="undefined")?"p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address":value.targets;var targetNode=tinyMCE.getParentElement(this.getFocusElement(),targetElms);if(targetNode){targetNode.setAttribute(value.name,value.value);tinyMCE.triggerNodeChange()}}break;case"mceSetCSSClass":this.execCommand("mceSetStyleInfo",false,{command:"setattrib",name:"class",value:value});break;case"mceInsertRawHTML":var key='tiny_mce_marker';this.execCommand('mceBeginUndoLevel');this.execCommand('mceInsertContent',false,key);var scrollX=this.getBody().scrollLeft+this.getDoc().documentElement.scrollLeft;var scrollY=this.getBody().scrollTop+this.getDoc().documentElement.scrollTop;var html=this.getBody().innerHTML;if((pos=html.indexOf(key))!=-1)tinyMCE.setInnerHTML(this.getBody(),html.substring(0,pos)+value+html.substring(pos+key.length));this.contentWindow.scrollTo(scrollX,scrollY);this.execCommand('mceEndUndoLevel');break;case"mceInsertContent":if(!value)value='';var insertHTMLFailed=false;if(tinyMCE.isGecko||tinyMCE.isOpera){try{if(value.indexOf('<')==-1&&!value.match(/(&#38;|&#160;|&#60;|&#62;)/g)){var r=this.getRng();var n=this.getDoc().createTextNode(tinyMCE.entityDecode(value));var s=this.getSel();var r2=r.cloneRange();s.removeAllRanges();r.deleteContents();r.insertNode(n);r2.selectNode(n);r2.collapse(false);s.removeAllRanges();s.addRange(r2)}else{value=tinyMCE.fixGeckoBaseHREFBug(1,this.getDoc(),value);this.getDoc().execCommand('inserthtml',false,value);tinyMCE.fixGeckoBaseHREFBug(2,this.getDoc(),value)}}catch(ex){insertHTMLFailed=true}if(!insertHTMLFailed){tinyMCE.triggerNodeChange();return}}if(!tinyMCE.isIE){var isHTML=value.indexOf('<')!=-1;var sel=this.getSel();var rng=this.getRng();if(isHTML){if(tinyMCE.isSafari){var tmpRng=this.getDoc().createRange();tmpRng.setStart(this.getBody(),0);tmpRng.setEnd(this.getBody(),0);value=tmpRng.createContextualFragment(value)}else value=rng.createContextualFragment(value)}else{value=doc.createTextNode(tinyMCE.entityDecode(value))}if(tinyMCE.isSafari&&!isHTML){this.execCommand('InsertText',false,value.nodeValue);tinyMCE.triggerNodeChange();return true}else if(tinyMCE.isSafari&&isHTML){rng.deleteContents();rng.insertNode(value);tinyMCE.triggerNodeChange();return true}rng.deleteContents();if(rng.startContainer.nodeType==3){var node=rng.startContainer.splitText(rng.startOffset);node.parentNode.insertBefore(value,node)}else rng.insertNode(value);if(!isHTML){sel.selectAllChildren(doc.body);sel.removeAllRanges();var rng=doc.createRange();rng.selectNode(value);rng.collapse(false);sel.addRange(rng)}else rng.collapse(false);tinyMCE.fixGeckoBaseHREFBug(2,this.getDoc(),value)}else{var rng=doc.selection.createRange(),tmpRng=null;var c=value.indexOf('<!--')!=-1;if(c)value=tinyMCE.uniqueTag+value;if(rng.item)rng.item(0).outerHTML=value;else rng.pasteHTML(value);if(c){var e=this.getDoc().getElementById('mceTMPElement');e.parentNode.removeChild(e)}}tinyMCE.execCommand("mceAddUndoLevel");tinyMCE.triggerNodeChange();break;case"mceStartTyping":if(tinyMCE.settings.custom_undo_redo&&this.undoRedo.typingUndoIndex==-1){this.undoRedo.typingUndoIndex=this.undoRedo.undoIndex;tinyMCE.typingUndoIndex=tinyMCE.undoIndex;this.execCommand('mceAddUndoLevel')}break;case"mceEndTyping":if(tinyMCE.settings.custom_undo_redo&&this.undoRedo.typingUndoIndex!=-1){this.execCommand('mceAddUndoLevel');this.undoRedo.typingUndoIndex=-1}tinyMCE.typingUndoIndex=-1;break;case"mceBeginUndoLevel":this.undoRedoLevel=false;break;case"mceEndUndoLevel":this.undoRedoLevel=true;this.execCommand('mceAddUndoLevel');break;case"mceAddUndoLevel":if(tinyMCE.settings.custom_undo_redo&&this.undoRedoLevel){if(this.undoRedo.add())tinyMCE.triggerNodeChange(false)}break;case"Undo":if(tinyMCE.settings.custom_undo_redo){tinyMCE.execCommand("mceEndTyping");this.undoRedo.undo();tinyMCE.triggerNodeChange()}else this.getDoc().execCommand(command,user_interface,value);break;case"Redo":if(tinyMCE.settings.custom_undo_redo){tinyMCE.execCommand("mceEndTyping");this.undoRedo.redo();tinyMCE.triggerNodeChange()}else this.getDoc().execCommand(command,user_interface,value);break;case"mceToggleVisualAid":this.visualAid=!this.visualAid;tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid,this);tinyMCE.triggerNodeChange();break;case"Indent":this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();if(tinyMCE.isIE){var n=tinyMCE.getParentElement(this.getFocusElement(),"blockquote");do{if(n&&n.nodeName=="BLOCKQUOTE"){n.removeAttribute("dir");n.removeAttribute("style")}}while(n!=null&&(n=n.parentNode)!=null)}break;case"RemoveFormat":case"removeformat":var text=this.selection.getSelectedText();if(tinyMCE.isOpera){this.getDoc().execCommand("RemoveFormat",false,null);return}if(tinyMCE.isIE){try{var rng=doc.selection.createRange();rng.execCommand("RemoveFormat",false,null)}catch(e){}this.execCommand("mceSetStyleInfo",false,{command:"removeformat"})}else{this.getDoc().execCommand(command,user_interface,value);this.execCommand("mceSetStyleInfo",false,{command:"removeformat"})}if(text.length==0)this.execCommand("mceSetCSSClass",false,"");tinyMCE.triggerNodeChange();break;default:this.getDoc().execCommand(command,user_interface,value);if(tinyMCE.isGecko)window.setTimeout('tinyMCE.triggerNodeChange(false);',1);else tinyMCE.triggerNodeChange()}if(command!="mceAddUndoLevel"&&command!="Undo"&&command!="Redo"&&command!="mceStartTyping"&&command!="mceEndTyping")tinyMCE.execCommand("mceAddUndoLevel")},queryCommandValue:function(c){try{return this.getDoc().queryCommandValue(c)}catch(e){return null}},queryCommandState:function(c){return this.getDoc().queryCommandState(c)},_addBogusBR:function(){var b=this.getBody();if(tinyMCE.isGecko&&!b.hasChildNodes())b.innerHTML='<br _moz_editor_bogus_node="TRUE" />'},_onAdd:function(replace_element,form_element_name,target_document){var hc,th,tos,editorTemplate,targetDoc,deltaWidth,deltaHeight,html,rng,fragment;var dynamicIFrame,tElm,doc,parentElm;th=this.settings.theme;tos=tinyMCE.themes[th];targetDoc=target_document?target_document:document;this.targetDoc=targetDoc;tinyMCE.themeURL=tinyMCE.baseURL+"/themes/"+this.settings.theme;this.settings.themeurl=tinyMCE.themeURL;if(!replace_element){alert("Error: Could not find the target element.");return false}if(tos.getEditorTemplate)editorTemplate=tos.getEditorTemplate(this.settings,this.editorId);deltaWidth=editorTemplate.delta_width?editorTemplate.delta_width:0;deltaHeight=editorTemplate.delta_height?editorTemplate.delta_height:0;html='<span id="'+this.editorId+'_parent" class="mceEditorContainer">'+editorTemplate.html;html=tinyMCE.replaceVar(html,"editor_id",this.editorId);if(!this.settings.default_document)this.settings.default_document=tinyMCE.baseURL+"/blank.htm";this.settings.old_width=this.settings.width;this.settings.old_height=this.settings.height;if(this.settings.width==-1)this.settings.width=replace_element.offsetWidth;if(this.settings.height==-1)this.settings.height=replace_element.offsetHeight;if(this.settings.width==0)this.settings.width=replace_element.style.width;if(this.settings.height==0)this.settings.height=replace_element.style.height;if(this.settings.width==0)this.settings.width=320;if(this.settings.height==0)this.settings.height=240;this.settings.area_width=parseInt(this.settings.width);this.settings.area_height=parseInt(this.settings.height);this.settings.area_width+=deltaWidth;this.settings.area_height+=deltaHeight;this.settings.width_style=""+this.settings.width;this.settings.height_style=""+this.settings.height;if((""+this.settings.width).indexOf('%')!=-1)this.settings.area_width="100%";else this.settings.width_style+='px';if((""+this.settings.height).indexOf('%')!=-1)this.settings.area_height="100%";else this.settings.height_style+='px';if((""+replace_element.style.width).indexOf('%')!=-1){this.settings.width=replace_element.style.width;this.settings.area_width="100%";this.settings.width_style="100%"}if((""+replace_element.style.height).indexOf('%')!=-1){this.settings.height=replace_element.style.height;this.settings.area_height="100%";this.settings.height_style="100%"}html=tinyMCE.applyTemplate(html);this.settings.width=this.settings.old_width;this.settings.height=this.settings.old_height;this.visualAid=this.settings.visual;this.formTargetElementId=form_element_name;if(replace_element.nodeName=="TEXTAREA"||replace_element.nodeName=="INPUT")this.startContent=replace_element.value;else this.startContent=replace_element.innerHTML;if(replace_element.nodeName!="TEXTAREA"&&replace_element.nodeName!="INPUT"){this.oldTargetElement=replace_element;hc='<input type="hidden" id="'+form_element_name+'" name="'+form_element_name+'" />';this.oldTargetDisplay=tinyMCE.getStyle(this.oldTargetElement,'display','inline');this.oldTargetElement.style.display="none";html+='</span>';if(tinyMCE.isGecko)html=hc+html;else html+=hc;if(tinyMCE.isGecko){rng=replace_element.ownerDocument.createRange();rng.setStartBefore(replace_element);fragment=rng.createContextualFragment(html);tinyMCE.insertAfter(fragment,replace_element)}else replace_element.insertAdjacentHTML("beforeBegin",html)}else{html+='</span>';this.oldTargetElement=replace_element;this.oldTargetDisplay=tinyMCE.getStyle(this.oldTargetElement,'display','inline');this.oldTargetElement.style.display="none";if(tinyMCE.isGecko){rng=replace_element.ownerDocument.createRange();rng.setStartBefore(replace_element);fragment=rng.createContextualFragment(html);tinyMCE.insertAfter(fragment,replace_element)}else replace_element.insertAdjacentHTML("beforeBegin",html)}dynamicIFrame=false;tElm=targetDoc.getElementById(this.editorId);if(!tinyMCE.isIE){if(tElm&&(tElm.nodeName=="SPAN"||tElm.nodeName=="span")){tElm=tinyMCE._createIFrame(tElm,targetDoc);dynamicIFrame=true}this.targetElement=tElm;this.iframeElement=tElm;this.contentDocument=tElm.contentDocument;this.contentWindow=tElm.contentWindow;}else{if(tElm&&tElm.nodeName=="SPAN")tElm=tinyMCE._createIFrame(tElm,targetDoc,targetDoc.parentWindow);else tElm=targetDoc.frames[this.editorId];this.targetElement=tElm;this.iframeElement=targetDoc.getElementById(this.editorId);if(tinyMCE.isOpera){this.contentDocument=this.iframeElement.contentDocument;this.contentWindow=this.iframeElement.contentWindow;dynamicIFrame=true}else{this.contentDocument=tElm.window.document;this.contentWindow=tElm.window}this.getDoc().designMode="on"}doc=this.contentDocument;if(dynamicIFrame){html=tinyMCE.getParam('doctype')+'<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="'+tinyMCE.settings.base_href+'" /><title>blank_page</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body class="mceContentBody"></body></html>';try{if(!this.isHidden())this.getDoc().designMode="on";doc.open();doc.write(html);doc.close()}catch(e){this.getDoc().location.href=tinyMCE.baseURL+"/blank.htm"}}if(tinyMCE.isIE)window.setTimeout("tinyMCE.addEventHandlers(tinyMCE.instances[\""+this.editorId+"\"]);",1);parentElm=this.targetDoc.getElementById(this.editorId+'_parent');this.formElement=tinyMCE.isGecko?parentElm.previousSibling:parentElm.nextSibling;tinyMCE.setupContent(this.editorId,true);return true},setBaseHREF:function(u){var h,b,d,nl;d=this.getDoc();nl=d.getElementsByTagName("base");b=nl.length>0?nl[0]:null;if(!b){nl=d.getElementsByTagName("head");h=nl.length>0?nl[0]:null;b=d.createElement("base");b.setAttribute('href',u);h.appendChild(b)}else{if(u==''||u==null)b.parentNode.removeChild(b);else b.setAttribute('href',u)}},getHTML:function(r){var h,d=this.getDoc(),b=this.getBody();if(r)return b.innerHTML;h=tinyMCE._cleanupHTML(this,d,this.settings,b,false,true,false,true);if(tinyMCE.getParam("convert_fonts_to_spans"))tinyMCE.convertSpansToFonts(d);return h},setHTML:function(h){this.execCommand('mceSetContent',false,h);this.repaint()},getFocusElement:function(){return this.selection.getFocusElement()},getSel:function(){return this.selection.getSel()},getRng:function(){return this.selection.getRng()},triggerSave:function(skip_cleanup,skip_callback){var e,nl=[],i,s,content,htm;if(!this.enabled)return;this.switchSettings();s=tinyMCE.settings;if(tinyMCE.isRealIE){e=this.iframeElement;do{if(e.style&&e.style.display=='none'){e.style.display='block';nl[nl.length]={elm:e,type:'style'}}if(e.style&&s.hidden_tab_class.length>0&&e.className.indexOf(s.hidden_tab_class)!=-1){e.className=s.display_tab_class;nl[nl.length]={elm:e,type:'class'}}}while((e=e.parentNode)!=null)}tinyMCE.settings.preformatted=false;if(typeof(skip_cleanup)=="undefined")skip_cleanup=false;if(typeof(skip_callback)=="undefined")skip_callback=false;tinyMCE._setHTML(this.getDoc(),this.getBody().innerHTML);if(this.settings.cleanup==false){tinyMCE.handleVisualAid(this.getBody(),true,false,this);tinyMCE._setEventsEnabled(this.getBody(),true)}tinyMCE._customCleanup(this,"submit_content_dom",this.contentWindow.document.body);htm=skip_cleanup?this.getBody().innerHTML:tinyMCE._cleanupHTML(this,this.getDoc(),this.settings,this.getBody(),tinyMCE.visualAid,true,true);htm=tinyMCE._customCleanup(this,"submit_content",htm);if(!skip_callback&&tinyMCE.settings.save_callback!=='')content=tinyMCE.resolveDots(tinyMCE.settings.save_callback,window)(this.formTargetElementId,htm,this.getBody());if((typeof(content)!="undefined")&&content!=null)htm=content;htm=tinyMCE.regexpReplace(htm,"&#40;","(","gi");htm=tinyMCE.regexpReplace(htm,"&#41;",")","gi");htm=tinyMCE.regexpReplace(htm,"&#59;",";","gi");htm=tinyMCE.regexpReplace(htm,"&#34;","&quot;","gi");htm=tinyMCE.regexpReplace(htm,"&#94;","^","gi");if(this.formElement)this.formElement.value=htm;if(tinyMCE.isSafari&&this.formElement)this.formElement.innerText=htm;for(i=0;i<nl.length;i++){if(nl[i].type=='style')nl[i].elm.style.display='none';else nl[i].elm.className=s.hidden_tab_class}}};tinyMCE.add(TinyMCE_Engine,{cleanupHTMLCode:function(s){s=s.replace(new RegExp('<p \\/>','gi'),'<p>&nbsp;</p>');s=s.replace(new RegExp('<p>\\s*<\\/p>','gi'),'<p>&nbsp;</p>');s=s.replace(new RegExp('<br>\\s*<\\/br>','gi'),'<br />');s=s.replace(new RegExp('<(h[1-6]|p|div|address|pre|form|table|li|ol|ul|td|b|font|em|strong|i|strike|u|span|a|ul|ol|li|blockquote)([a-z]*)([^\\\\|>]*)\\/>','gi'),'<$1$2$3></$1$2>');s=s.replace(new RegExp('\\s+></','gi'),'></');s=s.replace(new RegExp('<(img|br|hr)([^>]*)><\\/(img|br|hr)>','gi'),'<$1$2 />');if(tinyMCE.isIE)s=s.replace(new RegExp('<p><hr \\/><\\/p>','gi'),"<hr>");if(tinyMCE.isIE)s=s.replace(/<!(\s*)\/>/g,'');return s},parseStyle:function(str){var ar=[],st,i,re,pa;if(str==null)return ar;st=str.split(';');tinyMCE.clearArray(ar);for(i=0;i<st.length;i++){if(st[i]=='')continue;re=new RegExp('^\\s*([^:]*):\\s*(.*)\\s*$');pa=st[i].replace(re,'$1||$2').split('||');if(pa.length==2)ar[pa[0].toLowerCase()]=pa[1]}return ar},compressStyle:function(ar,pr,sf,res){var box=[],i,a;box[0]=ar[pr+'-top'+sf];box[1]=ar[pr+'-left'+sf];box[2]=ar[pr+'-right'+sf];box[3]=ar[pr+'-bottom'+sf];for(i=0;i<box.length;i++){if(box[i]==null)return;for(a=0;a<box.length;a++){if(box[a]!=box[i])return}}ar[res]=box[0];ar[pr+'-top'+sf]=null;ar[pr+'-left'+sf]=null;ar[pr+'-right'+sf]=null;ar[pr+'-bottom'+sf]=null},serializeStyle:function(ar){var str="",key,val,m;tinyMCE.compressStyle(ar,"border","","border");tinyMCE.compressStyle(ar,"border","-width","border-width");tinyMCE.compressStyle(ar,"border","-color","border-color");tinyMCE.compressStyle(ar,"border","-style","border-style");tinyMCE.compressStyle(ar,"padding","","padding");tinyMCE.compressStyle(ar,"margin","","margin");for(key in ar){val=ar[key];if(typeof(val)=='function')continue;if(key.indexOf('mso-')==0)continue;if(val!=null&&val!==''){val=''+val;val=val.replace(new RegExp("url\\(\\'?([^\\']*)\\'?\\)",'gi'),"url('$1')");if(val.indexOf('url(')!=-1&&tinyMCE.getParam('convert_urls')){m=new RegExp("url\\('(.*?)'\\)").exec(val);if(m.length>1)val="url('"+eval(tinyMCE.getParam('urlconverter_callback')+"(m[1], null, true);")+"')"}if(tinyMCE.getParam("force_hex_style_colors"))val=tinyMCE.convertRGBToHex(val,true);val=val.replace(/\"/g,'\'');if(val!="url('')")str+=key.toLowerCase()+": "+val+"; "}}if(new RegExp('; $').test(str))str=str.substring(0,str.length-2);return str},convertRGBToHex:function(s,k){var re,rgb;if(s.toLowerCase().indexOf('rgb')!=-1){re=new RegExp("(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)(.*?)","gi");rgb=s.replace(re,"$1,$2,$3,$4,$5").split(',');if(rgb.length==5){r=parseInt(rgb[1]).toString(16);g=parseInt(rgb[2]).toString(16);b=parseInt(rgb[3]).toString(16);r=r.length==1?'0'+r:r;g=g.length==1?'0'+g:g;b=b.length==1?'0'+b:b;s="#"+r+g+b;if(k)s=rgb[0]+s+rgb[4]}}return s},convertHexToRGB:function(s){if(s.indexOf('#')!=-1){s=s.replace(new RegExp('[^0-9A-F]','gi'),'');return"rgb("+parseInt(s.substring(0,2),16)+","+parseInt(s.substring(2,4),16)+","+parseInt(s.substring(4,6),16)+")"}return s},convertSpansToFonts:function(doc){var s,i,size,fSize,x,fFace,fColor,sizes=tinyMCE.getParam('font_size_style_values').replace(/\s+/,'').split(',');s=tinyMCE.selectElements(doc,'span,font');for(i=0;i<s.length;i++){size=tinyMCE.trim(s[i].style.fontSize).toLowerCase();fSize=0;for(x=0;x<sizes.length;x++){if(sizes[x]==size){fSize=x+1;break}}if(fSize>0){tinyMCE.setAttrib(s[i],'size',fSize);s[i].style.fontSize=''}fFace=s[i].style.fontFamily;if(fFace!=null&&fFace!==''){tinyMCE.setAttrib(s[i],'face',fFace);s[i].style.fontFamily=''}fColor=s[i].style.color;if(fColor!=null&&fColor!==''){tinyMCE.setAttrib(s[i],'color',tinyMCE.convertRGBToHex(fColor));s[i].style.color=''}}},convertFontsToSpans:function(doc){var fsClasses,s,i,fSize,fFace,fColor,sizes=tinyMCE.getParam('font_size_style_values').replace(/\s+/,'').split(',');fsClasses=tinyMCE.getParam('font_size_classes');if(fsClasses!=='')fsClasses=fsClasses.replace(/\s+/,'').split(',');else fsClasses=null;s=tinyMCE.selectElements(doc,'span,font');for(i=0;i<s.length;i++){fSize=tinyMCE.getAttrib(s[i],'size');fFace=tinyMCE.getAttrib(s[i],'face');fColor=tinyMCE.getAttrib(s[i],'color');if(fSize!==''){fSize=parseInt(fSize);if(fSize>0&&fSize<8){if(fsClasses!=null)tinyMCE.setAttrib(s[i],'class',fsClasses[fSize-1]);else s[i].style.fontSize=sizes[fSize-1]}s[i].removeAttribute('size')}if(fFace!==''){s[i].style.fontFamily=fFace;s[i].removeAttribute('face')}if(fColor!==''){s[i].style.color=fColor;s[i].removeAttribute('color')}}},cleanupAnchors:function(doc){var i,cn,x,an=doc.getElementsByTagName("a");for(i=an.length-1;i>=0;i--){if(tinyMCE.getAttrib(an[i],"name")!==''&&tinyMCE.getAttrib(an[i],"href")==''){cn=an[i].childNodes;for(x=cn.length-1;x>=0;x--)tinyMCE.insertAfter(cn[x],an[i])}}},getContent:function(editor_id){if(typeof(editor_id)!="undefined")tinyMCE.getInstanceById(editor_id).select();if(tinyMCE.selectedInstance)return tinyMCE.selectedInstance.getHTML();return null},_fixListElements:function(d){var nl,x,a=['ol','ul'],i,n,p,r=new RegExp('^(OL|UL)$'),np;for(x=0;x<a.length;x++){nl=d.getElementsByTagName(a[x]);for(i=0;i<nl.length;i++){n=nl[i];p=n.parentNode;if(r.test(p.nodeName)){np=tinyMCE.prevNode(n,'LI');if(!np){np=d.createElement('li');np.innerHTML='&nbsp;';np.appendChild(n);p.insertBefore(np,p.firstChild)}else np.appendChild(n)}}}},_fixTables:function(d){var nl,i,n,p,np,x,t;nl=d.getElementsByTagName('table');for(i=0;i<nl.length;i++){n=nl[i];if((p=tinyMCE.getParentElement(n,'p,h1,h2,h3,h4,h5,h6'))!=null){np=p.cloneNode(false);np.removeAttribute('id');t=n;while((n=n.nextSibling))np.appendChild(n);tinyMCE.insertAfter(np,p);tinyMCE.insertAfter(t,p)}}},_cleanupHTML:function(inst,doc,config,elm,visual,on_save,on_submit,inn){var h,d,t1,t2,t3,t4,t5,c,s,nb;if(!tinyMCE.getParam('cleanup'))return elm.innerHTML;on_save=typeof(on_save)=='undefined'?false:on_save;c=inst.cleanup;s=inst.settings;d=c.settings.debug;if(d)t1=new Date().getTime();inst._fixRootBlocks();if(tinyMCE.getParam("convert_fonts_to_spans"))tinyMCE.convertFontsToSpans(doc);if(tinyMCE.getParam("fix_list_elements"))tinyMCE._fixListElements(doc);if(tinyMCE.getParam("fix_table_elements"))tinyMCE._fixTables(doc);tinyMCE._customCleanup(inst,on_save?"get_from_editor_dom":"insert_to_editor_dom",doc.body);if(d)t2=new Date().getTime();c.settings.on_save=on_save;c.idCount=0;c.serializationId=new Date().getTime().toString(32);c.serializedNodes=[];c.sourceIndex=-1;if(s.cleanup_serializer=="xml")h=c.serializeNodeAsXML(elm,inn);else h=c.serializeNodeAsHTML(elm,inn);if(d)t3=new Date().getTime();nb=tinyMCE.getParam('entity_encoding')=='numeric'?'&#160;':'&nbsp;';h=h.replace(/<\/?(body|head|html)[^>]*>/gi,'');h=h.replace(new RegExp(' (rowspan="1"|colspan="1")','g'),'');h=h.replace(/<p><hr \/><\/p>/g,'<hr />');h=h.replace(/<p>(&nbsp;|&#160;)<\/p><hr \/><p>(&nbsp;|&#160;)<\/p>/g,'<hr />');h=h.replace(/<td>\s*<br \/>\s*<\/td>/g,'<td>'+nb+'</td>');h=h.replace(/<p>\s*<br \/>\s*<\/p>/g,'<p>'+nb+'</p>');h=h.replace(/<br \/>$/,'');h=h.replace(/<br \/><\/p>/g,'</p>');h=h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*(&nbsp;|&#160;)\s*<\/p>/g,'<p>'+nb+'</p>');h=h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*<\/p>/g,'<p>'+nb+'</p>');h=h.replace(/<p>\s*<br \/>\s*&nbsp;\s*<\/p>/g,'<p>'+nb+'</p>');h=h.replace(new RegExp('<a>(.*?)<\\/a>','g'),'$1');h=h.replace(/<p([^>]*)>\s*<\/p>/g,'<p$1>'+nb+'</p>');if(/^\s*(<br \/>|<p>&nbsp;<\/p>|<p>&#160;<\/p>|<p><\/p>)\s*$/.test(h))h='';if(s.preformatted){h=h.replace(/^<pre>/,'');h=h.replace(/<\/pre>$/,'');h='<pre>'+h+'</pre>'}if(tinyMCE.isGecko){h=h.replace(/<br \/>\s*<\/li>/g,'</li>');h=h.replace(/&nbsp;\s*<\/(dd|dt)>/g,'</$1>');h=h.replace(/<o:p _moz-userdefined="" \/>/g,'');h=h.replace(/<td([^>]*)>\s*<br \/>\s*<\/td>/g,'<td$1>'+nb+'</td>')}if(s.force_br_newlines)h=h.replace(/<p>(&nbsp;|&#160;)<\/p>/g,'<br />');h=tinyMCE._customCleanup(inst,on_save?"get_from_editor":"insert_to_editor",h);if(on_save){h=h.replace(new RegExp(' ?(mceItem[a-zA-Z0-9]*|'+s.visual_table_class+')','g'),'');h=h.replace(new RegExp(' ?class=""','g'),'')}if(s.remove_linebreaks&&!c.settings.indent)h=h.replace(/\n|\r/g,' ');if(d)t4=new Date().getTime();if(on_save&&c.settings.indent)h=c.formatHTML(h);if(on_submit&&(s.encoding=="xml"||s.encoding=="html"))h=c.xmlEncode(h);if(d)t5=new Date().getTime();if(c.settings.debug)tinyMCE.debug("Cleanup in ms: Pre="+(t2-t1)+", Serialize: "+(t3-t2)+", Post: "+(t4-t3)+", Format: "+(t5-t4)+", Sum: "+(t5-t1)+".");return h}});function TinyMCE_Cleanup(){this.isIE=(navigator.appName=="Microsoft Internet Explorer");this.rules=tinyMCE.clearArray([]);this.settings={indent_elements:'head,table,tbody,thead,tfoot,form,tr,ul,ol,blockquote,object',newline_before_elements:'h1,h2,h3,h4,h5,h6,pre,address,div,ul,ol,li,meta,option,area,title,link,base,script,td',newline_after_elements:'br,hr,p,pre,address,div,ul,ol,meta,option,area,link,base,script',newline_before_after_elements:'html,head,body,table,thead,tbody,tfoot,tr,form,ul,ol,blockquote,p,object,param,hr,div',indent_char:'\t',indent_levels:1,entity_encoding:'raw',valid_elements:'*[*]',entities:'',url_converter:'',invalid_elements:'',verify_html:false};this.vElements=tinyMCE.clearArray([]);this.vElementsRe='';this.closeElementsRe=/^(IMG|BR|HR|LINK|META|BASE|INPUT|AREA)$/;this.codeElementsRe=/^(SCRIPT|STYLE)$/;this.serializationId=0;this.mceAttribs={href:'mce_href',src:'mce_src',type:'mce_type'}}TinyMCE_Cleanup.prototype={init:function(s){var n,a,i,ir,or,st;for(n in s)this.settings[n]=s[n];s=this.settings;this.inRe=this._arrayToRe(s.indent_elements.split(','),'','^<(',')[^>]*');this.ouRe=this._arrayToRe(s.indent_elements.split(','),'','^<\\/(',')[^>]*');this.nlBeforeRe=this._arrayToRe(s.newline_before_elements.split(','),'gi','<(',')([^>]*)>');this.nlAfterRe=this._arrayToRe(s.newline_after_elements.split(','),'gi','<(',')([^>]*)>');this.nlBeforeAfterRe=this._arrayToRe(s.newline_before_after_elements.split(','),'gi','<(\\/?)(',')([^>]*)>');this.serializedNodes=[];if(s.invalid_elements!=='')this.iveRe=this._arrayToRe(s.invalid_elements.toUpperCase().split(','),'g','^(',')$');else this.iveRe=null;st='';for(i=0;i<s.indent_levels;i++)st+=s.indent_char;this.inStr=st;if(!s.verify_html){s.valid_elements='*[*]';s.extended_valid_elements=''}this.fillStr=s.entity_encoding=="named"?"&nbsp;":"&#160;";this.idCount=0;this.xmlEncodeRe=new RegExp('[\u007F-\uFFFF<>&"]','g')},addRuleStr:function(s){var r=this.parseRuleStr(s),n;for(n in r){if(r[n])this.rules[n]=r[n]}this.vElements=tinyMCE.clearArray([]);for(n in this.rules){if(this.rules[n])this.vElements[this.vElements.length]=this.rules[n].tag}this.vElementsRe=this._arrayToRe(this.vElements,'')},isValid:function(n){if(!this.rulesDone)this._setupRules();if(!n)return true;n=n.replace(/[^a-z0-9]+/gi,'').toUpperCase();return!tinyMCE.getParam('cleanup')||this.vElementsRe.test(n)},addChildRemoveRuleStr:function(s){var x,y,p,i,t,tn,ta,cl,r;if(!s)return;ta=s.split(',');for(x=0;x<ta.length;x++){s=ta[x];p=this.split(/\[|\]/,s);if(p==null||p.length<1)t=s.toUpperCase();else t=p[0].toUpperCase();tn=this.split('/',t);for(y=0;y<tn.length;y++){r="^(";cl=this.split(/\|/,p[1]);for(i=0;i<cl.length;i++){if(cl[i]=='%istrict')r+=tinyMCE.inlineStrict;else if(cl[i]=='%itrans')r+=tinyMCE.inlineTransitional;else if(cl[i]=='%istrict_na')r+=tinyMCE.inlineStrict.substring(2);else if(cl[i]=='%itrans_na')r+=tinyMCE.inlineTransitional.substring(2);else if(cl[i]=='%btrans')r+=tinyMCE.blockElms;else if(cl[i]=='%strict')r+=tinyMCE.blockStrict;else r+=(cl[i].charAt(0)!='#'?cl[i].toUpperCase():cl[i]);r+=(i!=cl.length-1?'|':'')}r+=')$';if(this.childRules==null)this.childRules=tinyMCE.clearArray([]);this.childRules[tn[y]]=new RegExp(r);if(p.length>1)this.childRules[tn[y]].wrapTag=p[2]}}},parseRuleStr:function(s){var ta,p,r,a,i,x,px,t,tn,y,av,or=tinyMCE.clearArray([]),dv;if(s==null||s.length==0)return or;ta=s.split(',');for(x=0;x<ta.length;x++){s=ta[x];if(s.length==0)continue;p=this.split(/\[|\]/,s);if(p==null||p.length<1)t=s.toUpperCase();else t=p[0].toUpperCase();tn=this.split('/',t);for(y=0;y<tn.length;y++){r={};r.tag=tn[y];r.forceAttribs=null;r.defaultAttribs=null;r.validAttribValues=null;px=r.tag.charAt(0);r.forceOpen=px=='+';r.removeEmpty=px=='-';r.fill=px=='#';r.tag=r.tag.replace(/\+|-|#/g,'');r.oTagName=tn[0].replace(/\+|-|#/g,'').toLowerCase();r.isWild=new RegExp('\\*|\\?|\\+','g').test(r.tag);r.validRe=new RegExp(this._wildcardToRe('^'+r.tag+'$'));if(p.length>1){r.vAttribsRe='^(';a=this.split(/\|/,p[1]);for(i=0;i<a.length;i++){t=a[i];if(t.charAt(0)=='!'){a[i]=t=t.substring(1);if(!r.reqAttribsRe)r.reqAttribsRe='\\s+('+t;else r.reqAttribsRe+='|'+t}av=new RegExp('(=|:|<)(.*?)$').exec(t);t=t.replace(new RegExp('(=|:|<).*?$'),'');if(av&&av.length>0){if(av[0].charAt(0)==':'){if(!r.forceAttribs)r.forceAttribs=tinyMCE.clearArray([]);r.forceAttribs[t.toLowerCase()]=av[0].substring(1)}else if(av[0].charAt(0)=='='){if(!r.defaultAttribs)r.defaultAttribs=tinyMCE.clearArray([]);dv=av[0].substring(1);r.defaultAttribs[t.toLowerCase()]=dv==''?"mce_empty":dv}else if(av[0].charAt(0)=='<'){if(!r.validAttribValues)r.validAttribValues=tinyMCE.clearArray([]);r.validAttribValues[t.toLowerCase()]=this._arrayToRe(this.split('?',av[0].substring(1)),'i')}}r.vAttribsRe+=''+t.toLowerCase()+(i!=a.length-1?'|':'');a[i]=t.toLowerCase()}if(r.reqAttribsRe)r.reqAttribsRe=new RegExp(r.reqAttribsRe+')=\"','g');r.vAttribsRe+=')$';r.vAttribsRe=this._wildcardToRe(r.vAttribsRe);r.vAttribsReIsWild=new RegExp('\\*|\\?|\\+','g').test(r.vAttribsRe);r.vAttribsRe=new RegExp(r.vAttribsRe);r.vAttribs=a.reverse();}else{r.vAttribsRe='';r.vAttribs=tinyMCE.clearArray([]);r.vAttribsReIsWild=false}or[r.tag]=r}}return or},serializeNodeAsXML:function(n){var s,b;if(!this.xmlDoc){if(this.isIE){try{this.xmlDoc=new ActiveXObject('MSXML2.DOMDocument')}catch(e){}if(!this.xmlDoc)try{this.xmlDoc=new ActiveXObject('Microsoft.XmlDom')}catch(e){}}else this.xmlDoc=document.implementation.createDocument('','',null);if(!this.xmlDoc)alert("Error XML Parser could not be found.")}if(this.xmlDoc.firstChild)this.xmlDoc.removeChild(this.xmlDoc.firstChild);b=this.xmlDoc.createElement("html");b=this.xmlDoc.appendChild(b);this._convertToXML(n,b);if(this.isIE)return this.xmlDoc.xml;else return new XMLSerializer().serializeToString(this.xmlDoc)},_convertToXML:function(n,xn){var xd,el,i,l,cn,at,no,hc=false;if(tinyMCE.isRealIE&&this._isDuplicate(n))return;xd=this.xmlDoc;switch(n.nodeType){case 1:hc=n.hasChildNodes();el=xd.createElement(n.nodeName.toLowerCase());at=n.attributes;for(i=at.length-1;i>-1;i--){no=at[i];if(no.specified&&no.nodeValue)el.setAttribute(no.nodeName.toLowerCase(),no.nodeValue)}if(!hc&&!this.closeElementsRe.test(n.nodeName))el.appendChild(xd.createTextNode(""));xn=xn.appendChild(el);break;case 3:xn.appendChild(xd.createTextNode(n.nodeValue));return;case 8:xn.appendChild(xd.createComment(n.nodeValue));return}if(hc){cn=n.childNodes;for(i=0,l=cn.length;i<l;i++)this._convertToXML(cn[i],xn)}},serializeNodeAsHTML:function(n,inn){var en,no,h='',i,l,t,st,r,cn,va=false,f=false,at,hc,cr,nn;if(!this.rulesDone)this._setupRules();if(tinyMCE.isRealIE&&this._isDuplicate(n))return'';if(n.parentNode&&this.childRules!=null){cr=this.childRules[n.parentNode.nodeName];if(typeof(cr)!="undefined"&&!cr.test(n.nodeName)){st=true;t=null}}switch(n.nodeType){case 1:hc=n.hasChildNodes();if(st)break;nn=n.nodeName;if(tinyMCE.isRealIE){if(n.nodeName.indexOf('/')!=-1)break;if(n.scopeName&&n.scopeName!='HTML')nn=n.scopeName.toUpperCase()+':'+nn.toUpperCase()}else if(tinyMCE.isOpera&&nn.indexOf(':')>0)nn=nn.toUpperCase();if(this.settings.convert_fonts_to_spans){if(this.settings.on_save&&nn=='FONT')nn='SPAN';if(!this.settings.on_save&&nn=='SPAN')nn='FONT'}if(this.vElementsRe.test(nn)&&(!this.iveRe||!this.iveRe.test(nn))&&!inn){va=true;r=this.rules[nn];if(!r){at=this.rules;for(no in at){if(at[no]&&at[no].validRe.test(nn)){r=at[no];break}}}en=r.isWild?nn.toLowerCase():r.oTagName;f=r.fill;if(r.removeEmpty&&!hc)return"";t='<'+en;if(r.vAttribsReIsWild){at=n.attributes;for(i=at.length-1;i>-1;i--){no=at[i];if(no.specified&&r.vAttribsRe.test(no.nodeName))t+=this._serializeAttribute(n,r,no.nodeName)}}else{for(i=r.vAttribs.length-1;i>-1;i--)t+=this._serializeAttribute(n,r,r.vAttribs[i])}if(!this.settings.on_save){at=this.mceAttribs;for(no in at){if(at[no])t+=this._serializeAttribute(n,r,at[no])}}if(r.reqAttribsRe&&!t.match(r.reqAttribsRe))t=null;if(t!=null&&this.closeElementsRe.test(nn))return t+' />';if(t!=null)h+=t+'>';if(this.isIE&&this.codeElementsRe.test(nn))h+=n.innerHTML}break;case 3:if(st)break;if(n.parentNode&&this.codeElementsRe.test(n.parentNode.nodeName))return this.isIE?'':n.nodeValue;return this.xmlEncode(n.nodeValue);case 8:if(st)break;return"<!--"+this._trimComment(n.nodeValue)+"-->"}if(hc){cn=n.childNodes;for(i=0,l=cn.length;i<l;i++)h+=this.serializeNodeAsHTML(cn[i])}if(f&&!hc)h+=this.fillStr;if(t!=null&&va)h+='</'+en+'>';return h},_serializeAttribute:function(n,r,an){var av='',t,os=this.settings.on_save;if(os&&(an.indexOf('mce_')==0||an.indexOf('_moz')==0))return'';if(os&&this.mceAttribs[an])av=this._getAttrib(n,this.mceAttribs[an]);if(av.length==0)av=this._getAttrib(n,an);if(av.length==0&&r.defaultAttribs&&(t=r.defaultAttribs[an])){av=t;if(av=="mce_empty")return" "+an+'=""'}if(r.forceAttribs&&(t=r.forceAttribs[an]))av=t;if(os&&av.length!=0&&/^(src|href|longdesc)$/.test(an))av=this._urlConverter(this,n,av);if(av.length!=0&&r.validAttribValues&&r.validAttribValues[an]&&!r.validAttribValues[an].test(av))return"";if(av.length!=0&&av=="{$uid}")av="uid_"+(this.idCount++);if(av.length!=0){if(an.indexOf('on')!=0)av=this.xmlEncode(av,1);return" "+an+"="+'"'+av+'"'}return""},formatHTML:function(h){var s=this.settings,p='',i=0,li=0,o='',l;h=h.replace(/<pre([^>]*)>(.*?)<\/pre>/gi,function(a,b,c){c=c.replace(/<br\s*\/>/gi,'\n');return'<pre'+b+'>'+c+'</pre>'});h=h.replace(/\r/g,'');h='\n'+h;h=h.replace(new RegExp('\\n\\s+','gi'),'\n');h=h.replace(this.nlBeforeRe,'\n<$1$2>');h=h.replace(this.nlAfterRe,'<$1$2>\n');h=h.replace(this.nlBeforeAfterRe,'\n<$1$2$3>\n');h+='\n';while((i=h.indexOf('\n',i+1))!=-1){if((l=h.substring(li+1,i)).length!=0){if(this.ouRe.test(l)&&p.length>=s.indent_levels)p=p.substring(s.indent_levels);o+=p+l+'\n';if(this.inRe.test(l))p+=this.inStr}li=i}return o},xmlEncode:function(s){var cl=this,re=this.xmlEncodeRe;if(!this.entitiesDone)this._setupEntities();switch(this.settings.entity_encoding){case"raw":return tinyMCE.xmlEncode(s);case"named":return s.replace(re,function(c){var b=cl.entities[c.charCodeAt(0)];return b?'&'+b+';':c});case"numeric":return s.replace(re,function(c){return'&#'+c.charCodeAt(0)+';'})}return s},split:function(re,s){var i,l,o=[],c=s.split(re);for(i=0,l=c.length;i<l;i++){if(c[i]!=='')o[i]=c[i]}return o},_trimComment:function(s){s=s.replace(new RegExp('\\smce_src=\"[^\"]*\"','gi'),"");s=s.replace(new RegExp('\\smce_href=\"[^\"]*\"','gi'),"");return s},_getAttrib:function(e,n,d){var v,ex,nn;if(typeof(d)=="undefined")d="";if(!e||e.nodeType!=1)return d;try{v=e.getAttribute(n,0)}catch(ex){v=e.getAttribute(n,2)}if(n=="class"&&!v)v=e.className;if(this.isIE){if(n=="http-equiv")v=e.httpEquiv;nn=e.nodeName;if(nn=="FORM"&&n=="enctype"&&v=="application/x-www-form-urlencoded")v="";if(nn=="INPUT"&&n=="size"&&v=="20")v="";if(nn=="INPUT"&&n=="maxlength"&&v=="2147483647")v="";if(n=="width"||n=="height")v=e.getAttribute(n,2)}if(n=='style'&&v){if(!tinyMCE.isOpera)v=e.style.cssText;v=tinyMCE.serializeStyle(tinyMCE.parseStyle(v))}if(this.settings.on_save&&n.indexOf('on')!=-1&&this.settings.on_save&&v&&v!=='')v=tinyMCE.cleanupEventStr(v);return(v&&v!=='')?''+v:d},_urlConverter:function(c,n,v){if(!c.settings.on_save)return tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href,v);else if(tinyMCE.getParam('convert_urls')){if(!this.urlConverter)this.urlConverter=eval(tinyMCE.settings.urlconverter_callback);return this.urlConverter(v,n,true)}return v},_arrayToRe:function(a,op,be,af){var i,r;op=typeof(op)=="undefined"?"gi":op;be=typeof(be)=="undefined"?"^(":be;af=typeof(af)=="undefined"?")$":af;r=be;for(i=0;i<a.length;i++)r+=this._wildcardToRe(a[i])+(i!=a.length-1?"|":"");r+=af;return new RegExp(r,op)},_wildcardToRe:function(s){s=s.replace(/\?/g,'(\\S?)');s=s.replace(/\+/g,'(\\S+)');s=s.replace(/\*/g,'(\\S*)');return s},_setupEntities:function(){var n,a,i,s=this.settings;if(s.entity_encoding=="named"){n=tinyMCE.clearArray([]);a=this.split(',',s.entities);for(i=0;i<a.length;i+=2)n[a[i]]=a[i+1];this.entities=n}this.entitiesDone=true},_setupRules:function(){var s=this.settings;this.addRuleStr(s.valid_elements);this.addRuleStr(s.extended_valid_elements);this.addChildRemoveRuleStr(s.valid_child_elements);this.rulesDone=true},_isDuplicate:function(n){var i,l,sn;if(!this.settings.fix_content_duplication)return false;if(tinyMCE.isRealIE&&n.nodeType==1){if(n.mce_serialized==this.serializationId)return true;n.setAttribute('mce_serialized',this.serializationId)}else{sn=this.serializedNodes;for(i=0,l=sn.length;i<l;i++){if(sn[i]==n)return true}sn.push(n)}return false}};tinyMCE.add(TinyMCE_Engine,{createTagHTML:function(tn,a,h){var o='',f=tinyMCE.xmlEncode,n;o='<'+tn;if(a){for(n in a){if(typeof(a[n])!='function'&&a[n]!=null)o+=' '+f(n)+'="'+f(''+a[n])+'"'}}o+=!h?' />':'>'+h+'</'+tn+'>';return o},createTag:function(d,tn,a,h){var o=d.createElement(tn),n;if(a){for(n in a){if(typeof(a[n])!='function'&&a[n]!=null)tinyMCE.setAttrib(o,n,a[n])}}if(h)o.innerHTML=h;return o},getElementByAttributeValue:function(n,e,a,v){return(n=this.getElementsByAttributeValue(n,e,a,v)).length==0?null:n[0]},getElementsByAttributeValue:function(n,e,a,v){var i,nl=n.getElementsByTagName(e),o=[];for(i=0;i<nl.length;i++){if(tinyMCE.getAttrib(nl[i],a).indexOf(v)!=-1)o[o.length]=nl[i]}return o},isBlockElement:function(n){return n!=null&&n.nodeType==1&&this.blockRegExp.test(n.nodeName)},getParentBlockElement:function(n,r){return this.getParentNode(n,function(n){return tinyMCE.isBlockElement(n)},r);return null},insertAfter:function(n,r){if(r.nextSibling)r.parentNode.insertBefore(n,r.nextSibling);else r.parentNode.appendChild(n)},setInnerHTML:function(e,h){var i,nl,n;if(tinyMCE.isGecko){h=h.replace(/<embed([^>]*)>/gi,'<tmpembed$1>');h=h.replace(/<em([^>]*)>/gi,'<i$1>');h=h.replace(/<tmpembed([^>]*)>/gi,'<embed$1>');h=h.replace(/<strong([^>]*)>/gi,'<b$1>');h=h.replace(/<\/strong>/gi,'</b>');h=h.replace(/<\/em>/gi,'</i>')}if(tinyMCE.isRealIE){h=h.replace(/\s\/>/g,'>');h=h.replace(/<p([^>]*)>\u00A0?<\/p>/gi,'<p$1 mce_keep="true">&nbsp;</p>');h=h.replace(/<p([^>]*)>\s*&nbsp;\s*<\/p>/gi,'<p$1 mce_keep="true">&nbsp;</p>');h=h.replace(/<p([^>]*)>\s+<\/p>/gi,'<p$1 mce_keep="true">&nbsp;</p>');e.innerHTML=tinyMCE.uniqueTag+h;e.firstChild.removeNode(true);nl=e.getElementsByTagName("p");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.nodeName=='P'&&!n.hasChildNodes()&&!n.mce_keep)n.parentNode.removeChild(n)}}else{h=this.fixGeckoBaseHREFBug(1,e,h);e.innerHTML=h;this.fixGeckoBaseHREFBug(2,e,h)}},getOuterHTML:function(e){var d;if(tinyMCE.isIE)return e.outerHTML;d=e.ownerDocument.createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML},setOuterHTML:function(e,h,d){var d=typeof(d)=="undefined"?e.ownerDocument:d,i,nl,t;if(tinyMCE.isIE&&e.nodeType==1)e.outerHTML=h;else{t=d.createElement("body");t.innerHTML=h;for(i=0,nl=t.childNodes;i<nl.length;i++)e.parentNode.insertBefore(nl[i].cloneNode(true),e);e.parentNode.removeChild(e)}},_getElementById:function(id,d){var e,i,j,f;if(typeof(d)=="undefined")d=document;e=d.getElementById(id);if(!e){f=d.forms;for(i=0;i<f.length;i++){for(j=0;j<f[i].elements.length;j++){if(f[i].elements[j].name==id){e=f[i].elements[j];break}}}}return e},getNodeTree:function(n,na,t,nn){return this.selectNodes(n,function(n){return(!t||n.nodeType==t)&&(!nn||n.nodeName==nn)},na?na:[])},getParentElement:function(n,na,f,r){var re=na?new RegExp('^('+na.toUpperCase().replace(/,/g,'|')+')$'):0,v;if(f&&typeof(f)=='string')return this.getParentElement(n,na,function(no){return tinyMCE.getAttrib(no,f)!==''});return this.getParentNode(n,function(n){return((n.nodeType==1&&!re)||(re&&re.test(n.nodeName)))&&(!f||f(n))},r)},getParentNode:function(n,f,r){while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode}return null},getAttrib:function(elm,name,dv){var v;if(typeof(dv)=="undefined")dv="";if(!elm||elm.nodeType!=1)return dv;try{v=elm.getAttribute(name,0)}catch(ex){v=elm.getAttribute(name,2)}if(name=="class"&&!v)v=elm.className;if(tinyMCE.isGecko){if(name=="src"&&elm.src!=null&&elm.src!=='')v=elm.src;if(name=="href"&&elm.href!=null&&elm.href!=='')v=elm.href}else if(tinyMCE.isIE){switch(name){case"http-equiv":v=elm.httpEquiv;break;case"width":case"height":v=elm.getAttribute(name,2);break}}if(name=="style"&&!tinyMCE.isOpera)v=elm.style.cssText;return(v&&v!=='')?v:dv},setAttrib:function(el,name,va,fix){if(typeof(va)=="number"&&va!=null)va=""+va;if(fix){if(va==null)va="";va=va.replace(/[^0-9%]/g,'')}if(name=="style")el.style.cssText=va;if(name=="class")el.className=va;if(va!=null&&va!==''&&va!=-1)el.setAttribute(name,va);else el.removeAttribute(name)},setStyleAttrib:function(e,n,v){e.style[n]=v;if(tinyMCE.isIE&&v==null||v==''){v=tinyMCE.serializeStyle(tinyMCE.parseStyle(e.style.cssText));e.style.cssText=v;e.setAttribute("style",v)}},switchClass:function(ei,c){var e;if(tinyMCE.switchClassCache[ei])e=tinyMCE.switchClassCache[ei];else e=tinyMCE.switchClassCache[ei]=document.getElementById(ei);if(e){if(tinyMCE.settings.button_tile_map&&e.className&&e.className.indexOf('mceTiledButton')==0)c='mceTiledButton '+c;e.className=c}},getAbsPosition:function(n,cn){var l=0,t=0;while(n&&n!=cn){l+=n.offsetLeft;t+=n.offsetTop;n=n.offsetParent}return{absLeft:l,absTop:t}},prevNode:function(e,n){var a=n.split(','),i;while((e=e.previousSibling)!=null){for(i=0;i<a.length;i++){if(e.nodeName==a[i])return e}}return null},nextNode:function(e,n){var a=n.split(','),i;while((e=e.nextSibling)!=null){for(i=0;i<a.length;i++){if(e.nodeName==a[i])return e}}return null},selectElements:function(n,na,f){var i,a=[],nl,x;for(x=0,na=na.split(',');x<na.length;x++)for(i=0,nl=n.getElementsByTagName(na[x]);i<nl.length;i++)(!f||f(nl[i]))&&a.push(nl[i]);return a},selectNodes:function(n,f,a){var i;if(!a)a=[];if(f(n))a[a.length]=n;if(n.hasChildNodes()){for(i=0;i<n.childNodes.length;i++)tinyMCE.selectNodes(n.childNodes[i],f,a)}return a},addCSSClass:function(e,c,b){var o=this.removeCSSClass(e,c);return e.className=b?c+(o!==''?(' '+o):''):(o!==''?(o+' '):'')+c},removeCSSClass:function(e,c){c=e.className.replace(new RegExp("(^|\\s+)"+c+"(\\s+|$)"),' ');return e.className=c!=' '?c:''},hasCSSClass:function(n,c){return new RegExp('\\b'+c+'\\b','g').test(n.className)},renameElement:function(e,n,d){var ne,i,ar;d=typeof(d)=="undefined"?tinyMCE.selectedInstance.getDoc():d;if(e){ne=d.createElement(n);ar=e.attributes;for(i=ar.length-1;i>-1;i--){if(ar[i].specified&&ar[i].nodeValue)ne.setAttribute(ar[i].nodeName.toLowerCase(),ar[i].nodeValue)}ar=e.childNodes;for(i=0;i<ar.length;i++)ne.appendChild(ar[i].cloneNode(true));e.parentNode.replaceChild(ne,e)}},getViewPort:function(w){var d=w.document,m=d.compatMode=='CSS1Compat',b=d.body,de=d.documentElement;return{left:w.pageXOffset||(m?de.scrollLeft:b.scrollLeft),top:w.pageYOffset||(m?de.scrollTop:b.scrollTop),width:w.innerWidth||(m?de.clientWidth:b.clientWidth),height:w.innerHeight||(m?de.clientHeight:b.clientHeight)}},getStyle:function(n,na,d){if(!n)return false;if(tinyMCE.isGecko&&n.ownerDocument.defaultView){try{return n.ownerDocument.defaultView.getComputedStyle(n,null).getPropertyValue(na)}catch(n){return null}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase()});if(n.currentStyle)return n.currentStyle[na];return false}});tinyMCE.add(TinyMCE_Engine,{parseURL:function(url_str){var urlParts=[],i,pos,lastPos,chr;if(url_str){pos=url_str.indexOf('://');if(pos!=-1){urlParts.protocol=url_str.substring(0,pos);lastPos=pos+3}for(i=lastPos;i<url_str.length;i++){chr=url_str.charAt(i);if(chr==':')break;if(chr=='/')break}pos=i;urlParts.host=url_str.substring(lastPos,pos);urlParts.port="";lastPos=pos;if(url_str.charAt(pos)==':'){pos=url_str.indexOf('/',lastPos);urlParts.port=url_str.substring(lastPos+1,pos)}lastPos=pos;pos=url_str.indexOf('?',lastPos);if(pos==-1)pos=url_str.indexOf('#',lastPos);if(pos==-1)pos=url_str.length;urlParts.path=url_str.substring(lastPos,pos);lastPos=pos;if(url_str.charAt(pos)=='?'){pos=url_str.indexOf('#');pos=(pos==-1)?url_str.length:pos;urlParts.query=url_str.substring(lastPos+1,pos)}lastPos=pos;if(url_str.charAt(pos)=='#'){pos=url_str.length;urlParts.anchor=url_str.substring(lastPos+1,pos)}}return urlParts},serializeURL:function(up){var o="";if(up.protocol)o+=up.protocol+"://";if(up.host)o+=up.host;if(up.port)o+=":"+up.port;if(up.path)o+=up.path;if(up.query)o+="?"+up.query;if(up.anchor)o+="#"+up.anchor;return o},convertAbsoluteURLToRelativeURL:function(base_url,url_to_relative){var baseURL=this.parseURL(base_url),targetURL=this.parseURL(url_to_relative);var i,strTok1,strTok2,breakPoint=0,outPath="",forceSlash=false;var fileName,pos;if(targetURL.path=='')targetURL.path="/";else forceSlash=true;base_url=baseURL.path.substring(0,baseURL.path.lastIndexOf('/'));strTok1=base_url.split('/');strTok2=targetURL.path.split('/');if(strTok1.length>=strTok2.length){for(i=0;i<strTok1.length;i++){if(i>=strTok2.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break}}}if(strTok1.length<strTok2.length){for(i=0;i<strTok2.length;i++){if(i>=strTok1.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break}}}if(breakPoint==1)return targetURL.path;for(i=0;i<(strTok1.length-(breakPoint-1));i++)outPath+="../";for(i=breakPoint-1;i<strTok2.length;i++){if(i!=(breakPoint-1))outPath+="/"+strTok2[i];else outPath+=strTok2[i]}targetURL.protocol=null;targetURL.host=null;targetURL.port=null;targetURL.path=outPath==''&&forceSlash?"/":outPath;fileName=baseURL.path;if((pos=fileName.lastIndexOf('/'))!=-1)fileName=fileName.substring(pos+1);if(fileName==targetURL.path&&targetURL.anchor!=='')targetURL.path="";if(targetURL.path==''&&!targetURL.anchor)targetURL.path=fileName!==''?fileName:"/";return this.serializeURL(targetURL)},convertRelativeToAbsoluteURL:function(base_url,relative_url){var baseURL=this.parseURL(base_url),baseURLParts,relURLParts,newRelURLParts,numBack,relURL=this.parseURL(relative_url),i;var len,absPath,start,end,newBaseURLParts;if(relative_url==''||relative_url.indexOf('://')!=-1||/^(mailto:|javascript:|#|\/)/.test(relative_url))return relative_url;baseURLParts=baseURL.path.split('/');relURLParts=relURL.path.split('/');newBaseURLParts=[];for(i=baseURLParts.length-1;i>=0;i--){if(baseURLParts[i].length==0)continue;newBaseURLParts[newBaseURLParts.length]=baseURLParts[i]}baseURLParts=newBaseURLParts.reverse();newRelURLParts=[];numBack=0;for(i=relURLParts.length-1;i>=0;i--){if(relURLParts[i].length==0||relURLParts[i]==".")continue;if(relURLParts[i]=='..'){numBack++;continue}if(numBack>0){numBack--;continue}newRelURLParts[newRelURLParts.length]=relURLParts[i]}relURLParts=newRelURLParts.reverse();len=baseURLParts.length-numBack;absPath=(len<=0?"":"/")+baseURLParts.slice(0,len).join('/')+"/"+relURLParts.join('/');start="";end="";relURL.protocol=baseURL.protocol;relURL.host=baseURL.host;relURL.port=baseURL.port;if(relURL.path.charAt(relURL.path.length-1)=="/")absPath+="/";relURL.path=absPath;return this.serializeURL(relURL)},convertURL:function(url,node,on_save){var dl=document.location,start,portPart,urlParts,baseUrlParts,tmpUrlParts,curl;var prot=dl.protocol,host=dl.hostname,port=dl.port;if(prot=="file:")return url;url=tinyMCE.regexpReplace(url,'(http|https):///','/');if(url.indexOf('mailto:')!=-1||url.indexOf('javascript:')!=-1||/^[ \t\r\n\+]*[#\?]/.test(url))return url;if(!tinyMCE.isIE&&!on_save&&url.indexOf("://")==-1&&url.charAt(0)!='/')return tinyMCE.settings.base_href+url;if(on_save&&tinyMCE.getParam('relative_urls')){curl=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href,url);if(curl.charAt(0)=='/')curl=tinyMCE.settings.document_base_prefix+curl;urlParts=tinyMCE.parseURL(curl);tmpUrlParts=tinyMCE.parseURL(tinyMCE.settings.document_base_url);if(urlParts.host==tmpUrlParts.host&&(urlParts.port==tmpUrlParts.port))return tinyMCE.convertAbsoluteURLToRelativeURL(tinyMCE.settings.document_base_url,curl)}if(!tinyMCE.getParam('relative_urls')){urlParts=tinyMCE.parseURL(url);baseUrlParts=tinyMCE.parseURL(tinyMCE.settings.base_href);url=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href,url);if(urlParts.anchor&&urlParts.path==baseUrlParts.path)return"#"+urlParts.anchor}if(tinyMCE.getParam('remove_script_host')){start="";portPart="";if(port!=='')portPart=":"+port;start=prot+"//"+host+portPart+"/";if(url.indexOf(start)==0)url=url.substring(start.length-1)}return url},convertAllRelativeURLs:function(body){var i,elms,src,href,mhref,msrc;elms=body.getElementsByTagName("img");for(i=0;i<elms.length;i++){src=tinyMCE.getAttrib(elms[i],'src');msrc=tinyMCE.getAttrib(elms[i],'mce_src');if(msrc!=='')src=msrc;if(src!==''){src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href,src);elms[i].setAttribute("src",src)}}elms=body.getElementsByTagName("a");for(i=0;i<elms.length;i++){href=tinyMCE.getAttrib(elms[i],'href');mhref=tinyMCE.getAttrib(elms[i],'mce_href');if(mhref!=='')href=mhref;if(href&&href!==''){href=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href,href);elms[i].setAttribute("href",href)}}}});tinyMCE.add(TinyMCE_Engine,{clearArray:function(a){var n;for(n in a)a[n]=null;return a},explode:function(d,s){var ar=s.split(d),oar=[],i;for(i=0;i<ar.length;i++){if(ar[i]!=='')oar[oar.length]=ar[i]}return oar}});tinyMCE.add(TinyMCE_Engine,{_setEventsEnabled:function(node,state){var evs,x,y,elms,i,event;var events=['onfocus','onblur','onclick','ondblclick','onmousedown','onmouseup','onmouseover','onmousemove','onmouseout','onkeypress','onkeydown','onkeydown','onkeyup'];evs=tinyMCE.settings.event_elements.split(',');for(y=0;y<evs.length;y++){elms=node.getElementsByTagName(evs[y]);for(i=0;i<elms.length;i++){event="";for(x=0;x<events.length;x++){if((event=tinyMCE.getAttrib(elms[i],events[x]))!==''){event=tinyMCE.cleanupEventStr(""+event);if(!state)event="return true;"+event;else event=event.replace(/^return true;/gi,'');elms[i].removeAttribute(events[x]);elms[i].setAttribute(events[x],event)}}}}},_eventPatch:function(editor_id){var n,inst,win,e;if(typeof(tinyMCE)=="undefined")return true;try{if(tinyMCE.selectedInstance){win=tinyMCE.selectedInstance.getWin();if(win&&win.event){e=win.event;if(!e.target)e.target=e.srcElement;TinyMCE_Engine.prototype.handleEvent(e);return}}for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;inst.select();win=inst.getWin();if(win&&win.event){e=win.event;if(!e.target)e.target=e.srcElement;TinyMCE_Engine.prototype.handleEvent(e);return}}}catch(ex){}},findEvent:function(e){var n,inst;if(e)return e;for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(tinyMCE.isInstance(inst)&&inst.getWin().event)return inst.getWin().event}return null},unloadHandler:function(){tinyMCE.triggerSave(true,true)},addEventHandlers:function(inst){this.setEventHandlers(inst,1)},setEventHandlers:function(inst,s){var doc=inst.getDoc(),ie,ot,i,f=s?tinyMCE.addEvent:tinyMCE.removeEvent;ie=['keypress','keyup','keydown','click','mouseup','mousedown','controlselect','dblclick'];ot=['keypress','keyup','keydown','click','mouseup','mousedown','focus','blur','dragdrop'];inst.switchSettings();if(tinyMCE.isIE){for(i=0;i<ie.length;i++)f(doc,ie[i],TinyMCE_Engine.prototype._eventPatch)}else{for(i=0;i<ot.length;i++)f(doc,ot[i],tinyMCE.handleEvent);try{doc.designMode="On"}catch(e){}}},onMouseMove:function(){var inst,lh;if(tinyMCE.lastHover){lh=tinyMCE.lastHover;if(lh.className.indexOf('mceMenu')!=-1)tinyMCE._menuButtonEvent('out',lh);else lh.className=lh.className;tinyMCE.lastHover=null}if(!tinyMCE.hasMouseMoved){inst=tinyMCE.selectedInstance;if(inst.isFocused){inst.undoBookmark=inst.selection.getBookmark();tinyMCE.hasMouseMoved=true}}},cancelEvent:function(e){if(!e)return false;if(tinyMCE.isIE){e.returnValue=false;e.cancelBubble=true}else{e.preventDefault();e.stopPropagation&&e.stopPropagation()}return false},addEvent:function(o,n,h){if(n!='unload'){function clean(){var ex;try{tinyMCE.removeEvent(o,n,h);tinyMCE.removeEvent(window,'unload',clean);o=n=h=null}catch(ex){}}tinyMCE.addEvent(window,'unload',clean)}if(o.attachEvent)o.attachEvent("on"+n,h);else o.addEventListener(n,h,false)},removeEvent:function(o,n,h){if(o.detachEvent)o.detachEvent("on"+n,h);else o.removeEventListener(n,h,false)},addSelectAccessibility:function(e,s,w){if(!s._isAccessible){s.onkeydown=tinyMCE.accessibleEventHandler;s.onblur=tinyMCE.accessibleEventHandler;s._isAccessible=true;s._win=w}return false},accessibleEventHandler:function(e){var elm,win=this._win;e=tinyMCE.isIE?win.event:e;elm=tinyMCE.isIE?e.srcElement:e.target;if(e.type=="blur"){if(elm.oldonchange){elm.onchange=elm.oldonchange;elm.oldonchange=null}return true}if(elm.nodeName=="SELECT"&&!elm.oldonchange){elm.oldonchange=elm.onchange;elm.onchange=null}if(e.keyCode==13||e.keyCode==32){elm.onchange=elm.oldonchange;elm.onchange();elm.oldonchange=null;tinyMCE.cancelEvent(e);return false}return true},_resetIframeHeight:function(){var ife;if(tinyMCE.isRealIE){ife=tinyMCE.selectedInstance.iframeElement;if(ife._oldHeight){ife.style.height=ife._oldHeight;ife.height=ife._oldHeight}}}});function TinyMCE_Selection(inst){this.instance=inst};TinyMCE_Selection.prototype={getSelectedHTML:function(){var inst=this.instance,e,r=this.getRng(),h;if(!r)return null;e=document.createElement("body");if(r.cloneContents)e.appendChild(r.cloneContents());else if(typeof(r.item)!='undefined'||typeof(r.htmlText)!='undefined')e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;else e.innerHTML=r.toString();h=tinyMCE._cleanupHTML(inst,inst.contentDocument,inst.settings,e,e,false,true,false);return h},getSelectedText:function(){var inst=this.instance,d,r,s,t;if(tinyMCE.isIE){d=inst.getDoc();if(d.selection.type=="Text"){r=d.selection.createRange();t=r.text}else t=''}else{s=this.getSel();if(s&&s.toString)t=s.toString();else t=''}return t},getBookmark:function(simple){var inst=this.instance,rng=this.getRng(),doc=inst.getDoc(),b=inst.getBody();var trng,sx,sy,xx=-999999999,vp=inst.getViewPort();var sp,le,s,e,nl,i,si,ei,w;sx=vp.left;sy=vp.top;if(simple)return{rng:rng,scrollX:sx,scrollY:sy};if(tinyMCE.isRealIE){if(rng.item){e=rng.item(0);nl=b.getElementsByTagName(e.nodeName);for(i=0;i<nl.length;i++){if(e==nl[i]){sp=i;break}}return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy}}else{trng=doc.body.createTextRange();trng.moveToElementText(inst.getBody());trng.collapse(true);bp=Math.abs(trng.move('character',xx));trng=rng.duplicate();trng.collapse(true);sp=Math.abs(trng.move('character',xx));trng=rng.duplicate();trng.collapse(false);le=Math.abs(trng.move('character',xx))-sp;return{start:sp-bp,length:le,scrollX:sx,scrollY:sy}}}else{s=this.getSel();e=this.getFocusElement();if(!s)return null;if(e&&e.nodeName=='IMG'){return{start:-1,end:-1,index:sp,scrollX:sx,scrollY:sy}}if(s.anchorNode==s.focusNode&&s.anchorOffset==s.focusOffset){e=this._getPosText(b,s.anchorNode,s.focusNode);if(!e)return{scrollX:sx,scrollY:sy};return{start:e.start+s.anchorOffset,end:e.end+s.focusOffset,scrollX:sx,scrollY:sy}}else{e=this._getPosText(b,rng.startContainer,rng.endContainer);if(!e)return{scrollX:sx,scrollY:sy};return{start:e.start+rng.startOffset,end:e.end+rng.endOffset,scrollX:sx,scrollY:sy}}}return null},moveToBookmark:function(bookmark){var inst=this.instance,rng,nl,i,ex,b=inst.getBody(),sd;var doc=inst.getDoc(),win=inst.getWin(),sel=this.getSel();if(!bookmark)return false;if(tinyMCE.isSafari&&bookmark.rng){sel.setBaseAndExtent(bookmark.rng.startContainer,bookmark.rng.startOffset,bookmark.rng.endContainer,bookmark.rng.endOffset);return true}if(tinyMCE.isRealIE){if(bookmark.rng){try{bookmark.rng.select()}catch(ex){}return true}win.focus();if(bookmark.tag){rng=b.createControlRange();nl=b.getElementsByTagName(bookmark.tag);if(nl.length>bookmark.index){try{rng.addElement(nl[bookmark.index])}catch(ex){}}}else{try{if(bookmark.start<0)return true;rng=inst.getSel().createRange();rng.moveToElementText(inst.getBody());rng.collapse(true);rng.moveStart('character',bookmark.start);rng.moveEnd('character',bookmark.length)}catch(ex){return true}}rng.select();win.scrollTo(bookmark.scrollX,bookmark.scrollY);return true}if(tinyMCE.isGecko||tinyMCE.isOpera){if(!sel)return false;if(bookmark.rng){sel.removeAllRanges();sel.addRange(bookmark.rng)}if(bookmark.start!=-1&&bookmark.end!=-1){try{sd=this._getTextPos(b,bookmark.start,bookmark.end);rng=doc.createRange();rng.setStart(sd.startNode,sd.startOffset);rng.setEnd(sd.endNode,sd.endOffset);sel.removeAllRanges();sel.addRange(rng);if(!tinyMCE.isOpera)win.focus()}catch(ex){}}win.scrollTo(bookmark.scrollX,bookmark.scrollY);return true}return false},_getPosText:function(r,sn,en){var w=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d}p+=n.nodeValue?n.nodeValue.length:0}return null},_getTextPos:function(r,sp,ep){var w=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){p+=n.nodeValue?n.nodeValue.length:0;if(p>=sp&&!d.startNode){d.startNode=n;d.startOffset=sp-(p-n.nodeValue.length)}if(p>=ep){d.endNode=n;d.endOffset=ep-(p-n.nodeValue.length);return d}}return null},selectNode:function(node,collapse,select_text_node,to_start){var inst=this.instance,sel,rng,nodes;if(!node)return;if(typeof(collapse)=="undefined")collapse=true;if(typeof(select_text_node)=="undefined")select_text_node=false;if(typeof(to_start)=="undefined")to_start=true;if(inst.settings.auto_resize)inst.resizeToContent();if(tinyMCE.isRealIE){rng=inst.getDoc().body.createTextRange();try{rng.moveToElementText(node);if(collapse)rng.collapse(to_start);rng.select()}catch(e){}}else{sel=this.getSel();if(!sel)return;if(tinyMCE.isSafari){sel.setBaseAndExtent(node,0,node,node.innerText.length);if(collapse){if(to_start)sel.collapseToStart();else sel.collapseToEnd()}this.scrollToNode(node);return}rng=inst.getDoc().createRange();if(select_text_node){nodes=tinyMCE.getNodeTree(node,[],3);if(nodes.length>0)rng.selectNodeContents(nodes[0]);else rng.selectNodeContents(node)}else rng.selectNode(node);if(collapse){if(!to_start&&node.nodeType==3){rng.setStart(node,node.nodeValue.length);rng.setEnd(node,node.nodeValue.length)}else rng.collapse(to_start)}sel.removeAllRanges();sel.addRange(rng)}this.scrollToNode(node);tinyMCE.selectedElement=null;if(node.nodeType==1)tinyMCE.selectedElement=node},scrollToNode:function(node){var inst=this.instance,w=inst.getWin(),vp=inst.getViewPort(),pos=tinyMCE.getAbsPosition(node),cvp,p,cwin;if(pos.absLeft<vp.left||pos.absLeft>vp.left+vp.width||pos.absTop<vp.top||pos.absTop>vp.top+(vp.height-25))w.scrollTo(pos.absLeft,pos.absTop-vp.height+25);if(inst.settings.auto_resize){cwin=inst.getContainerWin();cvp=tinyMCE.getViewPort(cwin);p=this.getAbsPosition(node);if(p.absLeft<cvp.left||p.absLeft>cvp.left+cvp.width||p.absTop<cvp.top||p.absTop>cvp.top+cvp.height)cwin.scrollTo(p.absLeft,p.absTop-cvp.height+25)}},getAbsPosition:function(n){var pos=tinyMCE.getAbsPosition(n),ipos=tinyMCE.getAbsPosition(this.instance.iframeElement);return{absLeft:ipos.absLeft+pos.absLeft,absTop:ipos.absTop+pos.absTop}},getSel:function(){var inst=this.instance;if(tinyMCE.isRealIE)return inst.getDoc().selection;return inst.contentWindow.getSelection()},getRng:function(){var s=this.getSel();if(s==null)return null;if(tinyMCE.isRealIE)return s.createRange();if(tinyMCE.isSafari&&!s.getRangeAt)return''+window.getSelection();if(s.rangeCount>0)return s.getRangeAt(0);return null},isCollapsed:function(){var r=this.getRng();if(r.item)return false;return r.boundingWidth==0||this.getSel().isCollapsed},collapse:function(b){var r=this.getRng(),s=this.getSel();if(r.select){r.collapse(b);r.select()}else{if(b)s.collapseToStart();else s.collapseToEnd()}},getFocusElement:function(){var inst=this.instance,doc,rng,sel,elm;if(tinyMCE.isRealIE){doc=inst.getDoc();rng=doc.selection.createRange();elm=rng.item?rng.item(0):rng.parentElement()}else{if(!tinyMCE.isSafari&&inst.isHidden())return inst.getBody();sel=this.getSel();rng=this.getRng();if(!sel||!rng)return null;elm=rng.commonAncestorContainer;if(!rng.collapsed){if(rng.startContainer==rng.endContainer){if(rng.startOffset-rng.endOffset<2){if(rng.startContainer.hasChildNodes())elm=rng.startContainer.childNodes[rng.startOffset]}}}elm=tinyMCE.getParentElement(elm);}return elm}};function TinyMCE_UndoRedo(inst){this.instance=inst;this.undoLevels=[];this.undoIndex=0;this.typingUndoIndex=-1;this.undoRedo=true};TinyMCE_UndoRedo.prototype={add:function(l){var b,customUndoLevels,newHTML,inst=this.instance,i,ul,ur;if(l){this.undoLevels[this.undoLevels.length]=l;return true}if(this.typingUndoIndex!=-1){this.undoIndex=this.typingUndoIndex;if(tinyMCE.typingUndoIndex!=-1)tinyMCE.undoIndex=tinyMCE.typingUndoIndex}newHTML=tinyMCE.trim(inst.getBody().innerHTML);if(this.undoLevels[this.undoIndex]&&newHTML!=this.undoLevels[this.undoIndex].content){inst.isNotDirty=false;tinyMCE.dispatchCallback(inst,'onchange_callback','onChange',inst);customUndoLevels=tinyMCE.settings.custom_undo_redo_levels;if(customUndoLevels!=-1&&this.undoLevels.length>customUndoLevels){for(i=0;i<this.undoLevels.length-1;i++)this.undoLevels[i]=this.undoLevels[i+1];this.undoLevels.length--;this.undoIndex--;}b=inst.undoBookmark;if(!b)b=inst.selection.getBookmark();this.undoIndex++;this.undoLevels[this.undoIndex]={content:newHTML,bookmark:b};ul=tinyMCE.undoLevels;for(i=tinyMCE.undoIndex+1;i<ul.length;i++){ur=ul[i].undoRedo;if(ur.undoIndex==ur.undoLevels.length-1)ur.undoIndex--;ur.undoLevels.length--}tinyMCE.undoLevels[tinyMCE.undoIndex++]=inst;tinyMCE.undoLevels.length=tinyMCE.undoIndex;this.undoLevels.length=this.undoIndex+1;return true}return false},undo:function(){var inst=this.instance;if(this.undoIndex>0){this.undoIndex--;tinyMCE.setInnerHTML(inst.getBody(),this.undoLevels[this.undoIndex].content);inst.repaint();if(inst.settings.custom_undo_redo_restore_selection)inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark)}},redo:function(){var inst=this.instance;tinyMCE.execCommand("mceEndTyping");if(this.undoIndex<(this.undoLevels.length-1)){this.undoIndex++;tinyMCE.setInnerHTML(inst.getBody(),this.undoLevels[this.undoIndex].content);inst.repaint();if(inst.settings.custom_undo_redo_restore_selection)inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark)}tinyMCE.triggerNodeChange()}};var TinyMCE_ForceParagraphs={_insertPara:function(inst,e){var doc=inst.getDoc(),sel=inst.getSel(),body=inst.getBody(),win=inst.contentWindow,rng=sel.getRangeAt(0);var rootElm=doc.documentElement,blockName="P",startNode,endNode,startBlock,endBlock;var rngBefore,rngAfter,direct,startNode,startOffset,endNode,endOffset,b=tinyMCE.isOpera?inst.selection.getBookmark():null;var paraBefore,paraAfter,startChop,endChop,contents,i;function isEmpty(para){var nodes;function isEmptyHTML(html){return html.replace(new RegExp('[ \t\r\n]+','g'),'').toLowerCase()==''}if(para.getElementsByTagName("img").length>0)return false;if(para.getElementsByTagName("table").length>0)return false;if(para.getElementsByTagName("hr").length>0)return false;nodes=tinyMCE.getNodeTree(para,[],3);for(i=0;i<nodes.length;i++){if(!isEmptyHTML(nodes[i].nodeValue))return false}return true}rngBefore=doc.createRange();rngBefore.setStart(sel.anchorNode,sel.anchorOffset);rngBefore.collapse(true);rngAfter=doc.createRange();rngAfter.setStart(sel.focusNode,sel.focusOffset);rngAfter.collapse(true);direct=rngBefore.compareBoundaryPoints(rngBefore.START_TO_END,rngAfter)<0;startNode=direct?sel.anchorNode:sel.focusNode;startOffset=direct?sel.anchorOffset:sel.focusOffset;endNode=direct?sel.focusNode:sel.anchorNode;endOffset=direct?sel.focusOffset:sel.anchorOffset;startNode=startNode.nodeName=="BODY"?startNode.firstChild:startNode;endNode=endNode.nodeName=="BODY"?endNode.firstChild:endNode;startBlock=inst.getParentBlockElement(startNode);endBlock=inst.getParentBlockElement(endNode);if(startBlock&&(startBlock.nodeName=='CAPTION'||/absolute|relative|static/gi.test(startBlock.style.position)))startBlock=null;if(endBlock&&(endBlock.nodeName=='CAPTION'||/absolute|relative|static/gi.test(endBlock.style.position)))endBlock=null;if(startBlock!=null){blockName=startBlock.nodeName;if(/(TD|TABLE|TH|CAPTION)/.test(blockName)||(blockName=="DIV"&&/left|right/gi.test(startBlock.style.cssFloat)))blockName="P"}if(tinyMCE.getParentElement(startBlock,"OL,UL",null,body)!=null)return false;if((startBlock!=null&&startBlock.nodeName=="TABLE")||(endBlock!=null&&endBlock.nodeName=="TABLE"))startBlock=endBlock=null;paraBefore=(startBlock!=null&&startBlock.nodeName==blockName)?startBlock.cloneNode(false):doc.createElement(blockName);paraAfter=(endBlock!=null&&endBlock.nodeName==blockName)?endBlock.cloneNode(false):doc.createElement(blockName);if(/^(H[1-6])$/.test(blockName))paraAfter=doc.createElement("p");startChop=startNode;endChop=endNode;node=startChop;do{if(node==body||node.nodeType==9||tinyMCE.isBlockElement(node))break;startChop=node}while((node=node.previousSibling?node.previousSibling:node.parentNode));node=endChop;do{if(node==body||node.nodeType==9||tinyMCE.isBlockElement(node))break;endChop=node}while((node=node.nextSibling?node.nextSibling:node.parentNode));if(startChop.nodeName=="TD")startChop=startChop.firstChild;if(endChop.nodeName=="TD")endChop=endChop.lastChild;if(startBlock==null){rng.deleteContents();if(!tinyMCE.isSafari)sel.removeAllRanges();if(startChop!=rootElm&&endChop!=rootElm){rngBefore=rng.cloneRange();if(startChop==body)rngBefore.setStart(startChop,0);else rngBefore.setStartBefore(startChop);paraBefore.appendChild(rngBefore.cloneContents());if(endChop.parentNode.nodeName==blockName)endChop=endChop.parentNode;rng.setEndAfter(endChop);if(endChop.nodeName!="#text"&&endChop.nodeName!="BODY")rngBefore.setEndAfter(endChop);contents=rng.cloneContents();if(contents.firstChild&&(contents.firstChild.nodeName==blockName||contents.firstChild.nodeName=="BODY"))paraAfter.innerHTML=contents.firstChild.innerHTML;else paraAfter.appendChild(contents);if(isEmpty(paraBefore))paraBefore.innerHTML="&nbsp;";if(isEmpty(paraAfter))paraAfter.innerHTML="&nbsp;";rng.deleteContents();rngAfter.deleteContents();rngBefore.deleteContents();if(tinyMCE.isOpera){paraBefore.normalize();rngBefore.insertNode(paraBefore);paraAfter.normalize();rngBefore.insertNode(paraAfter)}else{paraAfter.normalize();rngBefore.insertNode(paraAfter);paraBefore.normalize();rngBefore.insertNode(paraBefore)}}else{body.innerHTML="<"+blockName+">&nbsp;</"+blockName+"><"+blockName+">&nbsp;</"+blockName+">";paraAfter=body.childNodes[1]}inst.selection.moveToBookmark(b);inst.selection.selectNode(paraAfter,true,true);return true}if(startChop.nodeName==blockName)rngBefore.setStart(startChop,0);else rngBefore.setStartBefore(startChop);rngBefore.setEnd(startNode,startOffset);paraBefore.appendChild(rngBefore.cloneContents());rngAfter.setEndAfter(endChop);rngAfter.setStart(endNode,endOffset);contents=rngAfter.cloneContents();if(contents.firstChild&&contents.firstChild.nodeName==blockName){paraAfter.innerHTML=contents.firstChild.innerHTML}else paraAfter.appendChild(contents);if(isEmpty(paraBefore))paraBefore.innerHTML="&nbsp;";if(isEmpty(paraAfter))paraAfter.innerHTML="&nbsp;";rng=doc.createRange();if(!startChop.previousSibling&&startChop.parentNode.nodeName.toUpperCase()==blockName){rng.setStartBefore(startChop.parentNode)}else{if(rngBefore.startContainer.nodeName.toUpperCase()==blockName&&rngBefore.startOffset==0)rng.setStartBefore(rngBefore.startContainer);else rng.setStart(rngBefore.startContainer,rngBefore.startOffset)}if(!endChop.nextSibling&&endChop.parentNode.nodeName.toUpperCase()==blockName)rng.setEndAfter(endChop.parentNode);else rng.setEnd(rngAfter.endContainer,rngAfter.endOffset);rng.deleteContents();if(tinyMCE.isOpera){rng.insertNode(paraBefore);rng.insertNode(paraAfter)}else{rng.insertNode(paraAfter);rng.insertNode(paraBefore)}paraAfter.normalize();paraBefore.normalize();inst.selection.moveToBookmark(b);inst.selection.selectNode(paraAfter,true,true);return true},_handleBackSpace:function(inst){var r=inst.getRng(),sn=r.startContainer,nv,s=false;if(sn&&sn.nextSibling&&sn.nextSibling.nodeName=="BR"&&sn.parentNode.nodeName!="BODY"){nv=sn.nodeValue;if(nv!=null&&r.startOffset==nv.length)sn.nextSibling.parentNode.removeChild(sn.nextSibling)}if(inst.settings.auto_resize)inst.resizeToContent();return s}};function TinyMCE_Layer(id,bm){this.id=id;this.blockerElement=null;this.events=false;this.element=null;this.blockMode=typeof(bm)!='undefined'?bm:true;this.doc=document};TinyMCE_Layer.prototype={moveRelativeTo:function(re,p){var rep=this.getAbsPosition(re),e=this.getElement(),x,y;var w=parseInt(re.offsetWidth),h=parseInt(re.offsetHeight);var ew=parseInt(e.offsetWidth),eh=parseInt(e.offsetHeight);switch(p){case"tl":x=rep.absLeft;y=rep.absTop;break;case"tr":x=rep.absLeft+w;y=rep.absTop;break;case"bl":x=rep.absLeft;y=rep.absTop+h;break;case"br":x=rep.absLeft+w;y=rep.absTop+h;break;case"cc":x=rep.absLeft+(w/ 2) - (ew /2);y=rep.absTop+(h/ 2) - (eh /2);break}this.moveTo(x,y)},moveBy:function(x,y){var e=this.getElement();this.moveTo(parseInt(e.style.left)+x,parseInt(e.style.top)+y)},moveTo:function(x,y){var e=this.getElement();e.style.left=x+"px";e.style.top=y+"px";this.updateBlocker()},resizeBy:function(w,h){var e=this.getElement();this.resizeTo(parseInt(e.style.width)+w,parseInt(e.style.height)+h)},resizeTo:function(w,h){var e=this.getElement();if(w!=null)e.style.width=w+"px";if(h!=null)e.style.height=h+"px";this.updateBlocker()},show:function(){var el=this.getElement();if(el){el.style.display='block';this.updateBlocker()}},hide:function(){var el=this.getElement();if(el){el.style.display='none';this.updateBlocker()}},isVisible:function(){return this.getElement().style.display=='block'},getElement:function(){if(!this.element)this.element=this.doc.getElementById(this.id);return this.element},setBlockMode:function(s){this.blockMode=s},updateBlocker:function(){var e,b,x,y,w,h;b=this.getBlocker();if(b){if(this.blockMode){e=this.getElement();x=this.parseInt(e.style.left);y=this.parseInt(e.style.top);w=this.parseInt(e.offsetWidth);h=this.parseInt(e.offsetHeight);b.style.left=x+'px';b.style.top=y+'px';b.style.width=w+'px';b.style.height=h+'px';b.style.display=e.style.display}else b.style.display='none'}},getBlocker:function(){var d,b;if(!this.blockerElement&&this.blockMode){d=this.doc;b=d.getElementById(this.id+"_blocker");if(!b){b=d.createElement("iframe");b.setAttribute('id',this.id+"_blocker");b.style.cssText='display: none; position: absolute; left: 0; top: 0';b.src='javascript:false;';b.frameBorder='0';b.scrolling='no';d.body.appendChild(b)}this.blockerElement=b}return this.blockerElement},getAbsPosition:function(n){var p={absLeft:0,absTop:0};while(n){p.absLeft+=n.offsetLeft;p.absTop+=n.offsetTop;n=n.offsetParent}return p},create:function(n,c,p,h){var d=this.doc,e=d.createElement(n);e.setAttribute('id',this.id);if(c)e.className=c;if(!p)p=d.body;if(h)e.innerHTML=h;p.appendChild(e);return this.element=e},exists:function(){return this.doc.getElementById(this.id)!=null},parseInt:function(s){if(s==null||s=='')return 0;return parseInt(s)},remove:function(){var e=this.getElement(),b=this.getBlocker();if(e)e.parentNode.removeChild(e);if(b)b.parentNode.removeChild(b)}};function TinyMCE_Menu(){var id;if(typeof(tinyMCE.menuCounter)=="undefined")tinyMCE.menuCounter=0;id="mc_menu_"+tinyMCE.menuCounter++;TinyMCE_Layer.call(this,id,true);this.id=id;this.items=[];this.needsUpdate=true};TinyMCE_Menu.prototype=tinyMCE.extend(TinyMCE_Layer.prototype,{init:function(s){var n;this.settings={separator_class:'mceMenuSeparator',title_class:'mceMenuTitle',disabled_class:'mceMenuDisabled',menu_class:'mceMenu',drop_menu:true};for(n in s)this.settings[n]=s[n];this.create('div',this.settings.menu_class)},clear:function(){this.items=[]},addTitle:function(t){this.add({type:'title',text:t})},addDisabled:function(t){this.add({type:'disabled',text:t})},addSeparator:function(){this.add({type:'separator'})},addItem:function(t,js){this.add({text:t,js:js})},add:function(mi){this.items[this.items.length]=mi;this.needsUpdate=true},update:function(){var e=this.getElement(),h='',i,t,m=this.items,s=this.settings;if(this.settings.drop_menu)h+='<span class="mceMenuLine"></span>';h+='<table border="0" cellpadding="0" cellspacing="0">';for(i=0;i<m.length;i++){t=tinyMCE.xmlEncode(m[i].text);c=m[i].class_name?' class="'+m[i].class_name+'"':'';switch(m[i].type){case'separator':h+='<tr class="'+s.separator_class+'"><td>';break;case'title':h+='<tr class="'+s.title_class+'"><td><span'+c+'>'+t+'</span>';break;case'disabled':h+='<tr class="'+s.disabled_class+'"><td><span'+c+'>'+t+'</span>';break;default:h+='<tr><td><a href="'+tinyMCE.xmlEncode(m[i].js)+'" onmousedown="'+tinyMCE.xmlEncode(m[i].js)+';return tinyMCE.cancelEvent(event);" onclick="return tinyMCE.cancelEvent(event);" onmouseup="return tinyMCE.cancelEvent(event);"><span'+c+'>'+t+'</span></a>'}h+='</td></tr>'}h+='</table>';e.innerHTML=h;this.needsUpdate=false;this.updateBlocker()},show:function(){var nl,i;if(tinyMCE.lastMenu==this)return;if(this.needsUpdate)this.update();if(tinyMCE.lastMenu&&tinyMCE.lastMenu!=this)tinyMCE.lastMenu.hide();TinyMCE_Layer.prototype.show.call(this);if(!tinyMCE.isOpera){}tinyMCE.lastMenu=this}});tinyMCE.add(TinyMCE_Engine,{debug:function(){var m="",a,i,l=tinyMCE.log.length;for(i=0,a=this.debug.arguments;i<a.length;i++){m+=a[i];if(i<a.length-1)m+=', '}if(l<1000)tinyMCE.log[l]="[debug] "+m}});
\ No newline at end of file
diff --git a/tinyMCE/tiny_mce_4490a91eecf6b6b85d1dc70190ee1a2e.gz b/tinyMCE/tiny_mce_4490a91eecf6b6b85d1dc70190ee1a2e.gz
new file mode 100644
index 0000000000000000000000000000000000000000..2708ae9e7c1bb115caa723a1cccf17bef73cc172
Binary files /dev/null and b/tinyMCE/tiny_mce_4490a91eecf6b6b85d1dc70190ee1a2e.gz differ
diff --git a/tinyMCE/tiny_mce_8b5f842bc54533e3a961d91ccbdf5fd3.gz b/tinyMCE/tiny_mce_8b5f842bc54533e3a961d91ccbdf5fd3.gz
new file mode 100644
index 0000000000000000000000000000000000000000..598392fd91420ea52d23a8b36f8719a479f269e9
Binary files /dev/null and b/tinyMCE/tiny_mce_8b5f842bc54533e3a961d91ccbdf5fd3.gz differ
diff --git a/tinyMCE/tiny_mce_gzip.js b/tinyMCE/tiny_mce_gzip.js
new file mode 100644
index 0000000000000000000000000000000000000000..64a270277a4eafe6207b005838b86f8355b02f37
--- /dev/null
+++ b/tinyMCE/tiny_mce_gzip.js
@@ -0,0 +1,152 @@
+var tinyMCE_GZ = {
+	settings : {
+		plugins : 'style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras',
+		themes : 'simple,advanced',
+		languages : 'en',
+		disk_cache : true,
+		page_name : 'tiny_mce_gzip.php',
+		debug : false
+	},
+
+	init : function(s) {
+		var n, d = document, nl, i, b = '', sr, db;
+
+		this.isIE = (navigator.appName == "Microsoft Internet Explorer");
+		this.isOpera = navigator.userAgent.indexOf('Opera') != -1;
+
+		for (n in s)
+			this.settings[n] = s[n];
+
+		for (i=0, nl = d.getElementsByTagName('base'); i<nl.length; i++) {
+			if (nl[i].href)
+				b = nl[i].href;
+		}
+
+		for (i=0, nl = d.getElementsByTagName('script'); i<nl.length; i++) {
+			if (nl[i].src && nl[i].src.indexOf('tiny_mce_gzip') != -1) {
+				sr = nl[i].src;
+				sr = sr.substring(0, sr.lastIndexOf('/'));
+
+				if (b != '' && b.indexOf('://') == -1)
+					b += sr;
+				else
+					b = sr;
+			}
+		}
+
+		db = document.location.href;
+
+		if (db.indexOf('?') != -1)
+			db = db.substring(0, db.indexOf('?'));
+
+		db = db.substring(0, db.lastIndexOf('/'));
+
+		if (b.indexOf('://') == -1 && b.charAt(0) != '/')
+			b = db + "/" + b;
+
+		this.baseURL = b + '/';
+		this.load(this.settings.page_name);
+	},
+
+	load : function(v) {
+		var s = this.settings, h, d = document, sp2;
+
+		v += '?js=true&plugins=' + escape(s.plugins);
+		v += '&themes=' + escape(s.themes);
+		v += '&languages=' + escape(s.languages);
+		v += '&diskcache=' + (s.disk_cache ? 'true' : 'false');
+		//v += this.checkCompress() ? '' : '&compress=false';
+
+		this.loadFile(this.baseURL + v);
+	},
+
+	checkCompress : function() {
+		var sp2, ver, na = navigator, ua = navigator.userAgent;
+
+		// Non IE browsers are fine
+		if (!this.isIE)
+			return 1;
+
+		sp2 = na.appMinorVersion.indexOf('SP2') != -1;
+		ver = parseFloat(ua.match(/MSIE\s+([0-9\.]+)/)[1]);
+
+		// IE 6.0+ with SP2 seems fine
+		if (ver >= 6 && sp2)
+			return 1;
+
+		// IE 7.0+ seems fine
+		if (ver >= 7)
+			return 1;
+
+		// All others might fail
+		return 0;
+	},
+
+	loadFile : function(u) {
+		var x, ex;
+
+		if (this.settings['debug'])
+			alert('JS: ' + u);
+
+		if (this.isIE) {
+			// Synchronous AJAX load gzip JS file
+			try {
+				x = new ActiveXObject("Microsoft.XMLHTTP");
+			} catch (ex) {
+				x = new ActiveXObject("Msxml2.XMLHTTP");
+			}
+
+			x.open("GET", u.replace(/%2C/g, ','), false);
+			x.send(null);
+
+			this.scriptData = x.responseText;
+
+			document.write('<script type="text/javascript">eval(tinyMCE_GZ.scriptData);</script>');
+		} else
+			document.write('<script type="text/javascript" src="' + u + '"></script>');
+	},
+
+	start : function() {
+		var s = this.settings, p = TinyMCE_Engine.prototype;
+
+		p.__loadScript = p.loadScript;
+		p.__importThemeLanguagePack = p.importThemeLanguagePack;
+		p.__importPluginLanguagePack = p.importPluginLanguagePack;
+		p.__loadNextScript = p.loadNextScript;
+		p.loadScript = p.importThemeLanguagePack = p.importPluginLanguagePack = p.loadNextScript = function() {};
+		tinyMCE.baseURL = this.baseURL.substring(0, this.baseURL.length - 1);
+		tinyMCE.settings = {};
+		tinyMCE.srcMode = '';
+	},
+
+	end : function() {
+		var s = this.settings, l = tinyMCE.loadedFiles, la, i, p = TinyMCE_Engine.prototype;
+
+		this.addFiles(s.plugins, 'plugins', 'editor_plugin.js');
+		this.addFiles(s.themes, 'themes', 'editor_template.js');
+
+		la = s.languages.replace(/\s+/, '').split(',')
+		for (i=0; i<la.length; i++)
+			l[l.length] = this.baseURL + 'langs/' + la[i] + '.js';
+
+		p.loadScript = p.__loadScript;
+		p.importThemeLanguagePack = p.__importThemeLanguagePack;
+		p.importPluginLanguagePack = p.__importPluginLanguagePack;
+		p.loadNextScript = p.__loadNextScript;
+	},
+
+	addFiles : function(f, c, e) {
+		var i, a, s = this.settings, l = tinyMCE.loadedFiles, la, x;
+
+		a = f.replace(/\s+/, '').split(',');
+		for (i=0; i<a.length; i++) {
+			if (a[i]) {
+				l[l.length] = this.baseURL + c + '/' +  a[i] + '/' + e;
+
+				la = s.languages.replace(/\s+/, '').split(',')
+				for (x=0; x<la.length; x++)
+					l[l.length] = this.baseURL + c + '/' +  a[i] + '/langs/' + la[x] + '.js';
+			}
+		}
+	}
+};
diff --git a/tinyMCE/tiny_mce_gzip.php b/tinyMCE/tiny_mce_gzip.php
new file mode 100644
index 0000000000000000000000000000000000000000..50d535996127f830ebb3a163b0ab973ebc8a49f7
--- /dev/null
+++ b/tinyMCE/tiny_mce_gzip.php
@@ -0,0 +1,179 @@
+<?php
+/**
+ * $Id$
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2005-2006, Moxiecode Systems AB, All rights reserved.
+ *
+ * This file compresses the TinyMCE JavaScript using GZip and
+ * enables the browser to do two requests instead of one for each .js file.
+ * Notice: This script defaults the button_tile_map option to true for extra performance.
+ */
+
+	// Set the error reporting to minimal.
+	@error_reporting(E_ERROR | E_WARNING | E_PARSE);
+
+	// Get input
+	$plugins = explode(',', getParam("plugins", ""));
+	$languages = explode(',', getParam("languages", ""));
+	$themes = explode(',', getParam("themes", ""));
+	$diskCache = getParam("diskcache", "") == "true";
+	$isJS = getParam("js", "") == "true";
+	$compress = getParam("compress", "true") == "true";
+	$suffix = getParam("suffix", "_src") == "_src" ? "_src" : "";
+	$cachePath = realpath("."); // Cache path, this is where the .gz files will be stored
+	$expiresOffset = 3600 * 24 * 10; // Cache for 10 days in browser cache
+	$content = "";
+	$encodings = array();
+	$supportsGzip = false;
+	$enc = "";
+	$cacheKey = "";
+
+	// Custom extra javascripts to pack
+	$custom = array(/*
+		"some custom .js file",
+		"some custom .js file"
+	*/);
+
+	// Headers
+	header("Content-type: text/javascript");
+	header("Vary: Accept-Encoding");  // Handle proxies
+	header("Expires: " . gmdate("D, d M Y H:i:s", time() + $expiresOffset) . " GMT");
+
+	// Is called directly then auto init with default settings
+	if (!$isJS) {
+		echo getFileContents("tiny_mce_gzip.js");
+		echo "tinyMCE_GZ.init({});";
+		die();
+	}
+
+	// Setup cache info
+	if ($diskCache) {
+		if (!$cachePath)
+			die("alert('Real path failed.');");
+
+		$cacheKey = getParam("plugins", "") . getParam("languages", "") . getParam("themes", "");
+
+		foreach ($custom as $file)
+			$cacheKey .= $file;
+
+		$cacheKey = md5($cacheKey);
+
+		if ($compress)
+			$cacheFile = $cachePath . "/tiny_mce_" . $cacheKey . ".gz";
+		else
+			$cacheFile = $cachePath . "/tiny_mce_" . $cacheKey . ".js";
+	}
+
+	// Check if it supports gzip
+	if (isset($_SERVER['HTTP_ACCEPT_ENCODING']))
+		$encodings = explode(',', strtolower(preg_replace("/\s+/", "", $_SERVER['HTTP_ACCEPT_ENCODING'])));
+
+	if ((in_array('gzip', $encodings) || in_array('x-gzip', $encodings) || isset($_SERVER['---------------'])) && function_exists('ob_gzhandler') && !ini_get('zlib.output_compression')) {
+		$enc = in_array('x-gzip', $encodings) ? "x-gzip" : "gzip";
+		$supportsGzip = true;
+	}
+
+	// Use cached file disk cache
+	if ($diskCache && $supportsGzip && file_exists($cacheFile)) {
+		if ($compress)
+			header("Content-Encoding: " . $enc);
+
+		echo getFileContents($cacheFile);
+		die();
+	}
+
+	// Add core
+	$content .= getFileContents("tiny_mce" . $suffix . ".js");
+
+	// Patch loading functions
+	$content .= "tinyMCE_GZ.start();";
+
+	// Add core languages
+	foreach ($languages as $lang)
+		$content .= getFileContents("langs/" . $lang . ".js");
+
+	// Add themes
+	foreach ($themes as $theme) {
+		$content .= getFileContents( "themes/" . $theme . "/editor_template" . $suffix . ".js");
+
+		foreach ($languages as $lang)
+			$content .= getFileContents("themes/" . $theme . "/langs/" . $lang . ".js");
+	}
+
+	// Add plugins
+	foreach ($plugins as $plugin) {
+		$content .= getFileContents("plugins/" . $plugin . "/editor_plugin" . $suffix . ".js");
+
+		foreach ($languages as $lang)
+			$content .= getFileContents("plugins/" . $plugin . "/langs/" . $lang . ".js");
+	}
+
+	// Add custom files
+	foreach ($custom as $file)
+		$content .= getFileContents($file);
+
+	// Restore loading functions
+	$content .= "tinyMCE_GZ.end();";
+
+	// Generate GZIP'd content
+	if ($supportsGzip) {
+		if ($compress) {
+			header("Content-Encoding: " . $enc);
+			$cacheData = gzencode($content, 9, FORCE_GZIP);
+		} else
+			$cacheData = $content;
+
+		// Write gz file
+		if ($diskCache && $cacheKey != "")
+			putFileContents($cacheFile, $cacheData);
+
+		// Stream to client
+		echo $cacheData;
+	} else {
+		// Stream uncompressed content
+		echo $content;
+	}
+
+	/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+	function getParam($name, $def = false) {
+		if (!isset($_GET[$name]))
+			return $def;
+
+		return preg_replace("/[^0-9a-z\-_,]+/i", "", $_GET[$name]); // Remove anything but 0-9,a-z,-_
+	}
+
+	function getFileContents($path) {
+		$path = realpath($path);
+
+		if (!$path || !@is_file($path))
+			return "";
+
+		if (function_exists("file_get_contents"))
+			return @file_get_contents($path);
+
+		$content = "";
+		$fp = @fopen($path, "r");
+		if (!$fp)
+			return "";
+
+		while (!feof($fp))
+			$content .= fgets($fp);
+
+		fclose($fp);
+
+		return $content;
+	}
+
+	function putFileContents($path, $content) {
+		if (function_exists("file_put_contents"))
+			return @file_put_contents($path, $content);
+
+		$fp = @fopen($path, "wb");
+		if ($fp) {
+			fwrite($fp, $content);
+			fclose($fp);
+		}
+	}
+?>
\ No newline at end of file
diff --git a/tinyMCE/tiny_mce_popup.js b/tinyMCE/tiny_mce_popup.js
new file mode 100644
index 0000000000000000000000000000000000000000..eecad28f5a534d1b9975d94e2e0ac881c3966c85
--- /dev/null
+++ b/tinyMCE/tiny_mce_popup.js
@@ -0,0 +1,294 @@
+// Some global instances, this will be filled later
+var tinyMCE = null, tinyMCELang = null;
+
+function TinyMCE_Popup() {
+};
+
+TinyMCE_Popup.prototype = {
+	findWin : function(w) {
+		var c;
+
+		// Check parents
+		c = w;
+		while (c && (c = c.parent) != null) {
+			if (typeof(c.tinyMCE) != "undefined")
+				return c;
+		}
+
+		// Check openers
+		c = w;
+		while (c && (c = c.opener) != null) {
+			if (typeof(c.tinyMCE) != "undefined")
+				return c;
+		}
+
+		// Try top
+		if (typeof(top.tinyMCE) != "undefined")
+			return top;
+
+		return null;
+	},
+
+	init : function() {
+		var win = window.opener ? window.opener : window.dialogArguments, c;
+		var inst, re, title, divElm;
+
+		if (!win)
+			win = this.findWin(window);
+
+		if (!win) {
+			alert("tinyMCE object reference not found from popup.");
+			return;
+		}
+
+		window.opener = win;
+		this.windowOpener = win;
+		this.onLoadEval = "";
+
+		// Setup parent references
+		tinyMCE = win.tinyMCE;
+		tinyMCELang = win.tinyMCELang;
+
+		inst = tinyMCE.selectedInstance;
+		this.isWindow = tinyMCE.getWindowArg('mce_inside_iframe', false) == false;
+		this.storeSelection = (tinyMCE.isRealIE) && !this.isWindow && tinyMCE.getWindowArg('mce_store_selection', true);
+
+		if (this.isWindow)
+			window.focus();
+
+		// Store selection
+		if (this.storeSelection)
+			inst.selectionBookmark = inst.selection.getBookmark(true);
+
+		// Setup dir
+		if (tinyMCELang.lang_dir)
+			document.dir = tinyMCELang.lang_dir;
+
+		// Setup title
+		re = new RegExp('{|\\\$|}', 'g');
+		title = document.title.replace(re, "");
+		if (typeof(tinyMCELang[title]) != "undefined") {
+			divElm = document.createElement("div");
+			divElm.innerHTML = tinyMCELang[title];
+			document.title = divElm.innerHTML;
+
+			if (typeof(tinyMCE.setWindowTitle) != 'undefined')
+				tinyMCE.setWindowTitle(window, divElm.innerHTML);
+		}
+
+		// Output Popup CSS class
+		document.write('<link href="' + tinyMCE.getParam("popups_css") + '" rel="stylesheet" type="text/css">');
+
+		if (tinyMCE.getParam("popups_css_add")) {
+			c = tinyMCE.getParam("popups_css_add");
+
+			// Is relative
+			if (c.indexOf('://') == -1 && c.charAt(0) != '/')
+				c = tinyMCE.documentBasePath + "/" + c;
+
+			document.write('<link href="' + c + '" rel="stylesheet" type="text/css">');
+		}
+
+		tinyMCE.addEvent(window, "load", this.onLoad);
+	},
+
+	onLoad : function() {
+		var dir, i, elms, body = document.body;
+
+		if (tinyMCE.getWindowArg('mce_replacevariables', true))
+			body.innerHTML = tinyMCE.applyTemplate(body.innerHTML, tinyMCE.windowArgs);
+
+		dir = tinyMCE.selectedInstance.settings.directionality;
+		if (dir == "rtl" && document.forms && document.forms.length > 0) {
+			elms = document.forms[0].elements;
+			for (i=0; i<elms.length; i++) {
+				if ((elms[i].type == "text" || elms[i].type == "textarea") && elms[i].getAttribute("dir") != "ltr")
+					elms[i].dir = dir;
+			}
+		}
+
+		if (body.style.display == 'none')
+			body.style.display = 'block';
+
+		// Execute real onload (Opera fix)
+		if (tinyMCEPopup.onLoadEval !== '')
+			eval(tinyMCEPopup.onLoadEval);
+	},
+
+	executeOnLoad : function(str) {
+		if (tinyMCE.isOpera)
+			this.onLoadEval = str;
+		else
+			eval(str);
+	},
+
+	resizeToInnerSize : function() {
+		var i, doc, body, oldMargin, wrapper, iframe, nodes, dx, dy;
+
+		// Netscape 7.1 workaround
+		if (this.isWindow && tinyMCE.isNS71) {
+			window.resizeBy(0, 10);
+			return;
+		}
+
+		if (this.isWindow) {
+			doc = document;
+			body = doc.body;
+
+			if (body.style.display == 'none')
+				body.style.display = 'block';
+
+			// Remove margin
+			oldMargin = body.style.margin;
+			body.style.margin = '0';
+
+			// Create wrapper
+			wrapper = doc.createElement("div");
+			wrapper.id = 'mcBodyWrapper';
+			wrapper.style.display = 'none';
+			wrapper.style.margin = '0';
+
+			// Wrap body elements
+			nodes = doc.body.childNodes;
+			for (i=nodes.length-1; i>=0; i--) {
+				if (wrapper.hasChildNodes())
+					wrapper.insertBefore(nodes[i].cloneNode(true), wrapper.firstChild);
+				else
+					wrapper.appendChild(nodes[i].cloneNode(true));
+
+				nodes[i].parentNode.removeChild(nodes[i]);
+			}
+
+			// Add wrapper
+			doc.body.appendChild(wrapper);
+
+			// Create iframe
+			iframe = document.createElement("iframe");
+			iframe.id = "mcWinIframe";
+			iframe.src = document.location.href.toLowerCase().indexOf('https') == -1 ? "about:blank" : tinyMCE.settings.default_document;
+			iframe.width = "100%";
+			iframe.height = "100%";
+			iframe.style.margin = '0';
+
+			// Add iframe
+			doc.body.appendChild(iframe);
+
+			// Measure iframe
+			iframe = document.getElementById('mcWinIframe');
+			dx = tinyMCE.getWindowArg('mce_width') - iframe.clientWidth;
+			dy = tinyMCE.getWindowArg('mce_height') - iframe.clientHeight;
+
+			// Resize window
+			// tinyMCE.debug(tinyMCE.getWindowArg('mce_width') + "," + tinyMCE.getWindowArg('mce_height') + " - " + dx + "," + dy);
+			window.resizeBy(dx, dy);
+
+			// Hide iframe and show wrapper
+			body.style.margin = oldMargin;
+			iframe.style.display = 'none';
+			wrapper.style.display = 'block';
+		}
+	},
+
+	resizeToContent : function() {
+		var isMSIE = (navigator.appName == "Microsoft Internet Explorer");
+		var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
+		var elm, width, height, x, y, dx, dy;
+
+		if (isOpera)
+			return;
+
+		if (isMSIE) {
+			try { window.resizeTo(10, 10); } catch (e) {}
+
+			elm = document.body;
+			width = elm.offsetWidth;
+			height = elm.offsetHeight;
+			dx = (elm.scrollWidth - width) + 4;
+			dy = elm.scrollHeight - height;
+
+			try { window.resizeBy(dx, dy); } catch (e) {}
+		} else {
+			window.scrollBy(1000, 1000);
+			if (window.scrollX > 0 || window.scrollY > 0) {
+				window.resizeBy(window.innerWidth * 2, window.innerHeight * 2);
+				window.sizeToContent();
+				window.scrollTo(0, 0);
+				x = parseInt(screen.width / 2.0) - (window.outerWidth / 2.0);
+				y = parseInt(screen.height / 2.0) - (window.outerHeight / 2.0);
+				window.moveTo(x, y);
+			}
+		}
+	},
+
+	getWindowArg : function(name, default_value) {
+		return tinyMCE.getWindowArg(name, default_value);
+	},
+
+	restoreSelection : function() {
+		var inst;
+
+		if (this.storeSelection) {
+			inst = tinyMCE.selectedInstance;
+
+			inst.getWin().focus();
+
+			if (inst.selectionBookmark)
+				inst.selection.moveToBookmark(inst.selectionBookmark);
+		}
+	},
+
+	execCommand : function(command, user_interface, value) {
+		var inst = tinyMCE.selectedInstance;
+
+		this.restoreSelection();
+		inst.execCommand(command, user_interface, value);
+
+		// Store selection
+		if (this.storeSelection)
+			inst.selectionBookmark = inst.selection.getBookmark(true);
+	},
+
+	close : function() {
+		tinyMCE.closeWindow(window);
+	},
+
+	pickColor : function(e, element_id) {
+		tinyMCE.selectedInstance.execCommand('mceColorPicker', true, {
+			element_id : element_id,
+			document : document,
+			window : window,
+			store_selection : false
+		});
+	},
+
+	openBrowser : function(element_id, type, option) {
+		var cb = tinyMCE.getParam(option, tinyMCE.getParam("file_browser_callback"));
+		var url = document.getElementById(element_id).value;
+
+		tinyMCE.setWindowArg("window", window);
+		tinyMCE.setWindowArg("document", document);
+
+		// Call to external callback
+		if (eval('typeof(tinyMCEPopup.windowOpener.' + cb + ')') == "undefined")
+			alert("Callback function: " + cb + " could not be found.");
+		else
+			eval("tinyMCEPopup.windowOpener." + cb + "(element_id, url, type, window);");
+	},
+
+	importClass : function(c) {
+		var n;
+
+		window[c] = function() {};
+
+		for (n in window.opener[c].prototype)
+			window[c].prototype[n] = window.opener[c].prototype[n];
+
+		window[c].constructor = window.opener[c].constructor;
+	}
+
+	};
+
+// Setup global instance
+var tinyMCEPopup = new TinyMCE_Popup();
+
+tinyMCEPopup.init();
diff --git a/tinyMCE/tiny_mce_src.js b/tinyMCE/tiny_mce_src.js
new file mode 100644
index 0000000000000000000000000000000000000000..ba713a897ed45aa3dc4e561ea3bae9b91a16f0d7
--- /dev/null
+++ b/tinyMCE/tiny_mce_src.js
@@ -0,0 +1,7571 @@
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_Engine.class.js */
+
+function TinyMCE_Engine() {
+	var ua;
+
+	this.majorVersion = "2";
+	this.minorVersion = "1.1.1";
+	this.releaseDate = "2007-05-14";
+
+	this.instances = [];
+	this.switchClassCache = [];
+	this.windowArgs = [];
+	this.loadedFiles = [];
+	this.pendingFiles = [];
+	this.loadingIndex = 0;
+	this.configs = [];
+	this.currentConfig = 0;
+	this.eventHandlers = [];
+	this.log = [];
+	this.undoLevels = [];
+	this.undoIndex = 0;
+	this.typingUndoIndex = -1;
+	this.settings = [];
+
+	// Browser check
+	ua = navigator.userAgent;
+	this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
+	this.isMSIE5 = this.isMSIE && (ua.indexOf('MSIE 5') != -1);
+	this.isMSIE5_0 = this.isMSIE && (ua.indexOf('MSIE 5.0') != -1);
+	this.isMSIE7 = this.isMSIE && (ua.indexOf('MSIE 7') != -1);
+	this.isGecko = ua.indexOf('Gecko') != -1; // Will also be true on Safari
+	this.isSafari = ua.indexOf('Safari') != -1;
+	this.isOpera = window['opera'] && opera.buildNumber ? true : false;
+	this.isMac = ua.indexOf('Mac') != -1;
+	this.isNS7 = ua.indexOf('Netscape/7') != -1;
+	this.isNS71 = ua.indexOf('Netscape/7.1') != -1;
+	this.dialogCounter = 0;
+	this.plugins = [];
+	this.themes = [];
+	this.menus = [];
+	this.loadedPlugins = [];
+	this.buttonMap = [];
+	this.isLoaded = false;
+
+	// Fake MSIE on Opera and if Opera fakes IE, Gecko or Safari cancel those
+	if (this.isOpera) {
+		this.isMSIE = true;
+		this.isGecko = false;
+		this.isSafari =  false;
+	}
+
+	this.isIE = this.isMSIE;
+	this.isRealIE = this.isMSIE && !this.isOpera;
+
+	// TinyMCE editor id instance counter
+	this.idCounter = 0;
+};
+
+TinyMCE_Engine.prototype = {
+	init : function(settings) {
+		var theme, nl, baseHREF = "", i, cssPath, entities, h, p, src, elements = [], head;
+
+		// IE 5.0x is no longer supported since 5.5, 6.0 and 7.0 now exists. We can't support old browsers forever, sorry.
+		if (this.isMSIE5_0)
+			return;
+
+		this.settings = settings;
+
+		// Check if valid browser has execcommand support
+		if (typeof(document.execCommand) == 'undefined')
+			return;
+
+		// Get script base path
+		if (!tinyMCE.baseURL) {
+			// Search through head
+			head = document.getElementsByTagName('head')[0];
+
+			if (head) {
+				for (i=0, nl = head.getElementsByTagName('script'); i<nl.length; i++)
+					elements.push(nl[i]);
+			}
+
+			// Search through rest of document
+			for (i=0, nl = document.getElementsByTagName('script'); i<nl.length; i++)
+				elements.push(nl[i]);
+
+			// If base element found, add that infront of baseURL
+			nl = document.getElementsByTagName('base');
+			for (i=0; i<nl.length; i++) {
+				if (nl[i].href)
+					baseHREF = nl[i].href;
+			}
+
+			for (i=0; i<elements.length; i++) {
+				if (elements[i].src && (elements[i].src.indexOf("tiny_mce.js") != -1 || elements[i].src.indexOf("tiny_mce_dev.js") != -1 || elements[i].src.indexOf("tiny_mce_src.js") != -1 || elements[i].src.indexOf("tiny_mce_gzip") != -1)) {
+					src = elements[i].src;
+
+					tinyMCE.srcMode = (src.indexOf('_src') != -1 || src.indexOf('_dev') != -1) ? '_src' : '';
+					tinyMCE.gzipMode = src.indexOf('_gzip') != -1;
+					src = src.substring(0, src.lastIndexOf('/'));
+
+					if (settings.exec_mode == "src" || settings.exec_mode == "normal")
+						tinyMCE.srcMode = settings.exec_mode == "src" ? '_src' : '';
+
+					// Force it absolute if page has a base href
+					if (baseHREF !== '' && src.indexOf('://') == -1)
+						tinyMCE.baseURL = baseHREF + src;
+					else
+						tinyMCE.baseURL = src;
+
+					break;
+				}
+			}
+		}
+
+		// Get document base path
+		this.documentBasePath = document.location.href;
+		if (this.documentBasePath.indexOf('?') != -1)
+			this.documentBasePath = this.documentBasePath.substring(0, this.documentBasePath.indexOf('?'));
+		this.documentURL = this.documentBasePath;
+		this.documentBasePath = this.documentBasePath.substring(0, this.documentBasePath.lastIndexOf('/'));
+
+		// If not HTTP absolute
+		if (tinyMCE.baseURL.indexOf('://') == -1 && tinyMCE.baseURL.charAt(0) != '/') {
+			// If site absolute
+			tinyMCE.baseURL = this.documentBasePath + "/" + tinyMCE.baseURL;
+		}
+
+		// Set default values on settings
+		this._def("mode", "none");
+		this._def("theme", "advanced");
+		this._def("plugins", "", true);
+		this._def("language", "en");
+		this._def("docs_language", this.settings.language);
+		this._def("elements", "");
+		this._def("textarea_trigger", "mce_editable");
+		this._def("editor_selector", "");
+		this._def("editor_deselector", "mceNoEditor");
+		this._def("valid_elements", "+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|style],-ul[class|style],-li[class|style],br,img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align],-sub[style|class],-sup[style|class],-blockquote[dir|style],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[style|class|align],-pre[class|align|style],address[class|align|style],-h1[id|style|dir|class|align],-h2[id|style|dir|class|align],-h3[id|style|dir|class|align],-h4[id|style|dir|class|align],-h5[id|style|dir|class|align],-h6[id|style|dir|class|align],hr[class|style],-font[face|size|style|id|class|dir|color],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],cite[title|id|class|style|dir|lang],abbr[title|id|class|style|dir|lang],acronym[title|id|class|style|dir|lang],del[title|id|class|style|dir|lang|datetime|cite],ins[title|id|class|style|dir|lang|datetime|cite]");
+		this._def("extended_valid_elements", "");
+		this._def("invalid_elements", "");
+		this._def("encoding", "");
+		this._def("urlconverter_callback", tinyMCE.getParam("urlconvertor_callback", "TinyMCE_Engine.prototype.convertURL"));
+		this._def("save_callback", "");
+		this._def("force_br_newlines", false);
+		this._def("force_p_newlines", true);
+		this._def("add_form_submit_trigger", true);
+		this._def("relative_urls", true);
+		this._def("remove_script_host", true);
+		this._def("focus_alert", true);
+		this._def("document_base_url", this.documentURL);
+		this._def("visual", true);
+		this._def("visual_table_class", "mceVisualAid");
+		this._def("setupcontent_callback", "");
+		this._def("fix_content_duplication", true);
+		this._def("custom_undo_redo", true);
+		this._def("custom_undo_redo_levels", -1);
+		this._def("custom_undo_redo_keyboard_shortcuts", true);
+		this._def("custom_undo_redo_restore_selection", true);
+		this._def("custom_undo_redo_global", false);
+		this._def("verify_html", true);
+		this._def("apply_source_formatting", false);
+		this._def("directionality", "ltr");
+		this._def("cleanup_on_startup", false);
+		this._def("inline_styles", false);
+		this._def("convert_newlines_to_brs", false);
+		this._def("auto_reset_designmode", true);
+		this._def("entities", "39,#39,160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,34,quot,38,amp,60,lt,62,gt,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro", true);
+		this._def("entity_encoding", "named");
+		this._def("cleanup_callback", "");
+		this._def("add_unload_trigger", true);
+		this._def("ask", false);
+		this._def("nowrap", false);
+		this._def("auto_resize", false);
+		this._def("auto_focus", false);
+		this._def("cleanup", true);
+		this._def("remove_linebreaks", true);
+		this._def("button_tile_map", false);
+		this._def("submit_patch", true);
+		this._def("browsers", "msie,safari,gecko,opera", true);
+		this._def("dialog_type", "window");
+		this._def("accessibility_warnings", true);
+		this._def("accessibility_focus", true);
+		this._def("merge_styles_invalid_parents", "");
+		this._def("force_hex_style_colors", true);
+		this._def("trim_span_elements", true);
+		this._def("convert_fonts_to_spans", false);
+		this._def("doctype", '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
+		this._def("font_size_classes", '');
+		this._def("font_size_style_values", 'xx-small,x-small,small,medium,large,x-large,xx-large', true);
+		this._def("event_elements", 'a,img', true);
+		this._def("convert_urls", true);
+		this._def("table_inline_editing", false);
+		this._def("object_resizing", true);
+		this._def("custom_shortcuts", true);
+		this._def("convert_on_click", false);
+		this._def("content_css", '');
+		this._def("fix_list_elements", true);
+		this._def("fix_table_elements", false);
+		this._def("strict_loading_mode", document.contentType == 'application/xhtml+xml');
+		this._def("hidden_tab_class", '');
+		this._def("display_tab_class", '');
+		this._def("gecko_spellcheck", false);
+		this._def("hide_selects_on_submit", true);
+		this._def("forced_root_block", false);
+		this._def("remove_trailing_nbsp", false);
+
+		// Force strict loading mode to false on non Gecko browsers
+		if (this.isMSIE && !this.isOpera)
+			this.settings.strict_loading_mode = false;
+
+		// Browser check IE
+		if (this.isMSIE && this.settings.browsers.indexOf('msie') == -1)
+			return;
+
+		// Browser check Gecko
+		if (this.isGecko && this.settings.browsers.indexOf('gecko') == -1)
+			return;
+
+		// Browser check Safari
+		if (this.isSafari && this.settings.browsers.indexOf('safari') == -1)
+			return;
+
+		// Browser check Opera
+		if (this.isOpera && this.settings.browsers.indexOf('opera') == -1)
+			return;
+
+		// If not super absolute make it so
+		baseHREF = tinyMCE.settings.document_base_url;
+		h = document.location.href;
+		p = h.indexOf('://');
+		if (p > 0 && document.location.protocol != "file:") {
+			p = h.indexOf('/', p + 3);
+			h = h.substring(0, p);
+
+			if (baseHREF.indexOf('://') == -1)
+				baseHREF = h + baseHREF;
+
+			tinyMCE.settings.document_base_url = baseHREF;
+			tinyMCE.settings.document_base_prefix = h;
+		}
+
+		// Trim away query part
+		if (baseHREF.indexOf('?') != -1)
+			baseHREF = baseHREF.substring(0, baseHREF.indexOf('?'));
+
+		this.settings.base_href = baseHREF.substring(0, baseHREF.lastIndexOf('/')) + "/";
+
+		theme = this.settings.theme;
+		this.inlineStrict = 'A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';
+		this.inlineTransitional = 'A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';
+		this.blockElms = 'H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';
+		this.blockRegExp = new RegExp("^(" + this.blockElms + ")$", "i");
+		this.posKeyCodes = [13,45,36,35,33,34,37,38,39,40];
+		this.uniqueURL = 'javascript:void(091039730);'; // Make unique URL non real URL
+		this.uniqueTag = '<div id="mceTMPElement" style="display: none">TMP</div>';
+		this.callbacks = ['onInit', 'getInfo', 'getEditorTemplate', 'setupContent', 'onChange', 'onPageLoad', 'handleNodeChange', 'initInstance', 'execCommand', 'getControlHTML', 'handleEvent', 'cleanup', 'removeInstance'];
+
+		// Theme url
+		this.settings.theme_href = tinyMCE.baseURL + "/themes/" + theme;
+
+		if (!tinyMCE.isIE || tinyMCE.isOpera)
+			this.settings.force_br_newlines = false;
+
+		if (tinyMCE.getParam("popups_css", false)) {
+			cssPath = tinyMCE.getParam("popups_css", "");
+
+			// Is relative
+			if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/')
+				this.settings.popups_css = this.documentBasePath + "/" + cssPath;
+			else
+				this.settings.popups_css = cssPath;
+		} else
+			this.settings.popups_css = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_popup.css";
+
+		if (tinyMCE.getParam("editor_css", false)) {
+			cssPath = tinyMCE.getParam("editor_css", "");
+
+			// Is relative
+			if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/')
+				this.settings.editor_css = this.documentBasePath + "/" + cssPath;
+			else
+				this.settings.editor_css = cssPath;
+		} else {
+			if (this.settings.editor_css !== '')
+				this.settings.editor_css = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_ui.css";
+		}
+
+		// Only do this once
+		if (this.configs.length == 0) {
+			if (typeof(TinyMCECompressed) == "undefined") {
+				tinyMCE.addEvent(window, "DOMContentLoaded", TinyMCE_Engine.prototype.onLoad);
+
+				if (tinyMCE.isRealIE) {
+					if (document.body)
+						tinyMCE.addEvent(document.body, "readystatechange", TinyMCE_Engine.prototype.onLoad);
+					else
+						tinyMCE.addEvent(document, "readystatechange", TinyMCE_Engine.prototype.onLoad);
+				}
+
+				tinyMCE.addEvent(window, "load", TinyMCE_Engine.prototype.onLoad);
+				tinyMCE._addUnloadEvents();
+			}
+		}
+
+		this.loadScript(tinyMCE.baseURL + '/themes/' + this.settings.theme + '/editor_template' + tinyMCE.srcMode + '.js');
+		this.loadScript(tinyMCE.baseURL + '/langs/' + this.settings.language +  '.js');
+		this.loadCSS(this.settings.editor_css);
+
+		// Add plugins
+		p = tinyMCE.getParam('plugins', '', true, ',');
+		if (p.length > 0) {
+			for (i=0; i<p.length; i++) {
+				if (p[i].charAt(0) != '-')
+					this.loadScript(tinyMCE.baseURL + '/plugins/' + p[i] + '/editor_plugin' + tinyMCE.srcMode + '.js');
+			}
+		}
+
+		// Setup entities
+		if (tinyMCE.getParam('entity_encoding') == 'named') {
+			settings.cleanup_entities = [];
+			entities = tinyMCE.getParam('entities', '', true, ',');
+			for (i=0; i<entities.length; i+=2)
+				settings.cleanup_entities['c' + entities[i]] = entities[i+1];
+		}
+
+		// Save away this config
+		settings.index = this.configs.length;
+		this.configs[this.configs.length] = settings;
+
+		// Start loading first one in chain
+		this.loadNextScript();
+
+		// Force flicker free CSS backgrounds in IE
+		if (this.isIE && !this.isOpera) {
+			try {
+				document.execCommand('BackgroundImageCache', false, true);
+			} catch (e) {
+				// Ignore
+			}
+		}
+
+		// Setup XML encoding regexps
+		this.xmlEncodeRe = new RegExp('[<>&"]', 'g');
+	},
+
+	_addUnloadEvents : function() {
+		var st = tinyMCE.settings.add_unload_trigger;
+
+		if (tinyMCE.isIE) {
+			if (st) {
+				tinyMCE.addEvent(window, "unload", TinyMCE_Engine.prototype.unloadHandler);
+				tinyMCE.addEvent(window.document, "beforeunload", TinyMCE_Engine.prototype.unloadHandler);
+			}
+		} else {
+			if (st)
+				tinyMCE.addEvent(window, "unload", function () {tinyMCE.triggerSave(true, true);});
+		}
+	},
+
+	_def : function(key, def_val, t) {
+		var v = tinyMCE.getParam(key, def_val);
+
+		v = t ? v.replace(/\s+/g, "") : v;
+
+		this.settings[key] = v;
+	},
+
+	hasPlugin : function(n) {
+		return typeof(this.plugins[n]) != "undefined" && this.plugins[n] != null;
+	},
+
+	addPlugin : function(n, p) {
+		var op = this.plugins[n];
+
+		// Use the previous plugin object base URL used when loading external plugins
+		p.baseURL = op ? op.baseURL : tinyMCE.baseURL + "/plugins/" + n;
+		this.plugins[n] = p;
+
+		this.loadNextScript();
+	},
+
+	setPluginBaseURL : function(n, u) {
+		var op = this.plugins[n];
+
+		if (op)
+			op.baseURL = u;
+		else
+			this.plugins[n] = {baseURL : u};
+	},
+
+	loadPlugin : function(n, u) {
+		u = u.indexOf('.js') != -1 ? u.substring(0, u.lastIndexOf('/')) : u;
+		u = u.charAt(u.length-1) == '/' ? u.substring(0, u.length-1) : u;
+		this.plugins[n] = {baseURL : u};
+		this.loadScript(u + "/editor_plugin" + (tinyMCE.srcMode ? '_src' : '') + ".js");
+	},
+
+	hasTheme : function(n) {
+		return typeof(this.themes[n]) != "undefined" && this.themes[n] != null;
+	},
+
+	addTheme : function(n, t) {
+		this.themes[n] = t;
+
+		this.loadNextScript();
+	},
+
+	addMenu : function(n, m) {
+		this.menus[n] = m;
+	},
+
+	hasMenu : function(n) {
+		return typeof(this.plugins[n]) != "undefined" && this.plugins[n] != null;
+	},
+
+	loadScript : function(url) {
+		var i;
+
+		for (i=0; i<this.loadedFiles.length; i++) {
+			if (this.loadedFiles[i] == url)
+				return;
+		}
+
+		if (tinyMCE.settings.strict_loading_mode)
+			this.pendingFiles[this.pendingFiles.length] = url;
+		else
+			document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></script>');
+
+		this.loadedFiles[this.loadedFiles.length] = url;
+	},
+
+	loadNextScript : function() {
+		var d = document, se;
+
+		if (!tinyMCE.settings.strict_loading_mode)
+			return;
+
+		if (this.loadingIndex < this.pendingFiles.length) {
+			se = d.createElementNS('http://www.w3.org/1999/xhtml', 'script');
+			se.setAttribute('language', 'javascript');
+			se.setAttribute('type', 'text/javascript');
+			se.setAttribute('src', this.pendingFiles[this.loadingIndex++]);
+
+			d.getElementsByTagName("head")[0].appendChild(se);
+		} else
+			this.loadingIndex = -1; // Done with loading
+	},
+
+	loadCSS : function(url) {
+		var ar = url.replace(/\s+/, '').split(',');
+		var lflen = 0, csslen = 0, skip = false;
+		var x = 0, i = 0, nl, le;
+
+		for (x = 0,csslen = ar.length; x<csslen; x++) {
+			if (ar[x] != null && ar[x] != 'null' && ar[x].length > 0) {
+				/* Make sure it doesn't exist. */
+				for (i=0, lflen=this.loadedFiles.length; i<lflen; i++) {
+					if (this.loadedFiles[i] == ar[x]) {
+						skip = true;
+						break;
+					}
+				}
+
+				if (!skip) {
+					if (tinyMCE.settings.strict_loading_mode) {
+						nl = document.getElementsByTagName("head");
+
+						le = document.createElement('link');
+						le.setAttribute('href', ar[x]);
+						le.setAttribute('rel', 'stylesheet');
+						le.setAttribute('type', 'text/css');
+
+						nl[0].appendChild(le);			
+					} else
+						document.write('<link href="' + ar[x] + '" rel="stylesheet" type="text/css" />');
+
+					this.loadedFiles[this.loadedFiles.length] = ar[x];
+				}
+			}
+		}
+	},
+
+	importCSS : function(doc, css) {
+		var css_ary = css.replace(/\s+/, '').split(',');
+		var csslen, elm, headArr, x, css_file;
+
+		for (x = 0, csslen = css_ary.length; x<csslen; x++) {
+			css_file = css_ary[x];
+
+			if (css_file != null && css_file != 'null' && css_file.length > 0) {
+				// Is relative, make absolute
+				if (css_file.indexOf('://') == -1 && css_file.charAt(0) != '/')
+					css_file = this.documentBasePath + "/" + css_file;
+
+				if (typeof(doc.createStyleSheet) == "undefined") {
+					elm = doc.createElement("link");
+
+					elm.rel = "stylesheet";
+					elm.href = css_file;
+
+					if ((headArr = doc.getElementsByTagName("head")) != null && headArr.length > 0)
+						headArr[0].appendChild(elm);
+				} else
+					doc.createStyleSheet(css_file);
+			}
+		}
+	},
+
+	confirmAdd : function(e, settings) {
+		var elm = tinyMCE.isIE ? event.srcElement : e.target;
+		var elementId = elm.name ? elm.name : elm.id;
+
+		tinyMCE.settings = settings;
+
+		if (tinyMCE.settings.convert_on_click || (!elm.getAttribute('mce_noask') && confirm(tinyMCELang.lang_edit_confirm)))
+			tinyMCE.addMCEControl(elm, elementId);
+
+		elm.setAttribute('mce_noask', 'true');
+	},
+
+	updateContent : function(form_element_name) {
+		var formElement, n, inst, doc;
+
+		// Find MCE instance linked to given form element and copy it's value
+		formElement = document.getElementById(form_element_name);
+		for (n in tinyMCE.instances) {
+			inst = tinyMCE.instances[n];
+
+			if (!tinyMCE.isInstance(inst))
+				continue;
+
+			inst.switchSettings();
+
+			if (inst.formElement == formElement) {
+				doc = inst.getDoc();
+
+				tinyMCE._setHTML(doc, inst.formElement.value);
+
+				if (!tinyMCE.isIE)
+					doc.body.innerHTML = tinyMCE._cleanupHTML(inst, doc, this.settings, doc.body, inst.visualAid);
+			}
+		}
+	},
+
+	addMCEControl : function(replace_element, form_element_name, target_document) {
+		var id = "mce_editor_" + tinyMCE.idCounter++;
+		var inst = new TinyMCE_Control(tinyMCE.settings);
+
+		inst.editorId = id;
+		this.instances[id] = inst;
+
+		inst._onAdd(replace_element, form_element_name, target_document);
+	},
+
+	removeInstance : function(ti) {
+		var t = [], n, i;
+
+		// Remove from instances
+		for (n in tinyMCE.instances) {
+			i = tinyMCE.instances[n];
+
+			if (tinyMCE.isInstance(i) && ti != i)
+					t[n] = i;
+		}
+
+		tinyMCE.instances = t;
+
+		// Remove from global undo/redo
+		n = [];
+		t = tinyMCE.undoLevels;
+
+		for (i=0; i<t.length; i++) {
+			if (t[i] != ti)
+				n.push(t[i]);
+		}
+
+		tinyMCE.undoLevels = n;
+		tinyMCE.undoIndex = n.length;
+
+		// Dispatch remove instance call
+		tinyMCE.dispatchCallback(ti, 'remove_instance_callback', 'removeInstance', ti);
+
+		return ti;
+	},
+
+	removeMCEControl : function(editor_id) {
+		var inst = tinyMCE.getInstanceById(editor_id), h, re, ot, tn;
+
+		if (inst) {
+			inst.switchSettings();
+
+			editor_id = inst.editorId;
+			h = tinyMCE.getContent(editor_id);
+
+			this.removeInstance(inst);
+
+			tinyMCE.selectedElement = null;
+			tinyMCE.selectedInstance = null;
+
+			// Remove element
+			re = document.getElementById(editor_id + "_parent");
+			ot = inst.oldTargetElement;
+			tn = ot.nodeName.toLowerCase();
+
+			if (tn == "textarea" || tn == "input") {
+				re.parentNode.removeChild(re);
+				ot.style.display = "inline";
+				ot.value = h;
+			} else {
+				ot.innerHTML = h;
+				ot.style.display = 'block';
+				re.parentNode.insertBefore(ot, re);
+				re.parentNode.removeChild(re);
+			}
+		}
+	},
+
+	triggerSave : function(skip_cleanup, skip_callback) {
+		var inst, n;
+
+		// Default to false
+		if (typeof(skip_cleanup) == "undefined")
+			skip_cleanup = false;
+
+		// Default to false
+		if (typeof(skip_callback) == "undefined")
+			skip_callback = false;
+
+		// Cleanup and set all form fields
+		for (n in tinyMCE.instances) {
+			inst = tinyMCE.instances[n];
+
+			if (!tinyMCE.isInstance(inst))
+				continue;
+
+			inst.triggerSave(skip_cleanup, skip_callback);
+		}
+	},
+
+	resetForm : function(form_index) {
+		var i, inst, n, formObj = document.forms[form_index];
+
+		for (n in tinyMCE.instances) {
+			inst = tinyMCE.instances[n];
+
+			if (!tinyMCE.isInstance(inst))
+				continue;
+
+			inst.switchSettings();
+
+			for (i=0; i<formObj.elements.length; i++) {
+				if (inst.formTargetElementId == formObj.elements[i].name)
+					inst.getBody().innerHTML = inst.startContent;
+			}
+		}
+	},
+
+	execInstanceCommand : function(editor_id, command, user_interface, value, focus) {
+		var inst = tinyMCE.getInstanceById(editor_id), r;
+
+		if (inst) {
+			r = inst.selection.getRng();
+
+			if (typeof(focus) == "undefined")
+				focus = true;
+
+			// IE bug lost focus on images in absolute divs Bug #1534575
+			if (focus && (!r || !r.item))
+				inst.contentWindow.focus();
+
+			// Reset design mode if lost
+			inst.autoResetDesignMode();
+
+			this.selectedElement = inst.getFocusElement();
+			inst.select();
+			tinyMCE.execCommand(command, user_interface, value);
+
+			// Cancel event so it doesn't call onbeforeonunlaod
+			if (tinyMCE.isIE && window.event != null)
+				tinyMCE.cancelEvent(window.event);
+		}
+	},
+
+	execCommand : function(command, user_interface, value) {
+		var inst = tinyMCE.selectedInstance, n, pe, te;
+
+		// Default input
+		user_interface = user_interface ? user_interface : false;
+		value = value ? value : null;
+
+		if (inst)
+			inst.switchSettings();
+
+		switch (command) {
+			case "Undo":
+				if (this.getParam('custom_undo_redo_global')) {
+					if (this.undoIndex > 0) {
+						tinyMCE.nextUndoRedoAction = 'Undo';
+						inst = this.undoLevels[--this.undoIndex];
+						inst.select();
+
+						if (!tinyMCE.nextUndoRedoInstanceId)
+							inst.execCommand('Undo');
+					}
+				} else
+					inst.execCommand('Undo');
+				return true;
+
+			case "Redo":
+				if (this.getParam('custom_undo_redo_global')) {
+					if (this.undoIndex <= this.undoLevels.length - 1) {
+						tinyMCE.nextUndoRedoAction = 'Redo';
+						inst = this.undoLevels[this.undoIndex++];
+						inst.select();
+
+						if (!tinyMCE.nextUndoRedoInstanceId)
+							inst.execCommand('Redo');
+					}
+				} else
+					inst.execCommand('Redo');
+
+				return true;
+
+			case 'mceFocus':
+				inst = tinyMCE.getInstanceById(value);
+
+				if (inst)
+					inst.getWin().focus();
+			return;
+
+			case "mceAddControl":
+			case "mceAddEditor":
+				tinyMCE.addMCEControl(tinyMCE._getElementById(value), value);
+				return;
+
+			case "mceAddFrameControl":
+				tinyMCE.addMCEControl(tinyMCE._getElementById(value.element, value.document), value.element, value.document);
+				return;
+
+			case "mceRemoveControl":
+			case "mceRemoveEditor":
+				tinyMCE.removeMCEControl(value);
+				return;
+
+			case "mceToggleEditor":
+				inst = tinyMCE.getInstanceById(value);
+
+				if (inst) {
+					pe = document.getElementById(inst.editorId + '_parent');
+					te = inst.oldTargetElement;
+
+					if (typeof(inst.enabled) == 'undefined')
+						inst.enabled = true;
+
+					inst.enabled = !inst.enabled;
+
+					if (!inst.enabled) {
+						pe.style.display = 'none';
+
+						if (te.nodeName == 'TEXTAREA' || te.nodeName == 'INPUT')
+							te.value = inst.getHTML();
+						else
+							te.innerHTML = inst.getHTML();
+
+						te.style.display = inst.oldTargetDisplay;
+						tinyMCE.dispatchCallback(inst, 'hide_instance_callback', 'hideInstance', inst);
+					} else {
+						pe.style.display = 'block';
+						te.style.display = 'none';
+
+						if (te.nodeName == 'TEXTAREA' || te.nodeName == 'INPUT')
+							inst.setHTML(te.value);
+						else
+							inst.setHTML(te.innerHTML);
+
+						inst.useCSS = false;
+						tinyMCE.dispatchCallback(inst, 'show_instance_callback', 'showInstance', inst);
+					}
+				} else
+					tinyMCE.addMCEControl(tinyMCE._getElementById(value), value);
+
+				return;
+
+			case "mceResetDesignMode":
+				// Resets the designmode state of the editors in Gecko
+				if (tinyMCE.isGecko) {
+					for (n in tinyMCE.instances) {
+						if (!tinyMCE.isInstance(tinyMCE.instances[n]))
+							continue;
+
+						try {
+							tinyMCE.instances[n].getDoc().designMode = "off";
+							tinyMCE.instances[n].getDoc().designMode = "on";
+							tinyMCE.instances[n].useCSS = false;
+						} catch (e) {
+							// Ignore any errors
+						}
+					}
+				}
+
+				return;
+		}
+
+		if (inst) {
+			inst.execCommand(command, user_interface, value);
+		} else if (tinyMCE.settings.focus_alert)
+			alert(tinyMCELang.lang_focus_alert);
+	},
+
+	_createIFrame : function(replace_element, doc, win) {
+		var iframe, id = replace_element.getAttribute("id");
+		var aw, ah;
+
+		if (typeof(doc) == "undefined")
+			doc = document;
+
+		if (typeof(win) == "undefined")
+			win = window;
+
+		iframe = doc.createElement("iframe");
+
+		aw = "" + tinyMCE.settings.area_width;
+		ah = "" + tinyMCE.settings.area_height;
+
+		if (aw.indexOf('%') == -1) {
+			aw = parseInt(aw);
+			aw = (isNaN(aw) || aw < 0) ? 300 : aw;
+			aw = aw + "px";
+		}
+
+		if (ah.indexOf('%') == -1) {
+			ah = parseInt(ah);
+			ah = (isNaN(ah) || ah < 0) ? 240 : ah;
+			ah = ah + "px";
+		}
+
+		iframe.setAttribute("id", id);
+		iframe.setAttribute("name", id);
+		iframe.setAttribute("class", "mceEditorIframe");
+		iframe.setAttribute("border", "0");
+		iframe.setAttribute("frameBorder", "0");
+		iframe.setAttribute("marginWidth", "0");
+		iframe.setAttribute("marginHeight", "0");
+		iframe.setAttribute("leftMargin", "0");
+		iframe.setAttribute("topMargin", "0");
+		iframe.setAttribute("width", aw);
+		iframe.setAttribute("height", ah);
+		iframe.setAttribute("allowtransparency", "true");
+		iframe.className = 'mceEditorIframe';
+
+		if (tinyMCE.settings.auto_resize)
+			iframe.setAttribute("scrolling", "no");
+
+		// Must have a src element in MSIE HTTPs breaks aswell as absoute URLs
+		if (tinyMCE.isRealIE)
+			iframe.setAttribute("src", this.settings.default_document);
+
+		iframe.style.width = aw;
+		iframe.style.height = ah;
+
+		// Ugly hack for Gecko problem in strict mode
+		if (tinyMCE.settings.strict_loading_mode)
+			iframe.style.marginBottom = '-5px';
+
+		// MSIE 5.0 issue
+		if (tinyMCE.isRealIE)
+			replace_element.outerHTML = iframe.outerHTML;
+		else
+			replace_element.parentNode.replaceChild(iframe, replace_element);
+
+		if (tinyMCE.isRealIE)
+			return win.frames[id];
+		else
+			return iframe;
+	},
+
+	setupContent : function(editor_id) {
+		var inst = tinyMCE.instances[editor_id], i, doc = inst.getDoc(), head = doc.getElementsByTagName('head').item(0);
+		var content = inst.startContent, contentElement, body;
+
+		// HTML values get XML encoded in strict mode
+		if (tinyMCE.settings.strict_loading_mode) {
+			content = content.replace(/&lt;/g, '<');
+			content = content.replace(/&gt;/g, '>');
+			content = content.replace(/&quot;/g, '"');
+			content = content.replace(/&amp;/g, '&');
+		}
+
+		tinyMCE.selectedInstance = inst;
+		inst.switchSettings();
+
+		// Not loaded correctly hit it again, Mozilla bug #997860
+		if (!tinyMCE.isIE && tinyMCE.getParam("setupcontent_reload", false) && doc.title != "blank_page") {
+			// This part will remove the designMode status
+			// Failes first time in Firefox 1.5b2 on Mac
+			try {doc.location.href = tinyMCE.baseURL + "/blank.htm";} catch (ex) {}
+			window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", 1000);
+			return;
+		}
+
+		// Wait for it to load
+		if (!head || !doc.body) {
+			window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", 10);
+			return;
+		}
+
+		// Import theme specific content CSS the user specific
+		tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/themes/" + inst.settings.theme + "/css/editor_content.css");
+		tinyMCE.importCSS(inst.getDoc(), inst.settings.content_css);
+		tinyMCE.dispatchCallback(inst, 'init_instance_callback', 'initInstance', inst);
+
+		// Setup keyboard shortcuts
+		if (tinyMCE.getParam('custom_undo_redo_keyboard_shortcuts')) {
+			inst.addShortcut('ctrl', 'z', 'lang_undo_desc', 'Undo');
+			inst.addShortcut('ctrl', 'y', 'lang_redo_desc', 'Redo');
+		}
+
+		// BlockFormat shortcuts keys
+		for (i=1; i<=6; i++)
+			inst.addShortcut('ctrl', '' + i, '', 'FormatBlock', false, '<h' + i + '>');
+
+		inst.addShortcut('ctrl', '7', '', 'FormatBlock', false, '<p>');
+		inst.addShortcut('ctrl', '8', '', 'FormatBlock', false, '<div>');
+		inst.addShortcut('ctrl', '9', '', 'FormatBlock', false, '<address>');
+
+		// Add default shortcuts for gecko
+		if (tinyMCE.isGecko) {
+			inst.addShortcut('ctrl', 'b', 'lang_bold_desc', 'Bold');
+			inst.addShortcut('ctrl', 'i', 'lang_italic_desc', 'Italic');
+			inst.addShortcut('ctrl', 'u', 'lang_underline_desc', 'Underline');
+		}
+
+		// Setup span styles
+		if (tinyMCE.getParam("convert_fonts_to_spans"))
+			inst.getBody().setAttribute('id', 'mceSpanFonts');
+
+		if (tinyMCE.settings.nowrap)
+			doc.body.style.whiteSpace = "nowrap";
+
+		doc.body.dir = this.settings.directionality;
+		doc.editorId = editor_id;
+
+		// Add on document element in Mozilla
+		if (!tinyMCE.isIE)
+			doc.documentElement.editorId = editor_id;
+
+		inst.setBaseHREF(tinyMCE.settings.base_href);
+
+		// Replace new line characters to BRs
+		if (tinyMCE.settings.convert_newlines_to_brs) {
+			content = tinyMCE.regexpReplace(content, "\r\n", "<br />", "gi");
+			content = tinyMCE.regexpReplace(content, "\r", "<br />", "gi");
+			content = tinyMCE.regexpReplace(content, "\n", "<br />", "gi");
+		}
+
+		// Open closed anchors
+	//	content = content.replace(new RegExp('<a(.*?)/>', 'gi'), '<a$1></a>');
+
+		// Call custom cleanup code
+		content = tinyMCE.storeAwayURLs(content);
+		content = tinyMCE._customCleanup(inst, "insert_to_editor", content);
+
+		if (tinyMCE.isIE) {
+			// Ugly!!!
+			window.setInterval('try{tinyMCE.getCSSClasses(tinyMCE.instances["' + editor_id + '"].getDoc(), "' + editor_id + '");}catch(e){}', 500);
+
+			if (tinyMCE.settings.force_br_newlines)
+				doc.styleSheets[0].addRule("p", "margin: 0;");
+
+			body = inst.getBody();
+			body.editorId = editor_id;
+		}
+
+		content = tinyMCE.cleanupHTMLCode(content);
+
+		// Fix for bug #958637
+		if (!tinyMCE.isIE) {
+			contentElement = inst.getDoc().createElement("body");
+			doc = inst.getDoc();
+
+			contentElement.innerHTML = content;
+
+			if (tinyMCE.settings.cleanup_on_startup)
+				tinyMCE.setInnerHTML(inst.getBody(), tinyMCE._cleanupHTML(inst, doc, this.settings, contentElement));
+			else
+				tinyMCE.setInnerHTML(inst.getBody(), content);
+
+			tinyMCE.convertAllRelativeURLs(inst.getBody());
+		} else {
+			if (tinyMCE.settings.cleanup_on_startup) {
+				tinyMCE._setHTML(inst.getDoc(), content);
+
+				// Produces permission denied error in MSIE 5.5
+				try {
+					tinyMCE.setInnerHTML(inst.getBody(), tinyMCE._cleanupHTML(inst, inst.contentDocument, this.settings, inst.getBody()));
+				} catch(e) {
+					// Ignore
+				}
+			} else
+				tinyMCE._setHTML(inst.getDoc(), content);
+		}
+
+		// Fix for bug #957681
+		//inst.getDoc().designMode = inst.getDoc().designMode;
+
+		tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings.visual, inst);
+		tinyMCE.dispatchCallback(inst, 'setupcontent_callback', 'setupContent', editor_id, inst.getBody(), inst.getDoc());
+
+		// Re-add design mode on mozilla
+		if (!tinyMCE.isIE)
+			tinyMCE.addEventHandlers(inst);
+
+		// Add blur handler
+		if (tinyMCE.isIE) {
+			tinyMCE.addEvent(inst.getBody(), "blur", TinyMCE_Engine.prototype._eventPatch);
+			tinyMCE.addEvent(inst.getBody(), "beforedeactivate", TinyMCE_Engine.prototype._eventPatch); // Bug #1439953
+
+			// Workaround for drag drop/copy paste base href bug
+			if (!tinyMCE.isOpera) {
+				tinyMCE.addEvent(doc.body, "mousemove", TinyMCE_Engine.prototype.onMouseMove);
+				tinyMCE.addEvent(doc.body, "beforepaste", TinyMCE_Engine.prototype._eventPatch);
+				tinyMCE.addEvent(doc.body, "drop", TinyMCE_Engine.prototype._eventPatch);
+			}
+		}
+
+		// Trigger node change, this call locks buttons for tables and so forth
+		inst.select();
+		tinyMCE.selectedElement = inst.contentWindow.document.body;
+
+		// Call custom DOM cleanup
+		tinyMCE._customCleanup(inst, "insert_to_editor_dom", inst.getBody());
+		tinyMCE._customCleanup(inst, "setup_content_dom", inst.getBody());
+		tinyMCE._setEventsEnabled(inst.getBody(), false);
+		tinyMCE.cleanupAnchors(inst.getDoc());
+
+		if (tinyMCE.getParam("convert_fonts_to_spans"))
+			tinyMCE.convertSpansToFonts(inst.getDoc());
+
+		inst.startContent = tinyMCE.trim(inst.getBody().innerHTML);
+		inst.undoRedo.add({ content : inst.startContent });
+
+		// Cleanup any mess left from storyAwayURLs
+		if (tinyMCE.isGecko) {
+			// Remove mce_src from textnodes and comments
+			tinyMCE.selectNodes(inst.getBody(), function(n) {
+				if (n.nodeType == 3 || n.nodeType == 8)
+					n.nodeValue = n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"', 'gi'), "");
+
+				return false;
+			});
+		}
+
+		// Remove Gecko spellchecking
+		if (tinyMCE.isGecko)
+			inst.getBody().spellcheck = tinyMCE.getParam("gecko_spellcheck");
+
+		// Cleanup any mess left from storyAwayURLs
+		tinyMCE._removeInternal(inst.getBody());
+
+		inst.select();
+		tinyMCE.triggerNodeChange(false, true);
+	},
+
+	storeAwayURLs : function(s) {
+		// Remove all mce_src, mce_href and replace them with new ones
+		// s = s.replace(new RegExp('mce_src\\s*=\\s*\"[^ >\"]*\"', 'gi'), '');
+		// s = s.replace(new RegExp('mce_href\\s*=\\s*\"[^ >\"]*\"', 'gi'), '');
+
+		if (!s.match(/(mce_src|mce_href)/gi, s)) {
+			s = s.replace(new RegExp('src\\s*=\\s*\"([^ >\"]*)\"', 'gi'), 'src="$1" mce_src="$1"');
+			s = s.replace(new RegExp('href\\s*=\\s*\"([^ >\"]*)\"', 'gi'), 'href="$1" mce_href="$1"');
+		}
+
+		return s;
+	},
+
+	_removeInternal : function(n) {
+		if (tinyMCE.isGecko) {
+			// Remove mce_src from textnodes and comments
+			tinyMCE.selectNodes(n, function(n) {
+				if (n.nodeType == 3 || n.nodeType == 8)
+					n.nodeValue = n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"', 'gi'), "");
+
+				return false;
+			});
+		}
+	},
+
+	removeTinyMCEFormElements : function(form_obj) {
+		var i, elementId;
+
+		// Skip form element removal
+		if (!tinyMCE.getParam('hide_selects_on_submit'))
+			return;
+
+		// Check if form is valid
+		if (typeof(form_obj) == "undefined" || form_obj == null)
+			return;
+
+		// If not a form, find the form
+		if (form_obj.nodeName != "FORM") {
+			if (form_obj.form)
+				form_obj = form_obj.form;
+			else
+				form_obj = tinyMCE.getParentElement(form_obj, "form");
+		}
+
+		// Still nothing
+		if (form_obj == null)
+			return;
+
+		// Disable all UI form elements that TinyMCE created
+		for (i=0; i<form_obj.elements.length; i++) {
+			elementId = form_obj.elements[i].name ? form_obj.elements[i].name : form_obj.elements[i].id;
+
+			if (elementId.indexOf('mce_editor_') == 0)
+				form_obj.elements[i].disabled = true;
+		}
+	},
+
+	handleEvent : function(e) {
+		var inst = tinyMCE.selectedInstance, i, elm, keys;
+
+		// Remove odd, error
+		if (typeof(tinyMCE) == "undefined")
+			return true;
+
+		//tinyMCE.debug(e.type + " " + e.target.nodeName + " " + (e.relatedTarget ? e.relatedTarget.nodeName : ""));
+
+		if (tinyMCE.executeCallback(tinyMCE.selectedInstance, 'handle_event_callback', 'handleEvent', e))
+			return false;
+
+		switch (e.type) {
+			case "beforedeactivate": // Was added due to bug #1439953
+			case "blur":
+				if (tinyMCE.selectedInstance)
+					tinyMCE.selectedInstance.execCommand('mceEndTyping');
+
+				tinyMCE.hideMenus();
+
+				return;
+
+			// Workaround for drag drop/copy paste base href bug
+			case "drop":
+			case "beforepaste":
+				if (tinyMCE.selectedInstance)
+					tinyMCE.selectedInstance.setBaseHREF(null);
+
+				// Fixes odd MSIE bug where drag/droping elements in a iframe with height 100% breaks
+				// This logic forces the width/height to be in pixels while the user is drag/dropping
+				if (tinyMCE.isRealIE) {
+					var ife = tinyMCE.selectedInstance.iframeElement;
+
+					/*if (ife.style.width.indexOf('%') != -1) {
+						ife._oldWidth = ife.width.height;
+						ife.style.width = ife.clientWidth;
+					}*/
+
+					if (ife.style.height.indexOf('%') != -1) {
+						ife._oldHeight = ife.style.height;
+						ife.style.height = ife.clientHeight;
+					}
+				}
+
+				window.setTimeout("tinyMCE.selectedInstance.setBaseHREF(tinyMCE.settings.base_href);tinyMCE._resetIframeHeight();", 1);
+				return;
+
+			case "submit":
+				tinyMCE.formSubmit(tinyMCE.isMSIE ? window.event.srcElement : e.target);
+				return;
+
+			case "reset":
+				var formObj = tinyMCE.isIE ? window.event.srcElement : e.target;
+
+				for (i=0; i<document.forms.length; i++) {
+					if (document.forms[i] == formObj)
+						window.setTimeout('tinyMCE.resetForm(' + i + ');', 10);
+				}
+
+				return;
+
+			case "keypress":
+				if (inst && inst.handleShortcut(e))
+					return false;
+
+				if (e.target.editorId) {
+					tinyMCE.instances[e.target.editorId].select();
+				} else {
+					if (e.target.ownerDocument.editorId)
+						tinyMCE.instances[e.target.ownerDocument.editorId].select();
+				}
+
+				if (tinyMCE.selectedInstance)
+					tinyMCE.selectedInstance.switchSettings();
+
+				// Insert P element
+				if ((tinyMCE.isGecko || tinyMCE.isOpera || tinyMCE.isSafari) && tinyMCE.settings.force_p_newlines && e.keyCode == 13 && !e.shiftKey) {
+					// Insert P element instead of BR
+					if (TinyMCE_ForceParagraphs._insertPara(tinyMCE.selectedInstance, e)) {
+						// Cancel event
+						tinyMCE.execCommand("mceAddUndoLevel");
+						return tinyMCE.cancelEvent(e);
+					}
+				}
+
+				// Handle backspace
+				if ((tinyMCE.isGecko && !tinyMCE.isSafari) && tinyMCE.settings.force_p_newlines && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) {
+					// Insert P element instead of BR
+					if (TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance, e.type)) {
+						// Cancel event
+						tinyMCE.execCommand("mceAddUndoLevel");
+						return tinyMCE.cancelEvent(e);
+					}
+				}
+
+				// Return key pressed
+				if (tinyMCE.isIE && tinyMCE.settings.force_br_newlines && e.keyCode == 13) {
+					if (e.target.editorId)
+						tinyMCE.instances[e.target.editorId].select();
+
+					if (tinyMCE.selectedInstance) {
+						var sel = tinyMCE.selectedInstance.getDoc().selection;
+						var rng = sel.createRange();
+
+						if (tinyMCE.getParentElement(rng.parentElement(), "li") != null)
+							return false;
+
+						// Cancel event
+						e.returnValue = false;
+						e.cancelBubble = true;
+
+						// Insert BR element
+						rng.pasteHTML("<br />");
+						rng.collapse(false);
+						rng.select();
+
+						tinyMCE.execCommand("mceAddUndoLevel");
+						tinyMCE.triggerNodeChange(false);
+						return false;
+					}
+				}
+
+				// Backspace or delete
+				if (e.keyCode == 8 || e.keyCode == 46) {
+					tinyMCE.selectedElement = e.target;
+					tinyMCE.linkElement = tinyMCE.getParentElement(e.target, "a");
+					tinyMCE.imgElement = tinyMCE.getParentElement(e.target, "img");
+					tinyMCE.triggerNodeChange(false);
+				}
+
+				return false;
+
+			case "keyup":
+			case "keydown":
+				tinyMCE.hideMenus();
+				tinyMCE.hasMouseMoved = false;
+
+				if (inst && inst.handleShortcut(e))
+					return false;
+
+				inst._fixRootBlocks();
+
+				if (inst.settings.remove_trailing_nbsp)
+					inst._fixTrailingNbsp();
+
+				if (e.target.editorId)
+					tinyMCE.instances[e.target.editorId].select();
+
+				if (tinyMCE.selectedInstance)
+					tinyMCE.selectedInstance.switchSettings();
+
+				inst = tinyMCE.selectedInstance;
+
+				// Handle backspace
+				if (tinyMCE.isGecko && tinyMCE.settings.force_p_newlines && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) {
+					// Insert P element instead of BR
+					if (TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance, e.type)) {
+						// Cancel event
+						tinyMCE.execCommand("mceAddUndoLevel");
+						e.preventDefault();
+						return false;
+					}
+				}
+
+				tinyMCE.selectedElement = null;
+				tinyMCE.selectedNode = null;
+				elm = tinyMCE.selectedInstance.getFocusElement();
+				tinyMCE.linkElement = tinyMCE.getParentElement(elm, "a");
+				tinyMCE.imgElement = tinyMCE.getParentElement(elm, "img");
+				tinyMCE.selectedElement = elm;
+
+				// Update visualaids on tabs
+				if (tinyMCE.isGecko && e.type == "keyup" && e.keyCode == 9)
+					tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(), true, tinyMCE.settings.visual, tinyMCE.selectedInstance);
+
+				// Fix empty elements on return/enter, check where enter occured
+				if (tinyMCE.isIE && e.type == "keydown" && e.keyCode == 13)
+					tinyMCE.enterKeyElement = tinyMCE.selectedInstance.getFocusElement();
+
+				// Fix empty elements on return/enter
+				if (tinyMCE.isIE && e.type == "keyup" && e.keyCode == 13) {
+					elm = tinyMCE.enterKeyElement;
+					if (elm) {
+						var re = new RegExp('^HR|IMG|BR$','g'); // Skip these
+						var dre = new RegExp('^H[1-6]$','g'); // Add double on these
+
+						if (!elm.hasChildNodes() && !re.test(elm.nodeName)) {
+							if (dre.test(elm.nodeName))
+								elm.innerHTML = "&nbsp;&nbsp;";
+							else
+								elm.innerHTML = "&nbsp;";
+						}
+					}
+				}
+
+				// Check if it's a position key
+				keys = tinyMCE.posKeyCodes;
+				var posKey = false;
+				for (i=0; i<keys.length; i++) {
+					if (keys[i] == e.keyCode) {
+						posKey = true;
+						break;
+					}
+				}
+
+				// MSIE custom key handling
+				if (tinyMCE.isIE && tinyMCE.settings.custom_undo_redo) {
+					keys = [8, 46]; // Backspace,Delete
+
+					for (i=0; i<keys.length; i++) {
+						if (keys[i] == e.keyCode) {
+							if (e.type == "keyup")
+								tinyMCE.triggerNodeChange(false);
+						}
+					}
+				}
+
+				// If Ctrl key
+				if (e.keyCode == 17)
+					return true;
+
+				// Handle Undo/Redo when typing content
+
+				if (tinyMCE.isGecko) {
+					// Start typing (not a position key or ctrl key, but ctrl+x and ctrl+p is ok)
+					if (!posKey && e.type == "keyup" && !e.ctrlKey || (e.ctrlKey && (e.keyCode == 86 || e.keyCode == 88)))
+						tinyMCE.execCommand("mceStartTyping");
+				} else {
+					// IE seems to be working better with this setting
+					if (!posKey && e.type == "keyup")
+						tinyMCE.execCommand("mceStartTyping");
+				}
+
+				// Store undo bookmark
+				if (e.type == "keydown" && (posKey || e.ctrlKey) && inst)
+					inst.undoBookmark = inst.selection.getBookmark();
+
+				// End typing (position key) or some Ctrl event
+				if (e.type == "keyup" && (posKey || e.ctrlKey))
+					tinyMCE.execCommand("mceEndTyping");
+
+				if (posKey && e.type == "keyup")
+					tinyMCE.triggerNodeChange(false);
+
+				if (tinyMCE.isIE && e.ctrlKey)
+					window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
+			break;
+
+			case "mousedown":
+			case "mouseup":
+			case "click":
+			case "dblclick":
+			case "focus":
+				tinyMCE.hideMenus();
+
+				if (tinyMCE.selectedInstance) {
+					tinyMCE.selectedInstance.switchSettings();
+					tinyMCE.selectedInstance.isFocused = true;
+				}
+
+				// Check instance event trigged on
+				var targetBody = tinyMCE.getParentElement(e.target, "html");
+				for (var instanceName in tinyMCE.instances) {
+					if (!tinyMCE.isInstance(tinyMCE.instances[instanceName]))
+						continue;
+
+					inst = tinyMCE.instances[instanceName];
+
+					// Reset design mode if lost (on everything just in case)
+					inst.autoResetDesignMode();
+
+					// Use HTML element since users might click outside of body element
+					if (inst.getBody().parentNode == targetBody) {
+						inst.select();
+						tinyMCE.selectedElement = e.target;
+						tinyMCE.linkElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "a");
+						tinyMCE.imgElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "img");
+						break;
+					}
+				}
+
+				// Add first bookmark location
+				if (!tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark && (e.type == "mouseup" || e.type == "dblclick"))
+					tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark = tinyMCE.selectedInstance.selection.getBookmark();
+
+				// Reset selected node
+				if (e.type != "focus")
+					tinyMCE.selectedNode = null;
+
+				tinyMCE.triggerNodeChange(false);
+				tinyMCE.execCommand("mceEndTyping");
+
+				if (e.type == "mouseup")
+					tinyMCE.execCommand("mceAddUndoLevel");
+
+				// Just in case
+				if (!tinyMCE.selectedInstance && e.target.editorId)
+					tinyMCE.instances[e.target.editorId].select();
+
+				return false;
+		}
+	},
+
+	getButtonHTML : function(id, lang, img, cmd, ui, val) {
+		var h = '', m, x, io = '';
+
+		cmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + '\'';
+
+		if (typeof(ui) != "undefined" && ui != null)
+			cmd += ',' + ui;
+
+		if (typeof(val) != "undefined" && val != null)
+			cmd += ",'" + val + "'";
+
+		cmd += ');';
+
+		// Patch for IE7 bug with hover out not restoring correctly
+		if (tinyMCE.isRealIE)
+			io = 'onmouseover="tinyMCE.lastHover = this;"';
+
+		// Use tilemaps when enabled and found and never in MSIE since it loads the tile each time from cache if cahce is disabled
+		if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isIE || tinyMCE.isOpera) && (m = this.buttonMap[id]) != null && (tinyMCE.getParam("language") == "en" || img.indexOf('$lang') == -1)) {
+			// Tiled button
+			x = 0 - (m * 20) == 0 ? '0' : 0 - (m * 20);
+			h += '<a id="{$editor_id}_' + id + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" ' + io + ' class="mceTiledButton mceButtonNormal" target="_self">';
+			h += '<img src="{$themeurl}/images/spacer.gif" style="background-position: ' + x + 'px 0" alt="{$'+lang+'}" title="{$' + lang + '}" />';
+			h += '</a>';
+		} else {
+			// Normal button
+			h += '<a id="{$editor_id}_' + id + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" ' + io + ' class="mceButtonNormal" target="_self">';
+			h += '<img src="' + img + '" alt="{$'+lang+'}" title="{$' + lang + '}" />';
+			h += '</a>';
+		}
+
+		return h;
+	},
+
+	getMenuButtonHTML : function(id, lang, img, mcmd, cmd, ui, val) {
+		var h = '', m, x;
+
+		mcmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + mcmd + '\');';
+		cmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + '\'';
+
+		if (typeof(ui) != "undefined" && ui != null)
+			cmd += ',' + ui;
+
+		if (typeof(val) != "undefined" && val != null)
+			cmd += ",'" + val + "'";
+
+		cmd += ');';
+
+		// Use tilemaps when enabled and found and never in MSIE since it loads the tile each time from cache if cahce is disabled
+		if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isIE || tinyMCE.isOpera) && (m = tinyMCE.buttonMap[id]) != null && (tinyMCE.getParam("language") == "en" || img.indexOf('$lang') == -1)) {
+			x = 0 - (m * 20) == 0 ? '0' : 0 - (m * 20);
+
+			if (tinyMCE.isRealIE)
+				h += '<span id="{$editor_id}_' + id + '" class="mceMenuButton" onmouseover="tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover = this;" onmouseout="tinyMCE._menuButtonEvent(\'out\',this);">';
+			else
+				h += '<span id="{$editor_id}_' + id + '" class="mceMenuButton">';
+
+			h += '<a href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" class="mceTiledButton mceMenuButtonNormal" target="_self">';
+			h += '<img src="{$themeurl}/images/spacer.gif" style="width: 20px; height: 20px; background-position: ' + x + 'px 0" title="{$' + lang + '}" /></a>';
+			h += '<a href="javascript:' + mcmd + '" onclick="' + mcmd + 'return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$' + lang + '}" class="mceMenuButton" />';
+			h += '</a></span>';
+		} else {
+			if (tinyMCE.isRealIE)
+				h += '<span id="{$editor_id}_' + id + '" dir="ltr" class="mceMenuButton" onmouseover="tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover = this;" onmouseout="tinyMCE._menuButtonEvent(\'out\',this);">';
+			else
+				h += '<span id="{$editor_id}_' + id + '" dir="ltr" class="mceMenuButton">';
+
+			h += '<a href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" class="mceMenuButtonNormal" target="_self">';
+			h += '<img src="' + img + '" title="{$' + lang + '}" /></a>';
+			h += '<a href="javascript:' + mcmd + '" onclick="' + mcmd + 'return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$' + lang + '}" class="mceMenuButton" />';
+			h += '</a></span>';
+		}
+
+		return h;
+	},
+
+	_menuButtonEvent : function(e, o) {
+		if (o.className == 'mceMenuButtonFocus')
+			return;
+
+		if (e == 'over')
+			o.className = o.className + ' mceMenuHover';
+		else
+			o.className = o.className.replace(/\s.*$/, '');
+	},
+
+	addButtonMap : function(m) {
+		var i, a = m.replace(/\s+/, '').split(',');
+
+		for (i=0; i<a.length; i++)
+			this.buttonMap[a[i]] = i;
+	},
+
+	formSubmit : function(f, p) {
+		var n, inst, found = false;
+
+		if (f.form)
+			f = f.form;
+
+		// Is it a form that has a TinyMCE instance
+		for (n in tinyMCE.instances) {
+			inst = tinyMCE.instances[n];
+
+			if (!tinyMCE.isInstance(inst))
+				continue;
+
+			if (inst.formElement) {
+				if (f == inst.formElement.form) {
+					found = true;
+					inst.isNotDirty = true;
+				}
+			}
+		}
+
+		// Is valid
+		if (found) {
+			tinyMCE.removeTinyMCEFormElements(f);
+			tinyMCE.triggerSave();
+		}
+
+		// Is it patched
+		if (f.mceOldSubmit && p)
+			f.mceOldSubmit();
+	},
+
+	submitPatch : function() {
+		tinyMCE.formSubmit(this, true);
+	},
+
+	onLoad : function() {
+		var r, i, c, mode, trigger, elements, element, settings, elementId, elm;
+		var selector, deselector, elementRefAr, form;
+
+		// Wait for everything to be loaded first
+		if (tinyMCE.settings.strict_loading_mode && this.loadingIndex != -1) {
+			window.setTimeout('tinyMCE.onLoad();', 1);
+			return;
+		}
+
+		if (tinyMCE.isRealIE && window.event.type == "readystatechange" && document.readyState != "complete")
+			return true;
+
+		if (tinyMCE.isLoaded)
+			return true;
+
+		tinyMCE.isLoaded = true;
+
+		// IE produces JS error if TinyMCE is placed in a frame
+		// It seems to have something to do with the selection not beeing
+		// correctly initialized in IE so this hack solves the problem
+		if (tinyMCE.isRealIE && document.body && window.location.href != window.top.location.href) {
+			r = document.body.createTextRange();
+			r.collapse(true);
+			r.select();
+		}
+
+		tinyMCE.dispatchCallback(null, 'onpageload', 'onPageLoad');
+
+		for (c=0; c<tinyMCE.configs.length; c++) {
+			tinyMCE.settings = tinyMCE.configs[c];
+
+			selector = tinyMCE.getParam("editor_selector");
+			deselector = tinyMCE.getParam("editor_deselector");
+			elementRefAr = [];
+
+			// Add submit triggers
+			if (document.forms && tinyMCE.settings.add_form_submit_trigger && !tinyMCE.submitTriggers) {
+				for (i=0; i<document.forms.length; i++) {
+					form = document.forms[i];
+
+					tinyMCE.addEvent(form, "submit", TinyMCE_Engine.prototype.handleEvent);
+					tinyMCE.addEvent(form, "reset", TinyMCE_Engine.prototype.handleEvent);
+					tinyMCE.submitTriggers = true; // Do it only once
+
+					// Patch the form.submit function
+					if (tinyMCE.settings.submit_patch) {
+						try {
+							form.mceOldSubmit = form.submit;
+							form.submit = TinyMCE_Engine.prototype.submitPatch;
+						} catch (e) {
+							// Do nothing
+						}
+					}
+				}
+			}
+
+			// Add editor instances based on mode
+			mode = tinyMCE.settings.mode;
+			switch (mode) {
+				case "exact":
+					elements = tinyMCE.getParam('elements', '', true, ',');
+
+					for (i=0; i<elements.length; i++) {
+						element = tinyMCE._getElementById(elements[i]);
+						trigger = element ? element.getAttribute(tinyMCE.settings.textarea_trigger) : "";
+
+						if (new RegExp('\\b' + deselector + '\\b').test(tinyMCE.getAttrib(element, "class")))
+							continue;
+
+						if (trigger == "false")
+							continue;
+
+						if ((tinyMCE.settings.ask || tinyMCE.settings.convert_on_click) && element) {
+							elementRefAr[elementRefAr.length] = element;
+							continue;
+						}
+
+						if (element)
+							tinyMCE.addMCEControl(element, elements[i]);
+					}
+				break;
+
+				case "specific_textareas":
+				case "textareas":
+					elements = document.getElementsByTagName("textarea");
+
+					for (i=0; i<elements.length; i++) {
+						elm = elements.item(i);
+						trigger = elm.getAttribute(tinyMCE.settings.textarea_trigger);
+
+						if (selector !== '' && !new RegExp('\\b' + selector + '\\b').test(tinyMCE.getAttrib(elm, "class")))
+							continue;
+
+						if (selector !== '')
+							trigger = selector !== '' ? "true" : "";
+
+						if (new RegExp('\\b' + deselector + '\\b').test(tinyMCE.getAttrib(elm, "class")))
+							continue;
+
+						if ((mode == "specific_textareas" && trigger == "true") || (mode == "textareas" && trigger != "false"))
+							elementRefAr[elementRefAr.length] = elm;
+					}
+				break;
+			}
+
+			for (i=0; i<elementRefAr.length; i++) {
+				element = elementRefAr[i];
+				elementId = element.name ? element.name : element.id;
+
+				if (tinyMCE.settings.ask || tinyMCE.settings.convert_on_click) {
+					// Focus breaks in Mozilla
+					if (tinyMCE.isGecko) {
+						settings = tinyMCE.settings;
+
+						tinyMCE.addEvent(element, "focus", function (e) {window.setTimeout(function() {TinyMCE_Engine.prototype.confirmAdd(e, settings);}, 10);});
+
+						if (element.nodeName != "TEXTAREA" && element.nodeName != "INPUT")
+							tinyMCE.addEvent(element, "click", function (e) {window.setTimeout(function() {TinyMCE_Engine.prototype.confirmAdd(e, settings);}, 10);});
+						// tinyMCE.addEvent(element, "mouseover", function (e) {window.setTimeout(function() {TinyMCE_Engine.prototype.confirmAdd(e, settings);}, 10);});
+					} else {
+						settings = tinyMCE.settings;
+
+						tinyMCE.addEvent(element, "focus", function () { TinyMCE_Engine.prototype.confirmAdd(null, settings); });
+						tinyMCE.addEvent(element, "click", function () { TinyMCE_Engine.prototype.confirmAdd(null, settings); });
+						// tinyMCE.addEvent(element, "mouseenter", function () { TinyMCE_Engine.prototype.confirmAdd(null, settings); });
+					}
+				} else
+					tinyMCE.addMCEControl(element, elementId);
+			}
+
+			// Handle auto focus
+			if (tinyMCE.settings.auto_focus) {
+				window.setTimeout(function () {
+					var inst = tinyMCE.getInstanceById(tinyMCE.settings.auto_focus);
+					inst.selection.selectNode(inst.getBody(), true, true);
+					inst.contentWindow.focus();
+				}, 100);
+			}
+
+			tinyMCE.dispatchCallback(null, 'oninit', 'onInit');
+		}
+	},
+
+	isInstance : function(o) {
+		return o != null && typeof(o) == "object" && o.isTinyMCE_Control;
+	},
+
+	getParam : function(name, default_value, strip_whitespace, split_chr) {
+		var i, outArray, value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
+
+		// Fix bool values
+		if (value == "true" || value == "false")
+			return (value == "true");
+
+		if (strip_whitespace)
+			value = tinyMCE.regexpReplace(value, "[ \t\r\n]", "");
+
+		if (typeof(split_chr) != "undefined" && split_chr != null) {
+			value = value.split(split_chr);
+			outArray = [];
+
+			for (i=0; i<value.length; i++) {
+				if (value[i] && value[i] !== '')
+					outArray[outArray.length] = value[i];
+			}
+
+			value = outArray;
+		}
+
+		return value;
+	},
+
+	getLang : function(name, default_value, parse_entities, va) {
+		var v = (typeof(tinyMCELang[name]) == "undefined") ? default_value : tinyMCELang[name], n;
+
+		if (parse_entities)
+			v = tinyMCE.entityDecode(v);
+
+		if (va) {
+			for (n in va)
+				v = this.replaceVar(v, n, va[n]);
+		}
+
+		return v;
+	},
+
+	entityDecode : function(s) {
+		var e = document.createElement("div");
+
+		e.innerHTML = s;
+
+		return !e.firstChild ? s : e.firstChild.nodeValue;
+	},
+
+	addToLang : function(prefix, ar) {
+		var k;
+
+		for (k in ar) {
+			if (typeof(ar[k]) == 'function')
+				continue;
+
+			tinyMCELang[(k.indexOf('lang_') == -1 ? 'lang_' : '') + (prefix !== '' ? (prefix + "_") : '') + k] = ar[k];
+		}
+
+		this.loadNextScript();
+	},
+
+	triggerNodeChange : function(focus, setup_content) {
+		var elm, inst, editorId, undoIndex = -1, undoLevels = -1, doc, anySelection = false, st;
+
+		if (tinyMCE.selectedInstance) {
+			inst = tinyMCE.selectedInstance;
+			elm = (typeof(setup_content) != "undefined" && setup_content) ? tinyMCE.selectedElement : inst.getFocusElement();
+
+/*			if (elm == inst.lastTriggerEl)
+				return;
+
+			inst.lastTriggerEl = elm;*/
+
+			editorId = inst.editorId;
+			st = inst.selection.getSelectedText();
+
+			if (tinyMCE.settings.auto_resize)
+				inst.resizeToContent();
+
+			if (setup_content && tinyMCE.isGecko && inst.isHidden())
+				elm = inst.getBody();
+
+			inst.switchSettings();
+
+			if (tinyMCE.selectedElement)
+				anySelection = (tinyMCE.selectedElement.nodeName.toLowerCase() == "img") || (st && st.length > 0);
+
+			if (tinyMCE.settings.custom_undo_redo) {
+				undoIndex = inst.undoRedo.undoIndex;
+				undoLevels = inst.undoRedo.undoLevels.length;
+			}
+
+			tinyMCE.dispatchCallback(inst, 'handle_node_change_callback', 'handleNodeChange', editorId, elm, undoIndex, undoLevels, inst.visualAid, anySelection, setup_content);
+		}
+
+		if (this.selectedInstance && (typeof(focus) == "undefined" || focus))
+			this.selectedInstance.contentWindow.focus();
+	},
+
+	_customCleanup : function(inst, type, content) {
+		var pl, po, i, customCleanup;
+
+		// Call custom cleanup
+		customCleanup = tinyMCE.settings.cleanup_callback;
+		if (customCleanup != '')
+			content = tinyMCE.resolveDots(tinyMCE.settings.cleanup_callback, window)(type, content, inst);
+
+		// Trigger theme cleanup
+		po = tinyMCE.themes[tinyMCE.settings.theme];
+		if (po && po.cleanup)
+			content = po.cleanup(type, content, inst);
+
+		// Trigger plugin cleanups
+		pl = inst.plugins;
+		for (i=0; i<pl.length; i++) {
+			po = tinyMCE.plugins[pl[i]];
+
+			if (po && po.cleanup)
+				content = po.cleanup(type, content, inst);
+		}
+
+		return content;
+	},
+
+	setContent : function(h) {
+		if (tinyMCE.selectedInstance) {
+			tinyMCE.selectedInstance.execCommand('mceSetContent', false, h);
+			tinyMCE.selectedInstance.repaint();
+		}
+	},
+
+	importThemeLanguagePack : function(name) {
+		if (typeof(name) == "undefined")
+			name = tinyMCE.settings.theme;
+
+		tinyMCE.loadScript(tinyMCE.baseURL + '/themes/' + name + '/langs/' + tinyMCE.settings.language + '.js');
+	},
+
+	importPluginLanguagePack : function(name) {
+		var b = tinyMCE.baseURL + '/plugins/' + name;
+
+		if (this.plugins[name])
+			b = this.plugins[name].baseURL;
+
+		tinyMCE.loadScript(b + '/langs/' + tinyMCE.settings.language +  '.js');
+	},
+
+	applyTemplate : function(h, ag) {
+		return h.replace(new RegExp('\\{\\$([a-z0-9_]+)\\}', 'gi'), function(m, s) {
+			if (s.indexOf('lang_') == 0 && tinyMCELang[s])
+				return tinyMCELang[s];
+
+			if (ag && ag[s])
+				return ag[s];
+
+			if (tinyMCE.settings[s])
+				return tinyMCE.settings[s];
+
+			if (m == 'themeurl')
+				return tinyMCE.themeURL;
+
+			return m;
+		});
+	},
+
+	replaceVar : function(h, r, v) {
+		return h.replace(new RegExp('{\\\$' + r + '}', 'g'), v);
+	},
+
+	openWindow : function(template, args) {
+		var html, width, height, x, y, resizable, scrollbars, url, name, win, modal, features;
+
+		args = !args ? {} : args;
+
+		args.mce_template_file = template.file;
+		args.mce_width = template.width;
+		args.mce_height = template.height;
+		tinyMCE.windowArgs = args;
+
+		html = template.html;
+		if (!(width = parseInt(template.width)))
+			width = 320;
+
+		if (!(height = parseInt(template.height)))
+			height = 200;
+
+		// Add to height in M$ due to SP2 WHY DON'T YOU GUYS IMPLEMENT innerWidth of windows!!
+		if (tinyMCE.isIE)
+			height += 40;
+		else
+			height += 20;
+
+		x = parseInt(screen.width / 2.0) - (width / 2.0);
+		y = parseInt(screen.height / 2.0) - (height / 2.0);
+
+		resizable = (args && args.resizable) ? args.resizable : "no";
+		scrollbars = (args && args.scrollbars) ? args.scrollbars : "no";
+
+		if (template.file.charAt(0) != '/' && template.file.indexOf('://') == -1)
+			url = tinyMCE.baseURL + "/themes/" + tinyMCE.getParam("theme") + "/" + template.file;
+		else
+			url = template.file;
+
+		// Replace all args as variables in URL
+		for (name in args) {
+			if (typeof(args[name]) == 'function')
+				continue;
+
+			url = tinyMCE.replaceVar(url, name, escape(args[name]));
+		}
+
+		if (html) {
+			html = tinyMCE.replaceVar(html, "css", this.settings.popups_css);
+			html = tinyMCE.applyTemplate(html, args);
+
+			win = window.open("", "mcePopup" + new Date().getTime(), "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=yes,minimizable=" + resizable + ",modal=yes,width=" + width + ",height=" + height + ",resizable=" + resizable);
+			if (win == null) {
+				alert(tinyMCELang.lang_popup_blocked);
+				return;
+			}
+
+			win.document.write(html);
+			win.document.close();
+			win.resizeTo(width, height);
+			win.focus();
+		} else {
+			if ((tinyMCE.isRealIE) && resizable != 'yes' && tinyMCE.settings.dialog_type == "modal") {
+				height += 10;
+
+				features = "resizable:" + resizable + ";scroll:" + scrollbars + ";status:yes;center:yes;help:no;dialogWidth:" + width + "px;dialogHeight:" + height + "px;";
+
+				window.showModalDialog(url, window, features);
+			} else {
+				modal = (resizable == "yes") ? "no" : "yes";
+
+				if (tinyMCE.isGecko && tinyMCE.isMac)
+					modal = "no";
+
+				if (template.close_previous != "no")
+					try {tinyMCE.lastWindow.close();} catch (ex) {}
+
+				win = window.open(url, "mcePopup" + new Date().getTime(), "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=" + modal + ",minimizable=" + resizable + ",modal=" + modal + ",width=" + width + ",height=" + height + ",resizable=" + resizable);
+				if (win == null) {
+					alert(tinyMCELang.lang_popup_blocked);
+					return;
+				}
+
+				if (template.close_previous != "no")
+					tinyMCE.lastWindow = win;
+
+				try {
+					win.resizeTo(width, height);
+				} catch(e) {
+					// Ignore
+				}
+
+				// Make it bigger if statusbar is forced
+				if (tinyMCE.isGecko) {
+					if (win.document.defaultView.statusbar.visible)
+						win.resizeBy(0, tinyMCE.isMac ? 10 : 24);
+				}
+
+				win.focus();
+			}
+		}
+	},
+
+	closeWindow : function(win) {
+		win.close();
+	},
+
+	getVisualAidClass : function(class_name, state) {
+		var i, classNames, ar, className, aidClass = tinyMCE.settings.visual_table_class;
+
+		if (typeof(state) == "undefined")
+			state = tinyMCE.settings.visual;
+
+		// Split
+		classNames = [];
+		ar = class_name.split(' ');
+		for (i=0; i<ar.length; i++) {
+			if (ar[i] == aidClass)
+				ar[i] = "";
+
+			if (ar[i] !== '')
+				classNames[classNames.length] = ar[i];
+		}
+
+		if (state)
+			classNames[classNames.length] = aidClass;
+
+		// Glue
+		className = "";
+		for (i=0; i<classNames.length; i++) {
+			if (i > 0)
+				className += " ";
+
+			className += classNames[i];
+		}
+
+		return className;
+	},
+
+	handleVisualAid : function(el, deep, state, inst, skip_dispatch) {
+		var i, x, y, tableElement, anchorName, oldW, oldH, bo, cn;
+
+		if (!el)
+			return;
+
+		if (!skip_dispatch)
+			tinyMCE.dispatchCallback(inst, 'handle_visual_aid_callback', 'handleVisualAid', el, deep, state, inst);
+
+		tableElement = null;
+
+		switch (el.nodeName) {
+			case "TABLE":
+				oldW = el.style.width;
+				oldH = el.style.height;
+				bo = tinyMCE.getAttrib(el, "border");
+
+				bo = bo == '' || bo == "0" ? true : false;
+
+				tinyMCE.setAttrib(el, "class", tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el, "class"), state && bo));
+
+				el.style.width = oldW;
+				el.style.height = oldH;
+
+				for (y=0; y<el.rows.length; y++) {
+					for (x=0; x<el.rows[y].cells.length; x++) {
+						cn = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el.rows[y].cells[x], "class"), state && bo);
+						tinyMCE.setAttrib(el.rows[y].cells[x], "class", cn);
+					}
+				}
+
+				break;
+
+			case "A":
+				anchorName = tinyMCE.getAttrib(el, "name");
+
+				if (anchorName !== '' && state) {
+					el.title = anchorName;
+					tinyMCE.addCSSClass(el, 'mceItemAnchor');
+				} else if (anchorName !== '' && !state)
+					el.className = '';
+
+				break;
+		}
+
+		if (deep && el.hasChildNodes()) {
+			for (i=0; i<el.childNodes.length; i++)
+				tinyMCE.handleVisualAid(el.childNodes[i], deep, state, inst, true);
+		}
+	},
+
+	fixGeckoBaseHREFBug : function(m, e, h) {
+		var xsrc, xhref;
+
+		if (tinyMCE.isGecko) {
+			if (m == 1) {
+				h = h.replace(/\ssrc=/gi, " mce_tsrc=");
+				h = h.replace(/\shref=/gi, " mce_thref=");
+
+				return h;
+			} else {
+				// Why bother if there is no src or href broken
+				if (!new RegExp('(src|href)=', 'g').test(h))
+					return h;
+
+				// Restore src and href that gets messed up by Gecko
+				tinyMCE.selectElements(e, 'A,IMG,SELECT,AREA,IFRAME,BASE,INPUT,SCRIPT,EMBED,OBJECT,LINK', function (n) {
+					xsrc = tinyMCE.getAttrib(n, "mce_tsrc");
+					xhref = tinyMCE.getAttrib(n, "mce_thref");
+
+					if (xsrc !== '') {
+						try {
+							n.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, xsrc);
+						} catch (e) {
+							// Ignore, Firefox cast exception if local file wasn't found
+						}
+
+						n.removeAttribute("mce_tsrc");
+					}
+
+					if (xhref !== '') {
+						try {
+							n.href = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, xhref);
+						} catch (e) {
+							// Ignore, Firefox cast exception if local file wasn't found
+						}
+
+						n.removeAttribute("mce_thref");
+					}
+
+					return false;
+				});
+
+				// Restore text/comment nodes
+				tinyMCE.selectNodes(e, function(n) {
+					if (n.nodeType == 3 || n.nodeType == 8) {
+						n.nodeValue = n.nodeValue.replace(/\smce_tsrc=/gi, " src=");
+						n.nodeValue = n.nodeValue.replace(/\smce_thref=/gi, " href=");
+					}
+
+					return false;
+				});
+			}
+		}
+
+		return h;
+	},
+
+	_setHTML : function(doc, html_content) {
+		var i, html, paras, node;
+
+		// Force closed anchors open
+		//html_content = html_content.replace(new RegExp('<a(.*?)/>', 'gi'), '<a$1></a>');
+
+		html_content = tinyMCE.cleanupHTMLCode(html_content);
+
+		// Try innerHTML if it fails use pasteHTML in MSIE
+		try {
+			tinyMCE.setInnerHTML(doc.body, html_content);
+		} catch (e) {
+			if (this.isMSIE)
+				doc.body.createTextRange().pasteHTML(html_content);
+		}
+
+		// Content duplication bug fix
+		if (tinyMCE.isIE && tinyMCE.settings.fix_content_duplication) {
+			// Remove P elements in P elements
+			paras = doc.getElementsByTagName("P");
+			for (i=0; i<paras.length; i++) {
+				node = paras[i];
+
+				while ((node = node.parentNode) != null) {
+					if (node.nodeName == "P")
+						node.outerHTML = node.innerHTML;
+				}
+			}
+
+			// Content duplication bug fix (Seems to be word crap)
+			html = doc.body.innerHTML;
+
+			// Always set the htmlText output
+			tinyMCE.setInnerHTML(doc.body, html);
+		}
+
+		tinyMCE.cleanupAnchors(doc);
+
+		if (tinyMCE.getParam("convert_fonts_to_spans"))
+			tinyMCE.convertSpansToFonts(doc);
+	},
+
+	getEditorId : function(form_element) {
+		var inst = this.getInstanceById(form_element);
+
+		if (!inst)
+			return null;
+
+		return inst.editorId;
+	},
+
+	getInstanceById : function(editor_id) {
+		var inst = this.instances[editor_id], n;
+
+		if (!inst) {
+			for (n in tinyMCE.instances) {
+				inst = tinyMCE.instances[n];
+
+				if (!tinyMCE.isInstance(inst))
+					continue;
+
+				if (inst.formTargetElementId == editor_id)
+					return inst;
+			}
+		} else
+			return inst;
+
+		return null;
+	},
+
+	queryInstanceCommandValue : function(editor_id, command) {
+		var inst = tinyMCE.getInstanceById(editor_id);
+
+		if (inst)
+			return inst.queryCommandValue(command);
+
+		return false;
+	},
+
+	queryInstanceCommandState : function(editor_id, command) {
+		var inst = tinyMCE.getInstanceById(editor_id);
+
+		if (inst)
+			return inst.queryCommandState(command);
+
+		return null;
+	},
+
+	setWindowArg : function(n, v) {
+		this.windowArgs[n] = v;
+	},
+
+	getWindowArg : function(n, d) {
+		return (typeof(this.windowArgs[n]) == "undefined") ? d : this.windowArgs[n];
+	},
+
+	getCSSClasses : function(editor_id, doc) {
+		var i, c, x, rule, styles, rules, csses, selectorText, inst = tinyMCE.getInstanceById(editor_id);
+		var cssClass, addClass, p;
+
+		if (!inst)
+			inst = tinyMCE.selectedInstance;
+
+		if (!inst)
+			return [];
+
+		if (!doc)
+			doc = inst.getDoc();
+
+		// Is cached, use that
+		if (inst && inst.cssClasses.length > 0)
+			return inst.cssClasses;
+
+		if (!doc)
+			return;
+
+		styles = doc.styleSheets;
+
+		if (styles && styles.length > 0) {
+			for (x=0; x<styles.length; x++) {
+				csses = null;
+
+				try {
+					csses = tinyMCE.isIE ? doc.styleSheets(x).rules : styles[x].cssRules;
+				} catch(e) {
+					// Just ignore any errors I know this is ugly!!
+				}
+	
+				if (!csses)
+					return [];
+
+				for (i=0; i<csses.length; i++) {
+					selectorText = csses[i].selectorText;
+
+					// Can be multiple rules per selector
+					if (selectorText) {
+						rules = selectorText.split(',');
+						for (c=0; c<rules.length; c++) {
+							rule = rules[c];
+
+							// Strip spaces between selectors
+							while (rule.indexOf(' ') == 0)
+								rule = rule.substring(1);
+
+							// Invalid rule
+							if (rule.indexOf(' ') != -1 || rule.indexOf(':') != -1 || rule.indexOf('mceItem') != -1)
+								continue;
+
+							if (rule.indexOf(tinyMCE.settings.visual_table_class) != -1 || rule.indexOf('mceEditable') != -1 || rule.indexOf('mceNonEditable') != -1)
+								continue;
+
+							// Is class rule
+							if (rule.indexOf('.') != -1) {
+								cssClass = rule.substring(rule.indexOf('.') + 1);
+								addClass = true;
+
+								for (p=0; p<inst.cssClasses.length && addClass; p++) {
+									if (inst.cssClasses[p] == cssClass)
+										addClass = false;
+								}
+
+								if (addClass)
+									inst.cssClasses[inst.cssClasses.length] = cssClass;
+							}
+						}
+					}
+				}
+			}
+		}
+
+		return inst.cssClasses;
+	},
+
+	regexpReplace : function(in_str, reg_exp, replace_str, opts) {
+		var re;
+
+		if (in_str == null)
+			return in_str;
+
+		if (typeof(opts) == "undefined")
+			opts = 'g';
+
+		re = new RegExp(reg_exp, opts);
+
+		return in_str.replace(re, replace_str);
+	},
+
+	trim : function(s) {
+		return s.replace(/^\s*|\s*$/g, "");
+	},
+
+	cleanupEventStr : function(s) {
+		s = "" + s;
+		s = s.replace('function anonymous()\n{\n', '');
+		s = s.replace('\n}', '');
+		s = s.replace(/^return true;/gi, ''); // Remove event blocker
+
+		return s;
+	},
+
+	getControlHTML : function(c) {
+		var i, l, n, o, v, rtl = tinyMCE.getLang('lang_dir') == 'rtl';
+
+		l = tinyMCE.plugins;
+		for (n in l) {
+			o = l[n];
+
+			if (o.getControlHTML && (v = o.getControlHTML(c)) !== '') {
+				if (rtl)
+					return '<span dir="rtl">' + tinyMCE.replaceVar(v, "pluginurl", o.baseURL) + '</span>';
+
+				return tinyMCE.replaceVar(v, "pluginurl", o.baseURL);
+			}
+		}
+
+		o = tinyMCE.themes[tinyMCE.settings.theme];
+		if (o.getControlHTML && (v = o.getControlHTML(c)) !== '') {
+			if (rtl)
+				return '<span dir="rtl">' + v + '</span>';
+
+			return v;
+		}
+
+		return '';
+	},
+
+	evalFunc : function(f, idx, a, o) {
+		o = !o ? window : o;
+		f = typeof(f) == 'function' ? f : o[f];
+
+		return f.apply(o, Array.prototype.slice.call(a, idx));
+	},
+
+	dispatchCallback : function(i, p, n) {
+		return this.callFunc(i, p, n, 0, this.dispatchCallback.arguments);
+	},
+
+	executeCallback : function(i, p, n) {
+		return this.callFunc(i, p, n, 1, this.executeCallback.arguments);
+	},
+
+	execCommandCallback : function(i, p, n) {
+		return this.callFunc(i, p, n, 2, this.execCommandCallback.arguments);
+	},
+
+	callFunc : function(ins, p, n, m, a) {
+		var l, i, on, o, s, v;
+
+		s = m == 2;
+
+		l = tinyMCE.getParam(p, '');
+
+		if (l !== '' && (v = tinyMCE.evalFunc(l, 3, a)) == s && m > 0)
+			return true;
+
+		if (ins != null) {
+			for (i=0, l = ins.plugins; i<l.length; i++) {
+				o = tinyMCE.plugins[l[i]];
+
+				if (o[n] && (v = tinyMCE.evalFunc(n, 3, a, o)) == s && m > 0)
+					return true;
+			}
+		}
+
+		l = tinyMCE.themes;
+		for (on in l) {
+			o = l[on];
+
+			if (o[n] && (v = tinyMCE.evalFunc(n, 3, a, o)) == s && m > 0)
+				return true;
+		}
+
+		return false;
+	},
+
+	resolveDots : function(s, o) {
+		var i;
+
+		if (typeof(s) == 'string') {
+			for (i=0, s=s.split('.'); i<s.length; i++)
+				o = o[s[i]];
+		} else
+			o = s;
+
+		return o;
+	},
+
+	xmlEncode : function(s) {
+		return s ? ('' + s).replace(this.xmlEncodeRe, function (c, b) {
+			switch (c) {
+				case '&':
+					return '&amp;';
+
+				case '"':
+					return '&quot;';
+
+				case '<':
+					return '&lt;';
+
+				case '>':
+					return '&gt;';
+			}
+
+			return c;
+		}) : s;
+	},
+
+	add : function(c, m) {
+		var n;
+
+		for (n in m)
+			c.prototype[n] = m[n];
+	},
+
+	extend : function(p, np) {
+		var o = {}, n;
+
+		o.parent = p;
+
+		for (n in p)
+			o[n] = p[n];
+
+		for (n in np)
+			o[n] = np[n];
+
+		return o;
+	},
+
+	hideMenus : function() {
+		var e = tinyMCE.lastSelectedMenuBtn;
+
+		if (tinyMCE.lastMenu) {
+			tinyMCE.lastMenu.hide();
+			tinyMCE.lastMenu = null;
+		}
+
+		if (e) {
+			tinyMCE.switchClass(e, tinyMCE.lastMenuBtnClass);
+			tinyMCE.lastSelectedMenuBtn = null;
+		}
+	}
+
+	};
+
+// Global instances
+var TinyMCE = TinyMCE_Engine; // Compatiblity with gzip compressors
+var tinyMCE = new TinyMCE_Engine();
+var tinyMCELang = {};
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_Control.class.js */
+
+function TinyMCE_Control(settings) {
+	var t, i, tos, fu, p, x, fn, fu, pn, s = settings;
+
+	this.undoRedoLevel = true;
+	this.isTinyMCE_Control = true;
+
+	// Default settings
+	this.enabled = true;
+	this.settings = s;
+	this.settings.theme = tinyMCE.getParam("theme", "default");
+	this.settings.width = tinyMCE.getParam("width", -1);
+	this.settings.height = tinyMCE.getParam("height", -1);
+	this.selection = new TinyMCE_Selection(this);
+	this.undoRedo = new TinyMCE_UndoRedo(this);
+	this.cleanup = new TinyMCE_Cleanup();
+	this.shortcuts = [];
+	this.hasMouseMoved = false;
+	this.foreColor = this.backColor = "#999999";
+	this.data = {};
+	this.cssClasses = [];
+
+	this.cleanup.init({
+		valid_elements : s.valid_elements,
+		extended_valid_elements : s.extended_valid_elements,
+		valid_child_elements : s.valid_child_elements,
+		entities : s.entities,
+		entity_encoding : s.entity_encoding,
+		debug : s.cleanup_debug,
+		indent : s.apply_source_formatting,
+		invalid_elements : s.invalid_elements,
+		verify_html : s.verify_html,
+		fix_content_duplication : s.fix_content_duplication,
+		convert_fonts_to_spans : s.convert_fonts_to_spans
+	});
+
+	// Wrap old theme
+	t = this.settings.theme;
+	if (!tinyMCE.hasTheme(t)) {
+		fn = tinyMCE.callbacks;
+		tos = {};
+
+		for (i=0; i<fn.length; i++) {
+			if ((fu = window['TinyMCE_' + t + "_" + fn[i]]))
+				tos[fn[i]] = fu;
+		}
+
+		tinyMCE.addTheme(t, tos);
+	}
+
+	// Wrap old plugins
+	this.plugins = [];
+	p = tinyMCE.getParam('plugins', '', true, ',');
+	if (p.length > 0) {
+		for (i=0; i<p.length; i++) {
+			pn = p[i];
+
+			if (pn.charAt(0) == '-')
+				pn = pn.substring(1);
+
+			if (!tinyMCE.hasPlugin(pn)) {
+				fn = tinyMCE.callbacks;
+				tos = {};
+
+				for (x=0; x<fn.length; x++) {
+					if ((fu = window['TinyMCE_' + pn + "_" + fn[x]]))
+						tos[fn[x]] = fu;
+				}
+
+				tinyMCE.addPlugin(pn, tos);
+			}
+
+			this.plugins[this.plugins.length] = pn; 
+		}
+	}
+};
+
+TinyMCE_Control.prototype = {
+	selection : null,
+
+	settings : null,
+
+	cleanup : null,
+
+	getData : function(na) {
+		var o = this.data[na];
+
+		if (!o)
+			o = this.data[na] = {};
+
+		return o;
+	},
+
+	hasPlugin : function(n) {
+		var i;
+
+		for (i=0; i<this.plugins.length; i++) {
+			if (this.plugins[i] == n)
+				return true;
+		}
+
+		return false;
+	},
+
+	addPlugin : function(n, p) {
+		if (!this.hasPlugin(n)) {
+			tinyMCE.addPlugin(n, p);
+			this.plugins[this.plugins.length] = n;
+		}
+	},
+
+	repaint : function() {
+		var s, b, ex;
+
+		if (tinyMCE.isRealIE)
+			return;
+
+		try {
+			s = this.selection;
+			b = s.getBookmark(true);
+			this.getBody().style.display = 'none';
+			this.getDoc().execCommand('selectall', false, null);
+			this.getSel().collapseToStart();
+			this.getBody().style.display = 'block';
+			s.moveToBookmark(b);
+		} catch (ex) {
+			// Ignore
+		}
+	},
+
+	switchSettings : function() {
+		if (tinyMCE.configs.length > 1 && tinyMCE.currentConfig != this.settings.index) {
+			tinyMCE.settings = this.settings;
+			tinyMCE.currentConfig = this.settings.index;
+		}
+	},
+
+	select : function() {
+		var oldInst = tinyMCE.selectedInstance;
+
+		if (oldInst != this) {
+			if (oldInst)
+				oldInst.execCommand('mceEndTyping');
+
+			tinyMCE.dispatchCallback(this, 'select_instance_callback', 'selectInstance', this, oldInst);
+			tinyMCE.selectedInstance = this;
+		}
+	},
+
+	getBody : function() {
+		return this.contentBody ? this.contentBody : this.getDoc().body;
+	},
+
+	getDoc : function() {
+//		return this.contentDocument ? this.contentDocument : this.contentWindow.document; // Removed due to IE 5.5 ?
+		return this.contentWindow.document;
+	},
+
+	getWin : function() {
+		return this.contentWindow;
+	},
+
+	getContainerWin : function() {
+		return this.containerWindow ? this.containerWindow : window;
+	},
+
+	getViewPort : function() {
+		return tinyMCE.getViewPort(this.getWin());
+	},
+
+	getParentNode : function(n, f) {
+		return tinyMCE.getParentNode(n, f, this.getBody());
+	},
+
+	getParentElement : function(n, na, f) {
+		return tinyMCE.getParentElement(n, na, f, this.getBody());
+	},
+
+	getParentBlockElement : function(n) {
+		return tinyMCE.getParentBlockElement(n, this.getBody());
+	},
+
+	resizeToContent : function() {
+		var d = this.getDoc(), b = d.body, de = d.documentElement;
+
+		this.iframeElement.style.height = (tinyMCE.isRealIE) ? b.scrollHeight : de.offsetHeight + 'px';
+	},
+
+	addShortcut : function(m, k, d, cmd, ui, va) {
+		var n = typeof(k) == "number", ie = tinyMCE.isIE, c, sc, i, scl = this.shortcuts;
+
+		if (!tinyMCE.getParam('custom_shortcuts'))
+			return false;
+
+		m = m.toLowerCase();
+		k = ie && !n ? k.toUpperCase() : k;
+		c = n ? null : k.charCodeAt(0);
+		d = d && d.indexOf('lang_') == 0 ? tinyMCE.getLang(d) : d;
+
+		sc = {
+			alt : m.indexOf('alt') != -1,
+			ctrl : m.indexOf('ctrl') != -1,
+			shift : m.indexOf('shift') != -1,
+			charCode : c,
+			keyCode : n ? k : (ie ? c : null),
+			desc : d,
+			cmd : cmd,
+			ui : ui,
+			val : va
+		};
+
+		for (i=0; i<scl.length; i++) {
+			if (sc.alt == scl[i].alt && sc.ctrl == scl[i].ctrl && sc.shift == scl[i].shift
+				&& sc.charCode == scl[i].charCode && sc.keyCode == scl[i].keyCode) {
+				return false;
+			}
+		}
+
+		scl[scl.length] = sc;
+
+		return true;
+	},
+
+	handleShortcut : function(e) {
+		var i, s, o;
+
+		// Normal key press, then ignore it
+		if (!e.altKey && !e.ctrlKey)
+			return false;
+
+		s = this.shortcuts;
+
+		for (i=0; i<s.length; i++) {
+			o = s[i];
+
+			if (o.alt == e.altKey && o.ctrl == e.ctrlKey && (o.keyCode == e.keyCode || o.charCode == e.charCode)) {
+				if (o.cmd && (e.type == "keydown" || (e.type == "keypress" && !tinyMCE.isOpera)))
+					tinyMCE.execCommand(o.cmd, o.ui, o.val);
+
+				tinyMCE.cancelEvent(e);
+				return true;
+			}
+		}
+
+		return false;
+	},
+
+	autoResetDesignMode : function() {
+		// Add fix for tab/style.display none/block problems in Gecko
+		if (!tinyMCE.isIE && this.isHidden() && tinyMCE.getParam('auto_reset_designmode'))
+			eval('try { this.getDoc().designMode = "On"; this.useCSS = false; } catch(e) {}');
+	},
+
+	isHidden : function() {
+		var s;
+
+		if (tinyMCE.isIE)
+			return false;
+
+		s = this.getSel();
+
+		// Weird, wheres that cursor selection?
+		return (!s || !s.rangeCount || s.rangeCount == 0);
+	},
+
+	isDirty : function() {
+		// Is content modified and not in a submit procedure
+		return tinyMCE.trim(this.startContent) != tinyMCE.trim(this.getBody().innerHTML) && !this.isNotDirty;
+	},
+
+	_mergeElements : function(scmd, pa, ch, override) {
+		var st, stc, className, n;
+
+		if (scmd == "removeformat") {
+			pa.className = "";
+			pa.style.cssText = "";
+			ch.className = "";
+			ch.style.cssText = "";
+			return;
+		}
+
+		st = tinyMCE.parseStyle(tinyMCE.getAttrib(pa, "style"));
+		stc = tinyMCE.parseStyle(tinyMCE.getAttrib(ch, "style"));
+		className = tinyMCE.getAttrib(pa, "class");
+
+		// Removed class adding due to bug #1478272
+		className = tinyMCE.getAttrib(ch, "class");
+
+		if (override) {
+			for (n in st) {
+				if (typeof(st[n]) == 'function')
+					continue;
+
+				stc[n] = st[n];
+			}
+		} else {
+			for (n in stc) {
+				if (typeof(stc[n]) == 'function')
+					continue;
+
+				st[n] = stc[n];
+			}
+		}
+
+		tinyMCE.setAttrib(pa, "style", tinyMCE.serializeStyle(st));
+		tinyMCE.setAttrib(pa, "class", tinyMCE.trim(className));
+		ch.className = "";
+		ch.style.cssText = "";
+		ch.removeAttribute("class");
+		ch.removeAttribute("style");
+	},
+
+	_fixRootBlocks : function() {
+		var rb, b, ne, be, nx, bm;
+
+		rb = tinyMCE.getParam('forced_root_block');
+		if (!rb)
+			return;
+
+		b = this.getBody();
+		ne = b.firstChild;
+
+		while (ne) {
+			nx = ne.nextSibling;
+
+			// If text node or inline element wrap it in a block element
+			if (ne.nodeType == 3 || !tinyMCE.blockRegExp.test(ne.nodeName)) {
+				if (!bm)
+					bm = this.selection.getBookmark();
+
+				if (!be) {
+					be = this.getDoc().createElement(rb);
+					be.appendChild(ne.cloneNode(true));
+					b.replaceChild(be, ne);
+				} else {
+					be.appendChild(ne.cloneNode(true));
+					b.removeChild(ne);
+				}
+			} else
+				be = null;
+
+			ne = nx;
+		}
+
+		if (bm)
+			this.selection.moveToBookmark(bm);
+	},
+
+	_fixTrailingNbsp : function() {
+		var s = this.selection, e = s.getFocusElement(), bm, v;
+
+		if (e && tinyMCE.blockRegExp.test(e.nodeName) && e.firstChild) {
+			v = e.firstChild.nodeValue;
+
+			if (v && v.length > 1 && /(^\u00a0|\u00a0$)/.test(v)) {
+				e.firstChild.nodeValue = v.replace(/(^\u00a0|\u00a0$)/, '');
+				s.selectNode(e.firstChild, true, false, false); // Select and collapse
+			}
+		}
+	},
+
+	_setUseCSS : function(b) {
+		var d = this.getDoc();
+
+		try {d.execCommand("useCSS", false, !b);} catch (ex) {}
+		try {d.execCommand("styleWithCSS", false, b);} catch (ex) {}
+
+		if (!tinyMCE.getParam("table_inline_editing"))
+			try {d.execCommand('enableInlineTableEditing', false, "false");} catch (ex) {}
+
+		if (!tinyMCE.getParam("object_resizing"))
+			try {d.execCommand('enableObjectResizing', false, "false");} catch (ex) {}
+	},
+
+	execCommand : function(command, user_interface, value) {
+		var i, x, z, align, img, div, doc = this.getDoc(), win = this.getWin(), focusElm = this.getFocusElement();
+
+		// Is not a undo specific command
+		if (!new RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mceAddUndoLevel', 'gi').test(command))
+			this.undoBookmark = null;
+
+		// Mozilla issue
+		if (!tinyMCE.isIE && !this.useCSS) {
+			this._setUseCSS(false);
+			this.useCSS = true;
+		}
+
+		//debug("command: " + command + ", user_interface: " + user_interface + ", value: " + value);
+		this.contentDocument = doc; // <-- Strange, unless this is applied Mozilla 1.3 breaks
+
+		// Don't dispatch key commands
+		if (!/mceStartTyping|mceEndTyping/.test(command)) {
+			if (tinyMCE.execCommandCallback(this, 'execcommand_callback', 'execCommand', this.editorId, this.getBody(), command, user_interface, value))
+				return;
+		}
+
+		// Fix align on images
+		if (focusElm && focusElm.nodeName == "IMG") {
+			align = focusElm.getAttribute('align');
+			img = command == "JustifyCenter" ? focusElm.cloneNode(false) : focusElm;
+
+			switch (command) {
+				case "JustifyLeft":
+					if (align == 'left')
+						img.removeAttribute('align');
+					else
+						img.setAttribute('align', 'left');
+
+					// Remove the div
+					div = focusElm.parentNode;
+					if (div && div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode)
+						div.parentNode.replaceChild(img, div);
+
+					this.selection.selectNode(img);
+					this.repaint();
+					tinyMCE.triggerNodeChange();
+					return;
+
+				case "JustifyCenter":
+					img.removeAttribute('align');
+
+					// Is centered
+					div = tinyMCE.getParentElement(focusElm, "div");
+					if (div && div.style.textAlign == "center") {
+						// Remove div
+						if (div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode)
+							div.parentNode.replaceChild(img, div);
+					} else {
+						// Add div
+						div = this.getDoc().createElement("div");
+						div.style.textAlign = 'center';
+						div.appendChild(img);
+						focusElm.parentNode.replaceChild(div, focusElm);
+					}
+
+					this.selection.selectNode(img);
+					this.repaint();
+					tinyMCE.triggerNodeChange();
+					return;
+
+				case "JustifyRight":
+					if (align == 'right')
+						img.removeAttribute('align');
+					else
+						img.setAttribute('align', 'right');
+
+					// Remove the div
+					div = focusElm.parentNode;
+					if (div && div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode)
+						div.parentNode.replaceChild(img, div);
+
+					this.selection.selectNode(img);
+					this.repaint();
+					tinyMCE.triggerNodeChange();
+					return;
+			}
+		}
+
+		if (tinyMCE.settings.force_br_newlines) {
+			var alignValue = "";
+
+			if (doc.selection.type != "Control") {
+				switch (command) {
+						case "JustifyLeft":
+							alignValue = "left";
+							break;
+
+						case "JustifyCenter":
+							alignValue = "center";
+							break;
+
+						case "JustifyFull":
+							alignValue = "justify";
+							break;
+
+						case "JustifyRight":
+							alignValue = "right";
+							break;
+				}
+
+				if (alignValue !== '') {
+					var rng = doc.selection.createRange();
+
+					if ((divElm = tinyMCE.getParentElement(rng.parentElement(), "div")) != null)
+						divElm.setAttribute("align", alignValue);
+					else if (rng.pasteHTML && rng.htmlText.length > 0)
+						rng.pasteHTML('<div align="' + alignValue + '">' + rng.htmlText + "</div>");
+
+					tinyMCE.triggerNodeChange();
+					return;
+				}
+			}
+		}
+
+		switch (command) {
+			case "mceRepaint":
+				this.repaint();
+				return true;
+
+			case "unlink":
+				// Unlink if caret is inside link
+				if (tinyMCE.isGecko && this.getSel().isCollapsed) {
+					focusElm = tinyMCE.getParentElement(focusElm, 'A');
+
+					if (focusElm)
+						this.selection.selectNode(focusElm, false);
+				}
+
+				this.getDoc().execCommand(command, user_interface, value);
+
+				tinyMCE.isGecko && this.getSel().collapseToEnd();
+
+				tinyMCE.triggerNodeChange();
+
+				return true;
+
+			case "InsertUnorderedList":
+			case "InsertOrderedList":
+				this.getDoc().execCommand(command, user_interface, value);
+				tinyMCE.triggerNodeChange();
+				break;
+
+			case "Strikethrough":
+				this.getDoc().execCommand(command, user_interface, value);
+				tinyMCE.triggerNodeChange();
+				break;
+
+			case "mceSelectNode":
+				this.selection.selectNode(value);
+				tinyMCE.triggerNodeChange();
+				tinyMCE.selectedNode = value;
+				break;
+
+			case "FormatBlock":
+				if (value == null || value == '') {
+					var elm = tinyMCE.getParentElement(this.getFocusElement(), "p,div,h1,h2,h3,h4,h5,h6,pre,address,blockquote,dt,dl,dd,samp");
+
+					if (elm)
+						this.execCommand("mceRemoveNode", false, elm);
+				} else {
+					if (!this.cleanup.isValid(value))
+						return true;
+
+					if (tinyMCE.isGecko && new RegExp('<(div|blockquote|code|dt|dd|dl|samp)>', 'gi').test(value))
+						value = value.replace(/[^a-z]/gi, '');
+
+					if (tinyMCE.isIE && new RegExp('blockquote|code|samp', 'gi').test(value)) {
+						var b = this.selection.getBookmark();
+						this.getDoc().execCommand("FormatBlock", false, '<p>');
+						tinyMCE.renameElement(tinyMCE.getParentBlockElement(this.getFocusElement()), value);
+						this.selection.moveToBookmark(b);
+					} else
+						this.getDoc().execCommand("FormatBlock", false, value);
+				}
+
+				tinyMCE.triggerNodeChange();
+
+				break;
+
+			case "mceRemoveNode":
+				if (!value)
+					value = tinyMCE.getParentElement(this.getFocusElement());
+
+				if (tinyMCE.isIE) {
+					value.outerHTML = value.innerHTML;
+				} else {
+					var rng = value.ownerDocument.createRange();
+					rng.setStartBefore(value);
+					rng.setEndAfter(value);
+					rng.deleteContents();
+					rng.insertNode(rng.createContextualFragment(value.innerHTML));
+				}
+
+				tinyMCE.triggerNodeChange();
+
+				break;
+
+			case "mceSelectNodeDepth":
+				var parentNode = this.getFocusElement();
+				for (i=0; parentNode; i++) {
+					if (parentNode.nodeName.toLowerCase() == "body")
+						break;
+
+					if (parentNode.nodeName.toLowerCase() == "#text") {
+						i--;
+						parentNode = parentNode.parentNode;
+						continue;
+					}
+
+					if (i == value) {
+						this.selection.selectNode(parentNode, false);
+						tinyMCE.triggerNodeChange();
+						tinyMCE.selectedNode = parentNode;
+						return;
+					}
+
+					parentNode = parentNode.parentNode;
+				}
+
+				break;
+
+			case "mceSetStyleInfo":
+			case "SetStyleInfo":
+				var rng = this.getRng();
+				var sel = this.getSel();
+				var scmd = value.command;
+				var sname = value.name;
+				var svalue = value.value == null ? '' : value.value;
+				//var svalue = value['value'] == null ? '' : value['value'];
+				var wrapper = value.wrapper ? value.wrapper : "span";
+				var parentElm = null;
+				var invalidRe = new RegExp("^BODY|HTML$", "g");
+				var invalidParentsRe = tinyMCE.settings.merge_styles_invalid_parents !== '' ? new RegExp(tinyMCE.settings.merge_styles_invalid_parents, "gi") : null;
+
+				// Whole element selected check
+				if (tinyMCE.isIE) {
+					// Control range
+					if (rng.item)
+						parentElm = rng.item(0);
+					else {
+						var pelm = rng.parentElement();
+						var prng = doc.selection.createRange();
+						prng.moveToElementText(pelm);
+
+						if (rng.htmlText == prng.htmlText || rng.boundingWidth == 0) {
+							if (invalidParentsRe == null || !invalidParentsRe.test(pelm.nodeName))
+								parentElm = pelm;
+						}
+					}
+				} else {
+					var felm = this.getFocusElement();
+					if (sel.isCollapsed || (new RegExp('td|tr|tbody|table|img', 'gi').test(felm.nodeName) && sel.anchorNode == felm.parentNode))
+						parentElm = felm;
+				}
+
+				// Whole element selected
+				if (parentElm && !invalidRe.test(parentElm.nodeName)) {
+					if (scmd == "setstyle")
+						tinyMCE.setStyleAttrib(parentElm, sname, svalue);
+
+					if (scmd == "setattrib")
+						tinyMCE.setAttrib(parentElm, sname, svalue);
+
+					if (scmd == "removeformat") {
+						parentElm.style.cssText = '';
+						tinyMCE.setAttrib(parentElm, 'class', '');
+					}
+
+					// Remove style/attribs from all children
+					var ch = tinyMCE.getNodeTree(parentElm, [], 1);
+					for (z=0; z<ch.length; z++) {
+						if (ch[z] == parentElm)
+							continue;
+
+						if (scmd == "setstyle")
+							tinyMCE.setStyleAttrib(ch[z], sname, '');
+
+						if (scmd == "setattrib")
+							tinyMCE.setAttrib(ch[z], sname, '');
+
+						if (scmd == "removeformat") {
+							ch[z].style.cssText = '';
+							tinyMCE.setAttrib(ch[z], 'class', '');
+						}
+					}
+				} else {
+					this._setUseCSS(false); // Bug in FF when running in fullscreen
+					doc.execCommand("FontName", false, "#mce_temp_font#");
+					var elementArray = tinyMCE.getElementsByAttributeValue(this.getBody(), "font", "face", "#mce_temp_font#");
+
+					// Change them all
+					for (x=0; x<elementArray.length; x++) {
+						elm = elementArray[x];
+						if (elm) {
+							var spanElm = doc.createElement(wrapper);
+
+							if (scmd == "setstyle")
+								tinyMCE.setStyleAttrib(spanElm, sname, svalue);
+
+							if (scmd == "setattrib")
+								tinyMCE.setAttrib(spanElm, sname, svalue);
+
+							if (scmd == "removeformat") {
+								spanElm.style.cssText = '';
+								tinyMCE.setAttrib(spanElm, 'class', '');
+							}
+
+							if (elm.hasChildNodes()) {
+								for (i=0; i<elm.childNodes.length; i++)
+									spanElm.appendChild(elm.childNodes[i].cloneNode(true));
+							}
+
+							spanElm.setAttribute("mce_new", "true");
+							elm.parentNode.replaceChild(spanElm, elm);
+
+							// Remove style/attribs from all children
+							var ch = tinyMCE.getNodeTree(spanElm, [], 1);
+							for (z=0; z<ch.length; z++) {
+								if (ch[z] == spanElm)
+									continue;
+
+								if (scmd == "setstyle")
+									tinyMCE.setStyleAttrib(ch[z], sname, '');
+
+								if (scmd == "setattrib")
+									tinyMCE.setAttrib(ch[z], sname, '');
+
+								if (scmd == "removeformat") {
+									ch[z].style.cssText = '';
+									tinyMCE.setAttrib(ch[z], 'class', '');
+								}
+							}
+						}
+					}
+				}
+
+				// Cleaup wrappers
+				var nodes = doc.getElementsByTagName(wrapper);
+				for (i=nodes.length-1; i>=0; i--) {
+					var elm = nodes[i];
+					var isNew = tinyMCE.getAttrib(elm, "mce_new") == "true";
+
+					elm.removeAttribute("mce_new");
+
+					// Is only child a element
+					if (elm.childNodes && elm.childNodes.length == 1 && elm.childNodes[0].nodeType == 1) {
+						//tinyMCE.debug("merge1" + isNew);
+						this._mergeElements(scmd, elm, elm.childNodes[0], isNew);
+						continue;
+					}
+
+					// Is I the only child
+					if (elm.parentNode.childNodes.length == 1 && !invalidRe.test(elm.nodeName) && !invalidRe.test(elm.parentNode.nodeName)) {
+						//tinyMCE.debug("merge2" + isNew + "," + elm.nodeName + "," + elm.parentNode.nodeName);
+						if (invalidParentsRe == null || !invalidParentsRe.test(elm.parentNode.nodeName))
+							this._mergeElements(scmd, elm.parentNode, elm, false);
+					}
+				}
+
+				// Remove empty wrappers
+				var nodes = doc.getElementsByTagName(wrapper);
+				for (i=nodes.length-1; i>=0; i--) {
+					var elm = nodes[i], isEmpty = true;
+
+					// Check if it has any attribs
+					var tmp = doc.createElement("body");
+					tmp.appendChild(elm.cloneNode(false));
+
+					// Is empty span, remove it
+					tmp.innerHTML = tmp.innerHTML.replace(new RegExp('style=""|class=""', 'gi'), '');
+					//tinyMCE.debug(tmp.innerHTML);
+					if (new RegExp('<span>', 'gi').test(tmp.innerHTML)) {
+						for (x=0; x<elm.childNodes.length; x++) {
+							if (elm.parentNode != null)
+								elm.parentNode.insertBefore(elm.childNodes[x].cloneNode(true), elm);
+						}
+
+						elm.parentNode.removeChild(elm);
+					}
+				}
+
+				// Re add the visual aids
+				if (scmd == "removeformat")
+					tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
+
+				tinyMCE.triggerNodeChange();
+
+				break;
+
+			case "FontName":
+				if (value == null) {
+					var s = this.getSel();
+
+					// Find font and select it
+					if (tinyMCE.isGecko && s.isCollapsed) {
+						var f = tinyMCE.getParentElement(this.getFocusElement(), "font");
+
+						if (f != null)
+							this.selection.selectNode(f, false);
+					}
+
+					// Remove format
+					this.getDoc().execCommand("RemoveFormat", false, null);
+
+					// Collapse range if font was found
+					if (f != null && tinyMCE.isGecko) {
+						var r = this.getRng().cloneRange();
+						r.collapse(true);
+						s.removeAllRanges();
+						s.addRange(r);
+					}
+				} else
+					this.getDoc().execCommand('FontName', false, value);
+
+				if (tinyMCE.isGecko)
+					window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
+
+				return;
+
+			case "FontSize":
+				this.getDoc().execCommand('FontSize', false, value);
+
+				if (tinyMCE.isGecko)
+					window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
+
+				return;
+
+			case "forecolor":
+				value = value == null ? this.foreColor : value;
+				value = tinyMCE.trim(value);
+				value = value.charAt(0) != '#' ? (isNaN('0x' + value) ? value : '#' + value) : value;
+
+				this.foreColor = value;
+				this.getDoc().execCommand('forecolor', false, value);
+				break;
+
+			case "HiliteColor":
+				value = value == null ? this.backColor : value;
+				value = tinyMCE.trim(value);
+				value = value.charAt(0) != '#' ? (isNaN('0x' + value) ? value : '#' + value) : value;
+				this.backColor = value;
+
+				if (tinyMCE.isGecko) {
+					this._setUseCSS(true);
+					this.getDoc().execCommand('hilitecolor', false, value);
+					this._setUseCSS(false);
+				} else
+					this.getDoc().execCommand('BackColor', false, value);
+				break;
+
+			case "Cut":
+			case "Copy":
+			case "Paste":
+				var cmdFailed = false;
+
+				// Try executing command
+				eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');
+
+				if (tinyMCE.isOpera && cmdFailed)
+					alert('Currently not supported by your browser, use keyboard shortcuts instead.');
+
+				// Alert error in gecko if command failed
+				if (tinyMCE.isGecko && cmdFailed) {
+					// Confirm more info
+					if (confirm(tinyMCE.entityDecode(tinyMCE.getLang('lang_clipboard_msg'))))
+						window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html', 'mceExternal');
+
+					return;
+				} else
+					tinyMCE.triggerNodeChange();
+			break;
+
+			case "mceSetContent":
+				if (!value)
+					value = "";
+
+				// Call custom cleanup code
+				value = tinyMCE.storeAwayURLs(value);
+				value = tinyMCE._customCleanup(this, "insert_to_editor", value);
+
+				if (this.getBody().nodeName == 'BODY')
+					tinyMCE._setHTML(doc, value);
+				else
+					this.getBody().innerHTML = value;
+
+				tinyMCE.setInnerHTML(this.getBody(), tinyMCE._cleanupHTML(this, doc, this.settings, this.getBody(), false, false, false, true));
+				tinyMCE.convertAllRelativeURLs(this.getBody());
+
+				// Cleanup any mess left from storyAwayURLs
+				tinyMCE._removeInternal(this.getBody());
+
+				// When editing always use fonts internaly
+				if (tinyMCE.getParam("convert_fonts_to_spans"))
+					tinyMCE.convertSpansToFonts(doc);
+
+				tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
+				tinyMCE._setEventsEnabled(this.getBody(), false);
+				this._addBogusBR();
+
+				return true;
+
+			case "mceCleanup":
+				var b = this.selection.getBookmark();
+				tinyMCE._setHTML(this.contentDocument, this.getBody().innerHTML);
+				tinyMCE.setInnerHTML(this.getBody(), tinyMCE._cleanupHTML(this, this.contentDocument, this.settings, this.getBody(), this.visualAid));
+				tinyMCE.convertAllRelativeURLs(doc.body);
+
+				// When editing always use fonts internaly
+				if (tinyMCE.getParam("convert_fonts_to_spans"))
+					tinyMCE.convertSpansToFonts(doc);
+
+				tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
+				tinyMCE._setEventsEnabled(this.getBody(), false);
+				this._addBogusBR();
+				this.repaint();
+				this.selection.moveToBookmark(b);
+				tinyMCE.triggerNodeChange();
+			break;
+
+			case "mceReplaceContent":
+				// Force empty string
+				if (!value)
+					value = '';
+
+				this.getWin().focus();
+
+				var selectedText = "";
+
+				if (tinyMCE.isIE) {
+					var rng = doc.selection.createRange();
+					selectedText = rng.text;
+				} else
+					selectedText = this.getSel().toString();
+
+				if (selectedText.length > 0) {
+					value = tinyMCE.replaceVar(value, "selection", selectedText);
+					tinyMCE.execCommand('mceInsertContent', false, value);
+				}
+
+				this._addBogusBR();
+				tinyMCE.triggerNodeChange();
+			break;
+
+			case "mceSetAttribute":
+				if (typeof(value) == 'object') {
+					var targetElms = (typeof(value.targets) == "undefined") ? "p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address" : value.targets;
+					var targetNode = tinyMCE.getParentElement(this.getFocusElement(), targetElms);
+
+					if (targetNode) {
+						targetNode.setAttribute(value.name, value.value);
+						tinyMCE.triggerNodeChange();
+					}
+				}
+			break;
+
+			case "mceSetCSSClass":
+				this.execCommand("mceSetStyleInfo", false, {command : "setattrib", name : "class", value : value});
+			break;
+
+			case "mceInsertRawHTML":
+				var key = 'tiny_mce_marker';
+
+				this.execCommand('mceBeginUndoLevel');
+
+				// Insert marker key
+				this.execCommand('mceInsertContent', false, key);
+
+				// Store away scroll pos
+				var scrollX = this.getBody().scrollLeft + this.getDoc().documentElement.scrollLeft;
+				var scrollY = this.getBody().scrollTop + this.getDoc().documentElement.scrollTop;
+
+				// Find marker and replace with RAW HTML
+				var html = this.getBody().innerHTML;
+				if ((pos = html.indexOf(key)) != -1)
+					tinyMCE.setInnerHTML(this.getBody(), html.substring(0, pos) + value + html.substring(pos + key.length));
+
+				// Restore scoll pos
+				this.contentWindow.scrollTo(scrollX, scrollY);
+
+				this.execCommand('mceEndUndoLevel');
+
+				break;
+
+			case "mceInsertContent":
+				// Force empty string
+				if (!value)
+					value = '';
+
+				var insertHTMLFailed = false;
+
+				// Removed since it produced problems in IE
+				// this.getWin().focus();
+
+				if (tinyMCE.isGecko || tinyMCE.isOpera) {
+					try {
+						// Is plain text or HTML, &amp;, &nbsp; etc will be encoded wrong in FF
+						if (value.indexOf('<') == -1 && !value.match(/(&#38;|&#160;|&#60;|&#62;)/g)) {
+							var r = this.getRng();
+							var n = this.getDoc().createTextNode(tinyMCE.entityDecode(value));
+							var s = this.getSel();
+							var r2 = r.cloneRange();
+
+							// Insert text at cursor position
+							s.removeAllRanges();
+							r.deleteContents();
+							r.insertNode(n);
+
+							// Move the cursor to the end of text
+							r2.selectNode(n);
+							r2.collapse(false);
+							s.removeAllRanges();
+							s.addRange(r2);
+						} else {
+							value = tinyMCE.fixGeckoBaseHREFBug(1, this.getDoc(), value);
+							this.getDoc().execCommand('inserthtml', false, value);
+							tinyMCE.fixGeckoBaseHREFBug(2, this.getDoc(), value);
+						}
+					} catch (ex) {
+						insertHTMLFailed = true;
+					}
+
+					if (!insertHTMLFailed) {
+						tinyMCE.triggerNodeChange();
+						return;
+					}
+				}
+
+				if (!tinyMCE.isIE) {
+					var isHTML = value.indexOf('<') != -1;
+					var sel = this.getSel();
+					var rng = this.getRng();
+
+					if (isHTML) {
+						if (tinyMCE.isSafari) {
+							var tmpRng = this.getDoc().createRange();
+
+							tmpRng.setStart(this.getBody(), 0);
+							tmpRng.setEnd(this.getBody(), 0);
+
+							value = tmpRng.createContextualFragment(value);
+						} else
+							value = rng.createContextualFragment(value);
+					} else {
+						// Setup text node
+						value = doc.createTextNode(tinyMCE.entityDecode(value));
+					}
+
+					// Insert plain text in Safari
+					if (tinyMCE.isSafari && !isHTML) {
+						this.execCommand('InsertText', false, value.nodeValue);
+						tinyMCE.triggerNodeChange();
+						return true;
+					} else if (tinyMCE.isSafari && isHTML) {
+						rng.deleteContents();
+						rng.insertNode(value);
+						tinyMCE.triggerNodeChange();
+						return true;
+					}
+
+					rng.deleteContents();
+
+					// If target node is text do special treatment, (Mozilla 1.3 fix)
+					if (rng.startContainer.nodeType == 3) {
+						var node = rng.startContainer.splitText(rng.startOffset);
+						node.parentNode.insertBefore(value, node); 
+					} else
+						rng.insertNode(value);
+
+					if (!isHTML) {
+						// Removes weird selection trails
+						sel.selectAllChildren(doc.body);
+						sel.removeAllRanges();
+
+						// Move cursor to end of content
+						var rng = doc.createRange();
+
+						rng.selectNode(value);
+						rng.collapse(false);
+
+						sel.addRange(rng);
+					} else
+						rng.collapse(false);
+
+					tinyMCE.fixGeckoBaseHREFBug(2, this.getDoc(), value);
+				} else {
+					var rng = doc.selection.createRange(), tmpRng = null;
+					var c = value.indexOf('<!--') != -1;
+
+					// Fix comment bug, add tag before comments
+					if (c)
+						value = tinyMCE.uniqueTag + value;
+
+					//	tmpRng = rng.duplicate(); // Store away range (Fixes Undo bookmark bug in IE)
+
+					if (rng.item)
+						rng.item(0).outerHTML = value;
+					else
+						rng.pasteHTML(value);
+
+					//if (tmpRng)
+					//	tmpRng.select(); // Restore range  (Fixes Undo bookmark bug in IE)
+
+					// Remove unique tag
+					if (c) {
+						var e = this.getDoc().getElementById('mceTMPElement');
+						e.parentNode.removeChild(e);
+					}
+				}
+
+				tinyMCE.execCommand("mceAddUndoLevel");
+				tinyMCE.triggerNodeChange();
+			break;
+
+			case "mceStartTyping":
+				if (tinyMCE.settings.custom_undo_redo && this.undoRedo.typingUndoIndex == -1) {
+					this.undoRedo.typingUndoIndex = this.undoRedo.undoIndex;
+					tinyMCE.typingUndoIndex = tinyMCE.undoIndex;
+					this.execCommand('mceAddUndoLevel');
+				}
+				break;
+
+			case "mceEndTyping":
+				if (tinyMCE.settings.custom_undo_redo && this.undoRedo.typingUndoIndex != -1) {
+					this.execCommand('mceAddUndoLevel');
+					this.undoRedo.typingUndoIndex = -1;
+				}
+
+				tinyMCE.typingUndoIndex = -1;
+				break;
+
+			case "mceBeginUndoLevel":
+				this.undoRedoLevel = false;
+				break;
+
+			case "mceEndUndoLevel":
+				this.undoRedoLevel = true;
+				this.execCommand('mceAddUndoLevel');
+				break;
+
+			case "mceAddUndoLevel":
+				if (tinyMCE.settings.custom_undo_redo && this.undoRedoLevel) {
+					if (this.undoRedo.add())
+						tinyMCE.triggerNodeChange(false);
+				}
+				break;
+
+			case "Undo":
+				if (tinyMCE.settings.custom_undo_redo) {
+					tinyMCE.execCommand("mceEndTyping");
+					this.undoRedo.undo();
+					tinyMCE.triggerNodeChange();
+				} else
+					this.getDoc().execCommand(command, user_interface, value);
+				break;
+
+			case "Redo":
+				if (tinyMCE.settings.custom_undo_redo) {
+					tinyMCE.execCommand("mceEndTyping");
+					this.undoRedo.redo();
+					tinyMCE.triggerNodeChange();
+				} else
+					this.getDoc().execCommand(command, user_interface, value);
+				break;
+
+			case "mceToggleVisualAid":
+				this.visualAid = !this.visualAid;
+				tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
+				tinyMCE.triggerNodeChange();
+				break;
+
+			case "Indent":
+				this.getDoc().execCommand(command, user_interface, value);
+				tinyMCE.triggerNodeChange();
+
+				if (tinyMCE.isIE) {
+					var n = tinyMCE.getParentElement(this.getFocusElement(), "blockquote");
+					do {
+						if (n && n.nodeName == "BLOCKQUOTE") {
+							n.removeAttribute("dir");
+							n.removeAttribute("style");
+						}
+					} while (n != null && (n = n.parentNode) != null);
+				}
+				break;
+
+			case "RemoveFormat":
+			case "removeformat":
+				var text = this.selection.getSelectedText();
+
+				if (tinyMCE.isOpera) {
+					this.getDoc().execCommand("RemoveFormat", false, null);
+					return;
+				}
+
+				if (tinyMCE.isIE) {
+					try {
+						var rng = doc.selection.createRange();
+						rng.execCommand("RemoveFormat", false, null);
+					} catch (e) {
+						// Do nothing
+					}
+
+					this.execCommand("mceSetStyleInfo", false, {command : "removeformat"});
+				} else {
+					this.getDoc().execCommand(command, user_interface, value);
+
+					this.execCommand("mceSetStyleInfo", false, {command : "removeformat"});
+				}
+
+				// Remove class
+				if (text.length == 0)
+					this.execCommand("mceSetCSSClass", false, "");
+
+				tinyMCE.triggerNodeChange();
+				break;
+
+			default:
+				this.getDoc().execCommand(command, user_interface, value);
+
+				if (tinyMCE.isGecko)
+					window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
+				else
+					tinyMCE.triggerNodeChange();
+		}
+
+		// Add undo level after modification
+		if (command != "mceAddUndoLevel" && command != "Undo" && command != "Redo" && command != "mceStartTyping" && command != "mceEndTyping")
+			tinyMCE.execCommand("mceAddUndoLevel");
+	},
+
+	queryCommandValue : function(c) {
+		try {
+			return this.getDoc().queryCommandValue(c);
+		} catch (e) {
+			return null;
+		}
+	},
+
+	queryCommandState : function(c) {
+		return this.getDoc().queryCommandState(c);
+	},
+
+	_addBogusBR : function() {
+		var b = this.getBody();
+
+		if (tinyMCE.isGecko && !b.hasChildNodes())
+			b.innerHTML = '<br _moz_editor_bogus_node="TRUE" />';
+	},
+
+	_onAdd : function(replace_element, form_element_name, target_document) {
+		var hc, th, tos, editorTemplate, targetDoc, deltaWidth, deltaHeight, html, rng, fragment;
+		var dynamicIFrame, tElm, doc, parentElm;
+
+		th = this.settings.theme;
+		tos = tinyMCE.themes[th];
+
+		targetDoc = target_document ? target_document : document;
+
+		this.targetDoc = targetDoc;
+
+		tinyMCE.themeURL = tinyMCE.baseURL + "/themes/" + this.settings.theme;
+		this.settings.themeurl = tinyMCE.themeURL;
+
+		if (!replace_element) {
+			alert("Error: Could not find the target element.");
+			return false;
+		}
+
+		if (tos.getEditorTemplate)
+			editorTemplate = tos.getEditorTemplate(this.settings, this.editorId);
+
+		deltaWidth = editorTemplate.delta_width ? editorTemplate.delta_width : 0;
+		deltaHeight = editorTemplate.delta_height ? editorTemplate.delta_height : 0;
+		html = '<span id="' + this.editorId + '_parent" class="mceEditorContainer">' + editorTemplate.html;
+
+		html = tinyMCE.replaceVar(html, "editor_id", this.editorId);
+
+		if (!this.settings.default_document)
+			this.settings.default_document = tinyMCE.baseURL + "/blank.htm";
+
+		this.settings.old_width = this.settings.width;
+		this.settings.old_height = this.settings.height;
+
+		// Set default width, height
+		if (this.settings.width == -1)
+			this.settings.width = replace_element.offsetWidth;
+
+		if (this.settings.height == -1)
+			this.settings.height = replace_element.offsetHeight;
+
+		// Try the style width
+		if (this.settings.width == 0)
+			this.settings.width = replace_element.style.width;
+
+		// Try the style height
+		if (this.settings.height == 0)
+			this.settings.height = replace_element.style.height; 
+
+		// If no width/height then default to 320x240, better than nothing
+		if (this.settings.width == 0)
+			this.settings.width = 320;
+
+		if (this.settings.height == 0)
+			this.settings.height = 240;
+
+		this.settings.area_width = parseInt(this.settings.width);
+		this.settings.area_height = parseInt(this.settings.height);
+		this.settings.area_width += deltaWidth;
+		this.settings.area_height += deltaHeight;
+		this.settings.width_style = "" + this.settings.width;
+		this.settings.height_style = "" + this.settings.height;
+
+		// Special % handling
+		if (("" + this.settings.width).indexOf('%') != -1)
+			this.settings.area_width = "100%";
+		else
+			this.settings.width_style += 'px';
+
+		if (("" + this.settings.height).indexOf('%') != -1)
+			this.settings.area_height = "100%";
+		else
+			this.settings.height_style += 'px';
+
+		if (("" + replace_element.style.width).indexOf('%') != -1) {
+			this.settings.width = replace_element.style.width;
+			this.settings.area_width = "100%";
+			this.settings.width_style = "100%";
+		}
+
+		if (("" + replace_element.style.height).indexOf('%') != -1) {
+			this.settings.height = replace_element.style.height;
+			this.settings.area_height = "100%";
+			this.settings.height_style = "100%";
+		}
+
+		html = tinyMCE.applyTemplate(html);
+
+		this.settings.width = this.settings.old_width;
+		this.settings.height = this.settings.old_height;
+
+		this.visualAid = this.settings.visual;
+		this.formTargetElementId = form_element_name;
+
+		// Get replace_element contents
+		if (replace_element.nodeName == "TEXTAREA" || replace_element.nodeName == "INPUT")
+			this.startContent = replace_element.value;
+		else
+			this.startContent = replace_element.innerHTML;
+
+		// If not text area or input
+		if (replace_element.nodeName != "TEXTAREA" && replace_element.nodeName != "INPUT") {
+			this.oldTargetElement = replace_element;
+
+			// Debug mode
+			hc = '<input type="hidden" id="' + form_element_name + '" name="' + form_element_name + '" />';
+			this.oldTargetDisplay = tinyMCE.getStyle(this.oldTargetElement, 'display', 'inline');
+			this.oldTargetElement.style.display = "none";
+
+			html += '</span>';
+
+			if (tinyMCE.isGecko)
+				html = hc + html;
+			else
+				html += hc;
+
+			// Output HTML and set editable
+			if (tinyMCE.isGecko) {
+				rng = replace_element.ownerDocument.createRange();
+				rng.setStartBefore(replace_element);
+
+				fragment = rng.createContextualFragment(html);
+				tinyMCE.insertAfter(fragment, replace_element);
+			} else
+				replace_element.insertAdjacentHTML("beforeBegin", html);
+		} else {
+			html += '</span>';
+
+			// Just hide the textarea element
+			this.oldTargetElement = replace_element;
+
+			this.oldTargetDisplay = tinyMCE.getStyle(this.oldTargetElement, 'display', 'inline');
+			this.oldTargetElement.style.display = "none";
+
+			// Output HTML and set editable
+			if (tinyMCE.isGecko) {
+				rng = replace_element.ownerDocument.createRange();
+				rng.setStartBefore(replace_element);
+
+				fragment = rng.createContextualFragment(html);
+				tinyMCE.insertAfter(fragment, replace_element);
+			} else
+				replace_element.insertAdjacentHTML("beforeBegin", html);
+		}
+
+		// Setup iframe
+		dynamicIFrame = false;
+		tElm = targetDoc.getElementById(this.editorId);
+
+		if (!tinyMCE.isIE) {
+			// Node case is preserved in XML strict mode
+			if (tElm && (tElm.nodeName == "SPAN" || tElm.nodeName == "span")) {
+				tElm = tinyMCE._createIFrame(tElm, targetDoc);
+				dynamicIFrame = true;
+			}
+
+			this.targetElement = tElm;
+			this.iframeElement = tElm;
+			this.contentDocument = tElm.contentDocument;
+			this.contentWindow = tElm.contentWindow;
+
+			//this.getDoc().designMode = "on";
+		} else {
+			if (tElm && tElm.nodeName == "SPAN")
+				tElm = tinyMCE._createIFrame(tElm, targetDoc, targetDoc.parentWindow);
+			else
+				tElm = targetDoc.frames[this.editorId];
+
+			this.targetElement = tElm;
+			this.iframeElement = targetDoc.getElementById(this.editorId);
+
+			if (tinyMCE.isOpera) {
+				this.contentDocument = this.iframeElement.contentDocument;
+				this.contentWindow = this.iframeElement.contentWindow;
+				dynamicIFrame = true;
+			} else {
+				this.contentDocument = tElm.window.document;
+				this.contentWindow = tElm.window;
+			}
+
+			this.getDoc().designMode = "on";
+		}
+
+		// Setup base HTML
+		doc = this.contentDocument;
+		if (dynamicIFrame) {
+			html = tinyMCE.getParam('doctype') + '<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="' + tinyMCE.settings.base_href + '" /><title>blank_page</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body class="mceContentBody"></body></html>';
+
+			try {
+				if (!this.isHidden())
+					this.getDoc().designMode = "on";
+
+				doc.open();
+				doc.write(html);
+				doc.close();
+			} catch (e) {
+				// Failed Mozilla 1.3
+				this.getDoc().location.href = tinyMCE.baseURL + "/blank.htm";
+			}
+		}
+
+		// This timeout is needed in MSIE 5.5 for some odd reason
+		// it seems that the document.frames isn't initialized yet?
+		if (tinyMCE.isIE)
+			window.setTimeout("tinyMCE.addEventHandlers(tinyMCE.instances[\"" + this.editorId + "\"]);", 1);
+
+		// Setup element references
+		parentElm = this.targetDoc.getElementById(this.editorId + '_parent');
+		this.formElement = tinyMCE.isGecko ? parentElm.previousSibling : parentElm.nextSibling;
+
+		tinyMCE.setupContent(this.editorId, true);
+
+		return true;
+	},
+
+	setBaseHREF : function(u) {
+		var h, b, d, nl;
+
+		d = this.getDoc();
+		nl = d.getElementsByTagName("base");
+		b = nl.length > 0 ? nl[0] : null;
+
+		if (!b) {
+			nl = d.getElementsByTagName("head");
+			h = nl.length > 0 ? nl[0] : null;
+
+			b = d.createElement("base");
+			b.setAttribute('href', u);
+			h.appendChild(b);
+		} else {
+			if (u == '' || u == null)
+				b.parentNode.removeChild(b);
+			else
+				b.setAttribute('href', u);
+		}
+	},
+
+	getHTML : function(r) {
+		var h, d = this.getDoc(), b = this.getBody();
+
+		if (r)
+			return b.innerHTML;
+
+		h = tinyMCE._cleanupHTML(this, d, this.settings, b, false, true, false, true);
+
+		if (tinyMCE.getParam("convert_fonts_to_spans"))
+			tinyMCE.convertSpansToFonts(d);
+
+		return h;
+	},
+
+	setHTML : function(h) {
+		this.execCommand('mceSetContent', false, h);
+		this.repaint();
+	},
+
+	getFocusElement : function() {
+		return this.selection.getFocusElement();
+	},
+
+	getSel : function() {
+		return this.selection.getSel();
+	},
+
+	getRng : function() {
+		return this.selection.getRng();
+	},
+
+	triggerSave : function(skip_cleanup, skip_callback) {
+		var e, nl = [], i, s, content, htm;
+
+		if (!this.enabled)
+			return;
+
+		this.switchSettings();
+		s = tinyMCE.settings;
+
+		// Force hidden tabs visible while serializing
+		if (tinyMCE.isRealIE) {
+			e = this.iframeElement;
+
+			do {
+				if (e.style && e.style.display == 'none') {
+					e.style.display = 'block';
+					nl[nl.length] = {elm : e, type : 'style'};
+				}
+
+				if (e.style && s.hidden_tab_class.length > 0 && e.className.indexOf(s.hidden_tab_class) != -1) {
+					e.className = s.display_tab_class;
+					nl[nl.length] = {elm : e, type : 'class'};
+				}
+			} while ((e = e.parentNode) != null)
+		}
+
+		tinyMCE.settings.preformatted = false;
+
+		// Default to false
+		if (typeof(skip_cleanup) == "undefined")
+			skip_cleanup = false;
+
+		// Default to false
+		if (typeof(skip_callback) == "undefined")
+			skip_callback = false;
+
+		tinyMCE._setHTML(this.getDoc(), this.getBody().innerHTML);
+
+		// Remove visual aids when cleanup is disabled
+		if (this.settings.cleanup == false) {
+			tinyMCE.handleVisualAid(this.getBody(), true, false, this);
+			tinyMCE._setEventsEnabled(this.getBody(), true);
+		}
+
+		tinyMCE._customCleanup(this, "submit_content_dom", this.contentWindow.document.body);
+		htm = skip_cleanup ? this.getBody().innerHTML : tinyMCE._cleanupHTML(this, this.getDoc(), this.settings, this.getBody(), tinyMCE.visualAid, true, true);
+		htm = tinyMCE._customCleanup(this, "submit_content", htm);
+
+		if (!skip_callback && tinyMCE.settings.save_callback !== '')
+			content = tinyMCE.resolveDots(tinyMCE.settings.save_callback, window)(this.formTargetElementId,htm,this.getBody());
+
+		// Use callback content if available
+		if ((typeof(content) != "undefined") && content != null)
+			htm = content;
+
+		// Replace some weird entities (Bug: #1056343)
+		htm = tinyMCE.regexpReplace(htm, "&#40;", "(", "gi");
+		htm = tinyMCE.regexpReplace(htm, "&#41;", ")", "gi");
+		htm = tinyMCE.regexpReplace(htm, "&#59;", ";", "gi");
+		htm = tinyMCE.regexpReplace(htm, "&#34;", "&quot;", "gi");
+		htm = tinyMCE.regexpReplace(htm, "&#94;", "^", "gi");
+
+		if (this.formElement)
+			this.formElement.value = htm;
+
+		if (tinyMCE.isSafari && this.formElement)
+			this.formElement.innerText = htm;
+
+		// Hide them again (tabs in MSIE)
+		for (i=0; i<nl.length; i++) {
+			if (nl[i].type == 'style')
+				nl[i].elm.style.display = 'none';
+			else
+				nl[i].elm.className = s.hidden_tab_class;
+		}
+	}
+
+	};
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_Cleanup.class.js */
+
+tinyMCE.add(TinyMCE_Engine, {
+	cleanupHTMLCode : function(s) {
+		s = s.replace(new RegExp('<p \\/>', 'gi'), '<p>&nbsp;</p>');
+		s = s.replace(new RegExp('<p>\\s*<\\/p>', 'gi'), '<p>&nbsp;</p>');
+
+		// Fix close BR elements
+		s = s.replace(new RegExp('<br>\\s*<\\/br>', 'gi'), '<br />');
+
+		// Open closed tags like <b/> to <b></b>
+		s = s.replace(new RegExp('<(h[1-6]|p|div|address|pre|form|table|li|ol|ul|td|b|font|em|strong|i|strike|u|span|a|ul|ol|li|blockquote)([a-z]*)([^\\\\|>]*)\\/>', 'gi'), '<$1$2$3></$1$2>');
+
+		// Remove trailing space <b > to <b>
+		s = s.replace(new RegExp('\\s+></', 'gi'), '></');
+
+		// Close tags <img></img> to <img/>
+		s = s.replace(new RegExp('<(img|br|hr)([^>]*)><\\/(img|br|hr)>', 'gi'), '<$1$2 />');
+
+		// Weird MSIE bug, <p><hr /></p> breaks runtime?
+		if (tinyMCE.isIE)
+			s = s.replace(new RegExp('<p><hr \\/><\\/p>', 'gi'), "<hr>");
+
+		// Weird tags will make IE error #bug: 1538495
+		if (tinyMCE.isIE)
+			s = s.replace(/<!(\s*)\/>/g, '');
+
+		// Convert relative anchors to absolute URLs ex: #something to file.htm#something
+		// Removed: Since local document anchors should never be forced absolute example edit.php?id=something
+		//if (tinyMCE.getParam('convert_urls'))
+		//	s = s.replace(new RegExp('(href=\"{0,1})(\\s*#)', 'gi'), '$1' + tinyMCE.settings.document_base_url + "#");
+
+		return s;
+	},
+
+	parseStyle : function(str) {
+		var ar = [], st, i, re, pa;
+
+		if (str == null)
+			return ar;
+
+		st = str.split(';');
+
+		tinyMCE.clearArray(ar);
+
+		for (i=0; i<st.length; i++) {
+			if (st[i] == '')
+				continue;
+
+			re = new RegExp('^\\s*([^:]*):\\s*(.*)\\s*$');
+			pa = st[i].replace(re, '$1||$2').split('||');
+	//tinyMCE.debug(str, pa[0] + "=" + pa[1], st[i].replace(re, '$1||$2'));
+			if (pa.length == 2)
+				ar[pa[0].toLowerCase()] = pa[1];
+		}
+
+		return ar;
+	},
+
+	compressStyle : function(ar, pr, sf, res) {
+		var box = [], i, a;
+
+		box[0] = ar[pr + '-top' + sf];
+		box[1] = ar[pr + '-left' + sf];
+		box[2] = ar[pr + '-right' + sf];
+		box[3] = ar[pr + '-bottom' + sf];
+
+		for (i=0; i<box.length; i++) {
+			if (box[i] == null)
+				return;
+
+			for (a=0; a<box.length; a++) {
+				if (box[a] != box[i])
+					return;
+			}
+		}
+
+		// They are all the same
+		ar[res] = box[0];
+		ar[pr + '-top' + sf] = null;
+		ar[pr + '-left' + sf] = null;
+		ar[pr + '-right' + sf] = null;
+		ar[pr + '-bottom' + sf] = null;
+	},
+
+	serializeStyle : function(ar) {
+		var str = "", key, val, m;
+
+		// Compress box
+		tinyMCE.compressStyle(ar, "border", "", "border");
+		tinyMCE.compressStyle(ar, "border", "-width", "border-width");
+		tinyMCE.compressStyle(ar, "border", "-color", "border-color");
+		tinyMCE.compressStyle(ar, "border", "-style", "border-style");
+		tinyMCE.compressStyle(ar, "padding", "", "padding");
+		tinyMCE.compressStyle(ar, "margin", "", "margin");
+
+		for (key in ar) {
+			val = ar[key];
+
+			if (typeof(val) == 'function')
+				continue;
+
+			if (key.indexOf('mso-') == 0)
+				continue;
+
+			if (val != null && val !== '') {
+				val = '' + val; // Force string
+
+				// Fix style URL
+				val = val.replace(new RegExp("url\\(\\'?([^\\']*)\\'?\\)", 'gi'), "url('$1')");
+
+				// Convert URL
+				if (val.indexOf('url(') != -1 && tinyMCE.getParam('convert_urls')) {
+					m = new RegExp("url\\('(.*?)'\\)").exec(val);
+
+					if (m.length > 1)
+						val = "url('" + eval(tinyMCE.getParam('urlconverter_callback') + "(m[1], null, true);") + "')";
+				}
+
+				// Force HEX colors
+				if (tinyMCE.getParam("force_hex_style_colors"))
+					val = tinyMCE.convertRGBToHex(val, true);
+
+				val = val.replace(/\"/g, '\'');
+
+				if (val != "url('')")
+					str += key.toLowerCase() + ": " + val + "; ";
+			}
+		}
+
+		if (new RegExp('; $').test(str))
+			str = str.substring(0, str.length - 2);
+
+		return str;
+	},
+
+	convertRGBToHex : function(s, k) {
+		var re, rgb;
+
+		if (s.toLowerCase().indexOf('rgb') != -1) {
+			re = new RegExp("(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)(.*?)", "gi");
+			rgb = s.replace(re, "$1,$2,$3,$4,$5").split(',');
+
+			if (rgb.length == 5) {
+				r = parseInt(rgb[1]).toString(16);
+				g = parseInt(rgb[2]).toString(16);
+				b = parseInt(rgb[3]).toString(16);
+
+				r = r.length == 1 ? '0' + r : r;
+				g = g.length == 1 ? '0' + g : g;
+				b = b.length == 1 ? '0' + b : b;
+
+				s = "#" + r + g + b;
+
+				if (k)
+					s = rgb[0] + s + rgb[4];
+			}
+		}
+
+		return s;
+	},
+
+	convertHexToRGB : function(s) {
+		if (s.indexOf('#') != -1) {
+			s = s.replace(new RegExp('[^0-9A-F]', 'gi'), '');
+			return "rgb(" + parseInt(s.substring(0, 2), 16) + "," + parseInt(s.substring(2, 4), 16) + "," + parseInt(s.substring(4, 6), 16) + ")";
+		}
+
+		return s;
+	},
+
+	convertSpansToFonts : function(doc) {
+		var s, i, size, fSize, x, fFace, fColor, sizes = tinyMCE.getParam('font_size_style_values').replace(/\s+/, '').split(',');
+
+		s = tinyMCE.selectElements(doc, 'span,font');
+		for (i=0; i<s.length; i++) {
+			size = tinyMCE.trim(s[i].style.fontSize).toLowerCase();
+			fSize = 0;
+
+			for (x=0; x<sizes.length; x++) {
+				if (sizes[x] == size) {
+					fSize = x + 1;
+					break;
+				}
+			}
+
+			if (fSize > 0) {
+				tinyMCE.setAttrib(s[i], 'size', fSize);
+				s[i].style.fontSize = '';
+			}
+
+			fFace = s[i].style.fontFamily;
+			if (fFace != null && fFace !== '') {
+				tinyMCE.setAttrib(s[i], 'face', fFace);
+				s[i].style.fontFamily = '';
+			}
+
+			fColor = s[i].style.color;
+			if (fColor != null && fColor !== '') {
+				tinyMCE.setAttrib(s[i], 'color', tinyMCE.convertRGBToHex(fColor));
+				s[i].style.color = '';
+			}
+		}
+	},
+
+	convertFontsToSpans : function(doc) {
+		var fsClasses, s, i, fSize, fFace, fColor, sizes = tinyMCE.getParam('font_size_style_values').replace(/\s+/, '').split(',');
+
+		fsClasses = tinyMCE.getParam('font_size_classes');
+		if (fsClasses !== '')
+			fsClasses = fsClasses.replace(/\s+/, '').split(',');
+		else
+			fsClasses = null;
+
+		s = tinyMCE.selectElements(doc, 'span,font');
+		for (i=0; i<s.length; i++) {
+			fSize = tinyMCE.getAttrib(s[i], 'size');
+			fFace = tinyMCE.getAttrib(s[i], 'face');
+			fColor = tinyMCE.getAttrib(s[i], 'color');
+
+			if (fSize !== '') {
+				fSize = parseInt(fSize);
+
+				if (fSize > 0 && fSize < 8) {
+					if (fsClasses != null)
+						tinyMCE.setAttrib(s[i], 'class', fsClasses[fSize-1]);
+					else
+						s[i].style.fontSize = sizes[fSize-1];
+				}
+
+				s[i].removeAttribute('size');
+			}
+
+			if (fFace !== '') {
+				s[i].style.fontFamily = fFace;
+				s[i].removeAttribute('face');
+			}
+
+			if (fColor !== '') {
+				s[i].style.color = fColor;
+				s[i].removeAttribute('color');
+			}
+		}
+	},
+
+	cleanupAnchors : function(doc) {
+		var i, cn, x, an = doc.getElementsByTagName("a");
+
+		// Loops backwards due to bug #1467987
+		for (i=an.length-1; i>=0; i--) {
+			if (tinyMCE.getAttrib(an[i], "name") !== '' && tinyMCE.getAttrib(an[i], "href") == '') {
+				cn = an[i].childNodes;
+
+				for (x=cn.length-1; x>=0; x--)
+					tinyMCE.insertAfter(cn[x], an[i]);
+			}
+		}
+	},
+
+	getContent : function(editor_id) {
+		if (typeof(editor_id) != "undefined")
+			 tinyMCE.getInstanceById(editor_id).select();
+
+		if (tinyMCE.selectedInstance)
+			return tinyMCE.selectedInstance.getHTML();
+
+		return null;
+	},
+
+	_fixListElements : function(d) {
+		var nl, x, a = ['ol', 'ul'], i, n, p, r = new RegExp('^(OL|UL)$'), np;
+
+		for (x=0; x<a.length; x++) {
+			nl = d.getElementsByTagName(a[x]);
+
+			for (i=0; i<nl.length; i++) {
+				n = nl[i];
+				p = n.parentNode;
+
+				if (r.test(p.nodeName)) {
+					np = tinyMCE.prevNode(n, 'LI');
+
+					if (!np) {
+						np = d.createElement('li');
+						np.innerHTML = '&nbsp;';
+						np.appendChild(n);
+						p.insertBefore(np, p.firstChild);
+					} else
+						np.appendChild(n);
+				}
+			}
+		}
+	},
+
+	_fixTables : function(d) {
+		var nl, i, n, p, np, x, t;
+
+		nl = d.getElementsByTagName('table');
+		for (i=0; i<nl.length; i++) {
+			n = nl[i];
+
+			if ((p = tinyMCE.getParentElement(n, 'p,h1,h2,h3,h4,h5,h6')) != null) {
+				np = p.cloneNode(false);
+				np.removeAttribute('id');
+
+				t = n;
+
+				while ((n = n.nextSibling))
+					np.appendChild(n);
+
+				tinyMCE.insertAfter(np, p);
+				tinyMCE.insertAfter(t, p);
+			}
+		}
+	},
+
+	_cleanupHTML : function(inst, doc, config, elm, visual, on_save, on_submit, inn) {
+		var h, d, t1, t2, t3, t4, t5, c, s, nb;
+
+		if (!tinyMCE.getParam('cleanup'))
+			return elm.innerHTML;
+
+		on_save = typeof(on_save) == 'undefined' ? false : on_save;
+
+		c = inst.cleanup;
+		s = inst.settings;
+		d = c.settings.debug;
+
+		if (d)
+			t1 = new Date().getTime();
+
+		inst._fixRootBlocks();
+
+		if (tinyMCE.getParam("convert_fonts_to_spans"))
+			tinyMCE.convertFontsToSpans(doc);
+
+		if (tinyMCE.getParam("fix_list_elements"))
+			tinyMCE._fixListElements(doc);
+
+		if (tinyMCE.getParam("fix_table_elements"))
+			tinyMCE._fixTables(doc);
+
+		// Call custom cleanup code
+		tinyMCE._customCleanup(inst, on_save ? "get_from_editor_dom" : "insert_to_editor_dom", doc.body);
+
+		if (d)
+			t2 = new Date().getTime();
+
+		c.settings.on_save = on_save;
+
+		c.idCount = 0;
+		c.serializationId = new Date().getTime().toString(32); // Unique ID needed for the content duplication bug
+		c.serializedNodes = [];
+		c.sourceIndex = -1;
+
+		if (s.cleanup_serializer == "xml")
+			h = c.serializeNodeAsXML(elm, inn);
+		else
+			h = c.serializeNodeAsHTML(elm, inn);
+
+		if (d)
+			t3 = new Date().getTime();
+
+		// Post processing
+		nb = tinyMCE.getParam('entity_encoding') == 'numeric' ? '&#160;' : '&nbsp;';
+		h = h.replace(/<\/?(body|head|html)[^>]*>/gi, '');
+		h = h.replace(new RegExp(' (rowspan="1"|colspan="1")', 'g'), '');
+		h = h.replace(/<p><hr \/><\/p>/g, '<hr />');
+		h = h.replace(/<p>(&nbsp;|&#160;)<\/p><hr \/><p>(&nbsp;|&#160;)<\/p>/g, '<hr />');
+		h = h.replace(/<td>\s*<br \/>\s*<\/td>/g, '<td>' + nb + '</td>');
+		h = h.replace(/<p>\s*<br \/>\s*<\/p>/g, '<p>' + nb + '</p>');
+		h = h.replace(/<br \/>$/, ''); // Remove last BR for Gecko
+		h = h.replace(/<br \/><\/p>/g, '</p>'); // Remove last BR in P tags for Gecko
+		h = h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*(&nbsp;|&#160;)\s*<\/p>/g, '<p>' + nb + '</p>');
+		h = h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*<\/p>/g, '<p>' + nb + '</p>');
+		h = h.replace(/<p>\s*<br \/>\s*&nbsp;\s*<\/p>/g, '<p>' + nb + '</p>');
+		h = h.replace(new RegExp('<a>(.*?)<\\/a>', 'g'), '$1');
+		h = h.replace(/<p([^>]*)>\s*<\/p>/g, '<p$1>' + nb + '</p>');
+
+		// Clean body
+		if (/^\s*(<br \/>|<p>&nbsp;<\/p>|<p>&#160;<\/p>|<p><\/p>)\s*$/.test(h))
+			h = '';
+
+		// If preformatted
+		if (s.preformatted) {
+			h = h.replace(/^<pre>/, '');
+			h = h.replace(/<\/pre>$/, '');
+			h = '<pre>' + h + '</pre>';
+		}
+
+		// Gecko specific processing
+		if (tinyMCE.isGecko) {
+			// Makes no sence but FF generates it!!
+			h = h.replace(/<br \/>\s*<\/li>/g, '</li>');
+			h = h.replace(/&nbsp;\s*<\/(dd|dt)>/g, '</$1>');
+			h = h.replace(/<o:p _moz-userdefined="" \/>/g, '');
+			h = h.replace(/<td([^>]*)>\s*<br \/>\s*<\/td>/g, '<td$1>' + nb + '</td>');
+		}
+
+		if (s.force_br_newlines)
+			h = h.replace(/<p>(&nbsp;|&#160;)<\/p>/g, '<br />');
+
+		// Call custom cleanup code
+		h = tinyMCE._customCleanup(inst, on_save ? "get_from_editor" : "insert_to_editor", h);
+
+		// Remove internal classes
+		if (on_save) {
+			h = h.replace(new RegExp(' ?(mceItem[a-zA-Z0-9]*|' + s.visual_table_class + ')', 'g'), '');
+			h = h.replace(new RegExp(' ?class=""', 'g'), '');
+		}
+
+		if (s.remove_linebreaks && !c.settings.indent)
+			h = h.replace(/\n|\r/g, ' ');
+
+		if (d)
+			t4 = new Date().getTime();
+
+		if (on_save && c.settings.indent)
+			h = c.formatHTML(h);
+
+		// If encoding (not recommended option)
+		if (on_submit && (s.encoding == "xml" || s.encoding == "html"))
+			h = c.xmlEncode(h);
+
+		if (d)
+			t5 = new Date().getTime();
+
+		if (c.settings.debug)
+			tinyMCE.debug("Cleanup in ms: Pre=" + (t2-t1) + ", Serialize: " + (t3-t2) + ", Post: " + (t4-t3) + ", Format: " + (t5-t4) + ", Sum: " + (t5-t1) + ".");
+
+		return h;
+	}
+});
+
+function TinyMCE_Cleanup() {
+	this.isIE = (navigator.appName == "Microsoft Internet Explorer");
+	this.rules = tinyMCE.clearArray([]);
+
+	// Default config
+	this.settings = {
+		indent_elements : 'head,table,tbody,thead,tfoot,form,tr,ul,ol,blockquote,object',
+		newline_before_elements : 'h1,h2,h3,h4,h5,h6,pre,address,div,ul,ol,li,meta,option,area,title,link,base,script,td',
+		newline_after_elements : 'br,hr,p,pre,address,div,ul,ol,meta,option,area,link,base,script',
+		newline_before_after_elements : 'html,head,body,table,thead,tbody,tfoot,tr,form,ul,ol,blockquote,p,object,param,hr,div',
+		indent_char : '\t',
+		indent_levels : 1,
+		entity_encoding : 'raw',
+		valid_elements : '*[*]',
+		entities : '',
+		url_converter : '',
+		invalid_elements : '',
+		verify_html : false
+	};
+
+	this.vElements = tinyMCE.clearArray([]);
+	this.vElementsRe = '';
+	this.closeElementsRe = /^(IMG|BR|HR|LINK|META|BASE|INPUT|AREA)$/;
+	this.codeElementsRe = /^(SCRIPT|STYLE)$/;
+	this.serializationId = 0;
+	this.mceAttribs = {
+		href : 'mce_href',
+		src : 'mce_src',
+		type : 'mce_type'
+	};
+}
+
+TinyMCE_Cleanup.prototype = {
+	init : function(s) {
+		var n, a, i, ir, or, st;
+
+		for (n in s)
+			this.settings[n] = s[n];
+
+		// Setup code formating
+		s = this.settings;
+
+		// Setup regexps
+		this.inRe = this._arrayToRe(s.indent_elements.split(','), '', '^<(', ')[^>]*');
+		this.ouRe = this._arrayToRe(s.indent_elements.split(','), '', '^<\\/(', ')[^>]*');
+		this.nlBeforeRe = this._arrayToRe(s.newline_before_elements.split(','), 'gi', '<(',  ')([^>]*)>');
+		this.nlAfterRe = this._arrayToRe(s.newline_after_elements.split(','), 'gi', '<(',  ')([^>]*)>');
+		this.nlBeforeAfterRe = this._arrayToRe(s.newline_before_after_elements.split(','), 'gi', '<(\\/?)(', ')([^>]*)>');
+		this.serializedNodes = [];
+
+		if (s.invalid_elements !== '')
+			this.iveRe = this._arrayToRe(s.invalid_elements.toUpperCase().split(','), 'g', '^(', ')$');
+		else
+			this.iveRe = null;
+
+		// Setup separator
+		st = '';
+		for (i=0; i<s.indent_levels; i++)
+			st += s.indent_char;
+
+		this.inStr = st;
+
+		// If verify_html if false force *[*]
+		if (!s.verify_html) {
+			s.valid_elements = '*[*]';
+			s.extended_valid_elements = '';
+		}
+
+		this.fillStr = s.entity_encoding == "named" ? "&nbsp;" : "&#160;";
+		this.idCount = 0;
+		this.xmlEncodeRe = new RegExp('[\u007F-\uFFFF<>&"]', 'g');
+	},
+
+	addRuleStr : function(s) {
+		var r = this.parseRuleStr(s), n;
+
+		for (n in r) {
+			if (r[n])
+				this.rules[n] = r[n];
+		}
+
+		this.vElements = tinyMCE.clearArray([]);
+
+		for (n in this.rules) {
+			if (this.rules[n])
+				this.vElements[this.vElements.length] = this.rules[n].tag;
+		}
+
+		this.vElementsRe = this._arrayToRe(this.vElements, '');
+	},
+
+	isValid : function(n) {
+		if (!this.rulesDone)
+			this._setupRules(); // Will initialize cleanup rules
+
+		// Empty is true since it removes formatting
+		if (!n)
+			return true;
+
+		// Clean the name up a bit
+		n = n.replace(/[^a-z0-9]+/gi, '').toUpperCase();
+
+		return !tinyMCE.getParam('cleanup') || this.vElementsRe.test(n);
+	},
+
+	addChildRemoveRuleStr : function(s) {
+		var x, y, p, i, t, tn, ta, cl, r;
+
+		if (!s)
+			return;
+
+		ta = s.split(',');
+		for (x=0; x<ta.length; x++) {
+			s = ta[x];
+
+			// Split tag/children
+			p = this.split(/\[|\]/, s);
+			if (p == null || p.length < 1)
+				t = s.toUpperCase();
+			else
+				t = p[0].toUpperCase();
+
+			// Handle all tag names
+			tn = this.split('/', t);
+			for (y=0; y<tn.length; y++) {
+				r = "^(";
+
+				// Build regex
+				cl = this.split(/\|/, p[1]);
+				for (i=0; i<cl.length; i++) {
+					if (cl[i] == '%istrict')
+						r += tinyMCE.inlineStrict;
+					else if (cl[i] == '%itrans')
+						r += tinyMCE.inlineTransitional;
+					else if (cl[i] == '%istrict_na')
+						r += tinyMCE.inlineStrict.substring(2);
+					else if (cl[i] == '%itrans_na')
+						r += tinyMCE.inlineTransitional.substring(2);
+					else if (cl[i] == '%btrans')
+						r += tinyMCE.blockElms;
+					else if (cl[i] == '%strict')
+						r += tinyMCE.blockStrict;
+					else
+						r += (cl[i].charAt(0) != '#' ? cl[i].toUpperCase() : cl[i]);
+
+					r += (i != cl.length - 1 ? '|' : '');
+				}
+
+				r += ')$';
+
+				if (this.childRules == null)
+					this.childRules = tinyMCE.clearArray([]);
+
+				this.childRules[tn[y]] = new RegExp(r);
+
+				if (p.length > 1)
+					this.childRules[tn[y]].wrapTag = p[2];
+			}
+		}
+	},
+
+	parseRuleStr : function(s) {
+		var ta, p, r, a, i, x, px, t, tn, y, av, or = tinyMCE.clearArray([]), dv;
+
+		if (s == null || s.length == 0)
+			return or;
+
+		ta = s.split(',');
+		for (x=0; x<ta.length; x++) {
+			s = ta[x];
+			if (s.length == 0)
+				continue;
+
+			// Split tag/attrs
+			p = this.split(/\[|\]/, s);
+			if (p == null || p.length < 1)
+				t = s.toUpperCase();
+			else
+				t = p[0].toUpperCase();
+
+			// Handle all tag names
+			tn = this.split('/', t);
+			for (y=0; y<tn.length; y++) {
+				r = {};
+
+				r.tag = tn[y];
+				r.forceAttribs = null;
+				r.defaultAttribs = null;
+				r.validAttribValues = null;
+
+				// Handle prefixes
+				px = r.tag.charAt(0);
+				r.forceOpen = px == '+';
+				r.removeEmpty = px == '-';
+				r.fill = px == '#';
+				r.tag = r.tag.replace(/\+|-|#/g, '');
+				r.oTagName = tn[0].replace(/\+|-|#/g, '').toLowerCase();
+				r.isWild = new RegExp('\\*|\\?|\\+', 'g').test(r.tag);
+				r.validRe = new RegExp(this._wildcardToRe('^' + r.tag + '$'));
+
+				// Setup valid attributes
+				if (p.length > 1) {
+					r.vAttribsRe = '^(';
+					a = this.split(/\|/, p[1]);
+
+					for (i=0; i<a.length; i++) {
+						t = a[i];
+
+						if (t.charAt(0) == '!') {
+							a[i] = t = t.substring(1);
+
+							if (!r.reqAttribsRe)
+								r.reqAttribsRe = '\\s+(' + t;
+							else
+								r.reqAttribsRe += '|' + t;
+						}
+
+						av = new RegExp('(=|:|<)(.*?)$').exec(t);
+						t = t.replace(new RegExp('(=|:|<).*?$'), '');
+						if (av && av.length > 0) {
+							if (av[0].charAt(0) == ':') {
+								if (!r.forceAttribs)
+									r.forceAttribs = tinyMCE.clearArray([]);
+
+								r.forceAttribs[t.toLowerCase()] = av[0].substring(1);
+							} else if (av[0].charAt(0) == '=') {
+								if (!r.defaultAttribs)
+									r.defaultAttribs = tinyMCE.clearArray([]);
+
+								dv = av[0].substring(1);
+
+								r.defaultAttribs[t.toLowerCase()] = dv == '' ? "mce_empty" : dv;
+							} else if (av[0].charAt(0) == '<') {
+								if (!r.validAttribValues)
+									r.validAttribValues = tinyMCE.clearArray([]);
+
+								r.validAttribValues[t.toLowerCase()] = this._arrayToRe(this.split('?', av[0].substring(1)), 'i');
+							}
+						}
+
+						r.vAttribsRe += '' + t.toLowerCase() + (i != a.length - 1 ? '|' : '');
+
+						a[i] = t.toLowerCase();
+					}
+
+					if (r.reqAttribsRe)
+						r.reqAttribsRe = new RegExp(r.reqAttribsRe + ')=\"', 'g');
+
+					r.vAttribsRe += ')$';
+					r.vAttribsRe = this._wildcardToRe(r.vAttribsRe);
+					r.vAttribsReIsWild = new RegExp('\\*|\\?|\\+', 'g').test(r.vAttribsRe);
+					r.vAttribsRe = new RegExp(r.vAttribsRe);
+					r.vAttribs = a.reverse();
+
+					//tinyMCE.debug(r.tag, r.oTagName, r.vAttribsRe, r.vAttribsReWC);
+				} else {
+					r.vAttribsRe = '';
+					r.vAttribs = tinyMCE.clearArray([]);
+					r.vAttribsReIsWild = false;
+				}
+
+				or[r.tag] = r;
+			}
+		}
+
+		return or;
+	},
+
+	serializeNodeAsXML : function(n) {
+		var s, b;
+
+		if (!this.xmlDoc) {
+			if (this.isIE) {
+				try {this.xmlDoc = new ActiveXObject('MSXML2.DOMDocument');} catch (e) {}
+
+				if (!this.xmlDoc)
+					try {this.xmlDoc = new ActiveXObject('Microsoft.XmlDom');} catch (e) {}
+			} else
+				this.xmlDoc = document.implementation.createDocument('', '', null);
+
+			if (!this.xmlDoc)
+				alert("Error XML Parser could not be found.");
+		}
+
+		if (this.xmlDoc.firstChild)
+			this.xmlDoc.removeChild(this.xmlDoc.firstChild);
+
+		b = this.xmlDoc.createElement("html");
+		b = this.xmlDoc.appendChild(b);
+
+		this._convertToXML(n, b);
+
+		if (this.isIE)
+			return this.xmlDoc.xml;
+		else
+			return new XMLSerializer().serializeToString(this.xmlDoc);
+	},
+
+	_convertToXML : function(n, xn) {
+		var xd, el, i, l, cn, at, no, hc = false;
+
+		if (tinyMCE.isRealIE && this._isDuplicate(n))
+			return;
+
+		xd = this.xmlDoc;
+
+		switch (n.nodeType) {
+			case 1: // Element
+				hc = n.hasChildNodes();
+
+				el = xd.createElement(n.nodeName.toLowerCase());
+
+				at = n.attributes;
+				for (i=at.length-1; i>-1; i--) {
+					no = at[i];
+
+					if (no.specified && no.nodeValue)
+						el.setAttribute(no.nodeName.toLowerCase(), no.nodeValue);
+				}
+
+				if (!hc && !this.closeElementsRe.test(n.nodeName))
+					el.appendChild(xd.createTextNode(""));
+
+				xn = xn.appendChild(el);
+				break;
+
+			case 3: // Text
+				xn.appendChild(xd.createTextNode(n.nodeValue));
+				return;
+
+			case 8: // Comment
+				xn.appendChild(xd.createComment(n.nodeValue));
+				return;
+		}
+
+		if (hc) {
+			cn = n.childNodes;
+
+			for (i=0, l=cn.length; i<l; i++)
+				this._convertToXML(cn[i], xn);
+		}
+	},
+
+	serializeNodeAsHTML : function(n, inn) {
+		var en, no, h = '', i, l, t, st, r, cn, va = false, f = false, at, hc, cr, nn;
+
+		if (!this.rulesDone)
+			this._setupRules(); // Will initialize cleanup rules
+
+		if (tinyMCE.isRealIE && this._isDuplicate(n))
+			return '';
+
+		// Skip non valid child elements
+		if (n.parentNode && this.childRules != null) {
+			cr = this.childRules[n.parentNode.nodeName];
+
+			if (typeof(cr) != "undefined" && !cr.test(n.nodeName)) {
+				st = true;
+				t = null;
+			}
+		}
+
+		switch (n.nodeType) {
+			case 1: // Element
+				hc = n.hasChildNodes();
+
+				if (st)
+					break;
+
+				nn = n.nodeName;
+
+				if (tinyMCE.isRealIE) {
+					// MSIE sometimes produces <//tag>
+					if (n.nodeName.indexOf('/') != -1)
+						break;
+
+					// MSIE has it's NS in a separate attrib
+					if (n.scopeName && n.scopeName != 'HTML')
+						nn = n.scopeName.toUpperCase() + ':' + nn.toUpperCase();
+				} else if (tinyMCE.isOpera && nn.indexOf(':') > 0)
+					nn = nn.toUpperCase();
+
+				// Convert fonts to spans
+				if (this.settings.convert_fonts_to_spans) {
+					// On get content FONT -> SPAN
+					if (this.settings.on_save && nn == 'FONT')
+						nn = 'SPAN';
+
+					// On insert content SPAN -> FONT
+					if (!this.settings.on_save && nn == 'SPAN')
+						nn = 'FONT';
+				}
+
+				if (this.vElementsRe.test(nn) && (!this.iveRe || !this.iveRe.test(nn)) && !inn) {
+					va = true;
+
+					r = this.rules[nn];
+					if (!r) {
+						at = this.rules;
+						for (no in at) {
+							if (at[no] && at[no].validRe.test(nn)) {
+								r = at[no];
+								break;
+							}
+						}
+					}
+
+					en = r.isWild ? nn.toLowerCase() : r.oTagName;
+					f = r.fill;
+
+					if (r.removeEmpty && !hc)
+						return "";
+
+					t = '<' + en;
+
+					if (r.vAttribsReIsWild) {
+						// Serialize wildcard attributes
+						at = n.attributes;
+						for (i=at.length-1; i>-1; i--) {
+							no = at[i];
+							if (no.specified && r.vAttribsRe.test(no.nodeName))
+								t += this._serializeAttribute(n, r, no.nodeName);
+						}
+					} else {
+						// Serialize specific attributes
+						for (i=r.vAttribs.length-1; i>-1; i--)
+							t += this._serializeAttribute(n, r, r.vAttribs[i]);
+					}
+
+					// Serialize mce_ atts
+					if (!this.settings.on_save) {
+						at = this.mceAttribs;
+
+						for (no in at) {
+							if (at[no])
+								t += this._serializeAttribute(n, r, at[no]);
+						}
+					}
+
+					// Check for required attribs
+					if (r.reqAttribsRe && !t.match(r.reqAttribsRe))
+						t = null;
+
+					// Close these
+					if (t != null && this.closeElementsRe.test(nn))
+						return t + ' />';
+
+					if (t != null)
+						h += t + '>';
+
+					if (this.isIE && this.codeElementsRe.test(nn))
+						h += n.innerHTML;
+				}
+			break;
+
+			case 3: // Text
+				if (st)
+					break;
+
+				if (n.parentNode && this.codeElementsRe.test(n.parentNode.nodeName))
+					return this.isIE ? '' : n.nodeValue;
+
+				return this.xmlEncode(n.nodeValue);
+
+			case 8: // Comment
+				if (st)
+					break;
+
+				return "<!--" + this._trimComment(n.nodeValue) + "-->";
+		}
+
+		if (hc) {
+			cn = n.childNodes;
+
+			for (i=0, l=cn.length; i<l; i++)
+				h += this.serializeNodeAsHTML(cn[i]);
+		}
+
+		// Fill empty nodes
+		if (f && !hc)
+			h += this.fillStr;
+
+		// End element
+		if (t != null && va)
+			h += '</' + en + '>';
+
+		return h;
+	},
+
+	_serializeAttribute : function(n, r, an) {
+		var av = '', t, os = this.settings.on_save;
+
+		if (os && (an.indexOf('mce_') == 0 || an.indexOf('_moz') == 0))
+			return '';
+
+		if (os && this.mceAttribs[an])
+			av = this._getAttrib(n, this.mceAttribs[an]);
+
+		if (av.length == 0)
+			av = this._getAttrib(n, an);
+
+		if (av.length == 0 && r.defaultAttribs && (t = r.defaultAttribs[an])) {
+			av = t;
+
+			if (av == "mce_empty")
+				return " " + an + '=""';
+		}
+
+		if (r.forceAttribs && (t = r.forceAttribs[an]))
+			av = t;
+
+		if (os && av.length != 0 && /^(src|href|longdesc)$/.test(an))
+			av = this._urlConverter(this, n, av);
+
+		if (av.length != 0 && r.validAttribValues && r.validAttribValues[an] && !r.validAttribValues[an].test(av))
+			return "";
+
+		if (av.length != 0 && av == "{$uid}")
+			av = "uid_" + (this.idCount++);
+
+		if (av.length != 0) {
+			if (an.indexOf('on') != 0)
+				av = this.xmlEncode(av, 1);
+
+			return " " + an + "=" + '"' + av + '"';
+		}
+
+		return "";
+	},
+
+	formatHTML : function(h) {
+		var s = this.settings, p = '', i = 0, li = 0, o = '', l;
+
+		// Replace BR in pre elements to \n
+		h = h.replace(/<pre([^>]*)>(.*?)<\/pre>/gi, function (a, b, c) {
+			c = c.replace(/<br\s*\/>/gi, '\n');
+			return '<pre' + b + '>' + c + '</pre>';
+		});
+
+		h = h.replace(/\r/g, ''); // Windows sux, isn't carriage return a thing of the past :)
+		h = '\n' + h;
+		h = h.replace(new RegExp('\\n\\s+', 'gi'), '\n'); // Remove previous formatting
+		h = h.replace(this.nlBeforeRe, '\n<$1$2>');
+		h = h.replace(this.nlAfterRe, '<$1$2>\n');
+		h = h.replace(this.nlBeforeAfterRe, '\n<$1$2$3>\n');
+		h += '\n';
+
+		//tinyMCE.debug(h);
+
+		while ((i = h.indexOf('\n', i + 1)) != -1) {
+			if ((l = h.substring(li + 1, i)).length != 0) {
+				if (this.ouRe.test(l) && p.length >= s.indent_levels)
+					p = p.substring(s.indent_levels);
+
+				o += p + l + '\n';
+	
+				if (this.inRe.test(l))
+					p += this.inStr;
+			}
+
+			li = i;
+		}
+
+		//tinyMCE.debug(h);
+
+		return o;
+	},
+
+	xmlEncode : function(s) {
+		var cl = this, re = this.xmlEncodeRe;
+
+		if (!this.entitiesDone)
+			this._setupEntities(); // Will intialize lookup table
+
+		switch (this.settings.entity_encoding) {
+			case "raw":
+				return tinyMCE.xmlEncode(s);
+
+			case "named":
+				return s.replace(re, function (c) {
+					var b = cl.entities[c.charCodeAt(0)];
+
+					return b ? '&' + b + ';' : c;
+				});
+
+			case "numeric":
+				return s.replace(re, function (c) {
+					return '&#' + c.charCodeAt(0) + ';';
+				});
+		}
+
+		return s;
+	},
+
+	split : function(re, s) {
+		var i, l, o = [], c = s.split(re);
+
+		for (i=0, l=c.length; i<l; i++) {
+			if (c[i] !== '')
+				o[i] = c[i];
+		}
+
+		return o;
+	},
+
+	_trimComment : function(s) {
+		// Remove mce_src, mce_href
+		s = s.replace(new RegExp('\\smce_src=\"[^\"]*\"', 'gi'), "");
+		s = s.replace(new RegExp('\\smce_href=\"[^\"]*\"', 'gi'), "");
+
+		return s;
+	},
+
+	_getAttrib : function(e, n, d) {
+		var v, ex, nn;
+
+		if (typeof(d) == "undefined")
+			d = "";
+
+		if (!e || e.nodeType != 1)
+			return d;
+
+		try {
+			v = e.getAttribute(n, 0);
+		} catch (ex) {
+			// IE 7 may cast exception on invalid attributes
+			v = e.getAttribute(n, 2);
+		}
+
+		if (n == "class" && !v)
+			v = e.className;
+
+		if (this.isIE) {
+			if (n == "http-equiv")
+				v = e.httpEquiv;
+
+			nn = e.nodeName;
+
+			// Skip the default values that IE returns
+			if (nn == "FORM" && n == "enctype" && v == "application/x-www-form-urlencoded")
+				v = "";
+
+			if (nn == "INPUT" && n == "size" && v == "20")
+				v = "";
+
+			if (nn == "INPUT" && n == "maxlength" && v == "2147483647")
+				v = "";
+
+			// Images
+			if (n == "width" || n == "height")
+				v = e.getAttribute(n, 2);
+		}
+
+		if (n == 'style' && v) {
+			if (!tinyMCE.isOpera)
+				v = e.style.cssText;
+
+			v = tinyMCE.serializeStyle(tinyMCE.parseStyle(v));
+		}
+
+		if (this.settings.on_save && n.indexOf('on') != -1 && this.settings.on_save && v && v !== '')
+			v = tinyMCE.cleanupEventStr(v);
+
+		return (v && v !== '') ? '' + v : d;
+	},
+
+	_urlConverter : function(c, n, v) {
+		if (!c.settings.on_save)
+			return tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, v);
+		else if (tinyMCE.getParam('convert_urls')) {
+			if (!this.urlConverter)
+				this.urlConverter = eval(tinyMCE.settings.urlconverter_callback);
+
+			return this.urlConverter(v, n, true);
+		}
+
+		return v;
+	},
+
+	_arrayToRe : function(a, op, be, af) {
+		var i, r;
+
+		op = typeof(op) == "undefined" ? "gi" : op;
+		be = typeof(be) == "undefined" ? "^(" : be;
+		af = typeof(af) == "undefined" ? ")$" : af;
+
+		r = be;
+
+		for (i=0; i<a.length; i++)
+			r += this._wildcardToRe(a[i]) + (i != a.length-1 ? "|" : "");
+
+		r += af;
+
+		return new RegExp(r, op);
+	},
+
+	_wildcardToRe : function(s) {
+		s = s.replace(/\?/g, '(\\S?)');
+		s = s.replace(/\+/g, '(\\S+)');
+		s = s.replace(/\*/g, '(\\S*)');
+
+		return s;
+	},
+
+	_setupEntities : function() {
+		var n, a, i, s = this.settings;
+
+		// Setup entities
+		if (s.entity_encoding == "named") {
+			n = tinyMCE.clearArray([]);
+			a = this.split(',', s.entities);
+			for (i=0; i<a.length; i+=2)
+				n[a[i]] = a[i+1];
+
+			this.entities = n;
+		}
+
+		this.entitiesDone = true;
+	},
+
+	_setupRules : function() {
+		var s = this.settings;
+
+		// Setup default rule
+		this.addRuleStr(s.valid_elements);
+		this.addRuleStr(s.extended_valid_elements);
+		this.addChildRemoveRuleStr(s.valid_child_elements);
+
+		this.rulesDone = true;
+	},
+
+	_isDuplicate : function(n) {
+		var i, l, sn;
+
+		if (!this.settings.fix_content_duplication)
+			return false;
+
+		if (tinyMCE.isRealIE && n.nodeType == 1) {
+			// Mark elements
+			if (n.mce_serialized == this.serializationId)
+				return true;
+
+			n.setAttribute('mce_serialized', this.serializationId);
+		} else {
+			sn = this.serializedNodes;
+
+			// Search lookup table for text nodes  and comments
+			for (i=0, l = sn.length; i<l; i++) {
+				if (sn[i] == n)
+					return true;
+			}
+
+			sn.push(n);
+		}
+
+		return false;
+	}
+
+	};
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_DOMUtils.class.js */
+
+tinyMCE.add(TinyMCE_Engine, {
+	createTagHTML : function(tn, a, h) {
+		var o = '', f = tinyMCE.xmlEncode, n;
+
+		o = '<' + tn;
+
+		if (a) {
+			for (n in a) {
+				if (typeof(a[n]) != 'function' && a[n] != null)
+					o += ' ' + f(n) + '="' + f('' + a[n]) + '"';
+			}
+		}
+
+		o += !h ? ' />' : '>' + h + '</' + tn + '>';
+
+		return o;
+	},
+
+	createTag : function(d, tn, a, h) {
+		var o = d.createElement(tn), n;
+
+		if (a) {
+			for (n in a) {
+				if (typeof(a[n]) != 'function' && a[n] != null)
+					tinyMCE.setAttrib(o, n, a[n]);
+			}
+		}
+
+		if (h)
+			o.innerHTML = h;
+
+		return o;
+	},
+
+	getElementByAttributeValue : function(n, e, a, v) {
+		return (n = this.getElementsByAttributeValue(n, e, a, v)).length == 0 ? null : n[0];
+	},
+
+	getElementsByAttributeValue : function(n, e, a, v) {
+		var i, nl = n.getElementsByTagName(e), o = [];
+
+		for (i=0; i<nl.length; i++) {
+			if (tinyMCE.getAttrib(nl[i], a).indexOf(v) != -1)
+				o[o.length] = nl[i];
+		}
+
+		return o;
+	},
+
+	isBlockElement : function(n) {
+		return n != null && n.nodeType == 1 && this.blockRegExp.test(n.nodeName);
+	},
+
+	getParentBlockElement : function(n, r) {
+		return this.getParentNode(n, function(n) {
+			return tinyMCE.isBlockElement(n);
+		}, r);
+
+		return null;
+	},
+
+	insertAfter : function(n, r){
+		if (r.nextSibling)
+			r.parentNode.insertBefore(n, r.nextSibling);
+		else
+			r.parentNode.appendChild(n);
+	},
+
+	setInnerHTML : function(e, h) {
+		var i, nl, n;
+
+		// Convert all strong/em to b/i in Gecko
+		if (tinyMCE.isGecko) {
+			h = h.replace(/<embed([^>]*)>/gi, '<tmpembed$1>');
+			h = h.replace(/<em([^>]*)>/gi, '<i$1>');
+			h = h.replace(/<tmpembed([^>]*)>/gi, '<embed$1>');
+			h = h.replace(/<strong([^>]*)>/gi, '<b$1>');
+			h = h.replace(/<\/strong>/gi, '</b>');
+			h = h.replace(/<\/em>/gi, '</i>');
+		}
+
+		if (tinyMCE.isRealIE) {
+			// Since MSIE handles invalid HTML better that valid XHTML we
+			// need to make some things invalid. <hr /> gets converted to <hr>.
+			h = h.replace(/\s\/>/g, '>');
+
+			// Since MSIE auto generated emtpy P tags some times we must tell it to keep the real ones
+			h = h.replace(/<p([^>]*)>\u00A0?<\/p>/gi, '<p$1 mce_keep="true">&nbsp;</p>'); // Keep empty paragraphs
+			h = h.replace(/<p([^>]*)>\s*&nbsp;\s*<\/p>/gi, '<p$1 mce_keep="true">&nbsp;</p>'); // Keep empty paragraphs
+			h = h.replace(/<p([^>]*)>\s+<\/p>/gi, '<p$1 mce_keep="true">&nbsp;</p>'); // Keep empty paragraphs
+
+			// Remove first comment
+			e.innerHTML = tinyMCE.uniqueTag + h;
+			e.firstChild.removeNode(true);
+
+			// Remove weird auto generated empty paragraphs unless it's supposed to be there
+			nl = e.getElementsByTagName("p");
+			for (i=nl.length-1; i>=0; i--) {
+				n = nl[i];
+
+				if (n.nodeName == 'P' && !n.hasChildNodes() && !n.mce_keep)
+					n.parentNode.removeChild(n);
+			}
+		} else {
+			h = this.fixGeckoBaseHREFBug(1, e, h);
+			e.innerHTML = h;
+			this.fixGeckoBaseHREFBug(2, e, h);
+		}
+	},
+
+	getOuterHTML : function(e) {
+		var d;
+
+		if (tinyMCE.isIE)
+			return e.outerHTML;
+
+		d = e.ownerDocument.createElement("body");
+		d.appendChild(e.cloneNode(true));
+
+		return d.innerHTML;
+	},
+
+	setOuterHTML : function(e, h, d) {
+		var d = typeof(d) == "undefined" ? e.ownerDocument : d, i, nl, t;
+
+		if (tinyMCE.isIE && e.nodeType == 1)
+			e.outerHTML = h;
+		else {
+			t = d.createElement("body");
+			t.innerHTML = h;
+
+			for (i=0, nl=t.childNodes; i<nl.length; i++)
+				e.parentNode.insertBefore(nl[i].cloneNode(true), e);
+
+			e.parentNode.removeChild(e);
+		}
+	},
+
+	_getElementById : function(id, d) {
+		var e, i, j, f;
+
+		if (typeof(d) == "undefined")
+			d = document;
+
+		e = d.getElementById(id);
+		if (!e) {
+			f = d.forms;
+
+			for (i=0; i<f.length; i++) {
+				for (j=0; j<f[i].elements.length; j++) {
+					if (f[i].elements[j].name == id) {
+						e = f[i].elements[j];
+						break;
+					}
+				}
+			}
+		}
+
+		return e;
+	},
+
+	getNodeTree : function(n, na, t, nn) {
+		return this.selectNodes(n, function(n) {
+			return (!t || n.nodeType == t) && (!nn || n.nodeName == nn);
+		}, na ? na : []);
+	},
+
+	getParentElement : function(n, na, f, r) {
+		var re = na ? new RegExp('^(' + na.toUpperCase().replace(/,/g, '|') + ')$') : 0, v;
+
+		// Compatiblity with old scripts where f param was a attribute string
+		if (f && typeof(f) == 'string')
+			return this.getParentElement(n, na, function(no) {return tinyMCE.getAttrib(no, f) !== '';});
+
+		return this.getParentNode(n, function(n) {
+			return ((n.nodeType == 1 && !re) || (re && re.test(n.nodeName))) && (!f || f(n));
+		}, r);
+	},
+
+	getParentNode : function(n, f, r) {
+		while (n) {
+			if (n == r)
+				return null;
+
+			if (f(n))
+				return n;
+
+			n = n.parentNode;
+		}
+
+		return null;
+	},
+
+	getAttrib : function(elm, name, dv) {
+		var v;
+
+		if (typeof(dv) == "undefined")
+			dv = "";
+
+		// Not a element
+		if (!elm || elm.nodeType != 1)
+			return dv;
+
+		try {
+			v = elm.getAttribute(name, 0);
+		} catch (ex) {
+			// IE 7 may cast exception on invalid attributes
+			v = elm.getAttribute(name, 2);
+		}
+
+		// Try className for class attrib
+		if (name == "class" && !v)
+			v = elm.className;
+
+		// Workaround for a issue with Firefox 1.5rc2+
+		if (tinyMCE.isGecko) {
+			if (name == "src" && elm.src != null && elm.src !== '')
+				v = elm.src;
+
+			// Workaround for a issue with Firefox 1.5rc2+
+			if (name == "href" && elm.href != null && elm.href !== '')
+				v = elm.href;
+		} else if (tinyMCE.isIE) {
+			switch (name) {
+				case "http-equiv":
+					v = elm.httpEquiv;
+					break;
+
+				case "width":
+				case "height":
+					v = elm.getAttribute(name, 2);
+					break;
+			}
+		}
+
+		if (name == "style" && !tinyMCE.isOpera)
+			v = elm.style.cssText;
+
+		return (v && v !== '') ? v : dv;
+	},
+
+	setAttrib : function(el, name, va, fix) {
+		if (typeof(va) == "number" && va != null)
+			va = "" + va;
+
+		if (fix) {
+			if (va == null)
+				va = "";
+
+			va = va.replace(/[^0-9%]/g, '');
+		}
+
+		if (name == "style")
+			el.style.cssText = va;
+
+		if (name == "class")
+			el.className = va;
+
+		if (va != null && va !== '' && va != -1)
+			el.setAttribute(name, va);
+		else
+			el.removeAttribute(name);
+	},
+
+	setStyleAttrib : function(e, n, v) {
+		e.style[n] = v;
+
+		// Style attrib deleted in IE
+		if (tinyMCE.isIE && v == null || v == '') {
+			v = tinyMCE.serializeStyle(tinyMCE.parseStyle(e.style.cssText));
+			e.style.cssText = v;
+			e.setAttribute("style", v);
+		}
+	},
+
+	switchClass : function(ei, c) {
+		var e;
+
+		if (tinyMCE.switchClassCache[ei])
+			e = tinyMCE.switchClassCache[ei];
+		else
+			e = tinyMCE.switchClassCache[ei] = document.getElementById(ei);
+
+		if (e) {
+			// Keep tile mode
+			if (tinyMCE.settings.button_tile_map && e.className && e.className.indexOf('mceTiledButton') == 0)
+				c = 'mceTiledButton ' + c;
+
+			e.className = c;
+		}
+	},
+
+	getAbsPosition : function(n, cn) {
+		var l = 0, t = 0;
+
+		while (n && n != cn) {
+			l += n.offsetLeft;
+			t += n.offsetTop;
+			n = n.offsetParent;
+		}
+
+		return {absLeft : l, absTop : t};
+	},
+
+	prevNode : function(e, n) {
+		var a = n.split(','), i;
+
+		while ((e = e.previousSibling) != null) {
+			for (i=0; i<a.length; i++) {
+				if (e.nodeName == a[i])
+					return e;
+			}
+		}
+
+		return null;
+	},
+
+	nextNode : function(e, n) {
+		var a = n.split(','), i;
+
+		while ((e = e.nextSibling) != null) {
+			for (i=0; i<a.length; i++) {
+				if (e.nodeName == a[i])
+					return e;
+			}
+		}
+
+		return null;
+	},
+
+	selectElements : function(n, na, f) {
+		var i, a = [], nl, x;
+
+		for (x=0, na = na.split(','); x<na.length; x++)
+			for (i=0, nl = n.getElementsByTagName(na[x]); i<nl.length; i++)
+				(!f || f(nl[i])) && a.push(nl[i]);
+
+		return a;
+	},
+
+	selectNodes : function(n, f, a) {
+		var i;
+
+		if (!a)
+			a = [];
+
+		if (f(n))
+			a[a.length] = n;
+
+		if (n.hasChildNodes()) {
+			for (i=0; i<n.childNodes.length; i++)
+				tinyMCE.selectNodes(n.childNodes[i], f, a);
+		}
+
+		return a;
+	},
+
+	addCSSClass : function(e, c, b) {
+		var o = this.removeCSSClass(e, c);
+		return e.className = b ? c + (o !== '' ? (' ' + o) : '') : (o !== '' ? (o + ' ') : '') + c;
+	},
+
+	removeCSSClass : function(e, c) {
+		c = e.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' ');
+		return e.className = c != ' ' ? c : '';
+	},
+
+	hasCSSClass : function(n, c) {
+		return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
+	},
+
+	renameElement : function(e, n, d) {
+		var ne, i, ar;
+
+		d = typeof(d) == "undefined" ? tinyMCE.selectedInstance.getDoc() : d;
+
+		if (e) {
+			ne = d.createElement(n);
+
+			ar = e.attributes;
+			for (i=ar.length-1; i>-1; i--) {
+				if (ar[i].specified && ar[i].nodeValue)
+					ne.setAttribute(ar[i].nodeName.toLowerCase(), ar[i].nodeValue);
+			}
+
+			ar = e.childNodes;
+			for (i=0; i<ar.length; i++)
+				ne.appendChild(ar[i].cloneNode(true));
+
+			e.parentNode.replaceChild(ne, e);
+		}
+	},
+
+	getViewPort : function(w) {
+		var d = w.document, m = d.compatMode == 'CSS1Compat', b = d.body, de = d.documentElement;
+
+		return {
+			left : w.pageXOffset || (m ? de.scrollLeft : b.scrollLeft),
+			top : w.pageYOffset || (m ? de.scrollTop : b.scrollTop),
+			width : w.innerWidth || (m ? de.clientWidth : b.clientWidth),
+			height : w.innerHeight || (m ? de.clientHeight : b.clientHeight)
+		};
+	},
+
+	getStyle : function(n, na, d) {
+		if (!n)
+			return false;
+
+		// Gecko
+		if (tinyMCE.isGecko && n.ownerDocument.defaultView) {
+			try {
+				return n.ownerDocument.defaultView.getComputedStyle(n, null).getPropertyValue(na);
+			} catch (n) {
+				// Old safari might fail
+				return null;
+			}
+		}
+
+		// Camelcase it, if needed
+		na = na.replace(/-(\D)/g, function(a, b){
+			return b.toUpperCase();
+		});
+
+		// IE & Opera
+		if (n.currentStyle)
+			return n.currentStyle[na];
+
+		return false;
+	}
+
+	});
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_URL.class.js */
+
+tinyMCE.add(TinyMCE_Engine, {
+	parseURL : function(url_str) {
+		var urlParts = [], i, pos, lastPos, chr;
+
+		if (url_str) {
+			// Parse protocol part
+			pos = url_str.indexOf('://');
+			if (pos != -1) {
+				urlParts.protocol = url_str.substring(0, pos);
+				lastPos = pos + 3;
+			}
+
+			// Find port or path start
+			for (i=lastPos; i<url_str.length; i++) {
+				chr = url_str.charAt(i);
+
+				if (chr == ':')
+					break;
+
+				if (chr == '/')
+					break;
+			}
+			pos = i;
+
+			// Get host
+			urlParts.host = url_str.substring(lastPos, pos);
+
+			// Get port
+			urlParts.port = "";
+			lastPos = pos;
+			if (url_str.charAt(pos) == ':') {
+				pos = url_str.indexOf('/', lastPos);
+				urlParts.port = url_str.substring(lastPos+1, pos);
+			}
+
+			// Get path
+			lastPos = pos;
+			pos = url_str.indexOf('?', lastPos);
+
+			if (pos == -1)
+				pos = url_str.indexOf('#', lastPos);
+
+			if (pos == -1)
+				pos = url_str.length;
+
+			urlParts.path = url_str.substring(lastPos, pos);
+
+			// Get query
+			lastPos = pos;
+			if (url_str.charAt(pos) == '?') {
+				pos = url_str.indexOf('#');
+				pos = (pos == -1) ? url_str.length : pos;
+				urlParts.query = url_str.substring(lastPos+1, pos);
+			}
+
+			// Get anchor
+			lastPos = pos;
+			if (url_str.charAt(pos) == '#') {
+				pos = url_str.length;
+				urlParts.anchor = url_str.substring(lastPos+1, pos);
+			}
+		}
+
+		return urlParts;
+	},
+
+	serializeURL : function(up) {
+		var o = "";
+
+		if (up.protocol)
+			o += up.protocol + "://";
+
+		if (up.host)
+			o += up.host;
+
+		if (up.port)
+			o += ":" + up.port;
+
+		if (up.path)
+			o += up.path;
+
+		if (up.query)
+			o += "?" + up.query;
+
+		if (up.anchor)
+			o += "#" + up.anchor;
+
+		return o;
+	},
+
+	convertAbsoluteURLToRelativeURL : function(base_url, url_to_relative) {
+		var baseURL = this.parseURL(base_url), targetURL = this.parseURL(url_to_relative);
+		var i, strTok1, strTok2, breakPoint = 0, outPath = "", forceSlash = false;
+		var fileName, pos;
+
+		if (targetURL.path == '')
+			targetURL.path = "/";
+		else
+			forceSlash = true;
+
+		// Crop away last path part
+		base_url = baseURL.path.substring(0, baseURL.path.lastIndexOf('/'));
+		strTok1 = base_url.split('/');
+		strTok2 = targetURL.path.split('/');
+
+		if (strTok1.length >= strTok2.length) {
+			for (i=0; i<strTok1.length; i++) {
+				if (i >= strTok2.length || strTok1[i] != strTok2[i]) {
+					breakPoint = i + 1;
+					break;
+				}
+			}
+		}
+
+		if (strTok1.length < strTok2.length) {
+			for (i=0; i<strTok2.length; i++) {
+				if (i >= strTok1.length || strTok1[i] != strTok2[i]) {
+					breakPoint = i + 1;
+					break;
+				}
+			}
+		}
+
+		if (breakPoint == 1)
+			return targetURL.path;
+
+		for (i=0; i<(strTok1.length-(breakPoint-1)); i++)
+			outPath += "../";
+
+		for (i=breakPoint-1; i<strTok2.length; i++) {
+			if (i != (breakPoint-1))
+				outPath += "/" + strTok2[i];
+			else
+				outPath += strTok2[i];
+		}
+
+		targetURL.protocol = null;
+		targetURL.host = null;
+		targetURL.port = null;
+		targetURL.path = outPath == '' && forceSlash ? "/" : outPath;
+
+		// Remove document prefix from local anchors
+		fileName = baseURL.path;
+
+		if ((pos = fileName.lastIndexOf('/')) != -1)
+			fileName = fileName.substring(pos + 1);
+
+		// Is local anchor
+		if (fileName == targetURL.path && targetURL.anchor !== '')
+			targetURL.path = "";
+
+		// If empty and not local anchor force filename or slash
+		if (targetURL.path == '' && !targetURL.anchor)
+			targetURL.path = fileName !== '' ? fileName : "/";
+
+		return this.serializeURL(targetURL);
+	},
+
+	convertRelativeToAbsoluteURL : function(base_url, relative_url) {
+		var baseURL = this.parseURL(base_url), baseURLParts, relURLParts, newRelURLParts, numBack, relURL = this.parseURL(relative_url), i;
+		var len, absPath, start, end, newBaseURLParts;
+
+		if (relative_url == '' || relative_url.indexOf('://') != -1 || /^(mailto:|javascript:|#|\/)/.test(relative_url))
+			return relative_url;
+
+		// Split parts
+		baseURLParts = baseURL.path.split('/');
+		relURLParts = relURL.path.split('/');
+
+		// Remove empty chunks
+		newBaseURLParts = [];
+		for (i=baseURLParts.length-1; i>=0; i--) {
+			if (baseURLParts[i].length == 0)
+				continue;
+
+			newBaseURLParts[newBaseURLParts.length] = baseURLParts[i];
+		}
+		baseURLParts = newBaseURLParts.reverse();
+
+		// Merge relURLParts chunks
+		newRelURLParts = [];
+		numBack = 0;
+		for (i=relURLParts.length-1; i>=0; i--) {
+			if (relURLParts[i].length == 0 || relURLParts[i] == ".")
+				continue;
+
+			if (relURLParts[i] == '..') {
+				numBack++;
+				continue;
+			}
+
+			if (numBack > 0) {
+				numBack--;
+				continue;
+			}
+
+			newRelURLParts[newRelURLParts.length] = relURLParts[i];
+		}
+
+		relURLParts = newRelURLParts.reverse();
+
+		// Remove end from absolute path
+		len = baseURLParts.length-numBack;
+		absPath = (len <= 0 ? "" : "/") + baseURLParts.slice(0, len).join('/') + "/" + relURLParts.join('/');
+		start = "";
+		end = "";
+
+		// Build output URL
+		relURL.protocol = baseURL.protocol;
+		relURL.host = baseURL.host;
+		relURL.port = baseURL.port;
+
+		// Re-add trailing slash if it's removed
+		if (relURL.path.charAt(relURL.path.length-1) == "/")
+			absPath += "/";
+
+		relURL.path = absPath;
+
+		return this.serializeURL(relURL);
+	},
+
+	convertURL : function(url, node, on_save) {
+		var dl = document.location, start, portPart, urlParts, baseUrlParts, tmpUrlParts, curl;
+		var prot = dl.protocol, host = dl.hostname, port = dl.port;
+
+		// Pass through file protocol
+		if (prot == "file:")
+			return url;
+
+		// Something is wrong, remove weirdness
+		url = tinyMCE.regexpReplace(url, '(http|https):///', '/');
+
+		// Mailto link or anchor (Pass through)
+		if (url.indexOf('mailto:') != -1 || url.indexOf('javascript:') != -1 || /^[ \t\r\n\+]*[#\?]/.test(url))
+			return url;
+
+		// Fix relative/Mozilla
+		if (!tinyMCE.isIE && !on_save && url.indexOf("://") == -1 && url.charAt(0) != '/')
+			return tinyMCE.settings.base_href + url;
+
+		// Handle relative URLs
+		if (on_save && tinyMCE.getParam('relative_urls')) {
+			curl = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, url);
+			if (curl.charAt(0) == '/')
+				curl = tinyMCE.settings.document_base_prefix + curl;
+
+			urlParts = tinyMCE.parseURL(curl);
+			tmpUrlParts = tinyMCE.parseURL(tinyMCE.settings.document_base_url);
+
+			// Force relative
+			if (urlParts.host == tmpUrlParts.host && (urlParts.port == tmpUrlParts.port))
+				return tinyMCE.convertAbsoluteURLToRelativeURL(tinyMCE.settings.document_base_url, curl);
+		}
+
+		// Handle absolute URLs
+		if (!tinyMCE.getParam('relative_urls')) {
+			urlParts = tinyMCE.parseURL(url);
+			baseUrlParts = tinyMCE.parseURL(tinyMCE.settings.base_href);
+
+			// Force absolute URLs from relative URLs
+			url = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, url);
+
+			// If anchor and path is the same page
+			if (urlParts.anchor && urlParts.path == baseUrlParts.path)
+				return "#" + urlParts.anchor;
+		}
+
+		// Remove current domain
+		if (tinyMCE.getParam('remove_script_host')) {
+			start = "";
+			portPart = "";
+
+			if (port !== '')
+				portPart = ":" + port;
+
+			start = prot + "//" + host + portPart + "/";
+
+			if (url.indexOf(start) == 0)
+				url = url.substring(start.length-1);
+		}
+
+		return url;
+	},
+
+	convertAllRelativeURLs : function(body) {
+		var i, elms, src, href, mhref, msrc;
+
+		// Convert all image URL:s to absolute URL
+		elms = body.getElementsByTagName("img");
+		for (i=0; i<elms.length; i++) {
+			src = tinyMCE.getAttrib(elms[i], 'src');
+
+			msrc = tinyMCE.getAttrib(elms[i], 'mce_src');
+			if (msrc !== '')
+				src = msrc;
+
+			if (src !== '') {
+				src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, src);
+				elms[i].setAttribute("src", src);
+			}
+		}
+
+		// Convert all link URL:s to absolute URL
+		elms = body.getElementsByTagName("a");
+		for (i=0; i<elms.length; i++) {
+			href = tinyMCE.getAttrib(elms[i], 'href');
+
+			mhref = tinyMCE.getAttrib(elms[i], 'mce_href');
+			if (mhref !== '')
+				href = mhref;
+
+			if (href && href !== '') {
+				href = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, href);
+				elms[i].setAttribute("href", href);
+			}
+		}
+	}
+
+	});
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_Array.class.js */
+
+tinyMCE.add(TinyMCE_Engine, {
+	clearArray : function(a) {
+		var n;
+
+		for (n in a)
+			a[n] = null;
+
+		return a;
+	},
+
+	explode : function(d, s) {
+		var ar = s.split(d), oar = [], i;
+
+		for (i = 0; i<ar.length; i++) {
+			if (ar[i] !== '')
+				oar[oar.length] = ar[i];
+		}
+
+		return oar;
+	}
+});
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_Event.class.js */
+
+tinyMCE.add(TinyMCE_Engine, {
+	_setEventsEnabled : function(node, state) {
+		var evs, x, y, elms, i, event;
+		var events = ['onfocus','onblur','onclick','ondblclick',
+					'onmousedown','onmouseup','onmouseover','onmousemove',
+					'onmouseout','onkeypress','onkeydown','onkeydown','onkeyup'];
+
+		evs = tinyMCE.settings.event_elements.split(',');
+		for (y=0; y<evs.length; y++){
+			elms = node.getElementsByTagName(evs[y]);
+			for (i=0; i<elms.length; i++) {
+				event = "";
+
+				for (x=0; x<events.length; x++) {
+					if ((event = tinyMCE.getAttrib(elms[i], events[x])) !== '') {
+						event = tinyMCE.cleanupEventStr("" + event);
+
+						if (!state)
+							event = "return true;" + event;
+						else
+							event = event.replace(/^return true;/gi, '');
+
+						elms[i].removeAttribute(events[x]);
+						elms[i].setAttribute(events[x], event);
+					}
+				}
+			}
+		}
+	},
+
+	_eventPatch : function(editor_id) {
+		var n, inst, win, e;
+
+		// Remove odd, error
+		if (typeof(tinyMCE) == "undefined")
+			return true;
+
+		try {
+			// Try selected instance first
+			if (tinyMCE.selectedInstance) {
+				win = tinyMCE.selectedInstance.getWin();
+
+				if (win && win.event) {
+					e = win.event;
+
+					if (!e.target)
+						e.target = e.srcElement;
+
+					TinyMCE_Engine.prototype.handleEvent(e);
+					return;
+				}
+			}
+
+			// Search for it
+			for (n in tinyMCE.instances) {
+				inst = tinyMCE.instances[n];
+
+				if (!tinyMCE.isInstance(inst))
+					continue;
+
+				inst.select();
+				win = inst.getWin();
+
+				if (win && win.event) {
+					e = win.event;
+
+					if (!e.target)
+						e.target = e.srcElement;
+
+					TinyMCE_Engine.prototype.handleEvent(e);
+					return;
+				}
+			}
+		} catch (ex) {
+			// Ignore error if iframe is pointing to external URL
+		}
+	},
+
+	findEvent : function(e) {
+		var n, inst;
+
+		if (e)
+			return e;
+
+		for (n in tinyMCE.instances) {
+			inst = tinyMCE.instances[n];
+
+			if (tinyMCE.isInstance(inst) && inst.getWin().event)
+				return inst.getWin().event;
+		}
+
+		return null;
+	},
+
+	unloadHandler : function() {
+		tinyMCE.triggerSave(true, true);
+	},
+
+	addEventHandlers : function(inst) {
+		this.setEventHandlers(inst, 1);
+	},
+
+	setEventHandlers : function(inst, s) {
+		var doc = inst.getDoc(), ie, ot, i, f = s ? tinyMCE.addEvent : tinyMCE.removeEvent;
+
+		ie = ['keypress', 'keyup', 'keydown', 'click', 'mouseup', 'mousedown', 'controlselect', 'dblclick'];
+		ot = ['keypress', 'keyup', 'keydown', 'click', 'mouseup', 'mousedown', 'focus', 'blur', 'dragdrop'];
+
+		inst.switchSettings();
+
+		if (tinyMCE.isIE) {
+			for (i=0; i<ie.length; i++)
+				f(doc, ie[i], TinyMCE_Engine.prototype._eventPatch);
+		} else {
+			for (i=0; i<ot.length; i++)
+				f(doc, ot[i], tinyMCE.handleEvent);
+
+			// Force designmode
+			try {
+				doc.designMode = "On";
+			} catch (e) {
+				// Ignore
+			}
+		}
+	},
+
+	onMouseMove : function() {
+		var inst, lh;
+
+		// Fix for IE7 bug where it's not restoring hover on anchors correctly
+		if (tinyMCE.lastHover) {
+			lh = tinyMCE.lastHover;
+
+			// Call out on menus and refresh class on normal buttons
+			if (lh.className.indexOf('mceMenu') != -1)
+				tinyMCE._menuButtonEvent('out', lh);
+			else
+				lh.className = lh.className;
+
+			tinyMCE.lastHover = null;
+		}
+
+		if (!tinyMCE.hasMouseMoved) {
+			inst = tinyMCE.selectedInstance;
+
+			// Workaround for bug #1437457 (Odd MSIE bug)
+			if (inst.isFocused) {
+				inst.undoBookmark = inst.selection.getBookmark();
+				tinyMCE.hasMouseMoved = true;
+			}
+		}
+
+	//	tinyMCE.cancelEvent(inst.getWin().event);
+	//	return false;
+	},
+
+	cancelEvent : function(e) {
+		if (!e)
+			return false;
+
+		if (tinyMCE.isIE) {
+			e.returnValue = false;
+			e.cancelBubble = true;
+		} else {
+			e.preventDefault();
+			e.stopPropagation && e.stopPropagation();
+		}
+
+		return false;
+	},
+
+	addEvent : function(o, n, h) {
+		// Add cleanup for all non unload events
+		if (n != 'unload') {
+			function clean() {
+				var ex;
+
+				try {
+					tinyMCE.removeEvent(o, n, h);
+					tinyMCE.removeEvent(window, 'unload', clean);
+					o = n = h = null;
+				} catch (ex) {
+					// IE may produce access denied exception on unload
+				}
+			}
+
+			// Add memory cleaner
+			tinyMCE.addEvent(window, 'unload', clean);
+		}
+
+		if (o.attachEvent)
+			o.attachEvent("on" + n, h);
+		else
+			o.addEventListener(n, h, false);
+	},
+
+	removeEvent : function(o, n, h) {
+		if (o.detachEvent)
+			o.detachEvent("on" + n, h);
+		else
+			o.removeEventListener(n, h, false);
+	},
+
+	addSelectAccessibility : function(e, s, w) {
+		// Add event handlers 
+		if (!s._isAccessible) {
+			s.onkeydown = tinyMCE.accessibleEventHandler;
+			s.onblur = tinyMCE.accessibleEventHandler;
+			s._isAccessible = true;
+			s._win = w;
+		}
+
+		return false;
+	},
+
+	accessibleEventHandler : function(e) {
+		var elm, win = this._win;
+
+		e = tinyMCE.isIE ? win.event : e;
+		elm = tinyMCE.isIE ? e.srcElement : e.target;
+
+		// Unpiggyback onchange on blur
+		if (e.type == "blur") {
+			if (elm.oldonchange) {
+				elm.onchange = elm.oldonchange;
+				elm.oldonchange = null;
+			}
+
+			return true;
+		}
+
+		// Piggyback onchange
+		if (elm.nodeName == "SELECT" && !elm.oldonchange) {
+			elm.oldonchange = elm.onchange;
+			elm.onchange = null;
+		}
+
+		// Execute onchange and remove piggyback
+		if (e.keyCode == 13 || e.keyCode == 32) {
+			elm.onchange = elm.oldonchange;
+			elm.onchange();
+			elm.oldonchange = null;
+
+			tinyMCE.cancelEvent(e);
+			return false;
+		}
+
+		return true;
+	},
+
+	_resetIframeHeight : function() {
+		var ife;
+
+		if (tinyMCE.isRealIE) {
+			ife = tinyMCE.selectedInstance.iframeElement;
+
+	/*		if (ife._oldWidth) {
+				ife.style.width = ife._oldWidth;
+				ife.width = ife._oldWidth;
+			}*/
+
+			if (ife._oldHeight) {
+				ife.style.height = ife._oldHeight;
+				ife.height = ife._oldHeight;
+			}
+		}
+	}
+
+	});
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_Selection.class.js */
+
+function TinyMCE_Selection(inst) {
+	this.instance = inst;
+};
+
+TinyMCE_Selection.prototype = {
+	getSelectedHTML : function() {
+		var inst = this.instance, e, r = this.getRng(), h;
+
+		if (!r)
+			return null;
+
+		e = document.createElement("body");
+
+		if (r.cloneContents)
+			e.appendChild(r.cloneContents());
+		else if (typeof(r.item) != 'undefined' || typeof(r.htmlText) != 'undefined')
+			e.innerHTML = r.item ? r.item(0).outerHTML : r.htmlText;
+		else
+			e.innerHTML = r.toString(); // Failed, use text for now
+
+		h = tinyMCE._cleanupHTML(inst, inst.contentDocument, inst.settings, e, e, false, true, false);
+
+		// When editing always use fonts internaly
+		//if (tinyMCE.getParam("convert_fonts_to_spans"))
+		//	tinyMCE.convertSpansToFonts(inst.getDoc());
+
+		return h;
+	},
+
+	getSelectedText : function() {
+		var inst = this.instance, d, r, s, t;
+
+		if (tinyMCE.isIE) {
+			d = inst.getDoc();
+
+			if (d.selection.type == "Text") {
+				r = d.selection.createRange();
+				t = r.text;
+			} else
+				t = '';
+		} else {
+			s = this.getSel();
+
+			if (s && s.toString)
+				t = s.toString();
+			else
+				t = '';
+		}
+
+		return t;
+	},
+
+	getBookmark : function(simple) {
+		var inst = this.instance, rng = this.getRng(), doc = inst.getDoc(), b = inst.getBody();
+		var trng, sx, sy, xx = -999999999, vp = inst.getViewPort();
+		var sp, le, s, e, nl, i, si, ei, w;
+
+		sx = vp.left;
+		sy = vp.top;
+
+		if (simple)
+			return {rng : rng, scrollX : sx, scrollY : sy};
+
+		if (tinyMCE.isRealIE) {
+			if (rng.item) {
+				e = rng.item(0);
+
+				nl = b.getElementsByTagName(e.nodeName);
+				for (i=0; i<nl.length; i++) {
+					if (e == nl[i]) {
+						sp = i;
+						break;
+					}
+				}
+
+				return {
+					tag : e.nodeName,
+					index : sp,
+					scrollX : sx,
+					scrollY : sy
+				};
+			} else {
+				trng = doc.body.createTextRange();
+				trng.moveToElementText(inst.getBody());
+				trng.collapse(true);
+				bp = Math.abs(trng.move('character', xx));
+
+				trng = rng.duplicate();
+				trng.collapse(true);
+				sp = Math.abs(trng.move('character', xx));
+
+				trng = rng.duplicate();
+				trng.collapse(false);
+				le = Math.abs(trng.move('character', xx)) - sp;
+
+				return {
+					start : sp - bp,
+					length : le,
+					scrollX : sx,
+					scrollY : sy
+				};
+			}
+		} else {
+			s = this.getSel();
+			e = this.getFocusElement();
+
+			if (!s)
+				return null;
+
+			if (e && e.nodeName == 'IMG') {
+				/*nl = b.getElementsByTagName('IMG');
+				for (i=0; i<nl.length; i++) {
+					if (e == nl[i]) {
+						sp = i;
+						break;
+					}
+				}*/
+
+				return {
+					start : -1,
+					end : -1,
+					index : sp,
+					scrollX : sx,
+					scrollY : sy
+				};
+			}
+
+			// Caret or selection
+			if (s.anchorNode == s.focusNode && s.anchorOffset == s.focusOffset) {
+				e = this._getPosText(b, s.anchorNode, s.focusNode);
+
+				if (!e)
+					return {scrollX : sx, scrollY : sy};
+
+				return {
+					start : e.start + s.anchorOffset,
+					end : e.end + s.focusOffset,
+					scrollX : sx,
+					scrollY : sy
+				};
+			} else {
+				e = this._getPosText(b, rng.startContainer, rng.endContainer);
+
+				if (!e)
+					return {scrollX : sx, scrollY : sy};
+
+				return {
+					start : e.start + rng.startOffset,
+					end : e.end + rng.endOffset,
+					scrollX : sx,
+					scrollY : sy
+				};
+			}
+		}
+
+		return null;
+	},
+
+	moveToBookmark : function(bookmark) {
+		var inst = this.instance, rng, nl, i, ex, b = inst.getBody(), sd;
+		var doc = inst.getDoc(), win = inst.getWin(), sel = this.getSel();
+
+		if (!bookmark)
+			return false;
+
+		if (tinyMCE.isSafari && bookmark.rng) {
+			sel.setBaseAndExtent(bookmark.rng.startContainer, bookmark.rng.startOffset, bookmark.rng.endContainer, bookmark.rng.endOffset);
+			return true;
+		}
+
+		if (tinyMCE.isRealIE) {
+			if (bookmark.rng) {
+				try {
+					bookmark.rng.select();
+				} catch (ex) {
+					// Ignore
+				}
+
+				return true;
+			}
+
+			win.focus();
+
+			if (bookmark.tag) {
+				rng = b.createControlRange();
+
+				nl = b.getElementsByTagName(bookmark.tag);
+
+				if (nl.length > bookmark.index) {
+					try {
+						rng.addElement(nl[bookmark.index]);
+					} catch (ex) {
+						// Might be thrown if the node no longer exists
+					}
+				}
+			} else {
+				// Try/catch needed since this operation breaks when TinyMCE is placed in hidden divs/tabs
+				try {
+					// Incorrect bookmark
+					if (bookmark.start < 0)
+						return true;
+
+					rng = inst.getSel().createRange();
+					rng.moveToElementText(inst.getBody());
+					rng.collapse(true);
+					rng.moveStart('character', bookmark.start);
+					rng.moveEnd('character', bookmark.length);
+				} catch (ex) {
+					return true;
+				}
+			}
+
+			rng.select();
+
+			win.scrollTo(bookmark.scrollX, bookmark.scrollY);
+			return true;
+		}
+
+		if (tinyMCE.isGecko || tinyMCE.isOpera) {
+			if (!sel)
+				return false;
+
+			if (bookmark.rng) {
+				sel.removeAllRanges();
+				sel.addRange(bookmark.rng);
+			}
+
+			if (bookmark.start != -1 && bookmark.end != -1) {
+				try {
+					sd = this._getTextPos(b, bookmark.start, bookmark.end);
+					rng = doc.createRange();
+					rng.setStart(sd.startNode, sd.startOffset);
+					rng.setEnd(sd.endNode, sd.endOffset);
+					sel.removeAllRanges();
+					sel.addRange(rng);
+
+					if (!tinyMCE.isOpera)
+						win.focus();
+				} catch (ex) {
+					// Ignore
+				}
+			}
+
+			/*
+			if (typeof(bookmark.index) != 'undefined') {
+				tinyMCE.selectElements(b, 'IMG', function (n) {
+					if (bookmark.index-- == 0) {
+						// Select image in Gecko here
+					}
+
+					return false;
+				});
+			}
+			*/
+
+			win.scrollTo(bookmark.scrollX, bookmark.scrollY);
+			return true;
+		}
+
+		return false;
+	},
+
+	_getPosText : function(r, sn, en) {
+		var w = document.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, false), n, p = 0, d = {};
+
+		while ((n = w.nextNode()) != null) {
+			if (n == sn)
+				d.start = p;
+
+			if (n == en) {
+				d.end = p;
+				return d;
+			}
+
+			p += n.nodeValue ? n.nodeValue.length : 0;
+		}
+
+		return null;
+	},
+
+	_getTextPos : function(r, sp, ep) {
+		var w = document.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, false), n, p = 0, d = {};
+
+		while ((n = w.nextNode()) != null) {
+			p += n.nodeValue ? n.nodeValue.length : 0;
+
+			if (p >= sp && !d.startNode) {
+				d.startNode = n;
+				d.startOffset = sp - (p - n.nodeValue.length);
+			}
+
+			if (p >= ep) {
+				d.endNode = n;
+				d.endOffset = ep - (p - n.nodeValue.length);
+
+				return d;
+			}
+		}
+
+		return null;
+	},
+
+	selectNode : function(node, collapse, select_text_node, to_start) {
+		var inst = this.instance, sel, rng, nodes;
+
+		if (!node)
+			return;
+
+		if (typeof(collapse) == "undefined")
+			collapse = true;
+
+		if (typeof(select_text_node) == "undefined")
+			select_text_node = false;
+
+		if (typeof(to_start) == "undefined")
+			to_start = true;
+
+		if (inst.settings.auto_resize)
+			inst.resizeToContent();
+
+		if (tinyMCE.isRealIE) {
+			rng = inst.getDoc().body.createTextRange();
+
+			try {
+				rng.moveToElementText(node);
+
+				if (collapse)
+					rng.collapse(to_start);
+
+				rng.select();
+			} catch (e) {
+				// Throws illigal agrument in MSIE some times
+			}
+		} else {
+			sel = this.getSel();
+
+			if (!sel)
+				return;
+
+			if (tinyMCE.isSafari) {
+				sel.setBaseAndExtent(node, 0, node, node.innerText.length);
+
+				if (collapse) {
+					if (to_start)
+						sel.collapseToStart();
+					else
+						sel.collapseToEnd();
+				}
+
+				this.scrollToNode(node);
+
+				return;
+			}
+
+			rng = inst.getDoc().createRange();
+
+			if (select_text_node) {
+				// Find first textnode in tree
+				nodes = tinyMCE.getNodeTree(node, [], 3);
+				if (nodes.length > 0)
+					rng.selectNodeContents(nodes[0]);
+				else
+					rng.selectNodeContents(node);
+			} else
+				rng.selectNode(node);
+
+			if (collapse) {
+				// Special treatment of textnode collapse
+				if (!to_start && node.nodeType == 3) {
+					rng.setStart(node, node.nodeValue.length);
+					rng.setEnd(node, node.nodeValue.length);
+				} else
+					rng.collapse(to_start);
+			}
+
+			sel.removeAllRanges();
+			sel.addRange(rng);
+		}
+
+		this.scrollToNode(node);
+
+		// Set selected element
+		tinyMCE.selectedElement = null;
+		if (node.nodeType == 1)
+			tinyMCE.selectedElement = node;
+	},
+
+	scrollToNode : function(node) {
+		var inst = this.instance, w = inst.getWin(), vp = inst.getViewPort(), pos = tinyMCE.getAbsPosition(node), cvp, p, cwin;
+
+		// Only scroll if out of visible area
+		if (pos.absLeft < vp.left || pos.absLeft > vp.left + vp.width || pos.absTop < vp.top || pos.absTop > vp.top + (vp.height-25))
+			w.scrollTo(pos.absLeft, pos.absTop - vp.height + 25);
+
+		// Scroll container window
+		if (inst.settings.auto_resize) {
+			cwin = inst.getContainerWin();
+			cvp = tinyMCE.getViewPort(cwin);
+			p = this.getAbsPosition(node);
+
+			if (p.absLeft < cvp.left || p.absLeft > cvp.left + cvp.width || p.absTop < cvp.top || p.absTop > cvp.top + cvp.height)
+				cwin.scrollTo(p.absLeft, p.absTop - cvp.height + 25);
+		}
+	},
+
+	getAbsPosition : function(n) {
+		var pos = tinyMCE.getAbsPosition(n), ipos = tinyMCE.getAbsPosition(this.instance.iframeElement);
+
+		return {
+			absLeft : ipos.absLeft + pos.absLeft,
+			absTop : ipos.absTop + pos.absTop
+		};
+	},
+
+	getSel : function() {
+		var inst = this.instance;
+
+		if (tinyMCE.isRealIE)
+			return inst.getDoc().selection;
+
+		return inst.contentWindow.getSelection();
+	},
+
+	getRng : function() {
+		var s = this.getSel();
+
+		if (s == null)
+			return null;
+
+		if (tinyMCE.isRealIE)
+			return s.createRange();
+
+		if (tinyMCE.isSafari && !s.getRangeAt)
+			return '' + window.getSelection();
+
+		if (s.rangeCount > 0)
+			return s.getRangeAt(0);
+
+		return null;
+	},
+
+	isCollapsed : function() {
+		var r = this.getRng();
+
+		if (r.item)
+			return false;
+
+		return r.boundingWidth == 0 || this.getSel().isCollapsed;
+	},
+
+	collapse : function(b) {
+		var r = this.getRng(), s = this.getSel();
+
+		if (r.select) {
+			r.collapse(b);
+			r.select();
+		} else {
+			if (b)
+				s.collapseToStart();
+			else
+				s.collapseToEnd();
+		}
+	},
+
+	getFocusElement : function() {
+		var inst = this.instance, doc, rng, sel, elm;
+
+		if (tinyMCE.isRealIE) {
+			doc = inst.getDoc();
+			rng = doc.selection.createRange();
+
+	//		if (rng.collapse)
+	//			rng.collapse(true);
+
+			elm = rng.item ? rng.item(0) : rng.parentElement();
+		} else {
+			if (!tinyMCE.isSafari && inst.isHidden())
+				return inst.getBody();
+
+			sel = this.getSel();
+			rng = this.getRng();
+
+			if (!sel || !rng)
+				return null;
+
+			elm = rng.commonAncestorContainer;
+			//elm = (sel && sel.anchorNode) ? sel.anchorNode : null;
+
+			// Handle selection a image or other control like element such as anchors
+			if (!rng.collapsed) {
+				// Is selection small
+				if (rng.startContainer == rng.endContainer) {
+					if (rng.startOffset - rng.endOffset < 2) {
+						if (rng.startContainer.hasChildNodes())
+							elm = rng.startContainer.childNodes[rng.startOffset];
+					}
+				}
+			}
+
+			// Get the element parent of the node
+			elm = tinyMCE.getParentElement(elm);
+
+			//if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img")
+			//	elm = tinyMCE.selectedElement;
+		}
+
+		return elm;
+	}
+
+	};
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_UndoRedo.class.js */
+
+function TinyMCE_UndoRedo(inst) {
+	this.instance = inst;
+	this.undoLevels = [];
+	this.undoIndex = 0;
+	this.typingUndoIndex = -1;
+	this.undoRedo = true;
+};
+
+TinyMCE_UndoRedo.prototype = {
+	add : function(l) {
+		var b, customUndoLevels, newHTML, inst = this.instance, i, ul, ur;
+
+		if (l) {
+			this.undoLevels[this.undoLevels.length] = l;
+			return true;
+		}
+
+		if (this.typingUndoIndex != -1) {
+			this.undoIndex = this.typingUndoIndex;
+
+			if (tinyMCE.typingUndoIndex != -1)
+				tinyMCE.undoIndex = tinyMCE.typingUndoIndex;
+		}
+
+		newHTML = tinyMCE.trim(inst.getBody().innerHTML);
+		if (this.undoLevels[this.undoIndex] && newHTML != this.undoLevels[this.undoIndex].content) {
+			//tinyMCE.debug(newHTML, this.undoLevels[this.undoIndex].content);
+
+			// Is dirty again
+			inst.isNotDirty = false;
+
+			tinyMCE.dispatchCallback(inst, 'onchange_callback', 'onChange', inst);
+
+			// Time to compress
+			customUndoLevels = tinyMCE.settings.custom_undo_redo_levels;
+			if (customUndoLevels != -1 && this.undoLevels.length > customUndoLevels) {
+				for (i=0; i<this.undoLevels.length-1; i++)
+					this.undoLevels[i] = this.undoLevels[i+1];
+
+				this.undoLevels.length--;
+				this.undoIndex--;
+
+				// Todo: Implement global undo/redo logic here
+			}
+
+			b = inst.undoBookmark;
+
+			if (!b)
+				b = inst.selection.getBookmark();
+
+			this.undoIndex++;
+			this.undoLevels[this.undoIndex] = {
+				content : newHTML,
+				bookmark : b
+			};
+
+			// Remove all above from global undo/redo
+			ul = tinyMCE.undoLevels;
+			for (i=tinyMCE.undoIndex + 1; i<ul.length; i++) {
+				ur = ul[i].undoRedo;
+
+				if (ur.undoIndex == ur.undoLevels.length -1)
+					ur.undoIndex--;
+
+				ur.undoLevels.length--;
+			}
+
+			// Add global undo level
+			tinyMCE.undoLevels[tinyMCE.undoIndex++] = inst;
+			tinyMCE.undoLevels.length = tinyMCE.undoIndex;
+
+			this.undoLevels.length = this.undoIndex + 1;
+
+			return true;
+		}
+
+		return false;
+	},
+
+	undo : function() {
+		var inst = this.instance;
+
+		// Do undo
+		if (this.undoIndex > 0) {
+			this.undoIndex--;
+
+			tinyMCE.setInnerHTML(inst.getBody(), this.undoLevels[this.undoIndex].content);
+			inst.repaint();
+
+			if (inst.settings.custom_undo_redo_restore_selection)
+				inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark);
+		}
+	},
+
+	redo : function() {
+		var inst = this.instance;
+
+		tinyMCE.execCommand("mceEndTyping");
+
+		if (this.undoIndex < (this.undoLevels.length-1)) {
+			this.undoIndex++;
+
+			tinyMCE.setInnerHTML(inst.getBody(), this.undoLevels[this.undoIndex].content);
+			inst.repaint();
+
+			if (inst.settings.custom_undo_redo_restore_selection)
+				inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark);
+		}
+
+		tinyMCE.triggerNodeChange();
+	}
+
+	};
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_ForceParagraphs.class.js */
+
+var TinyMCE_ForceParagraphs = {
+	_insertPara : function(inst, e) {
+		var doc = inst.getDoc(), sel = inst.getSel(), body = inst.getBody(), win = inst.contentWindow, rng = sel.getRangeAt(0);
+		var rootElm = doc.documentElement, blockName = "P", startNode, endNode, startBlock, endBlock;
+		var rngBefore, rngAfter, direct, startNode, startOffset, endNode, endOffset, b = tinyMCE.isOpera ? inst.selection.getBookmark() : null;
+		var paraBefore, paraAfter, startChop, endChop, contents, i;
+
+		function isEmpty(para) {
+			var nodes;
+
+			function isEmptyHTML(html) {
+				return html.replace(new RegExp('[ \t\r\n]+', 'g'), '').toLowerCase() == '';
+			}
+
+			// Check for images
+			if (para.getElementsByTagName("img").length > 0)
+				return false;
+
+			// Check for tables
+			if (para.getElementsByTagName("table").length > 0)
+				return false;
+
+			// Check for HRs
+			if (para.getElementsByTagName("hr").length > 0)
+				return false;
+
+			// Check all textnodes
+			nodes = tinyMCE.getNodeTree(para, [], 3);
+			for (i=0; i<nodes.length; i++) {
+				if (!isEmptyHTML(nodes[i].nodeValue))
+					return false;
+			}
+
+			// No images, no tables, no hrs, no text content then it's empty
+			return true;
+		}
+
+	//	tinyMCE.debug(body.innerHTML);
+
+	//	debug(e.target, sel.anchorNode.nodeName, sel.focusNode.nodeName, rng.startContainer, rng.endContainer, rng.commonAncestorContainer, sel.anchorOffset, sel.focusOffset, rng.toString());
+
+		// Setup before range
+		rngBefore = doc.createRange();
+		rngBefore.setStart(sel.anchorNode, sel.anchorOffset);
+		rngBefore.collapse(true);
+
+		// Setup after range
+		rngAfter = doc.createRange();
+		rngAfter.setStart(sel.focusNode, sel.focusOffset);
+		rngAfter.collapse(true);
+
+		// Setup start/end points
+		direct = rngBefore.compareBoundaryPoints(rngBefore.START_TO_END, rngAfter) < 0;
+		startNode = direct ? sel.anchorNode : sel.focusNode;
+		startOffset = direct ? sel.anchorOffset : sel.focusOffset;
+		endNode = direct ? sel.focusNode : sel.anchorNode;
+		endOffset = direct ? sel.focusOffset : sel.anchorOffset;
+
+		startNode = startNode.nodeName == "BODY" ? startNode.firstChild : startNode;
+		endNode = endNode.nodeName == "BODY" ? endNode.firstChild : endNode;
+
+		// Get block elements
+		startBlock = inst.getParentBlockElement(startNode);
+		endBlock = inst.getParentBlockElement(endNode);
+
+		// If absolute force paragraph generation within
+		if (startBlock && (startBlock.nodeName == 'CAPTION' || /absolute|relative|static/gi.test(startBlock.style.position)))
+			startBlock = null;
+
+		if (endBlock && (endBlock.nodeName == 'CAPTION' || /absolute|relative|static/gi.test(endBlock.style.position)))
+			endBlock = null;
+
+		// Use current block name
+		if (startBlock != null) {
+			blockName = startBlock.nodeName;
+
+			// Use P instead
+			if (/(TD|TABLE|TH|CAPTION)/.test(blockName) || (blockName == "DIV" && /left|right/gi.test(startBlock.style.cssFloat)))
+				blockName = "P";
+		}
+
+		// Within a list use normal behaviour
+		if (tinyMCE.getParentElement(startBlock, "OL,UL", null, body) != null)
+			return false;
+
+		// Within a table create new paragraphs
+		if ((startBlock != null && startBlock.nodeName == "TABLE") || (endBlock != null && endBlock.nodeName == "TABLE"))
+			startBlock = endBlock = null;
+
+		// Setup new paragraphs
+		paraBefore = (startBlock != null && startBlock.nodeName == blockName) ? startBlock.cloneNode(false) : doc.createElement(blockName);
+		paraAfter = (endBlock != null && endBlock.nodeName == blockName) ? endBlock.cloneNode(false) : doc.createElement(blockName);
+
+		// Is header, then force paragraph under
+		if (/^(H[1-6])$/.test(blockName))
+			paraAfter = doc.createElement("p");
+
+		// Setup chop nodes
+		startChop = startNode;
+		endChop = endNode;
+
+		// Get startChop node
+		node = startChop;
+		do {
+			if (node == body || node.nodeType == 9 || tinyMCE.isBlockElement(node))
+				break;
+
+			startChop = node;
+		} while ((node = node.previousSibling ? node.previousSibling : node.parentNode));
+
+		// Get endChop node
+		node = endChop;
+		do {
+			if (node == body || node.nodeType == 9 || tinyMCE.isBlockElement(node))
+				break;
+
+			endChop = node;
+		} while ((node = node.nextSibling ? node.nextSibling : node.parentNode));
+
+		// Fix when only a image is within the TD
+		if (startChop.nodeName == "TD")
+			startChop = startChop.firstChild;
+
+		if (endChop.nodeName == "TD")
+			endChop = endChop.lastChild;
+
+		// If not in a block element
+		if (startBlock == null) {
+			// Delete selection
+			rng.deleteContents();
+
+			if (!tinyMCE.isSafari)
+				sel.removeAllRanges();
+
+			if (startChop != rootElm && endChop != rootElm) {
+				// Insert paragraph before
+				rngBefore = rng.cloneRange();
+
+				if (startChop == body)
+					rngBefore.setStart(startChop, 0);
+				else
+					rngBefore.setStartBefore(startChop);
+
+				paraBefore.appendChild(rngBefore.cloneContents());
+
+				// Insert paragraph after
+				if (endChop.parentNode.nodeName == blockName)
+					endChop = endChop.parentNode;
+
+				// If not after image
+				//if (rng.startContainer.nodeName != "BODY" && rng.endContainer.nodeName != "BODY")
+					rng.setEndAfter(endChop);
+
+				if (endChop.nodeName != "#text" && endChop.nodeName != "BODY")
+					rngBefore.setEndAfter(endChop);
+
+				contents = rng.cloneContents();
+				if (contents.firstChild && (contents.firstChild.nodeName == blockName || contents.firstChild.nodeName == "BODY"))
+					paraAfter.innerHTML = contents.firstChild.innerHTML;
+				else
+					paraAfter.appendChild(contents);
+
+				// Check if it's a empty paragraph
+				if (isEmpty(paraBefore))
+					paraBefore.innerHTML = "&nbsp;";
+
+				// Check if it's a empty paragraph
+				if (isEmpty(paraAfter))
+					paraAfter.innerHTML = "&nbsp;";
+
+				// Delete old contents
+				rng.deleteContents();
+				rngAfter.deleteContents();
+				rngBefore.deleteContents();
+
+				// Insert new paragraphs
+				if (tinyMCE.isOpera) {
+					paraBefore.normalize();
+					rngBefore.insertNode(paraBefore);
+					paraAfter.normalize();
+					rngBefore.insertNode(paraAfter);
+				} else {
+					paraAfter.normalize();
+					rngBefore.insertNode(paraAfter);
+					paraBefore.normalize();
+					rngBefore.insertNode(paraBefore);
+				}
+
+				//tinyMCE.debug("1: ", paraBefore.innerHTML, paraAfter.innerHTML);
+			} else {
+				body.innerHTML = "<" + blockName + ">&nbsp;</" + blockName + "><" + blockName + ">&nbsp;</" + blockName + ">";
+				paraAfter = body.childNodes[1];
+			}
+
+			inst.selection.moveToBookmark(b);
+			inst.selection.selectNode(paraAfter, true, true);
+
+			return true;
+		}
+
+		// Place first part within new paragraph
+		if (startChop.nodeName == blockName)
+			rngBefore.setStart(startChop, 0);
+		else
+			rngBefore.setStartBefore(startChop);
+
+		rngBefore.setEnd(startNode, startOffset);
+		paraBefore.appendChild(rngBefore.cloneContents());
+
+		// Place secound part within new paragraph
+		rngAfter.setEndAfter(endChop);
+		rngAfter.setStart(endNode, endOffset);
+		contents = rngAfter.cloneContents();
+
+		if (contents.firstChild && contents.firstChild.nodeName == blockName) {
+	/*		var nodes = contents.firstChild.childNodes;
+			for (i=0; i<nodes.length; i++) {
+				//tinyMCE.debug(nodes[i].nodeName);
+				if (nodes[i].nodeName != "BODY")
+					paraAfter.appendChild(nodes[i]);
+			}
+	*/
+			paraAfter.innerHTML = contents.firstChild.innerHTML;
+		} else
+			paraAfter.appendChild(contents);
+
+		// Check if it's a empty paragraph
+		if (isEmpty(paraBefore))
+			paraBefore.innerHTML = "&nbsp;";
+
+		// Check if it's a empty paragraph
+		if (isEmpty(paraAfter))
+			paraAfter.innerHTML = "&nbsp;";
+
+		// Create a range around everything
+		rng = doc.createRange();
+
+		if (!startChop.previousSibling && startChop.parentNode.nodeName.toUpperCase() == blockName) {
+			rng.setStartBefore(startChop.parentNode);
+		} else {
+			if (rngBefore.startContainer.nodeName.toUpperCase() == blockName && rngBefore.startOffset == 0)
+				rng.setStartBefore(rngBefore.startContainer);
+			else
+				rng.setStart(rngBefore.startContainer, rngBefore.startOffset);
+		}
+
+		if (!endChop.nextSibling && endChop.parentNode.nodeName.toUpperCase() == blockName)
+			rng.setEndAfter(endChop.parentNode);
+		else
+			rng.setEnd(rngAfter.endContainer, rngAfter.endOffset);
+
+		// Delete all contents and insert new paragraphs
+		rng.deleteContents();
+
+		if (tinyMCE.isOpera) {
+			rng.insertNode(paraBefore);
+			rng.insertNode(paraAfter);
+		} else {
+			rng.insertNode(paraAfter);
+			rng.insertNode(paraBefore);
+		}
+
+		//tinyMCE.debug("2", paraBefore.innerHTML, paraAfter.innerHTML);
+
+		// Normalize
+		paraAfter.normalize();
+		paraBefore.normalize();
+
+		inst.selection.moveToBookmark(b);
+		inst.selection.selectNode(paraAfter, true, true);
+
+		return true;
+	},
+
+	_handleBackSpace : function(inst) {
+		var r = inst.getRng(), sn = r.startContainer, nv, s = false;
+
+		// Added body check for bug #1527787
+		if (sn && sn.nextSibling && sn.nextSibling.nodeName == "BR" && sn.parentNode.nodeName != "BODY") {
+			nv = sn.nodeValue;
+
+			// Handle if a backspace is pressed after a space character #bug 1466054 removed since fix for #1527787
+			/*if (nv != null && nv.length >= r.startOffset && nv.charAt(r.startOffset - 1) == ' ')
+				s = true;*/
+
+			// Only remove BRs if we are at the end of line #bug 1464152
+			if (nv != null && r.startOffset == nv.length)
+				sn.nextSibling.parentNode.removeChild(sn.nextSibling);
+		}
+
+		if (inst.settings.auto_resize)
+			inst.resizeToContent();
+
+		return s;
+	}
+
+	};
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_Layer.class.js */
+
+function TinyMCE_Layer(id, bm) {
+	this.id = id;
+	this.blockerElement = null;
+	this.events = false;
+	this.element = null;
+	this.blockMode = typeof(bm) != 'undefined' ? bm : true;
+	this.doc = document;
+};
+
+TinyMCE_Layer.prototype = {
+	moveRelativeTo : function(re, p) {
+		var rep = this.getAbsPosition(re), e = this.getElement(), x, y;
+		var w = parseInt(re.offsetWidth), h = parseInt(re.offsetHeight);
+		var ew = parseInt(e.offsetWidth), eh = parseInt(e.offsetHeight);
+
+		switch (p) {
+			case "tl":
+				x = rep.absLeft;
+				y = rep.absTop;
+				break;
+
+			case "tr":
+				x = rep.absLeft + w;
+				y = rep.absTop;
+				break;
+
+			case "bl":
+				x = rep.absLeft;
+				y = rep.absTop + h;
+				break;
+
+			case "br":
+				x = rep.absLeft + w;
+				y = rep.absTop + h;
+				break;
+
+			case "cc":
+				x = rep.absLeft + (w / 2) - (ew / 2);
+				y = rep.absTop + (h / 2) - (eh / 2);
+				break;
+		}
+
+		this.moveTo(x, y);
+	},
+
+	moveBy : function(x, y) {
+		var e = this.getElement();
+		this.moveTo(parseInt(e.style.left) + x, parseInt(e.style.top) + y);
+	},
+
+	moveTo : function(x, y) {
+		var e = this.getElement();
+
+		e.style.left = x + "px";
+		e.style.top = y + "px";
+
+		this.updateBlocker();
+	},
+
+	resizeBy : function(w, h) {
+		var e = this.getElement();
+		this.resizeTo(parseInt(e.style.width) + w, parseInt(e.style.height) + h);
+	},
+
+	resizeTo : function(w, h) {
+		var e = this.getElement();
+
+		if (w != null)
+			e.style.width = w + "px";
+
+		if (h != null)
+			e.style.height = h + "px";
+
+		this.updateBlocker();
+	},
+
+	show : function() {
+		var el = this.getElement();
+
+		if (el) {
+			el.style.display = 'block';
+			this.updateBlocker();
+		}
+	},
+
+	hide : function() {
+		var el = this.getElement();
+
+		if (el) {
+			el.style.display = 'none';
+			this.updateBlocker();
+		}
+	},
+
+	isVisible : function() {
+		return this.getElement().style.display == 'block';
+	},
+
+	getElement : function() {
+		if (!this.element)
+			this.element = this.doc.getElementById(this.id);
+
+		return this.element;
+	},
+
+	setBlockMode : function(s) {
+		this.blockMode = s;
+	},
+
+	updateBlocker : function() {
+		var e, b, x, y, w, h;
+
+		b = this.getBlocker();
+		if (b) {
+			if (this.blockMode) {
+				e = this.getElement();
+				x = this.parseInt(e.style.left);
+				y = this.parseInt(e.style.top);
+				w = this.parseInt(e.offsetWidth);
+				h = this.parseInt(e.offsetHeight);
+
+				b.style.left = x + 'px';
+				b.style.top = y + 'px';
+				b.style.width = w + 'px';
+				b.style.height = h + 'px';
+				b.style.display = e.style.display;
+			} else
+				b.style.display = 'none';
+		}
+	},
+
+	getBlocker : function() {
+		var d, b;
+
+		if (!this.blockerElement && this.blockMode) {
+			d = this.doc;
+			b = d.getElementById(this.id + "_blocker");
+
+			if (!b) {
+				b = d.createElement("iframe");
+
+				b.setAttribute('id', this.id + "_blocker");
+				b.style.cssText = 'display: none; position: absolute; left: 0; top: 0';
+				b.src = 'javascript:false;';
+				b.frameBorder = '0';
+				b.scrolling = 'no';
+	
+				d.body.appendChild(b);
+			}
+
+			this.blockerElement = b;
+		}
+
+		return this.blockerElement;
+	},
+
+	getAbsPosition : function(n) {
+		var p = {absLeft : 0, absTop : 0};
+
+		while (n) {
+			p.absLeft += n.offsetLeft;
+			p.absTop += n.offsetTop;
+			n = n.offsetParent;
+		}
+
+		return p;
+	},
+
+	create : function(n, c, p, h) {
+		var d = this.doc, e = d.createElement(n);
+
+		e.setAttribute('id', this.id);
+
+		if (c)
+			e.className = c;
+
+		if (!p)
+			p = d.body;
+
+		if (h)
+			e.innerHTML = h;
+
+		p.appendChild(e);
+
+		return this.element = e;
+	},
+
+	exists : function() {
+		return this.doc.getElementById(this.id) != null;
+	},
+
+	parseInt : function(s) {
+		if (s == null || s == '')
+			return 0;
+
+		return parseInt(s);
+	},
+
+	remove : function() {
+		var e = this.getElement(), b = this.getBlocker();
+
+		if (e)
+			e.parentNode.removeChild(e);
+
+		if (b)
+			b.parentNode.removeChild(b);
+	}
+
+	};
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_Menu.class.js */
+
+function TinyMCE_Menu() {
+	var id;
+
+	if (typeof(tinyMCE.menuCounter) == "undefined")
+		tinyMCE.menuCounter = 0;
+
+	id = "mc_menu_" + tinyMCE.menuCounter++;
+
+	TinyMCE_Layer.call(this, id, true);
+
+	this.id = id;
+	this.items = [];
+	this.needsUpdate = true;
+};
+
+TinyMCE_Menu.prototype = tinyMCE.extend(TinyMCE_Layer.prototype, {
+	init : function(s) {
+		var n;
+
+		// Default params
+		this.settings = {
+			separator_class : 'mceMenuSeparator',
+			title_class : 'mceMenuTitle',
+			disabled_class : 'mceMenuDisabled',
+			menu_class : 'mceMenu',
+			drop_menu : true
+		};
+
+		for (n in s)
+			this.settings[n] = s[n];
+
+		this.create('div', this.settings.menu_class);
+	},
+
+	clear : function() {
+		this.items = [];
+	},
+
+	addTitle : function(t) {
+		this.add({type : 'title', text : t});
+	},
+
+	addDisabled : function(t) {
+		this.add({type : 'disabled', text : t});
+	},
+
+	addSeparator : function() {
+		this.add({type : 'separator'});
+	},
+
+	addItem : function(t, js) {
+		this.add({text : t, js : js});
+	},
+
+	add : function(mi) {
+		this.items[this.items.length] = mi;
+		this.needsUpdate = true;
+	},
+
+	update : function() {
+		var e = this.getElement(), h = '', i, t, m = this.items, s = this.settings;
+
+		if (this.settings.drop_menu)
+			h += '<span class="mceMenuLine"></span>';
+
+		h += '<table border="0" cellpadding="0" cellspacing="0">';
+
+		for (i=0; i<m.length; i++) {
+			t = tinyMCE.xmlEncode(m[i].text);
+			c = m[i].class_name ? ' class="' + m[i].class_name + '"' : '';
+
+			switch (m[i].type) {
+				case 'separator':
+					h += '<tr class="' + s.separator_class + '"><td>';
+					break;
+
+				case 'title':
+					h += '<tr class="' + s.title_class + '"><td><span' + c +'>' + t + '</span>';
+					break;
+
+				case 'disabled':
+					h += '<tr class="' + s.disabled_class + '"><td><span' + c +'>' + t + '</span>';
+					break;
+
+				default:
+					h += '<tr><td><a href="' + tinyMCE.xmlEncode(m[i].js) + '" onmousedown="' + tinyMCE.xmlEncode(m[i].js) + ';return tinyMCE.cancelEvent(event);" onclick="return tinyMCE.cancelEvent(event);" onmouseup="return tinyMCE.cancelEvent(event);"><span' + c +'>' + t + '</span></a>';
+			}
+
+			h += '</td></tr>';
+		}
+
+		h += '</table>';
+
+		e.innerHTML = h;
+
+		this.needsUpdate = false;
+		this.updateBlocker();
+	},
+
+	show : function() {
+		var nl, i;
+
+		if (tinyMCE.lastMenu == this)
+			return;
+
+		if (this.needsUpdate)
+			this.update();
+
+		if (tinyMCE.lastMenu && tinyMCE.lastMenu != this)
+			tinyMCE.lastMenu.hide();
+
+		TinyMCE_Layer.prototype.show.call(this);
+
+		if (!tinyMCE.isOpera) {
+			// Accessibility stuff
+/*			nl = this.getElement().getElementsByTagName("a");
+			if (nl.length > 0)
+				nl[0].focus();*/
+		}
+
+		tinyMCE.lastMenu = this;
+	}
+
+	});
+
+/* file:jscripts/tiny_mce/classes/TinyMCE_Debug.class.js */
+
+tinyMCE.add(TinyMCE_Engine, {
+	debug : function() {
+		var m = "", a, i, l = tinyMCE.log.length;
+
+		for (i=0, a = this.debug.arguments; i<a.length; i++) {
+			m += a[i];
+
+			if (i<a.length-1)
+				m += ', ';
+		}
+
+		if (l < 1000)
+			tinyMCE.log[l] = "[debug] " + m;
+	}
+
+	});
+
diff --git a/tinyMCE/utils/editable_selects.js b/tinyMCE/utils/editable_selects.js
new file mode 100644
index 0000000000000000000000000000000000000000..e72336541ebe28cc8e8196e8d9a6390d88b358b8
--- /dev/null
+++ b/tinyMCE/utils/editable_selects.js
@@ -0,0 +1,61 @@
+/**
+ * $Id: editable_selects.js 162 2007-01-03 16:16:52Z spocke $
+ *
+ * Makes select boxes editable.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+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('(value)', '__mce_add_custom__');
+
+				o.className = 'mceAddSelectValue';
+
+				nl[i].options[nl[i].options.length] = o;
+				nl[i].setAttribute('onchange', 'TinyMCE_EditableSelects.onChangeEditableSelect(this);');
+			}
+		}
+	},
+
+	onChangeEditableSelect : function(se) {
+		var d = document, ne;
+
+		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.clientWidth;
+			se.parentNode.insertBefore(ne, se);
+			se.style.display = 'none';
+			ne.focus();
+			ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;
+			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;
+		}
+	}
+};
diff --git a/tinyMCE/utils/form_utils.js b/tinyMCE/utils/form_utils.js
new file mode 100644
index 0000000000000000000000000000000000000000..ec9dbb3b6d284a93ec70f261679dd184ba1997c5
--- /dev/null
+++ b/tinyMCE/utils/form_utils.js
@@ -0,0 +1,210 @@
+/**
+ * $Id: form_utils.js 162 2007-01-03 16:16:52Z spocke $
+ *
+ * Various form utilitiy functions.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+var themeBaseURL = tinyMCE.baseURL + '/themes/' + tinyMCE.getParam("theme");
+
+function getColorPickerHTML(id, target_form_element) {
+	var h = "";
+
+	h += '<a id="' + id + '_link" href="javascript:void(0);" onkeydown="pickColor(event,\'' + target_form_element +'\');" onmousedown="pickColor(event,\'' + target_form_element +'\');return false;">';
+	h += '<img id="' + id + '" src="' + themeBaseURL + '/images/color.gif"';
+	h += ' onmouseover="this.className=\'mceButtonOver\'"';
+	h += ' onmouseout="this.className=\'mceButtonNormal\'"';
+	h += ' onmousedown="this.className=\'mceButtonDown\'"';
+	h += ' width="20" height="16" border="0" title="' + tinyMCE.getLang('lang_browse') + '"';
+	h += ' class="mceButtonNormal" alt="' + tinyMCE.getLang('lang_browse') + '" /></a>';
+
+	return h;
+}
+
+function pickColor(e, target_form_element) {
+	if ((e.keyCode == 32 || e.keyCode == 13) || e.type == "mousedown")
+		tinyMCEPopup.pickColor(e, target_form_element);
+}
+
+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");
+			tinyMCE.switchClass(img, 'mceButtonDisabled', true);
+		} else {
+			lnk.setAttribute("href", lnk.getAttribute("realhref"));
+			tinyMCE.switchClass(img, 'mceButtonNormal', false);
+		}
+	}
+}
+
+function getBrowserHTML(id, target_form_element, type, prefix) {
+	var option = prefix + "_" + type + "_browser_callback";
+	var cb = tinyMCE.getParam(option, tinyMCE.getParam("file_browser_callback"));
+	if (cb == null)
+		return "";
+
+	var html = "";
+
+	html += '<a id="' + id + '_link" href="javascript:openBrower(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;">';
+	html += '<img id="' + id + '" src="' + themeBaseURL + '/images/browse.gif"';
+	html += ' onmouseover="this.className=\'mceButtonOver\';"';
+	html += ' onmouseout="this.className=\'mceButtonNormal\';"';
+	html += ' onmousedown="this.className=\'mceButtonDown\';"';
+	html += ' width="20" height="18" border="0" title="' + tinyMCE.getLang('lang_browse') + '"';
+	html += ' class="mceButtonNormal" alt="' + tinyMCE.getLang('lang_browse') + '" /></a>';
+
+	return html;
+}
+
+function openBrower(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;
+
+	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)
+		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 = tinyMCE.getParam('theme_advanced_styles', false);
+	styles = tinyMCE.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 {
+		// Use auto impored classes
+		var csses = tinyMCE.getCSSClasses(tinyMCE.getWindowArg('editor_id'));
+		for (var i=0; i<csses.length; i++)
+			styleSelectElm.options[styleSelectElm.length] = new Option(csses[i], csses[i]);
+	}
+}
+
+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(new RegExp('[^0-9%]', 'gi'), '');
+}
+
+function getCSSSize(size) {
+	size = trimSize(size);
+
+	if (size == "")
+		return "";
+
+	return size.indexOf('%') != -1 ? size : size + "px";
+}
+
+function getStyle(elm, attrib, style) {
+	var val = tinyMCE.getAttrib(elm, attrib);
+
+	if (val != '')
+		return '' + val;
+
+	if (typeof(style) == 'undefined')
+		style = attrib;
+
+	val = eval('elm.style.' + style);
+
+	return val == null ? '' : '' + val;
+}
diff --git a/tinyMCE/utils/mclayer.js b/tinyMCE/utils/mclayer.js
new file mode 100644
index 0000000000000000000000000000000000000000..1b347f75ca1fa18ac80f7c4ceb6ec47e04c082ef
--- /dev/null
+++ b/tinyMCE/utils/mclayer.js
@@ -0,0 +1,210 @@
+/**
+ * $Id: mclayer.js 162 2007-01-03 16:16:52Z spocke $
+ *
+ * Moxiecode floating layer script.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+function MCLayer(id) {
+	this.id = id;
+	this.settings = new Array();
+	this.blockerElement = null;
+	this.isMSIE = navigator.appName == "Microsoft Internet Explorer";
+	this.events = false;
+	this.autoHideCallback = null;
+}
+
+MCLayer.prototype = {
+	moveRelativeTo : function(re, p, a) {
+		var rep = this.getAbsPosition(re);
+		var w = parseInt(re.offsetWidth);
+		var h = parseInt(re.offsetHeight);
+		var x, y;
+
+		switch (p) {
+			case "tl":
+				break;
+
+			case "tr":
+				x = rep.absLeft + w;
+				y = rep.absTop;
+				break;
+
+			case "bl":
+				break;
+
+			case "br":
+				break;
+		}
+
+		this.moveTo(x, y);
+	},
+
+	moveBy : function(dx, dy) {
+		var e = this.getElement();
+		var x = parseInt(e.style.left);
+		var y = parseInt(e.style.top);
+
+		e.style.left = (x + dx) + "px";
+		e.style.top = (y + dy) + "px";
+
+		this.updateBlocker();
+	},
+
+	moveTo : function(x, y) {
+		var e = this.getElement();
+
+		e.style.left = x + "px";
+		e.style.top = y + "px";
+
+		this.updateBlocker();
+	},
+
+	show : function() {
+		MCLayer.visibleLayer = this;
+
+		this.getElement().style.display = 'block';
+		this.updateBlocker();
+	},
+
+	hide : function() {
+		this.getElement().style.display = 'none';
+		this.updateBlocker();
+	},
+
+	setAutoHide : function(s, cb) {
+		this.autoHideCallback = cb;
+		this.registerEventHandlers();
+	},
+
+	getElement : function() {
+		return document.getElementById(this.id);
+	},
+
+	updateBlocker : function() {
+		if (!this.isMSIE)
+			return;
+
+		var e = this.getElement();
+		var b = this.getBlocker();
+		var x = this.parseInt(e.style.left);
+		var y = this.parseInt(e.style.top);
+		var w = this.parseInt(e.offsetWidth);
+		var h = this.parseInt(e.offsetHeight);
+
+		b.style.left = x + 'px';
+		b.style.top = y + 'px';
+		b.style.width = w + 'px';
+		b.style.height = h + 'px';
+		b.style.display = e.style.display;
+	},
+
+	getBlocker : function() {
+		if (!this.blockerElement) {
+			var d = document, b = d.createElement("iframe");
+
+			b.style.cssText = 'display: none; left: 0px; position: absolute; top: 0';
+			b.src = 'javascript:false;';
+			b.frameBorder = '0';
+			b.scrolling = 'no';
+
+			d.body.appendChild(b);
+			this.blockerElement = b;
+		}
+
+		return this.blockerElement;
+	},
+
+	getAbsPosition : function(n) {
+		var p = {absLeft : 0, absTop : 0};
+
+		while (n) {
+			p.absLeft += n.offsetLeft;
+			p.absTop += n.offsetTop;
+			n = n.offsetParent;
+		}
+
+		return p;
+	},
+
+	registerEventHandlers : function() {
+		if (!this.events) {
+			var d = document;
+
+			this.addEvent(d, 'mousedown', MCLayer.prototype.onMouseDown);
+
+			this.events = true;
+		}
+	},
+
+	addEvent : function(o, n, h) {
+		if (o.attachEvent)
+			o.attachEvent("on" + n, h);
+		else
+			o.addEventListener(n, h, false);
+	},
+
+	onMouseDown : function(e) {
+		e = typeof(e) == "undefined" ? window.event : e;
+		var b = document.body;
+		var l = MCLayer.visibleLayer;
+
+		if (l) {
+			var mx = l.isMSIE ? e.clientX + b.scrollLeft : e.pageX;
+			var my = l.isMSIE ? e.clientY + b.scrollTop : e.pageY;
+			var el = l.getElement();
+			var x = parseInt(el.style.left);
+			var y = parseInt(el.style.top);
+			var w = parseInt(el.offsetWidth);
+			var h = parseInt(el.offsetHeight);
+
+			if (!(mx > x && mx < x + w && my > y && my < y + h)) {
+				MCLayer.visibleLayer = null;
+
+				if (l.autoHideCallback && l.autoHideCallback(l, e, mx, my))
+					return true;
+
+				l.hide();
+			}
+		}
+	},
+
+	addCSSClass : function(e, c) {
+		this.removeCSSClass(e, c);
+		var a = this.explode(' ', e.className);
+		a[a.length] = c;
+		e.className = a.join(' ');
+	},
+
+	removeCSSClass : function(e, c) {
+		var a = this.explode(' ', e.className), i;
+
+		for (i=0; i<a.length; i++) {
+			if (a[i] == c)
+				a[i] = '';
+		}
+
+		e.className = a.join(' ');
+	},
+
+	explode : function(d, s) {
+		var ar = s.split(d);
+		var oar = new Array();
+
+		for (var i = 0; i<ar.length; i++) {
+			if (ar[i] != "")
+				oar[oar.length] = ar[i];
+		}
+
+		return oar;
+	},
+
+	parseInt : function(s) {
+		if (s == null || s == '')
+			return 0;
+
+		return parseInt(s);
+	}
+}
diff --git a/tinyMCE/utils/mctabs.js b/tinyMCE/utils/mctabs.js
new file mode 100644
index 0000000000000000000000000000000000000000..fae038d6af82d1341aaba18b469e4f8445020a88
--- /dev/null
+++ b/tinyMCE/utils/mctabs.js
@@ -0,0 +1,74 @@
+/**
+ * $Id: mctabs.js 162 2007-01-03 16:16:52Z spocke $
+ *
+ * Moxiecode DHTML Tabs script.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+function MCTabs() {
+	this.settings = new Array();
+};
+
+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.displayTab = function(tab_id, panel_id) {
+	var panelElm = document.getElementById(panel_id);
+	var panelContainerElm = panelElm ? panelElm.parentNode : null;
+	var tabElm = document.getElementById(tab_id);
+	var tabContainerElm = tabElm ? tabElm.parentNode : null;
+	var selectionClass = this.getParam('selection_class', 'current');
+
+	if (tabElm && tabContainerElm) {
+		var nodes = tabContainerElm.childNodes;
+
+		// Hide all other tabs
+		for (var i=0; i<nodes.length; i++) {
+			if (nodes[i].nodeName == "LI")
+				nodes[i].className = '';
+		}
+
+		// Show selected tab
+		tabElm.className = 'current';
+	}
+
+	if (panelElm && panelContainerElm) {
+		var nodes = panelContainerElm.childNodes;
+
+		// Hide all other panels
+		for (var i=0; i<nodes.length; i++) {
+			if (nodes[i].nodeName == "DIV")
+				nodes[i].className = 'panel';
+		}
+
+		// Show selected panel
+		panelElm.className = 'current';
+	}
+};
+
+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();
diff --git a/tinyMCE/utils/validate.js b/tinyMCE/utils/validate.js
new file mode 100644
index 0000000000000000000000000000000000000000..b8931f4373dfb4359c58173328871155403098e0
--- /dev/null
+++ b/tinyMCE/utils/validate.js
@@ -0,0 +1,219 @@
+/**
+ * $Id: validate.js 162 2007-01-03 16:16:52Z spocke $
+ *
+ * Various form validation methods.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+/**
+	// 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]+(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);
+
+		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);
+	},
+
+	reset : function(e) {
+		var t = new Array('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);
+		}
+	},
+
+	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);
+		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;
+	}
+};