<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}" />
		<meta name="generator" content="JsDoc Toolkit" />
		{! Link.base = "../"; /* all generated links will be relative to this */ !}
		<title>{+data.alias+} - CKEditor 3 JavaScript API Documentation</title>

		<style type="text/css">
			{+include("static/default.css")+}
		</style>
	</head>

	<body>
<!-- ============================== header ================================= -->	
		<!-- begin static/header.html -->
		{+include("static/header.html")+}
		<!-- end static/header.html -->

<!-- ============================== classes index ============================ -->
		<div id="index">
			<!-- begin publish.classesIndex -->
			{+publish.classesIndex+}
			<!-- end publish.classesIndex -->
		</div>
		
		<div id="content">
<!-- ============================== class title ============================ -->
			<h1 class="classTitle">
				{!
					var classType = "";
					
					if (data.isBuiltin()) {
						classType += "Built-In ";
					}
					
					if (data.isNamespace) {
						if (data.is('FUNCTION')) {
							classType += "Function ";
						}
						classType += "Namespace ";
					}
					else {
						classType += "Class ";
					}
				!}
				{+classType+}{+data.alias+}
			</h1>

<!-- ============================== class summary ========================== -->			
			<p class="description">
				<if test="data.version"><br />Version
					{+ data.version +}.<br />
				</if>

				{+resolveLinks(data.classDesc)+}
				
				<if test="data.augments.length"><br />Extends
					{+
						data.augments
						.sort()
						.map(
							function($) { return new Link().toSymbol($); }
						)
						.join(", ")
					+}.
				</if>
			
				<if test="!data.isBuiltin()">{# isn't defined in any file #}
					<br /><i>Defined in: </i> {+ ckeditor_FileLink( data.srcFile ) +}.
				</if>
			</p>

<!-- ============================== constructor summary ==================== -->			
			<if test="!data.isBuiltin() && data.is('CONSTRUCTOR')">
			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class {+data.alias+}.">
				<caption>{+classType+}Summary</caption>
				<thead>
					<tr>
						<th scope="col">Constructor Attributes</th>
						<th scope="col">Constructor Name and Description</th>
					</tr>
				</thead>
				<tbody>
					<tr>
						<td class="attributes">{!
							if (data.isPrivate) output += "&lt;private&gt; ";
							if (data.isInner) output += "&lt;inner&gt; ";
						!}&nbsp;</td>
						<td class="nameDescription" {!if (data.comment.getTag("hilited").length){output += 'style="color: red"'}!}>
							<div class="fixedFont">
								<b>{+ new Link().toSymbol(data.alias).inner('constructor')+}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
							</div>
							<div class="description">{+resolveLinks(summarize(data.desc))+}</div>
						</td>
					</tr>
				</tbody>
			</table>
			</if>

<!-- ============================== properties summary ===================== -->
			<if test="data.properties.length">

				{! var ownConstants = data.properties.filter(function($){return $.memberOf == data.alias && !$.isNamespace && $.isConstant}).sort( ckeditor_sortByType ); !}
				<if test="ownConstants.length">
				<table class="summaryTable" cellspacing="0" summary="A summary of the constants documented in the class {+data.alias+}.">
					<caption>Constants Summary</caption>
					<thead>
						<tr>
							<th scope="col">Constant Attributes</th>
							<th scope="col">Constant Name and Description</th>
						</tr>
					</thead>
					<tbody>
					<for each="member" in="ownConstants">
						<tr>
							<td class="attributes">{!
								if (member.isPrivate) output += "&lt;private&gt; ";
								if (member.isInner) output += "&lt;inner&gt; ";
								if (member.isStatic) output += "&lt;static&gt; ";
							!}&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">
								<if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>
								</div>
								<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
							</td>
						</tr>
					</for>
					</tbody>
				</table>
				</if>

				{! var ownProperties = data.properties.filter(function($){return $.memberOf == data.alias && !$.isNamespace && !$.isConstant}).sort( ckeditor_sortByType ); !}
				<if test="ownProperties.length">
				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class {+data.alias+}.">
					<caption>Field Summary</caption>
					<thead>
						<tr>
							<th scope="col">Field Attributes</th>
							<th scope="col">Field Name and Description</th>
						</tr>
					</thead>
					<tbody>
					<for each="member" in="ownProperties">
						<tr>
							<td class="attributes">{!
								if (member.isPrivate) output += "&lt;private&gt; ";
								if (member.isInner) output += "&lt;inner&gt; ";
								if (member.isStatic) output += "&lt;static&gt; ";
								if (member.isConstant) output += "&lt;constant&gt; ";
							!}&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont">
								<if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>
								</div>
								<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
							</td>
						</tr>
					</for>
					</tbody>
				</table>
				</if>
				
				<if test="data.inheritsFrom.length">
				<dl class="inheritsList">
				{!
					var borrowedMembers = data.properties.filter(function($) {return $.memberOf != data.alias});
					
					var contributers = [];
					borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
					for (var i = 0, l = contributers.length; i < l; i++) {
						output +=
							"<dt>Fields borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
							+
							"<dd>" +
							borrowedMembers
							.filter(
								function($) { return $.memberOf == contributers[i] }
							)
							.sort(makeSortby("name"))
							.map(
								function($) { return new Link().toSymbol($.alias).withText($.name) }
							)
							.join(", ")
							+
							"</dd>";
					}
				!}
				</dl>
				</if>
			</if>

<!-- ============================== methods summary ======================== -->
			<if test="data.methods.length">
				{! var ownMethods = data.methods.filter(function($){return $.memberOf == data.alias  && !$.isNamespace}).sort( ckeditor_sortByType ); !}
				<if test="ownMethods.length">
				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class {+data.alias+}.">
					<caption>Method Summary</caption>
					<thead>
						<tr>
							<th scope="col">Method Attributes</th>
							<th scope="col">Method Name and Description</th>
						</tr>
					</thead>
					<tbody>
					<for each="member" in="ownMethods">
						<tr>
							<td class="attributes">{!
								if (member.isPrivate) output += "&lt;private&gt; ";
								if (member.isInner) output += "&lt;inner&gt; ";
								if (member.isStatic) output += "&lt;static&gt; ";
							!}&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name.replace(/\^\d+$/, ''))+}</b>{+makeSignature(member.params)+}
								</div>
								<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
							</td>
						</tr>
					</for>
					</tbody>
				</table>
				</if>
				
				<if test="data.inheritsFrom.length">
				<dl class="inheritsList">
				{!
					var borrowedMembers = data.methods.filter(function($) {return $.memberOf != data.alias});
					var contributers = [];
					borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
					for (var i = 0, l = contributers.length; i < l; i++) {
						output +=
							"<dt>Methods borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
							+
							"<dd>" +
							borrowedMembers
							.filter(
								function($) { return $.memberOf == contributers[i] }
							)
							.sort(makeSortby("name"))
							.map(
								function($) { return new Link().toSymbol($.alias).withText($.name) }
							)
							.join(", ")
							+
							"</dd>";
					}
				
				!}
				</dl>
				</if>
			</if>

