Index: /CKEditor/branches/prototype/_dev/_thirdparty/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl
===================================================================
--- /CKEditor/branches/prototype/_dev/_thirdparty/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl	(revision 2162)
+++ /CKEditor/branches/prototype/_dev/_thirdparty/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl	(revision 2163)
@@ -56,5 +56,5 @@
 		<div class="fineprint" style="clear:both">
 			<if test="JSDOC.opt.D.copyright">&copy;{+JSDOC.opt.D.copyright+}<br /></if>
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_dev/_thirdparty/jsdoc-toolkit/templates/jsdoc/class.tmpl
===================================================================
--- /CKEditor/branches/prototype/_dev/_thirdparty/jsdoc-toolkit/templates/jsdoc/class.tmpl	(revision 2162)
+++ /CKEditor/branches/prototype/_dev/_thirdparty/jsdoc-toolkit/templates/jsdoc/class.tmpl	(revision 2163)
@@ -496,5 +496,5 @@
 		<div class="fineprint" style="clear:both">
 			<if test="JSDOC.opt.D.copyright">&copy;{+JSDOC.opt.D.copyright+}<br /></if>
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_dev/_thirdparty/jsdoc-toolkit/templates/jsdoc/index.tmpl
===================================================================
--- /CKEditor/branches/prototype/_dev/_thirdparty/jsdoc-toolkit/templates/jsdoc/index.tmpl	(revision 2162)
+++ /CKEditor/branches/prototype/_dev/_thirdparty/jsdoc-toolkit/templates/jsdoc/index.tmpl	(revision 2163)
@@ -47,5 +47,5 @@
 		<div class="fineprint" style="clear:both">
 			<if test="JSDOC.opt.D.copyright">&copy;{+JSDOC.opt.D.copyright+}<br /></if>
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_dev/jslint/lint.conf
===================================================================
--- /CKEditor/branches/prototype/_dev/jslint/lint.conf	(revision 2162)
+++ /CKEditor/branches/prototype/_dev/jslint/lint.conf	(revision 2163)
@@ -139,5 +139,5 @@
 +process ../../_samples/*.js
 +process ../../_samples/*.html
-+process ../../ckeditor.js
-+process ../../ckeditor_basic.js
++process ../../ckeditor_source.js
++process ../../ckeditor_basic_source.js
 +process ../../config.js
Index: /CKEditor/branches/prototype/_dev/packager/fckpackager.php
===================================================================
--- /CKEditor/branches/prototype/_dev/packager/fckpackager.php	(revision 2163)
+++ /CKEditor/branches/prototype/_dev/packager/fckpackager.php	(revision 2163)
@@ -0,0 +1,856 @@
+#!/usr/bin/php -q
+<?php
+/*
+ * FCKpackager - JavaScript Packager and Compressor - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the main file of FCKpackager.
+ *
+ * You can call it through command line with "php fckpackager.php".
+ */
+
+echo( "\n" ) ;
+echo( 'FCKpackager - JavaScript Packager and Compressor - Version 1.0' . "\n" ) ;
+echo( 'Copyright 2004-2008 Frederico Caldeira Knabben - All rights reserved' . "\n" ) ;
+echo( "\n" ) ;
+
+
+// Check the number of arguments passed. The first one is the script name.
+if ( count( $argv ) > 2 )
+	ExitError( 'Invalid arguments. Operation aborted.' ) ;
+
+// Get the package definition file
+$xmlFileName = 'fckpackager.xml' ;
+
+if ( isset( $argv[1] ) )
+	$xmlFileName = $argv[1] ;
+
+$packager = new FCKPackager() ;
+$packager->LoadDefinitionFile( $xmlFileName ) ;
+$packager->Run() ;
+
+?>
+
+﻿<?php
+
+
+function ExitError( $message, $errorNumber = 1 )
+{
+	user_error( $message ) ;
+	exit( $errorNumber ) ;
+}
+
+function StrEndsWith( $str, $sub )
+{
+	return ( substr( $str, strlen( $str ) - strlen( $sub ) ) == $sub ) ;
+}
+
+function GetXmlAttribute( $element, $attName, $defValue = '' )
+{
+	if ( !isset( $element->Attributes[ $attName ] ) )
+		return $defValue ;
+
+	return $element->Attributes[ $attName ] ;
+}
+
+function CreateDir($path, $rights = 0777)
+{
+	$dirParts = explode( '/', $path ) ;
+
+	$currentDir = '' ;
+
+	foreach ( $dirParts as $dirPart )
+	{
+		$currentDir .= $dirPart . '/' ;
+
+		if ( strlen( $dirPart ) > 0 && !is_dir( $currentDir ) )
+			mkdir( $currentDir, $rights ) ;
+	}
+}
+
+function SaveStringToFile( $strData, $filePath, $includeUtf8Bom = FALSE )
+{
+	$f = fopen( $filePath, 'wb' ) ;
+
+	if ( !$f )
+		return FALSE ;
+
+	if ( $includeUtf8Bom )
+		fwrite( $f, "\xEF\xBB\xBF" ) ;	// BOM
+
+	fwrite( $f, StripUtf8Bom( $strData ) ) ;
+	fclose( $f ) ;
+
+	return TRUE ;
+}
+
+function StripUtf8Bom( $data )
+{
+	if ( substr( $data, 0, 3 ) == "\xEF\xBB\xBF" )
+		return substr_replace( $data, '', 0, 3 ) ;
+
+	return $data ;
+}
+
+function GetMicrotime()
+{
+	$timeParts = explode( ' ', microtime() ) ;
+
+	return $timeParts[0] + $timeParts[1] ;
+}
+
+?>
+<?php
+
+
+class FCKConstantProcessor
+{
+	// Public properties.
+	var $RemoveDeclaration ;
+	var $HasConstants ;
+
+	// Private properties.
+	var $_Constants ;
+	var $_ContantsRegexPart ;
+
+	function FCKConstantProcessor()
+	{
+		$this->RemoveDeclaration = TRUE ;
+		$this->HasConstants = FALSE ;
+
+		$this->_Constants = array() ;
+		$this->_ContantsRegexPart = '' ;
+	}
+
+	function AddConstant( $name, $value )
+	{
+		if ( strlen( $this->_ContantsRegexPart ) > 0 )
+			$this->_ContantsRegexPart .= '|' ;
+
+		$this->_ContantsRegexPart .= $name ;
+
+		$this->_Constants[ $name ] = $value ;
+
+		$this->HasConstants = TRUE ;
+	}
+
+	function Process( $script )
+	{
+		if ( !$this->HasConstants )
+			return $script;
+
+		$output = $script ;
+
+		if ( $this->RemoveDeclaration )
+		{
+			// /var\s+(?:BASIC_COLOR_RED|BASIC_COLOR_BLUE)\s*=.+?;/
+			$output = preg_replace(
+				'/var\\s+(?:' . $this->_ContantsRegexPart . ')\\s*=.+?;/m',
+				'', $output ) ;
+		}
+
+		$output = preg_replace_callback(
+			'/(?<!(var |...\.))(?:' . $this->_ContantsRegexPart . ')(?!\\w)/',
+			array( &$this, '_Contant_Replace_Evaluator' ), $output ) ;
+
+		return $output ;
+	}
+
+	function _Contant_Replace_Evaluator( $match )
+	{
+		$constantName = $match[0] ;
+
+		if ( isset( $this->_Constants[ $constantName ] ) )
+			return $this->_Constants[ $constantName ] ;
+		else
+			return $constantName ;
+	}
+}
+
+?>
+<?php
+
+
+class FCKFunctionProcessor
+{
+	var $_Function ;
+	var $_Parameters ;
+
+	var $_VarChars = array( 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','w','x','y','z' ) ;
+	var $_VarCharsLastIndex ;
+
+	var $_VarPrefix ;
+	var $_LastCharIndex ;
+	var $_NextPrefixIndex ;
+
+	var $_IsGlobal ;
+
+	function FCKFunctionProcessor( $function, $parameters, $isGlobal )
+	{
+		$this->_Function		= $function ;
+		$this->_Parameters		= $isGlobal ? NULL : $parameters ;
+
+		$this->_VarPrefix		= $isGlobal ? '_' : '' ;
+
+		$this->_IsGlobal		= $isGlobal ;
+
+		$this->_LastCharIndex	= 0;
+		$this->_NextPrefixIndex	= 0;
+
+		$this->_VarCharsLastIndex	= count( $this->_VarChars ) - 1 ;
+	}
+
+	function Process()
+	{
+		$processed = $this->_Function ;
+
+		if ( !$this->_IsGlobal )
+			$processed = $this->_ProcessVars( $processed, $this->_Parameters ) ;
+
+		$numVarMatches = preg_match_all( '/\bvar\b\s+([\w_][\w\d_]+)/', $processed, $varsMatches ) ;
+
+		if ( $numVarMatches > 0 )
+		{
+			$vars = array() ;
+
+			for ( $i = 0 ; $i < $numVarMatches ; $i++ )
+			{
+				$vars[] = $varsMatches[1][$i] ;
+			}
+
+			$processed = $this->_ProcessVars( $processed, $vars ) ;
+		}
+
+		return $processed ;
+	}
+
+	function _ProcessVars( $source, $vars )
+	{
+		foreach ( $vars as $var )
+		{
+			if ( strlen( $var) > 1 )
+				$source = preg_replace( '/(?<!\w|\d|\.)' . $var . '(?!\w|\d)/', $this->_GetVarName(), $source ) ;
+		}
+
+		return $source ;
+	}
+
+	function _GetVarName()
+	{
+		if ( $this->_LastCharIndex == $this->_VarCharsLastIndex )
+		{
+			$this->_RenewPrefix() ;
+			$this->_LastCharIndex = 0 ;
+		}
+
+		$var = $this->_VarPrefix . $this->_VarChars[ $this->_LastCharIndex++ ] ;
+
+		if ( preg_match( '/(?<!\w|\d|\.)' . $var . '(?!\w|\d)/', $this->_Function ) )
+			return $this->_GetVarName() ;
+		else
+			return $var ;
+	}
+
+	function _RenewPrefix()
+	{
+		if ( strlen( $this->_VarPrefix) > 0 && $this->_VarPrefix != "_" )
+		{
+			if ( $this->_NextPrefixIndex > $this->_VarCharsLastIndex )
+				$this->_NextPrefixIndex = 0 ;
+			else
+				$this->_VarPrefix = substr_replace( $this->_VarPrefix, '', strlen( $this->_VarPrefix ) - 1, 1 ) ;
+		}
+
+		$this->_VarPrefix .= $this->_VarChars[ $this->_NextPrefixIndex ] ;
+
+		$this->_NextPrefixIndex++;
+	}
+}
+
+?>
+<?php
+
+
+
+class FCKJavaScriptCompressor
+{
+	function FCKJavaScriptCompressor()
+	{}
+
+	// Call it statically. E.g.: FCKJavaScriptCompressor::Compress( ... )
+	function Compress( $script, $constantsProcessor )
+	{
+		// Concatenates all string with escaping new lines strings (ending with \).
+		$script = preg_replace(
+			'/\\\\[\n\r]+/s',
+			'\n', $script ) ;
+
+		$stringsProc = new FCKStringsProcessor() ;
+
+		// Protect the script strings.
+		$script = $stringsProc->ProtectStrings( $script ) ;
+
+		// Remove "//" comments
+		$script = preg_replace(
+			'/\/\/.*$/m',
+			'', $script ) ;
+
+		// Remove "/* */" comments
+		$script = preg_replace(
+			'/(?m-s:^\s*\/\*).*?\*\//s',
+			'', $script ) ;
+
+		// Remove spaces before the ";" at the end of the lines
+		$script = preg_replace(
+			'/\s*(?=;\s*$)/m',
+			'', $script ) ;
+
+		// Remove spaces next to "="
+		$script = preg_replace(
+			'/^([^"\'\r\n]*?)\s*=\s*/m',
+			'$1=', $script ) ;
+
+		// Remove spaces on "()": "( content )" = "(content)"
+		$script = preg_replace(
+			'/^([^\r\n""\']*?\()\s+(.*?)\s+(?=\)[^\)]*$)/m',
+			'$1$2', $script ) ;
+
+		// Concatenate lines that doesn't end with [;{}] using a space
+		$script = preg_replace(
+			'/(?<![;{}\n\r\s])\s*[\n\r]+\s*(?![\s\n\r{}])/s',
+			' ', $script ) ;
+
+		// Concatenate lines that end with "}" using a ";", except for "else",
+		// "while", "catch" and "finally" cases, or when followed by, "'", ";",
+		// "}" or ")".
+		$script = preg_replace(
+			'/\s*}\s*[\n\r]+\s*(?!\s*(else|catch|finally|while|[}\),;]))/s',
+			'};', $script ) ;
+
+		// Remove blank lines, spaces at the begining or the at the end and \n\r
+		$script = preg_replace(
+			'/(^\s*$)|(^\s+)|(\s+$\n)/m',
+			'', $script ) ;
+
+		// Remove the spaces between statements.
+		$script = FCKJavaScriptCompressor::_RemoveInnerSpaces( $script ) ;
+
+		// Process constants.	// CHECK
+		if ( $constantsProcessor->HasConstants )
+			$script = $constantsProcessor->Process( $script );
+
+		// Replace "new Object()".
+		$script = preg_replace(
+			'/new Object\(\)/',
+			'{}', $script ) ;
+
+		// Replace "new Array()".
+		$script = preg_replace(
+			'/new Array\(\)/',
+			'[]', $script ) ;
+
+		// Process function contents, renaming parameters and variables.
+		$script = FCKJavaScriptCompressor::_ProcessFunctions( $script ) ;
+
+		// Join consecutive string concatened with a "+".
+		$script = $stringsProc->ConcatProtectedStrings( $script );
+
+		// Restore the protected script strings.
+		$script = $stringsProc->RestoreStrings( $script );
+
+		return $script ;
+	}
+
+	function _RemoveInnerSpaces( $script )
+	{
+		return preg_replace_callback(
+			'/(?:\s*[=?:+\-*\/&,;><|!]\s*)|(?:[(\[]\s+)|(?:\s+[)\]])/',
+			array( 'FCKJavaScriptCompressor', '_RemoveInnerSpacesMatch' ), $script ) ;
+	}
+
+	function _RemoveInnerSpacesMatch( $match )
+	{
+		return trim( $match[0] ) ;
+	}
+
+	function _ProcessFunctions( $script )
+	{
+		return preg_replace_callback(
+			'/function(?:\s+\w+)?\s*\(\s*([^\)]*?)\s*\)\s*({(?:(?>[^{}]*)|(?2))*})+/',
+			array( 'FCKJavaScriptCompressor', '_ProcessFunctionMatch' ), $script ) ;
+	}
+
+	function _ProcessFunctionMatch( $match )
+	{
+		// Creates an array with the parameters names ($match[1]).
+		if ( strlen( trim( $match[1] ) ) == 0 )
+			$parameters = array() ;
+		else
+			$parameters = preg_split( '/\s*,\s*/', trim( $match[1] ) ) ;
+
+		$funcProcessor = new FCKFunctionProcessor( $match[0], $parameters, false ) ;
+
+		return $funcProcessor->Process() ;
+	}
+}
+
+?>
+<?php
+
+
+
+class FCKPackageFile
+{
+	// Public properties.
+	var $CompactJavaScript ;
+	var $RenameGlobals ;
+	var $Header ;
+	var $ConstantsProcessor ;
+
+	// Private properties.
+	var $_OutputPath ;
+	var $_Files ;
+
+	function FCKPackageFile( $outputPath )
+	{
+		$this->CompactJavaScript = TRUE ;
+		$this->RenameGlobals = FALSE ;
+		$this->Header = '' ;
+
+		$this->_OutputPath = $outputPath ;
+		$this->_Files = array() ;
+	}
+
+	function AddFile( $sourceFilePath )
+	{
+		$this->_Files[] = $sourceFilePath ;
+	}
+
+	function CreateFile()
+	{
+		echo 'Packaging file ' . basename( $this->_OutputPath ) . "\n" ;
+
+		// Extract the directory from the output file path.
+		$destDir = dirname( $this->_OutputPath );
+
+		// Create the directory if it doesn't exist.
+		if ( !@is_dir( $destDir ) )
+			CreateDir( $destDir ) ;
+
+		// Create the StringBuilder that will hold the output data.
+		$outputData = '' ;
+
+		$uncompressedSize = 0 ;
+
+		// Loop through the files.
+		foreach ( $this->_Files as $file )
+		{
+			// Read the file.
+			$data = file_get_contents( $file ) ;
+
+			// Strip the UTF-8 BOM, if available.
+			$data = StripUtf8Bom( $data ) ;
+
+			$dataSize = strlen( $data ) ;
+			$uncompressedSize += $dataSize ;
+
+			echo '    Adding ' . basename( $file ) . "\n" ;
+
+			// Compress (if needed) and process its contents.
+			if ( $this->CompactJavaScript )
+				$outputData .= FCKJavaScriptCompressor::Compress( FCKPreProcessor::Process( $data ), $this->ConstantsProcessor ) ;
+			else
+				$outputData .= FCKPreProcessor::Process( $data ) ;
+
+			// Each file terminates with a CRLF, even if compressed.
+			$outputData .= "\r\n" ;
+		}
+
+		// Replace global vars.
+		if ( $this->RenameGlobals )
+		{
+			$funcProcessor = new FCKFunctionProcessor( $outputData, NULL, true ) ;
+			$outputData = $funcProcessor->Process() ;
+		}
+
+		// Write the output file.
+		if ( strlen( $this->Header ) > 0 )
+			$outputData = $this->Header . "\r\n" . $outputData ;
+
+		if ( !SaveStringToFile( $outputData, $this->_OutputPath, TRUE ) )
+			ExitError( 'It was not possible to save the file "' . $this->_OutputPath . '".' ) ;
+
+		echo( "\n" );
+		echo( '    Number of files processed: ' . count( $this->_Files ) . "\n" ) ;
+		echo( '    Original size............: ' . number_format( $uncompressedSize ) . ' bytes' . "\n" ) ;
+		echo( '    Output file size.........: ' . number_format( strlen( $outputData ) ) . ' bytes (' . round( strlen( $outputData ) / $uncompressedSize * 100, 2 ) . '% of original)' . "\n" ) ;
+		echo( "\n" );
+	}
+}
+
+?>
+<?php
+
+
+
+class FCKPackager
+{
+	var $PackageFiles ;
+	var $RemoveDeclaration ;
+
+	var $_ConstantProcessor ;
+	var $_TotalFiles ;
+
+	function FCKPackager()
+	{
+		$this->PackageFiles = array() ;
+		$this->RemoveDeclaration = true ;
+
+		$this->_ConstantProcessor = new FCKConstantProcessor() ;
+		$this->_TotalFiles = 0 ;
+	}
+
+	function LoadDefinitionFile( $packageDefinitionXmlPath )
+	{
+		$XML = new FCKXmlDocument() ;
+
+		if ( !$XML->LoadFile( $packageDefinitionXmlPath ) )
+		   ExitError( 'Could not load XML definition file "' . $packageDefinitionXmlPath . '"' ) ;
+
+		$this->LoadDefinitionFileXmlDocument( $XML ) ;
+	}
+
+	function LoadDefinitionXml( $packageDefinitionXml )
+	{
+		$XML = new FCKXmlDocument() ;
+
+		if ( !$XML->LoadXml( $packageDefinitionXml ) )
+		   ExitError( 'Could not load XML data' ) ;
+
+		$this->RunXmlDocument( $XML ) ;
+	}
+
+	function LoadDefinitionFileXmlDocument( $packageDefinitionXmlDocument )
+	{
+		// Get the root "Package" element.
+		$packageNode = &$packageDefinitionXmlDocument->Children[ 'PACKAGE' ][0] ;
+
+		// Get the Header text.
+		if ( isset( $packageNode->Children[ 'HEADER' ] ) )
+			$header = $packageNode->Children[ 'HEADER' ][0]->Value ;
+		else
+			$header = 0 ;
+
+		// Get the constants (if defined).
+		$constantsNode = &$packageNode->Children[ 'CONSTANTS' ][0] ;
+
+		if ( isset( $constantsNode ) )
+		{
+			$this->_ConstantProcessor->RemoveDeclaration = ( GetXmlAttribute( $constantsNode, 'REMOVEDECLARATION', 'true' ) == 'true' ) ;
+
+			$constantNodes = &$constantsNode->Children[ 'CONSTANT' ] ;
+
+			// Add the constants to the constants processor.
+			foreach ( $constantNodes as $constantNode )
+			{
+				$this->_ConstantProcessor->AddConstant(
+					$constantNode->Attributes[ 'NAME' ],
+					$constantNode->Attributes[ 'VALUE' ] ) ;
+			}
+		}
+
+		// Get the Package Files definitions.
+		$packageFileNodes = $packageNode->Children[ 'PACKAGEFILE' ] ;
+
+		if ( isset( $packageFileNodes ) )
+		{
+			$this->_TotalFiles += count( $packageFileNodes ) ;
+
+			// Loop through the package files.
+			foreach ( $packageFileNodes as $packageFileNode )
+			{
+				// Create the package file instance.
+				$file = new FCKPackageFile( $packageFileNode->Attributes[ 'PATH' ] ) ;
+				$file->CompactJavaScript	= ( GetXmlAttribute( $packageFileNode, 'COMPACTJAVASCRIPT', 'true' ) == 'true' ) ;
+				$file->RenameGlobals		= ( GetXmlAttribute( $packageFileNode, 'RENAMEGLOBALS', 'false' ) == 'true' ) ;
+				$file->Header				= $header ;
+				$file->ConstantsProcessor	= &$this->_ConstantProcessor ;
+
+				// Get all files defined for that package file.
+				$fileNodes = $packageFileNode->Children[ 'FILE' ] ;
+
+				if ( isset( $fileNodes ) )
+				{
+					// Loop throwgh the files.
+					foreach ( $fileNodes as $fileNode )
+					{
+						$file->AddFile( $fileNode->Attributes[ 'PATH' ] ) ;
+					}
+				}
+
+				$this->PackageFiles[] = $file ;
+			}
+		}
+	}
+
+	function Run()
+	{
+		$startTime = GetMicrotime() ;
+
+		foreach ( $this->PackageFiles as $packageFile )
+		{
+			$packageFile->CreateFile() ;
+		}
+
+		$execTime = GetMicrotime() - $startTime ;
+		$execTime = number_format( $execTime, 10 ) ;
+
+		switch ( $this->_TotalFiles )
+		{
+			case 0 :
+				echo( 'No files defined' ) ;
+				break;
+			case 1 :
+				echo( 'The generation of the package file has been completed in ' . $execTime . ' seconds.' ) ;
+				break;
+			default :
+				echo( 'The generation of ' . $this->_TotalFiles . ' files has been completed in ' . $execTime . ' seconds.' ) ;
+				break;
+		}
+	}
+}
+
+?>
+<?php
+
+
+class FCKPreProcessor
+{
+	function FCKPreProcessor()
+	{}
+
+	// Call it statically. E.g.: FCKPreProcessor::ProcessFile( ... )
+	function ProcessFile( $sourceFilePath, $destinationFilePath, $onlyHeader = FALSE )
+	{
+		SaveStringToFile(
+			FCKPreProcessor::Process( file_get_contents( $sourceFilePath ), $onlyHeader ),
+			$destinationFilePath,
+			( StrEndsWith( $sourceFilePath, '.asp' ) || StrEndsWith( $sourceFilePath, '.js' ) ) ) ;	// Only ASP and JavaScript files require the BOM.
+
+		// Set the destination file Last Access and Last Write times.
+		// It seams we can't change the creation time with PHP.
+		touch( $destinationFilePath, filemtime( $sourceFilePath ), fileatime( $sourceFilePath ) ) ;
+	}
+
+	// Call it statically. E.g.: FCKPreProcessor::Process( ... )
+	function Process( $data, $onlyHeader = false )
+	{
+		if ( ! $onlyHeader )
+		{
+			// Remove everything between the @Packager.Remove.Start and
+			// @Packager.Remove.End clauses including the clauses lines.
+			$data = preg_replace(
+				'/(?m-s:^.*?@Packager\.Remove\.Start).*?(?m-s:@Packager\.Remove\.End.*?$\n?)/is',
+				'', $data ) ;
+
+			// Remove all lines containing the @Packager.RemoveLine clause.
+			$data = preg_replace(
+				'/^.*@Packager\.RemoveLine.*$\n?/im',
+				'', $data ) ;
+		}
+
+		// Fix invalid line breaks (must be all CRLF).
+		$data = preg_replace(
+			'/(?:(?<!\r)\n)|(?:\r(?!\n))/im',
+			"\r\n", $data ) ;
+
+		return $data ;
+	}
+}
+
+?>
+<?php
+
+
+class FCKStringsProcessor
+{
+	var $_ProtectedStrings ;
+
+	function FCKStringsProcessor()
+	{
+		$_ProtectedStrings = array() ;
+	}
+
+	function ProtectStrings( $source )
+	{
+		return preg_replace_callback(
+			'/(?:("|\').*?(?<!\\\\)\1|(?<![\/\\\\])\/[^\/\*].*?(?<!\\\\)\/)/',
+			array( &$this, '_ProtectStringsMatch' ), $source ) ;
+	}
+
+	function _ProtectStringsMatch( $match )
+	{
+		$this->_ProtectedStrings[] = $match[0] ;
+		return '@' . ( count( $this->_ProtectedStrings ) - 1 ) . '@' ;
+	}
+
+	function ConcatProtectedStrings( $source )
+	{
+		return preg_replace_callback(
+			'/@\d+@(?>@\d+@|\+)+@\d+@/',
+			array( &$this, '_ConcatProtectedStringsMatch' ), $source ) ;
+	}
+
+	function _ConcatProtectedStringsMatch( $match )
+	{
+		// $match[0] is something like @2@+@3@+@4@+@5@
+
+		$indexes = explode( '@+@', trim( $match[0], '@') ) ;
+
+		$leftIndex	= (int)$indexes[0] ;
+		$rightPosition = 1 ;
+
+		$output = '@' . $leftIndex . '@' ;
+
+		while( $rightPosition < count( $indexes ) )
+		{
+			$rightIndex	= (int)$indexes[ $rightPosition ] ;
+
+			$left	= $this->_ProtectedStrings[ $leftIndex ] ;
+			$right	= $this->_ProtectedStrings[ $rightIndex ] ;
+
+			if ( strncmp( $left, $right, 1 ) == 0 )
+			{
+				$left = substr_replace( $left, '', strlen( $left ) - 1, 1 ) ;
+				$right = substr_replace( $right, '', 0, 1 ) ;
+
+				$this->_ProtectedStrings[ $leftIndex ] = $left . $right ;
+				$this->_ProtectedStrings[ $rightIndex ] = '' ;
+			}
+			else
+			{
+				$leftIndex = $rightIndex ;
+				$output .= '+@' . $leftIndex . '@' ;
+			}
+
+			$rightPosition++ ;
+		}
+
+		return $output ;
+	}
+
+	function RestoreStrings( $source )
+	{
+		return preg_replace_callback(
+			'/@(\d+)@/',
+			array( &$this, '_RestoreStringsMatch' ), $source ) ;
+	}
+
+	function _RestoreStringsMatch( $match )
+	{
+		return $this->_ProtectedStrings[ (int)$match[1] ] ;
+	}
+}
+
+?>
+<?php
+
+
+class FCKXmlDocument
+{
+	// Public properties.
+	var $Children ;
+
+	// Private properties.
+	var $_XmlParser ;
+	var $_CurrentNode ;
+
+	function FCKXmlDocument()
+	{
+		$this->Children = array() ;
+	}
+
+	function LoadFile( $filePath )
+	{
+		$this->Children = array() ;
+		$this->_CurrentNode = &$this ;
+
+		return $this->LoadXml( file_get_contents( $filePath ) ) ;
+	}
+
+	function LoadXml( $xml )
+	{
+		// Create the XML Parser.
+		$this->_XmlParser = xml_parser_create( '' ) ;
+
+		// Setup the parser.
+		xml_parser_set_option( $this->_XmlParser, XML_OPTION_SKIP_WHITE, 1 ) ;
+		xml_set_object( $this->_XmlParser, $this ) ;
+		xml_set_element_handler( $this->_XmlParser, '_ElementOpen', '_ElementClosed' ) ;
+
+		xml_set_character_data_handler( $this->_XmlParser, '_ElementData' ) ;
+
+		// Parse it.
+		if( !xml_parse( $this->_XmlParser, $xml ) )
+		{
+		   ExitError( sprintf( "XML error: %s at line %d",
+				xml_error_string(xml_get_error_code( $this->_XmlParser ) ),
+				xml_get_current_line_number( $this->_XmlParser ) ) ) ;
+		}
+
+		// Release the parser.
+		xml_parser_free( $this->_XmlParser ) ;
+
+		unset( $this->_XmlParser ) ;
+		unset( $this->_CurrentNode ) ;
+
+		// For debug purposes:
+		// SaveStringToFile( print_r( $this, TRUE ), 'parsed.txt' ) ;
+		// print_r( $this ) ;
+		// exit ;
+
+		return TRUE ;
+	}
+
+	function _ElementOpen( $parser, $name, $attrs )
+	{
+		$newNode = (object)array(
+			'Parent' => &$this->_CurrentNode,
+			'Name' => $name,
+			'Attributes' => $attrs,
+			'Value' => '',
+			'Children' => array() ) ;
+
+		$this->_CurrentNode->Children[ $name ][] = &$newNode ;
+
+		$this->_CurrentNode = &$newNode ;
+	}
+
+	function _ElementClosed( $parser, $name )
+	{
+		$this->_CurrentNode = &$this->_CurrentNode->Parent ;
+	}
+
+	function _ElementData( $parser, $data )
+	{
+		$this->_CurrentNode->Value .= $data ;
+	}
+}
+
+?>
Index: /CKEditor/branches/prototype/_dev/packager/package.bat
===================================================================
--- /CKEditor/branches/prototype/_dev/packager/package.bat	(revision 2163)
+++ /CKEditor/branches/prototype/_dev/packager/package.bat	(revision 2163)
@@ -0,0 +1,25 @@
+@ECHO OFF
+
+::
+:: CKEditor - The text editor for Internet - http://ckeditor.com
+:: Copyright (C) 2003-2008 Frederico Caldeira Knabben
+::
+:: == BEGIN LICENSE ==
+::
+:: Licensed under the terms of any of the following licenses at your
+:: choice:
+::
+::  - GNU General Public License Version 2 or later (the "GPL")
+::    http://www.gnu.org/licenses/gpl.html
+::
+::  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+::    http://www.gnu.org/licenses/lgpl.html
+::
+::  - Mozilla Public License Version 1.1 or later (the "MPL")
+::    http://www.mozilla.org/MPL/MPL-1.1.html
+::
+:: == END LICENSE ==
+::
+
+CD ../..
+php _dev/packager/fckpackager.php
Index: /CKEditor/branches/prototype/_dev/packager/packagefilegen.html
===================================================================
--- /CKEditor/branches/prototype/_dev/packager/packagefilegen.html	(revision 2163)
+++ /CKEditor/branches/prototype/_dev/packager/packagefilegen.html	(revision 2163)
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Package File Generator - CKEditor</title>
+	<script type="text/javascript">
+	//<![CDATA[
+
+function generate()
+{
+	document.getElementById( 'basic' ).contentWindow.generate();
+	document.getElementById( 'full' ).contentWindow.generate();
+
+	var output = document.getElementById( 'output' );
+	output.value = document.getElementById( 'header' ).value + '\r\n\r\n';
+
+	output.value += document.getElementById( 'basic' ).contentDocument.getElementById( 'output' ).value + '\r\n';
+	output.value += document.getElementById( 'full' ).contentDocument.getElementById( 'output' ).value + '\r\n';
+
+	output.value += '</Package>\r\n';
+
+	output.style.display = '';
+}
+
+	//]]>
+	</script>
+</head>
+<body>
+	<form action="">
+		<p>
+			<input type="button" value="Generate" onclick="generate();" />
+		</p>
+		<p>
+			<textarea id="output" cols="80" rows="30" style="width: 100%; display: none"></textarea>
+		</p>
+		<iframe id="basic" src="packagefilegen_basic.html" style="position: absolute; left: -1000px">
+		</iframe>
+		<iframe id="full" src="packagefilegen_full.html" style="position: absolute; left: -1000px">
+		</iframe>
+		<textarea id="header" cols="80" rows="10" style="display: none">&lt;?xml version="1.0" encoding="utf-8" ?&gt;
+&lt;!--
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+--&gt;
+&lt;Package&gt;
+
+	&lt;Header&gt;&lt;![CDATA[/*
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ */
+]]&gt;&lt;/Header&gt;</textarea>
+	</form>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_dev/packager/packagefilegen_basic.html
===================================================================
--- /CKEditor/branches/prototype/_dev/packager/packagefilegen_basic.html	(revision 2163)
+++ /CKEditor/branches/prototype/_dev/packager/packagefilegen_basic.html	(revision 2163)
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Package File Generator - CKEditor</title>
+	<script type="text/javascript" src="../../ckeditor_basic_source.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+var downloaded = [];
+
+CKEDITOR.on( 'download', function( event )
+	{
+		downloaded.push( event.data );
+	});
+
+function generate()
+{
+	var output = document.getElementById( 'output' );
+	output.value = '\t<PackageFile path="ckeditor_basic.js">\r\n';
+
+	var appendedFiles = {};
+	var appendFile = function( filePath )
+	{
+		if ( appendedFiles[ filePath ] )
+			return;
+
+		appendedFiles[ filePath ] = true;
+
+		output.value += '\t\t<File path="' + filePath + '" />\r\n';
+	};
+
+	appendFile( '_source/core/ckeditor_base.js' );
+
+	for ( var i = 0 ; i < CKEDITOR.loader.loadedScripts.length ; i++ )
+	{
+		var path = CKEDITOR.loader.loadedScripts[i].replace( CKEDITOR.basePath, '' );
+		appendFile( '_source/' + path + '.js' );
+	}
+
+	for ( var i = 0 ; i < downloaded.length ; i++ )
+	{
+		var path = downloaded[i].replace( CKEDITOR.basePath, '' );
+
+		if ( path == 'config.js' )
+			continue;
+
+		appendFile( path );
+	}
+
+	output.value += '\t</PackageFile>\r\n';
+
+	output.style.display = '';
+}
+
+	//]]>
+	</script>
+</head>
+<body>
+	<p>
+		<input type="button" value="Generate" onclick="generate();" />
+	</p>
+	<p>
+		<textarea id="output" rows="10" cols="80" style="width: 100%; display: none"></textarea>
+	</p>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_dev/packager/packagefilegen_full.html
===================================================================
--- /CKEditor/branches/prototype/_dev/packager/packagefilegen_full.html	(revision 2163)
+++ /CKEditor/branches/prototype/_dev/packager/packagefilegen_full.html	(revision 2163)
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Package File Generator - CKEditor</title>
+	<script type="text/javascript" src="../../ckeditor_source.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+var downloaded = [];
+
+CKEDITOR.on( 'download', function( event )
+	{
+		downloaded.push( event.data );
+	});
+
+function generate()
+{
+	var output = document.getElementById( 'output' );
+	output.value = '\t<PackageFile path="ckeditor.js">\r\n';
+
+	var appendedFiles = {};
+	var appendFile = function( filePath )
+	{
+		if ( appendedFiles[ filePath ] )
+			return;
+
+		appendedFiles[ filePath ] = true;
+
+		output.value += '\t\t<File path="' + filePath + '" />\r\n';
+	};
+
+	appendFile( '_source/core/ckeditor_base.js' );
+
+	for ( var i = 0 ; i < CKEDITOR.loader.loadedScripts.length ; i++ )
+	{
+		var path = CKEDITOR.loader.loadedScripts[i].replace( CKEDITOR.basePath, '' );
+		appendFile( '_source/' + path + '.js' );
+	}
+
+	for ( var i = 0 ; i < downloaded.length ; i++ )
+	{
+		var path = downloaded[i].replace( CKEDITOR.basePath, '' );
+
+		if ( path == 'config.js' )
+			continue;
+
+		appendFile( path );
+	}
+
+	output.value += '\t</PackageFile>\r\n';
+
+	output.style.display = '';
+}
+
+	//]]>
+	</script>
+</head>
+<body>
+	<form action="">
+		<p>
+			<label for="editor1">
+				Editor 1:</label><br />
+			<textarea name="editor1" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://www.fckeditor.net/"&gt;FCKeditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
+
+			  CKEDITOR.replace( 'editor1' );
+
+			//]]>
+			</script>
+		</p>
+		<p>
+			<input type="button" value="Generate" onclick="generate();" />
+		</p>
+		<p>
+			<textarea id="output" rows="10" cols="80" style="width: 100%; display: none"></textarea>
+		</p>
+	</form>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/files.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/files.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/files.html	(revision 2163)
@@ -934,5 +934,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/index.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/index.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/index.html	(revision 2163)
@@ -526,5 +526,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.ajax.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.ajax.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.ajax.html	(revision 2163)
@@ -618,5 +618,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:02 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.config.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.config.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.config.html	(revision 2163)
@@ -845,5 +845,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:02 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.element.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.element.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.element.html	(revision 2163)
@@ -1435,5 +1435,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:02 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.html	(revision 2163)
@@ -432,5 +432,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:02 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.node.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.node.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.node.html	(revision 2163)
@@ -667,5 +667,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:02 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.editor.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.editor.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.editor.html	(revision 2163)
@@ -823,5 +823,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:02 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.env.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.env.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.env.html	(revision 2163)
@@ -779,5 +779,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:02 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.event.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.event.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.event.html	(revision 2163)
@@ -886,5 +886,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.eventInfo.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.eventInfo.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.eventInfo.html	(revision 2163)
@@ -839,5 +839,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.html	(revision 2163)
@@ -1012,5 +1012,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:02 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.loader.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.loader.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.loader.html	(revision 2163)
@@ -578,5 +578,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.pluginDefinition.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.pluginDefinition.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.pluginDefinition.html	(revision 2163)
@@ -523,5 +523,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.plugins.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.plugins.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.plugins.html	(revision 2163)
@@ -443,5 +443,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.resourceManager.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.resourceManager.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.resourceManager.html	(revision 2163)
@@ -1053,5 +1053,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.scriptLoader.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.scriptLoader.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.scriptLoader.html	(revision 2163)
@@ -608,5 +608,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.html	(revision 2163)
@@ -595,5 +595,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.themes.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.themes.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.themes.html	(revision 2163)
@@ -443,5 +443,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.tools.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.tools.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.tools.html	(revision 2163)
@@ -686,5 +686,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.xml.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.xml.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.xml.html	(revision 2163)
@@ -617,5 +617,5 @@
 					<div class="fixedFont" style="float:left">
 
-					<span class="light">{Array}</span>
+					<span class="light">{ArrayLike}</span>
 					<b>selectNodes</b>(xpath, contextNode)
 
@@ -676,5 +676,5 @@
 							<dt class="heading">Returns:</dt>
 
-								<dd><span class="light fixedFont">{Array}</span> An array containing all matched nodes. The array will
+								<dd><span class="light fixedFont">{ArrayLike}</span> An array containing all matched nodes. The array will
 		be empty if the query has no results.</dd>
 
@@ -764,5 +764,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:03 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/_global_.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/_global_.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/_global_.html	(revision 2163)
@@ -361,5 +361,5 @@
 		<div class="fineprint" style="clear:both">
 
-			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.1 on Wed Jul 02 2008 18:55:02 GMT+0200 (CEST)
+			Documentation generated by <a rel="nofollow" href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a>
 		</div>
 	</body>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor.js.html	(revision 2163)
@@ -80,9 +80,7 @@
 <span class='line'> 73</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 74</span>
-<span class='line'> 75</span> </span><span class="COMM">// Set the status to "loading", which means that the main CKEDITOR object has</span><span class="WHIT">
-<span class='line'> 76</span> </span><span class="COMM">// been created, and the rest is getting loaded.</span><span class="WHIT">
-<span class='line'> 77</span> </span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'loading'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 78</span>
-<span class='line'> 79</span> </span><span class="COMM">// Load the bootstrap script.</span><span class="WHIT">
-<span class='line'> 80</span> </span><span class="NAME">CKEDITOR.loader.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'core/_bootstrap'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 81</span> </span></pre></body></html>
+<span class='line'> 75</span> </span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'loaded'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 76</span>
+<span class='line'> 77</span> </span><span class="COMM">// Load the bootstrap script.</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="NAME">CKEDITOR.loader.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'core/_bootstrap'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">		</span><span class="COMM">// @Packager.RemoveLine</span><span class="WHIT">
+<span class='line'> 79</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor_base.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor_base.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor_base.js.html	(revision 2163)
@@ -34,7 +34,7 @@
 <span class='line'> 27</span> </span><span class="COMM">// #### Compressed Code</span><span class="WHIT">
 <span class='line'> 28</span> </span><span class="COMM">// Must be updated on changes in the script, as well as updated in the</span><span class="WHIT">
-<span class='line'> 29</span> </span><span class="COMM">// ckeditor.js and ckeditor_basic.js files.</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="COMM">// ckeditor_source.js and ckeditor_basic_source.js files.</span><span class="WHIT">
 <span class='line'> 30</span>
-<span class='line'> 31</span> </span><span class="COMM">// if (!window.CKEDITOR){window.CKEDITOR=(function(){return {_:{},status:'unloaded',basePath:(function(){var A='';var B=document.getElementsByTagName('script');for (var i=0;i&lt;B.length;i++){var C=B[i].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?.js(?:\?.*)?$/i);if (C){A=C[1];break;}};if (A.indexOf('://')==-1){if (A.indexOf('/')==0) A=location.href.match(/^.*?:\/\/[^\/]*/)[0]+A;else A=location.href.match(/^[^\?]*\//)[0]+A;};return A;})()};})();};</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="COMM">// if (!window.CKEDITOR){window.CKEDITOR=(function(){var A={_:{},status:'unloaded',basePath:(function(){var B='';var C=document.getElementsByTagName('script');for (var i=0;i&lt;C.length;i++){var D=C[i].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if (D){B=D[1];break;}};if (B.indexOf('://')==-1){if (B.indexOf('/')===0) B=location.href.match(/^.*?:\/\/[^\/]*/)[0]+B;else B=location.href.match(/^[^\?]*\//)[0]+B;};return B;})()};A.scriptsPath=A.basePath+'_source/';return A;})();};</span><span class="WHIT">
 <span class='line'> 32</span>
 <span class='line'> 33</span> </span><span class="COMM">// #### Raw code</span><span class="WHIT">
@@ -51,74 +51,79 @@
 <span class='line'> 44</span> </span><span class="WHIT">	</span><span class="NAME">window.CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'> 45</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 46</span> </span><span class="WHIT">		</span><span class="COMM">/** @lends CKEDITOR */</span><span class="WHIT">
-<span class='line'> 47</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 48</span> </span><span class="WHIT">			</span><span class="COMM">/**
-<span class='line'> 49</span> 			 * Private object used to hold core stuff. It should not be used out of
-<span class='line'> 50</span> 			 * the API code as properties defined here may change at any time
-<span class='line'> 51</span> 			 * without notice.
-<span class='line'> 52</span> 			 * @private
-<span class='line'> 53</span> 			 */</span><span class="WHIT">
-<span class='line'> 54</span> </span><span class="WHIT">			</span><span class="NAME">_</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 55</span>
-<span class='line'> 56</span> </span><span class="WHIT">			</span><span class="COMM">/**
-<span class='line'> 57</span> 			 * Indicates the API loading status. The following status are available:
-<span class='line'> 58</span> 			 *		&lt;ul>
-<span class='line'> 59</span> 			 *			&lt;li>&lt;b>unloaded&lt;/b>: the API is not yet loaded.&lt;/li>
-<span class='line'> 60</span> 			 *			&lt;li>&lt;b>basic_loaded&lt;/b>: the basic API features are available.&lt;/li>
-<span class='line'> 61</span> 			 *			&lt;li>&lt;b>basic_ready&lt;/b>: the basic API is ready to load the full core code.&lt;/li>
-<span class='line'> 62</span> 			 *			&lt;li>&lt;b>loading&lt;/b>: the full API is being loaded.&lt;/li>
-<span class='line'> 63</span> 			 *			&lt;li>&lt;b>ready&lt;/b>: the API can be fully used.&lt;/li>
-<span class='line'> 64</span> 			 *		&lt;/ul>
-<span class='line'> 65</span> 			 * @type string
-<span class='line'> 66</span> 			 * @example
-<span class='line'> 67</span> 			 * if ( &lt;b>CKEDITOR.status&lt;/b> == 'ready' )
-<span class='line'> 68</span> 			 * {
-<span class='line'> 69</span> 			 *     // The API can now be fully used.
-<span class='line'> 70</span> 			 * }
-<span class='line'> 71</span> 			 */</span><span class="WHIT">
-<span class='line'> 72</span> </span><span class="WHIT">			</span><span class="NAME">status</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'unloaded'</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 73</span>
-<span class='line'> 74</span> </span><span class="WHIT">			</span><span class="COMM">/**
-<span class='line'> 75</span> 			 * Contains the full URL for the CKEditor installation directory.
-<span class='line'> 76</span> 			 * @type string
-<span class='line'> 77</span> 			 * @example
-<span class='line'> 78</span> 			 * alert( &lt;b>CKEDITOR.basePath&lt;/b> );  // "http://www.example.com/ckeditor/" (e.g.)
-<span class='line'> 79</span> 			 */</span><span class="WHIT">
-<span class='line'> 80</span> </span><span class="WHIT">			</span><span class="NAME">basePath</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 81</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 82</span> </span><span class="WHIT">				</span><span class="COMM">// ATTENTION: fixes on this code must be ported to</span><span class="WHIT">
-<span class='line'> 83</span> </span><span class="WHIT">				</span><span class="COMM">// var basePath in "core/loader.js".</span><span class="WHIT">
-<span class='line'> 84</span>
-<span class='line'> 85</span> </span><span class="WHIT">				</span><span class="COMM">// Find out the editor directory path, based on its &lt;script> tag.</span><span class="WHIT">
-<span class='line'> 86</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 87</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 88</span>
-<span class='line'> 89</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">scripts.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 90</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 91</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">src.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/(^|.*[\\\/])ckeditor(?:_basic)?.js(?:\?.*)?$/i</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 92</span>
-<span class='line'> 93</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 94</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 95</span> </span><span class="WHIT">						</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 96</span> </span><span class="WHIT">						</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 97</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 98</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 99</span>
-<span class='line'>100</span> </span><span class="WHIT">				</span><span class="COMM">// In IE (only) the script.src string is the raw valued entered in the</span><span class="WHIT">
-<span class='line'>101</span> </span><span class="WHIT">				</span><span class="COMM">// HTML. Other browsers return the full resolved URL instead.</span><span class="WHIT">
-<span class='line'>102</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">path.indexOf</span><span class="PUNC">(</span><span class="STRN">'://'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>103</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>104</span> </span><span class="WHIT">					</span><span class="COMM">// Absolute path.</span><span class="WHIT">
-<span class='line'>105</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">path.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>106</span> </span><span class="WHIT">						</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.href.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/^.*?:\/\/[^\/]*/</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>107</span> </span><span class="WHIT">					</span><span class="COMM">// Relative path.</span><span class="WHIT">
-<span class='line'>108</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT">
-<span class='line'>109</span> </span><span class="WHIT">						</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.href.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/^[^\?]*\//</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>110</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>111</span>
-<span class='line'>112</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>113</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>114</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>115</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>116</span> </span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>117</span> </span></pre></body></html>
+<span class='line'> 46</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">		</span><span class="COMM">/** @lends CKEDITOR */</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 50</span> 			 * Private object used to hold core stuff. It should not be used out of
+<span class='line'> 51</span> 			 * the API code as properties defined here may change at any time
+<span class='line'> 52</span> 			 * without notice.
+<span class='line'> 53</span> 			 * @private
+<span class='line'> 54</span> 			 */</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">			</span><span class="NAME">_</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 56</span>
+<span class='line'> 57</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 58</span> 			 * Indicates the API loading status. The following status are available:
+<span class='line'> 59</span> 			 *		&lt;ul>
+<span class='line'> 60</span> 			 *			&lt;li>&lt;b>unloaded&lt;/b>: the API is not yet loaded.&lt;/li>
+<span class='line'> 61</span> 			 *			&lt;li>&lt;b>basic_loaded&lt;/b>: the basic API features are available.&lt;/li>
+<span class='line'> 62</span> 			 *			&lt;li>&lt;b>basic_ready&lt;/b>: the basic API is ready to load the full core code.&lt;/li>
+<span class='line'> 63</span> 			 *			&lt;li>&lt;b>loading&lt;/b>: the full API is being loaded.&lt;/li>
+<span class='line'> 64</span> 			 *			&lt;li>&lt;b>ready&lt;/b>: the API can be fully used.&lt;/li>
+<span class='line'> 65</span> 			 *		&lt;/ul>
+<span class='line'> 66</span> 			 * @type string
+<span class='line'> 67</span> 			 * @example
+<span class='line'> 68</span> 			 * if ( &lt;b>CKEDITOR.status&lt;/b> == 'ready' )
+<span class='line'> 69</span> 			 * {
+<span class='line'> 70</span> 			 *     // The API can now be fully used.
+<span class='line'> 71</span> 			 * }
+<span class='line'> 72</span> 			 */</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">			</span><span class="NAME">status</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'unloaded'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 74</span>
+<span class='line'> 75</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 76</span> 			 * Contains the full URL for the CKEditor installation directory.
+<span class='line'> 77</span> 			 * @type string
+<span class='line'> 78</span> 			 * @example
+<span class='line'> 79</span> 			 * alert( &lt;b>CKEDITOR.basePath&lt;/b> );  // "http://www.example.com/ckeditor/" (e.g.)
+<span class='line'> 80</span> 			 */</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">			</span><span class="NAME">basePath</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">				</span><span class="COMM">// ATTENTION: fixes on this code must be ported to</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">				</span><span class="COMM">// var basePath in "core/loader.js".</span><span class="WHIT">
+<span class='line'> 85</span>
+<span class='line'> 86</span> </span><span class="WHIT">				</span><span class="COMM">// Find out the editor directory path, based on its &lt;script> tag.</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 89</span>
+<span class='line'> 90</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">scripts.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">src.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 93</span>
+<span class='line'> 94</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">						</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 97</span> </span><span class="WHIT">						</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>100</span>
+<span class='line'>101</span> </span><span class="WHIT">				</span><span class="COMM">// In IE (only) the script.src string is the raw valued entered in the</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">				</span><span class="COMM">// HTML. Other browsers return the full resolved URL instead.</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">path.indexOf</span><span class="PUNC">(</span><span class="STRN">'://'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">					</span><span class="COMM">// Absolute path.</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">path.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">						</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.href.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/^.*?:\/\/[^\/]*/</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">					</span><span class="COMM">// Relative path.</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">						</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">location.href.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/^[^\?]*\//</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>112</span>
+<span class='line'>113</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>116</span>
+<span class='line'>117</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.scriptsPath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'_source/'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span>
+<span class='line'>119</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>122</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor_basic.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor_basic.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor_basic.js.html	(revision 2163)
@@ -33,190 +33,192 @@
 <span class='line'> 26</span>  */</span><span class="WHIT">
 <span class='line'> 27</span>
-<span class='line'> 28</span> </span><span class="NAME">CKEDITOR.event.implementOn</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 29</span>
-<span class='line'> 30</span> </span><span class="COMM">/**
-<span class='line'> 31</span>  * Forces the full CKEditor core code, in the case only the basic code has been
-<span class='line'> 32</span>  * loaded (ckeditor_basic.js). This method self-destroys (becomes undefined) in
-<span class='line'> 33</span>  * the first call or as soon as the full code is available.
-<span class='line'> 34</span>  * @type undefined
-<span class='line'> 35</span>  * @example
-<span class='line'> 36</span>  * // Check if the full core code has been loaded and load it.
-<span class='line'> 37</span>  * if ( CKEDITOR.loadFullCore )
-<span class='line'> 38</span>  *     &lt;b>CKEDITOR.loadFullCore()&lt;/b>;
-<span class='line'> 39</span>  */</span><span class="WHIT">
-<span class='line'> 40</span> </span><span class="NAME">CKEDITOR.loadFullCore</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 41</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 42</span> </span><span class="WHIT">	</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.loadFullCore</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 43</span>
-<span class='line'> 44</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.loadFullCore._loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'unloaded'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.event.implementOn</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 31</span>
+<span class='line'> 32</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 33</span> 	 * Forces the full CKEditor core code, in the case only the basic code has been
+<span class='line'> 34</span> 	 * loaded (ckeditor_basic.js). This method self-destroys (becomes undefined) in
+<span class='line'> 35</span> 	 * the first call or as soon as the full code is available.
+<span class='line'> 36</span> 	 * @type undefined
+<span class='line'> 37</span> 	 * @example
+<span class='line'> 38</span> 	 * // Check if the full core code has been loaded and load it.
+<span class='line'> 39</span> 	 * if ( CKEDITOR.loadFullCore )
+<span class='line'> 40</span> 	 *     &lt;b>CKEDITOR.loadFullCore()&lt;/b>;
+<span class='line'> 41</span> 	 */</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.loadFullCore</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">		</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.loadFullCore</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 45</span>
-<span class='line'> 46</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 47</span> </span><span class="WHIT">	</span><span class="NAME">script.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'text/javascript'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 48</span> </span><span class="WHIT">	</span><span class="NAME">script.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'ckeditor.js'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 49</span>
-<span class='line'> 50</span> </span><span class="WHIT">	</span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'head'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 51</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 52</span>
-<span class='line'> 53</span> </span><span class="COMM">/**
-<span class='line'> 54</span>  * The class name used to identify &lt;textarea&gt; elements to be replace
-<span class='line'> 55</span>  * by CKEditor instances.
-<span class='line'> 56</span>  * @type string
-<span class='line'> 57</span>  * @default 'ckeditor'
-<span class='line'> 58</span>  * @example
-<span class='line'> 59</span>  * &lt;b>CKEDITOR.replaceClass&lt;/b> = 'rich_editor';
-<span class='line'> 60</span>  */</span><span class="WHIT">
-<span class='line'> 61</span> </span><span class="NAME">CKEDITOR.replaceClass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'ckeditor'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 62</span>
-<span class='line'> 63</span> </span><span class="COMM">/**
-<span class='line'> 64</span>  * Enables the replacement of all textareas with class name matching
-<span class='line'> 65</span>  * {@link CKEDITOR.replaceClass}.
-<span class='line'> 66</span>  * @type Boolean
-<span class='line'> 67</span>  * @default true
-<span class='line'> 68</span>  * @example
-<span class='line'> 69</span>  * // Disable the auto-replace feature.
-<span class='line'> 70</span>  * &lt;b>CKEDITOR.replaceByClassEnabled&lt;/b> = false;
-<span class='line'> 71</span>  */</span><span class="WHIT">
-<span class='line'> 72</span> </span><span class="NAME">CKEDITOR.replaceByClassEnabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 73</span>
-<span class='line'> 74</span> </span><span class="COMM">/**
-<span class='line'> 75</span>  * Replaces a specific &lt;textarea&gt; with a CKEditor instance.
-<span class='line'> 76</span>  * @param {object|string} elementOrIdOrName The DOM element (textarea), its
-<span class='line'> 77</span>  *		ID or name.
-<span class='line'> 78</span>  * @param {Object} [config] The specific configurations to apply to this
-<span class='line'> 79</span>  *		editor instance. Configurations set here will override global CKEditor
-<span class='line'> 80</span>  *		settings.
-<span class='line'> 81</span>  * @type undefined
-<span class='line'> 82</span>  * @example
-<span class='line'> 83</span>  * &lt;textarea id="myfield" name="myfield"&gt;&lt:/textarea&gt;
-<span class='line'> 84</span>  * ...
-<span class='line'> 85</span>  * &lt;b>CKEDITOR.replace( 'myfield' )&lt;/b>;
-<span class='line'> 86</span>  * @example
-<span class='line'> 87</span>  * var textarea = document.body.appendChild( document.createElement( 'textarea' ) );
-<span class='line'> 88</span>  * &lt;b>CKEDITOR.replace( textarea )&lt;/b>;
-<span class='line'> 89</span>  */</span><span class="WHIT">
-<span class='line'> 90</span> </span><span class="NAME">CKEDITOR.replace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 91</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 92</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.isCompatible</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 93</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 94</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 95</span>
-<span class='line'> 96</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 97</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 98</span> </span><span class="WHIT">			</span><span class="COMM">// First look for the element id, then the name.</span><span class="WHIT">
-<span class='line'> 99</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>100</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">textareasByName</span><span class="WHIT">	</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>101</span> </span><span class="WHIT">			</span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">textareasByName</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>102</span>
-<span class='line'>103</span> </span><span class="WHIT">			</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>104</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>105</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'textarea'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>106</span> </span><span class="WHIT">					</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>107</span> </span><span class="WHIT">				</span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">textareasByName</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>108</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>109</span>
-<span class='line'>110</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>111</span> </span><span class="WHIT">				</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'[CKEDITOR.replace] The &lt;textarea> with id or name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" was not found.'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>112</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>113</span>
-<span class='line'>114</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.replace._replaceElement</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>115</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>116</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>117</span>
-<span class='line'>118</span> </span><span class="COMM">// This function will be overwritten by the full core code implementation.</span><span class="WHIT">
-<span class='line'>119</span> </span><span class="NAME">CKEDITOR.replace._replaceElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>120</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>121</span> </span><span class="WHIT">	</span><span class="COMM">// Do not replace the textarea right now, just hide it. the</span><span class="WHIT">
-<span class='line'>122</span> </span><span class="WHIT">	</span><span class="COMM">// effective replacement will be done by the full core code.</span><span class="WHIT">
-<span class='line'>123</span> </span><span class="WHIT">	</span><span class="NAME">textarea.style.visibility</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'hidden'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>124</span>
-<span class='line'>125</span> </span><span class="WHIT">	</span><span class="COMM">// Push the textarea in the array of pending replacements.</span><span class="WHIT">
-<span class='line'>126</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pending</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replace._pending</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replace._pending</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>127</span> </span><span class="WHIT">	</span><span class="NAME">pending.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>128</span>
-<span class='line'>129</span> </span><span class="WHIT">	</span><span class="COMM">// Check if it is time to load the full core code.</span><span class="WHIT">
-<span class='line'>130</span> </span><span class="WHIT">	</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.loadFullCore</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'basic_ready'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>131</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.loadFullCore</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>132</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>133</span>
-<span class='line'>134</span> </span><span class="COMM">/**
-<span class='line'>135</span>  * Replace all &lt;textarea&gt; elements available in the document with
-<span class='line'>136</span>  * editor instances.
-<span class='line'>137</span>  * @type undefined
-<span class='line'>138</span>  * @example
-<span class='line'>139</span>  * // Replace all &lt;textarea&gt; elements in the page.
-<span class='line'>140</span>  * CKEDITOR.replaceAll();
-<span class='line'>141</span>  * @example
-<span class='line'>142</span>  * // Replace all &lt;textarea class="myClassName"&gt; elements in the page.
-<span class='line'>143</span>  * CKEDITOR.replaceAll( 'myClassName' );
-<span class='line'>144</span>  * @example
-<span class='line'>145</span>  * // Selectively replace &lt;textarea&gt; elements, based on custom assertions.
-<span class='line'>146</span>  * CKEDITOR.replaceAll( function( textarea, config )
-<span class='line'>147</span>  *     {
-<span class='line'>148</span>  *         // Custom code to evaluate the replace, returning false
-<span class='line'>149</span>  *         // if it must not be done.
-<span class='line'>150</span>  *         // It also passes the "config" parameter, so the
-<span class='line'>151</span>  *         // developer can customize the instance.
-<span class='line'>152</span>  *     } );
-<span class='line'>153</span>  */</span><span class="WHIT">
-<span class='line'>154</span> </span><span class="NAME">CKEDITOR.replaceAll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>155</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>156</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">textareas</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'textarea'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>157</span>
-<span class='line'>158</span> </span><span class="WHIT">	</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">textareas.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>159</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>160</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>161</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">textareas</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>162</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">textarea.name</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>163</span>
-<span class='line'>164</span> </span><span class="WHIT">		</span><span class="COMM">// The "name" and/or "id" attribute must exist.</span><span class="WHIT">
-<span class='line'>165</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">textarea.name</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">textarea.id</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>166</span> </span><span class="WHIT">			</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>167</span>
-<span class='line'>168</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>169</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>170</span> </span><span class="WHIT">			</span><span class="COMM">// The textarea class name could be passed as the function</span><span class="WHIT">
-<span class='line'>171</span> </span><span class="WHIT">			</span><span class="COMM">// parameter.</span><span class="WHIT">
-<span class='line'>172</span>
-<span class='line'>173</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">classRegex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'(?:^| )'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'(?:$| )'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>174</span>
-<span class='line'>175</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">classRegex.test</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea.className</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>176</span> </span><span class="WHIT">				</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>177</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>178</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>179</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>180</span> </span><span class="WHIT">			</span><span class="COMM">// An assertion function could be passed as the function parameter.</span><span class="WHIT">
-<span class='line'>181</span> </span><span class="WHIT">			</span><span class="COMM">// It must explicitly return "false" to ignore a specific &lt;textarea>.</span><span class="WHIT">
-<span class='line'>182</span> </span><span class="WHIT">			</span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>183</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>184</span> </span><span class="WHIT">				</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>185</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>186</span>
-<span class='line'>187</span> </span><span class="WHIT">		</span><span class="NAME">this.replace</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>188</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>189</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>190</span>
-<span class='line'>191</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'unloaded'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>192</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>193</span> </span><span class="WHIT">	</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>194</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>195</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">onload</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>196</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>197</span> </span><span class="WHIT">			</span><span class="COMM">// Replace all textareas with the default class name.</span><span class="WHIT">
-<span class='line'>198</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replaceByClassEnabled</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>199</span> </span><span class="WHIT">				</span><span class="NAME">CKEDITOR.replaceAll</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replaceClass</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>200</span>
-<span class='line'>201</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replace._pending</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'basic_loaded'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.loadFullCore</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>202</span> </span><span class="WHIT">				</span><span class="NAME">CKEDITOR.loadFullCore</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>203</span>
-<span class='line'>204</span> </span><span class="WHIT">			</span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'basic_ready'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>205</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>206</span>
-<span class='line'>207</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">window.addEventListener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>208</span> </span><span class="WHIT">			</span><span class="NAME">window.addEventListener</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'load'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">onload</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>209</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">window.attachEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>210</span> </span><span class="WHIT">			</span><span class="NAME">window.attachEvent</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'onload'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">onload</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>211</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>212</span> </span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>213</span>
-<span class='line'>214</span> </span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'basic_loaded'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>215</span> </span></pre></body></html>
+<span class='line'> 46</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">		</span><span class="NAME">script.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'text/javascript'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">		</span><span class="NAME">script.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'ckeditor.js'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">		</span><span class="NAME">script.src</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'ckeditor_source.js'</span><span class="PUNC">;</span><span class="WHIT">		</span><span class="COMM">// @Packager.RemoveLine</span><span class="WHIT">
+<span class='line'> 50</span>
+<span class='line'> 51</span> </span><span class="WHIT">		</span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'head'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 53</span>
+<span class='line'> 54</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 55</span> 	 * The class name used to identify &lt;textarea&gt; elements to be replace
+<span class='line'> 56</span> 	 * by CKEditor instances.
+<span class='line'> 57</span> 	 * @type string
+<span class='line'> 58</span> 	 * @default 'ckeditor'
+<span class='line'> 59</span> 	 * @example
+<span class='line'> 60</span> 	 * &lt;b>CKEDITOR.replaceClass&lt;/b> = 'rich_editor';
+<span class='line'> 61</span> 	 */</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.replaceClass</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'ckeditor'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 63</span>
+<span class='line'> 64</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 65</span> 	 * Enables the replacement of all textareas with class name matching
+<span class='line'> 66</span> 	 * {@link CKEDITOR.replaceClass}.
+<span class='line'> 67</span> 	 * @type Boolean
+<span class='line'> 68</span> 	 * @default true
+<span class='line'> 69</span> 	 * @example
+<span class='line'> 70</span> 	 * // Disable the auto-replace feature.
+<span class='line'> 71</span> 	 * &lt;b>CKEDITOR.replaceByClassEnabled&lt;/b> = false;
+<span class='line'> 72</span> 	 */</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.replaceByClassEnabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 74</span>
+<span class='line'> 75</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 76</span> 	 * Replaces a specific &lt;textarea&gt; with a CKEditor instance.
+<span class='line'> 77</span> 	 * @param {object|string} elementOrIdOrName The DOM element (textarea), its
+<span class='line'> 78</span> 	 *		ID or name.
+<span class='line'> 79</span> 	 * @param {Object} [config] The specific configurations to apply to this
+<span class='line'> 80</span> 	 *		editor instance. Configurations set here will override global CKEditor
+<span class='line'> 81</span> 	 *		settings.
+<span class='line'> 82</span> 	 * @type undefined
+<span class='line'> 83</span> 	 * @example
+<span class='line'> 84</span> 	 * &lt;textarea id="myfield" name="myfield"&gt;&lt:/textarea&gt;
+<span class='line'> 85</span> 	 * ...
+<span class='line'> 86</span> 	 * &lt;b>CKEDITOR.replace( 'myfield' )&lt;/b>;
+<span class='line'> 87</span> 	 * @example
+<span class='line'> 88</span> 	 * var textarea = document.body.appendChild( document.createElement( 'textarea' ) );
+<span class='line'> 89</span> 	 * &lt;b>CKEDITOR.replace( textarea )&lt;/b>;
+<span class='line'> 90</span> 	 */</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.replace</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.isCompatible</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 96</span>
+<span class='line'> 97</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">				</span><span class="COMM">// First look for the element id, then the name.</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">textareasByName</span><span class="WHIT">	</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">				</span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">textareasByName</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span>
+<span class='line'>104</span> </span><span class="WHIT">				</span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'textarea'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">						</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">					</span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">textareasByName</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>110</span>
+<span class='line'>111</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">					</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'[CKEDITOR.replace] The &lt;textarea> with id or name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">elementOrIdOrName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" was not found.'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>114</span>
+<span class='line'>115</span> </span><span class="WHIT">			</span><span class="NAME">CKEDITOR.replace._replaceElement</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span>
+<span class='line'>119</span> </span><span class="WHIT">	</span><span class="COMM">// This function will be overwritten by the full core code implementation.</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.replace._replaceElement</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">		</span><span class="COMM">// Do not replace the textarea right now, just hide it. the</span><span class="WHIT">
+<span class='line'>123</span> </span><span class="WHIT">		</span><span class="COMM">// effective replacement will be done by the full core code.</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">		</span><span class="NAME">textarea.style.visibility</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'hidden'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>125</span>
+<span class='line'>126</span> </span><span class="WHIT">		</span><span class="COMM">// Push the textarea in the array of pending replacements.</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pending</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replace._pending</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replace._pending</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">		</span><span class="NAME">pending.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>129</span>
+<span class='line'>130</span> </span><span class="WHIT">		</span><span class="COMM">// Check if it is time to load the full core code.</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.loadFullCore</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'basic_ready'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">			</span><span class="NAME">CKEDITOR.loadFullCore</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>134</span>
+<span class='line'>135</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>136</span> 	 * Replace all &lt;textarea&gt; elements available in the document with
+<span class='line'>137</span> 	 * editor instances.
+<span class='line'>138</span> 	 * @type undefined
+<span class='line'>139</span> 	 * @example
+<span class='line'>140</span> 	 * // Replace all &lt;textarea&gt; elements in the page.
+<span class='line'>141</span> 	 * CKEDITOR.replaceAll();
+<span class='line'>142</span> 	 * @example
+<span class='line'>143</span> 	 * // Replace all &lt;textarea class="myClassName"&gt; elements in the page.
+<span class='line'>144</span> 	 * CKEDITOR.replaceAll( 'myClassName' );
+<span class='line'>145</span> 	 * @example
+<span class='line'>146</span> 	 * // Selectively replace &lt;textarea&gt; elements, based on custom assertions.
+<span class='line'>147</span> 	 * CKEDITOR.replaceAll( function( textarea, config )
+<span class='line'>148</span> 	 *     {
+<span class='line'>149</span> 	 *         // Custom code to evaluate the replace, returning false
+<span class='line'>150</span> 	 *         // if it must not be done.
+<span class='line'>151</span> 	 *         // It also passes the "config" parameter, so the
+<span class='line'>152</span> 	 *         // developer can customize the instance.
+<span class='line'>153</span> 	 *     } );
+<span class='line'>154</span> 	 */</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.replaceAll</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>156</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">textareas</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">document.getElementsByTagName</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'textarea'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>158</span>
+<span class='line'>159</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">textareas.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">textareas</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">textarea.name</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>164</span>
+<span class='line'>165</span> </span><span class="WHIT">			</span><span class="COMM">// The "name" and/or "id" attribute must exist.</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">textarea.name</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">textarea.id</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">				</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>168</span>
+<span class='line'>169</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">				</span><span class="COMM">// The textarea class name could be passed as the function</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">				</span><span class="COMM">// parameter.</span><span class="WHIT">
+<span class='line'>173</span>
+<span class='line'>174</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">classRegex</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'(?:^| )'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'(?:$| )'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>175</span>
+<span class='line'>176</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">classRegex.test</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea.className</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">					</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">				</span><span class="COMM">// An assertion function could be passed as the function parameter.</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">				</span><span class="COMM">// It must explicitly return "false" to ignore a specific &lt;textarea>.</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">				</span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">					</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>187</span>
+<span class='line'>188</span> </span><span class="WHIT">			</span><span class="NAME">this.replace</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>189</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span>
+<span class='line'>192</span> </span><span class="WHIT">	</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">onload</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>195</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>196</span> </span><span class="WHIT">			</span><span class="COMM">// Replace all textareas with the default class name.</span><span class="WHIT">
+<span class='line'>197</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replaceByClassEnabled</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT">				</span><span class="NAME">CKEDITOR.replaceAll</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replaceClass</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>199</span>
+<span class='line'>200</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'basic_loaded'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replace._pending</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.loadFullCore</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>203</span> </span><span class="WHIT">					</span><span class="NAME">CKEDITOR.loadFullCore</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>204</span>
+<span class='line'>205</span> </span><span class="WHIT">				</span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'basic_ready'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>208</span>
+<span class='line'>209</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">window.addEventListener</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">			</span><span class="NAME">window.addEventListener</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'load'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">onload</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">window.attachEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">			</span><span class="NAME">window.attachEvent</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'onload'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">onload</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>214</span>
+<span class='line'>215</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.status</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'basic_loaded'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>217</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__editor.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__editor.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__editor.js.html	(revision 2163)
@@ -51,5 +51,5 @@
 <span class='line'> 44</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">getNewName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'> 45</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 46</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'editor'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">nameCounter</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'editor'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">nameCounter</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 47</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.instances</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">getNewName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 48</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__env.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__env.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__env.js.html	(revision 2163)
@@ -32,107 +32,110 @@
 <span class='line'> 25</span>  */</span><span class="WHIT">
 <span class='line'> 26</span>
-<span class='line'> 27</span> </span><span class="COMM">/**
-<span class='line'> 28</span>  * Environment and browser information.
-<span class='line'> 29</span>  * @namespace
-<span class='line'> 30</span>  * @example
-<span class='line'> 31</span>  */</span><span class="WHIT">
-<span class='line'> 32</span> </span><span class="NAME">CKEDITOR.env</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 33</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 34</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">agent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">navigator.userAgent.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 35</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">opera</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.opera</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 36</span>
-<span class='line'> 37</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">env</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
-<span class='line'> 38</span> </span><span class="WHIT">	</span><span class="COMM">/** @lends CKEDITOR.env */</span><span class="WHIT">
-<span class='line'> 39</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 40</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'> 41</span> 		 * Indicates that CKEditor is running on Internet Explorer.
-<span class='line'> 42</span> 		 * @type Boolean
-<span class='line'> 43</span> 		 * @example
-<span class='line'> 44</span> 		 * if ( CKEDITOR.env.ie )
-<span class='line'> 45</span> 		 *     alert( "I'm on IE!" );
-<span class='line'> 46</span> 		 */</span><span class="WHIT">
-<span class='line'> 47</span> </span><span class="WHIT">		</span><span class="NAME">ie</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="COMM">/*@cc_on!@*/</span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 48</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'> 49</span> 		 * Indicates that CKEditor is running on Opera.
-<span class='line'> 50</span> 		 * @type Boolean
-<span class='line'> 51</span> 		 * @example
-<span class='line'> 52</span> 		 * if ( CKEDITOR.env.opera )
-<span class='line'> 53</span> 		 *     alert( "I'm on Opera!" );
-<span class='line'> 54</span> 		 */</span><span class="WHIT">
-<span class='line'> 55</span> </span><span class="WHIT">		</span><span class="NAME">opera</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">opera</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">opera.version</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 56</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'> 57</span> 		 * Indicates that CKEditor is running on a WebKit based browser, like
-<span class='line'> 58</span> 		 * Safari.
-<span class='line'> 59</span> 		 * @type Boolean
-<span class='line'> 60</span> 		 * @example
-<span class='line'> 61</span> 		 * if ( CKEDITOR.env.webkit )
-<span class='line'> 62</span> 		 *     alert( "I'm on WebKit!" );
-<span class='line'> 63</span> 		 */</span><span class="WHIT">
-<span class='line'> 64</span> </span><span class="WHIT">		</span><span class="NAME">webkit</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">' applewebkit/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 65</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'> 66</span> 		 * Indicates that CKEditor is running on Adobe AIR.
-<span class='line'> 67</span> 		 * @type Boolean
-<span class='line'> 68</span> 		 * @example
-<span class='line'> 69</span> 		 * if ( CKEDITOR.env.air )
-<span class='line'> 70</span> 		 *     alert( "I'm on AIR!" );
-<span class='line'> 71</span> 		 */</span><span class="WHIT">
-<span class='line'> 72</span> </span><span class="WHIT">		</span><span class="NAME">air</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">' adobeair/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 73</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'> 74</span> 		 * Indicates that CKEditor is running on Macintosh.
-<span class='line'> 75</span> 		 * @type Boolean
-<span class='line'> 76</span> 		 * @example
-<span class='line'> 77</span> 		 * if ( CKEDITOR.env.mac )
-<span class='line'> 78</span> 		 *     alert( "I love apples!" );
-<span class='line'> 79</span> 		 */</span><span class="WHIT">
-<span class='line'> 80</span> </span><span class="WHIT">		</span><span class="NAME">mac</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'macintosh'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 81</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 82</span>
-<span class='line'> 83</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 84</span> 	 * Indicates that CKEditor is running on a Gecko based browser, like
-<span class='line'> 85</span> 	 * Firefox.
-<span class='line'> 86</span> 	 * @name CKEDITOR.env.gecko
-<span class='line'> 87</span> 	 * @type Boolean
-<span class='line'> 88</span> 	 * @example
-<span class='line'> 89</span> 	 * if ( CKEDITOR.env.gecko )
-<span class='line'> 90</span> 	 *     alert( "I'm riding a gecko!" );
-<span class='line'> 91</span> 	 */</span><span class="WHIT">
-<span class='line'> 92</span> </span><span class="WHIT">	</span><span class="NAME">env.gecko</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">navigator.product</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'Gecko'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">env.webkit</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">env.opera</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 93</span>
-<span class='line'> 94</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 95</span> 	 * Indicates that CKEditor is running on a compatible browser.
-<span class='line'> 96</span> 	 * @name CKEDITOR.env.isCompatible
-<span class='line'> 97</span> 	 * @type Boolean
-<span class='line'> 98</span> 	 * @example
-<span class='line'> 99</span> 	 * if ( CKEDITOR.env.isCompatible )
-<span class='line'>100</span> 	 *     alert( "Your browser is pretty cool!" );
-<span class='line'>101</span> 	 */</span><span class="WHIT">
-<span class='line'>102</span> </span><span class="WHIT">	</span><span class="NAME">env.isCompatible</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>103</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>104</span> </span><span class="WHIT">		</span><span class="COMM">// Internet Explorer 6.0+</span><span class="WHIT">
-<span class='line'>105</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>106</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.match</span><span class="PUNC">(</span><span class="REGX">/msie (\d+)/</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">6</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>107</span>
-<span class='line'>108</span> </span><span class="WHIT">		</span><span class="COMM">// Gecko.</span><span class="WHIT">
-<span class='line'>109</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.gecko</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>110</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">navigator.productSub</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">20030210</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>111</span>
-<span class='line'>112</span> </span><span class="WHIT">		</span><span class="COMM">// Opera 9.50+</span><span class="WHIT">
-<span class='line'>113</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.opera</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>114</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">opera.version</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">9.5</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>115</span>
-<span class='line'>116</span> </span><span class="WHIT">		</span><span class="COMM">// Adobe AIR 1.0+</span><span class="WHIT">
-<span class='line'>117</span> </span><span class="WHIT">		</span><span class="COMM">// Checked before Safari because AIR have the WebKit rich text editor</span><span class="WHIT">
-<span class='line'>118</span> </span><span class="WHIT">		</span><span class="COMM">// features from Safari 3.0.4, but the version reported is 420.</span><span class="WHIT">
-<span class='line'>119</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.air</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>120</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/ adobeair\/(\d+)/</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>121</span>
-<span class='line'>122</span> </span><span class="WHIT">		</span><span class="COMM">// WebKit 522+ (Safari 3+)</span><span class="WHIT">
-<span class='line'>123</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.webkit</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>124</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/ applewebkit\/(\d+)/</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">522</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>125</span>
-<span class='line'>126</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>127</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>128</span>
-<span class='line'>129</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">env</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>130</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>131</span> </span></pre></body></html>
+<span class='line'> 27</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">CKEDITOR.env</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 30</span> 	 * Environment and browser information.
+<span class='line'> 31</span> 	 * @namespace
+<span class='line'> 32</span> 	 * @example
+<span class='line'> 33</span> 	 */</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.env</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">agent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">navigator.userAgent.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">opera</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">window.opera</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span>
+<span class='line'> 39</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">env</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">		</span><span class="COMM">/** @lends CKEDITOR.env */</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 43</span> 			 * Indicates that CKEditor is running on Internet Explorer.
+<span class='line'> 44</span> 			 * @type Boolean
+<span class='line'> 45</span> 			 * @example
+<span class='line'> 46</span> 			 * if ( CKEDITOR.env.ie )
+<span class='line'> 47</span> 			 *     alert( "I'm on IE!" );
+<span class='line'> 48</span> 			 */</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">			</span><span class="NAME">ie</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="COMM">/*@cc_on!@*/</span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 51</span> 			 * Indicates that CKEditor is running on Opera.
+<span class='line'> 52</span> 			 * @type Boolean
+<span class='line'> 53</span> 			 * @example
+<span class='line'> 54</span> 			 * if ( CKEDITOR.env.opera )
+<span class='line'> 55</span> 			 *     alert( "I'm on Opera!" );
+<span class='line'> 56</span> 			 */</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">			</span><span class="NAME">opera</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">opera</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">opera.version</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 59</span> 			 * Indicates that CKEditor is running on a WebKit based browser, like
+<span class='line'> 60</span> 			 * Safari.
+<span class='line'> 61</span> 			 * @type Boolean
+<span class='line'> 62</span> 			 * @example
+<span class='line'> 63</span> 			 * if ( CKEDITOR.env.webkit )
+<span class='line'> 64</span> 			 *     alert( "I'm on WebKit!" );
+<span class='line'> 65</span> 			 */</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">			</span><span class="NAME">webkit</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">' applewebkit/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 68</span> 			 * Indicates that CKEditor is running on Adobe AIR.
+<span class='line'> 69</span> 			 * @type Boolean
+<span class='line'> 70</span> 			 * @example
+<span class='line'> 71</span> 			 * if ( CKEDITOR.env.air )
+<span class='line'> 72</span> 			 *     alert( "I'm on AIR!" );
+<span class='line'> 73</span> 			 */</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">			</span><span class="NAME">air</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">' adobeair/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 76</span> 			 * Indicates that CKEditor is running on Macintosh.
+<span class='line'> 77</span> 			 * @type Boolean
+<span class='line'> 78</span> 			 * @example
+<span class='line'> 79</span> 			 * if ( CKEDITOR.env.mac )
+<span class='line'> 80</span> 			 *     alert( "I love apples!" );
+<span class='line'> 81</span> 			 */</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">			</span><span class="NAME">mac</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.indexOf</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'macintosh'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 84</span>
+<span class='line'> 85</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 86</span> 		 * Indicates that CKEditor is running on a Gecko based browser, like
+<span class='line'> 87</span> 		 * Firefox.
+<span class='line'> 88</span> 		 * @name CKEDITOR.env.gecko
+<span class='line'> 89</span> 		 * @type Boolean
+<span class='line'> 90</span> 		 * @example
+<span class='line'> 91</span> 		 * if ( CKEDITOR.env.gecko )
+<span class='line'> 92</span> 		 *     alert( "I'm riding a gecko!" );
+<span class='line'> 93</span> 		 */</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">		</span><span class="NAME">env.gecko</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">navigator.product</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'Gecko'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">env.webkit</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">env.opera</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 95</span>
+<span class='line'> 96</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 97</span> 		 * Indicates that CKEditor is running on a compatible browser.
+<span class='line'> 98</span> 		 * @name CKEDITOR.env.isCompatible
+<span class='line'> 99</span> 		 * @type Boolean
+<span class='line'>100</span> 		 * @example
+<span class='line'>101</span> 		 * if ( CKEDITOR.env.isCompatible )
+<span class='line'>102</span> 		 *     alert( "Your browser is pretty cool!" );
+<span class='line'>103</span> 		 */</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">		</span><span class="NAME">env.isCompatible</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">			</span><span class="COMM">// Internet Explorer 6.0+</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>108</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.match</span><span class="PUNC">(</span><span class="REGX">/msie (\d+)/</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">6</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>109</span>
+<span class='line'>110</span> </span><span class="WHIT">			</span><span class="COMM">// Gecko.</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.gecko</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">navigator.productSub</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">20030210</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>113</span>
+<span class='line'>114</span> </span><span class="WHIT">			</span><span class="COMM">// Opera 9.50+</span><span class="WHIT">
+<span class='line'>115</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.opera</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">opera.version</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">9.5</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>117</span>
+<span class='line'>118</span> </span><span class="WHIT">			</span><span class="COMM">// Adobe AIR 1.0+</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">			</span><span class="COMM">// Checked before Safari because AIR have the WebKit rich text editor</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">			</span><span class="COMM">// features from Safari 3.0.4, but the version reported is 420.</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.air</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>122</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/ adobeair\/(\d+)/</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>123</span>
+<span class='line'>124</span> </span><span class="WHIT">			</span><span class="COMM">// WebKit 522+ (Safari 3+)</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">env.webkit</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">agent.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/ applewebkit\/(\d+)/</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">522</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>127</span>
+<span class='line'>128</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>130</span>
+<span class='line'>131</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">env</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>134</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__event.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__event.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__event.js.html	(revision 2163)
@@ -32,272 +32,275 @@
 <span class='line'> 25</span>  */</span><span class="WHIT">
 <span class='line'> 26</span>
-<span class='line'> 27</span> </span><span class="COMM">/**
-<span class='line'> 28</span>  * This is a base class for classes and objects that require event handling
-<span class='line'> 29</span>  * features.
-<span class='line'> 30</span>  * @constructor
-<span class='line'> 31</span>  * @example
-<span class='line'> 32</span>  */</span><span class="WHIT">
-<span class='line'> 33</span> </span><span class="NAME">CKEDITOR.event</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 34</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 35</span> </span><span class="WHIT">	</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">events</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 36</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 37</span>
-<span class='line'> 38</span> </span><span class="COMM">/**
-<span class='line'> 39</span>  * Implements the {@link CKEDITOR.event} features in an object.
-<span class='line'> 40</span>  * @param {Object} targetObject The object in which implement the features.
-<span class='line'> 41</span>  * @type undefined
-<span class='line'> 42</span>  * @example
-<span class='line'> 43</span>  * var myObject = { message : 'Example' };
-<span class='line'> 44</span>  * &lt;b>CKEDITOR.event.implementOn( myObject }&lt;/b>;
-<span class='line'> 45</span>  * myObject.on( 'testevent', function()
-<span class='line'> 46</span>  *     {
-<span class='line'> 47</span>  *         alert( this.message );  // "Example"
-<span class='line'> 48</span>  *     });
-<span class='line'> 49</span>  * myObject.fire( 'testevent' );
-<span class='line'> 50</span>  */</span><span class="WHIT">
-<span class='line'> 51</span> </span><span class="NAME">CKEDITOR.event.implementOn</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">targetObject</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 52</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 53</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.event.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">targetObject</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 54</span>
-<span class='line'> 55</span> </span><span class="WHIT">	</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 56</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 57</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">targetObject</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 58</span> </span><span class="WHIT">			</span><span class="NAME">targetObject</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 59</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 60</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 61</span>
-<span class='line'> 62</span> </span><span class="NAME">CKEDITOR.event.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 63</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 64</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">eventEntry</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">CKEDITOR.event</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 30</span> 	 * This is a base class for classes and objects that require event handling
+<span class='line'> 31</span> 	 * features.
+<span class='line'> 32</span> 	 * @constructor
+<span class='line'> 33</span> 	 * @example
+<span class='line'> 34</span> 	 */</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.event</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">		</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">events</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 39</span>
+<span class='line'> 40</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 41</span> 	 * Implements the {@link CKEDITOR.event} features in an object.
+<span class='line'> 42</span> 	 * @param {Object} targetObject The object in which implement the features.
+<span class='line'> 43</span> 	 * @type undefined
+<span class='line'> 44</span> 	 * @example
+<span class='line'> 45</span> 	 * var myObject = { message : 'Example' };
+<span class='line'> 46</span> 	 * &lt;b>CKEDITOR.event.implementOn( myObject }&lt;/b>;
+<span class='line'> 47</span> 	 * myObject.on( 'testevent', function()
+<span class='line'> 48</span> 	 *     {
+<span class='line'> 49</span> 	 *         alert( this.message );  // "Example"
+<span class='line'> 50</span> 	 *     });
+<span class='line'> 51</span> 	 * myObject.fire( 'testevent' );
+<span class='line'> 52</span> 	 */</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.event.implementOn</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">targetObject</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.event.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">targetObject</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 56</span>
+<span class='line'> 57</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">targetObject</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">				</span><span class="NAME">targetObject</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">prop</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 62</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 63</span>
+<span class='line'> 64</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.event.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'> 65</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 66</span> </span><span class="WHIT">		</span><span class="NAME">this.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 67</span> </span><span class="WHIT">		</span><span class="NAME">this.listeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 68</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 69</span>
-<span class='line'> 70</span> </span><span class="WHIT">	</span><span class="NAME">eventEntry.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
-<span class='line'> 71</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 72</span> </span><span class="WHIT">		</span><span class="COMM">// Get the listener index for a specified function.</span><span class="WHIT">
-<span class='line'> 73</span> </span><span class="WHIT">		</span><span class="COMM">// Returns -1 if not found.</span><span class="WHIT">
-<span class='line'> 74</span> </span><span class="WHIT">		</span><span class="NAME">getListenerIndex</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 75</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 76</span> </span><span class="WHIT">			</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.listeners</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">listeners.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">eventEntry</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 67</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">			</span><span class="NAME">this.name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">			</span><span class="NAME">this.listeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 71</span>
+<span class='line'> 72</span> </span><span class="WHIT">		</span><span class="NAME">eventEntry.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="WHIT">			</span><span class="COMM">// Get the listener index for a specified function.</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">			</span><span class="COMM">// Returns -1 if not found.</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">			</span><span class="NAME">getListenerIndex</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'> 77</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 78</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">fn</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 79</span> </span><span class="WHIT">					</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 80</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 81</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 82</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 83</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 84</span>
-<span class='line'> 85</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="COMM">/** @lends CKEDITOR.event.prototype */</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 86</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'> 87</span> 		 * Registers a listener to a specific event in the current object.
-<span class='line'> 88</span> 		 * @param {String} eventName The event name to which listen.
-<span class='line'> 89</span> 		 * @param {Function} listenerFunction The function listening to the
-<span class='line'> 90</span> 		 *		event.
-<span class='line'> 91</span> 		 * @param {Object} [scopeObj] The object used to scope the listener
-<span class='line'> 92</span> 		 *		call (the this object. If omitted, the current object is used.
-<span class='line'> 93</span> 		 * @param {Object} [listenerData] Data to be sent as the
-<span class='line'> 94</span> 		 *		{@link CKEDITOR.eventInfo#listenerData} when calling the
-<span class='line'> 95</span> 		 *		listener.
-<span class='line'> 96</span> 		 * @param {Number} [priority] The listener priority. Lower priority
-<span class='line'> 97</span> 		 *		listeners are called first. Listeners with the same priority
-<span class='line'> 98</span> 		 *		value are called in registration order. Defaults to 10.
-<span class='line'> 99</span> 		 * @type undefined
-<span class='line'>100</span> 		 * @example
-<span class='line'>101</span> 		 * someObject.on( 'someevent', function()
-<span class='line'>102</span> 		 *     {
-<span class='line'>103</span> 		 *         alert( this == someObject );  // "true"
-<span class='line'>104</span> 		 *     });
-<span class='line'>105</span> 		 * @example
-<span class='line'>106</span> 		 * someObject.on( 'someevent', function()
-<span class='line'>107</span> 		 *     {
-<span class='line'>108</span> 		 *         alert( this == anotherObject );  // "true"
-<span class='line'>109</span> 		 *     }
-<span class='line'>110</span> 		 *     , anotherObject );
-<span class='line'>111</span> 		 * @example
-<span class='line'>112</span> 		 * someObject.on( 'someevent', function( event )
-<span class='line'>113</span> 		 *     {
-<span class='line'>114</span> 		 *         alert( event.listenerData );  // "Example"
-<span class='line'>115</span> 		 *     }
-<span class='line'>116</span> 		 *     , null, 'Example' );
-<span class='line'>117</span> 		 * @example
-<span class='line'>118</span> 		 * someObject.on( 'someevent', function() { ... } );                   // 2nd called
-<span class='line'>119</span> 		 * someObject.on( 'someevent', function() { ... }, null, null, 100 );  // 3rd called
-<span class='line'>120</span> 		 * someObject.on( 'someevent', function() { ... }, null, null, 1 );    // 1st called
-<span class='line'>121</span> 		 */</span><span class="WHIT">
-<span class='line'>122</span> </span><span class="WHIT">		</span><span class="NAME">on</span><span class="WHIT">  </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">scopeObj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerData</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>123</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>124</span> </span><span class="WHIT">			</span><span class="COMM">// Get the event entry (create it if needed).</span><span class="WHIT">
-<span class='line'>125</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">eventEntry</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>126</span>
-<span class='line'>127</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">event.getListenerIndex</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>128</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>129</span> </span><span class="WHIT">				</span><span class="COMM">// Get the listeners.</span><span class="WHIT">
-<span class='line'>130</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">event.listeners</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>131</span>
-<span class='line'>132</span> </span><span class="WHIT">				</span><span class="COMM">// Fill the scope.</span><span class="WHIT">
-<span class='line'>133</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">scopeObj</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>134</span> </span><span class="WHIT">					</span><span class="NAME">scopeObj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>135</span>
-<span class='line'>136</span> </span><span class="WHIT">				</span><span class="COMM">// Default the priority, if needed.</span><span class="WHIT">
-<span class='line'>137</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>138</span> </span><span class="WHIT">					</span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>139</span>
-<span class='line'>140</span> </span><span class="WHIT">				</span><span class="COMM">// Create the function to be fired for this listener.</span><span class="WHIT">
-<span class='line'>141</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">listenerFirer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">publisherData</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">stopFn</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelFn</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>142</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>143</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.listeners</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">listeners.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">fn</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 81</span> </span><span class="WHIT">						</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 82</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 86</span>
+<span class='line'> 87</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="COMM">/** @lends CKEDITOR.event.prototype */</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 89</span> 			 * Registers a listener to a specific event in the current object.
+<span class='line'> 90</span> 			 * @param {String} eventName The event name to which listen.
+<span class='line'> 91</span> 			 * @param {Function} listenerFunction The function listening to the
+<span class='line'> 92</span> 			 *		event.
+<span class='line'> 93</span> 			 * @param {Object} [scopeObj] The object used to scope the listener
+<span class='line'> 94</span> 			 *		call (the this object. If omitted, the current object is used.
+<span class='line'> 95</span> 			 * @param {Object} [listenerData] Data to be sent as the
+<span class='line'> 96</span> 			 *		{@link CKEDITOR.eventInfo#listenerData} when calling the
+<span class='line'> 97</span> 			 *		listener.
+<span class='line'> 98</span> 			 * @param {Number} [priority] The listener priority. Lower priority
+<span class='line'> 99</span> 			 *		listeners are called first. Listeners with the same priority
+<span class='line'>100</span> 			 *		value are called in registration order. Defaults to 10.
+<span class='line'>101</span> 			 * @type undefined
+<span class='line'>102</span> 			 * @example
+<span class='line'>103</span> 			 * someObject.on( 'someevent', function()
+<span class='line'>104</span> 			 *     {
+<span class='line'>105</span> 			 *         alert( this == someObject );  // "true"
+<span class='line'>106</span> 			 *     });
+<span class='line'>107</span> 			 * @example
+<span class='line'>108</span> 			 * someObject.on( 'someevent', function()
+<span class='line'>109</span> 			 *     {
+<span class='line'>110</span> 			 *         alert( this == anotherObject );  // "true"
+<span class='line'>111</span> 			 *     }
+<span class='line'>112</span> 			 *     , anotherObject );
+<span class='line'>113</span> 			 * @example
+<span class='line'>114</span> 			 * someObject.on( 'someevent', function( event )
+<span class='line'>115</span> 			 *     {
+<span class='line'>116</span> 			 *         alert( event.listenerData );  // "Example"
+<span class='line'>117</span> 			 *     }
+<span class='line'>118</span> 			 *     , null, 'Example' );
+<span class='line'>119</span> 			 * @example
+<span class='line'>120</span> 			 * someObject.on( 'someevent', function() { ... } );                   // 2nd called
+<span class='line'>121</span> 			 * someObject.on( 'someevent', function() { ... }, null, null, 100 );  // 3rd called
+<span class='line'>122</span> 			 * someObject.on( 'someevent', function() { ... }, null, null, 1 );    // 1st called
+<span class='line'>123</span> 			 */</span><span class="WHIT">
+<span class='line'>124</span> </span><span class="WHIT">			</span><span class="NAME">on</span><span class="WHIT">  </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">scopeObj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerData</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="WHIT">				</span><span class="COMM">// Get the event entry (create it if needed).</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">eventEntry</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>128</span>
+<span class='line'>129</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">event.getListenerIndex</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">					</span><span class="COMM">// Get the listeners.</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">event.listeners</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>133</span>
+<span class='line'>134</span> </span><span class="WHIT">					</span><span class="COMM">// Fill the scope.</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">scopeObj</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>136</span> </span><span class="WHIT">						</span><span class="NAME">scopeObj</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>137</span>
+<span class='line'>138</span> </span><span class="WHIT">					</span><span class="COMM">// Default the priority, if needed.</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">						</span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span>
+<span class='line'>142</span> </span><span class="WHIT">					</span><span class="COMM">// Create the function to be fired for this listener.</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">listenerFirer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">publisherData</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">stopFn</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelFn</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'>144</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>145</span> </span><span class="WHIT">						</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>146</span> </span><span class="WHIT">						</span><span class="NAME">sender</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>147</span> </span><span class="WHIT">						</span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>148</span> </span><span class="WHIT">						</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">publisherData</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>149</span> </span><span class="WHIT">						</span><span class="NAME">listenerData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">listenerData</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>150</span> </span><span class="WHIT">						</span><span class="NAME">stop</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">stopFn</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>151</span> </span><span class="WHIT">						</span><span class="NAME">cancel</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">cancelFn</span><span class="WHIT">
-<span class='line'>152</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>153</span>
-<span class='line'>154</span> </span><span class="WHIT">					</span><span class="NAME">listenerFunction.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scopeObj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">						</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'>146</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="WHIT">							</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">							</span><span class="NAME">sender</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">							</span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">							</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">publisherData</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">							</span><span class="NAME">listenerData</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">listenerData</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">							</span><span class="NAME">stop</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">stopFn</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">							</span><span class="NAME">cancel</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">cancelFn</span><span class="WHIT">
+<span class='line'>154</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>155</span>
-<span class='line'>156</span> </span><span class="WHIT">					</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ev.data</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>157</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>158</span> </span><span class="WHIT">				</span><span class="NAME">listenerFirer.fn</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>159</span> </span><span class="WHIT">				</span><span class="NAME">listenerFirer.priority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>160</span>
-<span class='line'>161</span> </span><span class="WHIT">				</span><span class="COMM">// Search for the right position for this new listener, based on its</span><span class="WHIT">
-<span class='line'>162</span> </span><span class="WHIT">				</span><span class="COMM">// priority.</span><span class="WHIT">
-<span class='line'>163</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listeners.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>164</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>165</span> </span><span class="WHIT">					</span><span class="COMM">// Find the item which should be before the new one.</span><span class="WHIT">
-<span class='line'>166</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>167</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>168</span> </span><span class="WHIT">						</span><span class="COMM">// Insert the listener in the array.</span><span class="WHIT">
-<span class='line'>169</span> </span><span class="WHIT">						</span><span class="NAME">listeners.splice</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerFirer</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>170</span> </span><span class="WHIT">						</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>171</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>172</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>173</span>
-<span class='line'>174</span> </span><span class="WHIT">				</span><span class="COMM">// If no position has been found (or zero length), put it in</span><span class="WHIT">
-<span class='line'>175</span> </span><span class="WHIT">				</span><span class="COMM">// the front of list.</span><span class="WHIT">
-<span class='line'>176</span> </span><span class="WHIT">				</span><span class="NAME">listeners.unshift</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listenerFirer</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>177</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>178</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>179</span>
-<span class='line'>180</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>181</span> 		 * Fires an specific event in the object. All registered listeners are
-<span class='line'>182</span> 		 * called at this point.
-<span class='line'>183</span> 		 * @param {String} eventName The event name to fire.
-<span class='line'>184</span> 		 * @param {Object} [data] Data to be sent as the
-<span class='line'>185</span> 		 *		{@link CKEDITOR.eventInfo#data} when calling the
-<span class='line'>186</span> 		 *		listeners.
-<span class='line'>187</span> 		 * @param {CKEDITOR.editor} [editor] The editor instance to send as the
-<span class='line'>188</span> 		 *		{@link CKEDITOR.eventInfo#editor} when calling the
-<span class='line'>189</span> 		 *		listener.
-<span class='line'>190</span> 		 * @returns {Boolean|Object} A booloan indicating that the event is to be
-<span class='line'>191</span> 		 *		cancelled, or data returned by one of the listeners.
-<span class='line'>192</span> 		 * @example
-<span class='line'>193</span> 		 * someObject.on( 'someevent', function() { ... } );
-<span class='line'>194</span> 		 * someObject.on( 'someevent', function() { ... } );
-<span class='line'>195</span> 		 * &lt;b>someObject.fire( 'someevent' )&lt;/b>;  // both listeners are called
-<span class='line'>196</span> 		 * @example
-<span class='line'>197</span> 		 * someObject.on( 'someevent', function( event )
-<span class='line'>198</span> 		 *     {
-<span class='line'>199</span> 		 *         alert( event.data );  // "Example"
-<span class='line'>200</span> 		 *     });
-<span class='line'>201</span> 		 * &lt;b>someObject.fire( 'someevent', 'Example' )&lt;/b>;
-<span class='line'>202</span> 		 */</span><span class="WHIT">
-<span class='line'>203</span> </span><span class="WHIT">		</span><span class="NAME">fire</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>204</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>205</span> </span><span class="WHIT">			</span><span class="COMM">// Create the function that marks the event as stopped.</span><span class="WHIT">
-<span class='line'>206</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">stopped</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>207</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">stopEvent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>208</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>209</span> </span><span class="WHIT">				</span><span class="NAME">stopped</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>210</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>211</span>
-<span class='line'>212</span> </span><span class="WHIT">			</span><span class="COMM">// Create the function that marks the event as cancelled.</span><span class="WHIT">
-<span class='line'>213</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cancelled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>214</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cancelEvent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>215</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>216</span> </span><span class="WHIT">				</span><span class="NAME">cancelled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>217</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>218</span>
-<span class='line'>219</span> </span><span class="WHIT">			</span><span class="COMM">// Get the event entry.</span><span class="WHIT">
-<span class='line'>220</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>221</span>
-<span class='line'>222</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>223</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>224</span> </span><span class="WHIT">				</span><span class="COMM">// Loop through all listeners.</span><span class="WHIT">
-<span class='line'>225</span> </span><span class="WHIT">				</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">event.listeners</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">listeners.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>226</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>227</span> </span><span class="WHIT">					</span><span class="COMM">// Call the listener, passing the event data.</span><span class="WHIT">
-<span class='line'>228</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">retData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">stopEvent</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>229</span>
-<span class='line'>230</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">retData</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>231</span> </span><span class="WHIT">						</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">retData</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>232</span>
-<span class='line'>233</span> </span><span class="WHIT">					</span><span class="COMM">// No further calls is stopped or cancelled.</span><span class="WHIT">
-<span class='line'>234</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">stopped</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">cancelled</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>235</span> </span><span class="WHIT">						</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>236</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>237</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>238</span>
-<span class='line'>239</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">cancelled</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>240</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>241</span>
-<span class='line'>242</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>243</span> 		 * Fires an specific event in the object, releasing all listeners
-<span class='line'>244</span> 		 * registered to that event. The same listeners are not called again on
-<span class='line'>245</span> 		 * successive calls of it or of {@link #fire}.
-<span class='line'>246</span> 		 * @param {String} eventName The event name to fire.
-<span class='line'>247</span> 		 * @param {Object} [data] Data to be sent as the
-<span class='line'>248</span> 		 *		{@link CKEDITOR.eventInfo#data} when calling the
-<span class='line'>249</span> 		 *		listeners.
-<span class='line'>250</span> 		 * @param {CKEDITOR.editor} [editor] The editor instance to send as the
-<span class='line'>251</span> 		 *		{@link CKEDITOR.eventInfo#editor} when calling the
-<span class='line'>252</span> 		 *		listener.
-<span class='line'>253</span> 		 * @returns {Boolean|Object} A booloan indicating that the event is to be
-<span class='line'>254</span> 		 *		cancelled, or data returned by one of the listeners.
-<span class='line'>255</span> 		 * @example
-<span class='line'>256</span> 		 * someObject.on( 'someevent', function() { ... } );
-<span class='line'>257</span> 		 * someObject.fire( 'someevent' );  // above listener called
-<span class='line'>258</span> 		 * &lt;b>someObject.fireOnce( 'someevent' )&lt;/b>;  // above listener called
-<span class='line'>259</span> 		 * someObject.fire( 'someevent' );  // no listeners called
-<span class='line'>260</span> 		 */</span><span class="WHIT">
-<span class='line'>261</span> </span><span class="WHIT">		</span><span class="NAME">fireOnce</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>262</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>263</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>264</span> </span><span class="WHIT">			</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>265</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>266</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>267</span>
-<span class='line'>268</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>269</span> 		 * Unregisters a listener function from being called at the specified
-<span class='line'>270</span> 		 *		event. No errors are thrown if the listener has not been
-<span class='line'>271</span> 		 *		registered previously.
-<span class='line'>272</span> 		 * @param {String} eventName The event name.
-<span class='line'>273</span> 		 * @param {Function} listenerFunction The listener function to unregister.
-<span class='line'>274</span> 		 * @type undefined
-<span class='line'>275</span> 		 * @example
-<span class='line'>276</span> 		 * var myListener = function() { ... };
-<span class='line'>277</span> 		 * someObject.on( 'someevent', myListener );
-<span class='line'>278</span> 		 * someObject.fire( 'someevent' );  // myListener called
-<span class='line'>279</span> 		 * &lt;b>someObject.removeListener( 'someevent', myListener )&lt;/b>;
-<span class='line'>280</span> 		 * someObject.fire( 'someevent' );  // myListener not called
-<span class='line'>281</span> 		 */</span><span class="WHIT">
-<span class='line'>282</span> </span><span class="WHIT">		</span><span class="NAME">removeListener</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>283</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>284</span> </span><span class="WHIT">			</span><span class="COMM">// Get the event entry.</span><span class="WHIT">
-<span class='line'>285</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>286</span>
-<span class='line'>287</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>288</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>289</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">event.getListenerIndex</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>290</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>291</span> </span><span class="WHIT">					</span><span class="NAME">event.listeners.splice</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">index</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>292</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>293</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>294</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>295</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>296</span> </span></pre></body></html>
+<span class='line'>156</span> </span><span class="WHIT">						</span><span class="NAME">listenerFunction.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scopeObj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ev</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>157</span>
+<span class='line'>158</span> </span><span class="WHIT">						</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ev.data</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>160</span> </span><span class="WHIT">					</span><span class="NAME">listenerFirer.fn</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">					</span><span class="NAME">listenerFirer.priority</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</span>
+<span class='line'>163</span> </span><span class="WHIT">					</span><span class="COMM">// Search for the right position for this new listener, based on its</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT">					</span><span class="COMM">// priority.</span><span class="WHIT">
+<span class='line'>165</span> </span><span class="WHIT">					</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listeners.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">						</span><span class="COMM">// Find the item which should be before the new one.</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">&lt;=</span><span class="WHIT"> </span><span class="NAME">priority</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>169</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">							</span><span class="COMM">// Insert the listener in the array.</span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT">							</span><span class="NAME">listeners.splice</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerFirer</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT">							</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>175</span>
+<span class='line'>176</span> </span><span class="WHIT">					</span><span class="COMM">// If no position has been found (or zero length), put it in</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">					</span><span class="COMM">// the front of list.</span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT">					</span><span class="NAME">listeners.unshift</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listenerFirer</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>179</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>181</span>
+<span class='line'>182</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'>183</span> 			 * Fires an specific event in the object. All registered listeners are
+<span class='line'>184</span> 			 * called at this point.
+<span class='line'>185</span> 			 * @param {String} eventName The event name to fire.
+<span class='line'>186</span> 			 * @param {Object} [data] Data to be sent as the
+<span class='line'>187</span> 			 *		{@link CKEDITOR.eventInfo#data} when calling the
+<span class='line'>188</span> 			 *		listeners.
+<span class='line'>189</span> 			 * @param {CKEDITOR.editor} [editor] The editor instance to send as the
+<span class='line'>190</span> 			 *		{@link CKEDITOR.eventInfo#editor} when calling the
+<span class='line'>191</span> 			 *		listener.
+<span class='line'>192</span> 			 * @returns {Boolean|Object} A booloan indicating that the event is to be
+<span class='line'>193</span> 			 *		cancelled, or data returned by one of the listeners.
+<span class='line'>194</span> 			 * @example
+<span class='line'>195</span> 			 * someObject.on( 'someevent', function() { ... } );
+<span class='line'>196</span> 			 * someObject.on( 'someevent', function() { ... } );
+<span class='line'>197</span> 			 * &lt;b>someObject.fire( 'someevent' )&lt;/b>;  // both listeners are called
+<span class='line'>198</span> 			 * @example
+<span class='line'>199</span> 			 * someObject.on( 'someevent', function( event )
+<span class='line'>200</span> 			 *     {
+<span class='line'>201</span> 			 *         alert( event.data );  // "Example"
+<span class='line'>202</span> 			 *     });
+<span class='line'>203</span> 			 * &lt;b>someObject.fire( 'someevent', 'Example' )&lt;/b>;
+<span class='line'>204</span> 			 */</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT">			</span><span class="NAME">fire</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">				</span><span class="COMM">// Create the function that marks the event as stopped.</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">stopped</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">stopEvent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>210</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT">					</span><span class="NAME">stopped</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>213</span>
+<span class='line'>214</span> </span><span class="WHIT">				</span><span class="COMM">// Create the function that marks the event as cancelled.</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cancelled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cancelEvent</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT">					</span><span class="NAME">cancelled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>220</span>
+<span class='line'>221</span> </span><span class="WHIT">				</span><span class="COMM">// Get the event entry.</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>223</span>
+<span class='line'>224</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT">					</span><span class="COMM">// Loop through all listeners.</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="WHIT">					</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">event.listeners</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">listeners.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="WHIT">						</span><span class="COMM">// Call the listener, passing the event data.</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">						</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">retData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listeners</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">stopEvent</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cancelEvent</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>231</span>
+<span class='line'>232</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">retData</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">							</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">retData</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>234</span>
+<span class='line'>235</span> </span><span class="WHIT">						</span><span class="COMM">// No further calls is stopped or cancelled.</span><span class="WHIT">
+<span class='line'>236</span> </span><span class="WHIT">						</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">stopped</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">cancelled</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>237</span> </span><span class="WHIT">							</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>238</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>239</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>240</span>
+<span class='line'>241</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">cancelled</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'undefined'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>242</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>243</span>
+<span class='line'>244</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'>245</span> 			 * Fires an specific event in the object, releasing all listeners
+<span class='line'>246</span> 			 * registered to that event. The same listeners are not called again on
+<span class='line'>247</span> 			 * successive calls of it or of {@link #fire}.
+<span class='line'>248</span> 			 * @param {String} eventName The event name to fire.
+<span class='line'>249</span> 			 * @param {Object} [data] Data to be sent as the
+<span class='line'>250</span> 			 *		{@link CKEDITOR.eventInfo#data} when calling the
+<span class='line'>251</span> 			 *		listeners.
+<span class='line'>252</span> 			 * @param {CKEDITOR.editor} [editor] The editor instance to send as the
+<span class='line'>253</span> 			 *		{@link CKEDITOR.eventInfo#editor} when calling the
+<span class='line'>254</span> 			 *		listener.
+<span class='line'>255</span> 			 * @returns {Boolean|Object} A booloan indicating that the event is to be
+<span class='line'>256</span> 			 *		cancelled, or data returned by one of the listeners.
+<span class='line'>257</span> 			 * @example
+<span class='line'>258</span> 			 * someObject.on( 'someevent', function() { ... } );
+<span class='line'>259</span> 			 * someObject.fire( 'someevent' );  // above listener called
+<span class='line'>260</span> 			 * &lt;b>someObject.fireOnce( 'someevent' )&lt;/b>;  // above listener called
+<span class='line'>261</span> 			 * someObject.fire( 'someevent' );  // no listeners called
+<span class='line'>262</span> 			 */</span><span class="WHIT">
+<span class='line'>263</span> </span><span class="WHIT">			</span><span class="NAME">fireOnce</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>264</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>265</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>266</span> </span><span class="WHIT">				</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>267</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>268</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>269</span>
+<span class='line'>270</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'>271</span> 			 * Unregisters a listener function from being called at the specified
+<span class='line'>272</span> 			 *		event. No errors are thrown if the listener has not been
+<span class='line'>273</span> 			 *		registered previously.
+<span class='line'>274</span> 			 * @param {String} eventName The event name.
+<span class='line'>275</span> 			 * @param {Function} listenerFunction The listener function to unregister.
+<span class='line'>276</span> 			 * @type undefined
+<span class='line'>277</span> 			 * @example
+<span class='line'>278</span> 			 * var myListener = function() { ... };
+<span class='line'>279</span> 			 * someObject.on( 'someevent', myListener );
+<span class='line'>280</span> 			 * someObject.fire( 'someevent' );  // myListener called
+<span class='line'>281</span> 			 * &lt;b>someObject.removeListener( 'someevent', myListener )&lt;/b>;
+<span class='line'>282</span> 			 * someObject.fire( 'someevent' );  // myListener not called
+<span class='line'>283</span> 			 */</span><span class="WHIT">
+<span class='line'>284</span> </span><span class="WHIT">			</span><span class="NAME">removeListener</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>285</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>286</span> </span><span class="WHIT">				</span><span class="COMM">// Get the event entry.</span><span class="WHIT">
+<span class='line'>287</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._.events</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">eventName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>288</span>
+<span class='line'>289</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">event</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>290</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>291</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">event.getListenerIndex</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">listenerFunction</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>292</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">index</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>293</span> </span><span class="WHIT">						</span><span class="NAME">event.listeners.splice</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">index</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>294</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>295</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>296</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>297</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>298</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>299</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__loader.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__loader.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__loader.js.html	(revision 2163)
@@ -78,5 +78,5 @@
 <span class='line'> 71</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">scripts.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'> 72</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 73</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">src.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/(^|.*[\\\/])_source\/core\/loader.js(?:\?.*)?$/i</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">src.match</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="REGX">/(^|.*[\\\/])core\/loader.js(?:\?.*)?$/i</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 74</span>
 <span class='line'> 75</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__plugins.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__plugins.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__plugins.js.html	(revision 2163)
@@ -38,4 +38,4 @@
 <span class='line'> 31</span>  * @example
 <span class='line'> 32</span>  */</span><span class="WHIT">
-<span class='line'> 33</span> </span><span class="NAME">CKEDITOR.plugins</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.resourceManager</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'_source/plugins/'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'plugin'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="NAME">CKEDITOR.plugins</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.resourceManager</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.scriptsPath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'plugins/'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'plugin'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 34</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__resourcemanager.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__resourcemanager.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__resourcemanager.js.html	(revision 2163)
@@ -59,178 +59,184 @@
 <span class='line'> 52</span>
 <span class='line'> 53</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 54</span> 	 * @private
-<span class='line'> 55</span> 	 */</span><span class="WHIT">
-<span class='line'> 56</span> </span><span class="WHIT">	</span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
-<span class='line'> 57</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 58</span> </span><span class="WHIT">		</span><span class="COMM">// List of callbacks waiting for plugins to be loaded.</span><span class="WHIT">
-<span class='line'> 59</span> </span><span class="WHIT">		</span><span class="NAME">waitingList</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'> 60</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 61</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'> 62</span>
-<span class='line'> 63</span> </span><span class="NAME">CKEDITOR.resourceManager.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
-<span class='line'> 64</span> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'> 65</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 66</span> 	 * Contains references to all resources that have already been registered
-<span class='line'> 67</span> 	 * with {@link #add}.
-<span class='line'> 68</span> 	 * @type Object
-<span class='line'> 69</span> 	 * @example
-<span class='line'> 70</span> 	 */</span><span class="WHIT">
-<span class='line'> 71</span> </span><span class="WHIT">	</span><span class="NAME">registered</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 72</span>
-<span class='line'> 73</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 74</span> 	 * Contains references to all resources that have already been loaded
-<span class='line'> 75</span> 	 * with {@link #load}.
-<span class='line'> 76</span> 	 * @type Object
-<span class='line'> 77</span> 	 * @example
-<span class='line'> 78</span> 	 */</span><span class="WHIT">
-<span class='line'> 79</span> </span><span class="WHIT">	</span><span class="NAME">loaded</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 80</span>
-<span class='line'> 81</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 82</span> 	 * Contains references to all resources that have already been registered
-<span class='line'> 83</span> 	 * with {@link #addExternal}.
-<span class='line'> 84</span> 	 * @type Object
-<span class='line'> 85</span> 	 * @example
-<span class='line'> 86</span> 	 */</span><span class="WHIT">
-<span class='line'> 87</span> </span><span class="WHIT">	</span><span class="NAME">externals</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'> 88</span>
-<span class='line'> 89</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'> 90</span> 	 * Registers a resource.
-<span class='line'> 91</span> 	 * @param {String} name The resource name.
-<span class='line'> 92</span> 	 * @param {Object} definition The resource definition.
-<span class='line'> 93</span> 	 * @type undefined
-<span class='line'> 94</span> 	 * @example
-<span class='line'> 95</span> 	 * CKEDITOR.plugins.add( 'sample', { ... plugin definition ... } );
-<span class='line'> 96</span> 	 * @see CKEDITOR.pluginDefinition
-<span class='line'> 97</span> 	 */</span><span class="WHIT">
-<span class='line'> 98</span> </span><span class="WHIT">	</span><span class="NAME">add</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">definition</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'> 99</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>100</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>101</span> </span><span class="WHIT">			</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'[CKEDITOR.resourceManager.add] The resource name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" is already registered.'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>102</span>
-<span class='line'>103</span> </span><span class="WHIT">		</span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">definition</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>104</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 54</span> 	 * Contains references to all resources that have already been registered
+<span class='line'> 55</span> 	 * with {@link #add}.
+<span class='line'> 56</span> 	 * @name CKEDITOR.resourceManager.prototype.registered
+<span class='line'> 57</span> 	 * @type Object
+<span class='line'> 58</span> 	 * @example
+<span class='line'> 59</span> 	 */</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">	</span><span class="NAME">this.registered</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 61</span>
+<span class='line'> 62</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 63</span> 	 * Contains references to all resources that have already been loaded
+<span class='line'> 64</span> 	 * with {@link #load}.
+<span class='line'> 65</span> 	 * @name CKEDITOR.resourceManager.prototype.loaded
+<span class='line'> 66</span> 	 * @type Object
+<span class='line'> 67</span> 	 * @example
+<span class='line'> 68</span> 	 */</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">	</span><span class="NAME">this.loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 70</span>
+<span class='line'> 71</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 72</span> 	 * Contains references to all resources that have already been registered
+<span class='line'> 73</span> 	 * with {@link #addExternal}.
+<span class='line'> 74</span> 	 * @name CKEDITOR.resourceManager.prototype.externals
+<span class='line'> 75</span> 	 * @type Object
+<span class='line'> 76</span> 	 * @example
+<span class='line'> 77</span> 	 */</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">	</span><span class="NAME">this.externals</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 79</span>
+<span class='line'> 80</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 81</span> 	 * @private
+<span class='line'> 82</span> 	 */</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">	</span><span class="NAME">this._</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">		</span><span class="COMM">// List of callbacks waiting for plugins to be loaded.</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">		</span><span class="NAME">waitingList</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 89</span>
+<span class='line'> 90</span> </span><span class="NAME">CKEDITOR.resourceManager.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 93</span> 	 * Registers a resource.
+<span class='line'> 94</span> 	 * @param {String} name The resource name.
+<span class='line'> 95</span> 	 * @param {Object} definition The resource definition.
+<span class='line'> 96</span> 	 * @type undefined
+<span class='line'> 97</span> 	 * @example
+<span class='line'> 98</span> 	 * CKEDITOR.plugins.add( 'sample', { ... plugin definition ... } );
+<span class='line'> 99</span> 	 * @see CKEDITOR.pluginDefinition
+<span class='line'>100</span> 	 */</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">	</span><span class="NAME">add</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">definition</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">			</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'[CKEDITOR.resourceManager.add] The resource name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" is already registered.'</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>105</span>
-<span class='line'>106</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>107</span> 	 * Gets the definition of a specific resource.
-<span class='line'>108</span> 	 * @param {String} name The resource name.
-<span class='line'>109</span> 	 * @type Object
-<span class='line'>110</span> 	 * @example
-<span class='line'>111</span> 	 * var definition = &lt;b>CKEDITOR.plugins.get( 'sample' )&lt;/b>;
-<span class='line'>112</span> 	 */</span><span class="WHIT">
-<span class='line'>113</span> </span><span class="WHIT">	</span><span class="NAME">get</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>114</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>115</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>116</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>117</span>
-<span class='line'>118</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>119</span> 	 * Get the full path for a specific loaded resource.
-<span class='line'>120</span> 	 * @param {String} name The resource name.
-<span class='line'>121</span> 	 * @type String
-<span class='line'>122</span> 	 * @example
-<span class='line'>123</span> 	 * alert( &lt;b>CKEDITOR.plugins.getPath( 'sample' )&lt;/b> );  // "&lt;editor path&gt;/plugins/sample/"
-<span class='line'>124</span> 	 */</span><span class="WHIT">
-<span class='line'>125</span> </span><span class="WHIT">	</span><span class="NAME">getPath</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>126</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>127</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.loaded</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>128</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>129</span>
-<span class='line'>130</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>131</span> 	 * Registers a resource to be loaded from an external path instead of the core base path.
-<span class='line'>132</span> 	 * @param {String} name The resource name.
-<span class='line'>133</span> 	 * @param {String} path The resource external path.
-<span class='line'>134</span> 	 * @type undefined
-<span class='line'>135</span> 	 * @example
-<span class='line'>136</span> 	 * // Loads a plugin from '/myplugin/samples/plugin.js'.
-<span class='line'>137</span> 	 * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/' );
-<span class='line'>138</span> 	 */</span><span class="WHIT">
-<span class='line'>139</span> </span><span class="WHIT">	</span><span class="NAME">addExternal</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>140</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>141</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.externals</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>142</span> </span><span class="WHIT">			</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'[CKEDITOR.resourceManager.import] The resource name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" is already registered or imported.'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>143</span>
-<span class='line'>144</span> </span><span class="WHIT">		</span><span class="NAME">this.externals</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>145</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">		</span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">definition</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>107</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>108</span>
+<span class='line'>109</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>110</span> 	 * Gets the definition of a specific resource.
+<span class='line'>111</span> 	 * @param {String} name The resource name.
+<span class='line'>112</span> 	 * @type Object
+<span class='line'>113</span> 	 * @example
+<span class='line'>114</span> 	 * var definition = &lt;b>CKEDITOR.plugins.get( 'sample' )&lt;/b>;
+<span class='line'>115</span> 	 */</span><span class="WHIT">
+<span class='line'>116</span> </span><span class="WHIT">	</span><span class="NAME">get</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>120</span>
+<span class='line'>121</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>122</span> 	 * Get the full path for a specific loaded resource.
+<span class='line'>123</span> 	 * @param {String} name The resource name.
+<span class='line'>124</span> 	 * @type String
+<span class='line'>125</span> 	 * @example
+<span class='line'>126</span> 	 * alert( &lt;b>CKEDITOR.plugins.getPath( 'sample' )&lt;/b> );  // "&lt;editor path&gt;/plugins/sample/"
+<span class='line'>127</span> 	 */</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">	</span><span class="NAME">getPath</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.loaded</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>132</span>
+<span class='line'>133</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>134</span> 	 * Registers a resource to be loaded from an external path instead of the core base path.
+<span class='line'>135</span> 	 * @param {String} name The resource name.
+<span class='line'>136</span> 	 * @param {String} path The resource external path.
+<span class='line'>137</span> 	 * @type undefined
+<span class='line'>138</span> 	 * @example
+<span class='line'>139</span> 	 * // Loads a plugin from '/myplugin/samples/plugin.js'.
+<span class='line'>140</span> 	 * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/' );
+<span class='line'>141</span> 	 */</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT">	</span><span class="NAME">addExternal</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>143</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>144</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this.externals</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>145</span> </span><span class="WHIT">			</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'[CKEDITOR.resourceManager.import] The resource name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" is already registered or imported.'</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>146</span>
-<span class='line'>147</span> </span><span class="WHIT">	</span><span class="COMM">/**
-<span class='line'>148</span> 	 * Loads one or more resources.
-<span class='line'>149</span> 	 * @param {String|Array} name The name of the resource to load. It may be a
-<span class='line'>150</span> 	 *		string with a single resource name, or an array with several names.
-<span class='line'>151</span> 	 * @param {Function} callback A function to be called when all resources
-<span class='line'>152</span> 	 *		are loaded. The callback will receive an array containing all
-<span class='line'>153</span> 	 *		loaded names.
-<span class='line'>154</span> 	 * @param {Object} [scope] The scope object to be used for the callback
-<span class='line'>155</span> 	 *		call.
-<span class='line'>156</span> 	 * @type undefined
-<span class='line'>157</span> 	 * @example
-<span class='line'>158</span> 	 * &lt;b>CKEDITOR.plugins.load&lt;/b>( 'myplugin', function( plugins )
-<span class='line'>159</span> 	 *     {
-<span class='line'>160</span> 	 *         alert( plugins[0] );  // "myplugin"
-<span class='line'>161</span> 	 *     });
-<span class='line'>162</span> 	 */</span><span class="WHIT">
-<span class='line'>163</span> </span><span class="WHIT">	</span><span class="NAME">load</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">scope</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>164</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>165</span> </span><span class="WHIT">		</span><span class="COMM">// Ensure that we have an Array of names.</span><span class="WHIT">
-<span class='line'>166</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">names</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.tools.isArray</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>167</span>
-<span class='line'>168</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">total</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">names.length</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>169</span>
-<span class='line'>170</span> </span><span class="WHIT">		</span><span class="COMM">// Nothing to load, just call the callback.</span><span class="WHIT">
-<span class='line'>171</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">total</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>172</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>173</span> </span><span class="WHIT">			</span><span class="NAME">callback.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scope</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">names</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>174</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>175</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>176</span>
-<span class='line'>177</span> </span><span class="WHIT">		</span><span class="COMM">// This function is used to count the loaded plugins and call the</span><span class="WHIT">
-<span class='line'>178</span> </span><span class="WHIT">		</span><span class="COMM">// callback when finished loading.</span><span class="WHIT">
-<span class='line'>179</span> </span><span class="WHIT">		</span><span class="NAME">callback._loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>180</span> </span><span class="WHIT">		</span><span class="NAME">callback._total</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">total</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>181</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loadCheck</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>182</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>183</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">callback._loaded</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">callback._total</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>184</span> </span><span class="WHIT">				</span><span class="NAME">callback.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scope</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">names</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>185</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>186</span>
-<span class='line'>187</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.loaded</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>188</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">waitingList</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._waitingList</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>189</span>
-<span class='line'>190</span> </span><span class="WHIT">		</span><span class="COMM">// Loop through all names.</span><span class="WHIT">
-<span class='line'>191</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">names.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>192</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>193</span> </span><span class="WHIT">			</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">names</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>194</span>
-<span class='line'>195</span> </span><span class="WHIT">			</span><span class="COMM">// If not loaded already.</span><span class="WHIT">
-<span class='line'>196</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">loaded</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>197</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>198</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">waitingInfo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">waitingList</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">waitingList</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>199</span> </span><span class="WHIT">				</span><span class="NAME">waitingInfo.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>200</span>
-<span class='line'>201</span> </span><span class="WHIT">				</span><span class="COMM">// If this is the first call for it, go ahead loading.</span><span class="WHIT">
-<span class='line'>202</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">waitingInfo.length</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>203</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>204</span> </span><span class="WHIT">					</span><span class="COMM">// Calculate the plugin script path.</span><span class="WHIT">
-<span class='line'>205</span> </span><span class="WHIT">					</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.externals</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>206</span>
-<span class='line'>207</span> </span><span class="WHIT">					</span><span class="COMM">// Load the plugin script.</span><span class="WHIT">
-<span class='line'>208</span> </span><span class="WHIT">					</span><span class="NAME">CKEDITOR.scriptLoader.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.fileName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">success</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>209</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>210</span> </span><span class="WHIT">							</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">success</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>211</span> </span><span class="WHIT">								</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'[CKEDITOR.resourceManager.load] Resource name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" was not found at "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.fileName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js".'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>212</span>
-<span class='line'>213</span> </span><span class="WHIT">							</span><span class="NAME">loaded</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="WHIT">		</span><span class="NAME">this.externals</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>149</span>
+<span class='line'>150</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'>151</span> 	 * Loads one or more resources.
+<span class='line'>152</span> 	 * @param {String|Array} name The name of the resource to load. It may be a
+<span class='line'>153</span> 	 *		string with a single resource name, or an array with several names.
+<span class='line'>154</span> 	 * @param {Function} callback A function to be called when all resources
+<span class='line'>155</span> 	 *		are loaded. The callback will receive an array containing all
+<span class='line'>156</span> 	 *		loaded names.
+<span class='line'>157</span> 	 * @param {Object} [scope] The scope object to be used for the callback
+<span class='line'>158</span> 	 *		call.
+<span class='line'>159</span> 	 * @type undefined
+<span class='line'>160</span> 	 * @example
+<span class='line'>161</span> 	 * &lt;b>CKEDITOR.plugins.load&lt;/b>( 'myplugin', function( plugins )
+<span class='line'>162</span> 	 *     {
+<span class='line'>163</span> 	 *         alert( plugins[0] );  // "myplugin"
+<span class='line'>164</span> 	 *     });
+<span class='line'>165</span> 	 */</span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT">	</span><span class="NAME">load</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">scope</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT">		</span><span class="COMM">// Ensure that we have an Array of names.</span><span class="WHIT">
+<span class='line'>169</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">names</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.tools.isArray</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">total</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">names.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>171</span>
+<span class='line'>172</span> </span><span class="WHIT">		</span><span class="COMM">// Nothing to load, just call the callback.</span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT">		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">total</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>175</span> </span><span class="WHIT">			</span><span class="NAME">callback.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scope</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">names</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>178</span>
+<span class='line'>179</span> </span><span class="WHIT">		</span><span class="COMM">// This function is used to count the loaded plugins and call the</span><span class="WHIT">
+<span class='line'>180</span> </span><span class="WHIT">		</span><span class="COMM">// callback when finished loading.</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">		</span><span class="NAME">callback._loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT">		</span><span class="NAME">callback._total</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">total</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loadCheck</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">++</span><span class="NAME">callback._loaded</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">callback._total</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT">				</span><span class="NAME">callback.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scope</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">names</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>188</span>
+<span class='line'>189</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loaded</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.loaded</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>190</span> </span><span class="WHIT">			</span><span class="NAME">waitingList</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._.waitingList</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>191</span>
+<span class='line'>192</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loadPlugin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>193</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>194</span> </span><span class="WHIT">			</span><span class="COMM">// Calculate the plugin script path.</span><span class="WHIT">
+<span class='line'>195</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.externals</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">this.basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>196</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">filePath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.fileName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>197</span>
+<span class='line'>198</span> </span><span class="WHIT">			</span><span class="COMM">// Load the plugin script.</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT">			</span><span class="NAME">CKEDITOR.scriptLoader.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">filePath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">success</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>201</span> </span><span class="WHIT">					</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">success</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>202</span> </span><span class="WHIT">						</span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="STRN">'[CKEDITOR.resourceManager.load] Resource name "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" was not found at "'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">filePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'".'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>203</span>
+<span class='line'>204</span> </span><span class="WHIT">					</span><span class="NAME">loaded</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>205</span>
+<span class='line'>206</span> </span><span class="WHIT">					</span><span class="COMM">// Check all callbacks that were waiting for this</span><span class="WHIT">
+<span class='line'>207</span> </span><span class="WHIT">					</span><span class="COMM">// resource.</span><span class="WHIT">
+<span class='line'>208</span> </span><span class="WHIT">					</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">waitingInfo.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>209</span> </span><span class="WHIT">						</span><span class="NAME">loadCheck</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">waitingInfo</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>210</span>
+<span class='line'>211</span> </span><span class="WHIT">					</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">waitingList</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>214</span>
-<span class='line'>215</span> </span><span class="WHIT">							</span><span class="COMM">// Check all callbacks that were waiting for this</span><span class="WHIT">
-<span class='line'>216</span> </span><span class="WHIT">							</span><span class="COMM">// resource.</span><span class="WHIT">
-<span class='line'>217</span> </span><span class="WHIT">							</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">waitingInfo.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>218</span> </span><span class="WHIT">								</span><span class="NAME">loadCheck</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">waitingInfo</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>215</span> </span><span class="WHIT">		</span><span class="COMM">// Loop through all names.</span><span class="WHIT">
+<span class='line'>216</span> </span><span class="WHIT">		</span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">names.length</span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT">			</span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">names</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>219</span>
-<span class='line'>220</span> </span><span class="WHIT">							</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">waitingList</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>221</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>222</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>223</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>224</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
-<span class='line'>225</span> </span><span class="WHIT">				</span><span class="NAME">loadCheck</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>226</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>227</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>228</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>229</span> </span></pre></body></html>
+<span class='line'>220</span> </span><span class="WHIT">			</span><span class="COMM">// If not loaded already.</span><span class="WHIT">
+<span class='line'>221</span> </span><span class="WHIT">			</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">loaded</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.registered</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>222</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>223</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">waitingInfo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">waitingList</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">waitingList</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT">				</span><span class="NAME">waitingInfo.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>225</span>
+<span class='line'>226</span> </span><span class="WHIT">				</span><span class="COMM">// If this is the first call for it, go ahead loading.</span><span class="WHIT">
+<span class='line'>227</span> </span><span class="WHIT">				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">waitingInfo.length</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>228</span> </span><span class="WHIT">					</span><span class="NAME">loadPlugin.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>229</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>230</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'>231</span> </span><span class="WHIT">				</span><span class="NAME">loadCheck</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>232</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>233</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>234</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>235</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__scriptloader.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__scriptloader.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__scriptloader.js.html	(revision 2163)
@@ -121,26 +121,28 @@
 <span class='line'>114</span> </span><span class="WHIT">			</span><span class="NAME">script.appendTo</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element.getHead</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>115</span>
-<span class='line'>116</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>117</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>118</span>
-<span class='line'>119</span> </span><span class="WHIT">		</span><span class="COMM">/**
-<span class='line'>120</span> 		 * Executes a JavaScript code into the current document.
-<span class='line'>121</span> 		 * @param {String} code The code to be executed.
-<span class='line'>122</span> 		 * @type undefined
-<span class='line'>123</span> 		 * @example
-<span class='line'>124</span> 		 * CKEDITOR.scriptLoader.loadCode( 'var x = 10;' );
-<span class='line'>125</span> 		 * alert( x );  // "10"
-<span class='line'>126</span> 		 */</span><span class="WHIT">
-<span class='line'>127</span> </span><span class="WHIT">		</span><span class="NAME">loadCode</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
-<span class='line'>128</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>129</span> </span><span class="WHIT">			</span><span class="COMM">// Create the &lt;script> element.</span><span class="WHIT">
-<span class='line'>130</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>131</span> </span><span class="WHIT">			</span><span class="NAME">script.setAttribute</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'type'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'text/javascript'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>132</span> </span><span class="WHIT">			</span><span class="NAME">script.appendText</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>133</span>
-<span class='line'>134</span> </span><span class="WHIT">			</span><span class="COMM">// Append it to &lt;head>.</span><span class="WHIT">
-<span class='line'>135</span> </span><span class="WHIT">			</span><span class="NAME">script.appendTo</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element.getHead</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>136</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>137</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>138</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>139</span> </span></pre></body></html>
+<span class='line'>116</span> </span><span class="WHIT">			</span><span class="NAME">CKEDITOR.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'download'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">scriptUrl</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">		</span><span class="COMM">// @Packager.RemoveLine</span><span class="WHIT">
+<span class='line'>117</span>
+<span class='line'>118</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>120</span>
+<span class='line'>121</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>122</span> 		 * Executes a JavaScript code into the current document.
+<span class='line'>123</span> 		 * @param {String} code The code to be executed.
+<span class='line'>124</span> 		 * @type undefined
+<span class='line'>125</span> 		 * @example
+<span class='line'>126</span> 		 * CKEDITOR.scriptLoader.loadCode( 'var x = 10;' );
+<span class='line'>127</span> 		 * alert( x );  // "10"
+<span class='line'>128</span> 		 */</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">		</span><span class="NAME">loadCode</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">			</span><span class="COMM">// Create the &lt;script> element.</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">script</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'script'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">			</span><span class="NAME">script.setAttribute</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'type'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'text/javascript'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>134</span> </span><span class="WHIT">			</span><span class="NAME">script.appendText</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span>
+<span class='line'>136</span> </span><span class="WHIT">			</span><span class="COMM">// Append it to &lt;head>.</span><span class="WHIT">
+<span class='line'>137</span> </span><span class="WHIT">			</span><span class="NAME">script.appendTo</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.dom.element.getHead</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>138</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>139</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>141</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__themes.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__themes.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__themes.js.html	(revision 2163)
@@ -38,4 +38,4 @@
 <span class='line'> 31</span>  * @example
 <span class='line'> 32</span>  */</span><span class="WHIT">
-<span class='line'> 33</span> </span><span class="NAME">CKEDITOR.themes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.resourceManager</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'_source/themes/'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'theme'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="NAME">CKEDITOR.themes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.resourceManager</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.scriptsPath</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'themes/'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'theme'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'> 34</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__tools.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__tools.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__tools.js.html	(revision 2163)
@@ -124,5 +124,5 @@
 <span class='line'>117</span> </span><span class="WHIT">	</span><span class="NAME">isArray</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">object</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
 <span class='line'>118</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>119</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">object</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">object</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>119</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">object</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">object</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
 <span class='line'>120</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
 <span class='line'>121</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__xml.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__xml.js.html	(revision 2162)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__xml.js.html	(revision 2163)
@@ -115,5 +115,5 @@
 <span class='line'>108</span> 	 * @param {Object} [contextNode] The XML DOM node to be used as the context
 <span class='line'>109</span> 	 *		for the XPath query. The document root is used by default.
-<span class='line'>110</span> 	 * @returns {Array} An array containing all matched nodes. The array will
+<span class='line'>110</span> 	 * @returns {ArrayLike} An array containing all matched nodes. The array will
 <span class='line'>111</span> 	 *		be empty if the query has no results.
 <span class='line'>112</span> 	 * @example
Index: /CKEditor/branches/prototype/_samples/sample.html
===================================================================
--- /CKEditor/branches/prototype/_samples/sample.html	(revision 2162)
+++ /CKEditor/branches/prototype/_samples/sample.html	(revision 2163)
@@ -23,5 +23,9 @@
 <head>
 	<title>Sample - CKEditor</title>
-	<script type="text/javascript" src="../ckeditor.js"></script>
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+<!--
+	## Uncomment this if loading the "basic" version.
+
+	<script type="text/javascript" src="../_source/core/loader.js"></script>
 	<script type="text/javascript">
 	//<![CDATA[
@@ -33,4 +37,5 @@
 	//]]>
 	</script>
+-->
 	<script type="text/javascript" src="sample.js"></script>
 	<link type="text/css" rel="stylesheet" href="sample.css" />
Index: /CKEditor/branches/prototype/_source/core/ckeditor.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/ckeditor.js	(revision 2162)
+++ /CKEditor/branches/prototype/_source/core/ckeditor.js	(revision 2163)
@@ -76,3 +76,3 @@
 
 // Load the bootstrap script.
-CKEDITOR.loader.load( 'core/_bootstrap' );
+CKEDITOR.loader.load( 'core/_bootstrap' );		// @Packager.RemoveLine
Index: /CKEditor/branches/prototype/_source/core/ckeditor_base.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/ckeditor_base.js	(revision 2162)
+++ /CKEditor/branches/prototype/_source/core/ckeditor_base.js	(revision 2163)
@@ -27,7 +27,7 @@
 // #### Compressed Code
 // Must be updated on changes in the script, as well as updated in the
-// ckeditor.js and ckeditor_basic.js files.
+// ckeditor_source.js and ckeditor_basic_source.js files.
 
-// if (!window.CKEDITOR){window.CKEDITOR=(function(){var A={_:{},status:'unloaded',basePath:(function(){var B='';var C=document.getElementsByTagName('script');for (var i=0;i<C.length;i++){var D=C[i].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?.js(?:\?.*)?$/i);if (D){B=D[1];break;}};if (B.indexOf('://')==-1){if (B.indexOf('/')===0) B=location.href.match(/^.*?:\/\/[^\/]*/)[0]+B;else B=location.href.match(/^[^\?]*\//)[0]+B;};return B;})()};A.scriptsPath=A.basePath+'_source/';return A;})();};
+// if (!window.CKEDITOR){window.CKEDITOR=(function(){var A={_:{},status:'unloaded',basePath:(function(){var B='';var C=document.getElementsByTagName('script');for (var i=0;i<C.length;i++){var D=C[i].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if (D){B=D[1];break;}};if (B.indexOf('://')==-1){if (B.indexOf('/')===0) B=location.href.match(/^.*?:\/\/[^\/]*/)[0]+B;else B=location.href.match(/^[^\?]*\//)[0]+B;};return B;})()};A.scriptsPath=A.basePath+'_source/';return A;})();};
 
 // #### Raw code
@@ -90,5 +90,5 @@
 				for ( var i = 0 ; i < scripts.length ; i++ )
 				{
-					var match = scripts[i].src.match( /(^|.*[\\\/])ckeditor(?:_basic)?.js(?:\?.*)?$/i );
+					var match = scripts[i].src.match( /(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i );
 
 					if ( match )
Index: /CKEditor/branches/prototype/_source/core/ckeditor_basic.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/ckeditor_basic.js	(revision 2162)
+++ /CKEditor/branches/prototype/_source/core/ckeditor_basic.js	(revision 2163)
@@ -26,167 +26,168 @@
  */
 
-CKEDITOR.event.implementOn( CKEDITOR );
-
-/**
- * Forces the full CKEditor core code, in the case only the basic code has been
- * loaded (ckeditor_basic.js). This method self-destroys (becomes undefined) in
- * the first call or as soon as the full code is available.
- * @type undefined
- * @example
- * // Check if the full core code has been loaded and load it.
- * if ( CKEDITOR.loadFullCore )
- *     <b>CKEDITOR.loadFullCore()</b>;
- */
-CKEDITOR.loadFullCore = function()
-{
-	delete CKEDITOR.loadFullCore;
-
-	var script = document.createElement( 'script' );
-	script.type = 'text/javascript';
-	script.src = CKEDITOR.basePath + 'ckeditor.js';
-
-	document.getElementsByTagName( 'head' )[0].appendChild( script );
-};
-
-/**
- * The class name used to identify &lt;textarea&gt; elements to be replace
- * by CKEditor instances.
- * @type string
- * @default 'ckeditor'
- * @example
- * <b>CKEDITOR.replaceClass</b> = 'rich_editor';
- */
-CKEDITOR.replaceClass = 'ckeditor';
-
-/**
- * Enables the replacement of all textareas with class name matching
- * {@link CKEDITOR.replaceClass}.
- * @type Boolean
- * @default true
- * @example
- * // Disable the auto-replace feature.
- * <b>CKEDITOR.replaceByClassEnabled</b> = false;
- */
-CKEDITOR.replaceByClassEnabled = true;
-
-/**
- * Replaces a specific &lt;textarea&gt; with a CKEditor instance.
- * @param {object|string} elementOrIdOrName The DOM element (textarea), its
- *		ID or name.
- * @param {Object} [config] The specific configurations to apply to this
- *		editor instance. Configurations set here will override global CKEditor
- *		settings.
- * @type undefined
- * @example
- * &lt;textarea id="myfield" name="myfield"&gt;&lt:/textarea&gt;
- * ...
- * <b>CKEDITOR.replace( 'myfield' )</b>;
- * @example
- * var textarea = document.body.appendChild( document.createElement( 'textarea' ) );
- * <b>CKEDITOR.replace( textarea )</b>;
- */
-CKEDITOR.replace = function( elementOrIdOrName, config )
-{
-	if ( CKEDITOR.env.isCompatible )
-	{
-		var textarea = elementOrIdOrName;
-
-		if ( typeof textarea != 'object' )
-		{
-			// First look for the element id, then the name.
-			var i = 0;
-			var textareasByName	= document.getElementsByName( elementOrIdOrName );
-			textarea = document.getElementById( elementOrIdOrName ) || textareasByName[ i++ ];
-
-			while ( textarea )
-			{
-				if ( textarea.tagName.toLowerCase() == 'textarea' )
-					break;
-				textarea = textareasByName[ i++ ];
-			}
-
-			if ( !textarea )
-				throw '[CKEDITOR.replace] The <textarea> with id or name "' + elementOrIdOrName + '" was not found.';
-		}
-
-		CKEDITOR.replace._replaceElement( textarea, config );
-	}
-};
-
-// This function will be overwritten by the full core code implementation.
-CKEDITOR.replace._replaceElement = function( textarea, config )
-{
-	// Do not replace the textarea right now, just hide it. the
-	// effective replacement will be done by the full core code.
-	textarea.style.visibility = 'hidden';
-
-	// Push the textarea in the array of pending replacements.
-	var pending = CKEDITOR.replace._pending || ( CKEDITOR.replace._pending = [] );
-	pending.push( [ textarea, config ] );
-
-	// Check if it is time to load the full core code.
-	if ( CKEDITOR.loadFullCore && CKEDITOR.status == 'basic_ready' )
-		CKEDITOR.loadFullCore();
-};
-
-/**
- * Replace all &lt;textarea&gt; elements available in the document with
- * editor instances.
- * @type undefined
- * @example
- * // Replace all &lt;textarea&gt; elements in the page.
- * CKEDITOR.replaceAll();
- * @example
- * // Replace all &lt;textarea class="myClassName"&gt; elements in the page.
- * CKEDITOR.replaceAll( 'myClassName' );
- * @example
- * // Selectively replace &lt;textarea&gt; elements, based on custom assertions.
- * CKEDITOR.replaceAll( function( textarea, config )
- *     {
- *         // Custom code to evaluate the replace, returning false
- *         // if it must not be done.
- *         // It also passes the "config" parameter, so the
- *         // developer can customize the instance.
- *     } );
- */
-CKEDITOR.replaceAll = function()
-{
-	var textareas = document.getElementsByTagName( 'textarea' );
-
-	for ( var i = 0 ; i < textareas.length ; i++ )
-	{
-		var config = null;
-		var textarea = textareas[i];
-		var name = textarea.name;
-
-		// The "name" and/or "id" attribute must exist.
-		if ( !textarea.name && !textarea.id )
-			continue;
-
-		if ( typeof arguments[0] == 'string' )
-		{
-			// The textarea class name could be passed as the function
-			// parameter.
-
-			var classRegex = new RegExp( '(?:^| )' + arguments[0] + '(?:$| )' );
-
-			if ( !classRegex.test( textarea.className ) )
-				continue;
-		}
-		else if ( typeof arguments[0] == 'function' )
-		{
-			// An assertion function could be passed as the function parameter.
-			// It must explicitly return "false" to ignore a specific <textarea>.
-			config = {};
-			if ( arguments[0]( textarea, config ) === false )
-				continue;
-		}
-
-		this.replace( textarea, config );
-	}
-};
-
 if ( CKEDITOR.status == 'unloaded' )
 {
+	CKEDITOR.event.implementOn( CKEDITOR );
+
+	/**
+	 * Forces the full CKEditor core code, in the case only the basic code has been
+	 * loaded (ckeditor_basic.js). This method self-destroys (becomes undefined) in
+	 * the first call or as soon as the full code is available.
+	 * @type undefined
+	 * @example
+	 * // Check if the full core code has been loaded and load it.
+	 * if ( CKEDITOR.loadFullCore )
+	 *     <b>CKEDITOR.loadFullCore()</b>;
+	 */
+	CKEDITOR.loadFullCore = function()
+	{
+		delete CKEDITOR.loadFullCore;
+
+		var script = document.createElement( 'script' );
+		script.type = 'text/javascript';
+		script.src = CKEDITOR.basePath + 'ckeditor.js';
+		script.src = CKEDITOR.basePath + 'ckeditor_source.js';		// @Packager.RemoveLine
+
+		document.getElementsByTagName( 'head' )[0].appendChild( script );
+	};
+
+	/**
+	 * The class name used to identify &lt;textarea&gt; elements to be replace
+	 * by CKEditor instances.
+	 * @type string
+	 * @default 'ckeditor'
+	 * @example
+	 * <b>CKEDITOR.replaceClass</b> = 'rich_editor';
+	 */
+	CKEDITOR.replaceClass = 'ckeditor';
+
+	/**
+	 * Enables the replacement of all textareas with class name matching
+	 * {@link CKEDITOR.replaceClass}.
+	 * @type Boolean
+	 * @default true
+	 * @example
+	 * // Disable the auto-replace feature.
+	 * <b>CKEDITOR.replaceByClassEnabled</b> = false;
+	 */
+	CKEDITOR.replaceByClassEnabled = true;
+
+	/**
+	 * Replaces a specific &lt;textarea&gt; with a CKEditor instance.
+	 * @param {object|string} elementOrIdOrName The DOM element (textarea), its
+	 *		ID or name.
+	 * @param {Object} [config] The specific configurations to apply to this
+	 *		editor instance. Configurations set here will override global CKEditor
+	 *		settings.
+	 * @type undefined
+	 * @example
+	 * &lt;textarea id="myfield" name="myfield"&gt;&lt:/textarea&gt;
+	 * ...
+	 * <b>CKEDITOR.replace( 'myfield' )</b>;
+	 * @example
+	 * var textarea = document.body.appendChild( document.createElement( 'textarea' ) );
+	 * <b>CKEDITOR.replace( textarea )</b>;
+	 */
+	CKEDITOR.replace = function( elementOrIdOrName, config )
+	{
+		if ( CKEDITOR.env.isCompatible )
+		{
+			var textarea = elementOrIdOrName;
+
+			if ( typeof textarea != 'object' )
+			{
+				// First look for the element id, then the name.
+				var i = 0;
+				var textareasByName	= document.getElementsByName( elementOrIdOrName );
+				textarea = document.getElementById( elementOrIdOrName ) || textareasByName[ i++ ];
+
+				while ( textarea )
+				{
+					if ( textarea.tagName.toLowerCase() == 'textarea' )
+						break;
+					textarea = textareasByName[ i++ ];
+				}
+
+				if ( !textarea )
+					throw '[CKEDITOR.replace] The <textarea> with id or name "' + elementOrIdOrName + '" was not found.';
+			}
+
+			CKEDITOR.replace._replaceElement( textarea, config );
+		}
+	};
+
+	// This function will be overwritten by the full core code implementation.
+	CKEDITOR.replace._replaceElement = function( textarea, config )
+	{
+		// Do not replace the textarea right now, just hide it. the
+		// effective replacement will be done by the full core code.
+		textarea.style.visibility = 'hidden';
+
+		// Push the textarea in the array of pending replacements.
+		var pending = CKEDITOR.replace._pending || ( CKEDITOR.replace._pending = [] );
+		pending.push( [ textarea, config ] );
+
+		// Check if it is time to load the full core code.
+		if ( CKEDITOR.loadFullCore && CKEDITOR.status == 'basic_ready' )
+			CKEDITOR.loadFullCore();
+	};
+
+	/**
+	 * Replace all &lt;textarea&gt; elements available in the document with
+	 * editor instances.
+	 * @type undefined
+	 * @example
+	 * // Replace all &lt;textarea&gt; elements in the page.
+	 * CKEDITOR.replaceAll();
+	 * @example
+	 * // Replace all &lt;textarea class="myClassName"&gt; elements in the page.
+	 * CKEDITOR.replaceAll( 'myClassName' );
+	 * @example
+	 * // Selectively replace &lt;textarea&gt; elements, based on custom assertions.
+	 * CKEDITOR.replaceAll( function( textarea, config )
+	 *     {
+	 *         // Custom code to evaluate the replace, returning false
+	 *         // if it must not be done.
+	 *         // It also passes the "config" parameter, so the
+	 *         // developer can customize the instance.
+	 *     } );
+	 */
+	CKEDITOR.replaceAll = function()
+	{
+		var textareas = document.getElementsByTagName( 'textarea' );
+
+		for ( var i = 0 ; i < textareas.length ; i++ )
+		{
+			var config = null;
+			var textarea = textareas[i];
+			var name = textarea.name;
+
+			// The "name" and/or "id" attribute must exist.
+			if ( !textarea.name && !textarea.id )
+				continue;
+
+			if ( typeof arguments[0] == 'string' )
+			{
+				// The textarea class name could be passed as the function
+				// parameter.
+
+				var classRegex = new RegExp( '(?:^| )' + arguments[0] + '(?:$| )' );
+
+				if ( !classRegex.test( textarea.className ) )
+					continue;
+			}
+			else if ( typeof arguments[0] == 'function' )
+			{
+				// An assertion function could be passed as the function parameter.
+				// It must explicitly return "false" to ignore a specific <textarea>.
+				config = {};
+				if ( arguments[0]( textarea, config ) === false )
+					continue;
+			}
+
+			this.replace( textarea, config );
+		}
+	};
+
 	(function()
 	{
@@ -211,5 +212,5 @@
 			window.attachEvent( 'onload', onload );
 	})();
+
+	CKEDITOR.status = 'basic_loaded';
 }
-
-CKEDITOR.status = 'basic_loaded';
Index: /CKEditor/branches/prototype/_source/core/editor.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/editor.js	(revision 2162)
+++ /CKEditor/branches/prototype/_source/core/editor.js	(revision 2163)
@@ -44,5 +44,5 @@
 	var getNewName = function()
 	{
-		var name = 'editor' + ++nameCounter;
+		var name = 'editor' + ( ++nameCounter );
 		return CKEDITOR.instances[ name ] ? getNewName() : name;
 	};
Index: /CKEditor/branches/prototype/_source/core/env.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/env.js	(revision 2162)
+++ /CKEditor/branches/prototype/_source/core/env.js	(revision 2163)
@@ -25,106 +25,109 @@
  */
 
-/**
- * Environment and browser information.
- * @namespace
- * @example
- */
-CKEDITOR.env = (function()
+if ( !CKEDITOR.env )
 {
-	var agent = navigator.userAgent.toLowerCase();
-	var opera = window.opera;
+	/**
+	 * Environment and browser information.
+	 * @namespace
+	 * @example
+	 */
+	CKEDITOR.env = (function()
+	{
+		var agent = navigator.userAgent.toLowerCase();
+		var opera = window.opera;
 
-	var env =
-	/** @lends CKEDITOR.env */
-	{
+		var env =
+		/** @lends CKEDITOR.env */
+		{
+			/**
+			 * Indicates that CKEditor is running on Internet Explorer.
+			 * @type Boolean
+			 * @example
+			 * if ( CKEDITOR.env.ie )
+			 *     alert( "I'm on IE!" );
+			 */
+			ie		: /*@cc_on!@*/false,
+			/**
+			 * Indicates that CKEditor is running on Opera.
+			 * @type Boolean
+			 * @example
+			 * if ( CKEDITOR.env.opera )
+			 *     alert( "I'm on Opera!" );
+			 */
+			opera	: ( !!opera && opera.version ),
+			/**
+			 * Indicates that CKEditor is running on a WebKit based browser, like
+			 * Safari.
+			 * @type Boolean
+			 * @example
+			 * if ( CKEDITOR.env.webkit )
+			 *     alert( "I'm on WebKit!" );
+			 */
+			webkit	: ( agent.indexOf( ' applewebkit/' ) > -1 ),
+			/**
+			 * Indicates that CKEditor is running on Adobe AIR.
+			 * @type Boolean
+			 * @example
+			 * if ( CKEDITOR.env.air )
+			 *     alert( "I'm on AIR!" );
+			 */
+			air		: ( agent.indexOf( ' adobeair/' ) > -1 ),
+			/**
+			 * Indicates that CKEditor is running on Macintosh.
+			 * @type Boolean
+			 * @example
+			 * if ( CKEDITOR.env.mac )
+			 *     alert( "I love apples!" );
+			 */
+			mac	: ( agent.indexOf( 'macintosh' ) > -1 )
+		};
+
 		/**
-		 * Indicates that CKEditor is running on Internet Explorer.
+		 * Indicates that CKEditor is running on a Gecko based browser, like
+		 * Firefox.
+		 * @name CKEDITOR.env.gecko
 		 * @type Boolean
 		 * @example
-		 * if ( CKEDITOR.env.ie )
-		 *     alert( "I'm on IE!" );
+		 * if ( CKEDITOR.env.gecko )
+		 *     alert( "I'm riding a gecko!" );
 		 */
-		ie		: /*@cc_on!@*/false,
+		env.gecko = ( navigator.product == 'Gecko' && !env.webkit && !env.opera );
+
 		/**
-		 * Indicates that CKEditor is running on Opera.
+		 * Indicates that CKEditor is running on a compatible browser.
+		 * @name CKEDITOR.env.isCompatible
 		 * @type Boolean
 		 * @example
-		 * if ( CKEDITOR.env.opera )
-		 *     alert( "I'm on Opera!" );
+		 * if ( CKEDITOR.env.isCompatible )
+		 *     alert( "Your browser is pretty cool!" );
 		 */
-		opera	: ( !!opera && opera.version ),
-		/**
-		 * Indicates that CKEditor is running on a WebKit based browser, like
-		 * Safari.
-		 * @type Boolean
-		 * @example
-		 * if ( CKEDITOR.env.webkit )
-		 *     alert( "I'm on WebKit!" );
-		 */
-		webkit	: ( agent.indexOf( ' applewebkit/' ) > -1 ),
-		/**
-		 * Indicates that CKEditor is running on Adobe AIR.
-		 * @type Boolean
-		 * @example
-		 * if ( CKEDITOR.env.air )
-		 *     alert( "I'm on AIR!" );
-		 */
-		air		: ( agent.indexOf( ' adobeair/' ) > -1 ),
-		/**
-		 * Indicates that CKEditor is running on Macintosh.
-		 * @type Boolean
-		 * @example
-		 * if ( CKEDITOR.env.mac )
-		 *     alert( "I love apples!" );
-		 */
-		mac	: ( agent.indexOf( 'macintosh' ) > -1 )
-	};
+		env.isCompatible = (function()
+		{
+			// Internet Explorer 6.0+
+			if ( env.ie )
+				return ( agent.match(/msie (\d+)/)[1] >= 6 );
 
-	/**
-	 * Indicates that CKEditor is running on a Gecko based browser, like
-	 * Firefox.
-	 * @name CKEDITOR.env.gecko
-	 * @type Boolean
-	 * @example
-	 * if ( CKEDITOR.env.gecko )
-	 *     alert( "I'm riding a gecko!" );
-	 */
-	env.gecko = ( navigator.product == 'Gecko' && !env.webkit && !env.opera );
+			// Gecko.
+			if ( env.gecko )
+				return navigator.productSub >= 20030210;
 
-	/**
-	 * Indicates that CKEditor is running on a compatible browser.
-	 * @name CKEDITOR.env.isCompatible
-	 * @type Boolean
-	 * @example
-	 * if ( CKEDITOR.env.isCompatible )
-	 *     alert( "Your browser is pretty cool!" );
-	 */
-	env.isCompatible = (function()
-	{
-		// Internet Explorer 6.0+
-		if ( env.ie )
-			return ( agent.match(/msie (\d+)/)[1] >= 6 );
+			// Opera 9.50+
+			if ( env.opera )
+				return parseFloat( opera.version() ) >= 9.5;
 
-		// Gecko.
-		if ( env.gecko )
-			return navigator.productSub >= 20030210;
+			// Adobe AIR 1.0+
+			// Checked before Safari because AIR have the WebKit rich text editor
+			// features from Safari 3.0.4, but the version reported is 420.
+			if ( env.air )
+				return ( agent.match( / adobeair\/(\d+)/ )[1] >= 1 );
 
-		// Opera 9.50+
-		if ( env.opera )
-			return parseFloat( opera.version() ) >= 9.5;
+			// WebKit 522+ (Safari 3+)
+			if ( env.webkit )
+				return ( agent.match( / applewebkit\/(\d+)/ )[1] >= 522 );
 
-		// Adobe AIR 1.0+
-		// Checked before Safari because AIR have the WebKit rich text editor
-		// features from Safari 3.0.4, but the version reported is 420.
-		if ( env.air )
-			return ( agent.match( / adobeair\/(\d+)/ )[1] >= 1 );
+			return false;
+		})();
 
-		// WebKit 522+ (Safari 3+)
-		if ( env.webkit )
-			return ( agent.match( / applewebkit\/(\d+)/ )[1] >= 522 );
-
-		return false;
+		return env;
 	})();
-
-	return env;
-})();
+}
Index: /CKEditor/branches/prototype/_source/core/event.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/event.js	(revision 2162)
+++ /CKEditor/branches/prototype/_source/core/event.js	(revision 2163)
@@ -25,271 +25,274 @@
  */
 
-/**
- * This is a base class for classes and objects that require event handling
- * features.
- * @constructor
- * @example
- */
-CKEDITOR.event = function()
+if ( !CKEDITOR.event )
 {
-	( this._ || ( this._ = {} ) ).events = {};
-};
-
-/**
- * Implements the {@link CKEDITOR.event} features in an object.
- * @param {Object} targetObject The object in which implement the features.
- * @type undefined
- * @example
- * var myObject = { message : 'Example' };
- * <b>CKEDITOR.event.implementOn( myObject }</b>;
- * myObject.on( 'testevent', function()
- *     {
- *         alert( this.message );  // "Example"
- *     });
- * myObject.fire( 'testevent' );
- */
-CKEDITOR.event.implementOn = function( targetObject )
-{
-	CKEDITOR.event.call( targetObject );
-
-	for ( var prop in CKEDITOR.event.prototype )
+	/**
+	 * This is a base class for classes and objects that require event handling
+	 * features.
+	 * @constructor
+	 * @example
+	 */
+	CKEDITOR.event = function()
 	{
-		if ( targetObject[ prop ] == undefined )
-			targetObject[ prop ] = CKEDITOR.event.prototype[ prop ];
-	}
-};
-
-CKEDITOR.event.prototype = (function()
-{
-	var eventEntry = function( eventName )
+		( this._ || ( this._ = {} ) ).events = {};
+	};
+
+	/**
+	 * Implements the {@link CKEDITOR.event} features in an object.
+	 * @param {Object} targetObject The object in which implement the features.
+	 * @type undefined
+	 * @example
+	 * var myObject = { message : 'Example' };
+	 * <b>CKEDITOR.event.implementOn( myObject }</b>;
+	 * myObject.on( 'testevent', function()
+	 *     {
+	 *         alert( this.message );  // "Example"
+	 *     });
+	 * myObject.fire( 'testevent' );
+	 */
+	CKEDITOR.event.implementOn = function( targetObject )
 	{
-		this.name = eventName;
-		this.listeners = [];
-	};
-
-	eventEntry.prototype =
-	{
-		// Get the listener index for a specified function.
-		// Returns -1 if not found.
-		getListenerIndex : function( listenerFunction )
+		CKEDITOR.event.call( targetObject );
+
+		for ( var prop in CKEDITOR.event.prototype )
 		{
-			for ( var i = 0, listeners = this.listeners ; i < listeners.length ; i++ )
-			{
-				if ( listeners[i].fn == listenerFunction )
-					return i;
-			}
-			return -1;
+			if ( targetObject[ prop ] == undefined )
+				targetObject[ prop ] = CKEDITOR.event.prototype[ prop ];
 		}
 	};
 
-	return /** @lends CKEDITOR.event.prototype */ {
-		/**
-		 * Registers a listener to a specific event in the current object.
-		 * @param {String} eventName The event name to which listen.
-		 * @param {Function} listenerFunction The function listening to the
-		 *		event.
-		 * @param {Object} [scopeObj] The object used to scope the listener
-		 *		call (the this object. If omitted, the current object is used.
-		 * @param {Object} [listenerData] Data to be sent as the
-		 *		{@link CKEDITOR.eventInfo#listenerData} when calling the
-		 *		listener.
-		 * @param {Number} [priority] The listener priority. Lower priority
-		 *		listeners are called first. Listeners with the same priority
-		 *		value are called in registration order. Defaults to 10.
-		 * @type undefined
-		 * @example
-		 * someObject.on( 'someevent', function()
-		 *     {
-		 *         alert( this == someObject );  // "true"
-		 *     });
-		 * @example
-		 * someObject.on( 'someevent', function()
-		 *     {
-		 *         alert( this == anotherObject );  // "true"
-		 *     }
-		 *     , anotherObject );
-		 * @example
-		 * someObject.on( 'someevent', function( event )
-		 *     {
-		 *         alert( event.listenerData );  // "Example"
-		 *     }
-		 *     , null, 'Example' );
-		 * @example
-		 * someObject.on( 'someevent', function() { ... } );                   // 2nd called
-		 * someObject.on( 'someevent', function() { ... }, null, null, 100 );  // 3rd called
-		 * someObject.on( 'someevent', function() { ... }, null, null, 1 );    // 1st called
-		 */
-		on  : function( eventName, listenerFunction, scopeObj, listenerData, priority )
+	CKEDITOR.event.prototype = (function()
+	{
+		var eventEntry = function( eventName )
 		{
-			// Get the event entry (create it if needed).
-			var event = this._.events[ eventName ] || ( this._.events[ eventName ] = new eventEntry( eventName ) );
-
-			if ( event.getListenerIndex( listenerFunction ) < 0 )
-			{
-				// Get the listeners.
-				var listeners = event.listeners;
-
-				// Fill the scope.
-				if ( !scopeObj )
-					scopeObj = this;
-
-				// Default the priority, if needed.
-				if ( isNaN( priority ) )
-					priority = 10;
-
-				// Create the function to be fired for this listener.
-				var listenerFirer = function( editor, publisherData, stopFn, cancelFn )
-				{
-					var ev =
+			this.name = eventName;
+			this.listeners = [];
+		};
+
+		eventEntry.prototype =
+		{
+			// Get the listener index for a specified function.
+			// Returns -1 if not found.
+			getListenerIndex : function( listenerFunction )
+			{
+				for ( var i = 0, listeners = this.listeners ; i < listeners.length ; i++ )
+				{
+					if ( listeners[i].fn == listenerFunction )
+						return i;
+				}
+				return -1;
+			}
+		};
+
+		return /** @lends CKEDITOR.event.prototype */ {
+			/**
+			 * Registers a listener to a specific event in the current object.
+			 * @param {String} eventName The event name to which listen.
+			 * @param {Function} listenerFunction The function listening to the
+			 *		event.
+			 * @param {Object} [scopeObj] The object used to scope the listener
+			 *		call (the this object. If omitted, the current object is used.
+			 * @param {Object} [listenerData] Data to be sent as the
+			 *		{@link CKEDITOR.eventInfo#listenerData} when calling the
+			 *		listener.
+			 * @param {Number} [priority] The listener priority. Lower priority
+			 *		listeners are called first. Listeners with the same priority
+			 *		value are called in registration order. Defaults to 10.
+			 * @type undefined
+			 * @example
+			 * someObject.on( 'someevent', function()
+			 *     {
+			 *         alert( this == someObject );  // "true"
+			 *     });
+			 * @example
+			 * someObject.on( 'someevent', function()
+			 *     {
+			 *         alert( this == anotherObject );  // "true"
+			 *     }
+			 *     , anotherObject );
+			 * @example
+			 * someObject.on( 'someevent', function( event )
+			 *     {
+			 *         alert( event.listenerData );  // "Example"
+			 *     }
+			 *     , null, 'Example' );
+			 * @example
+			 * someObject.on( 'someevent', function() { ... } );                   // 2nd called
+			 * someObject.on( 'someevent', function() { ... }, null, null, 100 );  // 3rd called
+			 * someObject.on( 'someevent', function() { ... }, null, null, 1 );    // 1st called
+			 */
+			on  : function( eventName, listenerFunction, scopeObj, listenerData, priority )
+			{
+				// Get the event entry (create it if needed).
+				var event = this._.events[ eventName ] || ( this._.events[ eventName ] = new eventEntry( eventName ) );
+
+				if ( event.getListenerIndex( listenerFunction ) < 0 )
+				{
+					// Get the listeners.
+					var listeners = event.listeners;
+
+					// Fill the scope.
+					if ( !scopeObj )
+						scopeObj = this;
+
+					// Default the priority, if needed.
+					if ( isNaN( priority ) )
+						priority = 10;
+
+					// Create the function to be fired for this listener.
+					var listenerFirer = function( editor, publisherData, stopFn, cancelFn )
 					{
-						name : eventName,
-						sender : this,
-						editor : editor,
-						data : publisherData,
-						listenerData : listenerData,
-						stop : stopFn,
-						cancel : cancelFn
+						var ev =
+						{
+							name : eventName,
+							sender : this,
+							editor : editor,
+							data : publisherData,
+							listenerData : listenerData,
+							stop : stopFn,
+							cancel : cancelFn
+						};
+
+						listenerFunction.call( scopeObj, ev );
+
+						return ev.data;
 					};
-
-					listenerFunction.call( scopeObj, ev );
-
-					return ev.data;
+					listenerFirer.fn = listenerFunction;
+					listenerFirer.priority = priority;
+
+					// Search for the right position for this new listener, based on its
+					// priority.
+					for ( var i = listeners.length - 1 ; i >= 0 ; i-- )
+					{
+						// Find the item which should be before the new one.
+						if ( listeners[ i ].priority <= priority )
+						{
+							// Insert the listener in the array.
+							listeners.splice( i + 1, 0, listenerFirer );
+							return;
+						}
+					}
+
+					// If no position has been found (or zero length), put it in
+					// the front of list.
+					listeners.unshift( listenerFirer );
+				}
+			},
+
+			/**
+			 * Fires an specific event in the object. All registered listeners are
+			 * called at this point.
+			 * @param {String} eventName The event name to fire.
+			 * @param {Object} [data] Data to be sent as the
+			 *		{@link CKEDITOR.eventInfo#data} when calling the
+			 *		listeners.
+			 * @param {CKEDITOR.editor} [editor] The editor instance to send as the
+			 *		{@link CKEDITOR.eventInfo#editor} when calling the
+			 *		listener.
+			 * @returns {Boolean|Object} A booloan indicating that the event is to be
+			 *		cancelled, or data returned by one of the listeners.
+			 * @example
+			 * someObject.on( 'someevent', function() { ... } );
+			 * someObject.on( 'someevent', function() { ... } );
+			 * <b>someObject.fire( 'someevent' )</b>;  // both listeners are called
+			 * @example
+			 * someObject.on( 'someevent', function( event )
+			 *     {
+			 *         alert( event.data );  // "Example"
+			 *     });
+			 * <b>someObject.fire( 'someevent', 'Example' )</b>;
+			 */
+			fire : function( eventName, data, editor )
+			{
+				// Create the function that marks the event as stopped.
+				var stopped = false;
+				var stopEvent = function()
+				{
+					stopped = true;
 				};
-				listenerFirer.fn = listenerFunction;
-				listenerFirer.priority = priority;
-
-				// Search for the right position for this new listener, based on its
-				// priority.
-				for ( var i = listeners.length - 1 ; i >= 0 ; i-- )
-				{
-					// Find the item which should be before the new one.
-					if ( listeners[ i ].priority <= priority )
+
+				// Create the function that marks the event as cancelled.
+				var cancelled = false;
+				var cancelEvent = function()
+				{
+					cancelled = true;
+				};
+
+				// Get the event entry.
+				var event = this._.events[ eventName ];
+
+				if ( event )
+				{
+					// Loop through all listeners.
+					for ( var i = 0, listeners = event.listeners ; i < listeners.length ; i++ )
 					{
-						// Insert the listener in the array.
-						listeners.splice( i + 1, 0, listenerFirer );
-						return;
+						// Call the listener, passing the event data.
+						var retData = listeners[i].call( this, editor, data, stopEvent, cancelEvent );
+
+						if ( typeof retData != 'undefined' )
+							data = retData;
+
+						// No further calls is stopped or cancelled.
+						if ( stopped || cancelled )
+							break;
 					}
 				}
 
-				// If no position has been found (or zero length), put it in
-				// the front of list.
-				listeners.unshift( listenerFirer );
+				return cancelled || ( typeof data == 'undefined' ? false : data );
+			},
+
+			/**
+			 * Fires an specific event in the object, releasing all listeners
+			 * registered to that event. The same listeners are not called again on
+			 * successive calls of it or of {@link #fire}.
+			 * @param {String} eventName The event name to fire.
+			 * @param {Object} [data] Data to be sent as the
+			 *		{@link CKEDITOR.eventInfo#data} when calling the
+			 *		listeners.
+			 * @param {CKEDITOR.editor} [editor] The editor instance to send as the
+			 *		{@link CKEDITOR.eventInfo#editor} when calling the
+			 *		listener.
+			 * @returns {Boolean|Object} A booloan indicating that the event is to be
+			 *		cancelled, or data returned by one of the listeners.
+			 * @example
+			 * someObject.on( 'someevent', function() { ... } );
+			 * someObject.fire( 'someevent' );  // above listener called
+			 * <b>someObject.fireOnce( 'someevent' )</b>;  // above listener called
+			 * someObject.fire( 'someevent' );  // no listeners called
+			 */
+			fireOnce : function( eventName, data, editor )
+			{
+				var ret = this.fire( eventName, data, editor );
+				delete this._.events[ eventName ];
+				return ret;
+			},
+
+			/**
+			 * Unregisters a listener function from being called at the specified
+			 *		event. No errors are thrown if the listener has not been
+			 *		registered previously.
+			 * @param {String} eventName The event name.
+			 * @param {Function} listenerFunction The listener function to unregister.
+			 * @type undefined
+			 * @example
+			 * var myListener = function() { ... };
+			 * someObject.on( 'someevent', myListener );
+			 * someObject.fire( 'someevent' );  // myListener called
+			 * <b>someObject.removeListener( 'someevent', myListener )</b>;
+			 * someObject.fire( 'someevent' );  // myListener not called
+			 */
+			removeListener : function( eventName, listenerFunction )
+			{
+				// Get the event entry.
+				var event = this._.events[ eventName ];
+
+				if ( event )
+				{
+					var index = event.getListenerIndex( listenerFunction );
+					if ( index >= 0 )
+						event.listeners.splice( index, 1 );
+				}
 			}
-		},
-
-		/**
-		 * Fires an specific event in the object. All registered listeners are
-		 * called at this point.
-		 * @param {String} eventName The event name to fire.
-		 * @param {Object} [data] Data to be sent as the
-		 *		{@link CKEDITOR.eventInfo#data} when calling the
-		 *		listeners.
-		 * @param {CKEDITOR.editor} [editor] The editor instance to send as the
-		 *		{@link CKEDITOR.eventInfo#editor} when calling the
-		 *		listener.
-		 * @returns {Boolean|Object} A booloan indicating that the event is to be
-		 *		cancelled, or data returned by one of the listeners.
-		 * @example
-		 * someObject.on( 'someevent', function() { ... } );
-		 * someObject.on( 'someevent', function() { ... } );
-		 * <b>someObject.fire( 'someevent' )</b>;  // both listeners are called
-		 * @example
-		 * someObject.on( 'someevent', function( event )
-		 *     {
-		 *         alert( event.data );  // "Example"
-		 *     });
-		 * <b>someObject.fire( 'someevent', 'Example' )</b>;
-		 */
-		fire : function( eventName, data, editor )
-		{
-			// Create the function that marks the event as stopped.
-			var stopped = false;
-			var stopEvent = function()
-			{
-				stopped = true;
-			};
-
-			// Create the function that marks the event as cancelled.
-			var cancelled = false;
-			var cancelEvent = function()
-			{
-				cancelled = true;
-			};
-
-			// Get the event entry.
-			var event = this._.events[ eventName ];
-
-			if ( event )
-			{
-				// Loop through all listeners.
-				for ( var i = 0, listeners = event.listeners ; i < listeners.length ; i++ )
-				{
-					// Call the listener, passing the event data.
-					var retData = listeners[i].call( this, editor, data, stopEvent, cancelEvent );
-
-					if ( typeof retData != 'undefined' )
-						data = retData;
-
-					// No further calls is stopped or cancelled.
-					if ( stopped || cancelled )
-						break;
-				}
-			}
-
-			return cancelled || ( typeof data == 'undefined' ? false : data );
-		},
-
-		/**
-		 * Fires an specific event in the object, releasing all listeners
-		 * registered to that event. The same listeners are not called again on
-		 * successive calls of it or of {@link #fire}.
-		 * @param {String} eventName The event name to fire.
-		 * @param {Object} [data] Data to be sent as the
-		 *		{@link CKEDITOR.eventInfo#data} when calling the
-		 *		listeners.
-		 * @param {CKEDITOR.editor} [editor] The editor instance to send as the
-		 *		{@link CKEDITOR.eventInfo#editor} when calling the
-		 *		listener.
-		 * @returns {Boolean|Object} A booloan indicating that the event is to be
-		 *		cancelled, or data returned by one of the listeners.
-		 * @example
-		 * someObject.on( 'someevent', function() { ... } );
-		 * someObject.fire( 'someevent' );  // above listener called
-		 * <b>someObject.fireOnce( 'someevent' )</b>;  // above listener called
-		 * someObject.fire( 'someevent' );  // no listeners called
-		 */
-		fireOnce : function( eventName, data, editor )
-		{
-			var ret = this.fire( eventName, data, editor );
-			delete this._.events[ eventName ];
-			return ret;
-		},
-
-		/**
-		 * Unregisters a listener function from being called at the specified
-		 *		event. No errors are thrown if the listener has not been
-		 *		registered previously.
-		 * @param {String} eventName The event name.
-		 * @param {Function} listenerFunction The listener function to unregister.
-		 * @type undefined
-		 * @example
-		 * var myListener = function() { ... };
-		 * someObject.on( 'someevent', myListener );
-		 * someObject.fire( 'someevent' );  // myListener called
-		 * <b>someObject.removeListener( 'someevent', myListener )</b>;
-		 * someObject.fire( 'someevent' );  // myListener not called
-		 */
-		removeListener : function( eventName, listenerFunction )
-		{
-			// Get the event entry.
-			var event = this._.events[ eventName ];
-
-			if ( event )
-			{
-				var index = event.getListenerIndex( listenerFunction );
-				if ( index >= 0 )
-					event.listeners.splice( index, 1 );
-			}
-		}
-	};
-})();
+		};
+	})();
+}
Index: /CKEditor/branches/prototype/_source/core/scriptloader.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/scriptloader.js	(revision 2162)
+++ /CKEditor/branches/prototype/_source/core/scriptloader.js	(revision 2163)
@@ -114,4 +114,6 @@
 			script.appendTo( CKEDITOR.dom.element.getHead() );
 
+			CKEDITOR.fire( 'download', scriptUrl );		// @Packager.RemoveLine
+
 			return true;
 		},
Index: /CKEditor/branches/prototype/_source/tests/core/ajax.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/ajax.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/ajax.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR.ajax</title>
 	<link rel="stylesheet" type="text/css" href="../test.css" />
-	<script type="text/javascript" src="../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../../../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../test.js"></script>
 	<script type="text/javascript">
Index: /CKEditor/branches/prototype/_source/tests/core/ckeditor.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/ckeditor.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/ckeditor.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR</title>
 	<link rel="stylesheet" type="text/css" href="../test.css" />
-	<script type="text/javascript" src="../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../../../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../test.js"></script>
 	<script type="text/javascript">
Index: /CKEditor/branches/prototype/_source/tests/core/ckeditor2.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/ckeditor2.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/ckeditor2.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR 2</title>
 	<link rel="stylesheet" type="text/css" href="../test.css" />
-	<script type="text/javascript" src="../../../ckeditor_basic.js"></script>
+	<script type="text/javascript" src="../../../ckeditor_basic_source.js"></script>
 	<script type="text/javascript" src="../test.js"></script>
 	<script type="text/javascript">
Index: /CKEditor/branches/prototype/_source/tests/core/dom/element.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/dom/element.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/dom/element.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR.dom.element</title>
 	<link rel="stylesheet" type="text/css" href="../../test.css" />
-	<script type="text/javascript" src="../../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../../../../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../../test.js"></script>
 	<script type="text/javascript">
Index: /CKEditor/branches/prototype/_source/tests/core/editor.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/editor.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/editor.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR.editor</title>
 	<link rel="stylesheet" type="text/css" href="../test.css" />
-	<script type="text/javascript" src="../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../../../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../test.js"></script>
 	<script type="text/javascript">
Index: /CKEditor/branches/prototype/_source/tests/core/env.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/env.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/env.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR.env</title>
 	<link rel="stylesheet" type="text/css" href="../test.css" />
-	<script type="text/javascript" src="../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../../../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../test.js"></script>
 	<script type="text/javascript">
Index: /CKEditor/branches/prototype/_source/tests/core/event.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/event.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/event.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR.event</title>
 	<link rel="stylesheet" type="text/css" href="../test.css" />
-	<script type="text/javascript" src="../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../../../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../test.js"></script>
 	<script type="text/javascript">
Index: /CKEditor/branches/prototype/_source/tests/core/scriptloader.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/scriptloader.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/scriptloader.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR.scriptLoader</title>
 	<link rel="stylesheet" type="text/css" href="../test.css" />
-	<script type="text/javascript" src="../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../../../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../test.js"></script>
 	<script type="text/javascript">
Index: /CKEditor/branches/prototype/_source/tests/core/tools.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/tools.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/tools.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR.tools</title>
 	<link rel="stylesheet" type="text/css" href="../test.css" />
-	<script type="text/javascript" src="../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../../../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../test.js"></script>
 	<script type="text/javascript">
Index: /CKEditor/branches/prototype/_source/tests/core/xml.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/xml.html	(revision 2162)
+++ /CKEditor/branches/prototype/_source/tests/core/xml.html	(revision 2163)
@@ -4,5 +4,5 @@
 	<title>CKEDITOR.xml</title>
 	<link rel="stylesheet" type="text/css" href="../test.css" />
-	<script type="text/javascript" src="../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../../../ckeditor_source.js"></script>
 	<script type="text/javascript" src="../test.js"></script>
 	<script type="text/javascript">
Index: Editor/branches/prototype/ckeditor.js
===================================================================
--- /CKEditor/branches/prototype/ckeditor.js	(revision 2162)
+++ 	(revision )
@@ -1,37 +1,0 @@
-﻿/*
- * CKEditor - The text editor for Internet - http://ckeditor.com
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- *  - GNU General Public License Version 2 or later (the "GPL")
- *    http://www.gnu.org/licenses/gpl.html
- *
- *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- *    http://www.gnu.org/licenses/lgpl.html
- *
- *  - Mozilla Public License Version 1.1 or later (the "MPL")
- *    http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- */
-
-// Compressed version of core/ckeditor_base.js. See original for instructions.
-/*jsl:ignore*/
-if (!window.CKEDITOR){window.CKEDITOR=(function(){var A={_:{},status:'unloaded',basePath:(function(){var B='';var C=document.getElementsByTagName('script');for (var i=0;i<C.length;i++){var D=C[i].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?.js(?:\?.*)?$/i);if (D){B=D[1];break;}};if (B.indexOf('://')==-1){if (B.indexOf('/')===0) B=location.href.match(/^.*?:\/\/[^\/]*/)[0]+B;else B=location.href.match(/^[^\?]*\//)[0]+B;};return B;})()};A.scriptsPath=A.basePath+'_source/';return A;})();};
-/*jsl:end*/
-
-if ( CKEDITOR.loader )
-	CKEDITOR.loader.load( 'core/ckeditor' );
-else
-{
-	// Set the script name to be loaded by the loader.
-	CKEDITOR._autoLoad = 'core/ckeditor';
-
-	// Include the loader script.
-	document.write(
-		'<script type="text/javascript" src="' + CKEDITOR.scriptsPath + 'core/loader.js"></script>' );
-}
Index: Editor/branches/prototype/ckeditor_basic.js
===================================================================
--- /CKEditor/branches/prototype/ckeditor_basic.js	(revision 2162)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/*
- * CKEditor - The text editor for Internet - http://ckeditor.com
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- *  - GNU General Public License Version 2 or later (the "GPL")
- *    http://www.gnu.org/licenses/gpl.html
- *
- *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- *    http://www.gnu.org/licenses/lgpl.html
- *
- *  - Mozilla Public License Version 1.1 or later (the "MPL")
- *    http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- */
-
-// Compressed version of core/ckeditor_base.js. See original for instructions.
-/*jsl:ignore*/
-if (!window.CKEDITOR){window.CKEDITOR=(function(){var A={_:{},status:'unloaded',basePath:(function(){var B='';var C=document.getElementsByTagName('script');for (var i=0;i<C.length;i++){var D=C[i].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?.js(?:\?.*)?$/i);if (D){B=D[1];break;}};if (B.indexOf('://')==-1){if (B.indexOf('/')===0) B=location.href.match(/^.*?:\/\/[^\/]*/)[0]+B;else B=location.href.match(/^[^\?]*\//)[0]+B;};return B;})()};A.scriptsPath=A.basePath+'_source/';return A;})();};
-/*jsl:end*/
-
-// Set the script name to be loaded by the loader.
-CKEDITOR._autoLoad = 'core/ckeditor_basic';
-
-// Include the loader script.
-document.write(
-	'<script type="text/javascript" src="' + CKEDITOR.scriptsPath + 'core/loader.js"></script>' );
Index: /CKEditor/branches/prototype/ckeditor_basic_source.js
===================================================================
--- /CKEditor/branches/prototype/ckeditor_basic_source.js	(revision 2163)
+++ /CKEditor/branches/prototype/ckeditor_basic_source.js	(revision 2163)
@@ -0,0 +1,32 @@
+/*
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ */
+
+// Compressed version of core/ckeditor_base.js. See original for instructions.
+/*jsl:ignore*/
+if (!window.CKEDITOR){window.CKEDITOR=(function(){var A={_:{},status:'unloaded',basePath:(function(){var B='';var C=document.getElementsByTagName('script');for (var i=0;i<C.length;i++){var D=C[i].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if (D){B=D[1];break;}};if (B.indexOf('://')==-1){if (B.indexOf('/')===0) B=location.href.match(/^.*?:\/\/[^\/]*/)[0]+B;else B=location.href.match(/^[^\?]*\//)[0]+B;};return B;})()};A.scriptsPath=A.basePath+'_source/';return A;})();};
+/*jsl:end*/
+
+// Set the script name to be loaded by the loader.
+CKEDITOR._autoLoad = 'core/ckeditor_basic';
+
+// Include the loader script.
+document.write(
+	'<script type="text/javascript" src="' + CKEDITOR.scriptsPath + 'core/loader.js"></script>' );
Index: /CKEditor/branches/prototype/ckeditor_source.js
===================================================================
--- /CKEditor/branches/prototype/ckeditor_source.js	(revision 2163)
+++ /CKEditor/branches/prototype/ckeditor_source.js	(revision 2163)
@@ -0,0 +1,37 @@
+﻿/*
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ */
+
+// Compressed version of core/ckeditor_base.js. See original for instructions.
+/*jsl:ignore*/
+if (!window.CKEDITOR){window.CKEDITOR=(function(){var A={_:{},status:'unloaded',basePath:(function(){var B='';var C=document.getElementsByTagName('script');for (var i=0;i<C.length;i++){var D=C[i].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if (D){B=D[1];break;}};if (B.indexOf('://')==-1){if (B.indexOf('/')===0) B=location.href.match(/^.*?:\/\/[^\/]*/)[0]+B;else B=location.href.match(/^[^\?]*\//)[0]+B;};return B;})()};A.scriptsPath=A.basePath+'_source/';return A;})();};
+/*jsl:end*/
+
+if ( CKEDITOR.loader )
+	CKEDITOR.loader.load( 'core/ckeditor' );
+else
+{
+	// Set the script name to be loaded by the loader.
+	CKEDITOR._autoLoad = 'core/ckeditor';
+
+	// Include the loader script.
+	document.write(
+		'<script type="text/javascript" src="' + CKEDITOR.scriptsPath + 'core/loader.js"></script>' );
+}
Index: /CKEditor/branches/prototype/fckpackager.xml
===================================================================
--- /CKEditor/branches/prototype/fckpackager.xml	(revision 2163)
+++ /CKEditor/branches/prototype/fckpackager.xml	(revision 2163)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+-->
+<Package>
+
+	<Header><![CDATA[/*
+ * CKEditor - The text editor for Internet - http://ckeditor.com
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ */
+]]></Header>
+
+	<PackageFile path="ckeditor_basic.js">
+		<File path="_source/core/ckeditor_base.js" />
+		<File path="_source/core/env.js" />
+		<File path="_source/core/event.js" />
+		<File path="_source/core/ckeditor_basic.js" />
+	</PackageFile>
+
+	<PackageFile path="ckeditor.js">
+		<File path="_source/core/ckeditor_base.js" />
+		<File path="_source/core/env.js" />
+		<File path="_source/core/xml.js" />
+		<File path="_source/core/ajax.js" />
+		<File path="_source/core/event.js" />
+		<File path="_source/core/ckeditor_basic.js" />
+		<File path="_source/core/dom.js" />
+		<File path="_source/core/config.js" />
+		<File path="_source/core/dom/node.js" />
+		<File path="_source/core/tools.js" />
+		<File path="_source/core/dom/element.js" />
+		<File path="_source/core/scriptLoader.js" />
+		<File path="_source/core/resourceManager.js" />
+		<File path="_source/core/plugins.js" />
+		<File path="_source/core/themes.js" />
+		<File path="_source/core/editor.js" />
+		<File path="_source/core/ckeditor.js" />
+		<File path="_source/core/_bootstrap.js" />
+		<File path="_source/plugins/editingblock/plugin.js" />
+		<File path="_source/plugins/elementspath/plugin.js" />
+		<File path="_source/plugins/sourcearea/plugin.js" />
+		<File path="_source/plugins/toolbar/plugin.js" />
+		<File path="_source/plugins/wysiwygarea/plugin.js" />
+		<File path="_source/themes/default/theme.js" />
+	</PackageFile>
+
+</Package>