<!-- ============================== events summary ======================== -->
			<if test="data.events.length">
				{! var ownEvents = data.events.filter(function($){return $.memberOf == data.alias  && !$.isNamespace}).sort(makeSortby("name")); !}
				<if test="ownEvents.length">
				<table class="summaryTable" cellspacing="0" summary="A summary of the events documented in the class {+data.alias+}.">
					<caption>Event Summary</caption>
					<thead>
						<tr>
							<th scope="col">Event Attributes</th>
							<th scope="col">Event Name and Description</th>
						</tr>
					</thead>
					<tbody>
					<for each="member" in="ownEvents">
						<tr>
							<td class="attributes">{!
								if (member.isPrivate) output += "&lt;private&gt; ";
								if (member.isInner) output += "&lt;inner&gt; ";
								if (member.isStatic) output += "&lt;static&gt; ";
							!}&nbsp;</td>
							<td class="nameDescription">
								<div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>
								</div>
								<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
							</td>
						</tr>
					</for>
					</tbody>
				</table>
				</if>
				
				<if test="data.inheritsFrom.length">
				<dl class="inheritsList">
				{!
					var borrowedMembers = data.events.filter(function($) {return $.memberOf != data.alias});
					var contributers = [];
					borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
					for (var i = 0, l = contributers.length; i < l; i++) {
						output +=
							"<dt>Events borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
							+
							"<dd>" +
							borrowedMembers
							.filter(
								function($) { return $.memberOf == contributers[i] }
							)
							.sort(makeSortby("name"))
							.map(
								function($) { return new Link().toSymbol($.alias).withText($.name) }
							)
							.join(", ")
							+
							"</dd>";
					}
				
				!}
				</dl>
				</if>
			</if>

<!-- ============================== constructor details ==================== -->		
			<if test="!data.isBuiltin() && data.is('CONSTRUCTOR')">
			<div class="details"><a name="constructor"> </a>
				<div class="sectionTitle">
					{+classType+}Detail
				</div>
				
				<div class="fixedFont" style="float:left">{!
					if (data.isPrivate) output += "&lt;private&gt; ";
					if (data.isInner) output += "&lt;inner&gt; ";
				!}
						<b>{+ data.alias +}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
				</div>

				<div style="float:right">
					<span class="heading">Since:</span>
						<if test="data.since">
							{+ data.since +}
						<else />
							3.0
						</if>
				</div>
				<div style="clear:both"></div>
				
				<div class="description">
					{+resolveLinks(data.desc)+}
					<if test="data.author"><br /><i>Author: </i>{+data.author+}.</if>
				</div>
				
				<if test="data.example.length">
				<for each="example" in="data.example">
					<if test="example.desc">
						<pre class="code">{+example+}</pre>
					</if>
				</for>
				<else />
					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
				</if>
				
				
					<if test="data.params.length">
						<dl class="detailList">
						<dt class="heading">Parameters:</dt>
						<for each="item" in="data.params">
							<dt>
								<span class="light fixedFont">{{+ new Link().toSymbol(item.type || 'Undefined') +}}</span> <b>{+item.name+}</b>
								<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
							</dt>
								<dd>{+resolveLinks(item.desc)+}</dd>
						</for>
						</dl>
					</if>
					<if test="data.deprecated">
						<dl class="detailList">
						<dt class="heading">Deprecated:</dt>
						<dt>
							{+resolveLinks(data.deprecated)+}
						</dt>
						</dl>
					</if>
					<if test="data.exceptions.length">
						<dl class="detailList">
						<dt class="heading">Throws:</dt>
						<for each="item" in="data.exceptions">
							<dt>
								<span class="light fixedFont">{{+ new Link().toSymbol(item.type || 'Undefined') +}}</span> <b>{+item.name+}</b>
							</dt>
								<dd>{+resolveLinks(item.desc)+}</dd>
						</for>
						</dl>
					</if>
					<if test="data.returns.length">
						<dl class="detailList">
						<dt class="heading">Returns:</dt>
						<for each="item" in="data.returns">
								<dd><span class="light fixedFont">{{+ new Link().toSymbol(item.type || 'Undefined') +}}</span> {+resolveLinks(item.desc)+}</dd>
						</for>
						</dl>
					</if>
					<if test="data.requires.length">
						<dl class="detailList">
						<dt class="heading">Requires:</dt>
						<for each="item" in="data.requires">
							<dd>{+ resolveLinks(item) +}</dd>
						</for>
						</dl>
					</if>
					<if test="data.see.length">
						<dl class="detailList">
						<dt class="heading">See:</dt>
						<for each="item" in="data.see">
							<dd>{+ new Link().toSymbol(item) +}</dd>
						</for>
						</dl>
					</if>

			</div>
			</if>

<!-- ============================== field details ========================== -->		
			<if test="defined(ownProperties) && ownProperties.length">
				<div class="sectionTitle">
					Field Detail
				</div>
				<for each="member" in="ownProperties">
					<a name="{+Link.symbolNameToLinkName(member)+}"> </a>
					<div class="fixedFont" style="float:left">{!
						if (member.isPrivate) output += "&lt;private&gt; ";
						if (member.isInner) output += "&lt;inner&gt; ";
						if (member.isStatic) output += "&lt;static&gt; ";
						if (member.isConstant) output += "&lt;constant&gt; ";
					!}
					
					<span class="light">{{+ new Link().toSymbol( member.type || 'Undefined') +}}</span>
					<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>
					
					</div>
					<div style="float:right">
						<span class="heading">Since:</span>
							<if test="member.since">
								{+ member.since +}
							<else />
								3.0
							</if>
					</div>
					<div style="clear:both"></div>
					<div class="description">
						{+resolveLinks(member.desc)+}
						<if test="member.srcFile != data.srcFile">
							<br />
							<i>Defined in: </i> {+ ckeditor_FileLink( member.srcFile ) +}.
						</if>
						<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
					</div>
					
					<if test="member.example.length">
					<for each="example" in="member.example">
						<if test="example.desc">
							<pre class="code">{+example+}</pre>
						</if>
					</for>
					<else />
						<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
					</if>

						<if test="member.deprecated">
							<dl class="detailList">
							<dt class="heading">Deprecated:</dt>
							<dt>
								{+ resolveLinks(member.deprecated) +}
							</dt>
							</dl>
						</if>
						<if test="member.see.length">
							<dl class="detailList">
							<dt class="heading">See:</dt>
							<for each="item" in="member.see">
							<dd>{+ new Link().toSymbol(item) +}</dd>
							</for>
							</dl>
						</if>
						<if test="member.defaultValue">
							<dl class="detailList">
							<dt class="heading">Default Value:</dt>
							<dd>
								{+resolveLinks(member.defaultValue)+}
							</dd>
							</dl>
						</if>

					<if test="!$member_last"><hr /></if>
				</for>
			</if>

<!-- ============================== method details ========================= -->		
			<if test="defined(ownMethods) && ownMethods.length">
				<div class="sectionTitle">
					Method Detail
				</div>
				<for each="member" in="ownMethods">
					<a name="{+Link.symbolNameToLinkName(member)+}"> </a>
					<div class="fixedFont" style="float:left">{!
						if (member.isPrivate) output += "&lt;private&gt; ";
						if (member.isInner) output += "&lt;inner&gt; ";
						if (member.isStatic) output += "&lt;static&gt; ";
					!}
					
					<span class="light">{{+ new Link().toSymbol( member.type || 'Undefined') +}}</span>
					<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name.replace(/\^\d+$/, '')+}</b>{+makeSignature(member.params)+}
					
					</div>
					<div style="float:right">
						<span class="heading">Since:</span>
							<if test="member.since">
								{+ member.since +}
							<else />
								3.0
							</if>
					</div>
					<div style="clear:both"></div>
					<div class="description">
						{+resolveLinks(member.desc)+}
						<if test="member.srcFile != data.srcFile">
							<br />
							<i>Defined in: </i> {+ ckeditor_FileLink( member.srcFile ) +}.
						</if>
						<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
					</div>
					
					<if test="member.example.length">
					<for each="example" in="member.example">
						<if test="example.desc">
							<pre class="code">{+example+}</pre>
						</if>
					</for>
					<else />
						<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
					</if>
					
						<if test="member.params.length">
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
							<for each="item" in="member.params">
								<dt>
									<span class="light fixedFont">{{+ new Link().toSymbol(item.type || 'Undefined') +}}</span> <b>{+item.name+}</b>
									<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
								</dt>
								<dd>{+resolveLinks(item.desc)+}</dd>
							</for>
							</dl>
						</if>
						<if test="member.deprecated">
							<dl class="detailList">
							<dt class="heading">Deprecated:</dt>
							<dt>
								{+resolveLinks(member.deprecated)+}
							</dt>
							</dl>
						</if>
						<if test="member.exceptions.length">
							<dl class="detailList">
							<dt class="heading">Throws:</dt>
							<for each="item" in="member.exceptions">
								<dt>
									<span class="light fixedFont">{{+ new Link().toSymbol(item.type || 'Undefined') +}}</span> <b>{+item.name+}</b>
								</dt>
								<dd>{+resolveLinks(item.desc)+}</dd>
							</for>
							</dl>
						</if>
						<if test="member.returns.length">
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							<for each="item" in="member.returns">
								<dd><span class="light fixedFont">{{+ new Link().toSymbol(item.type || 'Undefined') +}}</span> {+resolveLinks(item.desc)+}</dd>
							</for>
							</dl>
						</if>
						<if test="member.requires.length">
							<dl class="detailList">
							<dt class="heading">Requires:</dt>
							<for each="item" in="member.requires">
								<dd>{+ resolveLinks(item) +}</dd>
							</for>
							</dl>
						</if>
						<if test="member.see.length">
							<dl class="detailList">
							<dt class="heading">See:</dt>
							<for each="item" in="member.see">
								<dd>{+ new Link().toSymbol(item) +}</dd>
							</for>
							</dl>
						</if>

					<if test="!$member_last"><hr /></if>
				</for>
			</if>

			<!-- ============================== event details ========================= -->		
			<if test="defined(ownEvents) && ownEvents.length">
				<div class="sectionTitle">
					Event Detail
				</div>
				<for each="member" in="ownEvents">
					<a name="event:{+Link.symbolNameToLinkName(member)+}"> </a>
					<div class="fixedFont" style="float:left">{!
						if (member.isPrivate) output += "&lt;private&gt; ";
						if (member.isInner) output += "&lt;inner&gt; ";
						if (member.isStatic) output += "&lt;static&gt; ";
					!}
					
					<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
					<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if>
					<b>{+member.name+}</b> : &lt;object&gt;.{+new Link().toSymbol('CKEDITOR.event#on').withText('on')+}( '{+member.name+}', function( e ){ ... } )
					
					</div>
					<div style="float:right">
						<span class="heading">Since:</span>
							<if test="member.since">
								{+ member.since +}
							<else />
								3.0
							</if>
					</div>
					<div style="clear:both"></div>
					<div class="description">
						{+resolveLinks(member.desc)+}
						<if test="member.srcFile != data.srcFile">
							<br />
							<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
						</if>
						<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
					</div>
					
					<if test="member.example.length">
					<for each="example" in="member.example">
						<if test="example.desc">
							<pre class="code">{+example+}</pre>
						</if>
					</for>
					<else />
						<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
					</if>
					
							<dl class="detailList">
							<dt class="heading">Parameters:</dt>
								<dt>
									<span class="light fixedFont">{{+new Link().toSymbol('CKEDITOR.eventInfo')+}}</span> <b>e</b>
								</dt>
								<dd>The standard event object passed to event listeners.</dd>

							<for each="item" in="member.params">
								<dt>
									{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}<b>e.{+item.name+}</b>
									<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
								</dt>
								<dd>{+ resolveLinks(item.desc) +}</dd>
							</for>
							</dl>

						<if test="member.deprecated">
							<dl class="detailList">
							<dt class="heading">Deprecated:</dt>
							<dt>
								{+ resolveLinks(member.deprecated) +}
							</dt>
							</dl>
						</if>
						<if test="member.exceptions.length">
							<dl class="detailList">
							<dt class="heading">Throws:</dt>
							<for each="item" in="member.exceptions">
								<dt>
									{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
								</dt>
								<dd>{+ resolveLinks(item.desc) +}</dd>
							</for>
							</dl>
						</if>
						<if test="member.returns.length">
							<dl class="detailList">
							<dt class="heading">Returns:</dt>
							<for each="item" in="member.returns">
								<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
							</for>
							</dl>
						</if>
						<if test="member.requires.length">
							<dl class="detailList">
							<dt class="heading">Requires:</dt>
							<for each="item" in="member.requires">
								<dd>{+ resolveLinks(item) +}</dd>
							</for>
							</dl>
						</if>
						<if test="member.see.length">
							<dl class="detailList">
							<dt class="heading">See:</dt>
							<for each="item" in="member.see">
								<dd>{+ new Link().toSymbol(item) +}</dd>
							</for>
							</dl>
						</if>

					<if test="!$member_last"><hr /></if>
				</for>
			</if>

			<hr />
		</div>
		
<!-- ============================== footer ================================= -->
		{+include("static/footer.html")+}
	</body>
</html>
